From 8b7a767abfb9887587812e7e60a0b97db4db84a5 Mon Sep 17 00:00:00 2001 From: Tomaz Cuk Date: Tue, 26 Nov 2024 21:21:06 +0100 Subject: [PATCH 1/3] feat: upgrade sdk and switch to bun --- .cspell.json | 13 +- .github/knip.ts | 4 +- .github/workflows/compute.yml | 2 + .github/workflows/cspell.yml | 24 - .github/workflows/database.yml | 10 +- .github/workflows/formatting-checks.yml | 28 + .github/workflows/jest-testing.yml | 10 +- .github/workflows/knip.yml | 7 +- bun.lockb | Bin 0 -> 320648 bytes dist/index.js | 79723 +++++++++++++++++++++- eslint.config.cjs | 59 - eslint.config.mjs | 130 + jest.config.json | 24 - jest.config.ts | 24 + package.json | 20 +- src/handlers/watch-user-activity.ts | 6 +- src/helpers/collect-linked-pulls.ts | 8 +- src/helpers/get-assignee-activity.ts | 4 +- src/helpers/get-watched-repos.ts | 10 +- src/helpers/remind-and-remove.ts | 2 +- src/helpers/task-update.ts | 2 +- src/index.ts | 4 +- src/types/constants.ts | 2 + src/types/context.ts | 15 - src/types/plugin-input.ts | 8 +- tests/__mocks__/helpers.ts | 2 +- tests/__mocks__/strings.ts | 2 +- tests/main.test.ts | 23 +- yarn.lock | 5856 -- 29 files changed, 79981 insertions(+), 6041 deletions(-) delete mode 100644 .github/workflows/cspell.yml create mode 100644 .github/workflows/formatting-checks.yml create mode 100755 bun.lockb delete mode 100644 eslint.config.cjs create mode 100644 eslint.config.mjs delete mode 100644 jest.config.json create mode 100644 jest.config.ts create mode 100644 src/types/constants.ts delete mode 100644 src/types/context.ts delete mode 100644 yarn.lock diff --git a/.cspell.json b/.cspell.json index dd51e2e..351b79e 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,7 +1,18 @@ { "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "version": "0.2", - "ignorePaths": ["**/*.json", "**/*.css", "node_modules", "**/*.log", "**/*.http", "**/*.toml", "src/types/database.ts", "supabase/migrations/**", "tests/**", "dist/**"], + "ignorePaths": [ + "**/*.json", + "**/*.css", + "node_modules", + "**/*.log", + "**/*.http", + "**/*.toml", + "src/types/database.ts", + "supabase/migrations/**", + "tests/**", + "dist/**" + ], "useGitignore": true, "language": "en", "words": [ diff --git a/.github/knip.ts b/.github/knip.ts index 62a17bf..99862bb 100644 --- a/.github/knip.ts +++ b/.github/knip.ts @@ -1,12 +1,12 @@ import type { KnipConfig } from "knip"; const config: KnipConfig = { - entry: ["build/index.ts"], + entry: ["src/index.ts"], project: ["src/**/*.ts"], ignore: ["**/__mocks__/**", "**/__fixtures__/**", "src/types/database.ts", "dist/**"], ignoreExportsUsedInFile: true, // eslint can also be safely ignored as per the docs: https://knip.dev/guides/handling-issues#eslint--jest - ignoreDependencies: ["eslint-config-prettier", "eslint-plugin-prettier", "eslint-plugin-filename-rules", "eslint-plugin-sonarjs", "@types/jest", "msw"], + ignoreDependencies: ["eslint-config-prettier", "eslint-plugin-prettier", "eslint-plugin-filename-rules", "@types/jest", "msw", "ts-node"], eslint: true, }; diff --git a/.github/workflows/compute.yml b/.github/workflows/compute.yml index b79879b..c436466 100644 --- a/.github/workflows/compute.yml +++ b/.github/workflows/compute.yml @@ -17,6 +17,8 @@ on: description: "Ref" signature: description: "Used for authenticating requests from the kernel." + command: + description: "Command" jobs: compute: diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml deleted file mode 100644 index c81c97a..0000000 --- a/.github/workflows/cspell.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Spell Check - -on: - push: - -jobs: - spellcheck: - name: Check for spelling errors - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: "20.10.0" - - - name: Install cspell - run: yarn add cspell - - - name: Run cspell - run: yarn format:cspell diff --git a/.github/workflows/database.yml b/.github/workflows/database.yml index 4569ea1..c8c5e9b 100644 --- a/.github/workflows/database.yml +++ b/.github/workflows/database.yml @@ -42,15 +42,13 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: "20.10.0" + - name: Setup Bun + uses: oven-sh/setup-bun@v2 - name: Generate Supabase Types run: | - yarn install - yarn run "supabase:generate:remote" + bun install --frozen-lockfile + bun run "supabase:generate:remote" - name: Commit and Push generated types run: | diff --git a/.github/workflows/formatting-checks.yml b/.github/workflows/formatting-checks.yml new file mode 100644 index 0000000..3918002 --- /dev/null +++ b/.github/workflows/formatting-checks.yml @@ -0,0 +1,28 @@ +name: Formatting Check + +on: + push: + +jobs: + format-check: + name: Check for formatting errors + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + + - name: Install toolchain + run: bun install --frozen-lockfile + + - name: Eslint + run: bun run eslint --fix-dry-run + + - name: Cspell + run: bun run format:cspell + + - name: Prettier + run: bun run prettier --check . diff --git a/.github/workflows/jest-testing.yml b/.github/workflows/jest-testing.yml index fc594c5..7e9b19a 100644 --- a/.github/workflows/jest-testing.yml +++ b/.github/workflows/jest-testing.yml @@ -5,8 +5,6 @@ on: env: NODE_ENV: "test" - SUPABASE_URL: "http://127.0.0.1:54321" - SUPABASE_KEY: "key" jobs: testing: @@ -21,8 +19,14 @@ jobs: with: fetch-depth: 0 + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + + - name: Install toolchain + run: bun install --frozen-lockfile + - name: Jest With Coverage - run: yarn install --immutable --immutable-cache --check-cache && yarn test + run: bun run test - name: Add Jest Report to Summary if: always() diff --git a/.github/workflows/knip.yml b/.github/workflows/knip.yml index d9237eb..10236f4 100644 --- a/.github/workflows/knip.yml +++ b/.github/workflows/knip.yml @@ -16,14 +16,17 @@ jobs: with: node-version: 20.10.0 + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + - name: Install toolchain - run: yarn install + run: bun install --frozen-lockfile - name: Store PR number run: echo ${{ github.event.number }} > pr-number.txt - name: Run Knip - run: yarn knip || yarn knip --reporter json > knip-results.json + run: bun run knip || bun run knip --reporter json > knip-results.json - name: Upload knip result if: failure() diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..7ed27c7a76745d985b1cad4995569963059ddb70 GIT binary patch literal 320648 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" ";let t=true;for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const n=this.properties[r];if(n){if(t){t=false}else{e+=","}e+=`${r}=${escapeProperty(n)}`}}}}e+=`${c}${escapeData(this.message)}`;return e}}function escapeData(e){return a.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return a.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},37484:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getIDToken=t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.notice=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const a=r(44914);const c=r(24753);const u=r(30302);const A=o(r(70857));const l=o(r(16928));const d=r(35306);var p;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(p=t.ExitCode||(t.ExitCode={}));function exportVariable(e,t){const r=u.toCommandValue(t);process.env[e]=r;const n=process.env["GITHUB_ENV"]||"";if(n){return c.issueFileCommand("ENV",c.prepareKeyValueMessage(e,t))}a.issueCommand("set-env",{name:e},r)}t.exportVariable=exportVariable;function setSecret(e){a.issueCommand("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){c.issueFileCommand("PATH",e)}else{a.issueCommand("add-path",{},e)}process.env["PATH"]=`${e}${l.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const r=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!r){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return r}return r.trim()}t.getInput=getInput;function getMultilineInput(e,t){const r=getInput(e,t).split("\n").filter((e=>e!==""));if(t&&t.trimWhitespace===false){return r}return r.map((e=>e.trim()))}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const r=["true","True","TRUE"];const n=["false","False","FALSE"];const s=getInput(e,t);if(r.includes(s))return true;if(n.includes(s))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){const r=process.env["GITHUB_OUTPUT"]||"";if(r){return c.issueFileCommand("OUTPUT",c.prepareKeyValueMessage(e,t))}process.stdout.write(A.EOL);a.issueCommand("set-output",{name:e},u.toCommandValue(t))}t.setOutput=setOutput;function setCommandEcho(e){a.issue("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=p.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){a.issueCommand("debug",{},e)}t.debug=debug;function error(e,t={}){a.issueCommand("error",u.toCommandProperties(t),e instanceof Error?e.toString():e)}t.error=error;function warning(e,t={}){a.issueCommand("warning",u.toCommandProperties(t),e instanceof Error?e.toString():e)}t.warning=warning;function notice(e,t={}){a.issueCommand("notice",u.toCommandProperties(t),e instanceof Error?e.toString():e)}t.notice=notice;function info(e){process.stdout.write(e+A.EOL)}t.info=info;function startGroup(e){a.issue("group",e)}t.startGroup=startGroup;function endGroup(){a.issue("endgroup")}t.endGroup=endGroup;function group(e,t){return i(this,void 0,void 0,(function*(){startGroup(e);let r;try{r=yield t()}finally{endGroup()}return r}))}t.group=group;function saveState(e,t){const r=process.env["GITHUB_STATE"]||"";if(r){return c.issueFileCommand("STATE",c.prepareKeyValueMessage(e,t))}a.issueCommand("save-state",{name:e},u.toCommandValue(t))}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState;function getIDToken(e){return i(this,void 0,void 0,(function*(){return yield d.OidcClient.getIDToken(e)}))}t.getIDToken=getIDToken;var g=r(71847);Object.defineProperty(t,"summary",{enumerable:true,get:function(){return g.summary}});var h=r(71847);Object.defineProperty(t,"markdownSummary",{enumerable:true,get:function(){return h.markdownSummary}});var m=r(31976);Object.defineProperty(t,"toPosixPath",{enumerable:true,get:function(){return m.toPosixPath}});Object.defineProperty(t,"toWin32Path",{enumerable:true,get:function(){return m.toWin32Path}});Object.defineProperty(t,"toPlatformPath",{enumerable:true,get:function(){return m.toPlatformPath}})},24753:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.prepareKeyValueMessage=t.issueFileCommand=void 0;const i=o(r(79896));const a=o(r(70857));const c=r(12048);const u=r(30302);function issueFileCommand(e,t){const r=process.env[`GITHUB_${e}`];if(!r){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!i.existsSync(r)){throw new Error(`Missing file at path: ${r}`)}i.appendFileSync(r,`${u.toCommandValue(t)}${a.EOL}`,{encoding:"utf8"})}t.issueFileCommand=issueFileCommand;function prepareKeyValueMessage(e,t){const r=`ghadelimiter_${c.v4()}`;const n=u.toCommandValue(t);if(e.includes(r)){throw new Error(`Unexpected input: name should not contain the delimiter "${r}"`)}if(n.includes(r)){throw new Error(`Unexpected input: value should not contain the delimiter "${r}"`)}return`${e}<<${r}${a.EOL}${n}${a.EOL}${r}`}t.prepareKeyValueMessage=prepareKeyValueMessage},35306:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.OidcClient=void 0;const s=r(54844);const o=r(44552);const i=r(37484);class OidcClient{static createHttpClient(e=true,t=10){const r={allowRetries:e,maxRetries:t};return new s.HttpClient("actions/oidc-client",[new o.BearerCredentialHandler(OidcClient.getRequestToken())],r)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var t;return n(this,void 0,void 0,(function*(){const r=OidcClient.createHttpClient();const n=yield r.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.message}`)}));const s=(t=n.result)===null||t===void 0?void 0:t.value;if(!s){throw new Error("Response json body do not have ID Token field")}return s}))}static getIDToken(e){return n(this,void 0,void 0,(function*(){try{let t=OidcClient.getIDTokenUrl();if(e){const r=encodeURIComponent(e);t=`${t}&audience=${r}`}i.debug(`ID token url is ${t}`);const r=yield OidcClient.getCall(t);i.setSecret(r);return r}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}t.OidcClient=OidcClient},31976:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.toPlatformPath=t.toWin32Path=t.toPosixPath=void 0;const i=o(r(16928));function toPosixPath(e){return e.replace(/[\\]/g,"/")}t.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}t.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,i.sep)}t.toPlatformPath=toPlatformPath},71847:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.summary=t.markdownSummary=t.SUMMARY_DOCS_URL=t.SUMMARY_ENV_VAR=void 0;const s=r(70857);const o=r(79896);const{access:i,appendFile:a,writeFile:c}=o.promises;t.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";t.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return n(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[t.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${t.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield i(e,o.constants.R_OK|o.constants.W_OK)}catch(t){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,t,r={}){const n=Object.entries(r).map((([e,t])=>` ${e}="${t}"`)).join("");if(!t){return`<${e}${n}>`}return`<${e}${n}>${t}`}write(e){return n(this,void 0,void 0,(function*(){const t=!!(e===null||e===void 0?void 0:e.overwrite);const r=yield this.filePath();const n=t?c:a;yield n(r,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return n(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,t=false){this._buffer+=e;return t?this.addEOL():this}addEOL(){return this.addRaw(s.EOL)}addCodeBlock(e,t){const r=Object.assign({},t&&{lang:t});const n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL()}addList(e,t=false){const r=t?"ol":"ul";const n=e.map((e=>this.wrap("li",e))).join("");const s=this.wrap(r,n);return this.addRaw(s).addEOL()}addTable(e){const t=e.map((e=>{const t=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:t,data:r,colspan:n,rowspan:s}=e;const o=t?"th":"td";const i=Object.assign(Object.assign({},n&&{colspan:n}),s&&{rowspan:s});return this.wrap(o,r,i)})).join("");return this.wrap("tr",t)})).join("");const r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){const r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){const{width:n,height:s}=r||{};const o=Object.assign(Object.assign({},n&&{width:n}),s&&{height:s});const i=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(i).addEOL()}addHeading(e,t){const r=`h${t}`;const n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1";const s=this.wrap(n,e);return this.addRaw(s).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){const r=Object.assign({},t&&{cite:t});const n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL()}addLink(e,t){const r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}}const u=new Summary;t.markdownSummary=u;t.summary=u},30302:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.toCommandProperties=t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}t.toCommandProperties=toCommandProperties},51648:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Context=void 0;const n=r(79896);const s=r(70857);class Context{constructor(){var e,t,r;this.payload={};if(process.env.GITHUB_EVENT_PATH){if((0,n.existsSync)(process.env.GITHUB_EVENT_PATH)){this.payload=JSON.parse((0,n.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}))}else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${s.EOL}`)}}this.eventName=process.env.GITHUB_EVENT_NAME;this.sha=process.env.GITHUB_SHA;this.ref=process.env.GITHUB_REF;this.workflow=process.env.GITHUB_WORKFLOW;this.action=process.env.GITHUB_ACTION;this.actor=process.env.GITHUB_ACTOR;this.job=process.env.GITHUB_JOB;this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10);this.runId=parseInt(process.env.GITHUB_RUN_ID,10);this.apiUrl=(e=process.env.GITHUB_API_URL)!==null&&e!==void 0?e:`https://api.github.com`;this.serverUrl=(t=process.env.GITHUB_SERVER_URL)!==null&&t!==void 0?t:`https://github.com`;this.graphqlUrl=(r=process.env.GITHUB_GRAPHQL_URL)!==null&&r!==void 0?r:`https://api.github.com/graphql`}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:t}}if(this.payload.repository){return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name}}throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}t.Context=Context},93228:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOctokit=t.context=void 0;const i=o(r(51648));const a=r(38006);t.context=new i.Context;function getOctokit(e,t,...r){const n=a.GitHub.plugin(...r);return new n((0,a.getOctokitOptions)(e,t))}t.getOctokit=getOctokit},65156:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getApiBaseUrl=t.getProxyFetch=t.getProxyAgentDispatcher=t.getProxyAgent=t.getAuthString=void 0;const a=o(r(54844));const c=r(24371);function getAuthString(e,t){if(!e&&!t.auth){throw new Error("Parameter token or opts.auth is required")}else if(e&&t.auth){throw new Error("Parameters token and opts.auth may not both be specified")}return typeof t.auth==="string"?t.auth:`token ${e}`}t.getAuthString=getAuthString;function getProxyAgent(e){const t=new a.HttpClient;return t.getAgent(e)}t.getProxyAgent=getProxyAgent;function getProxyAgentDispatcher(e){const t=new a.HttpClient;return t.getAgentDispatcher(e)}t.getProxyAgentDispatcher=getProxyAgentDispatcher;function getProxyFetch(e){const t=getProxyAgentDispatcher(e);const proxyFetch=(e,r)=>i(this,void 0,void 0,(function*(){return(0,c.fetch)(e,Object.assign(Object.assign({},r),{dispatcher:t}))}));return proxyFetch}t.getProxyFetch=getProxyFetch;function getApiBaseUrl(){return process.env["GITHUB_API_URL"]||"https://api.github.com"}t.getApiBaseUrl=getApiBaseUrl},38006:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOctokitOptions=t.GitHub=t.defaults=t.context=void 0;const i=o(r(51648));const a=o(r(65156));const c=r(38452);const u=r(53345);const A=r(37731);t.context=new i.Context;const l=a.getApiBaseUrl();t.defaults={baseUrl:l,request:{agent:a.getProxyAgent(l),fetch:a.getProxyFetch(l)}};t.GitHub=c.Octokit.plugin(u.restEndpointMethods,A.paginateRest).defaults(t.defaults);function getOctokitOptions(e,t){const r=Object.assign({},t||{});const n=a.getAuthString(e,r);if(n){r.auth=n}return r}t.getOctokitOptions=getOctokitOptions},32057:e=>{var t=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:true})};var __copyProps=(e,o,i,a)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let c of n(o))if(!s.call(e,c)&&c!==i)t(e,c,{get:()=>o[c],enumerable:!(a=r(o,c))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(t({},"__esModule",{value:true}),e);var o={};__export(o,{createTokenAuth:()=>u});e.exports=__toCommonJS(o);var i=/^v1\./;var a=/^ghs_/;var c=/^ghu_/;async function auth(e){const t=e.split(/\./).length===3;const r=i.test(e)||a.test(e);const n=c.test(e);const s=t?"app":r?"installation":n?"user-to-server":"oauth";return{type:"token",token:e,tokenType:s}}function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`bearer ${e}`}return`token ${e}`}async function hook(e,t,r,n){const s=t.endpoint.merge(r,n);s.headers.authorization=withAuthorizationPrefix(e);return t(s)}var u=function createTokenAuth2(e){if(!e){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof e!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}e=e.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,e),{hook:hook.bind(null,e)})};0&&0},38452:(e,t,r)=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let c of o(t))if(!i.call(e,c)&&c!==r)n(e,c,{get:()=>t[c],enumerable:!(a=s(t,c))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{Octokit:()=>E});e.exports=__toCommonJS(a);var c=r(7900);var u=r(45029);var A=r(68576);var l=r(35448);var d=r(32057);var p="5.2.0";var noop=()=>{};var g=console.warn.bind(console);var h=console.error.bind(console);var m=`octokit-core.js/${p} ${(0,c.getUserAgent)()}`;var E=class{static{this.VERSION=p}static defaults(e){const t=class extends(this){constructor(...t){const r=t[0]||{};if(typeof e==="function"){super(e(r));return}super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static{this.plugins=[]}static plugin(...e){const t=this.plugins;const r=class extends(this){static{this.plugins=t.concat(e.filter((e=>!t.includes(e))))}};return r}constructor(e={}){const t=new u.Collection;const r={baseUrl:A.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${m}`:m;if(e.baseUrl){r.baseUrl=e.baseUrl}if(e.previews){r.mediaType.previews=e.previews}if(e.timeZone){r.headers["time-zone"]=e.timeZone}this.request=A.request.defaults(r);this.graphql=(0,l.withCustomRequest)(this.request).defaults(r);this.log=Object.assign({debug:noop,info:noop,warn:g,error:h},e.log);this.hook=t;if(!e.authStrategy){if(!e.auth){this.auth=async()=>({type:"unauthenticated"})}else{const r=(0,d.createTokenAuth)(e.auth);t.wrap("request",r.hook);this.auth=r}}else{const{authStrategy:r,...n}=e;const s=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",s.hook);this.auth=s}const n=this.constructor;for(let t=0;t{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let c of o(t))if(!i.call(e,c)&&c!==r)n(e,c,{get:()=>t[c],enumerable:!(a=s(t,c))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{endpoint:()=>p});e.exports=__toCommonJS(a);var c=r(7900);var u="9.0.5";var A=`octokit-endpoint.js/${u} ${(0,c.getUserAgent)()}`;var l={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":A},mediaType:{format:""}};function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce(((t,r)=>{t[r.toLowerCase()]=e[r];return t}),{})}function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function mergeDeep(e,t){const r=Object.assign({},e);Object.keys(t).forEach((n=>{if(isPlainObject(t[n])){if(!(n in e))Object.assign(r,{[n]:t[n]});else r[n]=mergeDeep(e[n],t[n])}else{Object.assign(r,{[n]:t[n]})}}));return r}function removeUndefinedProperties(e){for(const t in e){if(e[t]===void 0){delete e[t]}}return e}function merge(e,t,r){if(typeof t==="string"){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else{r=Object.assign({},t)}r.headers=lowercaseKeys(r.headers);removeUndefinedProperties(r);removeUndefinedProperties(r.headers);const n=mergeDeep(e||{},r);if(r.url==="/graphql"){if(e&&e.mediaType.previews?.length){n.mediaType.previews=e.mediaType.previews.filter((e=>!n.mediaType.previews.includes(e))).concat(n.mediaType.previews)}n.mediaType.previews=(n.mediaType.previews||[]).map((e=>e.replace(/-preview/,"")))}return n}function addQueryParameters(e,t){const r=/\?/.test(e)?"&":"?";const n=Object.keys(t);if(n.length===0){return e}return e+r+n.map((e=>{if(e==="q"){return"q="+t.q.split("+").map(encodeURIComponent).join("+")}return`${e}=${encodeURIComponent(t[e])}`})).join("&")}var d=/\{[^}]+\}/g;function removeNonChars(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function extractUrlVariableNames(e){const t=e.match(d);if(!t){return[]}return t.map(removeNonChars).reduce(((e,t)=>e.concat(t)),[])}function omit(e,t){const r={__proto__:null};for(const n of Object.keys(e)){if(t.indexOf(n)===-1){r[n]=e[n]}}return r}function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){if(!/%[0-9A-Fa-f]/.test(e)){e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")}return e})).join("")}function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(e,t,r){t=e==="+"||e==="#"?encodeReserved(t):encodeUnreserved(t);if(r){return encodeUnreserved(r)+"="+t}else{return t}}function isDefined(e){return e!==void 0&&e!==null}function isKeyOperator(e){return e===";"||e==="&"||e==="?"}function getValues(e,t,r,n){var s=e[r],o=[];if(isDefined(s)&&s!==""){if(typeof s==="string"||typeof s==="number"||typeof s==="boolean"){s=s.toString();if(n&&n!=="*"){s=s.substring(0,parseInt(n,10))}o.push(encodeValue(t,s,isKeyOperator(t)?r:""))}else{if(n==="*"){if(Array.isArray(s)){s.filter(isDefined).forEach((function(e){o.push(encodeValue(t,e,isKeyOperator(t)?r:""))}))}else{Object.keys(s).forEach((function(e){if(isDefined(s[e])){o.push(encodeValue(t,s[e],e))}}))}}else{const e=[];if(Array.isArray(s)){s.filter(isDefined).forEach((function(r){e.push(encodeValue(t,r))}))}else{Object.keys(s).forEach((function(r){if(isDefined(s[r])){e.push(encodeUnreserved(r));e.push(encodeValue(t,s[r].toString()))}}))}if(isKeyOperator(t)){o.push(encodeUnreserved(r)+"="+e.join(","))}else if(e.length!==0){o.push(e.join(","))}}}}else{if(t===";"){if(isDefined(s)){o.push(encodeUnreserved(r))}}else if(s===""&&(t==="&"||t==="?")){o.push(encodeUnreserved(r)+"=")}else if(s===""){o.push("")}}return o}function parseUrl(e){return{expand:expand.bind(null,e)}}function expand(e,t){var r=["+","#",".","/",";","?","&"];e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,n,s){if(n){let e="";const s=[];if(r.indexOf(n.charAt(0))!==-1){e=n.charAt(0);n=n.substr(1)}n.split(/,/g).forEach((function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);s.push(getValues(t,e,n[1],n[2]||n[3]))}));if(e&&e!=="+"){var o=",";if(e==="?"){o="&"}else if(e!=="#"){o=e}return(s.length!==0?e:"")+s.join(o)}else{return s.join(",")}}else{return encodeReserved(s)}}));if(e==="/"){return e}else{return e.replace(/\/$/,"")}}function parse(e){let t=e.method.toUpperCase();let r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let n=Object.assign({},e.headers);let s;let o=omit(e,["method","baseUrl","url","headers","request","mediaType"]);const i=extractUrlVariableNames(r);r=parseUrl(r).expand(o);if(!/^http/.test(r)){r=e.baseUrl+r}const a=Object.keys(e).filter((e=>i.includes(e))).concat("baseUrl");const c=omit(o,a);const u=/application\/octet-stream/i.test(n.accept);if(!u){if(e.mediaType.format){n.accept=n.accept.split(/,/).map((t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")}if(r.endsWith("/graphql")){if(e.mediaType.previews?.length){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map((t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`})).join(",")}}}if(["GET","HEAD"].includes(t)){r=addQueryParameters(r,c)}else{if("data"in c){s=c.data}else{if(Object.keys(c).length){s=c}}}if(!n["content-type"]&&typeof s!=="undefined"){n["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(t)&&typeof s==="undefined"){s=""}return Object.assign({method:t,url:r,headers:n},typeof s!=="undefined"?{body:s}:null,e.request?{request:e.request}:null)}function endpointWithDefaults(e,t,r){return parse(merge(e,t,r))}function withDefaults(e,t){const r=merge(e,t);const n=endpointWithDefaults.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:withDefaults.bind(null,r),merge:merge.bind(null,r),parse:parse})}var p=withDefaults(null,l);0&&0},35448:(e,t,r)=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let c of o(t))if(!i.call(e,c)&&c!==r)n(e,c,{get:()=>t[c],enumerable:!(a=s(t,c))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{GraphqlResponseError:()=>p,graphql:()=>E,withCustomRequest:()=>withCustomRequest});e.exports=__toCommonJS(a);var c=r(68576);var u=r(7900);var A="7.1.0";var l=r(68576);var d=r(68576);function _buildMessageForResponseErrors(e){return`Request failed due to following response errors:\n`+e.errors.map((e=>` - ${e.message}`)).join("\n")}var p=class extends Error{constructor(e,t,r){super(_buildMessageForResponseErrors(r));this.request=e;this.headers=t;this.response=r;this.name="GraphqlResponseError";this.errors=r.errors;this.data=r.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}};var g=["method","baseUrl","url","headers","request","query","mediaType"];var h=["query","method","url"];var m=/\/api\/v3\/?$/;function graphql(e,t,r){if(r){if(typeof t==="string"&&"query"in r){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const e in r){if(!h.includes(e))continue;return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}}const n=typeof t==="string"?Object.assign({query:t},r):t;const s=Object.keys(n).reduce(((e,t)=>{if(g.includes(t)){e[t]=n[t];return e}if(!e.variables){e.variables={}}e.variables[t]=n[t];return e}),{});const o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;if(m.test(o)){s.url=o.replace(m,"/api/graphql")}return e(s).then((e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers)){t[r]=e.headers[r]}throw new p(s,t,e.data)}return e.data.data}))}function withDefaults(e,t){const r=e.defaults(t);const newApi=(e,t)=>graphql(r,e,t);return Object.assign(newApi,{defaults:withDefaults.bind(null,r),endpoint:r.endpoint})}var E=withDefaults(c.request,{headers:{"user-agent":`octokit-graphql.js/${A} ${(0,u.getUserAgent)()}`},method:"POST",url:"/graphql"});function withCustomRequest(e){return withDefaults(e,{method:"POST",url:"/graphql"})}0&&0},37731:e=>{var t=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:true})};var __copyProps=(e,o,i,a)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let c of n(o))if(!s.call(e,c)&&c!==i)t(e,c,{get:()=>o[c],enumerable:!(a=r(o,c))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(t({},"__esModule",{value:true}),e);var o={};__export(o,{composePaginateRest:()=>a,isPaginatingEndpoint:()=>isPaginatingEndpoint,paginateRest:()=>paginateRest,paginatingEndpoints:()=>c});e.exports=__toCommonJS(o);var i="9.2.1";function normalizePaginatedListResponse(e){if(!e.data){return{...e,data:[]}}const t="total_count"in e.data&&!("url"in e.data);if(!t)return e;const r=e.data.incomplete_results;const n=e.data.repository_selection;const s=e.data.total_count;delete e.data.incomplete_results;delete e.data.repository_selection;delete e.data.total_count;const o=Object.keys(e.data)[0];const i=e.data[o];e.data=i;if(typeof r!=="undefined"){e.data.incomplete_results=r}if(typeof n!=="undefined"){e.data.repository_selection=n}e.data.total_count=s;return e}function iterator(e,t,r){const n=typeof t==="function"?t.endpoint(r):e.request.endpoint(t,r);const s=typeof t==="function"?t:e.request;const o=n.method;const i=n.headers;let a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:true};try{const e=await s({method:o,url:a,headers:i});const t=normalizePaginatedListResponse(e);a=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1];return{value:t}}catch(e){if(e.status!==409)throw e;a="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(e,t,r,n){if(typeof r==="function"){n=r;r=void 0}return gather(e,[],iterator(e,t,r)[Symbol.asyncIterator](),n)}function gather(e,t,r,n){return r.next().then((s=>{if(s.done){return t}let o=false;function done(){o=true}t=t.concat(n?n(s.value,done):s.value.data);if(o){return t}return gather(e,t,r,n)}))}var a=Object.assign(paginate,{iterator:iterator});var c=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","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/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}/copilot/billing/seats","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}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","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/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","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}/activity","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}/environments/{environment_name}/deployment_protection_rules/apps","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}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","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/social_accounts","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}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(e){if(typeof e==="string"){return c.includes(e)}else{return false}}function paginateRest(e){return{paginate:Object.assign(paginate.bind(null,e),{iterator:iterator.bind(null,e)})}}paginateRest.VERSION=i;0&&0},53345:e=>{var t=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:true})};var __copyProps=(e,o,i,a)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let c of n(o))if(!s.call(e,c)&&c!==i)t(e,c,{get:()=>o[c],enumerable:!(a=r(o,c))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(t({},"__esModule",{value:true}),e);var o={};__export(o,{legacyRestEndpointMethods:()=>legacyRestEndpointMethods,restEndpointMethods:()=>restEndpointMethods});e.exports=__toCommonJS(o);var i="10.4.1";var a={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};var c=a;var u=new Map;for(const[e,t]of Object.entries(c)){for(const[r,n]of Object.entries(t)){const[t,s,o]=n;const[i,a]=t.split(/ /);const c=Object.assign({method:i,url:a},s);if(!u.has(e)){u.set(e,new Map)}u.get(e).set(r,{scope:e,methodName:r,endpointDefaults:c,decorations:o})}}var A={has({scope:e},t){return u.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:true,writable:true,enumerable:true}},defineProperty(e,t,r){Object.defineProperty(e.cache,t,r);return true},deleteProperty(e,t){delete e.cache[t];return true},ownKeys({scope:e}){return[...u.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n]){return r[n]}const s=u.get(t).get(n);if(!s){return void 0}const{endpointDefaults:o,decorations:i}=s;if(i){r[n]=decorate(e,t,n,o,i)}else{r[n]=e.request.defaults(o)}return r[n]}};function endpointsToMethods(e){const t={};for(const r of u.keys()){t[r]=new Proxy({octokit:e,scope:r,cache:{}},A)}return t}function decorate(e,t,r,n,s){const o=e.request.defaults(n);function withDecorations(...n){let i=o.endpoint.merge(...n);if(s.mapToData){i=Object.assign({},i,{data:i[s.mapToData],[s.mapToData]:void 0});return o(i)}if(s.renamed){const[n,o]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(s.deprecated){e.log.warn(s.deprecated)}if(s.renamedParameters){const i=o.endpoint.merge(...n);for(const[n,o]of Object.entries(s.renamedParameters)){if(n in i){e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${o}" instead`);if(!(o in i)){i[o]=i[n]}delete i[n]}}return o(i)}return o(...n)}return Object.assign(withDecorations,o)}function restEndpointMethods(e){const t=endpointsToMethods(e);return{rest:t}}restEndpointMethods.VERSION=i;function legacyRestEndpointMethods(e){const t=endpointsToMethods(e);return{...t,rest:t}}legacyRestEndpointMethods.VERSION=i;0&&0},27651:(e,t,r)=>{var n=Object.create;var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var a=Object.getPrototypeOf;var c=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,n)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let a of i(t))if(!c.call(e,a)&&a!==r)s(e,a,{get:()=>t[a],enumerable:!(n=o(t,a))||n.enumerable})}return e};var __toESM=(e,t,r)=>(r=e!=null?n(a(e)):{},__copyProps(t||!e||!e.__esModule?s(r,"default",{value:e,enumerable:true}):r,e));var __toCommonJS=e=>__copyProps(s({},"__esModule",{value:true}),e);var u={};__export(u,{RequestError:()=>g});e.exports=__toCommonJS(u);var A=r(91769);var l=__toESM(r(55560));var d=(0,l.default)((e=>console.warn(e)));var p=(0,l.default)((e=>console.warn(e)));var g=class extends Error{constructor(e,t,r){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="HttpError";this.status=t;let n;if("headers"in r&&typeof r.headers!=="undefined"){n=r.headers}if("response"in r){this.response=r.response;n=r.response.headers}const s=Object.assign({},r.request);if(r.request.headers.authorization){s.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})}s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]");this.request=s;Object.defineProperty(this,"code",{get(){d(new A.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));return t}});Object.defineProperty(this,"headers",{get(){p(new A.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`."));return n||{}}})}};0&&0},68576:(e,t,r)=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let c of o(t))if(!i.call(e,c)&&c!==r)n(e,c,{get:()=>t[c],enumerable:!(a=s(t,c))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{request:()=>d});e.exports=__toCommonJS(a);var c=r(64806);var u=r(7900);var A="8.4.0";function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var l=r(27651);function getBufferResponse(e){return e.arrayBuffer()}function fetchWrapper(e){var t,r,n,s;const o=e.request&&e.request.log?e.request.log:console;const i=((t=e.request)==null?void 0:t.parseSuccessResponseBody)!==false;if(isPlainObject(e.body)||Array.isArray(e.body)){e.body=JSON.stringify(e.body)}let a={};let c;let u;let{fetch:A}=globalThis;if((r=e.request)==null?void 0:r.fetch){A=e.request.fetch}if(!A){throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing")}return A(e.url,{method:e.method,body:e.body,redirect:(n=e.request)==null?void 0:n.redirect,headers:e.headers,signal:(s=e.request)==null?void 0:s.signal,...e.body&&{duplex:"half"}}).then((async t=>{u=t.url;c=t.status;for(const e of t.headers){a[e[0]]=e[1]}if("deprecation"in a){const t=a.link&&a.link.match(/<([^>]+)>; rel="deprecation"/);const r=t&&t.pop();o.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${a.sunset}${r?`. See ${r}`:""}`)}if(c===204||c===205){return}if(e.method==="HEAD"){if(c<400){return}throw new l.RequestError(t.statusText,c,{response:{url:u,status:c,headers:a,data:void 0},request:e})}if(c===304){throw new l.RequestError("Not modified",c,{response:{url:u,status:c,headers:a,data:await getResponseData(t)},request:e})}if(c>=400){const r=await getResponseData(t);const n=new l.RequestError(toErrorMessage(r),c,{response:{url:u,status:c,headers:a,data:r},request:e});throw n}return i?await getResponseData(t):t.body})).then((e=>({status:c,url:u,headers:a,data:e}))).catch((t=>{if(t instanceof l.RequestError)throw t;else if(t.name==="AbortError")throw t;let r=t.message;if(t.name==="TypeError"&&"cause"in t){if(t.cause instanceof Error){r=t.cause.message}else if(typeof t.cause==="string"){r=t.cause}}throw new l.RequestError(r,500,{request:e})}))}async function getResponseData(e){const t=e.headers.get("content-type");if(/application\/json/.test(t)){return e.json().catch((()=>e.text())).catch((()=>""))}if(!t||/^text\/|charset=utf-8$/.test(t)){return e.text()}return getBufferResponse(e)}function toErrorMessage(e){if(typeof e==="string")return e;let t;if("documentation_url"in e){t=` - ${e.documentation_url}`}else{t=""}if("message"in e){if(Array.isArray(e.errors)){return`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}${t}`}return`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function withDefaults(e,t){const r=e.defaults(t);const newApi=function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook){return fetchWrapper(r.parse(n))}const request2=(e,t)=>fetchWrapper(r.parse(r.merge(e,t)));Object.assign(request2,{endpoint:r,defaults:withDefaults.bind(null,r)});return n.request.hook(request2,n)};return Object.assign(newApi,{endpoint:r,defaults:withDefaults.bind(null,r)})}var d=withDefaults(c.endpoint,{headers:{"user-agent":`octokit-request.js/${A} ${(0,u.getUserAgent)()}`}});0&&0},45029:(e,t,r)=>{var n=r(30604);var s=r(68878);var o=r(29357);var i=Function.bind;var a=i.bind(i);function bindApi(e,t,r){var n=a(o,null).apply(null,r?[t,r]:[t]);e.api={remove:n};e.remove=n;["before","error","after","wrap"].forEach((function(n){var o=r?[t,n,r]:[t,n];e[n]=e.api[n]=a(s,null).apply(null,o)}))}function HookSingular(){var e="h";var t={registry:{}};var r=n.bind(null,t,e);bindApi(r,t,e);return r}function HookCollection(){var e={registry:{}};var t=n.bind(null,e);bindApi(t,e);return t}var c=false;function Hook(){if(!c){console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4');c=true}return HookCollection()}Hook.Singular=HookSingular.bind();Hook.Collection=HookCollection.bind();e.exports=Hook;e.exports.Hook=Hook;e.exports.Singular=Hook.Singular;e.exports.Collection=Hook.Collection},68878:e=>{e.exports=addHook;function addHook(e,t,r,n){var s=n;if(!e.registry[r]){e.registry[r]=[]}if(t==="before"){n=function(e,t){return Promise.resolve().then(s.bind(null,t)).then(e.bind(null,t))}}if(t==="after"){n=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then((function(e){r=e;return s(r,t)})).then((function(){return r}))}}if(t==="error"){n=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch((function(e){return s(e,t)}))}}e.registry[r].push({hook:n,orig:s})}},30604:e=>{e.exports=register;function register(e,t,r,n){if(typeof r!=="function"){throw new Error("method for before hook must be a function")}if(!n){n={}}if(Array.isArray(t)){return t.reverse().reduce((function(t,r){return register.bind(null,e,r,t,n)}),r)()}return Promise.resolve().then((function(){if(!e.registry[t]){return r(n)}return e.registry[t].reduce((function(e,t){return t.hook.bind(null,e,n)}),r)()}))}},29357:e=>{e.exports=removeHook;function removeHook(e,t,r){if(!e.registry[t]){return}var n=e.registry[t].map((function(e){return e.orig})).indexOf(r);if(n===-1){return}e.registry[t].splice(n,1)}},7900:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&process.version!==undefined){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}t.getUserAgent=getUserAgent},44552:function(e,t){var r=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.PersonalAccessTokenCredentialHandler=t.BearerCredentialHandler=t.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,t){this.username=e;this.password=t}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},54844:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.HttpClient=t.isHttps=t.HttpClientResponse=t.HttpClientError=t.getProxyUrl=t.MediaTypes=t.Headers=t.HttpCodes=void 0;const a=o(r(58611));const c=o(r(65692));const u=o(r(54988));const A=o(r(20770));const l=r(24371);var d;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(d||(t.HttpCodes=d={}));var p;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(p||(t.Headers=p={}));var g;(function(e){e["ApplicationJson"]="application/json"})(g||(t.MediaTypes=g={}));function getProxyUrl(e){const t=u.getProxyUrl(new URL(e));return t?t.href:""}t.getProxyUrl=getProxyUrl;const h=[d.MovedPermanently,d.ResourceMoved,d.SeeOther,d.TemporaryRedirect,d.PermanentRedirect];const m=[d.BadGateway,d.ServiceUnavailable,d.GatewayTimeout];const E=["OPTIONS","GET","DELETE","HEAD"];const y=10;const I=5;class HttpClientError extends Error{constructor(e,t){super(e);this.name="HttpClientError";this.statusCode=t;Object.setPrototypeOf(this,HttpClientError.prototype)}}t.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return i(this,void 0,void 0,(function*(){return new Promise((e=>i(this,void 0,void 0,(function*(){let t=Buffer.alloc(0);this.message.on("data",(e=>{t=Buffer.concat([t,e])}));this.message.on("end",(()=>{e(t.toString())}))}))))}))}readBodyBuffer(){return i(this,void 0,void 0,(function*(){return new Promise((e=>i(this,void 0,void 0,(function*(){const t=[];this.message.on("data",(e=>{t.push(e)}));this.message.on("end",(()=>{e(Buffer.concat(t))}))}))))}))}}t.HttpClientResponse=HttpClientResponse;function isHttps(e){const t=new URL(e);return t.protocol==="https:"}t.isHttps=isHttps;class HttpClient{constructor(e,t,r){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=t||[];this.requestOptions=r;if(r){if(r.ignoreSslError!=null){this._ignoreSslError=r.ignoreSslError}this._socketTimeout=r.socketTimeout;if(r.allowRedirects!=null){this._allowRedirects=r.allowRedirects}if(r.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=r.allowRedirectDowngrade}if(r.maxRedirects!=null){this._maxRedirects=Math.max(r.maxRedirects,0)}if(r.keepAlive!=null){this._keepAlive=r.keepAlive}if(r.allowRetries!=null){this._allowRetries=r.allowRetries}if(r.maxRetries!=null){this._maxRetries=r.maxRetries}}}options(e,t){return i(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,t||{})}))}get(e,t){return i(this,void 0,void 0,(function*(){return this.request("GET",e,null,t||{})}))}del(e,t){return i(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,t||{})}))}post(e,t,r){return i(this,void 0,void 0,(function*(){return this.request("POST",e,t,r||{})}))}patch(e,t,r){return i(this,void 0,void 0,(function*(){return this.request("PATCH",e,t,r||{})}))}put(e,t,r){return i(this,void 0,void 0,(function*(){return this.request("PUT",e,t,r||{})}))}head(e,t){return i(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,t||{})}))}sendStream(e,t,r,n){return i(this,void 0,void 0,(function*(){return this.request(e,t,r,n)}))}getJson(e,t={}){return i(this,void 0,void 0,(function*(){t[p.Accept]=this._getExistingOrDefaultHeader(t,p.Accept,g.ApplicationJson);const r=yield this.get(e,t);return this._processResponse(r,this.requestOptions)}))}postJson(e,t,r={}){return i(this,void 0,void 0,(function*(){const n=JSON.stringify(t,null,2);r[p.Accept]=this._getExistingOrDefaultHeader(r,p.Accept,g.ApplicationJson);r[p.ContentType]=this._getExistingOrDefaultHeader(r,p.ContentType,g.ApplicationJson);const s=yield this.post(e,n,r);return this._processResponse(s,this.requestOptions)}))}putJson(e,t,r={}){return i(this,void 0,void 0,(function*(){const n=JSON.stringify(t,null,2);r[p.Accept]=this._getExistingOrDefaultHeader(r,p.Accept,g.ApplicationJson);r[p.ContentType]=this._getExistingOrDefaultHeader(r,p.ContentType,g.ApplicationJson);const s=yield this.put(e,n,r);return this._processResponse(s,this.requestOptions)}))}patchJson(e,t,r={}){return i(this,void 0,void 0,(function*(){const n=JSON.stringify(t,null,2);r[p.Accept]=this._getExistingOrDefaultHeader(r,p.Accept,g.ApplicationJson);r[p.ContentType]=this._getExistingOrDefaultHeader(r,p.ContentType,g.ApplicationJson);const s=yield this.patch(e,n,r);return this._processResponse(s,this.requestOptions)}))}request(e,t,r,n){return i(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const s=new URL(t);let o=this._prepareRequest(e,s,n);const i=this._allowRetries&&E.includes(e)?this._maxRetries+1:1;let a=0;let c;do{c=yield this.requestRaw(o,r);if(c&&c.message&&c.message.statusCode===d.Unauthorized){let e;for(const t of this.handlers){if(t.canHandleAuthentication(c)){e=t;break}}if(e){return e.handleAuthentication(this,o,r)}else{return c}}let t=this._maxRedirects;while(c.message.statusCode&&h.includes(c.message.statusCode)&&this._allowRedirects&&t>0){const i=c.message.headers["location"];if(!i){break}const a=new URL(i);if(s.protocol==="https:"&&s.protocol!==a.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield c.readBody();if(a.hostname!==s.hostname){for(const e in n){if(e.toLowerCase()==="authorization"){delete n[e]}}}o=this._prepareRequest(e,a,n);c=yield this.requestRaw(o,r);t--}if(!c.message.statusCode||!m.includes(c.message.statusCode)){return c}a+=1;if(a{function callbackForResult(e,t){if(e){n(e)}else if(!t){n(new Error("Unknown error"))}else{r(t)}}this.requestRawWithCallback(e,t,callbackForResult)}))}))}requestRawWithCallback(e,t,r){if(typeof t==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8")}let n=false;function handleResult(e,t){if(!n){n=true;r(e,t)}}const s=e.httpModule.request(e.options,(e=>{const t=new HttpClientResponse(e);handleResult(undefined,t)}));let o;s.on("socket",(e=>{o=e}));s.setTimeout(this._socketTimeout||3*6e4,(()=>{if(o){o.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));s.on("error",(function(e){handleResult(e)}));if(t&&typeof t==="string"){s.write(t,"utf8")}if(t&&typeof t!=="string"){t.on("close",(function(){s.end()}));t.pipe(s)}else{s.end()}}getAgent(e){const t=new URL(e);return this._getAgent(t)}getAgentDispatcher(e){const t=new URL(e);const r=u.getProxyUrl(t);const n=r&&r.hostname;if(!n){return}return this._getProxyAgentDispatcher(t,r)}_prepareRequest(e,t,r){const n={};n.parsedUrl=t;const s=n.parsedUrl.protocol==="https:";n.httpModule=s?c:a;const o=s?443:80;n.options={};n.options.host=n.parsedUrl.hostname;n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):o;n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||"");n.options.method=e;n.options.headers=this._mergeHeaders(r);if(this.userAgent!=null){n.options.headers["user-agent"]=this.userAgent}n.options.agent=this._getAgent(n.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(n.options)}}return n}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,t,r){let n;if(this.requestOptions&&this.requestOptions.headers){n=lowercaseKeys(this.requestOptions.headers)[t]}return e[t]||n||r}_getAgent(e){let t;const r=u.getProxyUrl(e);const n=r&&r.hostname;if(this._keepAlive&&n){t=this._proxyAgent}if(!n){t=this._agent}if(t){return t}const s=e.protocol==="https:";let o=100;if(this.requestOptions){o=this.requestOptions.maxSockets||a.globalAgent.maxSockets}if(r&&r.hostname){const e={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})};let n;const i=r.protocol==="https:";if(s){n=i?A.httpsOverHttps:A.httpsOverHttp}else{n=i?A.httpOverHttps:A.httpOverHttp}t=n(e);this._proxyAgent=t}if(!t){const e={keepAlive:this._keepAlive,maxSockets:o};t=s?new c.Agent(e):new a.Agent(e);this._agent=t}if(s&&this._ignoreSslError){t.options=Object.assign(t.options||{},{rejectUnauthorized:false})}return t}_getProxyAgentDispatcher(e,t){let r;if(this._keepAlive){r=this._proxyAgentDispatcher}if(r){return r}const n=e.protocol==="https:";r=new l.ProxyAgent(Object.assign({uri:t.href,pipelining:!this._keepAlive?0:1},(t.username||t.password)&&{token:`Basic ${Buffer.from(`${t.username}:${t.password}`).toString("base64")}`}));this._proxyAgentDispatcher=r;if(n&&this._ignoreSslError){r.options=Object.assign(r.options.requestTls||{},{rejectUnauthorized:false})}return r}_performExponentialBackoff(e){return i(this,void 0,void 0,(function*(){e=Math.min(y,e);const t=I*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),t)))}))}_processResponse(e,t){return i(this,void 0,void 0,(function*(){return new Promise(((r,n)=>i(this,void 0,void 0,(function*(){const s=e.message.statusCode||0;const o={statusCode:s,result:null,headers:{}};if(s===d.NotFound){r(o)}function dateTimeDeserializer(e,t){if(typeof t==="string"){const e=new Date(t);if(!isNaN(e.valueOf())){return e}}return t}let i;let a;try{a=yield e.readBody();if(a&&a.length>0){if(t&&t.deserializeDates){i=JSON.parse(a,dateTimeDeserializer)}else{i=JSON.parse(a)}o.result=i}o.headers=e.message.headers}catch(e){}if(s>299){let e;if(i&&i.message){e=i.message}else if(a&&a.length>0){e=a}else{e=`Failed request: (${s})`}const t=new HttpClientError(e,s);t.result=o.result;n(t)}else{r(o)}}))))}))}}t.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((t,r)=>(t[r.toLowerCase()]=e[r],t)),{})},54988:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.checkBypass=t.getProxyUrl=void 0;function getProxyUrl(e){const t=e.protocol==="https:";if(checkBypass(e)){return undefined}const r=(()=>{if(t){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(r){try{return new DecodedURL(r)}catch(e){if(!r.startsWith("http://")&&!r.startsWith("https://"))return new DecodedURL(`http://${r}`)}}else{return undefined}}t.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const t=e.hostname;if(isLoopbackAddress(t)){return true}const r=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!r){return false}let n;if(e.port){n=Number(e.port)}else if(e.protocol==="http:"){n=80}else if(e.protocol==="https:"){n=443}const s=[e.hostname.toUpperCase()];if(typeof n==="number"){s.push(`${s[0]}:${n}`)}for(const e of r.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(e==="*"||s.some((t=>t===e||t.endsWith(`.${e}`)||e.startsWith(".")&&t.endsWith(`${e}`)))){return true}}return false}t.checkBypass=checkBypass;function isLoopbackAddress(e){const t=e.toLowerCase();return t==="localhost"||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]")}class DecodedURL extends URL{constructor(e,t){super(e,t);this._decodedUsername=decodeURIComponent(super.username);this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}},75364:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeCompiler=t.Policy=t.TypeCompilerTypeGuardError=t.TypeCompilerUnknownTypeError=t.TypeCheck=void 0;const n=r(50038);const s=r(65507);const o=r(82129);const i=r(26113);const a=r(40886);const c=r(7210);const u=r(97034);const A=r(51786);const l=r(73373);const d=r(82486);const p=r(54025);const g=r(17479);const h=r(70384);class TypeCheck{constructor(e,t,r,s){this.schema=e;this.references=t;this.checkFunc=r;this.code=s;this.hasTransform=(0,n.HasTransform)(e,t)}Code(){return this.code}Errors(e){return(0,s.Errors)(this.schema,this.references,e)}Check(e){return this.checkFunc(e)}Decode(e){if(!this.checkFunc(e))throw new n.TransformDecodeCheckError(this.schema,e,this.Errors(e).First());return this.hasTransform?(0,n.TransformDecode)(this.schema,this.references,e):e}Encode(e){const t=this.hasTransform?(0,n.TransformEncode)(this.schema,this.references,e):e;if(!this.checkFunc(t))throw new n.TransformEncodeCheckError(this.schema,e,this.Errors(e).First());return t}}t.TypeCheck=TypeCheck;var m;(function(e){function DollarSign(e){return e===36}e.DollarSign=DollarSign;function IsUnderscore(e){return e===95}e.IsUnderscore=IsUnderscore;function IsAlpha(e){return e>=65&&e<=90||e>=97&&e<=122}e.IsAlpha=IsAlpha;function IsNumeric(e){return e>=48&&e<=57}e.IsNumeric=IsNumeric})(m||(m={}));var E;(function(e){function IsFirstCharacterNumeric(e){if(e.length===0)return false;return m.IsNumeric(e.charCodeAt(0))}function IsAccessor(e){if(IsFirstCharacterNumeric(e))return false;for(let t=0;t= ${e.minItems}`;const o=CreateExpression(e.items,t,"value");yield`${r}.every((${n}) => ${o})`;if((0,h.IsSchema)(e.contains)||(0,g.IsNumber)(e.minContains)||(0,g.IsNumber)(e.maxContains)){const o=(0,h.IsSchema)(e.contains)?e.contains:(0,p.Never)();const i=CreateExpression(o,t,"value");const a=(0,g.IsNumber)(e.minContains)?[`(count >= ${e.minContains})`]:[];const c=(0,g.IsNumber)(e.maxContains)?[`(count <= ${e.maxContains})`]:[];const u=`const count = value.reduce((${s}, ${n}) => ${i} ? acc + 1 : acc, 0)`;const A=[`(count > 0)`,...a,...c].join(" && ");yield`((${n}) => { ${u}; return ${A}})(${r})`}if(e.uniqueItems===true){const e=`const hashed = hash(element); if(set.has(hashed)) { return false } else { set.add(hashed) } } return true`;const t=`const set = new Set(); for(const element of value) { ${e} }`;yield`((${n}) => { ${t} )(${r})`}}function*FromAsyncIterator(e,t,r){yield`(typeof value === 'object' && Symbol.asyncIterator in ${r})`}function*FromBigInt(e,t,r){yield`(typeof ${r} === 'bigint')`;if((0,g.IsBigInt)(e.exclusiveMaximum))yield`${r} < BigInt(${e.exclusiveMaximum})`;if((0,g.IsBigInt)(e.exclusiveMinimum))yield`${r} > BigInt(${e.exclusiveMinimum})`;if((0,g.IsBigInt)(e.maximum))yield`${r} <= BigInt(${e.maximum})`;if((0,g.IsBigInt)(e.minimum))yield`${r} >= BigInt(${e.minimum})`;if((0,g.IsBigInt)(e.multipleOf))yield`(${r} % BigInt(${e.multipleOf})) === 0`}function*FromBoolean(e,t,r){yield`(typeof ${r} === 'boolean')`}function*FromConstructor(e,t,r){yield*Visit(e.returns,t,`${r}.prototype`)}function*FromDate(e,t,r){yield`(${r} instanceof Date) && Number.isFinite(${r}.getTime())`;if((0,g.IsNumber)(e.exclusiveMaximumTimestamp))yield`${r}.getTime() < ${e.exclusiveMaximumTimestamp}`;if((0,g.IsNumber)(e.exclusiveMinimumTimestamp))yield`${r}.getTime() > ${e.exclusiveMinimumTimestamp}`;if((0,g.IsNumber)(e.maximumTimestamp))yield`${r}.getTime() <= ${e.maximumTimestamp}`;if((0,g.IsNumber)(e.minimumTimestamp))yield`${r}.getTime() >= ${e.minimumTimestamp}`;if((0,g.IsNumber)(e.multipleOfTimestamp))yield`(${r}.getTime() % ${e.multipleOfTimestamp}) === 0`}function*FromFunction(e,t,r){yield`(typeof ${r} === 'function')`}function*FromInteger(e,t,r){yield`Number.isInteger(${r})`;if((0,g.IsNumber)(e.exclusiveMaximum))yield`${r} < ${e.exclusiveMaximum}`;if((0,g.IsNumber)(e.exclusiveMinimum))yield`${r} > ${e.exclusiveMinimum}`;if((0,g.IsNumber)(e.maximum))yield`${r} <= ${e.maximum}`;if((0,g.IsNumber)(e.minimum))yield`${r} >= ${e.minimum}`;if((0,g.IsNumber)(e.multipleOf))yield`(${r} % ${e.multipleOf}) === 0`}function*FromIntersect(e,t,r){const n=e.allOf.map((e=>CreateExpression(e,t,r))).join(" && ");if(e.unevaluatedProperties===false){const t=CreateVariable(`${new RegExp((0,l.KeyOfPattern)(e))};`);const s=`Object.getOwnPropertyNames(${r}).every(key => ${t}.test(key))`;yield`(${n} && ${s})`}else if((0,h.IsSchema)(e.unevaluatedProperties)){const s=CreateVariable(`${new RegExp((0,l.KeyOfPattern)(e))};`);const o=`Object.getOwnPropertyNames(${r}).every(key => ${s}.test(key) || ${CreateExpression(e.unevaluatedProperties,t,`${r}[key]`)})`;yield`(${n} && ${o})`}else{yield`(${n})`}}function*FromIterator(e,t,r){yield`(typeof value === 'object' && Symbol.iterator in ${r})`}function*FromLiteral(e,t,r){if(typeof e.const==="number"||typeof e.const==="boolean"){yield`(${r} === ${e.const})`}else{yield`(${r} === '${I.Escape(e.const)}')`}}function*FromNever(e,t,r){yield`false`}function*FromNot(e,t,r){const n=CreateExpression(e.not,t,r);yield`(!${n})`}function*FromNull(e,t,r){yield`(${r} === null)`}function*FromNumber(e,t,r){yield C.IsNumberLike(r);if((0,g.IsNumber)(e.exclusiveMaximum))yield`${r} < ${e.exclusiveMaximum}`;if((0,g.IsNumber)(e.exclusiveMinimum))yield`${r} > ${e.exclusiveMinimum}`;if((0,g.IsNumber)(e.maximum))yield`${r} <= ${e.maximum}`;if((0,g.IsNumber)(e.minimum))yield`${r} >= ${e.minimum}`;if((0,g.IsNumber)(e.multipleOf))yield`(${r} % ${e.multipleOf}) === 0`}function*FromObject(e,t,r){yield C.IsObjectLike(r);if((0,g.IsNumber)(e.minProperties))yield`Object.getOwnPropertyNames(${r}).length >= ${e.minProperties}`;if((0,g.IsNumber)(e.maxProperties))yield`Object.getOwnPropertyNames(${r}).length <= ${e.maxProperties}`;const n=Object.getOwnPropertyNames(e.properties);for(const s of n){const n=E.Encode(r,s);const o=e.properties[s];if(e.required&&e.required.includes(s)){yield*Visit(o,t,n);if((0,d.ExtendsUndefinedCheck)(o)||IsAnyOrUnknown(o))yield`('${s}' in ${r})`}else{const e=CreateExpression(o,t,n);yield C.IsExactOptionalProperty(r,s,e)}}if(e.additionalProperties===false){if(e.required&&e.required.length===n.length){yield`Object.getOwnPropertyNames(${r}).length === ${n.length}`}else{const e=`[${n.map((e=>`'${e}'`)).join(", ")}]`;yield`Object.getOwnPropertyNames(${r}).every(key => ${e}.includes(key))`}}if(typeof e.additionalProperties==="object"){const s=CreateExpression(e.additionalProperties,t,`${r}[key]`);const o=`[${n.map((e=>`'${e}'`)).join(", ")}]`;yield`(Object.getOwnPropertyNames(${r}).every(key => ${o}.includes(key) || ${s}))`}}function*FromPromise(e,t,r){yield`(typeof value === 'object' && typeof ${r}.then === 'function')`}function*FromRecord(e,t,r){yield C.IsRecordLike(r);if((0,g.IsNumber)(e.minProperties))yield`Object.getOwnPropertyNames(${r}).length >= ${e.minProperties}`;if((0,g.IsNumber)(e.maxProperties))yield`Object.getOwnPropertyNames(${r}).length <= ${e.maxProperties}`;const[n,s]=Object.entries(e.patternProperties)[0];const o=CreateVariable(`${new RegExp(n)}`);const i=CreateExpression(s,t,"value");const a=(0,h.IsSchema)(e.additionalProperties)?CreateExpression(e.additionalProperties,t,r):e.additionalProperties===false?"false":"true";const c=`(${o}.test(key) ? ${i} : ${a})`;yield`(Object.entries(${r}).every(([key, value]) => ${c}))`}function*FromRef(e,r,n){const s=(0,a.Deref)(e,r);if(t.functions.has(e.$ref))return yield`${CreateFunctionName(e.$ref)}(${n})`;yield*Visit(s,r,n)}function*FromRegExp(e,t,r){const n=CreateVariable(`${new RegExp(e.source,e.flags)};`);yield`(typeof ${r} === 'string')`;if((0,g.IsNumber)(e.maxLength))yield`${r}.length <= ${e.maxLength}`;if((0,g.IsNumber)(e.minLength))yield`${r}.length >= ${e.minLength}`;yield`${n}.test(${r})`}function*FromString(e,t,r){yield`(typeof ${r} === 'string')`;if((0,g.IsNumber)(e.maxLength))yield`${r}.length <= ${e.maxLength}`;if((0,g.IsNumber)(e.minLength))yield`${r}.length >= ${e.minLength}`;if(e.pattern!==undefined){const t=CreateVariable(`${new RegExp(e.pattern)};`);yield`${t}.test(${r})`}if(e.format!==undefined){yield`format('${e.format}', ${r})`}}function*FromSymbol(e,t,r){yield`(typeof ${r} === 'symbol')`}function*FromTemplateLiteral(e,t,r){yield`(typeof ${r} === 'string')`;const n=CreateVariable(`${new RegExp(e.pattern)};`);yield`${n}.test(${r})`}function*FromThis(e,t,r){yield`${CreateFunctionName(e.$ref)}(${r})`}function*FromTuple(e,t,r){yield`Array.isArray(${r})`;if(e.items===undefined)return yield`${r}.length === 0`;yield`(${r}.length === ${e.maxItems})`;for(let n=0;nCreateExpression(e,t,r)));yield`(${n.join(" || ")})`}function*FromUint8Array(e,t,r){yield`${r} instanceof Uint8Array`;if((0,g.IsNumber)(e.maxByteLength))yield`(${r}.length <= ${e.maxByteLength})`;if((0,g.IsNumber)(e.minByteLength))yield`(${r}.length >= ${e.minByteLength})`}function*FromUnknown(e,t,r){yield"true"}function*FromVoid(e,t,r){yield C.IsVoidLike(r)}function*FromKind(e,r,n){const s=t.instances.size;t.instances.set(s,e);yield`kind('${e[u.Kind]}', ${s}, ${n})`}function*Visit(e,r,n,s=true){const o=(0,g.IsString)(e.$id)?[...r,e]:r;const i=e;if(s&&(0,g.IsString)(e.$id)){const s=CreateFunctionName(e.$id);if(t.functions.has(s)){return yield`${s}(${n})`}else{const o=CreateFunction(s,e,r,"value",false);t.functions.set(s,o);return yield`${s}(${n})`}}switch(i[u.Kind]){case"Any":return yield*FromAny(i,o,n);case"Array":return yield*FromArray(i,o,n);case"AsyncIterator":return yield*FromAsyncIterator(i,o,n);case"BigInt":return yield*FromBigInt(i,o,n);case"Boolean":return yield*FromBoolean(i,o,n);case"Constructor":return yield*FromConstructor(i,o,n);case"Date":return yield*FromDate(i,o,n);case"Function":return yield*FromFunction(i,o,n);case"Integer":return yield*FromInteger(i,o,n);case"Intersect":return yield*FromIntersect(i,o,n);case"Iterator":return yield*FromIterator(i,o,n);case"Literal":return yield*FromLiteral(i,o,n);case"Never":return yield*FromNever(i,o,n);case"Not":return yield*FromNot(i,o,n);case"Null":return yield*FromNull(i,o,n);case"Number":return yield*FromNumber(i,o,n);case"Object":return yield*FromObject(i,o,n);case"Promise":return yield*FromPromise(i,o,n);case"Record":return yield*FromRecord(i,o,n);case"Ref":return yield*FromRef(i,o,n);case"RegExp":return yield*FromRegExp(i,o,n);case"String":return yield*FromString(i,o,n);case"Symbol":return yield*FromSymbol(i,o,n);case"TemplateLiteral":return yield*FromTemplateLiteral(i,o,n);case"This":return yield*FromThis(i,o,n);case"Tuple":return yield*FromTuple(i,o,n);case"Undefined":return yield*FromUndefined(i,o,n);case"Union":return yield*FromUnion(i,o,n);case"Uint8Array":return yield*FromUint8Array(i,o,n);case"Unknown":return yield*FromUnknown(i,o,n);case"Void":return yield*FromVoid(i,o,n);default:if(!A.TypeRegistry.Has(i[u.Kind]))throw new TypeCompilerUnknownTypeError(e);return yield*FromKind(i,o,n)}}const t={language:"javascript",functions:new Map,variables:new Map,instances:new Map};function CreateExpression(e,t,r,n=true){return`(${[...Visit(e,t,r,n)].join(" && ")})`}function CreateFunctionName(e){return`check_${y.Encode(e)}`}function CreateVariable(e){const r=`local_${t.variables.size}`;t.variables.set(r,`const ${r} = ${e}`);return r}function CreateFunction(e,t,r,n,s=true){const[o,i]=["\n",e=>"".padStart(e," ")];const a=CreateParameter("value","any");const c=CreateReturns("boolean");const u=[...Visit(t,r,n,s)].map((e=>`${i(4)}${e}`)).join(` &&${o}`);return`function ${e}(${a})${c} {${o}${i(2)}return (${o}${u}${o}${i(2)})\n}`}function CreateParameter(e,r){const n=t.language==="typescript"?`: ${r}`:"";return`${e}${n}`}function CreateReturns(e){return t.language==="typescript"?`: ${e}`:""}function Build(e,r,n){const s=CreateFunction("check",e,r,"value");const o=CreateParameter("value","any");const i=CreateReturns("boolean");const a=[...t.functions.values()];const c=[...t.variables.values()];const u=(0,g.IsString)(e.$id)?`return function check(${o})${i} {\n return ${CreateFunctionName(e.$id)}(value)\n}`:`return ${s}`;return[...c,...a,u].join("\n")}function Code(...e){const r={language:"javascript"};const[n,s,o]=e.length===2&&(0,g.IsArray)(e[1])?[e[0],e[1],r]:e.length===2&&!(0,g.IsArray)(e[1])?[e[0],[],e[1]]:e.length===3?[e[0],e[1],e[2]]:e.length===1?[e[0],[],r]:[null,[],r];t.language=o.language;t.variables.clear();t.functions.clear();t.instances.clear();if(!(0,h.IsSchema)(n))throw new TypeCompilerTypeGuardError(n);for(const e of s)if(!(0,h.IsSchema)(e))throw new TypeCompilerTypeGuardError(e);return Build(n,s,o)}e.Code=Code;function Compile(e,r=[]){const n=Code(e,r,{language:"javascript"});const s=globalThis.Function("kind","format","hash",n);const o=new Map(t.instances);function typeRegistryFunction(e,t,r){if(!A.TypeRegistry.Has(e)||!o.has(t))return false;const n=A.TypeRegistry.Get(e);const s=o.get(t);return n(s,r)}function formatRegistryFunction(e,t){if(!A.FormatRegistry.Has(e))return false;const r=A.FormatRegistry.Get(e);return r(t)}function hashFunction(e){return(0,c.Hash)(e)}const i=s(typeRegistryFunction,formatRegistryFunction,hashFunction);return new TypeCheck(e,r,i,n)}e.Compile=Compile})(b||(t.TypeCompiler=b={}))},25269:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});t.ValueErrorIterator=t.ValueErrorType=void 0;var o=r(65507);Object.defineProperty(t,"ValueErrorType",{enumerable:true,get:function(){return o.ValueErrorType}});Object.defineProperty(t,"ValueErrorIterator",{enumerable:true,get:function(){return o.ValueErrorIterator}});s(r(75364),t)},91660:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValueErrorIterator=t.ValueErrorsUnknownTypeError=t.ValueErrorType=void 0;t.Errors=Errors;const n=r(82129);const s=r(73373);const o=r(51786);const i=r(82486);const a=r(84039);const c=r(26113);const u=r(40886);const A=r(7210);const l=r(97034);const d=r(54025);const p=r(17479);var g;(function(e){e[e["ArrayContains"]=0]="ArrayContains";e[e["ArrayMaxContains"]=1]="ArrayMaxContains";e[e["ArrayMaxItems"]=2]="ArrayMaxItems";e[e["ArrayMinContains"]=3]="ArrayMinContains";e[e["ArrayMinItems"]=4]="ArrayMinItems";e[e["ArrayUniqueItems"]=5]="ArrayUniqueItems";e[e["Array"]=6]="Array";e[e["AsyncIterator"]=7]="AsyncIterator";e[e["BigIntExclusiveMaximum"]=8]="BigIntExclusiveMaximum";e[e["BigIntExclusiveMinimum"]=9]="BigIntExclusiveMinimum";e[e["BigIntMaximum"]=10]="BigIntMaximum";e[e["BigIntMinimum"]=11]="BigIntMinimum";e[e["BigIntMultipleOf"]=12]="BigIntMultipleOf";e[e["BigInt"]=13]="BigInt";e[e["Boolean"]=14]="Boolean";e[e["DateExclusiveMaximumTimestamp"]=15]="DateExclusiveMaximumTimestamp";e[e["DateExclusiveMinimumTimestamp"]=16]="DateExclusiveMinimumTimestamp";e[e["DateMaximumTimestamp"]=17]="DateMaximumTimestamp";e[e["DateMinimumTimestamp"]=18]="DateMinimumTimestamp";e[e["DateMultipleOfTimestamp"]=19]="DateMultipleOfTimestamp";e[e["Date"]=20]="Date";e[e["Function"]=21]="Function";e[e["IntegerExclusiveMaximum"]=22]="IntegerExclusiveMaximum";e[e["IntegerExclusiveMinimum"]=23]="IntegerExclusiveMinimum";e[e["IntegerMaximum"]=24]="IntegerMaximum";e[e["IntegerMinimum"]=25]="IntegerMinimum";e[e["IntegerMultipleOf"]=26]="IntegerMultipleOf";e[e["Integer"]=27]="Integer";e[e["IntersectUnevaluatedProperties"]=28]="IntersectUnevaluatedProperties";e[e["Intersect"]=29]="Intersect";e[e["Iterator"]=30]="Iterator";e[e["Kind"]=31]="Kind";e[e["Literal"]=32]="Literal";e[e["Never"]=33]="Never";e[e["Not"]=34]="Not";e[e["Null"]=35]="Null";e[e["NumberExclusiveMaximum"]=36]="NumberExclusiveMaximum";e[e["NumberExclusiveMinimum"]=37]="NumberExclusiveMinimum";e[e["NumberMaximum"]=38]="NumberMaximum";e[e["NumberMinimum"]=39]="NumberMinimum";e[e["NumberMultipleOf"]=40]="NumberMultipleOf";e[e["Number"]=41]="Number";e[e["ObjectAdditionalProperties"]=42]="ObjectAdditionalProperties";e[e["ObjectMaxProperties"]=43]="ObjectMaxProperties";e[e["ObjectMinProperties"]=44]="ObjectMinProperties";e[e["ObjectRequiredProperty"]=45]="ObjectRequiredProperty";e[e["Object"]=46]="Object";e[e["Promise"]=47]="Promise";e[e["RegExp"]=48]="RegExp";e[e["StringFormatUnknown"]=49]="StringFormatUnknown";e[e["StringFormat"]=50]="StringFormat";e[e["StringMaxLength"]=51]="StringMaxLength";e[e["StringMinLength"]=52]="StringMinLength";e[e["StringPattern"]=53]="StringPattern";e[e["String"]=54]="String";e[e["Symbol"]=55]="Symbol";e[e["TupleLength"]=56]="TupleLength";e[e["Tuple"]=57]="Tuple";e[e["Uint8ArrayMaxByteLength"]=58]="Uint8ArrayMaxByteLength";e[e["Uint8ArrayMinByteLength"]=59]="Uint8ArrayMinByteLength";e[e["Uint8Array"]=60]="Uint8Array";e[e["Undefined"]=61]="Undefined";e[e["Union"]=62]="Union";e[e["Void"]=63]="Void"})(g||(t.ValueErrorType=g={}));class ValueErrorsUnknownTypeError extends c.TypeBoxError{constructor(e){super("Unknown type");this.schema=e}}t.ValueErrorsUnknownTypeError=ValueErrorsUnknownTypeError;function EscapeKey(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function IsDefined(e){return e!==undefined}class ValueErrorIterator{constructor(e){this.iterator=e}[Symbol.iterator](){return this.iterator}First(){const e=this.iterator.next();return e.done?undefined:e.value}}t.ValueErrorIterator=ValueErrorIterator;function Create(e,t,r,n){return{type:e,schema:t,path:r,value:n,message:(0,a.GetErrorFunction)()({errorType:e,path:r,schema:t,value:n})}}function*FromAny(e,t,r,n){}function*FromArray(e,t,r,n){if(!(0,p.IsArray)(n)){return yield Create(g.Array,e,r,n)}if(IsDefined(e.minItems)&&!(n.length>=e.minItems)){yield Create(g.ArrayMinItems,e,r,n)}if(IsDefined(e.maxItems)&&!(n.length<=e.maxItems)){yield Create(g.ArrayMaxItems,e,r,n)}for(let s=0;sVisit(s,t,`${r}${o}`,n).next().done===true?e+1:e),0);if(o===0){yield Create(g.ArrayContains,e,r,n)}if((0,p.IsNumber)(e.minContains)&&oe.maxContains){yield Create(g.ArrayMaxContains,e,r,n)}}function*FromAsyncIterator(e,t,r,n){if(!(0,p.IsAsyncIterator)(n))yield Create(g.AsyncIterator,e,r,n)}function*FromBigInt(e,t,r,n){if(!(0,p.IsBigInt)(n))return yield Create(g.BigInt,e,r,n);if(IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(g.BigIntExclusiveMinimum,e,r,n)}if(IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(g.BigIntMaximum,e,r,n)}if(IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(g.BigIntMinimum,e,r,n)}if(IsDefined(e.multipleOf)&&!(n%e.multipleOf===BigInt(0))){yield Create(g.BigIntMultipleOf,e,r,n)}}function*FromBoolean(e,t,r,n){if(!(0,p.IsBoolean)(n))yield Create(g.Boolean,e,r,n)}function*FromConstructor(e,t,r,n){yield*Visit(e.returns,t,r,n.prototype)}function*FromDate(e,t,r,n){if(!(0,p.IsDate)(n))return yield Create(g.Date,e,r,n);if(IsDefined(e.exclusiveMaximumTimestamp)&&!(n.getTime()e.exclusiveMinimumTimestamp)){yield Create(g.DateExclusiveMinimumTimestamp,e,r,n)}if(IsDefined(e.maximumTimestamp)&&!(n.getTime()<=e.maximumTimestamp)){yield Create(g.DateMaximumTimestamp,e,r,n)}if(IsDefined(e.minimumTimestamp)&&!(n.getTime()>=e.minimumTimestamp)){yield Create(g.DateMinimumTimestamp,e,r,n)}if(IsDefined(e.multipleOfTimestamp)&&!(n.getTime()%e.multipleOfTimestamp===0)){yield Create(g.DateMultipleOfTimestamp,e,r,n)}}function*FromFunction(e,t,r,n){if(!(0,p.IsFunction)(n))yield Create(g.Function,e,r,n)}function*FromInteger(e,t,r,n){if(!(0,p.IsInteger)(n))return yield Create(g.Integer,e,r,n);if(IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(g.IntegerExclusiveMinimum,e,r,n)}if(IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(g.IntegerMaximum,e,r,n)}if(IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(g.IntegerMinimum,e,r,n)}if(IsDefined(e.multipleOf)&&!(n%e.multipleOf===0)){yield Create(g.IntegerMultipleOf,e,r,n)}}function*FromIntersect(e,t,r,n){for(const s of e.allOf){const o=Visit(s,t,r,n).next();if(!o.done){yield Create(g.Intersect,e,r,n);yield o.value}}if(e.unevaluatedProperties===false){const t=new RegExp((0,s.KeyOfPattern)(e));for(const s of Object.getOwnPropertyNames(n)){if(!t.test(s)){yield Create(g.IntersectUnevaluatedProperties,e,`${r}/${s}`,n)}}}if(typeof e.unevaluatedProperties==="object"){const o=new RegExp((0,s.KeyOfPattern)(e));for(const s of Object.getOwnPropertyNames(n)){if(!o.test(s)){const o=Visit(e.unevaluatedProperties,t,`${r}/${s}`,n[s]).next();if(!o.done)yield o.value}}}}function*FromIterator(e,t,r,n){if(!(0,p.IsIterator)(n))yield Create(g.Iterator,e,r,n)}function*FromLiteral(e,t,r,n){if(!(n===e.const))yield Create(g.Literal,e,r,n)}function*FromNever(e,t,r,n){yield Create(g.Never,e,r,n)}function*FromNot(e,t,r,n){if(Visit(e.not,t,r,n).next().done===true)yield Create(g.Not,e,r,n)}function*FromNull(e,t,r,n){if(!(0,p.IsNull)(n))yield Create(g.Null,e,r,n)}function*FromNumber(e,t,r,s){if(!n.TypeSystemPolicy.IsNumberLike(s))return yield Create(g.Number,e,r,s);if(IsDefined(e.exclusiveMaximum)&&!(se.exclusiveMinimum)){yield Create(g.NumberExclusiveMinimum,e,r,s)}if(IsDefined(e.maximum)&&!(s<=e.maximum)){yield Create(g.NumberMaximum,e,r,s)}if(IsDefined(e.minimum)&&!(s>=e.minimum)){yield Create(g.NumberMinimum,e,r,s)}if(IsDefined(e.multipleOf)&&!(s%e.multipleOf===0)){yield Create(g.NumberMultipleOf,e,r,s)}}function*FromObject(e,t,r,s){if(!n.TypeSystemPolicy.IsObjectLike(s))return yield Create(g.Object,e,r,s);if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(s).length>=e.minProperties)){yield Create(g.ObjectMinProperties,e,r,s)}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(s).length<=e.maxProperties)){yield Create(g.ObjectMaxProperties,e,r,s)}const o=Array.isArray(e.required)?e.required:[];const a=Object.getOwnPropertyNames(e.properties);const c=Object.getOwnPropertyNames(s);for(const t of o){if(c.includes(t))continue;yield Create(g.ObjectRequiredProperty,e.properties[t],`${r}/${EscapeKey(t)}`,undefined)}if(e.additionalProperties===false){for(const t of c){if(!a.includes(t)){yield Create(g.ObjectAdditionalProperties,e,`${r}/${EscapeKey(t)}`,s[t])}}}if(typeof e.additionalProperties==="object"){for(const n of c){if(a.includes(n))continue;yield*Visit(e.additionalProperties,t,`${r}/${EscapeKey(n)}`,s[n])}}for(const o of a){const a=e.properties[o];if(e.required&&e.required.includes(o)){yield*Visit(a,t,`${r}/${EscapeKey(o)}`,s[o]);if((0,i.ExtendsUndefinedCheck)(e)&&!(o in s)){yield Create(g.ObjectRequiredProperty,a,`${r}/${EscapeKey(o)}`,undefined)}}else{if(n.TypeSystemPolicy.IsExactOptionalProperty(s,o)){yield*Visit(a,t,`${r}/${EscapeKey(o)}`,s[o])}}}}function*FromPromise(e,t,r,n){if(!(0,p.IsPromise)(n))yield Create(g.Promise,e,r,n)}function*FromRecord(e,t,r,s){if(!n.TypeSystemPolicy.IsRecordLike(s))return yield Create(g.Object,e,r,s);if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(s).length>=e.minProperties)){yield Create(g.ObjectMinProperties,e,r,s)}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(s).length<=e.maxProperties)){yield Create(g.ObjectMaxProperties,e,r,s)}const[o,i]=Object.entries(e.patternProperties)[0];const a=new RegExp(o);for(const[e,n]of Object.entries(s)){if(a.test(e))yield*Visit(i,t,`${r}/${EscapeKey(e)}`,n)}if(typeof e.additionalProperties==="object"){for(const[n,o]of Object.entries(s)){if(!a.test(n))yield*Visit(e.additionalProperties,t,`${r}/${EscapeKey(n)}`,o)}}if(e.additionalProperties===false){for(const[t,n]of Object.entries(s)){if(a.test(t))continue;return yield Create(g.ObjectAdditionalProperties,e,`${r}/${EscapeKey(t)}`,n)}}}function*FromRef(e,t,r,n){yield*Visit((0,u.Deref)(e,t),t,r,n)}function*FromRegExp(e,t,r,n){if(!(0,p.IsString)(n))return yield Create(g.String,e,r,n);if(IsDefined(e.minLength)&&!(n.length>=e.minLength)){yield Create(g.StringMinLength,e,r,n)}if(IsDefined(e.maxLength)&&!(n.length<=e.maxLength)){yield Create(g.StringMaxLength,e,r,n)}const s=new RegExp(e.source,e.flags);if(!s.test(n)){return yield Create(g.RegExp,e,r,n)}}function*FromString(e,t,r,n){if(!(0,p.IsString)(n))return yield Create(g.String,e,r,n);if(IsDefined(e.minLength)&&!(n.length>=e.minLength)){yield Create(g.StringMinLength,e,r,n)}if(IsDefined(e.maxLength)&&!(n.length<=e.maxLength)){yield Create(g.StringMaxLength,e,r,n)}if((0,p.IsString)(e.pattern)){const t=new RegExp(e.pattern);if(!t.test(n)){yield Create(g.StringPattern,e,r,n)}}if((0,p.IsString)(e.format)){if(!o.FormatRegistry.Has(e.format)){yield Create(g.StringFormatUnknown,e,r,n)}else{const t=o.FormatRegistry.Get(e.format);if(!t(n)){yield Create(g.StringFormat,e,r,n)}}}}function*FromSymbol(e,t,r,n){if(!(0,p.IsSymbol)(n))yield Create(g.Symbol,e,r,n)}function*FromTemplateLiteral(e,t,r,n){if(!(0,p.IsString)(n))return yield Create(g.String,e,r,n);const s=new RegExp(e.pattern);if(!s.test(n)){yield Create(g.StringPattern,e,r,n)}}function*FromThis(e,t,r,n){yield*Visit((0,u.Deref)(e,t),t,r,n)}function*FromTuple(e,t,r,n){if(!(0,p.IsArray)(n))return yield Create(g.Tuple,e,r,n);if(e.items===undefined&&!(n.length===0)){return yield Create(g.TupleLength,e,r,n)}if(!(n.length===e.maxItems)){return yield Create(g.TupleLength,e,r,n)}if(!e.items){return}for(let s=0;s0){yield Create(g.Union,e,r,n)}}function*FromUint8Array(e,t,r,n){if(!(0,p.IsUint8Array)(n))return yield Create(g.Uint8Array,e,r,n);if(IsDefined(e.maxByteLength)&&!(n.length<=e.maxByteLength)){yield Create(g.Uint8ArrayMaxByteLength,e,r,n)}if(IsDefined(e.minByteLength)&&!(n.length>=e.minByteLength)){yield Create(g.Uint8ArrayMinByteLength,e,r,n)}}function*FromUnknown(e,t,r,n){}function*FromVoid(e,t,r,s){if(!n.TypeSystemPolicy.IsVoidLike(s))yield Create(g.Void,e,r,s)}function*FromKind(e,t,r,n){const s=o.TypeRegistry.Get(e[l.Kind]);if(!s(e,n))yield Create(g.Kind,e,r,n)}function*Visit(e,t,r,n){const s=IsDefined(e.$id)?[...t,e]:t;const i=e;switch(i[l.Kind]){case"Any":return yield*FromAny(i,s,r,n);case"Array":return yield*FromArray(i,s,r,n);case"AsyncIterator":return yield*FromAsyncIterator(i,s,r,n);case"BigInt":return yield*FromBigInt(i,s,r,n);case"Boolean":return yield*FromBoolean(i,s,r,n);case"Constructor":return yield*FromConstructor(i,s,r,n);case"Date":return yield*FromDate(i,s,r,n);case"Function":return yield*FromFunction(i,s,r,n);case"Integer":return yield*FromInteger(i,s,r,n);case"Intersect":return yield*FromIntersect(i,s,r,n);case"Iterator":return yield*FromIterator(i,s,r,n);case"Literal":return yield*FromLiteral(i,s,r,n);case"Never":return yield*FromNever(i,s,r,n);case"Not":return yield*FromNot(i,s,r,n);case"Null":return yield*FromNull(i,s,r,n);case"Number":return yield*FromNumber(i,s,r,n);case"Object":return yield*FromObject(i,s,r,n);case"Promise":return yield*FromPromise(i,s,r,n);case"Record":return yield*FromRecord(i,s,r,n);case"Ref":return yield*FromRef(i,s,r,n);case"RegExp":return yield*FromRegExp(i,s,r,n);case"String":return yield*FromString(i,s,r,n);case"Symbol":return yield*FromSymbol(i,s,r,n);case"TemplateLiteral":return yield*FromTemplateLiteral(i,s,r,n);case"This":return yield*FromThis(i,s,r,n);case"Tuple":return yield*FromTuple(i,s,r,n);case"Undefined":return yield*FromUndefined(i,s,r,n);case"Union":return yield*FromUnion(i,s,r,n);case"Uint8Array":return yield*FromUint8Array(i,s,r,n);case"Unknown":return yield*FromUnknown(i,s,r,n);case"Void":return yield*FromVoid(i,s,r,n);default:if(!o.TypeRegistry.Has(i[l.Kind]))throw new ValueErrorsUnknownTypeError(e);return yield*FromKind(i,s,r,n)}}function Errors(...e){const t=e.length===3?Visit(e[0],e[1],"",e[2]):Visit(e[0],[],"",e[1]);return new ValueErrorIterator(t)}},84039:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.DefaultErrorFunction=DefaultErrorFunction;t.SetErrorFunction=SetErrorFunction;t.GetErrorFunction=GetErrorFunction;const n=r(97034);const s=r(91660);function DefaultErrorFunction(e){switch(e.errorType){case s.ValueErrorType.ArrayContains:return"Expected array to contain at least one matching value";case s.ValueErrorType.ArrayMaxContains:return`Expected array to contain no more than ${e.schema.maxContains} matching values`;case s.ValueErrorType.ArrayMinContains:return`Expected array to contain at least ${e.schema.minContains} matching values`;case s.ValueErrorType.ArrayMaxItems:return`Expected array length to be less or equal to ${e.schema.maxItems}`;case s.ValueErrorType.ArrayMinItems:return`Expected array length to be greater or equal to ${e.schema.minItems}`;case s.ValueErrorType.ArrayUniqueItems:return"Expected array elements to be unique";case s.ValueErrorType.Array:return"Expected array";case s.ValueErrorType.AsyncIterator:return"Expected AsyncIterator";case s.ValueErrorType.BigIntExclusiveMaximum:return`Expected bigint to be less than ${e.schema.exclusiveMaximum}`;case s.ValueErrorType.BigIntExclusiveMinimum:return`Expected bigint to be greater than ${e.schema.exclusiveMinimum}`;case s.ValueErrorType.BigIntMaximum:return`Expected bigint to be less or equal to ${e.schema.maximum}`;case s.ValueErrorType.BigIntMinimum:return`Expected bigint to be greater or equal to ${e.schema.minimum}`;case s.ValueErrorType.BigIntMultipleOf:return`Expected bigint to be a multiple of ${e.schema.multipleOf}`;case s.ValueErrorType.BigInt:return"Expected bigint";case s.ValueErrorType.Boolean:return"Expected boolean";case s.ValueErrorType.DateExclusiveMinimumTimestamp:return`Expected Date timestamp to be greater than ${e.schema.exclusiveMinimumTimestamp}`;case s.ValueErrorType.DateExclusiveMaximumTimestamp:return`Expected Date timestamp to be less than ${e.schema.exclusiveMaximumTimestamp}`;case s.ValueErrorType.DateMinimumTimestamp:return`Expected Date timestamp to be greater or equal to ${e.schema.minimumTimestamp}`;case s.ValueErrorType.DateMaximumTimestamp:return`Expected Date timestamp to be less or equal to ${e.schema.maximumTimestamp}`;case s.ValueErrorType.DateMultipleOfTimestamp:return`Expected Date timestamp to be a multiple of ${e.schema.multipleOfTimestamp}`;case s.ValueErrorType.Date:return"Expected Date";case s.ValueErrorType.Function:return"Expected function";case s.ValueErrorType.IntegerExclusiveMaximum:return`Expected integer to be less than ${e.schema.exclusiveMaximum}`;case s.ValueErrorType.IntegerExclusiveMinimum:return`Expected integer to be greater than ${e.schema.exclusiveMinimum}`;case s.ValueErrorType.IntegerMaximum:return`Expected integer to be less or equal to ${e.schema.maximum}`;case s.ValueErrorType.IntegerMinimum:return`Expected integer to be greater or equal to ${e.schema.minimum}`;case s.ValueErrorType.IntegerMultipleOf:return`Expected integer to be a multiple of ${e.schema.multipleOf}`;case s.ValueErrorType.Integer:return"Expected integer";case s.ValueErrorType.IntersectUnevaluatedProperties:return"Unexpected property";case s.ValueErrorType.Intersect:return"Expected all values to match";case s.ValueErrorType.Iterator:return"Expected Iterator";case s.ValueErrorType.Literal:return`Expected ${typeof e.schema.const==="string"?`'${e.schema.const}'`:e.schema.const}`;case s.ValueErrorType.Never:return"Never";case s.ValueErrorType.Not:return"Value should not match";case s.ValueErrorType.Null:return"Expected null";case s.ValueErrorType.NumberExclusiveMaximum:return`Expected number to be less than ${e.schema.exclusiveMaximum}`;case s.ValueErrorType.NumberExclusiveMinimum:return`Expected number to be greater than ${e.schema.exclusiveMinimum}`;case s.ValueErrorType.NumberMaximum:return`Expected number to be less or equal to ${e.schema.maximum}`;case s.ValueErrorType.NumberMinimum:return`Expected number to be greater or equal to ${e.schema.minimum}`;case s.ValueErrorType.NumberMultipleOf:return`Expected number to be a multiple of ${e.schema.multipleOf}`;case s.ValueErrorType.Number:return"Expected number";case s.ValueErrorType.Object:return"Expected object";case s.ValueErrorType.ObjectAdditionalProperties:return"Unexpected property";case s.ValueErrorType.ObjectMaxProperties:return`Expected object to have no more than ${e.schema.maxProperties} properties`;case s.ValueErrorType.ObjectMinProperties:return`Expected object to have at least ${e.schema.minProperties} properties`;case s.ValueErrorType.ObjectRequiredProperty:return"Expected required property";case s.ValueErrorType.Promise:return"Expected Promise";case s.ValueErrorType.RegExp:return"Expected string to match regular expression";case s.ValueErrorType.StringFormatUnknown:return`Unknown format '${e.schema.format}'`;case s.ValueErrorType.StringFormat:return`Expected string to match '${e.schema.format}' format`;case s.ValueErrorType.StringMaxLength:return`Expected string length less or equal to ${e.schema.maxLength}`;case s.ValueErrorType.StringMinLength:return`Expected string length greater or equal to ${e.schema.minLength}`;case s.ValueErrorType.StringPattern:return`Expected string to match '${e.schema.pattern}'`;case s.ValueErrorType.String:return"Expected string";case s.ValueErrorType.Symbol:return"Expected symbol";case s.ValueErrorType.TupleLength:return`Expected tuple to have ${e.schema.maxItems||0} elements`;case s.ValueErrorType.Tuple:return"Expected tuple";case s.ValueErrorType.Uint8ArrayMaxByteLength:return`Expected byte length less or equal to ${e.schema.maxByteLength}`;case s.ValueErrorType.Uint8ArrayMinByteLength:return`Expected byte length greater or equal to ${e.schema.minByteLength}`;case s.ValueErrorType.Uint8Array:return"Expected Uint8Array";case s.ValueErrorType.Undefined:return"Expected undefined";case s.ValueErrorType.Union:return"Expected union value";case s.ValueErrorType.Void:return"Expected void";case s.ValueErrorType.Kind:return`Expected kind '${e.schema[n.Kind]}'`;default:return"Unknown error type"}}let o=DefaultErrorFunction;function SetErrorFunction(e){o=e}function GetErrorFunction(){return o}},65507:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(91660),t);s(r(84039),t)},14019:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(14150),t);s(r(26113),t);s(r(64754),t);s(r(57782),t);s(r(94354),t);s(r(51786),t);s(r(12760),t);s(r(97034),t);s(r(36813),t);s(r(17186),t);s(r(68092),t);s(r(85164),t);s(r(13278),t);s(r(64515),t);s(r(80788),t);s(r(19236),t);s(r(16939),t);s(r(58562),t);s(r(49305),t);s(r(911),t);s(r(98056),t);s(r(41153),t);s(r(94850),t);s(r(69682),t);s(r(29857),t);s(r(86918),t);s(r(26277),t);s(r(4949),t);s(r(62746),t);s(r(35907),t);s(r(30568),t);s(r(73373),t);s(r(98076),t);s(r(41094),t);s(r(54025),t);s(r(1078),t);s(r(50468),t);s(r(85544),t);s(r(62094),t);s(r(88932),t);s(r(38425),t);s(r(30449),t);s(r(75726),t);s(r(40640),t);s(r(70062),t);s(r(40675),t);s(r(78946),t);s(r(30420),t);s(r(33107),t);s(r(80470),t);s(r(26936),t);s(r(42744),t);s(r(83003),t);s(r(32970),t);s(r(68954),t);s(r(60343),t);s(r(23556),t);s(r(81688),t);s(r(2129),t);s(r(26609),t);s(r(67575),t);s(r(7521),t);s(r(45760),t);s(r(96231),t);s(r(69100),t);s(r(51897),t);s(r(23339),t);s(r(81947),t);s(r(68237),t)},82129:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(17755),t);s(r(15912),t)},17755:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeSystemPolicy=void 0;const n=r(17479);var s;(function(e){e.ExactOptionalPropertyTypes=false;e.AllowArrayObject=false;e.AllowNaN=false;e.AllowNullVoid=false;function IsExactOptionalProperty(t,r){return e.ExactOptionalPropertyTypes?r in t:t[r]!==undefined}e.IsExactOptionalProperty=IsExactOptionalProperty;function IsObjectLike(t){const r=(0,n.IsObject)(t);return e.AllowArrayObject?r:r&&!(0,n.IsArray)(t)}e.IsObjectLike=IsObjectLike;function IsRecordLike(e){return IsObjectLike(e)&&!(e instanceof Date)&&!(e instanceof Uint8Array)}e.IsRecordLike=IsRecordLike;function IsNumberLike(t){return e.AllowNaN?(0,n.IsNumber)(t):Number.isFinite(t)}e.IsNumberLike=IsNumberLike;function IsVoidLike(t){const r=(0,n.IsUndefined)(t);return e.AllowNullVoid?r||t===null:r}e.IsVoidLike=IsVoidLike})(s||(t.TypeSystemPolicy=s={}))},15912:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeSystem=t.TypeSystemDuplicateFormat=t.TypeSystemDuplicateTypeKind=void 0;const n=r(51786);const s=r(23339);const o=r(97034);const i=r(26113);class TypeSystemDuplicateTypeKind extends i.TypeBoxError{constructor(e){super(`Duplicate type kind '${e}' detected`)}}t.TypeSystemDuplicateTypeKind=TypeSystemDuplicateTypeKind;class TypeSystemDuplicateFormat extends i.TypeBoxError{constructor(e){super(`Duplicate string format '${e}' detected`)}}t.TypeSystemDuplicateFormat=TypeSystemDuplicateFormat;var a;(function(e){function Type(e,t){if(n.TypeRegistry.Has(e))throw new TypeSystemDuplicateTypeKind(e);n.TypeRegistry.Set(e,t);return(t={})=>(0,s.Unsafe)({...t,[o.Kind]:e})}e.Type=Type;function Format(e,t){if(n.FormatRegistry.Has(e))throw new TypeSystemDuplicateFormat(e);n.FormatRegistry.Set(e,t);return e}e.Format=Format})(a||(t.TypeSystem=a={}))},57815:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Any=Any;const n=r(97034);function Any(e={}){return{...e,[n.Kind]:"Any"}}},36813:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(57815),t)},45311:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Array=Array;const n=r(38100);const s=r(97034);function Array(e,t={}){return{...t,[s.Kind]:"Array",type:"array",items:(0,n.CloneType)(e)}}},17186:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(45311),t)},15007:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.AsyncIterator=AsyncIterator;const n=r(97034);const s=r(38100);function AsyncIterator(e,t={}){return{...t,[n.Kind]:"AsyncIterator",type:"AsyncIterator",items:(0,s.CloneType)(e)}}},68092:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(15007),t)},68263:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Awaited=Awaited;const n=r(62746);const s=r(69100);const o=r(38100);const i=r(96994);function FromRest(e){return e.map((e=>AwaitedResolve(e)))}function FromIntersect(e){return(0,n.Intersect)(FromRest(e))}function FromUnion(e){return(0,s.Union)(FromRest(e))}function FromPromise(e){return AwaitedResolve(e)}function AwaitedResolve(e){return(0,i.IsIntersect)(e)?FromIntersect(e.allOf):(0,i.IsUnion)(e)?FromUnion(e.anyOf):(0,i.IsPromise)(e)?FromPromise(e.item):e}function Awaited(e,t={}){return(0,o.CloneType)(AwaitedResolve(e),t)}},85164:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(68263),t)},9495:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.BigInt=BigInt;const n=r(97034);function BigInt(e={}){return{...e,[n.Kind]:"BigInt",type:"bigint"}}},13278:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(9495),t)},53715:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Boolean=Boolean;const n=r(97034);function Boolean(e={}){return{...e,[n.Kind]:"Boolean",type:"boolean"}}},64515:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(53715),t)},14150:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(38100),t);s(r(80387),t)},38100:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.CloneRest=CloneRest;t.CloneType=CloneType;const n=r(80387);function CloneRest(e){return e.map((e=>CloneType(e)))}function CloneType(e,t={}){return{...(0,n.Clone)(e),...t}}},80387:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Clone=Clone;const n=r(13415);function ArrayType(e){return e.map((e=>Visit(e)))}function DateType(e){return new Date(e.getTime())}function Uint8ArrayType(e){return new Uint8Array(e)}function RegExpType(e){return new RegExp(e.source,e.flags)}function ObjectType(e){const t={};for(const r of Object.getOwnPropertyNames(e)){t[r]=Visit(e[r])}for(const r of Object.getOwnPropertySymbols(e)){t[r]=Visit(e[r])}return t}function Visit(e){return n.IsArray(e)?ArrayType(e):n.IsDate(e)?DateType(e):n.IsUint8Array(e)?Uint8ArrayType(e):n.IsRegExp(e)?RegExpType(e):n.IsObject(e)?ObjectType(e):e}function Clone(e){return Visit(e)}},67263:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Composite=Composite;const n=r(62746);const s=r(86918);const o=r(73373);const i=r(62094);const a=r(12760);const c=r(96994);function CompositeKeys(e){const t=[];for(const r of e)t.push(...(0,o.KeyOfPropertyKeys)(r));return(0,a.SetDistinct)(t)}function FilterNever(e){return e.filter((e=>!(0,c.IsNever)(e)))}function CompositeProperty(e,t){const r=[];for(const n of e)r.push(...(0,s.IndexFromPropertyKeys)(n,[t]));return FilterNever(r)}function CompositeProperties(e,t){const r={};for(const s of t){r[s]=(0,n.IntersectEvaluated)(CompositeProperty(e,s))}return r}function Composite(e,t={}){const r=CompositeKeys(e);const n=CompositeProperties(e,r);const s=(0,i.Object)(n,t);return s}},80788:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(67263),t)},54191:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Const=Const;const n=r(36813);const s=r(13278);const o=r(49305);const i=r(29857);const a=r(98076);const c=r(50468);const u=r(62094);const A=r(2129);const l=r(7521);const d=r(40675);const p=r(96231);const g=r(45760);const h=r(51897);const m=r(14150);const E=r(13415);function FromArray(e){return e.map((e=>FromValue(e,false)))}function FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=(0,d.Readonly)(FromValue(e[r],false));return t}function ConditionalReadonly(e,t){return t===true?e:(0,d.Readonly)(e)}function FromValue(e,t){return(0,E.IsAsyncIterator)(e)?ConditionalReadonly((0,n.Any)(),t):(0,E.IsIterator)(e)?ConditionalReadonly((0,n.Any)(),t):(0,E.IsArray)(e)?(0,d.Readonly)((0,l.Tuple)(FromArray(e))):(0,E.IsUint8Array)(e)?(0,g.Uint8Array)():(0,E.IsDate)(e)?(0,o.Date)():(0,E.IsObject)(e)?ConditionalReadonly((0,u.Object)(FromProperties(e)),t):(0,E.IsFunction)(e)?ConditionalReadonly((0,i.Function)([],(0,h.Unknown)()),t):(0,E.IsUndefined)(e)?(0,p.Undefined)():(0,E.IsNull)(e)?(0,c.Null)():(0,E.IsSymbol)(e)?(0,A.Symbol)():(0,E.IsBigInt)(e)?(0,s.BigInt)():(0,E.IsNumber)(e)?(0,a.Literal)(e):(0,E.IsBoolean)(e)?(0,a.Literal)(e):(0,E.IsString)(e)?(0,a.Literal)(e):(0,u.Object)({})}function Const(e,t={}){return(0,m.CloneType)(FromValue(e,true),t)}},19236:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(54191),t)},96127:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ConstructorParameters=ConstructorParameters;const n=r(7521);const s=r(38100);function ConstructorParameters(e,t={}){return(0,n.Tuple)((0,s.CloneRest)(e.parameters),{...t})}},58562:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(96127),t)},89035:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Constructor=Constructor;const n=r(38100);const s=r(97034);function Constructor(e,t,r){return{...r,[s.Kind]:"Constructor",type:"Constructor",parameters:(0,n.CloneRest)(e),returns:(0,n.CloneType)(t)}}},16939:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(89035),t)},7617:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Date=Date;const n=r(97034);function Date(e={}){return{...e,[n.Kind]:"Date",type:"Date"}}},49305:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(7617),t)},79911:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Deref=Deref;const n=r(38100);const s=r(83889);const o=r(13415);const i=r(96994);function FromRest(e,t){return e.map((e=>Deref(e,t)))}function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e)){r[n]=Deref(e[n],t)}return r}function FromConstructor(e,t){e.parameters=FromRest(e.parameters,t);e.returns=Deref(e.returns,t);return e}function FromFunction(e,t){e.parameters=FromRest(e.parameters,t);e.returns=Deref(e.returns,t);return e}function FromIntersect(e,t){e.allOf=FromRest(e.allOf,t);return e}function FromUnion(e,t){e.anyOf=FromRest(e.anyOf,t);return e}function FromTuple(e,t){if((0,o.IsUndefined)(e.items))return e;e.items=FromRest(e.items,t);return e}function FromArray(e,t){e.items=Deref(e.items,t);return e}function FromObject(e,t){e.properties=FromProperties(e.properties,t);return e}function FromPromise(e,t){e.item=Deref(e.item,t);return e}function FromAsyncIterator(e,t){e.items=Deref(e.items,t);return e}function FromIterator(e,t){e.items=Deref(e.items,t);return e}function FromRef(e,t){const r=t.find((t=>t.$id===e.$ref));if(r===undefined)throw Error(`Unable to dereference schema with $id ${e.$ref}`);const n=(0,s.Discard)(r,["$id"]);return Deref(n,t)}function DerefResolve(e,t){return(0,i.IsConstructor)(e)?FromConstructor(e,t):(0,i.IsFunction)(e)?FromFunction(e,t):(0,i.IsIntersect)(e)?FromIntersect(e,t):(0,i.IsUnion)(e)?FromUnion(e,t):(0,i.IsTuple)(e)?FromTuple(e,t):(0,i.IsArray)(e)?FromArray(e,t):(0,i.IsObject)(e)?FromObject(e,t):(0,i.IsPromise)(e)?FromPromise(e,t):(0,i.IsAsyncIterator)(e)?FromAsyncIterator(e,t):(0,i.IsIterator)(e)?FromIterator(e,t):(0,i.IsRef)(e)?FromRef(e,t):e}function Deref(e,t){return DerefResolve((0,n.CloneType)(e),(0,n.CloneRest)(t))}},911:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(79911),t)},8147:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Discard=Discard;function DiscardKey(e,t){const{[t]:r,...n}=e;return n}function Discard(e,t){return t.reduce(((e,t)=>DiscardKey(e,t)),e)}},83889:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(8147),t)},77991:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Enum=Enum;const n=r(98076);const s=r(97034);const o=r(69100);const i=r(13415);function Enum(e,t={}){if((0,i.IsUndefined)(e))throw new Error("Enum undefined or empty");const r=globalThis.Object.getOwnPropertyNames(e).filter((e=>isNaN(e))).map((t=>e[t]));const a=[...new Set(r)];const c=a.map((e=>(0,n.Literal)(e)));return(0,o.Union)(c,{...t,[s.Hint]:"Enum"})}},98056:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(77991),t)},85523:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeBoxError=void 0;class TypeBoxError extends Error{constructor(e){super(e)}}t.TypeBoxError=TypeBoxError},26113:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(85523),t)},92094:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExcludeFromMappedResult=ExcludeFromMappedResult;const n=r(41094);const s=r(63651);function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=(0,s.Exclude)(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function ExcludeFromMappedResult(e,t){const r=FromMappedResult(e,t);return(0,n.MappedResult)(r)}},9505:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExcludeFromTemplateLiteral=ExcludeFromTemplateLiteral;const n=r(63651);const s=r(26609);function ExcludeFromTemplateLiteral(e,t){return(0,n.Exclude)((0,s.TemplateLiteralToUnion)(e),t)}},63651:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Exclude=Exclude;const n=r(69100);const s=r(54025);const o=r(94850);const i=r(38100);const a=r(92094);const c=r(9505);const u=r(96994);function ExcludeRest(e,t){const r=e.filter((e=>(0,o.ExtendsCheck)(e,t)===o.ExtendsResult.False));return r.length===1?r[0]:(0,n.Union)(r)}function Exclude(e,t,r={}){if((0,u.IsTemplateLiteral)(e))return(0,i.CloneType)((0,c.ExcludeFromTemplateLiteral)(e,t),r);if((0,u.IsMappedResult)(e))return(0,i.CloneType)((0,a.ExcludeFromMappedResult)(e,t),r);return(0,i.CloneType)((0,u.IsUnion)(e)?ExcludeRest(e.anyOf,t):(0,o.ExtendsCheck)(e,t)!==o.ExtendsResult.False?(0,s.Never)():e,r)}},41153:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(92094),t);s(r(9505),t);s(r(63651),t)},18410:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExtendsResult=t.ExtendsResolverError=void 0;t.ExtendsCheck=ExtendsCheck;const n=r(36813);const s=r(29857);const o=r(85544);const i=r(81688);const a=r(51897);const c=r(26609);const u=r(94354);const A=r(97034);const l=r(26113);const d=r(64754);class ExtendsResolverError extends l.TypeBoxError{}t.ExtendsResolverError=ExtendsResolverError;var p;(function(e){e[e["Union"]=0]="Union";e[e["True"]=1]="True";e[e["False"]=2]="False"})(p||(t.ExtendsResult=p={}));function IntoBooleanResult(e){return e===p.False?e:p.True}function Throw(e){throw new ExtendsResolverError(e)}function IsStructuralRight(e){return d.TypeGuard.IsNever(e)||d.TypeGuard.IsIntersect(e)||d.TypeGuard.IsUnion(e)||d.TypeGuard.IsUnknown(e)||d.TypeGuard.IsAny(e)}function StructuralRight(e,t){return d.TypeGuard.IsNever(t)?FromNeverRight(e,t):d.TypeGuard.IsIntersect(t)?FromIntersectRight(e,t):d.TypeGuard.IsUnion(t)?FromUnionRight(e,t):d.TypeGuard.IsUnknown(t)?FromUnknownRight(e,t):d.TypeGuard.IsAny(t)?FromAnyRight(e,t):Throw("StructuralRight")}function FromAnyRight(e,t){return p.True}function FromAny(e,t){return d.TypeGuard.IsIntersect(t)?FromIntersectRight(e,t):d.TypeGuard.IsUnion(t)&&t.anyOf.some((e=>d.TypeGuard.IsAny(e)||d.TypeGuard.IsUnknown(e)))?p.True:d.TypeGuard.IsUnion(t)?p.Union:d.TypeGuard.IsUnknown(t)?p.True:d.TypeGuard.IsAny(t)?p.True:p.Union}function FromArrayRight(e,t){return d.TypeGuard.IsUnknown(e)?p.False:d.TypeGuard.IsAny(e)?p.Union:d.TypeGuard.IsNever(e)?p.True:p.False}function FromArray(e,t){return d.TypeGuard.IsObject(t)&&IsObjectArrayLike(t)?p.True:IsStructuralRight(t)?StructuralRight(e,t):!d.TypeGuard.IsArray(t)?p.False:IntoBooleanResult(Visit(e.items,t.items))}function FromAsyncIterator(e,t){return IsStructuralRight(t)?StructuralRight(e,t):!d.TypeGuard.IsAsyncIterator(t)?p.False:IntoBooleanResult(Visit(e.items,t.items))}function FromBigInt(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsBigInt(t)?p.True:p.False}function FromBooleanRight(e,t){return d.TypeGuard.IsLiteralBoolean(e)?p.True:d.TypeGuard.IsBoolean(e)?p.True:p.False}function FromBoolean(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsBoolean(t)?p.True:p.False}function FromConstructor(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):!d.TypeGuard.IsConstructor(t)?p.False:e.parameters.length>t.parameters.length?p.False:!e.parameters.every(((e,r)=>IntoBooleanResult(Visit(t.parameters[r],e))===p.True))?p.False:IntoBooleanResult(Visit(e.returns,t.returns))}function FromDate(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsDate(t)?p.True:p.False}function FromFunction(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):!d.TypeGuard.IsFunction(t)?p.False:e.parameters.length>t.parameters.length?p.False:!e.parameters.every(((e,r)=>IntoBooleanResult(Visit(t.parameters[r],e))===p.True))?p.False:IntoBooleanResult(Visit(e.returns,t.returns))}function FromIntegerRight(e,t){return d.TypeGuard.IsLiteral(e)&&d.ValueGuard.IsNumber(e.const)?p.True:d.TypeGuard.IsNumber(e)||d.TypeGuard.IsInteger(e)?p.True:p.False}function FromInteger(e,t){return d.TypeGuard.IsInteger(t)||d.TypeGuard.IsNumber(t)?p.True:IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):p.False}function FromIntersectRight(e,t){return t.allOf.every((t=>Visit(e,t)===p.True))?p.True:p.False}function FromIntersect(e,t){return e.allOf.some((e=>Visit(e,t)===p.True))?p.True:p.False}function FromIterator(e,t){return IsStructuralRight(t)?StructuralRight(e,t):!d.TypeGuard.IsIterator(t)?p.False:IntoBooleanResult(Visit(e.items,t.items))}function FromLiteral(e,t){return d.TypeGuard.IsLiteral(t)&&t.const===e.const?p.True:IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsString(t)?FromStringRight(e,t):d.TypeGuard.IsNumber(t)?FromNumberRight(e,t):d.TypeGuard.IsInteger(t)?FromIntegerRight(e,t):d.TypeGuard.IsBoolean(t)?FromBooleanRight(e,t):p.False}function FromNeverRight(e,t){return p.False}function FromNever(e,t){return p.True}function UnwrapTNot(e){let[t,r]=[e,0];while(true){if(!d.TypeGuard.IsNot(t))break;t=t.not;r+=1}return r%2===0?t:(0,a.Unknown)()}function FromNot(e,t){return d.TypeGuard.IsNot(e)?Visit(UnwrapTNot(e),t):d.TypeGuard.IsNot(t)?Visit(e,UnwrapTNot(t)):Throw("Invalid fallthrough for Not")}function FromNull(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsNull(t)?p.True:p.False}function FromNumberRight(e,t){return d.TypeGuard.IsLiteralNumber(e)?p.True:d.TypeGuard.IsNumber(e)||d.TypeGuard.IsInteger(e)?p.True:p.False}function FromNumber(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsInteger(t)||d.TypeGuard.IsNumber(t)?p.True:p.False}function IsObjectPropertyCount(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function IsObjectStringLike(e){return IsObjectArrayLike(e)}function IsObjectSymbolLike(e){return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"description"in e.properties&&d.TypeGuard.IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(d.TypeGuard.IsString(e.properties.description.anyOf[0])&&d.TypeGuard.IsUndefined(e.properties.description.anyOf[1])||d.TypeGuard.IsString(e.properties.description.anyOf[1])&&d.TypeGuard.IsUndefined(e.properties.description.anyOf[0]))}function IsObjectNumberLike(e){return IsObjectPropertyCount(e,0)}function IsObjectBooleanLike(e){return IsObjectPropertyCount(e,0)}function IsObjectBigIntLike(e){return IsObjectPropertyCount(e,0)}function IsObjectDateLike(e){return IsObjectPropertyCount(e,0)}function IsObjectUint8ArrayLike(e){return IsObjectArrayLike(e)}function IsObjectFunctionLike(e){const t=(0,o.Number)();return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"length"in e.properties&&IntoBooleanResult(Visit(e.properties["length"],t))===p.True}function IsObjectConstructorLike(e){return IsObjectPropertyCount(e,0)}function IsObjectArrayLike(e){const t=(0,o.Number)();return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"length"in e.properties&&IntoBooleanResult(Visit(e.properties["length"],t))===p.True}function IsObjectPromiseLike(e){const t=(0,s.Function)([(0,n.Any)()],(0,n.Any)());return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"then"in e.properties&&IntoBooleanResult(Visit(e.properties["then"],t))===p.True}function Property(e,t){return Visit(e,t)===p.False?p.False:d.TypeGuard.IsOptional(e)&&!d.TypeGuard.IsOptional(t)?p.False:p.True}function FromObjectRight(e,t){return d.TypeGuard.IsUnknown(e)?p.False:d.TypeGuard.IsAny(e)?p.Union:d.TypeGuard.IsNever(e)||d.TypeGuard.IsLiteralString(e)&&IsObjectStringLike(t)||d.TypeGuard.IsLiteralNumber(e)&&IsObjectNumberLike(t)||d.TypeGuard.IsLiteralBoolean(e)&&IsObjectBooleanLike(t)||d.TypeGuard.IsSymbol(e)&&IsObjectSymbolLike(t)||d.TypeGuard.IsBigInt(e)&&IsObjectBigIntLike(t)||d.TypeGuard.IsString(e)&&IsObjectStringLike(t)||d.TypeGuard.IsSymbol(e)&&IsObjectSymbolLike(t)||d.TypeGuard.IsNumber(e)&&IsObjectNumberLike(t)||d.TypeGuard.IsInteger(e)&&IsObjectNumberLike(t)||d.TypeGuard.IsBoolean(e)&&IsObjectBooleanLike(t)||d.TypeGuard.IsUint8Array(e)&&IsObjectUint8ArrayLike(t)||d.TypeGuard.IsDate(e)&&IsObjectDateLike(t)||d.TypeGuard.IsConstructor(e)&&IsObjectConstructorLike(t)||d.TypeGuard.IsFunction(e)&&IsObjectFunctionLike(t)?p.True:d.TypeGuard.IsRecord(e)&&d.TypeGuard.IsString(RecordKey(e))?(()=>t[A.Hint]==="Record"?p.True:p.False)():d.TypeGuard.IsRecord(e)&&d.TypeGuard.IsNumber(RecordKey(e))?(()=>IsObjectPropertyCount(t,0)?p.True:p.False)():p.False}function FromObject(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):!d.TypeGuard.IsObject(t)?p.False:(()=>{for(const r of Object.getOwnPropertyNames(t.properties)){if(!(r in e.properties)&&!d.TypeGuard.IsOptional(t.properties[r])){return p.False}if(d.TypeGuard.IsOptional(t.properties[r])){return p.True}if(Property(e.properties[r],t.properties[r])===p.False){return p.False}}return p.True})()}function FromPromise(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)&&IsObjectPromiseLike(t)?p.True:!d.TypeGuard.IsPromise(t)?p.False:IntoBooleanResult(Visit(e.item,t.item))}function RecordKey(e){return u.PatternNumberExact in e.patternProperties?(0,o.Number)():u.PatternStringExact in e.patternProperties?(0,i.String)():Throw("Unknown record key pattern")}function RecordValue(e){return u.PatternNumberExact in e.patternProperties?e.patternProperties[u.PatternNumberExact]:u.PatternStringExact in e.patternProperties?e.patternProperties[u.PatternStringExact]:Throw("Unable to get record value schema")}function FromRecordRight(e,t){const[r,n]=[RecordKey(t),RecordValue(t)];return d.TypeGuard.IsLiteralString(e)&&d.TypeGuard.IsNumber(r)&&IntoBooleanResult(Visit(e,n))===p.True?p.True:d.TypeGuard.IsUint8Array(e)&&d.TypeGuard.IsNumber(r)?Visit(e,n):d.TypeGuard.IsString(e)&&d.TypeGuard.IsNumber(r)?Visit(e,n):d.TypeGuard.IsArray(e)&&d.TypeGuard.IsNumber(r)?Visit(e,n):d.TypeGuard.IsObject(e)?(()=>{for(const t of Object.getOwnPropertyNames(e.properties)){if(Property(n,e.properties[t])===p.False){return p.False}}return p.True})():p.False}function FromRecord(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):!d.TypeGuard.IsRecord(t)?p.False:Visit(RecordValue(e),RecordValue(t))}function FromRegExp(e,t){const r=d.TypeGuard.IsRegExp(e)?(0,i.String)():e;const n=d.TypeGuard.IsRegExp(t)?(0,i.String)():t;return Visit(r,n)}function FromStringRight(e,t){return d.TypeGuard.IsLiteral(e)&&d.ValueGuard.IsString(e.const)?p.True:d.TypeGuard.IsString(e)?p.True:p.False}function FromString(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsString(t)?p.True:p.False}function FromSymbol(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsSymbol(t)?p.True:p.False}function FromTemplateLiteral(e,t){return d.TypeGuard.IsTemplateLiteral(e)?Visit((0,c.TemplateLiteralToUnion)(e),t):d.TypeGuard.IsTemplateLiteral(t)?Visit(e,(0,c.TemplateLiteralToUnion)(t)):Throw("Invalid fallthrough for TemplateLiteral")}function IsArrayOfTuple(e,t){return d.TypeGuard.IsArray(t)&&e.items!==undefined&&e.items.every((e=>Visit(e,t.items)===p.True))}function FromTupleRight(e,t){return d.TypeGuard.IsNever(e)?p.True:d.TypeGuard.IsUnknown(e)?p.False:d.TypeGuard.IsAny(e)?p.Union:p.False}function FromTuple(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)&&IsObjectArrayLike(t)?p.True:d.TypeGuard.IsArray(t)&&IsArrayOfTuple(e,t)?p.True:!d.TypeGuard.IsTuple(t)?p.False:d.ValueGuard.IsUndefined(e.items)&&!d.ValueGuard.IsUndefined(t.items)||!d.ValueGuard.IsUndefined(e.items)&&d.ValueGuard.IsUndefined(t.items)?p.False:d.ValueGuard.IsUndefined(e.items)&&!d.ValueGuard.IsUndefined(t.items)?p.True:e.items.every(((e,r)=>Visit(e,t.items[r])===p.True))?p.True:p.False}function FromUint8Array(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsUint8Array(t)?p.True:p.False}function FromUndefined(e,t){return IsStructuralRight(t)?StructuralRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsRecord(t)?FromRecordRight(e,t):d.TypeGuard.IsVoid(t)?FromVoidRight(e,t):d.TypeGuard.IsUndefined(t)?p.True:p.False}function FromUnionRight(e,t){return t.anyOf.some((t=>Visit(e,t)===p.True))?p.True:p.False}function FromUnion(e,t){return e.anyOf.every((e=>Visit(e,t)===p.True))?p.True:p.False}function FromUnknownRight(e,t){return p.True}function FromUnknown(e,t){return d.TypeGuard.IsNever(t)?FromNeverRight(e,t):d.TypeGuard.IsIntersect(t)?FromIntersectRight(e,t):d.TypeGuard.IsUnion(t)?FromUnionRight(e,t):d.TypeGuard.IsAny(t)?FromAnyRight(e,t):d.TypeGuard.IsString(t)?FromStringRight(e,t):d.TypeGuard.IsNumber(t)?FromNumberRight(e,t):d.TypeGuard.IsInteger(t)?FromIntegerRight(e,t):d.TypeGuard.IsBoolean(t)?FromBooleanRight(e,t):d.TypeGuard.IsArray(t)?FromArrayRight(e,t):d.TypeGuard.IsTuple(t)?FromTupleRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsUnknown(t)?p.True:p.False}function FromVoidRight(e,t){return d.TypeGuard.IsUndefined(e)?p.True:d.TypeGuard.IsUndefined(e)?p.True:p.False}function FromVoid(e,t){return d.TypeGuard.IsIntersect(t)?FromIntersectRight(e,t):d.TypeGuard.IsUnion(t)?FromUnionRight(e,t):d.TypeGuard.IsUnknown(t)?FromUnknownRight(e,t):d.TypeGuard.IsAny(t)?FromAnyRight(e,t):d.TypeGuard.IsObject(t)?FromObjectRight(e,t):d.TypeGuard.IsVoid(t)?p.True:p.False}function Visit(e,t){return d.TypeGuard.IsTemplateLiteral(e)||d.TypeGuard.IsTemplateLiteral(t)?FromTemplateLiteral(e,t):d.TypeGuard.IsRegExp(e)||d.TypeGuard.IsRegExp(t)?FromRegExp(e,t):d.TypeGuard.IsNot(e)||d.TypeGuard.IsNot(t)?FromNot(e,t):d.TypeGuard.IsAny(e)?FromAny(e,t):d.TypeGuard.IsArray(e)?FromArray(e,t):d.TypeGuard.IsBigInt(e)?FromBigInt(e,t):d.TypeGuard.IsBoolean(e)?FromBoolean(e,t):d.TypeGuard.IsAsyncIterator(e)?FromAsyncIterator(e,t):d.TypeGuard.IsConstructor(e)?FromConstructor(e,t):d.TypeGuard.IsDate(e)?FromDate(e,t):d.TypeGuard.IsFunction(e)?FromFunction(e,t):d.TypeGuard.IsInteger(e)?FromInteger(e,t):d.TypeGuard.IsIntersect(e)?FromIntersect(e,t):d.TypeGuard.IsIterator(e)?FromIterator(e,t):d.TypeGuard.IsLiteral(e)?FromLiteral(e,t):d.TypeGuard.IsNever(e)?FromNever(e,t):d.TypeGuard.IsNull(e)?FromNull(e,t):d.TypeGuard.IsNumber(e)?FromNumber(e,t):d.TypeGuard.IsObject(e)?FromObject(e,t):d.TypeGuard.IsRecord(e)?FromRecord(e,t):d.TypeGuard.IsString(e)?FromString(e,t):d.TypeGuard.IsSymbol(e)?FromSymbol(e,t):d.TypeGuard.IsTuple(e)?FromTuple(e,t):d.TypeGuard.IsPromise(e)?FromPromise(e,t):d.TypeGuard.IsUint8Array(e)?FromUint8Array(e,t):d.TypeGuard.IsUndefined(e)?FromUndefined(e,t):d.TypeGuard.IsUnion(e)?FromUnion(e,t):d.TypeGuard.IsUnknown(e)?FromUnknown(e,t):d.TypeGuard.IsVoid(e)?FromVoid(e,t):Throw(`Unknown left type operand '${e[A.Kind]}'`)}function ExtendsCheck(e,t){return Visit(e,t)}},83948:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExtendsFromMappedKey=ExtendsFromMappedKey;const n=r(41094);const s=r(98076);const o=r(34263);function FromPropertyKey(e,t,r,n,i){return{[e]:(0,o.Extends)((0,s.Literal)(e),t,r,n,i)}}function FromPropertyKeys(e,t,r,n,s){return e.reduce(((e,o)=>({...e,...FromPropertyKey(o,t,r,n,s)})),{})}function FromMappedKey(e,t,r,n,s){return FromPropertyKeys(e.keys,t,r,n,s)}function ExtendsFromMappedKey(e,t,r,s,o){const i=FromMappedKey(e,t,r,s,o);return(0,n.MappedResult)(i)}},80338:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExtendsFromMappedResult=ExtendsFromMappedResult;const n=r(41094);const s=r(34263);function FromProperties(e,t,r,n,o){const i={};for(const a of globalThis.Object.getOwnPropertyNames(e))i[a]=(0,s.Extends)(e[a],t,r,n,o);return i}function FromMappedResult(e,t,r,n,s){return FromProperties(e.properties,t,r,n,s)}function ExtendsFromMappedResult(e,t,r,s,o){const i=FromMappedResult(e,t,r,s,o);return(0,n.MappedResult)(i)}},82486:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExtendsUndefinedCheck=ExtendsUndefinedCheck;const n=r(97034);function Intersect(e){return e.allOf.every((e=>ExtendsUndefinedCheck(e)))}function Union(e){return e.anyOf.some((e=>ExtendsUndefinedCheck(e)))}function Not(e){return!ExtendsUndefinedCheck(e.not)}function ExtendsUndefinedCheck(e){return e[n.Kind]==="Intersect"?Intersect(e):e[n.Kind]==="Union"?Union(e):e[n.Kind]==="Not"?Not(e):e[n.Kind]==="Undefined"?true:false}},34263:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Extends=Extends;const n=r(69100);const s=r(18410);const o=r(38100);const i=r(83948);const a=r(80338);const c=r(96994);function ExtendsResolve(e,t,r,o){const i=(0,s.ExtendsCheck)(e,t);return i===s.ExtendsResult.Union?(0,n.Union)([r,o]):i===s.ExtendsResult.True?r:o}function Extends(e,t,r,n,s={}){return(0,c.IsMappedResult)(e)?(0,a.ExtendsFromMappedResult)(e,t,r,n,s):(0,c.IsMappedKey)(e)?(0,o.CloneType)((0,i.ExtendsFromMappedKey)(e,t,r,n,s)):(0,o.CloneType)(ExtendsResolve(e,t,r,n),s)}},94850:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(18410),t);s(r(83948),t);s(r(80338),t);s(r(82486),t);s(r(34263),t)},70826:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExtractFromMappedResult=ExtractFromMappedResult;const n=r(41094);const s=r(4847);function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=(0,s.Extract)(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function ExtractFromMappedResult(e,t){const r=FromMappedResult(e,t);return(0,n.MappedResult)(r)}},50253:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExtractFromTemplateLiteral=ExtractFromTemplateLiteral;const n=r(4847);const s=r(26609);function ExtractFromTemplateLiteral(e,t){return(0,n.Extract)((0,s.TemplateLiteralToUnion)(e),t)}},4847:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Extract=Extract;const n=r(69100);const s=r(54025);const o=r(94850);const i=r(38100);const a=r(70826);const c=r(50253);const u=r(96994);function ExtractRest(e,t){const r=e.filter((e=>(0,o.ExtendsCheck)(e,t)!==o.ExtendsResult.False));return r.length===1?r[0]:(0,n.Union)(r)}function Extract(e,t,r={}){if((0,u.IsTemplateLiteral)(e))return(0,i.CloneType)((0,c.ExtractFromTemplateLiteral)(e,t),r);if((0,u.IsMappedResult)(e))return(0,i.CloneType)((0,a.ExtractFromMappedResult)(e,t),r);return(0,i.CloneType)((0,u.IsUnion)(e)?ExtractRest(e.anyOf,t):(0,o.ExtendsCheck)(e,t)!==o.ExtendsResult.False?e:(0,s.Never)(),r)}},69682:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(70826),t);s(r(50253),t);s(r(4847),t)},93649:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Function=Function;const n=r(38100);const s=r(97034);function Function(e,t,r){return{...r,[s.Kind]:"Function",type:"Function",parameters:(0,n.CloneRest)(e),returns:(0,n.CloneType)(t)}}},29857:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(93649),t)},64754:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValueGuard=t.TypeGuard=t.KindGuard=void 0;t.KindGuard=r(96994);t.TypeGuard=r(70384);t.ValueGuard=r(13415)},96994:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IsReadonly=IsReadonly;t.IsOptional=IsOptional;t.IsAny=IsAny;t.IsArray=IsArray;t.IsAsyncIterator=IsAsyncIterator;t.IsBigInt=IsBigInt;t.IsBoolean=IsBoolean;t.IsConstructor=IsConstructor;t.IsDate=IsDate;t.IsFunction=IsFunction;t.IsInteger=IsInteger;t.IsProperties=IsProperties;t.IsIntersect=IsIntersect;t.IsIterator=IsIterator;t.IsKindOf=IsKindOf;t.IsLiteralString=IsLiteralString;t.IsLiteralNumber=IsLiteralNumber;t.IsLiteralBoolean=IsLiteralBoolean;t.IsLiteral=IsLiteral;t.IsMappedKey=IsMappedKey;t.IsMappedResult=IsMappedResult;t.IsNever=IsNever;t.IsNot=IsNot;t.IsNull=IsNull;t.IsNumber=IsNumber;t.IsObject=IsObject;t.IsPromise=IsPromise;t.IsRecord=IsRecord;t.IsRecursive=IsRecursive;t.IsRef=IsRef;t.IsRegExp=IsRegExp;t.IsString=IsString;t.IsSymbol=IsSymbol;t.IsTemplateLiteral=IsTemplateLiteral;t.IsThis=IsThis;t.IsTransform=IsTransform;t.IsTuple=IsTuple;t.IsUndefined=IsUndefined;t.IsUnion=IsUnion;t.IsUint8Array=IsUint8Array;t.IsUnknown=IsUnknown;t.IsUnsafe=IsUnsafe;t.IsVoid=IsVoid;t.IsKind=IsKind;t.IsSchema=IsSchema;const n=r(13415);const s=r(97034);function IsReadonly(e){return n.IsObject(e)&&e[s.ReadonlyKind]==="Readonly"}function IsOptional(e){return n.IsObject(e)&&e[s.OptionalKind]==="Optional"}function IsAny(e){return IsKindOf(e,"Any")}function IsArray(e){return IsKindOf(e,"Array")}function IsAsyncIterator(e){return IsKindOf(e,"AsyncIterator")}function IsBigInt(e){return IsKindOf(e,"BigInt")}function IsBoolean(e){return IsKindOf(e,"Boolean")}function IsConstructor(e){return IsKindOf(e,"Constructor")}function IsDate(e){return IsKindOf(e,"Date")}function IsFunction(e){return IsKindOf(e,"Function")}function IsInteger(e){return IsKindOf(e,"Integer")}function IsProperties(e){return n.IsObject(e)}function IsIntersect(e){return IsKindOf(e,"Intersect")}function IsIterator(e){return IsKindOf(e,"Iterator")}function IsKindOf(e,t){return n.IsObject(e)&&s.Kind in e&&e[s.Kind]===t}function IsLiteralString(e){return IsLiteral(e)&&n.IsString(e.const)}function IsLiteralNumber(e){return IsLiteral(e)&&n.IsNumber(e.const)}function IsLiteralBoolean(e){return IsLiteral(e)&&n.IsBoolean(e.const)}function IsLiteral(e){return IsKindOf(e,"Literal")}function IsMappedKey(e){return IsKindOf(e,"MappedKey")}function IsMappedResult(e){return IsKindOf(e,"MappedResult")}function IsNever(e){return IsKindOf(e,"Never")}function IsNot(e){return IsKindOf(e,"Not")}function IsNull(e){return IsKindOf(e,"Null")}function IsNumber(e){return IsKindOf(e,"Number")}function IsObject(e){return IsKindOf(e,"Object")}function IsPromise(e){return IsKindOf(e,"Promise")}function IsRecord(e){return IsKindOf(e,"Record")}function IsRecursive(e){return n.IsObject(e)&&s.Hint in e&&e[s.Hint]==="Recursive"}function IsRef(e){return IsKindOf(e,"Ref")}function IsRegExp(e){return IsKindOf(e,"RegExp")}function IsString(e){return IsKindOf(e,"String")}function IsSymbol(e){return IsKindOf(e,"Symbol")}function IsTemplateLiteral(e){return IsKindOf(e,"TemplateLiteral")}function IsThis(e){return IsKindOf(e,"This")}function IsTransform(e){return n.IsObject(e)&&s.TransformKind in e}function IsTuple(e){return IsKindOf(e,"Tuple")}function IsUndefined(e){return IsKindOf(e,"Undefined")}function IsUnion(e){return IsKindOf(e,"Union")}function IsUint8Array(e){return IsKindOf(e,"Uint8Array")}function IsUnknown(e){return IsKindOf(e,"Unknown")}function IsUnsafe(e){return IsKindOf(e,"Unsafe")}function IsVoid(e){return IsKindOf(e,"Void")}function IsKind(e){return n.IsObject(e)&&s.Kind in e&&n.IsString(e[s.Kind])}function IsSchema(e){return IsAny(e)||IsArray(e)||IsBoolean(e)||IsBigInt(e)||IsAsyncIterator(e)||IsConstructor(e)||IsDate(e)||IsFunction(e)||IsInteger(e)||IsIntersect(e)||IsIterator(e)||IsLiteral(e)||IsMappedKey(e)||IsMappedResult(e)||IsNever(e)||IsNot(e)||IsNull(e)||IsNumber(e)||IsObject(e)||IsPromise(e)||IsRecord(e)||IsRef(e)||IsRegExp(e)||IsString(e)||IsSymbol(e)||IsTemplateLiteral(e)||IsThis(e)||IsTuple(e)||IsUndefined(e)||IsUnion(e)||IsUint8Array(e)||IsUnknown(e)||IsUnsafe(e)||IsVoid(e)||IsKind(e)}},70384:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeGuardUnknownTypeError=void 0;t.IsReadonly=IsReadonly;t.IsOptional=IsOptional;t.IsAny=IsAny;t.IsArray=IsArray;t.IsAsyncIterator=IsAsyncIterator;t.IsBigInt=IsBigInt;t.IsBoolean=IsBoolean;t.IsConstructor=IsConstructor;t.IsDate=IsDate;t.IsFunction=IsFunction;t.IsInteger=IsInteger;t.IsProperties=IsProperties;t.IsIntersect=IsIntersect;t.IsIterator=IsIterator;t.IsKindOf=IsKindOf;t.IsLiteralString=IsLiteralString;t.IsLiteralNumber=IsLiteralNumber;t.IsLiteralBoolean=IsLiteralBoolean;t.IsLiteral=IsLiteral;t.IsLiteralValue=IsLiteralValue;t.IsMappedKey=IsMappedKey;t.IsMappedResult=IsMappedResult;t.IsNever=IsNever;t.IsNot=IsNot;t.IsNull=IsNull;t.IsNumber=IsNumber;t.IsObject=IsObject;t.IsPromise=IsPromise;t.IsRecord=IsRecord;t.IsRecursive=IsRecursive;t.IsRef=IsRef;t.IsRegExp=IsRegExp;t.IsString=IsString;t.IsSymbol=IsSymbol;t.IsTemplateLiteral=IsTemplateLiteral;t.IsThis=IsThis;t.IsTransform=IsTransform;t.IsTuple=IsTuple;t.IsUndefined=IsUndefined;t.IsUnionLiteral=IsUnionLiteral;t.IsUnion=IsUnion;t.IsUint8Array=IsUint8Array;t.IsUnknown=IsUnknown;t.IsUnsafe=IsUnsafe;t.IsVoid=IsVoid;t.IsKind=IsKind;t.IsSchema=IsSchema;const n=r(13415);const s=r(97034);const o=r(26113);class TypeGuardUnknownTypeError extends o.TypeBoxError{}t.TypeGuardUnknownTypeError=TypeGuardUnknownTypeError;const i=["Any","Array","AsyncIterator","BigInt","Boolean","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"];function IsPattern(e){try{new RegExp(e);return true}catch{return false}}function IsControlCharacterFree(e){if(!n.IsString(e))return false;for(let t=0;t=7&&r<=13||r===27||r===127){return false}}return true}function IsAdditionalProperties(e){return IsOptionalBoolean(e)||IsSchema(e)}function IsOptionalBigInt(e){return n.IsUndefined(e)||n.IsBigInt(e)}function IsOptionalNumber(e){return n.IsUndefined(e)||n.IsNumber(e)}function IsOptionalBoolean(e){return n.IsUndefined(e)||n.IsBoolean(e)}function IsOptionalString(e){return n.IsUndefined(e)||n.IsString(e)}function IsOptionalPattern(e){return n.IsUndefined(e)||n.IsString(e)&&IsControlCharacterFree(e)&&IsPattern(e)}function IsOptionalFormat(e){return n.IsUndefined(e)||n.IsString(e)&&IsControlCharacterFree(e)}function IsOptionalSchema(e){return n.IsUndefined(e)||IsSchema(e)}function IsReadonly(e){return n.IsObject(e)&&e[s.ReadonlyKind]==="Readonly"}function IsOptional(e){return n.IsObject(e)&&e[s.OptionalKind]==="Optional"}function IsAny(e){return IsKindOf(e,"Any")&&IsOptionalString(e.$id)}function IsArray(e){return IsKindOf(e,"Array")&&e.type==="array"&&IsOptionalString(e.$id)&&IsSchema(e.items)&&IsOptionalNumber(e.minItems)&&IsOptionalNumber(e.maxItems)&&IsOptionalBoolean(e.uniqueItems)&&IsOptionalSchema(e.contains)&&IsOptionalNumber(e.minContains)&&IsOptionalNumber(e.maxContains)}function IsAsyncIterator(e){return IsKindOf(e,"AsyncIterator")&&e.type==="AsyncIterator"&&IsOptionalString(e.$id)&&IsSchema(e.items)}function IsBigInt(e){return IsKindOf(e,"BigInt")&&e.type==="bigint"&&IsOptionalString(e.$id)&&IsOptionalBigInt(e.exclusiveMaximum)&&IsOptionalBigInt(e.exclusiveMinimum)&&IsOptionalBigInt(e.maximum)&&IsOptionalBigInt(e.minimum)&&IsOptionalBigInt(e.multipleOf)}function IsBoolean(e){return IsKindOf(e,"Boolean")&&e.type==="boolean"&&IsOptionalString(e.$id)}function IsConstructor(e){return IsKindOf(e,"Constructor")&&e.type==="Constructor"&&IsOptionalString(e.$id)&&n.IsArray(e.parameters)&&e.parameters.every((e=>IsSchema(e)))&&IsSchema(e.returns)}function IsDate(e){return IsKindOf(e,"Date")&&e.type==="Date"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximumTimestamp)&&IsOptionalNumber(e.exclusiveMinimumTimestamp)&&IsOptionalNumber(e.maximumTimestamp)&&IsOptionalNumber(e.minimumTimestamp)&&IsOptionalNumber(e.multipleOfTimestamp)}function IsFunction(e){return IsKindOf(e,"Function")&&e.type==="Function"&&IsOptionalString(e.$id)&&n.IsArray(e.parameters)&&e.parameters.every((e=>IsSchema(e)))&&IsSchema(e.returns)}function IsInteger(e){return IsKindOf(e,"Integer")&&e.type==="integer"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximum)&&IsOptionalNumber(e.exclusiveMinimum)&&IsOptionalNumber(e.maximum)&&IsOptionalNumber(e.minimum)&&IsOptionalNumber(e.multipleOf)}function IsProperties(e){return n.IsObject(e)&&Object.entries(e).every((([e,t])=>IsControlCharacterFree(e)&&IsSchema(t)))}function IsIntersect(e){return IsKindOf(e,"Intersect")&&(n.IsString(e.type)&&e.type!=="object"?false:true)&&n.IsArray(e.allOf)&&e.allOf.every((e=>IsSchema(e)&&!IsTransform(e)))&&IsOptionalString(e.type)&&(IsOptionalBoolean(e.unevaluatedProperties)||IsOptionalSchema(e.unevaluatedProperties))&&IsOptionalString(e.$id)}function IsIterator(e){return IsKindOf(e,"Iterator")&&e.type==="Iterator"&&IsOptionalString(e.$id)&&IsSchema(e.items)}function IsKindOf(e,t){return n.IsObject(e)&&s.Kind in e&&e[s.Kind]===t}function IsLiteralString(e){return IsLiteral(e)&&n.IsString(e.const)}function IsLiteralNumber(e){return IsLiteral(e)&&n.IsNumber(e.const)}function IsLiteralBoolean(e){return IsLiteral(e)&&n.IsBoolean(e.const)}function IsLiteral(e){return IsKindOf(e,"Literal")&&IsOptionalString(e.$id)&&IsLiteralValue(e.const)}function IsLiteralValue(e){return n.IsBoolean(e)||n.IsNumber(e)||n.IsString(e)}function IsMappedKey(e){return IsKindOf(e,"MappedKey")&&n.IsArray(e.keys)&&e.keys.every((e=>n.IsNumber(e)||n.IsString(e)))}function IsMappedResult(e){return IsKindOf(e,"MappedResult")&&IsProperties(e.properties)}function IsNever(e){return IsKindOf(e,"Never")&&n.IsObject(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function IsNot(e){return IsKindOf(e,"Not")&&IsSchema(e.not)}function IsNull(e){return IsKindOf(e,"Null")&&e.type==="null"&&IsOptionalString(e.$id)}function IsNumber(e){return IsKindOf(e,"Number")&&e.type==="number"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximum)&&IsOptionalNumber(e.exclusiveMinimum)&&IsOptionalNumber(e.maximum)&&IsOptionalNumber(e.minimum)&&IsOptionalNumber(e.multipleOf)}function IsObject(e){return IsKindOf(e,"Object")&&e.type==="object"&&IsOptionalString(e.$id)&&IsProperties(e.properties)&&IsAdditionalProperties(e.additionalProperties)&&IsOptionalNumber(e.minProperties)&&IsOptionalNumber(e.maxProperties)}function IsPromise(e){return IsKindOf(e,"Promise")&&e.type==="Promise"&&IsOptionalString(e.$id)&&IsSchema(e.item)}function IsRecord(e){return IsKindOf(e,"Record")&&e.type==="object"&&IsOptionalString(e.$id)&&IsAdditionalProperties(e.additionalProperties)&&n.IsObject(e.patternProperties)&&(e=>{const t=Object.getOwnPropertyNames(e.patternProperties);return t.length===1&&IsPattern(t[0])&&n.IsObject(e.patternProperties)&&IsSchema(e.patternProperties[t[0]])})(e)}function IsRecursive(e){return n.IsObject(e)&&s.Hint in e&&e[s.Hint]==="Recursive"}function IsRef(e){return IsKindOf(e,"Ref")&&IsOptionalString(e.$id)&&n.IsString(e.$ref)}function IsRegExp(e){return IsKindOf(e,"RegExp")&&IsOptionalString(e.$id)&&n.IsString(e.source)&&n.IsString(e.flags)&&IsOptionalNumber(e.maxLength)&&IsOptionalNumber(e.minLength)}function IsString(e){return IsKindOf(e,"String")&&e.type==="string"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.minLength)&&IsOptionalNumber(e.maxLength)&&IsOptionalPattern(e.pattern)&&IsOptionalFormat(e.format)}function IsSymbol(e){return IsKindOf(e,"Symbol")&&e.type==="symbol"&&IsOptionalString(e.$id)}function IsTemplateLiteral(e){return IsKindOf(e,"TemplateLiteral")&&e.type==="string"&&n.IsString(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function IsThis(e){return IsKindOf(e,"This")&&IsOptionalString(e.$id)&&n.IsString(e.$ref)}function IsTransform(e){return n.IsObject(e)&&s.TransformKind in e}function IsTuple(e){return IsKindOf(e,"Tuple")&&e.type==="array"&&IsOptionalString(e.$id)&&n.IsNumber(e.minItems)&&n.IsNumber(e.maxItems)&&e.minItems===e.maxItems&&(n.IsUndefined(e.items)&&n.IsUndefined(e.additionalItems)&&e.minItems===0||n.IsArray(e.items)&&e.items.every((e=>IsSchema(e))))}function IsUndefined(e){return IsKindOf(e,"Undefined")&&e.type==="undefined"&&IsOptionalString(e.$id)}function IsUnionLiteral(e){return IsUnion(e)&&e.anyOf.every((e=>IsLiteralString(e)||IsLiteralNumber(e)))}function IsUnion(e){return IsKindOf(e,"Union")&&IsOptionalString(e.$id)&&n.IsObject(e)&&n.IsArray(e.anyOf)&&e.anyOf.every((e=>IsSchema(e)))}function IsUint8Array(e){return IsKindOf(e,"Uint8Array")&&e.type==="Uint8Array"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.minByteLength)&&IsOptionalNumber(e.maxByteLength)}function IsUnknown(e){return IsKindOf(e,"Unknown")&&IsOptionalString(e.$id)}function IsUnsafe(e){return IsKindOf(e,"Unsafe")}function IsVoid(e){return IsKindOf(e,"Void")&&e.type==="void"&&IsOptionalString(e.$id)}function IsKind(e){return n.IsObject(e)&&s.Kind in e&&n.IsString(e[s.Kind])&&!i.includes(e[s.Kind])}function IsSchema(e){return n.IsObject(e)&&(IsAny(e)||IsArray(e)||IsBoolean(e)||IsBigInt(e)||IsAsyncIterator(e)||IsConstructor(e)||IsDate(e)||IsFunction(e)||IsInteger(e)||IsIntersect(e)||IsIterator(e)||IsLiteral(e)||IsMappedKey(e)||IsMappedResult(e)||IsNever(e)||IsNot(e)||IsNull(e)||IsNumber(e)||IsObject(e)||IsPromise(e)||IsRecord(e)||IsRef(e)||IsRegExp(e)||IsString(e)||IsSymbol(e)||IsTemplateLiteral(e)||IsThis(e)||IsTuple(e)||IsUndefined(e)||IsUnion(e)||IsUint8Array(e)||IsUnknown(e)||IsUnsafe(e)||IsVoid(e)||IsKind(e))}},13415:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.IsAsyncIterator=IsAsyncIterator;t.IsArray=IsArray;t.IsBigInt=IsBigInt;t.IsBoolean=IsBoolean;t.IsDate=IsDate;t.IsFunction=IsFunction;t.IsIterator=IsIterator;t.IsNull=IsNull;t.IsNumber=IsNumber;t.IsObject=IsObject;t.IsRegExp=IsRegExp;t.IsString=IsString;t.IsSymbol=IsSymbol;t.IsUint8Array=IsUint8Array;t.IsUndefined=IsUndefined;function IsAsyncIterator(e){return IsObject(e)&&!IsArray(e)&&!IsUint8Array(e)&&Symbol.asyncIterator in e}function IsArray(e){return Array.isArray(e)}function IsBigInt(e){return typeof e==="bigint"}function IsBoolean(e){return typeof e==="boolean"}function IsDate(e){return e instanceof globalThis.Date}function IsFunction(e){return typeof e==="function"}function IsIterator(e){return IsObject(e)&&!IsArray(e)&&!IsUint8Array(e)&&Symbol.iterator in e}function IsNull(e){return e===null}function IsNumber(e){return typeof e==="number"}function IsObject(e){return typeof e==="object"&&e!==null}function IsRegExp(e){return e instanceof globalThis.RegExp}function IsString(e){return typeof e==="string"}function IsSymbol(e){return typeof e==="symbol"}function IsUint8Array(e){return e instanceof globalThis.Uint8Array}function IsUndefined(e){return e===undefined}},87943:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Increment=Increment;function Increment(e){return(parseInt(e)+1).toString()}},57782:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(87943),t)},86918:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(66904),t);s(r(80494),t);s(r(65774),t);s(r(11795),t)},66904:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IndexFromMappedKey=IndexFromMappedKey;const n=r(11795);const s=r(41094);function MappedIndexPropertyKey(e,t,r){return{[t]:(0,n.Index)(e,[t],r)}}function MappedIndexPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...MappedIndexPropertyKey(e,n,r)})),{})}function MappedIndexProperties(e,t,r){return MappedIndexPropertyKeys(e,t.keys,r)}function IndexFromMappedKey(e,t,r){const n=MappedIndexProperties(e,t,r);return(0,s.MappedResult)(n)}},80494:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IndexFromMappedResult=IndexFromMappedResult;const n=r(41094);const s=r(65774);const o=r(86918);function FromProperties(e,t,r){const n={};for(const i of Object.getOwnPropertyNames(t)){n[i]=(0,o.Index)(e,(0,s.IndexPropertyKeys)(t[i]),r)}return n}function FromMappedResult(e,t,r){return FromProperties(e,t.properties,r)}function IndexFromMappedResult(e,t,r){const s=FromMappedResult(e,t,r);return(0,n.MappedResult)(s)}},65774:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IndexPropertyKeys=IndexPropertyKeys;const n=r(26609);const s=r(96994);function FromTemplateLiteral(e){const t=(0,n.TemplateLiteralGenerate)(e);return t.map((e=>e.toString()))}function FromUnion(e){const t=[];for(const r of e)t.push(...IndexPropertyKeys(r));return t}function FromLiteral(e){return[e.toString()]}function IndexPropertyKeys(e){return[...new Set((0,s.IsTemplateLiteral)(e)?FromTemplateLiteral(e):(0,s.IsUnion)(e)?FromUnion(e.anyOf):(0,s.IsLiteral)(e)?FromLiteral(e.const):(0,s.IsNumber)(e)?["[number]"]:(0,s.IsInteger)(e)?["[number]"]:[])]}},11795:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IndexFromPropertyKey=IndexFromPropertyKey;t.IndexFromPropertyKeys=IndexFromPropertyKeys;t.Index=Index;const n=r(54025);const s=r(62746);const o=r(69100);const i=r(38100);const a=r(65774);const c=r(66904);const u=r(80494);const A=r(96994);function FromRest(e,t){return e.map((e=>IndexFromPropertyKey(e,t)))}function FromIntersectRest(e){return e.filter((e=>!(0,A.IsNever)(e)))}function FromIntersect(e,t){return(0,s.IntersectEvaluated)(FromIntersectRest(FromRest(e,t)))}function FromUnionRest(e){return e.some((e=>(0,A.IsNever)(e)))?[]:e}function FromUnion(e,t){return(0,o.UnionEvaluated)(FromUnionRest(FromRest(e,t)))}function FromTuple(e,t){return t in e?e[t]:t==="[number]"?(0,o.UnionEvaluated)(e):(0,n.Never)()}function FromArray(e,t){return t==="[number]"?e:(0,n.Never)()}function FromProperty(e,t){return t in e?e[t]:(0,n.Never)()}function IndexFromPropertyKey(e,t){return(0,A.IsIntersect)(e)?FromIntersect(e.allOf,t):(0,A.IsUnion)(e)?FromUnion(e.anyOf,t):(0,A.IsTuple)(e)?FromTuple(e.items??[],t):(0,A.IsArray)(e)?FromArray(e.items,t):(0,A.IsObject)(e)?FromProperty(e.properties,t):(0,n.Never)()}function IndexFromPropertyKeys(e,t){return t.map((t=>IndexFromPropertyKey(e,t)))}function FromSchema(e,t){return(0,o.UnionEvaluated)(IndexFromPropertyKeys(e,t))}function Index(e,t,r={}){return(0,A.IsMappedResult)(t)?(0,i.CloneType)((0,u.IndexFromMappedResult)(e,t,r)):(0,A.IsMappedKey)(t)?(0,i.CloneType)((0,c.IndexFromMappedKey)(e,t,r)):(0,A.IsSchema)(t)?(0,i.CloneType)(FromSchema(e,(0,a.IndexPropertyKeys)(t)),r):(0,i.CloneType)(FromSchema(e,t),r)}},26277:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(79659),t)},79659:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.InstanceType=InstanceType;const n=r(38100);function InstanceType(e,t={}){return(0,n.CloneType)(e.returns,t)}},4949:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(76295),t)},76295:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Integer=Integer;const n=r(97034);function Integer(e={}){return{...e,[n.Kind]:"Integer",type:"integer"}}},62746:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(89995),t);s(r(35212),t);s(r(26015),t)},57604:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IntersectCreate=IntersectCreate;const n=r(97034);const s=r(38100);const o=r(96994);function IntersectCreate(e,t){const r=e.every((e=>(0,o.IsObject)(e)));const i=(0,o.IsSchema)(t.unevaluatedProperties)?{unevaluatedProperties:(0,s.CloneType)(t.unevaluatedProperties)}:{};return t.unevaluatedProperties===false||(0,o.IsSchema)(t.unevaluatedProperties)||r?{...t,...i,[n.Kind]:"Intersect",type:"object",allOf:(0,s.CloneRest)(e)}:{...t,...i,[n.Kind]:"Intersect",allOf:(0,s.CloneRest)(e)}}},89995:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IntersectEvaluated=IntersectEvaluated;const n=r(97034);const s=r(38100);const o=r(83889);const i=r(54025);const a=r(38425);const c=r(57604);const u=r(96994);function IsIntersectOptional(e){return e.every((e=>(0,u.IsOptional)(e)))}function RemoveOptionalFromType(e){return(0,o.Discard)(e,[n.OptionalKind])}function RemoveOptionalFromRest(e){return e.map((e=>(0,u.IsOptional)(e)?RemoveOptionalFromType(e):e))}function ResolveIntersect(e,t){return IsIntersectOptional(e)?(0,a.Optional)((0,c.IntersectCreate)(RemoveOptionalFromRest(e),t)):(0,c.IntersectCreate)(RemoveOptionalFromRest(e),t)}function IntersectEvaluated(e,t={}){if(e.length===0)return(0,i.Never)(t);if(e.length===1)return(0,s.CloneType)(e[0],t);if(e.some((e=>(0,u.IsTransform)(e))))throw new Error("Cannot intersect transform types");return ResolveIntersect(e,t)}},35212:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const n=r(97034)},26015:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Intersect=Intersect;const n=r(38100);const s=r(54025);const o=r(57604);const i=r(96994);function Intersect(e,t={}){if(e.length===0)return(0,s.Never)(t);if(e.length===1)return(0,n.CloneType)(e[0],t);if(e.some((e=>(0,i.IsTransform)(e))))throw new Error("Cannot intersect transform types");return(0,o.IntersectCreate)(e,t)}},15400:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Capitalize=Capitalize;const n=r(39015);function Capitalize(e,t={}){return(0,n.Intrinsic)(e,"Capitalize",t)}},30568:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(15400),t);s(r(71804),t);s(r(39015),t);s(r(13161),t);s(r(57019),t);s(r(80968),t)},71804:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.IntrinsicFromMappedKey=IntrinsicFromMappedKey;const n=r(41094);const s=r(39015);const o=r(98076);function MappedIntrinsicPropertyKey(e,t,r){return{[e]:(0,s.Intrinsic)((0,o.Literal)(e),t,r)}}function MappedIntrinsicPropertyKeys(e,t,r){return e.reduce(((e,n)=>({...e,...MappedIntrinsicPropertyKey(n,t,r)})),{})}function MappedIntrinsicProperties(e,t,r){return MappedIntrinsicPropertyKeys(e["keys"],t,r)}function IntrinsicFromMappedKey(e,t,r){const s=MappedIntrinsicProperties(e,t,r);return(0,n.MappedResult)(s)}},39015:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Intrinsic=Intrinsic;const n=r(26609);const s=r(71804);const o=r(98076);const i=r(69100);const a=r(96994);function ApplyUncapitalize(e){const[t,r]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),r].join("")}function ApplyCapitalize(e){const[t,r]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),r].join("")}function ApplyUppercase(e){return e.toUpperCase()}function ApplyLowercase(e){return e.toLowerCase()}function FromTemplateLiteral(e,t,r){const s=(0,n.TemplateLiteralParseExact)(e.pattern);const a=(0,n.IsTemplateLiteralExpressionFinite)(s);if(!a)return{...e,pattern:FromLiteralValue(e.pattern,t)};const c=[...(0,n.TemplateLiteralExpressionGenerate)(s)];const u=c.map((e=>(0,o.Literal)(e)));const A=FromRest(u,t);const l=(0,i.Union)(A);return(0,n.TemplateLiteral)([l],r)}function FromLiteralValue(e,t){return typeof e==="string"?t==="Uncapitalize"?ApplyUncapitalize(e):t==="Capitalize"?ApplyCapitalize(e):t==="Uppercase"?ApplyUppercase(e):t==="Lowercase"?ApplyLowercase(e):e:e.toString()}function FromRest(e,t){return e.map((e=>Intrinsic(e,t)))}function Intrinsic(e,t,r={}){return(0,a.IsMappedKey)(e)?(0,s.IntrinsicFromMappedKey)(e,t,r):(0,a.IsTemplateLiteral)(e)?FromTemplateLiteral(e,t,e):(0,a.IsUnion)(e)?(0,i.Union)(FromRest(e.anyOf,t),r):(0,a.IsLiteral)(e)?(0,o.Literal)(FromLiteralValue(e.const,t),r):e}},13161:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Lowercase=Lowercase;const n=r(39015);function Lowercase(e,t={}){return(0,n.Intrinsic)(e,"Lowercase",t)}},57019:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Uncapitalize=Uncapitalize;const n=r(39015);function Uncapitalize(e,t={}){return(0,n.Intrinsic)(e,"Uncapitalize",t)}},80968:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Uppercase=Uppercase;const n=r(39015);function Uppercase(e,t={}){return(0,n.Intrinsic)(e,"Uppercase",t)}},35907:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(78493),t)},78493:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Iterator=Iterator;const n=r(38100);const s=r(97034);function Iterator(e,t={}){return{...t,[s.Kind]:"Iterator",type:"Iterator",items:(0,n.CloneType)(e)}}},73373:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(19642),t);s(r(740),t);s(r(33930),t);s(r(36895),t)},19642:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KeyOfFromMappedResult=KeyOfFromMappedResult;const n=r(41094);const s=r(36895);function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=(0,s.KeyOf)(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function KeyOfFromMappedResult(e,t){const r=FromMappedResult(e,t);return(0,n.MappedResult)(r)}},740:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KeyOfPropertyEntries=KeyOfPropertyEntries;const n=r(11795);const s=r(33930);function KeyOfPropertyEntries(e){const t=(0,s.KeyOfPropertyKeys)(e);const r=(0,n.IndexFromPropertyKeys)(e,t);return t.map(((e,n)=>[t[n],r[n]]))}},33930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KeyOfPropertyKeys=KeyOfPropertyKeys;t.KeyOfPattern=KeyOfPattern;const n=r(12760);const s=r(96994);function FromRest(e){const t=[];for(const r of e)t.push(KeyOfPropertyKeys(r));return t}function FromIntersect(e){const t=FromRest(e);const r=(0,n.SetUnionMany)(t);return r}function FromUnion(e){const t=FromRest(e);const r=(0,n.SetIntersectMany)(t);return r}function FromTuple(e){return e.map(((e,t)=>t.toString()))}function FromArray(e){return["[number]"]}function FromProperties(e){return globalThis.Object.getOwnPropertyNames(e)}function FromPatternProperties(e){if(!o)return[];const t=globalThis.Object.getOwnPropertyNames(e);return t.map((e=>e[0]==="^"&&e[e.length-1]==="$"?e.slice(1,e.length-1):e))}function KeyOfPropertyKeys(e){return(0,s.IsIntersect)(e)?FromIntersect(e.allOf):(0,s.IsUnion)(e)?FromUnion(e.anyOf):(0,s.IsTuple)(e)?FromTuple(e.items??[]):(0,s.IsArray)(e)?FromArray(e.items):(0,s.IsObject)(e)?FromProperties(e.properties):(0,s.IsRecord)(e)?FromPatternProperties(e.patternProperties):[]}let o=false;function KeyOfPattern(e){o=true;const t=KeyOfPropertyKeys(e);o=false;const r=t.map((e=>`(${e})`));return`^(${r.join("|")})$`}},36895:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KeyOfPropertyKeysToRest=KeyOfPropertyKeysToRest;t.KeyOf=KeyOf;const n=r(98076);const s=r(85544);const o=r(33930);const i=r(69100);const a=r(38100);const c=r(19642);const u=r(96994);function KeyOfPropertyKeysToRest(e){return e.map((e=>e==="[number]"?(0,s.Number)():(0,n.Literal)(e)))}function KeyOf(e,t={}){if((0,u.IsMappedResult)(e)){return(0,c.KeyOfFromMappedResult)(e,t)}else{const r=(0,o.KeyOfPropertyKeys)(e);const n=KeyOfPropertyKeysToRest(r);const s=(0,i.UnionEvaluated)(n);return(0,a.CloneType)(s,t)}}},98076:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(31591),t)},31591:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Literal=Literal;const n=r(97034);function Literal(e,t={}){return{...t,[n.Kind]:"Literal",const:e,type:typeof e}}},41094:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(35613),t);s(r(67517),t);s(r(90467),t)},35613:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.MappedKey=MappedKey;const n=r(97034);function MappedKey(e){return{[n.Kind]:"MappedKey",keys:e}}},67517:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.MappedResult=MappedResult;const n=r(97034);function MappedResult(e){return{[n.Kind]:"MappedResult",properties:e}}},90467:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.MappedFunctionReturnType=MappedFunctionReturnType;t.Mapped=Mapped;const n=r(97034);const s=r(38100);const o=r(83889);const i=r(17186);const a=r(68092);const c=r(16939);const u=r(29857);const A=r(86918);const l=r(62746);const d=r(35907);const p=r(98076);const g=r(62094);const h=r(38425);const m=r(70062);const E=r(40675);const y=r(7521);const I=r(69100);const C=r(12760);const b=r(67517);const B=r(96994);function FromMappedResult(e,t){return e in t?FromSchemaType(e,t[e]):(0,b.MappedResult)(t)}function MappedKeyToKnownMappedResultProperties(e){return{[e]:(0,p.Literal)(e)}}function MappedKeyToUnknownMappedResultProperties(e){const t={};for(const r of e)t[r]=(0,p.Literal)(r);return t}function MappedKeyToMappedResultProperties(e,t){return(0,C.SetIncludes)(t,e)?MappedKeyToKnownMappedResultProperties(e):MappedKeyToUnknownMappedResultProperties(t)}function FromMappedKey(e,t){const r=MappedKeyToMappedResultProperties(e,t);return FromMappedResult(e,r)}function FromRest(e,t){return t.map((t=>FromSchemaType(e,t)))}function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(t))r[n]=FromSchemaType(e,t[n]);return r}function FromSchemaType(e,t){return(0,B.IsOptional)(t)?(0,h.Optional)(FromSchemaType(e,(0,o.Discard)(t,[n.OptionalKind]))):(0,B.IsReadonly)(t)?(0,E.Readonly)(FromSchemaType(e,(0,o.Discard)(t,[n.ReadonlyKind]))):(0,B.IsMappedResult)(t)?FromMappedResult(e,t.properties):(0,B.IsMappedKey)(t)?FromMappedKey(e,t.keys):(0,B.IsConstructor)(t)?(0,c.Constructor)(FromRest(e,t.parameters),FromSchemaType(e,t.returns)):(0,B.IsFunction)(t)?(0,u.Function)(FromRest(e,t.parameters),FromSchemaType(e,t.returns)):(0,B.IsAsyncIterator)(t)?(0,a.AsyncIterator)(FromSchemaType(e,t.items)):(0,B.IsIterator)(t)?(0,d.Iterator)(FromSchemaType(e,t.items)):(0,B.IsIntersect)(t)?(0,l.Intersect)(FromRest(e,t.allOf)):(0,B.IsUnion)(t)?(0,I.Union)(FromRest(e,t.anyOf)):(0,B.IsTuple)(t)?(0,y.Tuple)(FromRest(e,t.items??[])):(0,B.IsObject)(t)?(0,g.Object)(FromProperties(e,t.properties)):(0,B.IsArray)(t)?(0,i.Array)(FromSchemaType(e,t.items)):(0,B.IsPromise)(t)?(0,m.Promise)(FromSchemaType(e,t.item)):t}function MappedFunctionReturnType(e,t){const r={};for(const n of e)r[n]=FromSchemaType(n,t);return r}function Mapped(e,t,r={}){const o=(0,B.IsSchema)(e)?(0,A.IndexPropertyKeys)(e):e;const i=t({[n.Kind]:"MappedKey",keys:o});const a=MappedFunctionReturnType(o,i);return(0,s.CloneType)((0,g.Object)(a),r)}},54025:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(29867),t)},29867:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Never=Never;const n=r(97034);function Never(e={}){return{...e,[n.Kind]:"Never",not:{}}}},1078:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(8559),t)},8559:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Not=Not;const n=r(38100);const s=r(97034);function Not(e,t){return{...t,[s.Kind]:"Not",not:(0,n.CloneType)(e)}}},50468:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(3007),t)},3007:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Null=Null;const n=r(97034);function Null(e={}){return{...e,[n.Kind]:"Null",type:"null"}}},85544:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(14151),t)},14151:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Number=Number;const n=r(97034);function Number(e={}){return{...e,[n.Kind]:"Number",type:"number"}}},62094:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(14211),t)},14211:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Object=void 0;const n=r(38100);const s=r(97034);const o=r(96994);function _Object(e,t={}){const r=globalThis.Object.getOwnPropertyNames(e);const i=r.filter((t=>(0,o.IsOptional)(e[t])));const a=r.filter((e=>!i.includes(e)));const c=(0,o.IsSchema)(t.additionalProperties)?{additionalProperties:(0,n.CloneType)(t.additionalProperties)}:{};const u={};for(const t of r)u[t]=(0,n.CloneType)(e[t]);return a.length>0?{...t,...c,[s.Kind]:"Object",type:"object",properties:u,required:a}:{...t,...c,[s.Kind]:"Object",type:"object",properties:u}}t.Object=_Object},88932:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(99308),t);s(r(39602),t);s(r(33143),t)},99308:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.OmitFromMappedKey=OmitFromMappedKey;const n=r(41094);const s=r(33143);function FromPropertyKey(e,t,r){return{[t]:(0,s.Omit)(e,[t],r)}}function FromPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...FromPropertyKey(e,n,r)})),{})}function FromMappedKey(e,t,r){return FromPropertyKeys(e,t.keys,r)}function OmitFromMappedKey(e,t,r){const s=FromMappedKey(e,t,r);return(0,n.MappedResult)(s)}},39602:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.OmitFromMappedResult=OmitFromMappedResult;const n=r(41094);const s=r(33143);function FromProperties(e,t,r){const n={};for(const o of globalThis.Object.getOwnPropertyNames(e))n[o]=(0,s.Omit)(e[o],t,r);return n}function FromMappedResult(e,t,r){return FromProperties(e.properties,t,r)}function OmitFromMappedResult(e,t,r){const s=FromMappedResult(e,t,r);return(0,n.MappedResult)(s)}},33143:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Omit=Omit;const n=r(62746);const s=r(69100);const o=r(62094);const i=r(86918);const a=r(83889);const c=r(97034);const u=r(38100);const A=r(99308);const l=r(39602);const d=r(96994);function FromIntersect(e,t){return e.map((e=>OmitResolve(e,t)))}function FromUnion(e,t){return e.map((e=>OmitResolve(e,t)))}function FromProperty(e,t){const{[t]:r,...n}=e;return n}function FromProperties(e,t){return t.reduce(((e,t)=>FromProperty(e,t)),e)}function OmitResolve(e,t){return(0,d.IsIntersect)(e)?(0,n.Intersect)(FromIntersect(e.allOf,t)):(0,d.IsUnion)(e)?(0,s.Union)(FromUnion(e.anyOf,t)):(0,d.IsObject)(e)?(0,o.Object)(FromProperties(e.properties,t)):(0,o.Object)({})}function Omit(e,t,r={}){if((0,d.IsMappedKey)(t))return(0,A.OmitFromMappedKey)(e,t,r);if((0,d.IsMappedResult)(e))return(0,l.OmitFromMappedResult)(e,t,r);const n=(0,d.IsSchema)(t)?(0,i.IndexPropertyKeys)(t):t;const s=(0,a.Discard)(e,[c.TransformKind,"$id","required"]);const o=(0,u.CloneType)(OmitResolve(e,n),r);return{...s,...o}}},38425:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(63984),t);s(r(15405),t)},63984:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.OptionalFromMappedResult=OptionalFromMappedResult;const n=r(41094);const s=r(15405);function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=(0,s.Optional)(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function OptionalFromMappedResult(e,t){const r=FromMappedResult(e,t);return(0,n.MappedResult)(r)}},15405:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Optional=Optional;const n=r(97034);const s=r(38100);const o=r(83889);const i=r(63984);const a=r(96994);function RemoveOptional(e){return(0,o.Discard)((0,s.CloneType)(e),[n.OptionalKind])}function AddOptional(e){return{...(0,s.CloneType)(e),[n.OptionalKind]:"Optional"}}function OptionalWithFlag(e,t){return t===false?RemoveOptional(e):AddOptional(e)}function Optional(e,t){const r=t??true;return(0,a.IsMappedResult)(e)?(0,i.OptionalFromMappedResult)(e,r):OptionalWithFlag(e,r)}},30449:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(92853),t)},92853:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Parameters=Parameters;const n=r(7521);const s=r(38100);function Parameters(e,t={}){return(0,n.Tuple)((0,s.CloneRest)(e.parameters),{...t})}},75726:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(16438),t);s(r(34523),t)},16438:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.PartialFromMappedResult=PartialFromMappedResult;const n=r(41094);const s=r(34523);function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=(0,s.Partial)(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function PartialFromMappedResult(e,t){const r=FromMappedResult(e,t);return(0,n.MappedResult)(r)}},34523:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Partial=Partial;const n=r(38425);const s=r(62094);const o=r(62746);const i=r(69100);const a=r(83889);const c=r(97034);const u=r(38100);const A=r(16438);const l=r(96994);function FromRest(e){return e.map((e=>PartialResolve(e)))}function FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=(0,n.Optional)(e[r]);return t}function PartialResolve(e){return(0,l.IsIntersect)(e)?(0,o.Intersect)(FromRest(e.allOf)):(0,l.IsUnion)(e)?(0,i.Union)(FromRest(e.anyOf)):(0,l.IsObject)(e)?(0,s.Object)(FromProperties(e.properties)):(0,s.Object)({})}function Partial(e,t={}){if((0,l.IsMappedResult)(e))return(0,A.PartialFromMappedResult)(e,t);const r=(0,a.Discard)(e,[c.TransformKind,"$id","required"]);const n=(0,u.CloneType)(PartialResolve(e),t);return{...r,...n}}},94354:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(74327),t)},74327:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.PatternNeverExact=t.PatternStringExact=t.PatternNumberExact=t.PatternBooleanExact=t.PatternNever=t.PatternString=t.PatternNumber=t.PatternBoolean=void 0;t.PatternBoolean="(true|false)";t.PatternNumber="(0|[1-9][0-9]*)";t.PatternString="(.*)";t.PatternNever="(?!.*)";t.PatternBooleanExact=`^${t.PatternBoolean}$`;t.PatternNumberExact=`^${t.PatternNumber}$`;t.PatternStringExact=`^${t.PatternString}$`;t.PatternNeverExact=`^${t.PatternNever}$`},40640:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(72748),t);s(r(4882),t);s(r(65911),t)},72748:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.PickFromMappedKey=PickFromMappedKey;const n=r(41094);const s=r(65911);function FromPropertyKey(e,t,r){return{[t]:(0,s.Pick)(e,[t],r)}}function FromPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...FromPropertyKey(e,n,r)})),{})}function FromMappedKey(e,t,r){return FromPropertyKeys(e,t.keys,r)}function PickFromMappedKey(e,t,r){const s=FromMappedKey(e,t,r);return(0,n.MappedResult)(s)}},4882:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.PickFromMappedResult=PickFromMappedResult;const n=r(41094);const s=r(65911);function FromProperties(e,t,r){const n={};for(const o of globalThis.Object.getOwnPropertyNames(e))n[o]=(0,s.Pick)(e[o],t,r);return n}function FromMappedResult(e,t,r){return FromProperties(e.properties,t,r)}function PickFromMappedResult(e,t,r){const s=FromMappedResult(e,t,r);return(0,n.MappedResult)(s)}},65911:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Pick=Pick;const n=r(62746);const s=r(69100);const o=r(62094);const i=r(86918);const a=r(83889);const c=r(97034);const u=r(38100);const A=r(72748);const l=r(4882);const d=r(96994);function FromIntersect(e,t){return e.map((e=>PickResolve(e,t)))}function FromUnion(e,t){return e.map((e=>PickResolve(e,t)))}function FromProperties(e,t){const r={};for(const n of t)if(n in e)r[n]=e[n];return r}function PickResolve(e,t){return(0,d.IsIntersect)(e)?(0,n.Intersect)(FromIntersect(e.allOf,t)):(0,d.IsUnion)(e)?(0,s.Union)(FromUnion(e.anyOf,t)):(0,d.IsObject)(e)?(0,o.Object)(FromProperties(e.properties,t)):(0,o.Object)({})}function Pick(e,t,r={}){if((0,d.IsMappedKey)(t))return(0,A.PickFromMappedKey)(e,t,r);if((0,d.IsMappedResult)(e))return(0,l.PickFromMappedResult)(e,t,r);const n=(0,d.IsSchema)(t)?(0,i.IndexPropertyKeys)(t):t;const s=(0,a.Discard)(e,[c.TransformKind,"$id","required"]);const o=(0,u.CloneType)(PickResolve(e,n),r);return{...s,...o}}},70062:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(35675),t)},35675:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Promise=Promise;const n=r(38100);const s=r(97034);function Promise(e,t={}){return{...t,[s.Kind]:"Promise",type:"Promise",item:(0,n.CloneType)(e)}}},78946:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(84127),t)},84127:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ReadonlyOptional=ReadonlyOptional;const n=r(40675);const s=r(38425);function ReadonlyOptional(e){return(0,n.Readonly)((0,s.Optional)(e))}},40675:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(94180),t);s(r(90401),t)},94180:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ReadonlyFromMappedResult=ReadonlyFromMappedResult;const n=r(41094);const s=r(90401);function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=(0,s.Readonly)(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function ReadonlyFromMappedResult(e,t){const r=FromMappedResult(e,t);return(0,n.MappedResult)(r)}},90401:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Readonly=Readonly;const n=r(97034);const s=r(38100);const o=r(83889);const i=r(94180);const a=r(96994);function RemoveReadonly(e){return(0,o.Discard)((0,s.CloneType)(e),[n.ReadonlyKind])}function AddReadonly(e){return{...(0,s.CloneType)(e),[n.ReadonlyKind]:"Readonly"}}function ReadonlyWithFlag(e,t){return t===false?RemoveReadonly(e):AddReadonly(e)}function Readonly(e,t){const r=t??true;return(0,a.IsMappedResult)(e)?(0,i.ReadonlyFromMappedResult)(e,r):ReadonlyWithFlag(e,r)}},30420:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(98167),t)},98167:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Record=Record;const n=r(62094);const s=r(54025);const o=r(69100);const i=r(26609);const a=r(94354);const c=r(86918);const u=r(97034);const A=r(38100);const l=r(13415);const d=r(96994);function RecordCreateFromPattern(e,t,r){return{...r,[u.Kind]:"Record",type:"object",patternProperties:{[e]:(0,A.CloneType)(t)}}}function RecordCreateFromKeys(e,t,r){const s={};for(const r of e)s[r]=(0,A.CloneType)(t);return(0,n.Object)(s,{...r,[u.Hint]:"Record"})}function FromTemplateLiteralKey(e,t,r){return(0,i.IsTemplateLiteralFinite)(e)?RecordCreateFromKeys((0,c.IndexPropertyKeys)(e),t,r):RecordCreateFromPattern(e.pattern,t,r)}function FromUnionKey(e,t,r){return RecordCreateFromKeys((0,c.IndexPropertyKeys)((0,o.Union)(e)),t,r)}function FromLiteralKey(e,t,r){return RecordCreateFromKeys([e.toString()],t,r)}function FromRegExpKey(e,t,r){return RecordCreateFromPattern(e.source,t,r)}function FromStringKey(e,t,r){const n=(0,l.IsUndefined)(e.pattern)?a.PatternStringExact:e.pattern;return RecordCreateFromPattern(n,t,r)}function FromAnyKey(e,t,r){return RecordCreateFromPattern(a.PatternStringExact,t,r)}function FromNeverKey(e,t,r){return RecordCreateFromPattern(a.PatternNeverExact,t,r)}function FromIntegerKey(e,t,r){return RecordCreateFromPattern(a.PatternNumberExact,t,r)}function FromNumberKey(e,t,r){return RecordCreateFromPattern(a.PatternNumberExact,t,r)}function Record(e,t,r={}){return(0,d.IsUnion)(e)?FromUnionKey(e.anyOf,t,r):(0,d.IsTemplateLiteral)(e)?FromTemplateLiteralKey(e,t,r):(0,d.IsLiteral)(e)?FromLiteralKey(e.const,t,r):(0,d.IsInteger)(e)?FromIntegerKey(e,t,r):(0,d.IsNumber)(e)?FromNumberKey(e,t,r):(0,d.IsRegExp)(e)?FromRegExpKey(e,t,r):(0,d.IsString)(e)?FromStringKey(e,t,r):(0,d.IsAny)(e)?FromAnyKey(e,t,r):(0,d.IsNever)(e)?FromNeverKey(e,t,r):(0,s.Never)(r)}},33107:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(13475),t)},13475:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Recursive=Recursive;const n=r(38100);const s=r(13415);const o=r(97034);let i=0;function Recursive(e,t={}){if((0,s.IsUndefined)(t.$id))t.$id=`T${i++}`;const r=e({[o.Kind]:"This",$ref:`${t.$id}`});r.$id=t.$id;return(0,n.CloneType)({...t,[o.Hint]:"Recursive",...r})}},80470:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(27735),t)},27735:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Ref=Ref;const n=r(97034);const s=r(13415);function Ref(e,t={}){if((0,s.IsString)(e))return{...t,[n.Kind]:"Ref",$ref:e};if((0,s.IsUndefined)(e.$id))throw new Error("Reference target type must specify an $id");return{...t,[n.Kind]:"Ref",$ref:e.$id}}},26936:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(99383),t)},99383:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.RegExp=RegExp;const n=r(13415);const s=r(97034);function RegExp(e,t={}){const r=(0,n.IsString)(e)?new globalThis.RegExp(e):e;return{...t,[s.Kind]:"RegExp",type:"RegExp",source:r.source,flags:r.flags}}},56315:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Entries=Entries;t.Clear=Clear;t.Delete=Delete;t.Has=Has;t.Set=Set;t.Get=Get;const r=new Map;function Entries(){return new Map(r)}function Clear(){return r.clear()}function Delete(e){return r.delete(e)}function Has(e){return r.has(e)}function Set(e,t){r.set(e,t)}function Get(e){return r.get(e)}},51786:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeRegistry=t.FormatRegistry=void 0;t.FormatRegistry=r(56315);t.TypeRegistry=r(1912)},1912:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Entries=Entries;t.Clear=Clear;t.Delete=Delete;t.Has=Has;t.Set=Set;t.Get=Get;const r=new Map;function Entries(){return new Map(r)}function Clear(){return r.clear()}function Delete(e){return r.delete(e)}function Has(e){return r.has(e)}function Set(e,t){r.set(e,t)}function Get(e){return r.get(e)}},42744:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(24722),t);s(r(78775),t)},24722:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.RequiredFromMappedResult=RequiredFromMappedResult;const n=r(41094);const s=r(78775);function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=(0,s.Required)(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function RequiredFromMappedResult(e,t){const r=FromMappedResult(e,t);return(0,n.MappedResult)(r)}},78775:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Required=Required;const n=r(62746);const s=r(69100);const o=r(62094);const i=r(97034);const a=r(38100);const c=r(83889);const u=r(24722);const A=r(96994);function FromRest(e){return e.map((e=>RequiredResolve(e)))}function FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=(0,c.Discard)(e[r],[i.OptionalKind]);return t}function RequiredResolve(e){return(0,A.IsIntersect)(e)?(0,n.Intersect)(FromRest(e.allOf)):(0,A.IsUnion)(e)?(0,s.Union)(FromRest(e.anyOf)):(0,A.IsObject)(e)?(0,o.Object)(FromProperties(e.properties)):(0,o.Object)({})}function Required(e,t={}){if((0,A.IsMappedResult)(e)){return(0,u.RequiredFromMappedResult)(e,t)}else{const r=(0,c.Discard)(e,[i.TransformKind,"$id","required"]);const n=(0,a.CloneType)(RequiredResolve(e),t);return{...r,...n}}}},83003:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(48881),t)},48881:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Rest=Rest;const n=r(38100);const s=r(96994);function RestResolve(e){return(0,s.IsIntersect)(e)?(0,n.CloneRest)(e.allOf):(0,s.IsUnion)(e)?(0,n.CloneRest)(e.anyOf):(0,s.IsTuple)(e)?(0,n.CloneRest)(e.items??[]):[]}function Rest(e){return(0,n.CloneRest)(RestResolve(e))}},32970:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(11243),t)},11243:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ReturnType=ReturnType;const n=r(38100);function ReturnType(e,t={}){return(0,n.CloneType)(e.returns,t)}},13523:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true})},68954:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(13523),t);s(r(53283),t)},53283:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const n=r(97034)},12760:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(85944),t)},85944:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.SetIncludes=SetIncludes;t.SetIsSubset=SetIsSubset;t.SetDistinct=SetDistinct;t.SetIntersect=SetIntersect;t.SetUnion=SetUnion;t.SetComplement=SetComplement;t.SetIntersectMany=SetIntersectMany;t.SetUnionMany=SetUnionMany;function SetIncludes(e,t){return e.includes(t)}function SetIsSubset(e,t){return e.every((e=>SetIncludes(t,e)))}function SetDistinct(e){return[...new Set(e)]}function SetIntersect(e,t){return e.filter((e=>t.includes(e)))}function SetUnion(e,t){return[...e,...t]}function SetComplement(e,t){return e.filter((e=>!t.includes(e)))}function SetIntersectManyResolve(e,t){return e.reduce(((e,t)=>SetIntersect(e,t)),t)}function SetIntersectMany(e){return e.length===1?e[0]:e.length>1?SetIntersectManyResolve(e.slice(1),e[0]):[]}function SetUnionMany(e){const t=[];for(const r of e)t.push(...r);return t}},60343:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(917),t)},917:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true})},23556:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(69295),t)},69295:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Strict=Strict;function Strict(e){return JSON.parse(JSON.stringify(e))}},81688:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(14695),t)},14695:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.String=String;const n=r(97034);function String(e={}){return{...e,[n.Kind]:"String",type:"string"}}},2129:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(86445),t)},86445:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Symbol=Symbol;const n=r(97034);function Symbol(e){return{...e,[n.Kind]:"Symbol",type:"symbol"}}},97034:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(22311),t)},22311:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Kind=t.Hint=t.OptionalKind=t.ReadonlyKind=t.TransformKind=void 0;t.TransformKind=Symbol.for("TypeBox.Transform");t.ReadonlyKind=Symbol.for("TypeBox.Readonly");t.OptionalKind=Symbol.for("TypeBox.Optional");t.Hint=Symbol.for("TypeBox.Hint");t.Kind=Symbol.for("TypeBox.Kind")},75930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TemplateLiteralFiniteError=void 0;t.IsTemplateLiteralExpressionFinite=IsTemplateLiteralExpressionFinite;t.IsTemplateLiteralFinite=IsTemplateLiteralFinite;const n=r(75430);const s=r(26113);class TemplateLiteralFiniteError extends s.TypeBoxError{}t.TemplateLiteralFiniteError=TemplateLiteralFiniteError;function IsNumberExpression(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function IsBooleanExpression(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function IsStringExpression(e){return e.type==="const"&&e.const===".*"}function IsTemplateLiteralExpressionFinite(e){return IsNumberExpression(e)||IsStringExpression(e)?false:IsBooleanExpression(e)?true:e.type==="and"?e.expr.every((e=>IsTemplateLiteralExpressionFinite(e))):e.type==="or"?e.expr.every((e=>IsTemplateLiteralExpressionFinite(e))):e.type==="const"?true:(()=>{throw new TemplateLiteralFiniteError(`Unknown expression type`)})()}function IsTemplateLiteralFinite(e){const t=(0,n.TemplateLiteralParseExact)(e.pattern);return IsTemplateLiteralExpressionFinite(t)}},85670:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TemplateLiteralGenerateError=void 0;t.TemplateLiteralExpressionGenerate=TemplateLiteralExpressionGenerate;t.TemplateLiteralGenerate=TemplateLiteralGenerate;const n=r(75930);const s=r(75430);const o=r(26113);class TemplateLiteralGenerateError extends o.TypeBoxError{}t.TemplateLiteralGenerateError=TemplateLiteralGenerateError;function*GenerateReduce(e){if(e.length===1)return yield*e[0];for(const t of e[0]){for(const r of GenerateReduce(e.slice(1))){yield`${t}${r}`}}}function*GenerateAnd(e){return yield*GenerateReduce(e.expr.map((e=>[...TemplateLiteralExpressionGenerate(e)])))}function*GenerateOr(e){for(const t of e.expr)yield*TemplateLiteralExpressionGenerate(t)}function*GenerateConst(e){return yield e.const}function*TemplateLiteralExpressionGenerate(e){return e.type==="and"?yield*GenerateAnd(e):e.type==="or"?yield*GenerateOr(e):e.type==="const"?yield*GenerateConst(e):(()=>{throw new TemplateLiteralGenerateError("Unknown expression")})()}function TemplateLiteralGenerate(e){const t=(0,s.TemplateLiteralParseExact)(e.pattern);return(0,n.IsTemplateLiteralExpressionFinite)(t)?[...TemplateLiteralExpressionGenerate(t)]:[]}},26609:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(75930),t);s(r(85670),t);s(r(98094),t);s(r(75430),t);s(r(85855),t);s(r(27522),t);s(r(4181),t)},75430:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TemplateLiteralParserError=void 0;t.TemplateLiteralParse=TemplateLiteralParse;t.TemplateLiteralParseExact=TemplateLiteralParseExact;const n=r(26113);class TemplateLiteralParserError extends n.TypeBoxError{}t.TemplateLiteralParserError=TemplateLiteralParserError;function Unescape(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function IsNonEscaped(e,t,r){return e[t]===r&&e.charCodeAt(t-1)!==92}function IsOpenParen(e,t){return IsNonEscaped(e,t,"(")}function IsCloseParen(e,t){return IsNonEscaped(e,t,")")}function IsSeparator(e,t){return IsNonEscaped(e,t,"|")}function IsGroup(e){if(!(IsOpenParen(e,0)&&IsCloseParen(e,e.length-1)))return false;let t=0;for(let r=0;r0)n.push(TemplateLiteralParse(t));r=s+1}}const s=e.slice(r);if(s.length>0)n.push(TemplateLiteralParse(s));if(n.length===0)return{type:"const",const:""};if(n.length===1)return n[0];return{type:"or",expr:n}}function And(e){function Group(e,t){if(!IsOpenParen(e,t))throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);let r=0;for(let n=t;n0)t.push(TemplateLiteralParse(o));r=s-1}}return t.length===0?{type:"const",const:""}:t.length===1?t[0]:{type:"and",expr:t}}function TemplateLiteralParse(e){return IsGroup(e)?TemplateLiteralParse(InGroup(e)):IsPrecedenceOr(e)?Or(e):IsPrecedenceAnd(e)?And(e):{type:"const",const:Unescape(e)}}function TemplateLiteralParseExact(e){return TemplateLiteralParse(e.slice(1,e.length-1))}},85855:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TemplateLiteralPatternError=void 0;t.TemplateLiteralPattern=TemplateLiteralPattern;const n=r(94354);const s=r(97034);const o=r(26113);const i=r(96994);class TemplateLiteralPatternError extends o.TypeBoxError{}t.TemplateLiteralPatternError=TemplateLiteralPatternError;function Escape(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Visit(e,t){return(0,i.IsTemplateLiteral)(e)?e.pattern.slice(1,e.pattern.length-1):(0,i.IsUnion)(e)?`(${e.anyOf.map((e=>Visit(e,t))).join("|")})`:(0,i.IsNumber)(e)?`${t}${n.PatternNumber}`:(0,i.IsInteger)(e)?`${t}${n.PatternNumber}`:(0,i.IsBigInt)(e)?`${t}${n.PatternNumber}`:(0,i.IsString)(e)?`${t}${n.PatternString}`:(0,i.IsLiteral)(e)?`${t}${Escape(e.const.toString())}`:(0,i.IsBoolean)(e)?`${t}${n.PatternBoolean}`:(()=>{throw new TemplateLiteralPatternError(`Unexpected Kind '${e[s.Kind]}'`)})()}function TemplateLiteralPattern(e){return`^${e.map((e=>Visit(e,""))).join("")}$`}},98094:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TemplateLiteralSyntax=TemplateLiteralSyntax;const n=r(98076);const s=r(64515);const o=r(13278);const i=r(85544);const a=r(81688);const c=r(69100);const u=r(54025);function*FromUnion(e){const t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield(0,s.Boolean)():t==="number"?yield(0,i.Number)():t==="bigint"?yield(0,o.BigInt)():t==="string"?yield(0,a.String)():yield(()=>{const e=t.split("|").map((e=>(0,n.Literal)(e.trim())));return e.length===0?(0,u.Never)():e.length===1?e[0]:(0,c.UnionEvaluated)(e)})()}function*FromTerminal(e){if(e[1]!=="{"){const t=(0,n.Literal)("$");const r=FromSyntax(e.slice(1));return yield*[t,...r]}for(let t=2;t{Object.defineProperty(t,"__esModule",{value:true});t.TemplateLiteral=TemplateLiteral;const n=r(98094);const s=r(85855);const o=r(13415);const i=r(97034);function TemplateLiteral(e,t={}){const r=(0,o.IsString)(e)?(0,s.TemplateLiteralPattern)((0,n.TemplateLiteralSyntax)(e)):(0,s.TemplateLiteralPattern)(e);return{...t,[i.Kind]:"TemplateLiteral",type:"string",pattern:r}}},27522:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TemplateLiteralToUnion=TemplateLiteralToUnion;const n=r(69100);const s=r(98076);const o=r(85670);function TemplateLiteralToUnion(e){const t=(0,o.TemplateLiteralGenerate)(e);const r=t.map((e=>(0,s.Literal)(e)));return(0,n.UnionEvaluated)(r)}},67575:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(79399),t)},79399:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TransformEncodeBuilder=t.TransformDecodeBuilder=void 0;t.Transform=Transform;const n=r(97034);const s=r(38100);const o=r(96994);class TransformDecodeBuilder{constructor(e){this.schema=e}Decode(e){return new TransformEncodeBuilder(this.schema,e)}}t.TransformDecodeBuilder=TransformDecodeBuilder;class TransformEncodeBuilder{constructor(e,t){this.schema=e;this.decode=t}EncodeTransform(e,t){const Encode=r=>t[n.TransformKind].Encode(e(r));const Decode=e=>this.decode(t[n.TransformKind].Decode(e));const r={Encode:Encode,Decode:Decode};return{...t,[n.TransformKind]:r}}EncodeSchema(e,t){const r={Decode:this.decode,Encode:e};return{...t,[n.TransformKind]:r}}Encode(e){const t=(0,s.CloneType)(this.schema);return(0,o.IsTransform)(t)?this.EncodeTransform(e,t):this.EncodeSchema(e,t)}}t.TransformEncodeBuilder=TransformEncodeBuilder;function Transform(e){return new TransformDecodeBuilder(e)}},7521:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(65667),t)},65667:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Tuple=Tuple;const n=r(38100);const s=r(97034);function Tuple(e,t={}){const[r,o,i]=[false,e.length,e.length];return e.length>0?{...t,[s.Kind]:"Tuple",type:"array",items:(0,n.CloneRest)(e),additionalItems:r,minItems:o,maxItems:i}:{...t,[s.Kind]:"Tuple",type:"array",minItems:o,maxItems:i}}},68237:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Type=t.JavaScriptTypeBuilder=t.JsonTypeBuilder=void 0;var n=r(86959);Object.defineProperty(t,"JsonTypeBuilder",{enumerable:true,get:function(){return n.JsonTypeBuilder}});const s=r(17505);const o=r(18158);Object.defineProperty(t,"JavaScriptTypeBuilder",{enumerable:true,get:function(){return o.JavaScriptTypeBuilder}});const i=s;t.Type=i},18158:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.JavaScriptTypeBuilder=void 0;const n=r(86959);const s=r(68092);const o=r(85164);const i=r(13278);const a=r(16939);const c=r(58562);const u=r(49305);const A=r(29857);const l=r(26277);const d=r(35907);const p=r(30449);const g=r(70062);const h=r(26936);const m=r(32970);const E=r(2129);const y=r(45760);const I=r(96231);const C=r(81947);class JavaScriptTypeBuilder extends n.JsonTypeBuilder{AsyncIterator(e,t={}){return(0,s.AsyncIterator)(e,t)}Awaited(e,t={}){return(0,o.Awaited)(e,t)}BigInt(e={}){return(0,i.BigInt)(e)}ConstructorParameters(e,t={}){return(0,c.ConstructorParameters)(e,t)}Constructor(e,t,r){return(0,a.Constructor)(e,t,r)}Date(e={}){return(0,u.Date)(e)}Function(e,t,r){return(0,A.Function)(e,t,r)}InstanceType(e,t={}){return(0,l.InstanceType)(e,t)}Iterator(e,t={}){return(0,d.Iterator)(e,t)}Parameters(e,t={}){return(0,p.Parameters)(e,t)}Promise(e,t={}){return(0,g.Promise)(e,t)}RegExp(e,t={}){return(0,h.RegExp)(e,t)}ReturnType(e,t={}){return(0,m.ReturnType)(e,t)}Symbol(e){return(0,E.Symbol)(e)}Undefined(e={}){return(0,I.Undefined)(e)}Uint8Array(e={}){return(0,y.Uint8Array)(e)}Void(e={}){return(0,C.Void)(e)}}t.JavaScriptTypeBuilder=JavaScriptTypeBuilder},86959:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.JsonTypeBuilder=void 0;const n=r(36813);const s=r(17186);const o=r(64515);const i=r(80788);const a=r(19236);const c=r(911);const u=r(98056);const A=r(41153);const l=r(94850);const d=r(69682);const p=r(86918);const g=r(4949);const h=r(62746);const m=r(30568);const E=r(73373);const y=r(98076);const I=r(41094);const C=r(54025);const b=r(1078);const B=r(50468);const Q=r(85544);const T=r(62094);const v=r(88932);const w=r(38425);const _=r(75726);const O=r(40640);const k=r(40675);const R=r(78946);const S=r(30420);const F=r(33107);const D=r(80470);const N=r(42744);const P=r(83003);const L=r(23556);const U=r(81688);const M=r(26609);const x=r(67575);const G=r(7521);const j=r(69100);const V=r(51897);const H=r(23339);class JsonTypeBuilder{Strict(e){return(0,L.Strict)(e)}ReadonlyOptional(e){return(0,R.ReadonlyOptional)(e)}Readonly(e,t){return(0,k.Readonly)(e,t??true)}Optional(e,t){return(0,w.Optional)(e,t??true)}Any(e={}){return(0,n.Any)(e)}Array(e,t={}){return(0,s.Array)(e,t)}Boolean(e={}){return(0,o.Boolean)(e)}Capitalize(e,t={}){return(0,m.Capitalize)(e,t)}Composite(e,t){return(0,i.Composite)(e,t)}Const(e,t={}){return(0,a.Const)(e,t)}Deref(e,t){return(0,c.Deref)(e,t)}Enum(e,t={}){return(0,u.Enum)(e,t)}Exclude(e,t,r={}){return(0,A.Exclude)(e,t,r)}Extends(e,t,r,n,s={}){return(0,l.Extends)(e,t,r,n,s)}Extract(e,t,r={}){return(0,d.Extract)(e,t,r)}Index(e,t,r={}){return(0,p.Index)(e,t,r)}Integer(e={}){return(0,g.Integer)(e)}Intersect(e,t={}){return(0,h.Intersect)(e,t)}KeyOf(e,t={}){return(0,E.KeyOf)(e,t)}Literal(e,t={}){return(0,y.Literal)(e,t)}Lowercase(e,t={}){return(0,m.Lowercase)(e,t)}Mapped(e,t,r={}){return(0,I.Mapped)(e,t,r)}Never(e={}){return(0,C.Never)(e)}Not(e,t){return(0,b.Not)(e,t)}Null(e={}){return(0,B.Null)(e)}Number(e={}){return(0,Q.Number)(e)}Object(e,t={}){return(0,T.Object)(e,t)}Omit(e,t,r={}){return(0,v.Omit)(e,t,r)}Partial(e,t={}){return(0,_.Partial)(e,t)}Pick(e,t,r={}){return(0,O.Pick)(e,t,r)}Record(e,t,r={}){return(0,S.Record)(e,t,r)}Recursive(e,t={}){return(0,F.Recursive)(e,t)}Ref(e,t={}){return(0,D.Ref)(e,t)}Required(e,t={}){return(0,N.Required)(e,t)}Rest(e){return(0,P.Rest)(e)}String(e={}){return(0,U.String)(e)}TemplateLiteral(e,t={}){return(0,M.TemplateLiteral)(e,t)}Transform(e){return(0,x.Transform)(e)}Tuple(e,t={}){return(0,G.Tuple)(e,t)}Uncapitalize(e,t={}){return(0,m.Uncapitalize)(e,t)}Union(e,t={}){return(0,j.Union)(e,t)}Unknown(e={}){return(0,V.Unknown)(e)}Unsafe(e={}){return(0,H.Unsafe)(e)}Uppercase(e,t={}){return(0,m.Uppercase)(e,t)}}t.JsonTypeBuilder=JsonTypeBuilder},17505:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Strict=t.ReturnType=t.Rest=t.Required=t.RegExp=t.Ref=t.Recursive=t.Record=t.ReadonlyOptional=t.Readonly=t.Promise=t.Pick=t.Partial=t.Parameters=t.Optional=t.Omit=t.Object=t.Number=t.Null=t.Not=t.Never=t.Mapped=t.Literal=t.KeyOf=t.Iterator=t.Uppercase=t.Lowercase=t.Uncapitalize=t.Capitalize=t.Intersect=t.Integer=t.InstanceType=t.Index=t.Function=t.Extract=t.Extends=t.Exclude=t.Enum=t.Deref=t.Date=t.ConstructorParameters=t.Constructor=t.Const=t.Composite=t.Boolean=t.BigInt=t.Awaited=t.AsyncIterator=t.Array=t.Any=void 0;t.Void=t.Unsafe=t.Unknown=t.Union=t.Undefined=t.Uint8Array=t.Tuple=t.Transform=t.TemplateLiteral=t.Symbol=t.String=void 0;var n=r(36813);Object.defineProperty(t,"Any",{enumerable:true,get:function(){return n.Any}});var s=r(17186);Object.defineProperty(t,"Array",{enumerable:true,get:function(){return s.Array}});var o=r(68092);Object.defineProperty(t,"AsyncIterator",{enumerable:true,get:function(){return o.AsyncIterator}});var i=r(85164);Object.defineProperty(t,"Awaited",{enumerable:true,get:function(){return i.Awaited}});var a=r(13278);Object.defineProperty(t,"BigInt",{enumerable:true,get:function(){return a.BigInt}});var c=r(64515);Object.defineProperty(t,"Boolean",{enumerable:true,get:function(){return c.Boolean}});var u=r(80788);Object.defineProperty(t,"Composite",{enumerable:true,get:function(){return u.Composite}});var A=r(19236);Object.defineProperty(t,"Const",{enumerable:true,get:function(){return A.Const}});var l=r(16939);Object.defineProperty(t,"Constructor",{enumerable:true,get:function(){return l.Constructor}});var d=r(58562);Object.defineProperty(t,"ConstructorParameters",{enumerable:true,get:function(){return d.ConstructorParameters}});var p=r(49305);Object.defineProperty(t,"Date",{enumerable:true,get:function(){return p.Date}});var g=r(911);Object.defineProperty(t,"Deref",{enumerable:true,get:function(){return g.Deref}});var h=r(98056);Object.defineProperty(t,"Enum",{enumerable:true,get:function(){return h.Enum}});var m=r(41153);Object.defineProperty(t,"Exclude",{enumerable:true,get:function(){return m.Exclude}});var E=r(94850);Object.defineProperty(t,"Extends",{enumerable:true,get:function(){return E.Extends}});var y=r(69682);Object.defineProperty(t,"Extract",{enumerable:true,get:function(){return y.Extract}});var I=r(29857);Object.defineProperty(t,"Function",{enumerable:true,get:function(){return I.Function}});var C=r(86918);Object.defineProperty(t,"Index",{enumerable:true,get:function(){return C.Index}});var b=r(26277);Object.defineProperty(t,"InstanceType",{enumerable:true,get:function(){return b.InstanceType}});var B=r(4949);Object.defineProperty(t,"Integer",{enumerable:true,get:function(){return B.Integer}});var Q=r(62746);Object.defineProperty(t,"Intersect",{enumerable:true,get:function(){return Q.Intersect}});var T=r(30568);Object.defineProperty(t,"Capitalize",{enumerable:true,get:function(){return T.Capitalize}});Object.defineProperty(t,"Uncapitalize",{enumerable:true,get:function(){return T.Uncapitalize}});Object.defineProperty(t,"Lowercase",{enumerable:true,get:function(){return T.Lowercase}});Object.defineProperty(t,"Uppercase",{enumerable:true,get:function(){return T.Uppercase}});var v=r(35907);Object.defineProperty(t,"Iterator",{enumerable:true,get:function(){return v.Iterator}});var w=r(73373);Object.defineProperty(t,"KeyOf",{enumerable:true,get:function(){return w.KeyOf}});var _=r(98076);Object.defineProperty(t,"Literal",{enumerable:true,get:function(){return _.Literal}});var O=r(41094);Object.defineProperty(t,"Mapped",{enumerable:true,get:function(){return O.Mapped}});var k=r(54025);Object.defineProperty(t,"Never",{enumerable:true,get:function(){return k.Never}});var R=r(1078);Object.defineProperty(t,"Not",{enumerable:true,get:function(){return R.Not}});var S=r(50468);Object.defineProperty(t,"Null",{enumerable:true,get:function(){return S.Null}});var F=r(85544);Object.defineProperty(t,"Number",{enumerable:true,get:function(){return F.Number}});var D=r(62094);Object.defineProperty(t,"Object",{enumerable:true,get:function(){return D.Object}});var N=r(88932);Object.defineProperty(t,"Omit",{enumerable:true,get:function(){return N.Omit}});var P=r(38425);Object.defineProperty(t,"Optional",{enumerable:true,get:function(){return P.Optional}});var L=r(30449);Object.defineProperty(t,"Parameters",{enumerable:true,get:function(){return L.Parameters}});var U=r(75726);Object.defineProperty(t,"Partial",{enumerable:true,get:function(){return U.Partial}});var M=r(40640);Object.defineProperty(t,"Pick",{enumerable:true,get:function(){return M.Pick}});var x=r(70062);Object.defineProperty(t,"Promise",{enumerable:true,get:function(){return x.Promise}});var G=r(40675);Object.defineProperty(t,"Readonly",{enumerable:true,get:function(){return G.Readonly}});var j=r(78946);Object.defineProperty(t,"ReadonlyOptional",{enumerable:true,get:function(){return j.ReadonlyOptional}});var V=r(30420);Object.defineProperty(t,"Record",{enumerable:true,get:function(){return V.Record}});var H=r(33107);Object.defineProperty(t,"Recursive",{enumerable:true,get:function(){return H.Recursive}});var q=r(80470);Object.defineProperty(t,"Ref",{enumerable:true,get:function(){return q.Ref}});var Y=r(26936);Object.defineProperty(t,"RegExp",{enumerable:true,get:function(){return Y.RegExp}});var K=r(42744);Object.defineProperty(t,"Required",{enumerable:true,get:function(){return K.Required}});var J=r(83003);Object.defineProperty(t,"Rest",{enumerable:true,get:function(){return J.Rest}});var $=r(32970);Object.defineProperty(t,"ReturnType",{enumerable:true,get:function(){return $.ReturnType}});var W=r(23556);Object.defineProperty(t,"Strict",{enumerable:true,get:function(){return W.Strict}});var z=r(81688);Object.defineProperty(t,"String",{enumerable:true,get:function(){return z.String}});var Z=r(2129);Object.defineProperty(t,"Symbol",{enumerable:true,get:function(){return Z.Symbol}});var X=r(26609);Object.defineProperty(t,"TemplateLiteral",{enumerable:true,get:function(){return X.TemplateLiteral}});var ee=r(67575);Object.defineProperty(t,"Transform",{enumerable:true,get:function(){return ee.Transform}});var te=r(7521);Object.defineProperty(t,"Tuple",{enumerable:true,get:function(){return te.Tuple}});var re=r(45760);Object.defineProperty(t,"Uint8Array",{enumerable:true,get:function(){return re.Uint8Array}});var ne=r(96231);Object.defineProperty(t,"Undefined",{enumerable:true,get:function(){return ne.Undefined}});var se=r(69100);Object.defineProperty(t,"Union",{enumerable:true,get:function(){return se.Union}});var oe=r(51897);Object.defineProperty(t,"Unknown",{enumerable:true,get:function(){return oe.Unknown}});var ie=r(23339);Object.defineProperty(t,"Unsafe",{enumerable:true,get:function(){return ie.Unsafe}});var ae=r(81947);Object.defineProperty(t,"Void",{enumerable:true,get:function(){return ae.Void}})},45760:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(2039),t)},2039:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Uint8Array=Uint8Array;const n=r(97034);function Uint8Array(e={}){return{...e,[n.Kind]:"Uint8Array",type:"Uint8Array"}}},96231:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(20479),t)},20479:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Undefined=Undefined;const n=r(97034);function Undefined(e={}){return{...e,[n.Kind]:"Undefined",type:"undefined"}}},69100:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(24083),t);s(r(75396),t);s(r(28519),t)},98252:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UnionCreate=UnionCreate;const n=r(38100);const s=r(97034);function UnionCreate(e,t){return{...t,[s.Kind]:"Union",anyOf:(0,n.CloneRest)(e)}}},24083:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UnionEvaluated=UnionEvaluated;const n=r(97034);const s=r(38100);const o=r(83889);const i=r(54025);const a=r(38425);const c=r(98252);const u=r(96994);function IsUnionOptional(e){return e.some((e=>(0,u.IsOptional)(e)))}function RemoveOptionalFromRest(e){return e.map((e=>(0,u.IsOptional)(e)?RemoveOptionalFromType(e):e))}function RemoveOptionalFromType(e){return(0,o.Discard)(e,[n.OptionalKind])}function ResolveUnion(e,t){return IsUnionOptional(e)?(0,a.Optional)((0,c.UnionCreate)(RemoveOptionalFromRest(e),t)):(0,c.UnionCreate)(RemoveOptionalFromRest(e),t)}function UnionEvaluated(e,t={}){return e.length===0?(0,i.Never)(t):e.length===1?(0,s.CloneType)(e[0],t):ResolveUnion(e,t)}},75396:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const n=r(97034)},28519:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Union=Union;const n=r(54025);const s=r(38100);const o=r(98252);function Union(e,t={}){return e.length===0?(0,n.Never)(t):e.length===1?(0,s.CloneType)(e[0],t):(0,o.UnionCreate)(e,t)}},51897:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(66303),t)},66303:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Unknown=Unknown;const n=r(97034);function Unknown(e={}){return{...e,[n.Kind]:"Unknown"}}},23339:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(1361),t)},1361:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Unsafe=Unsafe;const n=r(97034);function Unsafe(e={}){return{...e,[n.Kind]:e[n.Kind]??"Unsafe"}}},81947:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(14093),t)},14093:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Void=Void;const n=r(97034);function Void(e={}){return{...e,[n.Kind]:"Void",type:"void"}}},85874:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValueCastError=void 0;t.Cast=Cast;const n=r(17479);const s=r(26113);const o=r(97034);const i=r(18050);const a=r(33742);const c=r(21683);const u=r(40886);class ValueCastError extends s.TypeBoxError{constructor(e,t){super(t);this.schema=e}}t.ValueCastError=ValueCastError;function ScoreUnion(e,t,r){if(e[o.Kind]==="Object"&&typeof r==="object"&&!(0,n.IsNull)(r)){const n=e;const s=Object.getOwnPropertyNames(r);const i=Object.entries(n.properties);const[c,u]=[1/i.length,i.length];return i.reduce(((e,[n,i])=>{const A=i[o.Kind]==="Literal"&&i.const===r[n]?u:0;const l=(0,a.Check)(i,t,r[n])?c:0;const d=s.includes(n)?c:0;return e+(A+l+d)}),0)}else{return(0,a.Check)(e,t,r)?1:0}}function SelectUnion(e,t,r){const n=e.anyOf.map((e=>(0,u.Deref)(e,t)));let[s,o]=[n[0],0];for(const e of n){const n=ScoreUnion(e,t,r);if(n>o){s=e;o=n}}return s}function CastUnion(e,t,r){if("default"in e){return typeof r==="function"?e.default:(0,c.Clone)(e.default)}else{const n=SelectUnion(e,t,r);return Cast(n,t,r)}}function DefaultClone(e,t,r){return(0,a.Check)(e,t,r)?(0,c.Clone)(r):(0,i.Create)(e,t)}function Default(e,t,r){return(0,a.Check)(e,t,r)?r:(0,i.Create)(e,t)}function FromArray(e,t,r){if((0,a.Check)(e,t,r))return(0,c.Clone)(r);const s=(0,n.IsArray)(r)?(0,c.Clone)(r):(0,i.Create)(e,t);const o=(0,n.IsNumber)(e.minItems)&&s.lengthnull))]:s;const u=(0,n.IsNumber)(e.maxItems)&&o.length>e.maxItems?o.slice(0,e.maxItems):o;const A=u.map((r=>Visit(e.items,t,r)));if(e.uniqueItems!==true)return A;const l=[...new Set(A)];if(!(0,a.Check)(e,t,l))throw new ValueCastError(e,"Array cast produced invalid data due to uniqueItems constraint");return l}function FromConstructor(e,t,r){if((0,a.Check)(e,t,r))return(0,i.Create)(e,t);const n=new Set(e.returns.required||[]);const result=function(){};for(const[s,o]of Object.entries(e.returns.properties)){if(!n.has(s)&&r.prototype[s]===undefined)continue;result.prototype[s]=Visit(o,t,r.prototype[s])}return result}function FromIntersect(e,t,r){const s=(0,i.Create)(e,t);const o=(0,n.IsStandardObject)(s)&&(0,n.IsStandardObject)(r)?{...s,...r}:r;return(0,a.Check)(e,t,o)?o:(0,i.Create)(e,t)}function FromNever(e,t,r){throw new ValueCastError(e,"Never types cannot be cast")}function FromObject(e,t,r){if((0,a.Check)(e,t,r))return r;if(r===null||typeof r!=="object")return(0,i.Create)(e,t);const n=new Set(e.required||[]);const s={};for(const[o,i]of Object.entries(e.properties)){if(!n.has(o)&&r[o]===undefined)continue;s[o]=Visit(i,t,r[o])}if(typeof e.additionalProperties==="object"){const n=Object.getOwnPropertyNames(e.properties);for(const o of Object.getOwnPropertyNames(r)){if(n.includes(o))continue;s[o]=Visit(e.additionalProperties,t,r[o])}}return s}function FromRecord(e,t,r){if((0,a.Check)(e,t,r))return(0,c.Clone)(r);if(r===null||typeof r!=="object"||Array.isArray(r)||r instanceof Date)return(0,i.Create)(e,t);const n=Object.getOwnPropertyNames(e.patternProperties)[0];const s=e.patternProperties[n];const o={};for(const[e,n]of Object.entries(r)){o[e]=Visit(s,t,n)}return o}function FromRef(e,t,r){return Visit((0,u.Deref)(e,t),t,r)}function FromThis(e,t,r){return Visit((0,u.Deref)(e,t),t,r)}function FromTuple(e,t,r){if((0,a.Check)(e,t,r))return(0,c.Clone)(r);if(!(0,n.IsArray)(r))return(0,i.Create)(e,t);if(e.items===undefined)return[];return e.items.map(((e,n)=>Visit(e,t,r[n])))}function FromUnion(e,t,r){return(0,a.Check)(e,t,r)?(0,c.Clone)(r):CastUnion(e,t,r)}function Visit(e,t,r){const s=(0,n.IsString)(e.$id)?[...t,e]:t;const i=e;switch(e[o.Kind]){case"Array":return FromArray(i,s,r);case"Constructor":return FromConstructor(i,s,r);case"Intersect":return FromIntersect(i,s,r);case"Never":return FromNever(i,s,r);case"Object":return FromObject(i,s,r);case"Record":return FromRecord(i,s,r);case"Ref":return FromRef(i,s,r);case"This":return FromThis(i,s,r);case"Tuple":return FromTuple(i,s,r);case"Union":return FromUnion(i,s,r);case"Date":case"Symbol":case"Uint8Array":return DefaultClone(e,t,r);default:return Default(i,s,r)}}function Cast(...e){return e.length===3?Visit(e[0],e[1],e[2]):Visit(e[0],[],e[1])}},46097:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(85874),t)},85410:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValueCheckUnknownTypeError=void 0;t.Check=Check;const n=r(82129);const s=r(40886);const o=r(7210);const i=r(97034);const a=r(73373);const c=r(94850);const u=r(51786);const A=r(26113);const l=r(54025);const d=r(17479);const p=r(70384);class ValueCheckUnknownTypeError extends A.TypeBoxError{constructor(e){super(`Unknown type`);this.schema=e}}t.ValueCheckUnknownTypeError=ValueCheckUnknownTypeError;function IsAnyOrUnknown(e){return e[i.Kind]==="Any"||e[i.Kind]==="Unknown"}function IsDefined(e){return e!==undefined}function FromAny(e,t,r){return true}function FromArray(e,t,r){if(!(0,d.IsArray)(r))return false;if(IsDefined(e.minItems)&&!(r.length>=e.minItems)){return false}if(IsDefined(e.maxItems)&&!(r.length<=e.maxItems)){return false}if(!r.every((r=>Visit(e.items,t,r)))){return false}if(e.uniqueItems===true&&!function(){const e=new Set;for(const t of r){const r=(0,o.Hash)(t);if(e.has(r)){return false}else{e.add(r)}}return true}()){return false}if(!(IsDefined(e.contains)||(0,d.IsNumber)(e.minContains)||(0,d.IsNumber)(e.maxContains))){return true}const n=IsDefined(e.contains)?e.contains:(0,l.Never)();const s=r.reduce(((e,r)=>Visit(n,t,r)?e+1:e),0);if(s===0){return false}if((0,d.IsNumber)(e.minContains)&&se.maxContains){return false}return true}function FromAsyncIterator(e,t,r){return(0,d.IsAsyncIterator)(r)}function FromBigInt(e,t,r){if(!(0,d.IsBigInt)(r))return false;if(IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(IsDefined(e.multipleOf)&&!(r%e.multipleOf===BigInt(0))){return false}return true}function FromBoolean(e,t,r){return(0,d.IsBoolean)(r)}function FromConstructor(e,t,r){return Visit(e.returns,t,r.prototype)}function FromDate(e,t,r){if(!(0,d.IsDate)(r))return false;if(IsDefined(e.exclusiveMaximumTimestamp)&&!(r.getTime()e.exclusiveMinimumTimestamp)){return false}if(IsDefined(e.maximumTimestamp)&&!(r.getTime()<=e.maximumTimestamp)){return false}if(IsDefined(e.minimumTimestamp)&&!(r.getTime()>=e.minimumTimestamp)){return false}if(IsDefined(e.multipleOfTimestamp)&&!(r.getTime()%e.multipleOfTimestamp===0)){return false}return true}function FromFunction(e,t,r){return(0,d.IsFunction)(r)}function FromInteger(e,t,r){if(!(0,d.IsInteger)(r)){return false}if(IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(IsDefined(e.multipleOf)&&!(r%e.multipleOf===0)){return false}return true}function FromIntersect(e,t,r){const n=e.allOf.every((e=>Visit(e,t,r)));if(e.unevaluatedProperties===false){const t=new RegExp((0,a.KeyOfPattern)(e));const s=Object.getOwnPropertyNames(r).every((e=>t.test(e)));return n&&s}else if((0,p.IsSchema)(e.unevaluatedProperties)){const s=new RegExp((0,a.KeyOfPattern)(e));const o=Object.getOwnPropertyNames(r).every((n=>s.test(n)||Visit(e.unevaluatedProperties,t,r[n])));return n&&o}else{return n}}function FromIterator(e,t,r){return(0,d.IsIterator)(r)}function FromLiteral(e,t,r){return r===e.const}function FromNever(e,t,r){return false}function FromNot(e,t,r){return!Visit(e.not,t,r)}function FromNull(e,t,r){return(0,d.IsNull)(r)}function FromNumber(e,t,r){if(!n.TypeSystemPolicy.IsNumberLike(r))return false;if(IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(IsDefined(e.multipleOf)&&!(r%e.multipleOf===0)){return false}return true}function FromObject(e,t,r){if(!n.TypeSystemPolicy.IsObjectLike(r))return false;if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(r).length>=e.minProperties)){return false}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(r).length<=e.maxProperties)){return false}const s=Object.getOwnPropertyNames(e.properties);for(const o of s){const s=e.properties[o];if(e.required&&e.required.includes(o)){if(!Visit(s,t,r[o])){return false}if(((0,c.ExtendsUndefinedCheck)(s)||IsAnyOrUnknown(s))&&!(o in r)){return false}}else{if(n.TypeSystemPolicy.IsExactOptionalProperty(r,o)&&!Visit(s,t,r[o])){return false}}}if(e.additionalProperties===false){const t=Object.getOwnPropertyNames(r);if(e.required&&e.required.length===s.length&&t.length===s.length){return true}else{return t.every((e=>s.includes(e)))}}else if(typeof e.additionalProperties==="object"){const n=Object.getOwnPropertyNames(r);return n.every((n=>s.includes(n)||Visit(e.additionalProperties,t,r[n])))}else{return true}}function FromPromise(e,t,r){return(0,d.IsPromise)(r)}function FromRecord(e,t,r){if(!n.TypeSystemPolicy.IsRecordLike(r)){return false}if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(r).length>=e.minProperties)){return false}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(r).length<=e.maxProperties)){return false}const[s,o]=Object.entries(e.patternProperties)[0];const i=new RegExp(s);const a=Object.entries(r).every((([e,r])=>i.test(e)?Visit(o,t,r):true));const c=typeof e.additionalProperties==="object"?Object.entries(r).every((([r,n])=>!i.test(r)?Visit(e.additionalProperties,t,n):true)):true;const u=e.additionalProperties===false?Object.getOwnPropertyNames(r).every((e=>i.test(e))):true;return a&&c&&u}function FromRef(e,t,r){return Visit((0,s.Deref)(e,t),t,r)}function FromRegExp(e,t,r){const n=new RegExp(e.source,e.flags);if(IsDefined(e.minLength)){if(!(r.length>=e.minLength))return false}if(IsDefined(e.maxLength)){if(!(r.length<=e.maxLength))return false}return n.test(r)}function FromString(e,t,r){if(!(0,d.IsString)(r)){return false}if(IsDefined(e.minLength)){if(!(r.length>=e.minLength))return false}if(IsDefined(e.maxLength)){if(!(r.length<=e.maxLength))return false}if(IsDefined(e.pattern)){const t=new RegExp(e.pattern);if(!t.test(r))return false}if(IsDefined(e.format)){if(!u.FormatRegistry.Has(e.format))return false;const t=u.FormatRegistry.Get(e.format);return t(r)}return true}function FromSymbol(e,t,r){return(0,d.IsSymbol)(r)}function FromTemplateLiteral(e,t,r){return(0,d.IsString)(r)&&new RegExp(e.pattern).test(r)}function FromThis(e,t,r){return Visit((0,s.Deref)(e,t),t,r)}function FromTuple(e,t,r){if(!(0,d.IsArray)(r)){return false}if(e.items===undefined&&!(r.length===0)){return false}if(!(r.length===e.maxItems)){return false}if(!e.items){return true}for(let n=0;nVisit(e,t,r)))}function FromUint8Array(e,t,r){if(!(0,d.IsUint8Array)(r)){return false}if(IsDefined(e.maxByteLength)&&!(r.length<=e.maxByteLength)){return false}if(IsDefined(e.minByteLength)&&!(r.length>=e.minByteLength)){return false}return true}function FromUnknown(e,t,r){return true}function FromVoid(e,t,r){return n.TypeSystemPolicy.IsVoidLike(r)}function FromKind(e,t,r){if(!u.TypeRegistry.Has(e[i.Kind]))return false;const n=u.TypeRegistry.Get(e[i.Kind]);return n(e,r)}function Visit(e,t,r){const n=IsDefined(e.$id)?[...t,e]:t;const s=e;switch(s[i.Kind]){case"Any":return FromAny(s,n,r);case"Array":return FromArray(s,n,r);case"AsyncIterator":return FromAsyncIterator(s,n,r);case"BigInt":return FromBigInt(s,n,r);case"Boolean":return FromBoolean(s,n,r);case"Constructor":return FromConstructor(s,n,r);case"Date":return FromDate(s,n,r);case"Function":return FromFunction(s,n,r);case"Integer":return FromInteger(s,n,r);case"Intersect":return FromIntersect(s,n,r);case"Iterator":return FromIterator(s,n,r);case"Literal":return FromLiteral(s,n,r);case"Never":return FromNever(s,n,r);case"Not":return FromNot(s,n,r);case"Null":return FromNull(s,n,r);case"Number":return FromNumber(s,n,r);case"Object":return FromObject(s,n,r);case"Promise":return FromPromise(s,n,r);case"Record":return FromRecord(s,n,r);case"Ref":return FromRef(s,n,r);case"RegExp":return FromRegExp(s,n,r);case"String":return FromString(s,n,r);case"Symbol":return FromSymbol(s,n,r);case"TemplateLiteral":return FromTemplateLiteral(s,n,r);case"This":return FromThis(s,n,r);case"Tuple":return FromTuple(s,n,r);case"Undefined":return FromUndefined(s,n,r);case"Union":return FromUnion(s,n,r);case"Uint8Array":return FromUint8Array(s,n,r);case"Unknown":return FromUnknown(s,n,r);case"Void":return FromVoid(s,n,r);default:if(!u.TypeRegistry.Has(s[i.Kind]))throw new ValueCheckUnknownTypeError(s);return FromKind(s,n,r)}}function Check(...e){return e.length===3?Visit(e[0],e[1],e[2]):Visit(e[0],[],e[1])}},33742:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(85410),t)},40338:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Clean=Clean;const n=r(73373);const s=r(33742);const o=r(21683);const i=r(40886);const a=r(97034);const c=r(17479);const u=r(70384);function IsCheckable(e){return(0,u.IsSchema)(e)&&e[a.Kind]!=="Unsafe"}function FromArray(e,t,r){if(!(0,c.IsArray)(r))return r;return r.map((r=>Visit(e.items,t,r)))}function FromIntersect(e,t,r){const i=e.unevaluatedProperties;const a=e.allOf.map((e=>Visit(e,t,(0,o.Clone)(r))));const A=a.reduce(((e,t)=>(0,c.IsObject)(t)?{...e,...t}:t),{});if(!(0,c.IsObject)(r)||!(0,c.IsObject)(A)||!(0,u.IsSchema)(i))return A;const l=(0,n.KeyOfPropertyKeys)(e);for(const e of Object.getOwnPropertyNames(r)){if(l.includes(e))continue;if((0,s.Check)(i,t,r[e])){A[e]=Visit(i,t,r[e])}}return A}function FromObject(e,t,r){if(!(0,c.IsObject)(r)||(0,c.IsArray)(r))return r;const n=e.additionalProperties;for(const o of Object.getOwnPropertyNames(r)){if(o in e.properties){r[o]=Visit(e.properties[o],t,r[o]);continue}if((0,u.IsSchema)(n)&&(0,s.Check)(n,t,r[o])){r[o]=Visit(n,t,r[o]);continue}delete r[o]}return r}function FromRecord(e,t,r){if(!(0,c.IsObject)(r))return r;const n=e.additionalProperties;const o=Object.getOwnPropertyNames(r);const[i,a]=Object.entries(e.patternProperties)[0];const A=new RegExp(i);for(const e of o){if(A.test(e)){r[e]=Visit(a,t,r[e]);continue}if((0,u.IsSchema)(n)&&(0,s.Check)(n,t,r[e])){r[e]=Visit(n,t,r[e]);continue}delete r[e]}return r}function FromRef(e,t,r){return Visit((0,i.Deref)(e,t),t,r)}function FromThis(e,t,r){return Visit((0,i.Deref)(e,t),t,r)}function FromTuple(e,t,r){if(!(0,c.IsArray)(r))return r;if((0,c.IsUndefined)(e.items))return[];const n=Math.min(r.length,e.items.length);for(let s=0;sn?r.slice(0,n):r}function FromUnion(e,t,r){for(const n of e.anyOf){if(IsCheckable(n)&&(0,s.Check)(n,t,r)){return Visit(n,t,r)}}return r}function Visit(e,t,r){const n=(0,c.IsString)(e.$id)?[...t,e]:t;const s=e;switch(s[a.Kind]){case"Array":return FromArray(s,n,r);case"Intersect":return FromIntersect(s,n,r);case"Object":return FromObject(s,n,r);case"Record":return FromRecord(s,n,r);case"Ref":return FromRef(s,n,r);case"This":return FromThis(s,n,r);case"Tuple":return FromTuple(s,n,r);case"Union":return FromUnion(s,n,r);default:return r}}function Clean(...e){return e.length===3?Visit(e[0],e[1],e[2]):Visit(e[0],[],e[1])}},6115:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(40338),t)},13366:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Clone=Clone;const n=r(17479);function ObjectType(e){const t={};for(const r of Object.getOwnPropertyNames(e)){t[r]=Clone(e[r])}for(const r of Object.getOwnPropertySymbols(e)){t[r]=Clone(e[r])}return t}function ArrayType(e){return e.map((e=>Clone(e)))}function TypedArrayType(e){return e.slice()}function DateType(e){return new Date(e.toISOString())}function ValueType(e){return e}function Clone(e){if((0,n.IsArray)(e))return ArrayType(e);if((0,n.IsDate)(e))return DateType(e);if((0,n.IsStandardObject)(e))return ObjectType(e);if((0,n.IsTypedArray)(e))return TypedArrayType(e);if((0,n.IsValueType)(e))return ValueType(e);throw new Error("ValueClone: Unable to clone value")}},21683:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(13366),t)},68594:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Convert=Convert;const n=r(21683);const s=r(33742);const o=r(40886);const i=r(97034);const a=r(17479);function IsStringNumeric(e){return(0,a.IsString)(e)&&!isNaN(e)&&!isNaN(parseFloat(e))}function IsValueToString(e){return(0,a.IsBigInt)(e)||(0,a.IsBoolean)(e)||(0,a.IsNumber)(e)}function IsValueTrue(e){return e===true||(0,a.IsNumber)(e)&&e===1||(0,a.IsBigInt)(e)&&e===BigInt("1")||(0,a.IsString)(e)&&(e.toLowerCase()==="true"||e==="1")}function IsValueFalse(e){return e===false||(0,a.IsNumber)(e)&&(e===0||Object.is(e,-0))||(0,a.IsBigInt)(e)&&e===BigInt("0")||(0,a.IsString)(e)&&(e.toLowerCase()==="false"||e==="0"||e==="-0")}function IsTimeStringWithTimeZone(e){return(0,a.IsString)(e)&&/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(e)}function IsTimeStringWithoutTimeZone(e){return(0,a.IsString)(e)&&/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(e)}function IsDateTimeStringWithTimeZone(e){return(0,a.IsString)(e)&&/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(e)}function IsDateTimeStringWithoutTimeZone(e){return(0,a.IsString)(e)&&/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(e)}function IsDateString(e){return(0,a.IsString)(e)&&/^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(e)}function TryConvertLiteralString(e,t){const r=TryConvertString(e);return r===t?r:e}function TryConvertLiteralNumber(e,t){const r=TryConvertNumber(e);return r===t?r:e}function TryConvertLiteralBoolean(e,t){const r=TryConvertBoolean(e);return r===t?r:e}function TryConvertLiteral(e,t){return(0,a.IsString)(e.const)?TryConvertLiteralString(t,e.const):(0,a.IsNumber)(e.const)?TryConvertLiteralNumber(t,e.const):(0,a.IsBoolean)(e.const)?TryConvertLiteralBoolean(t,e.const):(0,n.Clone)(t)}function TryConvertBoolean(e){return IsValueTrue(e)?true:IsValueFalse(e)?false:e}function TryConvertBigInt(e){return IsStringNumeric(e)?BigInt(parseInt(e)):(0,a.IsNumber)(e)?BigInt(e|0):IsValueFalse(e)?BigInt(0):IsValueTrue(e)?BigInt(1):e}function TryConvertString(e){return IsValueToString(e)?e.toString():(0,a.IsSymbol)(e)&&e.description!==undefined?e.description.toString():e}function TryConvertNumber(e){return IsStringNumeric(e)?parseFloat(e):IsValueTrue(e)?1:IsValueFalse(e)?0:e}function TryConvertInteger(e){return IsStringNumeric(e)?parseInt(e):(0,a.IsNumber)(e)?e|0:IsValueTrue(e)?1:IsValueFalse(e)?0:e}function TryConvertNull(e){return(0,a.IsString)(e)&&e.toLowerCase()==="null"?null:e}function TryConvertUndefined(e){return(0,a.IsString)(e)&&e==="undefined"?undefined:e}function TryConvertDate(e){return(0,a.IsDate)(e)?e:(0,a.IsNumber)(e)?new Date(e):IsValueTrue(e)?new Date(1):IsValueFalse(e)?new Date(0):IsStringNumeric(e)?new Date(parseInt(e)):IsTimeStringWithoutTimeZone(e)?new Date(`1970-01-01T${e}.000Z`):IsTimeStringWithTimeZone(e)?new Date(`1970-01-01T${e}`):IsDateTimeStringWithoutTimeZone(e)?new Date(`${e}.000Z`):IsDateTimeStringWithTimeZone(e)?new Date(e):IsDateString(e)?new Date(`${e}T00:00:00.000Z`):e}function Default(e){return e}function FromArray(e,t,r){const n=(0,a.IsArray)(r)?r:[r];return n.map((r=>Visit(e.items,t,r)))}function FromBigInt(e,t,r){return TryConvertBigInt(r)}function FromBoolean(e,t,r){return TryConvertBoolean(r)}function FromDate(e,t,r){return TryConvertDate(r)}function FromInteger(e,t,r){return TryConvertInteger(r)}function FromIntersect(e,t,r){return e.allOf.reduce(((e,r)=>Visit(r,t,e)),r)}function FromLiteral(e,t,r){return TryConvertLiteral(e,r)}function FromNull(e,t,r){return TryConvertNull(r)}function FromNumber(e,t,r){return TryConvertNumber(r)}function FromObject(e,t,r){const n=(0,a.IsObject)(r);if(!n)return r;const s={};for(const n of Object.keys(r)){s[n]=(0,a.HasPropertyKey)(e.properties,n)?Visit(e.properties[n],t,r[n]):r[n]}return s}function FromRecord(e,t,r){const n=(0,a.IsObject)(r);if(!n)return r;const s=Object.getOwnPropertyNames(e.patternProperties)[0];const o=e.patternProperties[s];const i={};for(const[e,n]of Object.entries(r)){i[e]=Visit(o,t,n)}return i}function FromRef(e,t,r){return Visit((0,o.Deref)(e,t),t,r)}function FromString(e,t,r){return TryConvertString(r)}function FromSymbol(e,t,r){return(0,a.IsString)(r)||(0,a.IsNumber)(r)?Symbol(r):r}function FromThis(e,t,r){return Visit((0,o.Deref)(e,t),t,r)}function FromTuple(e,t,r){const n=(0,a.IsArray)(r)&&!(0,a.IsUndefined)(e.items);if(!n)return r;return r.map(((r,n)=>n{Object.defineProperty(t,"__esModule",{value:true});t.ValueCreateError=void 0;t.Create=Create;const n=r(17479);const s=r(33742);const o=r(21683);const i=r(40886);const a=r(26609);const c=r(94354);const u=r(51786);const A=r(97034);const l=r(26113);class ValueCreateError extends l.TypeBoxError{constructor(e,t){super(t);this.schema=e}}t.ValueCreateError=ValueCreateError;function FromDefault(e){return typeof e==="function"?e:(0,o.Clone)(e)}function FromAny(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return{}}}function FromArray(e,t){if(e.uniqueItems===true&&!(0,n.HasPropertyKey)(e,"default")){throw new ValueCreateError(e,"Array with the uniqueItems constraint requires a default value")}else if("contains"in e&&!(0,n.HasPropertyKey)(e,"default")){throw new ValueCreateError(e,"Array with the contains constraint requires a default value")}else if("default"in e){return FromDefault(e.default)}else if(e.minItems!==undefined){return Array.from({length:e.minItems}).map((r=>Visit(e.items,t)))}else{return[]}}function FromAsyncIterator(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return async function*(){}()}}function FromBigInt(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return BigInt(0)}}function FromBoolean(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return false}}function FromConstructor(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{const r=Visit(e.returns,t);if(typeof r==="object"&&!Array.isArray(r)){return class{constructor(){for(const[e,t]of Object.entries(r)){const r=this;r[e]=t}}}}else{return class{}}}}function FromDate(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if(e.minimumTimestamp!==undefined){return new Date(e.minimumTimestamp)}else{return new Date}}function FromFunction(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return()=>Visit(e.returns,t)}}function FromInteger(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if(e.minimum!==undefined){return e.minimum}else{return 0}}function FromIntersect(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{const r=e.allOf.reduce(((e,r)=>{const n=Visit(r,t);return typeof n==="object"?{...e,...n}:n}),{});if(!(0,s.Check)(e,t,r))throw new ValueCreateError(e,"Intersect produced invalid value. Consider using a default value.");return r}}function FromIterator(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return function*(){}()}}function FromLiteral(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return e.const}}function FromNever(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{throw new ValueCreateError(e,"Never types cannot be created. Consider using a default value.")}}function FromNot(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{throw new ValueCreateError(e,"Not types must have a default value")}}function FromNull(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return null}}function FromNumber(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if(e.minimum!==undefined){return e.minimum}else{return 0}}function FromObject(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{const r=new Set(e.required);const n={};for(const[s,o]of Object.entries(e.properties)){if(!r.has(s))continue;n[s]=Visit(o,t)}return n}}function FromPromise(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return Promise.resolve(Visit(e.item,t))}}function FromRecord(e,t){const[r,s]=Object.entries(e.patternProperties)[0];if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if(!(r===c.PatternStringExact||r===c.PatternNumberExact)){const e=r.slice(1,r.length-1).split("|");const n={};for(const r of e)n[r]=Visit(s,t);return n}else{return{}}}function FromRef(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return Visit((0,i.Deref)(e,t),t)}}function FromRegExp(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{throw new ValueCreateError(e,"RegExp types cannot be created. Consider using a default value.")}}function FromString(e,t){if(e.pattern!==undefined){if(!(0,n.HasPropertyKey)(e,"default")){throw new ValueCreateError(e,"String types with patterns must specify a default value")}else{return FromDefault(e.default)}}else if(e.format!==undefined){if(!(0,n.HasPropertyKey)(e,"default")){throw new ValueCreateError(e,"String types with formats must specify a default value")}else{return FromDefault(e.default)}}else{if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if(e.minLength!==undefined){return Array.from({length:e.minLength}).map((()=>" ")).join("")}else{return""}}}function FromSymbol(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if("value"in e){return Symbol.for(e.value)}else{return Symbol()}}function FromTemplateLiteral(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}if(!(0,a.IsTemplateLiteralFinite)(e))throw new ValueCreateError(e,"Can only create template literals that produce a finite variants. Consider using a default value.");const r=(0,a.TemplateLiteralGenerate)(e);return r[0]}function FromThis(e,t){if(p++>d)throw new ValueCreateError(e,"Cannot create recursive type as it appears possibly infinite. Consider using a default.");if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return Visit((0,i.Deref)(e,t),t)}}function FromTuple(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}if(e.items===undefined){return[]}else{return Array.from({length:e.minItems}).map(((r,n)=>Visit(e.items[n],t)))}}function FromUndefined(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return undefined}}function FromUnion(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if(e.anyOf.length===0){throw new Error("ValueCreate.Union: Cannot create Union with zero variants")}else{return Visit(e.anyOf[0],t)}}function FromUint8Array(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else if(e.minByteLength!==undefined){return new Uint8Array(e.minByteLength)}else{return new Uint8Array(0)}}function FromUnknown(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return{}}}function FromVoid(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{return void 0}}function FromKind(e,t){if((0,n.HasPropertyKey)(e,"default")){return FromDefault(e.default)}else{throw new Error("User defined types must specify a default value")}}function Visit(e,t){const r=(0,n.IsString)(e.$id)?[...t,e]:t;const s=e;switch(s[A.Kind]){case"Any":return FromAny(s,r);case"Array":return FromArray(s,r);case"AsyncIterator":return FromAsyncIterator(s,r);case"BigInt":return FromBigInt(s,r);case"Boolean":return FromBoolean(s,r);case"Constructor":return FromConstructor(s,r);case"Date":return FromDate(s,r);case"Function":return FromFunction(s,r);case"Integer":return FromInteger(s,r);case"Intersect":return FromIntersect(s,r);case"Iterator":return FromIterator(s,r);case"Literal":return FromLiteral(s,r);case"Never":return FromNever(s,r);case"Not":return FromNot(s,r);case"Null":return FromNull(s,r);case"Number":return FromNumber(s,r);case"Object":return FromObject(s,r);case"Promise":return FromPromise(s,r);case"Record":return FromRecord(s,r);case"Ref":return FromRef(s,r);case"RegExp":return FromRegExp(s,r);case"String":return FromString(s,r);case"Symbol":return FromSymbol(s,r);case"TemplateLiteral":return FromTemplateLiteral(s,r);case"This":return FromThis(s,r);case"Tuple":return FromTuple(s,r);case"Undefined":return FromUndefined(s,r);case"Union":return FromUnion(s,r);case"Uint8Array":return FromUint8Array(s,r);case"Unknown":return FromUnknown(s,r);case"Void":return FromVoid(s,r);default:if(!u.TypeRegistry.Has(s[A.Kind]))throw new ValueCreateError(s,"Unknown type");return FromKind(s,r)}}const d=512;let p=0;function Create(...e){p=0;return e.length===2?Visit(e[0],e[1]):Visit(e[0],[])}},18050:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(51744),t)},28766:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Default=Default;const n=r(33742);const s=r(21683);const o=r(40886);const i=r(97034);const a=r(17479);const c=r(70384);function ValueOrDefault(e,t){return t===undefined&&"default"in e?(0,s.Clone)(e.default):t}function IsCheckable(e){return(0,c.IsSchema)(e)&&e[i.Kind]!=="Unsafe"}function IsDefaultSchema(e){return(0,c.IsSchema)(e)&&"default"in e}function FromArray(e,t,r){const n=ValueOrDefault(e,r);if(!(0,a.IsArray)(n))return n;for(let r=0;r{const s=Visit(r,t,n);return(0,a.IsObject)(s)?{...e,...s}:s}),{})}function FromObject(e,t,r){const n=ValueOrDefault(e,r);if(!(0,a.IsObject)(n))return n;const s=e.additionalProperties;const o=Object.getOwnPropertyNames(e.properties);for(const r of o){if(!IsDefaultSchema(e.properties[r]))continue;n[r]=Visit(e.properties[r],t,n[r])}if(!IsDefaultSchema(s))return n;for(const e of Object.getOwnPropertyNames(n)){if(o.includes(e))continue;n[e]=Visit(s,t,n[e])}return n}function FromRecord(e,t,r){const n=ValueOrDefault(e,r);if(!(0,a.IsObject)(n))return n;const s=e.additionalProperties;const[o,i]=Object.entries(e.patternProperties)[0];const c=new RegExp(o);for(const e of Object.getOwnPropertyNames(n)){if(!(c.test(e)&&IsDefaultSchema(i)))continue;n[e]=Visit(i,t,n[e])}if(!IsDefaultSchema(s))return n;for(const e of Object.getOwnPropertyNames(n)){if(c.test(e))continue;n[e]=Visit(s,t,n[e])}return n}function FromRef(e,t,r){return Visit((0,o.Deref)(e,t),t,ValueOrDefault(e,r))}function FromThis(e,t,r){return Visit((0,o.Deref)(e,t),t,r)}function FromTuple(e,t,r){const n=ValueOrDefault(e,r);if(!(0,a.IsArray)(n)||(0,a.IsUndefined)(e.items))return n;const[s,o]=[e.items,Math.max(e.items.length,n.length)];for(let e=0;e{Object.defineProperty(t,"__esModule",{value:true});t.ValueDeltaSymbolError=t.ValueDeltaError=t.Edit=t.Delete=t.Update=t.Insert=void 0;t.Diff=Diff;t.Patch=Patch;const n=r(17479);const s=r(23079);const o=r(21683);const i=r(26113);const a=r(98076);const c=r(62094);const u=r(81688);const A=r(51897);const l=r(69100);t.Insert=(0,c.Object)({type:(0,a.Literal)("insert"),path:(0,u.String)(),value:(0,A.Unknown)()});t.Update=(0,c.Object)({type:(0,a.Literal)("update"),path:(0,u.String)(),value:(0,A.Unknown)()});t.Delete=(0,c.Object)({type:(0,a.Literal)("delete"),path:(0,u.String)()});t.Edit=(0,l.Union)([t.Insert,t.Update,t.Delete]);class ValueDeltaError extends i.TypeBoxError{constructor(e,t){super(t);this.value=e}}t.ValueDeltaError=ValueDeltaError;class ValueDeltaSymbolError extends ValueDeltaError{constructor(e){super(e,"Cannot diff objects with symbol keys");this.value=e}}t.ValueDeltaSymbolError=ValueDeltaSymbolError;function CreateUpdate(e,t){return{type:"update",path:e,value:t}}function CreateInsert(e,t){return{type:"insert",path:e,value:t}}function CreateDelete(e){return{type:"delete",path:e}}function*ObjectType(e,t,r){if(!(0,n.IsStandardObject)(r))return yield CreateUpdate(e,r);const s=[...globalThis.Object.keys(t),...globalThis.Object.getOwnPropertySymbols(t)];const o=[...globalThis.Object.keys(r),...globalThis.Object.getOwnPropertySymbols(r)];for(const t of s){if((0,n.IsSymbol)(t))throw new ValueDeltaSymbolError(t);if((0,n.IsUndefined)(r[t])&&o.includes(t))yield CreateUpdate(`${e}/${globalThis.String(t)}`,undefined)}for(const s of o){if((0,n.IsUndefined)(t[s])||(0,n.IsUndefined)(r[s]))continue;if((0,n.IsSymbol)(s))throw new ValueDeltaSymbolError(s);yield*Visit(`${e}/${globalThis.String(s)}`,t[s],r[s])}for(const s of o){if((0,n.IsSymbol)(s))throw new ValueDeltaSymbolError(s);if((0,n.IsUndefined)(t[s]))yield CreateInsert(`${e}/${globalThis.String(s)}`,r[s])}for(const t of s.reverse()){if((0,n.IsSymbol)(t))throw new ValueDeltaSymbolError(t);if((0,n.IsUndefined)(r[t])&&!o.includes(t))yield CreateDelete(`${e}/${globalThis.String(t)}`)}}function*ArrayType(e,t,r){if(!(0,n.IsArray)(r))return yield CreateUpdate(e,r);for(let n=0;n=0;n--){if(n0&&e[0].path===""&&e[0].type==="update"}function IsIdentity(e){return e.length===0}function Patch(e,t){if(IsRootUpdate(t)){return(0,o.Clone)(t[0].value)}if(IsIdentity(t)){return(0,o.Clone)(e)}const r=(0,o.Clone)(e);for(const e of t){switch(e.type){case"insert":{s.ValuePointer.Set(r,e.path,e.value);break}case"update":{s.ValuePointer.Set(r,e.path,e.value);break}case"delete":{s.ValuePointer.Delete(r,e.path);break}}}return r}},8124:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(67126),t)},85298:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeDereferenceError=void 0;t.Deref=Deref;const n=r(26113);const s=r(97034);class TypeDereferenceError extends n.TypeBoxError{constructor(e){super(`Unable to dereference schema with $id '${e.$id}'`);this.schema=e}}t.TypeDereferenceError=TypeDereferenceError;function Resolve(e,t){const r=t.find((t=>t.$id===e.$ref));if(r===undefined)throw new TypeDereferenceError(e);return Deref(r,t)}function Deref(e,t){return e[s.Kind]==="This"||e[s.Kind]==="Ref"?Resolve(e,t):e}},40886:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(85298),t)},60586:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Equal=Equal;const n=r(17479);function ObjectType(e,t){if(!(0,n.IsStandardObject)(t))return false;const r=[...Object.keys(e),...Object.getOwnPropertySymbols(e)];const s=[...Object.keys(t),...Object.getOwnPropertySymbols(t)];if(r.length!==s.length)return false;return r.every((r=>Equal(e[r],t[r])))}function DateType(e,t){return(0,n.IsDate)(t)&&e.getTime()===t.getTime()}function ArrayType(e,t){if(!(0,n.IsArray)(t)||e.length!==t.length)return false;return e.every(((e,r)=>Equal(e,t[r])))}function TypedArrayType(e,t){if(!(0,n.IsTypedArray)(t)||e.length!==t.length||Object.getPrototypeOf(e).constructor.name!==Object.getPrototypeOf(t).constructor.name)return false;return e.every(((e,r)=>Equal(e,t[r])))}function ValueType(e,t){return e===t}function Equal(e,t){if((0,n.IsStandardObject)(e))return ObjectType(e,t);if((0,n.IsDate)(e))return DateType(e,t);if((0,n.IsTypedArray)(e))return TypedArrayType(e,t);if((0,n.IsArray)(e))return ArrayType(e,t);if((0,n.IsValueType)(e))return ValueType(e,t);throw new Error("ValueEquals: Unable to compare value")}},46186:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(60586),t)},1850:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.IsAsyncIterator=IsAsyncIterator;t.IsIterator=IsIterator;t.IsStandardObject=IsStandardObject;t.IsInstanceObject=IsInstanceObject;t.IsPromise=IsPromise;t.IsDate=IsDate;t.IsMap=IsMap;t.IsSet=IsSet;t.IsRegExp=IsRegExp;t.IsTypedArray=IsTypedArray;t.IsInt8Array=IsInt8Array;t.IsUint8Array=IsUint8Array;t.IsUint8ClampedArray=IsUint8ClampedArray;t.IsInt16Array=IsInt16Array;t.IsUint16Array=IsUint16Array;t.IsInt32Array=IsInt32Array;t.IsUint32Array=IsUint32Array;t.IsFloat32Array=IsFloat32Array;t.IsFloat64Array=IsFloat64Array;t.IsBigInt64Array=IsBigInt64Array;t.IsBigUint64Array=IsBigUint64Array;t.HasPropertyKey=HasPropertyKey;t.IsObject=IsObject;t.IsArray=IsArray;t.IsUndefined=IsUndefined;t.IsNull=IsNull;t.IsBoolean=IsBoolean;t.IsNumber=IsNumber;t.IsInteger=IsInteger;t.IsBigInt=IsBigInt;t.IsString=IsString;t.IsFunction=IsFunction;t.IsSymbol=IsSymbol;t.IsValueType=IsValueType;function IsAsyncIterator(e){return IsObject(e)&&Symbol.asyncIterator in e}function IsIterator(e){return IsObject(e)&&Symbol.iterator in e}function IsStandardObject(e){return IsObject(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function IsInstanceObject(e){return IsObject(e)&&!IsArray(e)&&IsFunction(e.constructor)&&e.constructor.name!=="Object"}function IsPromise(e){return e instanceof Promise}function IsDate(e){return e instanceof Date&&Number.isFinite(e.getTime())}function IsMap(e){return e instanceof globalThis.Map}function IsSet(e){return e instanceof globalThis.Set}function IsRegExp(e){return e instanceof globalThis.RegExp}function IsTypedArray(e){return ArrayBuffer.isView(e)}function IsInt8Array(e){return e instanceof globalThis.Int8Array}function IsUint8Array(e){return e instanceof globalThis.Uint8Array}function IsUint8ClampedArray(e){return e instanceof globalThis.Uint8ClampedArray}function IsInt16Array(e){return e instanceof globalThis.Int16Array}function IsUint16Array(e){return e instanceof globalThis.Uint16Array}function IsInt32Array(e){return e instanceof globalThis.Int32Array}function IsUint32Array(e){return e instanceof globalThis.Uint32Array}function IsFloat32Array(e){return e instanceof globalThis.Float32Array}function IsFloat64Array(e){return e instanceof globalThis.Float64Array}function IsBigInt64Array(e){return e instanceof globalThis.BigInt64Array}function IsBigUint64Array(e){return e instanceof globalThis.BigUint64Array}function HasPropertyKey(e,t){return t in e}function IsObject(e){return e!==null&&typeof e==="object"}function IsArray(e){return Array.isArray(e)&&!ArrayBuffer.isView(e)}function IsUndefined(e){return e===undefined}function IsNull(e){return e===null}function IsBoolean(e){return typeof e==="boolean"}function IsNumber(e){return typeof e==="number"}function IsInteger(e){return Number.isInteger(e)}function IsBigInt(e){return typeof e==="bigint"}function IsString(e){return typeof e==="string"}function IsFunction(e){return typeof e==="function"}function IsSymbol(e){return typeof e==="symbol"}function IsValueType(e){return IsBigInt(e)||IsBoolean(e)||IsNull(e)||IsNumber(e)||IsString(e)||IsSymbol(e)||IsUndefined(e)}},17479:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(1850),t)},83760:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValueHashError=void 0;t.Hash=Hash;const n=r(17479);const s=r(26113);class ValueHashError extends s.TypeBoxError{constructor(e){super(`Unable to hash value`);this.value=e}}t.ValueHashError=ValueHashError;var o;(function(e){e[e["Undefined"]=0]="Undefined";e[e["Null"]=1]="Null";e[e["Boolean"]=2]="Boolean";e[e["Number"]=3]="Number";e[e["String"]=4]="String";e[e["Object"]=5]="Object";e[e["Array"]=6]="Array";e[e["Date"]=7]="Date";e[e["Uint8Array"]=8]="Uint8Array";e[e["Symbol"]=9]="Symbol";e[e["BigInt"]=10]="BigInt"})(o||(o={}));let i=BigInt("14695981039346656037");const[a,c]=[BigInt("1099511628211"),BigInt("2")**BigInt("64")];const u=Array.from({length:256}).map(((e,t)=>BigInt(t)));const A=new Float64Array(1);const l=new DataView(A.buffer);const d=new Uint8Array(A.buffer);function*NumberToBytes(e){const t=e===0?1:Math.ceil(Math.floor(Math.log2(e)+1)/8);for(let r=0;r>8*(t-1-r)&255}}function ArrayType(e){FNV1A64(o.Array);for(const t of e){Visit(t)}}function BooleanType(e){FNV1A64(o.Boolean);FNV1A64(e?1:0)}function BigIntType(e){FNV1A64(o.BigInt);l.setBigInt64(0,e);for(const e of d){FNV1A64(e)}}function DateType(e){FNV1A64(o.Date);Visit(e.getTime())}function NullType(e){FNV1A64(o.Null)}function NumberType(e){FNV1A64(o.Number);l.setFloat64(0,e);for(const e of d){FNV1A64(e)}}function ObjectType(e){FNV1A64(o.Object);for(const t of globalThis.Object.getOwnPropertyNames(e).sort()){Visit(t);Visit(e[t])}}function StringType(e){FNV1A64(o.String);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:true});t.ValueMutateError=void 0;t.Mutate=Mutate;const n=r(17479);const s=r(23079);const o=r(21683);const i=r(26113);class ValueMutateError extends i.TypeBoxError{constructor(e){super(e)}}t.ValueMutateError=ValueMutateError;function ObjectType(e,t,r,i){if(!(0,n.IsStandardObject)(r)){s.ValuePointer.Set(e,t,(0,o.Clone)(i))}else{const n=Object.getOwnPropertyNames(r);const s=Object.getOwnPropertyNames(i);for(const e of n){if(!s.includes(e)){delete r[e]}}for(const e of s){if(!n.includes(e)){r[e]=null}}for(const n of s){Visit(e,`${t}/${n}`,r[n],i[n])}}}function ArrayType(e,t,r,i){if(!(0,n.IsArray)(r)){s.ValuePointer.Set(e,t,(0,o.Clone)(i))}else{for(let n=0;n{Object.defineProperty(t,"__esModule",{value:true});t.ValuePointer=void 0;t.ValuePointer=r(65630)},65630:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValuePointerRootDeleteError=t.ValuePointerRootSetError=void 0;t.Format=Format;t.Set=Set;t.Delete=Delete;t.Has=Has;t.Get=Get;const n=r(26113);class ValuePointerRootSetError extends n.TypeBoxError{constructor(e,t,r){super("Cannot set root value");this.value=e;this.path=t;this.update=r}}t.ValuePointerRootSetError=ValuePointerRootSetError;class ValuePointerRootDeleteError extends n.TypeBoxError{constructor(e,t){super("Cannot delete root value");this.value=e;this.path=t}}t.ValuePointerRootDeleteError=ValuePointerRootDeleteError;function Escape(e){return e.indexOf("~")===-1?e:e.replace(/~1/g,"/").replace(/~0/g,"~")}function*Format(e){if(e==="")return;let[t,r]=[0,0];for(let n=0;n{Object.defineProperty(t,"__esModule",{value:true});t.TransformDecodeError=t.TransformDecodeCheckError=void 0;t.TransformDecode=TransformDecode;const n=r(97034);const s=r(26113);const o=r(73373);const i=r(40886);const a=r(33742);const c=r(17479);const u=r(70384);class TransformDecodeCheckError extends s.TypeBoxError{constructor(e,t,r){super(`Unable to decode value as it does not match the expected schema`);this.schema=e;this.value=t;this.error=r}}t.TransformDecodeCheckError=TransformDecodeCheckError;class TransformDecodeError extends s.TypeBoxError{constructor(e,t,r,n){super(n instanceof Error?n.message:"Unknown error");this.schema=e;this.path=t;this.value=r;this.error=n}}t.TransformDecodeError=TransformDecodeError;function Default(e,t,r){try{return(0,u.IsTransform)(e)?e[n.TransformKind].Decode(r):r}catch(n){throw new TransformDecodeError(e,t,r,n)}}function FromArray(e,t,r,n){return(0,c.IsArray)(n)?Default(e,r,n.map(((n,s)=>Visit(e.items,t,`${r}/${s}`,n)))):Default(e,r,n)}function FromIntersect(e,t,r,n){if(!(0,c.IsStandardObject)(n)||(0,c.IsValueType)(n))return Default(e,r,n);const s=(0,o.KeyOfPropertyEntries)(e);const i=s.map((e=>e[0]));const a={...n};for(const[e,n]of s)if(e in a){a[e]=Visit(n,t,`${r}/${e}`,a[e])}if(!(0,u.IsTransform)(e.unevaluatedProperties)){return Default(e,r,a)}const A=Object.getOwnPropertyNames(a);const l=e.unevaluatedProperties;const d={...a};for(const e of A)if(!i.includes(e)){d[e]=Default(l,`${r}/${e}`,d[e])}return Default(e,r,d)}function FromNot(e,t,r,n){return Default(e,r,Visit(e.not,t,r,n))}function FromObject(e,t,r,n){if(!(0,c.IsStandardObject)(n))return Default(e,r,n);const s=(0,o.KeyOfPropertyKeys)(e);const i={...n};for(const n of s)if(n in i){i[n]=Visit(e.properties[n],t,`${r}/${n}`,i[n])}if(!(0,u.IsSchema)(e.additionalProperties)){return Default(e,r,i)}const a=Object.getOwnPropertyNames(i);const A=e.additionalProperties;const l={...i};for(const e of a)if(!s.includes(e)){l[e]=Default(A,`${r}/${e}`,l[e])}return Default(e,r,l)}function FromRecord(e,t,r,n){if(!(0,c.IsStandardObject)(n))return Default(e,r,n);const s=Object.getOwnPropertyNames(e.patternProperties)[0];const o=new RegExp(s);const i={...n};for(const a of Object.getOwnPropertyNames(n))if(o.test(a)){i[a]=Visit(e.patternProperties[s],t,`${r}/${a}`,i[a])}if(!(0,u.IsSchema)(e.additionalProperties)){return Default(e,r,i)}const a=Object.getOwnPropertyNames(i);const A=e.additionalProperties;const l={...i};for(const e of a)if(!o.test(e)){l[e]=Default(A,`${r}/${e}`,l[e])}return Default(e,r,l)}function FromRef(e,t,r,n){const s=(0,i.Deref)(e,t);return Default(e,r,Visit(s,t,r,n))}function FromThis(e,t,r,n){const s=(0,i.Deref)(e,t);return Default(e,r,Visit(s,t,r,n))}function FromTuple(e,t,r,n){return(0,c.IsArray)(n)&&(0,c.IsArray)(e.items)?Default(e,r,e.items.map(((e,s)=>Visit(e,t,`${r}/${s}`,n[s])))):Default(e,r,n)}function FromUnion(e,t,r,n){for(const s of e.anyOf){if(!(0,a.Check)(s,t,n))continue;const o=Visit(s,t,r,n);return Default(e,r,o)}return Default(e,r,n)}function Visit(e,t,r,s){const o=typeof e.$id==="string"?[...t,e]:t;const i=e;switch(e[n.Kind]){case"Array":return FromArray(i,o,r,s);case"Intersect":return FromIntersect(i,o,r,s);case"Not":return FromNot(i,o,r,s);case"Object":return FromObject(i,o,r,s);case"Record":return FromRecord(i,o,r,s);case"Ref":return FromRef(i,o,r,s);case"Symbol":return Default(i,r,s);case"This":return FromThis(i,o,r,s);case"Tuple":return FromTuple(i,o,r,s);case"Union":return FromUnion(i,o,r,s);default:return Default(i,r,s)}}function TransformDecode(e,t,r){return Visit(e,t,"",r)}},33598:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TransformEncodeError=t.TransformEncodeCheckError=void 0;t.TransformEncode=TransformEncode;const n=r(97034);const s=r(26113);const o=r(73373);const i=r(40886);const a=r(33742);const c=r(17479);const u=r(70384);class TransformEncodeCheckError extends s.TypeBoxError{constructor(e,t,r){super(`The encoded value does not match the expected schema`);this.schema=e;this.value=t;this.error=r}}t.TransformEncodeCheckError=TransformEncodeCheckError;class TransformEncodeError extends s.TypeBoxError{constructor(e,t,r,n){super(`${n instanceof Error?n.message:"Unknown error"}`);this.schema=e;this.path=t;this.value=r;this.error=n}}t.TransformEncodeError=TransformEncodeError;function Default(e,t,r){try{return(0,u.IsTransform)(e)?e[n.TransformKind].Encode(r):r}catch(n){throw new TransformEncodeError(e,t,r,n)}}function FromArray(e,t,r,n){const s=Default(e,r,n);return(0,c.IsArray)(s)?s.map(((n,s)=>Visit(e.items,t,`${r}/${s}`,n))):s}function FromIntersect(e,t,r,n){const s=Default(e,r,n);if(!(0,c.IsStandardObject)(n)||(0,c.IsValueType)(n))return s;const i=(0,o.KeyOfPropertyEntries)(e);const a=i.map((e=>e[0]));const A={...s};for(const[e,n]of i)if(e in A){A[e]=Visit(n,t,`${r}/${e}`,A[e])}if(!(0,u.IsTransform)(e.unevaluatedProperties)){return Default(e,r,A)}const l=Object.getOwnPropertyNames(A);const d=e.unevaluatedProperties;const p={...A};for(const e of l)if(!a.includes(e)){p[e]=Default(d,`${r}/${e}`,p[e])}return p}function FromNot(e,t,r,n){return Default(e.not,r,Default(e,r,n))}function FromObject(e,t,r,n){const s=Default(e,r,n);if(!(0,c.IsStandardObject)(s))return s;const i=(0,o.KeyOfPropertyKeys)(e);const a={...s};for(const n of i)if(n in a){a[n]=Visit(e.properties[n],t,`${r}/${n}`,a[n])}if(!(0,u.IsSchema)(e.additionalProperties)){return a}const A=Object.getOwnPropertyNames(a);const l=e.additionalProperties;const d={...a};for(const e of A)if(!i.includes(e)){d[e]=Default(l,`${r}/${e}`,d[e])}return d}function FromRecord(e,t,r,n){const s=Default(e,r,n);if(!(0,c.IsStandardObject)(n))return s;const o=Object.getOwnPropertyNames(e.patternProperties)[0];const i=new RegExp(o);const a={...s};for(const s of Object.getOwnPropertyNames(n))if(i.test(s)){a[s]=Visit(e.patternProperties[o],t,`${r}/${s}`,a[s])}if(!(0,u.IsSchema)(e.additionalProperties)){return Default(e,r,a)}const A=Object.getOwnPropertyNames(a);const l=e.additionalProperties;const d={...a};for(const e of A)if(!i.test(e)){d[e]=Default(l,`${r}/${e}`,d[e])}return d}function FromRef(e,t,r,n){const s=(0,i.Deref)(e,t);const o=Visit(s,t,r,n);return Default(e,r,o)}function FromThis(e,t,r,n){const s=(0,i.Deref)(e,t);const o=Visit(s,t,r,n);return Default(e,r,o)}function FromTuple(e,t,r,n){const s=Default(e,r,n);return(0,c.IsArray)(e.items)?e.items.map(((e,n)=>Visit(e,t,`${r}/${n}`,s[n]))):[]}function FromUnion(e,t,r,n){for(const s of e.anyOf){if(!(0,a.Check)(s,t,n))continue;const o=Visit(s,t,r,n);return Default(e,r,o)}for(const s of e.anyOf){const o=Visit(s,t,r,n);if(!(0,a.Check)(e,t,o))continue;return Default(e,r,o)}return Default(e,r,n)}function Visit(e,t,r,s){const o=typeof e.$id==="string"?[...t,e]:t;const i=e;switch(e[n.Kind]){case"Array":return FromArray(i,o,r,s);case"Intersect":return FromIntersect(i,o,r,s);case"Not":return FromNot(i,o,r,s);case"Object":return FromObject(i,o,r,s);case"Record":return FromRecord(i,o,r,s);case"Ref":return FromRef(i,o,r,s);case"This":return FromThis(i,o,r,s);case"Tuple":return FromTuple(i,o,r,s);case"Union":return FromUnion(i,o,r,s);default:return Default(i,r,s)}}function TransformEncode(e,t,r){return Visit(e,t,"",r)}},51542:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.HasTransform=HasTransform;const n=r(40886);const s=r(97034);const o=r(70384);const i=r(17479);function FromArray(e,t){return(0,o.IsTransform)(e)||Visit(e.items,t)}function FromAsyncIterator(e,t){return(0,o.IsTransform)(e)||Visit(e.items,t)}function FromConstructor(e,t){return(0,o.IsTransform)(e)||Visit(e.returns,t)||e.parameters.some((e=>Visit(e,t)))}function FromFunction(e,t){return(0,o.IsTransform)(e)||Visit(e.returns,t)||e.parameters.some((e=>Visit(e,t)))}function FromIntersect(e,t){return(0,o.IsTransform)(e)||(0,o.IsTransform)(e.unevaluatedProperties)||e.allOf.some((e=>Visit(e,t)))}function FromIterator(e,t){return(0,o.IsTransform)(e)||Visit(e.items,t)}function FromNot(e,t){return(0,o.IsTransform)(e)||Visit(e.not,t)}function FromObject(e,t){return(0,o.IsTransform)(e)||Object.values(e.properties).some((e=>Visit(e,t)))||(0,o.IsSchema)(e.additionalProperties)&&Visit(e.additionalProperties,t)}function FromPromise(e,t){return(0,o.IsTransform)(e)||Visit(e.item,t)}function FromRecord(e,t){const r=Object.getOwnPropertyNames(e.patternProperties)[0];const n=e.patternProperties[r];return(0,o.IsTransform)(e)||Visit(n,t)||(0,o.IsSchema)(e.additionalProperties)&&(0,o.IsTransform)(e.additionalProperties)}function FromRef(e,t){if((0,o.IsTransform)(e))return true;return Visit((0,n.Deref)(e,t),t)}function FromThis(e,t){if((0,o.IsTransform)(e))return true;return Visit((0,n.Deref)(e,t),t)}function FromTuple(e,t){return(0,o.IsTransform)(e)||!(0,i.IsUndefined)(e.items)&&e.items.some((e=>Visit(e,t)))}function FromUnion(e,t){return(0,o.IsTransform)(e)||e.anyOf.some((e=>Visit(e,t)))}function Visit(e,t){const r=(0,i.IsString)(e.$id)?[...t,e]:t;const n=e;if(e.$id&&a.has(e.$id))return false;if(e.$id)a.add(e.$id);switch(e[s.Kind]){case"Array":return FromArray(n,r);case"AsyncIterator":return FromAsyncIterator(n,r);case"Constructor":return FromConstructor(n,r);case"Function":return FromFunction(n,r);case"Intersect":return FromIntersect(n,r);case"Iterator":return FromIterator(n,r);case"Not":return FromNot(n,r);case"Object":return FromObject(n,r);case"Promise":return FromPromise(n,r);case"Record":return FromRecord(n,r);case"Ref":return FromRef(n,r);case"This":return FromThis(n,r);case"Tuple":return FromTuple(n,r);case"Union":return FromUnion(n,r);default:return(0,o.IsTransform)(e)}}const a=new Set;function HasTransform(e,t){a.clear();return Visit(e,t)}},50038:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(37354),t);s(r(33598),t);s(r(51542),t)},22079:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Value=void 0;t.Value=r(50854)},50854:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Cast=Cast;t.Create=Create;t.Check=Check;t.Clean=Clean;t.Convert=Convert;t.Clone=Clone;t.Decode=Decode;t.Default=Default;t.Encode=Encode;t.Errors=Errors;t.Equal=Equal;t.Diff=Diff;t.Hash=Hash;t.Patch=Patch;t.Mutate=Mutate;const n=r(50038);const s=r(36068);const o=r(7210);const i=r(46186);const a=r(46097);const c=r(21683);const u=r(41241);const A=r(18050);const l=r(6115);const d=r(33742);const p=r(97659);const g=r(8124);const h=r(65507);function Cast(...e){return a.Cast.apply(a.Cast,e)}function Create(...e){return A.Create.apply(A.Create,e)}function Check(...e){return d.Check.apply(d.Check,e)}function Clean(...e){return l.Clean.apply(l.Clean,e)}function Convert(...e){return u.Convert.apply(u.Convert,e)}function Clone(e){return(0,c.Clone)(e)}function Decode(...e){const[t,r,s]=e.length===3?[e[0],e[1],e[2]]:[e[0],[],e[1]];if(!Check(t,r,s))throw new n.TransformDecodeCheckError(t,s,Errors(t,r,s).First());return(0,n.HasTransform)(t,r)?(0,n.TransformDecode)(t,r,s):s}function Default(...e){return p.Default.apply(p.Default,e)}function Encode(...e){const[t,r,s]=e.length===3?[e[0],e[1],e[2]]:[e[0],[],e[1]];const o=(0,n.HasTransform)(t,r)?(0,n.TransformEncode)(t,r,s):s;if(!Check(t,r,o))throw new n.TransformEncodeCheckError(t,o,Errors(t,r,o).First());return o}function Errors(...e){return h.Errors.apply(h.Errors,e)}function Equal(e,t){return(0,i.Equal)(e,t)}function Diff(e,t){return(0,g.Diff)(e,t)}function Hash(e){return(0,o.Hash)(e)}function Patch(e,t){return(0,g.Patch)(e,t)}function Mutate(e,t){(0,s.Mutate)(e,t)}},63251:function(e){(function(t,r){true?e.exports=r():0})(this,(function(){"use strict";var e=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function getCjsExportFromNamespace(e){return e&&e["default"]||e}var load=function(e,t,r={}){var n,s,o;for(n in t){o=t[n];r[n]=(s=e[n])!=null?s:o}return r};var overwrite=function(e,t,r={}){var n,s;for(n in e){s=e[n];if(t[n]!==void 0){r[n]=s}}return r};var t={load:load,overwrite:overwrite};var r;r=class DLList{constructor(e,t){this.incr=e;this.decr=t;this._first=null;this._last=null;this.length=0}push(e){var t;this.length++;if(typeof this.incr==="function"){this.incr()}t={value:e,prev:this._last,next:null};if(this._last!=null){this._last.next=t;this._last=t}else{this._first=this._last=t}return void 0}shift(){var e;if(this._first==null){return}else{this.length--;if(typeof this.decr==="function"){this.decr()}}e=this._first.value;if((this._first=this._first.next)!=null){this._first.prev=null}else{this._last=null}return e}first(){if(this._first!=null){return this._first.value}}getArray(){var e,t,r;e=this._first;r=[];while(e!=null){r.push((t=e,e=e.next,t.value))}return r}forEachShift(e){var t;t=this.shift();while(t!=null){e(t),t=this.shift()}return void 0}debug(){var e,t,r,n,s;e=this._first;s=[];while(e!=null){s.push((t=e,e=e.next,{value:t.value,prev:(r=t.prev)!=null?r.value:void 0,next:(n=t.next)!=null?n.value:void 0}))}return s}};var n=r;var s;s=class Events{constructor(e){this.instance=e;this._events={};if(this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null){throw new Error("An Emitter already exists for this object")}this.instance.on=(e,t)=>this._addListener(e,"many",t);this.instance.once=(e,t)=>this._addListener(e,"once",t);this.instance.removeAllListeners=(e=null)=>{if(e!=null){return delete this._events[e]}else{return this._events={}}}}_addListener(e,t,r){var n;if((n=this._events)[e]==null){n[e]=[]}this._events[e].push({cb:r,status:t});return this.instance}listenerCount(e){if(this._events[e]!=null){return this._events[e].length}else{return 0}}async trigger(e,...t){var r,n;try{if(e!=="debug"){this.trigger("debug",`Event triggered: ${e}`,t)}if(this._events[e]==null){return}this._events[e]=this._events[e].filter((function(e){return e.status!=="none"}));n=this._events[e].map((async e=>{var r,n;if(e.status==="none"){return}if(e.status==="once"){e.status="none"}try{n=typeof e.cb==="function"?e.cb(...t):void 0;if(typeof(n!=null?n.then:void 0)==="function"){return await n}else{return n}}catch(e){r=e;{this.trigger("error",r)}return null}}));return(await Promise.all(n)).find((function(e){return e!=null}))}catch(e){r=e;{this.trigger("error",r)}return null}}};var o=s;var i,a,c;i=n;a=o;c=class Queues{constructor(e){var t;this.Events=new a(this);this._length=0;this._lists=function(){var r,n,s;s=[];for(t=r=1,n=e;1<=n?r<=n:r>=n;t=1<=n?++r:--r){s.push(new i((()=>this.incr()),(()=>this.decr())))}return s}.call(this)}incr(){if(this._length++===0){return this.Events.trigger("leftzero")}}decr(){if(--this._length===0){return this.Events.trigger("zero")}}push(e){return this._lists[e.options.priority].push(e)}queued(e){if(e!=null){return this._lists[e].length}else{return this._length}}shiftAll(e){return this._lists.forEach((function(t){return t.forEachShift(e)}))}getFirst(e=this._lists){var t,r,n;for(t=0,r=e.length;t0){return n}}return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var u=c;var A;A=class BottleneckError extends Error{};var l=A;var d,p,g,h,m;h=10;p=5;m=t;d=l;g=class Job{constructor(e,t,r,n,s,o,i,a){this.task=e;this.args=t;this.rejectOnDrop=s;this.Events=o;this._states=i;this.Promise=a;this.options=m.load(r,n);this.options.priority=this._sanitizePriority(this.options.priority);if(this.options.id===n.id){this.options.id=`${this.options.id}-${this._randomIndex()}`}this.promise=new this.Promise(((e,t)=>{this._resolve=e;this._reject=t}));this.retryCount=0}_sanitizePriority(e){var t;t=~~e!==e?p:e;if(t<0){return 0}else if(t>h-1){return h-1}else{return t}}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t="This job has been dropped by Bottleneck"}={}){if(this._states.remove(this.options.id)){if(this.rejectOnDrop){this._reject(e!=null?e:new d(t))}this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise});return true}else{return false}}_assertStatus(e){var t;t=this._states.jobStatus(this.options.id);if(!(t===e||e==="DONE"&&t===null)){throw new d(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}}doReceive(){this._states.start(this.options.id);return this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,t){this._assertStatus("RECEIVED");this._states.next(this.options.id);return this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){if(this.retryCount===0){this._assertStatus("QUEUED");this._states.next(this.options.id)}else{this._assertStatus("EXECUTING")}return this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(e,t,r,n){var s,o,i;if(this.retryCount===0){this._assertStatus("RUNNING");this._states.next(this.options.id)}else{this._assertStatus("EXECUTING")}o={args:this.args,options:this.options,retryCount:this.retryCount};this.Events.trigger("executing",o);try{i=await(e!=null?e.schedule(this.options,this.task,...this.args):this.task(...this.args));if(t()){this.doDone(o);await n(this.options,o);this._assertStatus("DONE");return this._resolve(i)}}catch(e){s=e;return this._onFailure(s,o,t,r,n)}}doExpire(e,t,r){var n,s;if(this._states.jobStatus(this.options.id==="RUNNING")){this._states.next(this.options.id)}this._assertStatus("EXECUTING");s={args:this.args,options:this.options,retryCount:this.retryCount};n=new d(`This job timed out after ${this.options.expiration} ms.`);return this._onFailure(n,s,e,t,r)}async _onFailure(e,t,r,n,s){var o,i;if(r()){o=await this.Events.trigger("failed",e,t);if(o!=null){i=~~o;this.Events.trigger("retry",`Retrying ${this.options.id} after ${i} ms`,t);this.retryCount++;return n(i)}else{this.doDone(t);await s(this.options,t);this._assertStatus("DONE");return this._reject(e)}}}doDone(e){this._assertStatus("EXECUTING");this._states.next(this.options.id);return this.Events.trigger("done",e)}};var E=g;var y,I,C;C=t;y=l;I=class LocalDatastore{constructor(e,t,r){this.instance=e;this.storeOptions=t;this.clientId=this.instance._randomIndex();C.load(r,r,this);this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now();this._running=0;this._done=0;this._unblockTime=0;this.ready=this.Promise.resolve();this.clients={};this._startHeartbeat()}_startHeartbeat(){var e;if(this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)){return typeof(e=this.heartbeat=setInterval((()=>{var e,t,r,n,s;n=Date.now();if(this.storeOptions.reservoirRefreshInterval!=null&&n>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval){this._lastReservoirRefresh=n;this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount;this.instance._drainAll(this.computeCapacity())}if(this.storeOptions.reservoirIncreaseInterval!=null&&n>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){({reservoirIncreaseAmount:e,reservoirIncreaseMaximum:r,reservoir:s}=this.storeOptions);this._lastReservoirIncrease=n;t=r!=null?Math.min(e,r-s):e;if(t>0){this.storeOptions.reservoir+=t;return this.instance._drainAll(this.computeCapacity())}}}),this.heartbeatInterval)).unref==="function"?e.unref():void 0}else{return clearInterval(this.heartbeat)}}async __publish__(e){await this.yieldLoop();return this.instance.Events.trigger("message",e.toString())}async __disconnect__(e){await this.yieldLoop();clearInterval(this.heartbeat);return this.Promise.resolve()}yieldLoop(e=0){return new this.Promise((function(t,r){return setTimeout(t,e)}))}computePenalty(){var e;return(e=this.storeOptions.penalty)!=null?e:15*this.storeOptions.minTime||5e3}async __updateSettings__(e){await this.yieldLoop();C.overwrite(e,e,this.storeOptions);this._startHeartbeat();this.instance._drainAll(this.computeCapacity());return true}async __running__(){await this.yieldLoop();return this._running}async __queued__(){await this.yieldLoop();return this.instance.queued()}async __done__(){await this.yieldLoop();return this._done}async __groupCheck__(e){await this.yieldLoop();return this._nextRequest+this.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}async __check__(e){var t;await this.yieldLoop();t=Date.now();return this.check(e,t)}async __register__(e,t,r){var n,s;await this.yieldLoop();n=Date.now();if(this.conditionsCheck(t)){this._running+=t;if(this.storeOptions.reservoir!=null){this.storeOptions.reservoir-=t}s=Math.max(this._nextRequest-n,0);this._nextRequest=n+s+this.storeOptions.minTime;return{success:true,wait:s,reservoir:this.storeOptions.reservoir}}else{return{success:false}}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(e,t){var r,n,s;await this.yieldLoop();if(this.storeOptions.maxConcurrent!=null&&t>this.storeOptions.maxConcurrent){throw new y(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`)}n=Date.now();s=this.storeOptions.highWater!=null&&e===this.storeOptions.highWater&&!this.check(t,n);r=this.strategyIsBlock()&&(s||this.isBlocked(n));if(r){this._unblockTime=n+this.computePenalty();this._nextRequest=this._unblockTime+this.storeOptions.minTime;this.instance._dropAllQueued()}return{reachedHWM:s,blocked:r,strategy:this.storeOptions.strategy}}async __free__(e,t){await this.yieldLoop();this._running-=t;this._done+=t;this.instance._drainAll(this.computeCapacity());return{running:this._running}}};var b=I;var B,Q;B=l;Q=class States{constructor(e){this.status=e;this._jobs={};this.counts=this.status.map((function(){return 0}))}next(e){var t,r;t=this._jobs[e];r=t+1;if(t!=null&&r{e[this.status[r]]=t;return e}),{})}};var T=Q;var v,w;v=n;w=class Sync{constructor(e,t){this.schedule=this.schedule.bind(this);this.name=e;this.Promise=t;this._running=0;this._queue=new v}isEmpty(){return this._queue.length===0}async _tryToRun(){var e,t,r,n,s,o,i;if(this._running<1&&this._queue.length>0){this._running++;({task:i,args:e,resolve:s,reject:n}=this._queue.shift());t=await async function(){try{o=await i(...e);return function(){return s(o)}}catch(e){r=e;return function(){return n(r)}}}();this._running--;this._tryToRun();return t()}}schedule(e,...t){var r,n,s;s=n=null;r=new this.Promise((function(e,t){s=e;return n=t}));this._queue.push({task:e,args:t,resolve:s,reject:n});this._tryToRun();return r}};var _=w;var O="2.19.5";var k={version:O};var R=Object.freeze({version:O,default:k});var require$$2=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var require$$3=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var require$$4=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var S,F,D,N,P,L;L=t;S=o;N=require$$2;D=require$$3;P=require$$4;F=function(){class Group{constructor(e={}){this.deleteKey=this.deleteKey.bind(this);this.limiterOptions=e;L.load(this.limiterOptions,this.defaults,this);this.Events=new S(this);this.instances={};this.Bottleneck=re;this._startAutoCleanup();this.sharedConnection=this.connection!=null;if(this.connection==null){if(this.limiterOptions.datastore==="redis"){this.connection=new N(Object.assign({},this.limiterOptions,{Events:this.Events}))}else if(this.limiterOptions.datastore==="ioredis"){this.connection=new D(Object.assign({},this.limiterOptions,{Events:this.Events}))}}}key(e=""){var t;return(t=this.instances[e])!=null?t:(()=>{var t;t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection}));this.Events.trigger("created",t,e);return t})()}async deleteKey(e=""){var t,r;r=this.instances[e];if(this.connection){t=await this.connection.__runCommand__(["del",...P.allKeys(`${this.id}-${e}`)])}if(r!=null){delete this.instances[e];await r.disconnect()}return r!=null||t>0}limiters(){var e,t,r,n;t=this.instances;r=[];for(e in t){n=t[e];r.push({key:e,limiter:n})}return r}keys(){return Object.keys(this.instances)}async clusterKeys(){var e,t,r,n,s,o,i,a,c;if(this.connection==null){return this.Promise.resolve(this.keys())}o=[];e=null;c=`b_${this.id}-`.length;t="_settings".length;while(e!==0){[a,r]=await this.connection.__runCommand__(["scan",e!=null?e:0,"match",`b_${this.id}-*_settings`,"count",1e4]);e=~~a;for(n=0,i=r.length;n{var e,t,r,n,s,o;s=Date.now();r=this.instances;n=[];for(t in r){o=r[t];try{if(await o._store.__groupCheck__(s)){n.push(this.deleteKey(t))}else{n.push(void 0)}}catch(t){e=t;n.push(o.Events.trigger("error",e))}}return n}),this.timeout/2)).unref==="function"?e.unref():void 0}updateSettings(e={}){L.overwrite(e,this.defaults,this);L.overwrite(e,e,this.limiterOptions);if(e.timeout!=null){return this._startAutoCleanup()}}disconnect(e=true){var t;if(!this.sharedConnection){return(t=this.connection)!=null?t.disconnect(e):void 0}}}Group.prototype.defaults={timeout:1e3*60*5,connection:null,Promise:Promise,id:"group-key"};return Group}.call(e);var U=F;var M,x,G;G=t;x=o;M=function(){class Batcher{constructor(e={}){this.options=e;G.load(this.options,this.defaults,this);this.Events=new x(this);this._arr=[];this._resetPromise();this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise(((e,t)=>this._resolve=e))}_flush(){clearTimeout(this._timeout);this._lastFlush=Date.now();this._resolve();this.Events.trigger("batch",this._arr);this._arr=[];return this._resetPromise()}add(e){var t;this._arr.push(e);t=this._promise;if(this._arr.length===this.maxSize){this._flush()}else if(this.maxTime!=null&&this._arr.length===1){this._timeout=setTimeout((()=>this._flush()),this.maxTime)}return t}}Batcher.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise};return Batcher}.call(e);var j=M;var require$$4$1=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var V=getCjsExportFromNamespace(R);var H,q,Y,K,J,$,W,z,Z,X,ee,te=[].splice;$=10;q=5;ee=t;W=u;K=E;J=b;z=require$$4$1;Y=o;Z=T;X=_;H=function(){class Bottleneck{constructor(e={},...t){var r,n;this._addToQueue=this._addToQueue.bind(this);this._validateOptions(e,t);ee.load(e,this.instanceDefaults,this);this._queues=new W($);this._scheduled={};this._states=new Z(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[]));this._limiter=null;this.Events=new Y(this);this._submitLock=new X("submit",this.Promise);this._registerLock=new X("register",this.Promise);n=ee.load(e,this.storeDefaults,{});this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null){r=ee.load(e,this.redisStoreDefaults,{});return new z(this,n,r)}else if(this.datastore==="local"){r=ee.load(e,this.localStoreDefaults,{});return new J(this,n,r)}else{throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}}.call(this);this._queues.on("leftzero",(()=>{var e;return(e=this._store.heartbeat)!=null?typeof e.ref==="function"?e.ref():void 0:void 0}));this._queues.on("zero",(()=>{var e;return(e=this._store.heartbeat)!=null?typeof e.unref==="function"?e.unref():void 0:void 0}))}_validateOptions(e,t){if(!(e!=null&&typeof e==="object"&&t.length===0)){throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=true){return this._store.__disconnect__(e)}chain(e){this._limiter=e;return this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){if(this._scheduled[e]!=null){clearTimeout(this._scheduled[e].expiration);delete this._scheduled[e];return true}else{return false}}async _free(e,t,r,n){var s,o;try{({running:o}=await this._store.__free__(e,r.weight));this.Events.trigger("debug",`Freed ${r.id}`,n);if(o===0&&this.empty()){return this.Events.trigger("idle")}}catch(e){s=e;return this.Events.trigger("error",s)}}_run(e,t,r){var n,s,o;t.doRun();n=this._clearGlobalState.bind(this,e);o=this._run.bind(this,e,t);s=this._free.bind(this,e,t);return this._scheduled[e]={timeout:setTimeout((()=>t.doExecute(this._limiter,n,o,s)),r),expiration:t.options.expiration!=null?setTimeout((function(){return t.doExpire(n,o,s)}),r+t.options.expiration):void 0,job:t}}_drainOne(e){return this._registerLock.schedule((()=>{var t,r,n,s,o;if(this.queued()===0){return this.Promise.resolve(null)}o=this._queues.getFirst();({options:s,args:t}=n=o.first());if(e!=null&&s.weight>e){return this.Promise.resolve(null)}this.Events.trigger("debug",`Draining ${s.id}`,{args:t,options:s});r=this._randomIndex();return this._store.__register__(r,s.weight,s.expiration).then((({success:e,wait:i,reservoir:a})=>{var c;this.Events.trigger("debug",`Drained ${s.id}`,{success:e,args:t,options:s});if(e){o.shift();c=this.empty();if(c){this.Events.trigger("empty")}if(a===0){this.Events.trigger("depleted",c)}this._run(r,n,i);return this.Promise.resolve(s.weight)}else{return this.Promise.resolve(null)}}))}))}_drainAll(e,t=0){return this._drainOne(e).then((r=>{var n;if(r!=null){n=e!=null?e-r:e;return this._drainAll(n,t+r)}else{return this.Promise.resolve(t)}})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(t){return t.doDrop({message:e})}))}stop(e={}){var t,r;e=ee.load(e,this.stopDefaults);r=e=>{var t;t=()=>{var t;t=this._states.counts;return t[0]+t[1]+t[2]+t[3]===e};return new this.Promise(((e,r)=>{if(t()){return e()}else{return this.on("done",(()=>{if(t()){this.removeAllListeners("done");return e()}}))}}))};t=e.dropWaitingJobs?(this._run=function(t,r){return r.doDrop({message:e.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var t,n,s;n=this._scheduled;for(t in n){s=n[t];if(this.jobStatus(s.job.options.id)==="RUNNING"){clearTimeout(s.timeout);clearTimeout(s.expiration);s.job.doDrop({message:e.dropErrorMessage})}}this._dropAllQueued(e.dropErrorMessage);return r(0)}))))):this.schedule({priority:$-1,weight:0},(()=>r(1)));this._receive=function(t){return t._reject(new Bottleneck.prototype.BottleneckError(e.enqueueErrorMessage))};this.stop=()=>this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called"));return t}async _addToQueue(e){var t,r,n,s,o,i,a;({args:t,options:s}=e);try{({reachedHWM:o,blocked:r,strategy:a}=await this._store.__submit__(this.queued(),s.weight))}catch(r){n=r;this.Events.trigger("debug",`Could not queue ${s.id}`,{args:t,options:s,error:n});e.doDrop({error:n});return false}if(r){e.doDrop();return true}else if(o){i=a===Bottleneck.prototype.strategy.LEAK?this._queues.shiftLastFrom(s.priority):a===Bottleneck.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(s.priority+1):a===Bottleneck.prototype.strategy.OVERFLOW?e:void 0;if(i!=null){i.doDrop()}if(i==null||a===Bottleneck.prototype.strategy.OVERFLOW){if(i==null){e.doDrop()}return o}}e.doQueue(o,r);this._queues.push(e);await this._drainAll();return o}_receive(e){if(this._states.jobStatus(e.options.id)!=null){e._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${e.options.id})`));return false}else{e.doReceive();return this._submitLock.schedule(this._addToQueue,e)}}submit(...e){var t,r,n,s,o,i,a;if(typeof e[0]==="function"){o=e,[r,...e]=o,[t]=te.call(e,-1);s=ee.load({},this.jobDefaults)}else{i=e,[s,r,...e]=i,[t]=te.call(e,-1);s=ee.load(s,this.jobDefaults)}a=(...e)=>new this.Promise((function(t,n){return r(...e,(function(...e){return(e[0]!=null?n:t)(e)}))}));n=new K(a,e,s,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise);n.promise.then((function(e){return typeof t==="function"?t(...e):void 0})).catch((function(e){if(Array.isArray(e)){return typeof t==="function"?t(...e):void 0}else{return typeof t==="function"?t(e):void 0}}));return this._receive(n)}schedule(...e){var t,r,n;if(typeof e[0]==="function"){[n,...e]=e;r={}}else{[r,n,...e]=e}t=new K(n,e,r,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise);this._receive(t);return t.promise}wrap(e){var t,r;t=this.schedule.bind(this);r=function(...r){return t(e.bind(this),...r)};r.withOptions=function(r,...n){return t(r,e,...n)};return r}async updateSettings(e={}){await this._store.__updateSettings__(ee.overwrite(e,this.storeDefaults));ee.overwrite(e,this.instanceDefaults,this);return this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}Bottleneck.default=Bottleneck;Bottleneck.Events=Y;Bottleneck.version=Bottleneck.prototype.version=V.version;Bottleneck.strategy=Bottleneck.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3};Bottleneck.BottleneckError=Bottleneck.prototype.BottleneckError=l;Bottleneck.Group=Bottleneck.prototype.Group=U;Bottleneck.RedisConnection=Bottleneck.prototype.RedisConnection=require$$2;Bottleneck.IORedisConnection=Bottleneck.prototype.IORedisConnection=require$$3;Bottleneck.Batcher=Bottleneck.prototype.Batcher=j;Bottleneck.prototype.jobDefaults={priority:q,weight:1,expiration:null,id:""};Bottleneck.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Bottleneck.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null};Bottleneck.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250};Bottleneck.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:false,connection:null};Bottleneck.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:true,trackDoneStatus:false,Promise:Promise};Bottleneck.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:true,dropErrorMessage:"This limiter has been stopped."};return Bottleneck}.call(e);var re=H;var ne=re;return ne}))},91769:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});class Deprecation extends Error{constructor(e){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="Deprecation"}}t.Deprecation=Deprecation},18889:(e,t,r)=>{const n=r(79896);const s=r(16928);const o=r(70857);const i=r(76982);const a=r(80056);const c=a.version;const u=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function parse(e){const t={};let r=e.toString();r=r.replace(/\r\n?/gm,"\n");let n;while((n=u.exec(r))!=null){const e=n[1];let r=n[2]||"";r=r.trim();const s=r[0];r=r.replace(/^(['"`])([\s\S]*)\1$/gm,"$2");if(s==='"'){r=r.replace(/\\n/g,"\n");r=r.replace(/\\r/g,"\r")}t[e]=r}return t}function _parseVault(e){const t=_vaultPath(e);const r=A.configDotenv({path:t});if(!r.parsed){const e=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);e.code="MISSING_DATA";throw e}const n=_dotenvKey(e).split(",");const s=n.length;let o;for(let e=0;e=s){throw t}}}return A.parse(o)}function _log(e){console.log(`[dotenv@${c}][INFO] ${e}`)}function _warn(e){console.log(`[dotenv@${c}][WARN] ${e}`)}function _debug(e){console.log(`[dotenv@${c}][DEBUG] ${e}`)}function _dotenvKey(e){if(e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0){return e.DOTENV_KEY}if(process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0){return process.env.DOTENV_KEY}return""}function _instructions(e,t){let r;try{r=new URL(t)}catch(e){if(e.code==="ERR_INVALID_URL"){const e=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");e.code="INVALID_DOTENV_KEY";throw e}throw e}const n=r.password;if(!n){const e=new Error("INVALID_DOTENV_KEY: Missing key part");e.code="INVALID_DOTENV_KEY";throw e}const s=r.searchParams.get("environment");if(!s){const e=new Error("INVALID_DOTENV_KEY: Missing environment part");e.code="INVALID_DOTENV_KEY";throw e}const o=`DOTENV_VAULT_${s.toUpperCase()}`;const i=e.parsed[o];if(!i){const e=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);e.code="NOT_FOUND_DOTENV_ENVIRONMENT";throw e}return{ciphertext:i,key:n}}function _vaultPath(e){let t=null;if(e&&e.path&&e.path.length>0){if(Array.isArray(e.path)){for(const r of e.path){if(n.existsSync(r)){t=r.endsWith(".vault")?r:`${r}.vault`}}}else{t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`}}else{t=s.resolve(process.cwd(),".env.vault")}if(n.existsSync(t)){return t}return null}function _resolveHome(e){return e[0]==="~"?s.join(o.homedir(),e.slice(1)):e}function _configVault(e){_log("Loading env from encrypted .env.vault");const t=A._parseVault(e);let r=process.env;if(e&&e.processEnv!=null){r=e.processEnv}A.populate(r,t,e);return{parsed:t}}function configDotenv(e){const t=s.resolve(process.cwd(),".env");let r="utf8";const o=Boolean(e&&e.debug);if(e&&e.encoding){r=e.encoding}else{if(o){_debug("No encoding is specified. UTF-8 is used by default")}}let i=[t];if(e&&e.path){if(!Array.isArray(e.path)){i=[_resolveHome(e.path)]}else{i=[];for(const t of e.path){i.push(_resolveHome(t))}}}let a;const c={};for(const t of i){try{const s=A.parse(n.readFileSync(t,{encoding:r}));A.populate(c,s,e)}catch(e){if(o){_debug(`Failed to load ${t} ${e.message}`)}a=e}}let u=process.env;if(e&&e.processEnv!=null){u=e.processEnv}A.populate(u,c,e);if(a){return{parsed:c,error:a}}else{return{parsed:c}}}function config(e){if(_dotenvKey(e).length===0){return A.configDotenv(e)}const t=_vaultPath(e);if(!t){_warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`);return A.configDotenv(e)}return A._configVault(e)}function decrypt(e,t){const r=Buffer.from(t.slice(-64),"hex");let n=Buffer.from(e,"base64");const s=n.subarray(0,12);const o=n.subarray(-16);n=n.subarray(12,-16);try{const e=i.createDecipheriv("aes-256-gcm",r,s);e.setAuthTag(o);return`${e.update(n)}${e.final()}`}catch(e){const t=e instanceof RangeError;const r=e.message==="Invalid key length";const n=e.message==="Unsupported state or unable to authenticate data";if(t||r){const e=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");e.code="INVALID_DOTENV_KEY";throw e}else if(n){const e=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");e.code="DECRYPTION_FAILED";throw e}else{throw e}}}function populate(e,t,r={}){const n=Boolean(r&&r.debug);const s=Boolean(r&&r.override);if(typeof t!=="object"){const e=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");e.code="OBJECT_REQUIRED";throw e}for(const r of Object.keys(t)){if(Object.prototype.hasOwnProperty.call(e,r)){if(s===true){e[r]=t[r]}if(n){if(s===true){_debug(`"${r}" is already defined and WAS overwritten`)}else{_debug(`"${r}" is already defined and was NOT overwritten`)}}}else{e[r]=t[r]}}}const A={configDotenv:configDotenv,_configVault:_configVault,_parseVault:_parseVault,config:config,decrypt:decrypt,parse:parse,populate:populate};e.exports.configDotenv=A.configDotenv;e.exports._configVault=A._configVault;e.exports._parseVault=A._parseVault;e.exports.config=A.config;e.exports.decrypt=A.decrypt;e.exports.parse=A.parse;e.exports.populate=A.populate;e.exports=A},31240:function(e,t,r){(function(e,n){true?n(t,r(61860),r(17645)):0})(this,(function(e,t,r){"use strict";var n=new Map;var s=new Map;var o=true;var i=false;function normalize(e){return e.replace(/[\s,]+/g," ").trim()}function cacheKeyFromLoc(e){return normalize(e.source.body.substring(e.start,e.end))}function processFragments(e){var r=new Set;var n=[];e.definitions.forEach((function(e){if(e.kind==="FragmentDefinition"){var t=e.name.value;var i=cacheKeyFromLoc(e.loc);var a=s.get(t);if(a&&!a.has(i)){if(o){console.warn("Warning: fragment with name "+t+" already exists.\n"+"graphql-tag enforces all fragment names across your application to be unique; read more about\n"+"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names")}}else if(!a){s.set(t,a=new Set)}a.add(i);if(!r.has(i)){r.add(i);n.push(e)}}else{n.push(e)}}));return t.__assign(t.__assign({},e),{definitions:n})}function stripLoc(e){var t=new Set(e.definitions);t.forEach((function(e){if(e.loc)delete e.loc;Object.keys(e).forEach((function(r){var n=e[r];if(n&&typeof n==="object"){t.add(n)}}))}));var r=e.loc;if(r){delete r.startToken;delete r.endToken}return e}function parseDocument(e){var t=normalize(e);if(!n.has(t)){var s=r.parse(e,{experimentalFragmentVariables:i,allowLegacyFragmentVariables:i});if(!s||s.kind!=="Document"){throw new Error("Not a valid GraphQL document.")}n.set(t,stripLoc(processFragments(s)))}return n.get(t)}function gql(e){var t=[];for(var r=1;r{e.exports=r(31240).gql},15939:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLError=void 0;t.formatError=formatError;t.printError=printError;var n=r(20892);var s=r(72245);var o=r(6512);function toNormalizedOptions(e){const t=e[0];if(t==null||"kind"in t||"length"in t){return{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}}return t}class GraphQLError extends Error{constructor(e,...t){var r,o,i;const{nodes:a,source:c,positions:u,path:A,originalError:l,extensions:d}=toNormalizedOptions(t);super(e);this.name="GraphQLError";this.path=A!==null&&A!==void 0?A:undefined;this.originalError=l!==null&&l!==void 0?l:undefined;this.nodes=undefinedIfEmpty(Array.isArray(a)?a:a?[a]:undefined);const p=undefinedIfEmpty((r=this.nodes)===null||r===void 0?void 0:r.map((e=>e.loc)).filter((e=>e!=null)));this.source=c!==null&&c!==void 0?c:p===null||p===void 0?void 0:(o=p[0])===null||o===void 0?void 0:o.source;this.positions=u!==null&&u!==void 0?u:p===null||p===void 0?void 0:p.map((e=>e.start));this.locations=u&&c?u.map((e=>(0,s.getLocation)(c,e))):p===null||p===void 0?void 0:p.map((e=>(0,s.getLocation)(e.source,e.start)));const g=(0,n.isObjectLike)(l===null||l===void 0?void 0:l.extensions)?l===null||l===void 0?void 0:l.extensions:undefined;this.extensions=(i=d!==null&&d!==void 0?d:g)!==null&&i!==void 0?i:Object.create(null);Object.defineProperties(this,{message:{writable:true,enumerable:true},name:{enumerable:false},nodes:{enumerable:false},source:{enumerable:false},positions:{enumerable:false},originalError:{enumerable:false}});if(l!==null&&l!==void 0&&l.stack){Object.defineProperty(this,"stack",{value:l.stack,writable:true,configurable:true})}else if(Error.captureStackTrace){Error.captureStackTrace(this,GraphQLError)}else{Object.defineProperty(this,"stack",{value:Error().stack,writable:true,configurable:true})}}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let e=this.message;if(this.nodes){for(const t of this.nodes){if(t.loc){e+="\n\n"+(0,o.printLocation)(t.loc)}}}else if(this.source&&this.locations){for(const t of this.locations){e+="\n\n"+(0,o.printSourceLocation)(this.source,t)}}return e}toJSON(){const e={message:this.message};if(this.locations!=null){e.locations=this.locations}if(this.path!=null){e.path=this.path}if(this.extensions!=null&&Object.keys(this.extensions).length>0){e.extensions=this.extensions}return e}}t.GraphQLError=GraphQLError;function undefinedIfEmpty(e){return e===undefined||e.length===0?undefined:e}function printError(e){return e.toString()}function formatError(e){return e.toJSON()}},79888:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"GraphQLError",{enumerable:true,get:function(){return n.GraphQLError}});Object.defineProperty(t,"formatError",{enumerable:true,get:function(){return n.formatError}});Object.defineProperty(t,"locatedError",{enumerable:true,get:function(){return o.locatedError}});Object.defineProperty(t,"printError",{enumerable:true,get:function(){return n.printError}});Object.defineProperty(t,"syntaxError",{enumerable:true,get:function(){return s.syntaxError}});var n=r(15939);var s=r(89619);var o=r(87550)},87550:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.locatedError=locatedError;var n=r(39615);var s=r(15939);function locatedError(e,t,r){var o;const i=(0,n.toError)(e);if(isLocatedGraphQLError(i)){return i}return new s.GraphQLError(i.message,{nodes:(o=i.nodes)!==null&&o!==void 0?o:t,source:i.source,positions:i.positions,path:r,originalError:i})}function isLocatedGraphQLError(e){return Array.isArray(e.path)}},89619:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.syntaxError=syntaxError;var n=r(15939);function syntaxError(e,t,r){return new n.GraphQLError(`Syntax Error: ${r}`,{source:e,positions:[t]})}},77611:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.collectFields=collectFields;t.collectSubfields=collectSubfields;var n=r(11123);var s=r(84169);var o=r(21058);var i=r(76738);var a=r(13604);function collectFields(e,t,r,n,s){const o=new Map;collectFieldsImpl(e,t,r,n,s,o,new Set);return o}function collectSubfields(e,t,r,n,s){const o=new Map;const i=new Set;for(const a of s){if(a.selectionSet){collectFieldsImpl(e,t,r,n,a.selectionSet,o,i)}}return o}function collectFieldsImpl(e,t,r,s,o,i,a){for(const c of o.selections){switch(c.kind){case n.Kind.FIELD:{if(!shouldIncludeNode(r,c)){continue}const e=getFieldEntryKey(c);const t=i.get(e);if(t!==undefined){t.push(c)}else{i.set(e,[c])}break}case n.Kind.INLINE_FRAGMENT:{if(!shouldIncludeNode(r,c)||!doesFragmentConditionMatch(e,c,s)){continue}collectFieldsImpl(e,t,r,s,c.selectionSet,i,a);break}case n.Kind.FRAGMENT_SPREAD:{const n=c.name.value;if(a.has(n)||!shouldIncludeNode(r,c)){continue}a.add(n);const o=t[n];if(!o||!doesFragmentConditionMatch(e,o,s)){continue}collectFieldsImpl(e,t,r,s,o.selectionSet,i,a);break}}}}function shouldIncludeNode(e,t){const r=(0,a.getDirectiveValues)(o.GraphQLSkipDirective,t,e);if((r===null||r===void 0?void 0:r.if)===true){return false}const n=(0,a.getDirectiveValues)(o.GraphQLIncludeDirective,t,e);if((n===null||n===void 0?void 0:n.if)===false){return false}return true}function doesFragmentConditionMatch(e,t,r){const n=t.typeCondition;if(!n){return true}const o=(0,i.typeFromAST)(e,n);if(o===r){return true}if((0,s.isAbstractType)(o)){return e.isSubType(o,r)}return false}function getFieldEntryKey(e){return e.alias?e.alias.value:e.name.value}},98923:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidExecutionArguments=assertValidExecutionArguments;t.buildExecutionContext=buildExecutionContext;t.buildResolveInfo=buildResolveInfo;t.defaultTypeResolver=t.defaultFieldResolver=void 0;t.execute=execute;t.executeSync=executeSync;t.getFieldDef=getFieldDef;var n=r(65383);var s=r(25742);var o=r(33650);var i=r(17341);var a=r(20892);var c=r(4091);var u=r(38141);var A=r(73155);var l=r(65395);var d=r(71369);var p=r(15939);var g=r(87550);var h=r(22740);var m=r(11123);var E=r(84169);var y=r(10317);var I=r(33902);var C=r(77611);var b=r(13604);const B=(0,u.memoize3)(((e,t,r)=>(0,C.collectSubfields)(e.schema,e.fragments,e.variableValues,t,r)));function execute(e){arguments.length<2||(0,n.devAssert)(false,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");const{schema:t,document:r,variableValues:s,rootValue:o}=e;assertValidExecutionArguments(t,r,s);const i=buildExecutionContext(e);if(!("schema"in i)){return{errors:i}}try{const{operation:e}=i;const t=executeOperation(i,e,o);if((0,c.isPromise)(t)){return t.then((e=>buildResponse(e,i.errors)),(e=>{i.errors.push(e);return buildResponse(null,i.errors)}))}return buildResponse(t,i.errors)}catch(e){i.errors.push(e);return buildResponse(null,i.errors)}}function executeSync(e){const t=execute(e);if((0,c.isPromise)(t)){throw new Error("GraphQL execution failed to complete synchronously.")}return t}function buildResponse(e,t){return t.length===0?{data:e}:{errors:t,data:e}}function assertValidExecutionArguments(e,t,r){t||(0,n.devAssert)(false,"Must provide document.");(0,I.assertValidSchema)(e);r==null||(0,a.isObjectLike)(r)||(0,n.devAssert)(false,"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.")}function buildExecutionContext(e){var t,r;const{schema:n,document:s,rootValue:o,contextValue:i,variableValues:a,operationName:c,fieldResolver:u,typeResolver:A,subscribeFieldResolver:l}=e;let d;const g=Object.create(null);for(const e of s.definitions){switch(e.kind){case m.Kind.OPERATION_DEFINITION:if(c==null){if(d!==undefined){return[new p.GraphQLError("Must provide operation name if query contains multiple operations.")]}d=e}else if(((t=e.name)===null||t===void 0?void 0:t.value)===c){d=e}break;case m.Kind.FRAGMENT_DEFINITION:g[e.name.value]=e;break;default:}}if(!d){if(c!=null){return[new p.GraphQLError(`Unknown operation named "${c}".`)]}return[new p.GraphQLError("Must provide an operation.")]}const h=(r=d.variableDefinitions)!==null&&r!==void 0?r:[];const E=(0,b.getVariableValues)(n,h,a!==null&&a!==void 0?a:{},{maxErrors:50});if(E.errors){return E.errors}return{schema:n,fragments:g,rootValue:o,contextValue:i,operation:d,variableValues:E.coerced,fieldResolver:u!==null&&u!==void 0?u:defaultFieldResolver,typeResolver:A!==null&&A!==void 0?A:defaultTypeResolver,subscribeFieldResolver:l!==null&&l!==void 0?l:defaultFieldResolver,errors:[]}}function executeOperation(e,t,r){const n=e.schema.getRootType(t.operation);if(n==null){throw new p.GraphQLError(`Schema is not configured to execute ${t.operation} operation.`,{nodes:t})}const s=(0,C.collectFields)(e.schema,e.fragments,e.variableValues,n,t.selectionSet);const o=undefined;switch(t.operation){case h.OperationTypeNode.QUERY:return executeFields(e,n,r,o,s);case h.OperationTypeNode.MUTATION:return executeFieldsSerially(e,n,r,o,s);case h.OperationTypeNode.SUBSCRIPTION:return executeFields(e,n,r,o,s)}}function executeFieldsSerially(e,t,r,n,s){return(0,d.promiseReduce)(s.entries(),((s,[o,i])=>{const a=(0,A.addPath)(n,o,t.name);const u=executeField(e,t,r,i,a);if(u===undefined){return s}if((0,c.isPromise)(u)){return u.then((e=>{s[o]=e;return s}))}s[o]=u;return s}),Object.create(null))}function executeFields(e,t,r,n,s){const o=Object.create(null);let i=false;try{for(const[a,u]of s.entries()){const s=(0,A.addPath)(n,a,t.name);const l=executeField(e,t,r,u,s);if(l!==undefined){o[a]=l;if((0,c.isPromise)(l)){i=true}}}}catch(e){if(i){return(0,l.promiseForObject)(o).finally((()=>{throw e}))}throw e}if(!i){return o}return(0,l.promiseForObject)(o)}function executeField(e,t,r,n,s){var o;const i=getFieldDef(e.schema,t,n[0]);if(!i){return}const a=i.type;const u=(o=i.resolve)!==null&&o!==void 0?o:e.fieldResolver;const l=buildResolveInfo(e,i,n,t,s);try{const t=(0,b.getArgumentValues)(i,n[0],e.variableValues);const o=e.contextValue;const d=u(r,t,o,l);let p;if((0,c.isPromise)(d)){p=d.then((t=>completeValue(e,a,n,l,s,t)))}else{p=completeValue(e,a,n,l,s,d)}if((0,c.isPromise)(p)){return p.then(undefined,(t=>{const r=(0,g.locatedError)(t,n,(0,A.pathToArray)(s));return handleFieldError(r,a,e)}))}return p}catch(t){const r=(0,g.locatedError)(t,n,(0,A.pathToArray)(s));return handleFieldError(r,a,e)}}function buildResolveInfo(e,t,r,n,s){return{fieldName:t.name,fieldNodes:r,returnType:t.type,parentType:n,path:s,schema:e.schema,fragments:e.fragments,rootValue:e.rootValue,operation:e.operation,variableValues:e.variableValues}}function handleFieldError(e,t,r){if((0,E.isNonNullType)(t)){throw e}r.errors.push(e);return null}function completeValue(e,t,r,n,i,a){if(a instanceof Error){throw a}if((0,E.isNonNullType)(t)){const s=completeValue(e,t.ofType,r,n,i,a);if(s===null){throw new Error(`Cannot return null for non-nullable field ${n.parentType.name}.${n.fieldName}.`)}return s}if(a==null){return null}if((0,E.isListType)(t)){return completeListValue(e,t,r,n,i,a)}if((0,E.isLeafType)(t)){return completeLeafValue(t,a)}if((0,E.isAbstractType)(t)){return completeAbstractValue(e,t,r,n,i,a)}if((0,E.isObjectType)(t)){return completeObjectValue(e,t,r,n,i,a)}false||(0,o.invariant)(false,"Cannot complete value of unexpected output type: "+(0,s.inspect)(t))}function completeListValue(e,t,r,n,s,o){if(!(0,i.isIterableObject)(o)){throw new p.GraphQLError(`Expected Iterable, but did not find one for field "${n.parentType.name}.${n.fieldName}".`)}const a=t.ofType;let u=false;const l=Array.from(o,((t,o)=>{const i=(0,A.addPath)(s,o,undefined);try{let s;if((0,c.isPromise)(t)){s=t.then((t=>completeValue(e,a,r,n,i,t)))}else{s=completeValue(e,a,r,n,i,t)}if((0,c.isPromise)(s)){u=true;return s.then(undefined,(t=>{const n=(0,g.locatedError)(t,r,(0,A.pathToArray)(i));return handleFieldError(n,a,e)}))}return s}catch(t){const n=(0,g.locatedError)(t,r,(0,A.pathToArray)(i));return handleFieldError(n,a,e)}}));return u?Promise.all(l):l}function completeLeafValue(e,t){const r=e.serialize(t);if(r==null){throw new Error(`Expected \`${(0,s.inspect)(e)}.serialize(${(0,s.inspect)(t)})\` to `+`return non-nullable value, returned: ${(0,s.inspect)(r)}`)}return r}function completeAbstractValue(e,t,r,n,s,o){var i;const a=(i=t.resolveType)!==null&&i!==void 0?i:e.typeResolver;const u=e.contextValue;const A=a(o,u,n,t);if((0,c.isPromise)(A)){return A.then((i=>completeObjectValue(e,ensureValidRuntimeType(i,e,t,r,n,o),r,n,s,o)))}return completeObjectValue(e,ensureValidRuntimeType(A,e,t,r,n,o),r,n,s,o)}function ensureValidRuntimeType(e,t,r,n,o,i){if(e==null){throw new p.GraphQLError(`Abstract type "${r.name}" must resolve to an Object type at runtime for field "${o.parentType.name}.${o.fieldName}". Either the "${r.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`,n)}if((0,E.isObjectType)(e)){throw new p.GraphQLError("Support for returning GraphQLObjectType from resolveType was removed in graphql-js@16.0.0 please return type name instead.")}if(typeof e!=="string"){throw new p.GraphQLError(`Abstract type "${r.name}" must resolve to an Object type at runtime for field "${o.parentType.name}.${o.fieldName}" with `+`value ${(0,s.inspect)(i)}, received "${(0,s.inspect)(e)}".`)}const a=t.schema.getType(e);if(a==null){throw new p.GraphQLError(`Abstract type "${r.name}" was resolved to a type "${e}" that does not exist inside the schema.`,{nodes:n})}if(!(0,E.isObjectType)(a)){throw new p.GraphQLError(`Abstract type "${r.name}" was resolved to a non-object type "${e}".`,{nodes:n})}if(!t.schema.isSubType(r,a)){throw new p.GraphQLError(`Runtime Object type "${a.name}" is not a possible type for "${r.name}".`,{nodes:n})}return a}function completeObjectValue(e,t,r,n,s,o){const i=B(e,t,r);if(t.isTypeOf){const a=t.isTypeOf(o,e.contextValue,n);if((0,c.isPromise)(a)){return a.then((n=>{if(!n){throw invalidReturnTypeError(t,o,r)}return executeFields(e,t,o,s,i)}))}if(!a){throw invalidReturnTypeError(t,o,r)}}return executeFields(e,t,o,s,i)}function invalidReturnTypeError(e,t,r){return new p.GraphQLError(`Expected value of type "${e.name}" but got: ${(0,s.inspect)(t)}.`,{nodes:r})}const defaultTypeResolver=function(e,t,r,n){if((0,a.isObjectLike)(e)&&typeof e.__typename==="string"){return e.__typename}const s=r.schema.getPossibleTypes(n);const o=[];for(let n=0;n{for(let t=0;t{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"createSourceEventStream",{enumerable:true,get:function(){return o.createSourceEventStream}});Object.defineProperty(t,"defaultFieldResolver",{enumerable:true,get:function(){return s.defaultFieldResolver}});Object.defineProperty(t,"defaultTypeResolver",{enumerable:true,get:function(){return s.defaultTypeResolver}});Object.defineProperty(t,"execute",{enumerable:true,get:function(){return s.execute}});Object.defineProperty(t,"executeSync",{enumerable:true,get:function(){return s.executeSync}});Object.defineProperty(t,"getArgumentValues",{enumerable:true,get:function(){return i.getArgumentValues}});Object.defineProperty(t,"getDirectiveValues",{enumerable:true,get:function(){return i.getDirectiveValues}});Object.defineProperty(t,"getVariableValues",{enumerable:true,get:function(){return i.getVariableValues}});Object.defineProperty(t,"responsePathAsArray",{enumerable:true,get:function(){return n.pathToArray}});Object.defineProperty(t,"subscribe",{enumerable:true,get:function(){return o.subscribe}});var n=r(73155);var s=r(98923);var o=r(48540);var i=r(13604)},974:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.mapAsyncIterator=mapAsyncIterator;function mapAsyncIterator(e,t){const r=e[Symbol.asyncIterator]();async function mapResult(e){if(e.done){return e}try{return{value:await t(e.value),done:false}}catch(e){if(typeof r.return==="function"){try{await r.return()}catch(e){}}throw e}}return{async next(){return mapResult(await r.next())},async return(){return typeof r.return==="function"?mapResult(await r.return()):{value:undefined,done:true}},async throw(e){if(typeof r.throw==="function"){return mapResult(await r.throw(e))}throw e},[Symbol.asyncIterator](){return this}}}},48540:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.createSourceEventStream=createSourceEventStream;t.subscribe=subscribe;var n=r(65383);var s=r(25742);var o=r(34068);var i=r(73155);var a=r(15939);var c=r(87550);var u=r(77611);var A=r(98923);var l=r(974);var d=r(13604);async function subscribe(e){arguments.length<2||(0,n.devAssert)(false,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");const t=await createSourceEventStream(e);if(!(0,o.isAsyncIterable)(t)){return t}const mapSourceToResponse=t=>(0,A.execute)({...e,rootValue:t});return(0,l.mapAsyncIterator)(t,mapSourceToResponse)}function toNormalizedArgs(e){const t=e[0];if(t&&"document"in t){return t}return{schema:t,document:e[1],rootValue:e[2],contextValue:e[3],variableValues:e[4],operationName:e[5],subscribeFieldResolver:e[6]}}async function createSourceEventStream(...e){const t=toNormalizedArgs(e);const{schema:r,document:n,variableValues:i}=t;(0,A.assertValidExecutionArguments)(r,n,i);const c=(0,A.buildExecutionContext)(t);if(!("schema"in c)){return{errors:c}}try{const e=await executeSubscription(c);if(!(0,o.isAsyncIterable)(e)){throw new Error("Subscription field must return Async Iterable. "+`Received: ${(0,s.inspect)(e)}.`)}return e}catch(e){if(e instanceof a.GraphQLError){return{errors:[e]}}throw e}}async function executeSubscription(e){const{schema:t,fragments:r,operation:n,variableValues:s,rootValue:o}=e;const l=t.getSubscriptionType();if(l==null){throw new a.GraphQLError("Schema is not configured to execute subscription operation.",{nodes:n})}const p=(0,u.collectFields)(t,r,s,l,n.selectionSet);const[g,h]=[...p.entries()][0];const m=(0,A.getFieldDef)(t,l,h[0]);if(!m){const e=h[0].name.value;throw new a.GraphQLError(`The subscription field "${e}" is not defined.`,{nodes:h})}const E=(0,i.addPath)(undefined,g,l.name);const y=(0,A.buildResolveInfo)(e,m,h,l,E);try{var I;const t=(0,d.getArgumentValues)(m,h[0],s);const r=e.contextValue;const n=(I=m.subscribe)!==null&&I!==void 0?I:e.subscribeFieldResolver;const i=await n(o,t,r,y);if(i instanceof Error){throw i}return i}catch(e){throw(0,c.locatedError)(e,h,(0,i.pathToArray)(E))}}},13604:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getArgumentValues=getArgumentValues;t.getDirectiveValues=getDirectiveValues;t.getVariableValues=getVariableValues;var n=r(25742);var s=r(37579);var o=r(68373);var i=r(15939);var a=r(11123);var c=r(59936);var u=r(84169);var A=r(67572);var l=r(76738);var d=r(46495);function getVariableValues(e,t,r,n){const s=[];const o=n===null||n===void 0?void 0:n.maxErrors;try{const n=coerceVariableValues(e,t,r,(e=>{if(o!=null&&s.length>=o){throw new i.GraphQLError("Too many errors processing variables, error limit reached. Execution aborted.")}s.push(e)}));if(s.length===0){return{coerced:n}}}catch(e){s.push(e)}return{errors:s}}function coerceVariableValues(e,t,r,s){const a={};for(const p of t){const t=p.variable.name.value;const g=(0,l.typeFromAST)(e,p.type);if(!(0,u.isInputType)(g)){const e=(0,c.print)(p.type);s(new i.GraphQLError(`Variable "$${t}" expected value of type "${e}" which cannot be used as an input type.`,{nodes:p.type}));continue}if(!hasOwnProperty(r,t)){if(p.defaultValue){a[t]=(0,d.valueFromAST)(p.defaultValue,g)}else if((0,u.isNonNullType)(g)){const e=(0,n.inspect)(g);s(new i.GraphQLError(`Variable "$${t}" of required type "${e}" was not provided.`,{nodes:p}))}continue}const h=r[t];if(h===null&&(0,u.isNonNullType)(g)){const e=(0,n.inspect)(g);s(new i.GraphQLError(`Variable "$${t}" of non-null type "${e}" must not be null.`,{nodes:p}));continue}a[t]=(0,A.coerceInputValue)(h,g,((e,r,a)=>{let c=`Variable "$${t}" got invalid value `+(0,n.inspect)(r);if(e.length>0){c+=` at "${t}${(0,o.printPathArray)(e)}"`}s(new i.GraphQLError(c+"; "+a.message,{nodes:p,originalError:a}))}))}return a}function getArgumentValues(e,t,r){var o;const A={};const l=(o=t.arguments)!==null&&o!==void 0?o:[];const p=(0,s.keyMap)(l,(e=>e.name.value));for(const s of e.args){const e=s.name;const o=s.type;const l=p[e];if(!l){if(s.defaultValue!==undefined){A[e]=s.defaultValue}else if((0,u.isNonNullType)(o)){throw new i.GraphQLError(`Argument "${e}" of required type "${(0,n.inspect)(o)}" `+"was not provided.",{nodes:t})}continue}const g=l.value;let h=g.kind===a.Kind.NULL;if(g.kind===a.Kind.VARIABLE){const t=g.name.value;if(r==null||!hasOwnProperty(r,t)){if(s.defaultValue!==undefined){A[e]=s.defaultValue}else if((0,u.isNonNullType)(o)){throw new i.GraphQLError(`Argument "${e}" of required type "${(0,n.inspect)(o)}" `+`was provided the variable "$${t}" which was not provided a runtime value.`,{nodes:g})}continue}h=r[t]==null}if(h&&(0,u.isNonNullType)(o)){throw new i.GraphQLError(`Argument "${e}" of non-null type "${(0,n.inspect)(o)}" `+"must not be null.",{nodes:g})}const m=(0,d.valueFromAST)(g,o,r);if(m===undefined){throw new i.GraphQLError(`Argument "${e}" has invalid value ${(0,c.print)(g)}.`,{nodes:g})}A[e]=m}return A}function getDirectiveValues(e,t,r){var n;const s=(n=t.directives)===null||n===void 0?void 0:n.find((t=>t.name.value===e.name));if(s){return getArgumentValues(e,s,r)}}function hasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},66352:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.graphql=graphql;t.graphqlSync=graphqlSync;var n=r(65383);var s=r(4091);var o=r(14929);var i=r(33902);var a=r(77063);var c=r(98923);function graphql(e){return new Promise((t=>t(graphqlImpl(e))))}function graphqlSync(e){const t=graphqlImpl(e);if((0,s.isPromise)(t)){throw new Error("GraphQL execution failed to complete synchronously.")}return t}function graphqlImpl(e){arguments.length<2||(0,n.devAssert)(false,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");const{schema:t,source:r,rootValue:s,contextValue:u,variableValues:A,operationName:l,fieldResolver:d,typeResolver:p}=e;const g=(0,i.validateSchema)(t);if(g.length>0){return{errors:g}}let h;try{h=(0,o.parse)(r)}catch(e){return{errors:[e]}}const m=(0,a.validate)(t,h);if(m.length>0){return{errors:m}}return(0,c.execute)({schema:t,document:h,rootValue:s,contextValue:u,variableValues:A,operationName:l,fieldResolver:d,typeResolver:p})}},17645:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"BREAK",{enumerable:true,get:function(){return i.BREAK}});Object.defineProperty(t,"BreakingChangeType",{enumerable:true,get:function(){return A.BreakingChangeType}});Object.defineProperty(t,"DEFAULT_DEPRECATION_REASON",{enumerable:true,get:function(){return o.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(t,"DangerousChangeType",{enumerable:true,get:function(){return A.DangerousChangeType}});Object.defineProperty(t,"DirectiveLocation",{enumerable:true,get:function(){return i.DirectiveLocation}});Object.defineProperty(t,"ExecutableDefinitionsRule",{enumerable:true,get:function(){return c.ExecutableDefinitionsRule}});Object.defineProperty(t,"FieldsOnCorrectTypeRule",{enumerable:true,get:function(){return c.FieldsOnCorrectTypeRule}});Object.defineProperty(t,"FragmentsOnCompositeTypesRule",{enumerable:true,get:function(){return c.FragmentsOnCompositeTypesRule}});Object.defineProperty(t,"GRAPHQL_MAX_INT",{enumerable:true,get:function(){return o.GRAPHQL_MAX_INT}});Object.defineProperty(t,"GRAPHQL_MIN_INT",{enumerable:true,get:function(){return o.GRAPHQL_MIN_INT}});Object.defineProperty(t,"GraphQLBoolean",{enumerable:true,get:function(){return o.GraphQLBoolean}});Object.defineProperty(t,"GraphQLDeprecatedDirective",{enumerable:true,get:function(){return o.GraphQLDeprecatedDirective}});Object.defineProperty(t,"GraphQLDirective",{enumerable:true,get:function(){return o.GraphQLDirective}});Object.defineProperty(t,"GraphQLEnumType",{enumerable:true,get:function(){return o.GraphQLEnumType}});Object.defineProperty(t,"GraphQLError",{enumerable:true,get:function(){return u.GraphQLError}});Object.defineProperty(t,"GraphQLFloat",{enumerable:true,get:function(){return o.GraphQLFloat}});Object.defineProperty(t,"GraphQLID",{enumerable:true,get:function(){return o.GraphQLID}});Object.defineProperty(t,"GraphQLIncludeDirective",{enumerable:true,get:function(){return o.GraphQLIncludeDirective}});Object.defineProperty(t,"GraphQLInputObjectType",{enumerable:true,get:function(){return o.GraphQLInputObjectType}});Object.defineProperty(t,"GraphQLInt",{enumerable:true,get:function(){return o.GraphQLInt}});Object.defineProperty(t,"GraphQLInterfaceType",{enumerable:true,get:function(){return o.GraphQLInterfaceType}});Object.defineProperty(t,"GraphQLList",{enumerable:true,get:function(){return o.GraphQLList}});Object.defineProperty(t,"GraphQLNonNull",{enumerable:true,get:function(){return o.GraphQLNonNull}});Object.defineProperty(t,"GraphQLObjectType",{enumerable:true,get:function(){return o.GraphQLObjectType}});Object.defineProperty(t,"GraphQLOneOfDirective",{enumerable:true,get:function(){return o.GraphQLOneOfDirective}});Object.defineProperty(t,"GraphQLScalarType",{enumerable:true,get:function(){return o.GraphQLScalarType}});Object.defineProperty(t,"GraphQLSchema",{enumerable:true,get:function(){return o.GraphQLSchema}});Object.defineProperty(t,"GraphQLSkipDirective",{enumerable:true,get:function(){return o.GraphQLSkipDirective}});Object.defineProperty(t,"GraphQLSpecifiedByDirective",{enumerable:true,get:function(){return o.GraphQLSpecifiedByDirective}});Object.defineProperty(t,"GraphQLString",{enumerable:true,get:function(){return o.GraphQLString}});Object.defineProperty(t,"GraphQLUnionType",{enumerable:true,get:function(){return o.GraphQLUnionType}});Object.defineProperty(t,"Kind",{enumerable:true,get:function(){return i.Kind}});Object.defineProperty(t,"KnownArgumentNamesRule",{enumerable:true,get:function(){return c.KnownArgumentNamesRule}});Object.defineProperty(t,"KnownDirectivesRule",{enumerable:true,get:function(){return c.KnownDirectivesRule}});Object.defineProperty(t,"KnownFragmentNamesRule",{enumerable:true,get:function(){return c.KnownFragmentNamesRule}});Object.defineProperty(t,"KnownTypeNamesRule",{enumerable:true,get:function(){return c.KnownTypeNamesRule}});Object.defineProperty(t,"Lexer",{enumerable:true,get:function(){return i.Lexer}});Object.defineProperty(t,"Location",{enumerable:true,get:function(){return i.Location}});Object.defineProperty(t,"LoneAnonymousOperationRule",{enumerable:true,get:function(){return c.LoneAnonymousOperationRule}});Object.defineProperty(t,"LoneSchemaDefinitionRule",{enumerable:true,get:function(){return c.LoneSchemaDefinitionRule}});Object.defineProperty(t,"MaxIntrospectionDepthRule",{enumerable:true,get:function(){return c.MaxIntrospectionDepthRule}});Object.defineProperty(t,"NoDeprecatedCustomRule",{enumerable:true,get:function(){return c.NoDeprecatedCustomRule}});Object.defineProperty(t,"NoFragmentCyclesRule",{enumerable:true,get:function(){return c.NoFragmentCyclesRule}});Object.defineProperty(t,"NoSchemaIntrospectionCustomRule",{enumerable:true,get:function(){return c.NoSchemaIntrospectionCustomRule}});Object.defineProperty(t,"NoUndefinedVariablesRule",{enumerable:true,get:function(){return c.NoUndefinedVariablesRule}});Object.defineProperty(t,"NoUnusedFragmentsRule",{enumerable:true,get:function(){return c.NoUnusedFragmentsRule}});Object.defineProperty(t,"NoUnusedVariablesRule",{enumerable:true,get:function(){return c.NoUnusedVariablesRule}});Object.defineProperty(t,"OperationTypeNode",{enumerable:true,get:function(){return i.OperationTypeNode}});Object.defineProperty(t,"OverlappingFieldsCanBeMergedRule",{enumerable:true,get:function(){return c.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(t,"PossibleFragmentSpreadsRule",{enumerable:true,get:function(){return c.PossibleFragmentSpreadsRule}});Object.defineProperty(t,"PossibleTypeExtensionsRule",{enumerable:true,get:function(){return c.PossibleTypeExtensionsRule}});Object.defineProperty(t,"ProvidedRequiredArgumentsRule",{enumerable:true,get:function(){return c.ProvidedRequiredArgumentsRule}});Object.defineProperty(t,"ScalarLeafsRule",{enumerable:true,get:function(){return c.ScalarLeafsRule}});Object.defineProperty(t,"SchemaMetaFieldDef",{enumerable:true,get:function(){return o.SchemaMetaFieldDef}});Object.defineProperty(t,"SingleFieldSubscriptionsRule",{enumerable:true,get:function(){return c.SingleFieldSubscriptionsRule}});Object.defineProperty(t,"Source",{enumerable:true,get:function(){return i.Source}});Object.defineProperty(t,"Token",{enumerable:true,get:function(){return i.Token}});Object.defineProperty(t,"TokenKind",{enumerable:true,get:function(){return i.TokenKind}});Object.defineProperty(t,"TypeInfo",{enumerable:true,get:function(){return A.TypeInfo}});Object.defineProperty(t,"TypeKind",{enumerable:true,get:function(){return o.TypeKind}});Object.defineProperty(t,"TypeMetaFieldDef",{enumerable:true,get:function(){return o.TypeMetaFieldDef}});Object.defineProperty(t,"TypeNameMetaFieldDef",{enumerable:true,get:function(){return o.TypeNameMetaFieldDef}});Object.defineProperty(t,"UniqueArgumentDefinitionNamesRule",{enumerable:true,get:function(){return c.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(t,"UniqueArgumentNamesRule",{enumerable:true,get:function(){return c.UniqueArgumentNamesRule}});Object.defineProperty(t,"UniqueDirectiveNamesRule",{enumerable:true,get:function(){return c.UniqueDirectiveNamesRule}});Object.defineProperty(t,"UniqueDirectivesPerLocationRule",{enumerable:true,get:function(){return c.UniqueDirectivesPerLocationRule}});Object.defineProperty(t,"UniqueEnumValueNamesRule",{enumerable:true,get:function(){return c.UniqueEnumValueNamesRule}});Object.defineProperty(t,"UniqueFieldDefinitionNamesRule",{enumerable:true,get:function(){return c.UniqueFieldDefinitionNamesRule}});Object.defineProperty(t,"UniqueFragmentNamesRule",{enumerable:true,get:function(){return c.UniqueFragmentNamesRule}});Object.defineProperty(t,"UniqueInputFieldNamesRule",{enumerable:true,get:function(){return c.UniqueInputFieldNamesRule}});Object.defineProperty(t,"UniqueOperationNamesRule",{enumerable:true,get:function(){return c.UniqueOperationNamesRule}});Object.defineProperty(t,"UniqueOperationTypesRule",{enumerable:true,get:function(){return c.UniqueOperationTypesRule}});Object.defineProperty(t,"UniqueTypeNamesRule",{enumerable:true,get:function(){return c.UniqueTypeNamesRule}});Object.defineProperty(t,"UniqueVariableNamesRule",{enumerable:true,get:function(){return c.UniqueVariableNamesRule}});Object.defineProperty(t,"ValidationContext",{enumerable:true,get:function(){return c.ValidationContext}});Object.defineProperty(t,"ValuesOfCorrectTypeRule",{enumerable:true,get:function(){return c.ValuesOfCorrectTypeRule}});Object.defineProperty(t,"VariablesAreInputTypesRule",{enumerable:true,get:function(){return c.VariablesAreInputTypesRule}});Object.defineProperty(t,"VariablesInAllowedPositionRule",{enumerable:true,get:function(){return c.VariablesInAllowedPositionRule}});Object.defineProperty(t,"__Directive",{enumerable:true,get:function(){return o.__Directive}});Object.defineProperty(t,"__DirectiveLocation",{enumerable:true,get:function(){return o.__DirectiveLocation}});Object.defineProperty(t,"__EnumValue",{enumerable:true,get:function(){return o.__EnumValue}});Object.defineProperty(t,"__Field",{enumerable:true,get:function(){return o.__Field}});Object.defineProperty(t,"__InputValue",{enumerable:true,get:function(){return o.__InputValue}});Object.defineProperty(t,"__Schema",{enumerable:true,get:function(){return o.__Schema}});Object.defineProperty(t,"__Type",{enumerable:true,get:function(){return o.__Type}});Object.defineProperty(t,"__TypeKind",{enumerable:true,get:function(){return o.__TypeKind}});Object.defineProperty(t,"assertAbstractType",{enumerable:true,get:function(){return o.assertAbstractType}});Object.defineProperty(t,"assertCompositeType",{enumerable:true,get:function(){return o.assertCompositeType}});Object.defineProperty(t,"assertDirective",{enumerable:true,get:function(){return o.assertDirective}});Object.defineProperty(t,"assertEnumType",{enumerable:true,get:function(){return o.assertEnumType}});Object.defineProperty(t,"assertEnumValueName",{enumerable:true,get:function(){return o.assertEnumValueName}});Object.defineProperty(t,"assertInputObjectType",{enumerable:true,get:function(){return o.assertInputObjectType}});Object.defineProperty(t,"assertInputType",{enumerable:true,get:function(){return o.assertInputType}});Object.defineProperty(t,"assertInterfaceType",{enumerable:true,get:function(){return o.assertInterfaceType}});Object.defineProperty(t,"assertLeafType",{enumerable:true,get:function(){return o.assertLeafType}});Object.defineProperty(t,"assertListType",{enumerable:true,get:function(){return o.assertListType}});Object.defineProperty(t,"assertName",{enumerable:true,get:function(){return o.assertName}});Object.defineProperty(t,"assertNamedType",{enumerable:true,get:function(){return o.assertNamedType}});Object.defineProperty(t,"assertNonNullType",{enumerable:true,get:function(){return o.assertNonNullType}});Object.defineProperty(t,"assertNullableType",{enumerable:true,get:function(){return o.assertNullableType}});Object.defineProperty(t,"assertObjectType",{enumerable:true,get:function(){return o.assertObjectType}});Object.defineProperty(t,"assertOutputType",{enumerable:true,get:function(){return o.assertOutputType}});Object.defineProperty(t,"assertScalarType",{enumerable:true,get:function(){return o.assertScalarType}});Object.defineProperty(t,"assertSchema",{enumerable:true,get:function(){return o.assertSchema}});Object.defineProperty(t,"assertType",{enumerable:true,get:function(){return o.assertType}});Object.defineProperty(t,"assertUnionType",{enumerable:true,get:function(){return o.assertUnionType}});Object.defineProperty(t,"assertValidName",{enumerable:true,get:function(){return A.assertValidName}});Object.defineProperty(t,"assertValidSchema",{enumerable:true,get:function(){return o.assertValidSchema}});Object.defineProperty(t,"assertWrappingType",{enumerable:true,get:function(){return o.assertWrappingType}});Object.defineProperty(t,"astFromValue",{enumerable:true,get:function(){return A.astFromValue}});Object.defineProperty(t,"buildASTSchema",{enumerable:true,get:function(){return A.buildASTSchema}});Object.defineProperty(t,"buildClientSchema",{enumerable:true,get:function(){return A.buildClientSchema}});Object.defineProperty(t,"buildSchema",{enumerable:true,get:function(){return A.buildSchema}});Object.defineProperty(t,"coerceInputValue",{enumerable:true,get:function(){return A.coerceInputValue}});Object.defineProperty(t,"concatAST",{enumerable:true,get:function(){return A.concatAST}});Object.defineProperty(t,"createSourceEventStream",{enumerable:true,get:function(){return a.createSourceEventStream}});Object.defineProperty(t,"defaultFieldResolver",{enumerable:true,get:function(){return a.defaultFieldResolver}});Object.defineProperty(t,"defaultTypeResolver",{enumerable:true,get:function(){return a.defaultTypeResolver}});Object.defineProperty(t,"doTypesOverlap",{enumerable:true,get:function(){return A.doTypesOverlap}});Object.defineProperty(t,"execute",{enumerable:true,get:function(){return a.execute}});Object.defineProperty(t,"executeSync",{enumerable:true,get:function(){return a.executeSync}});Object.defineProperty(t,"extendSchema",{enumerable:true,get:function(){return A.extendSchema}});Object.defineProperty(t,"findBreakingChanges",{enumerable:true,get:function(){return A.findBreakingChanges}});Object.defineProperty(t,"findDangerousChanges",{enumerable:true,get:function(){return A.findDangerousChanges}});Object.defineProperty(t,"formatError",{enumerable:true,get:function(){return u.formatError}});Object.defineProperty(t,"getArgumentValues",{enumerable:true,get:function(){return a.getArgumentValues}});Object.defineProperty(t,"getDirectiveValues",{enumerable:true,get:function(){return a.getDirectiveValues}});Object.defineProperty(t,"getEnterLeaveForKind",{enumerable:true,get:function(){return i.getEnterLeaveForKind}});Object.defineProperty(t,"getIntrospectionQuery",{enumerable:true,get:function(){return A.getIntrospectionQuery}});Object.defineProperty(t,"getLocation",{enumerable:true,get:function(){return i.getLocation}});Object.defineProperty(t,"getNamedType",{enumerable:true,get:function(){return o.getNamedType}});Object.defineProperty(t,"getNullableType",{enumerable:true,get:function(){return o.getNullableType}});Object.defineProperty(t,"getOperationAST",{enumerable:true,get:function(){return A.getOperationAST}});Object.defineProperty(t,"getOperationRootType",{enumerable:true,get:function(){return A.getOperationRootType}});Object.defineProperty(t,"getVariableValues",{enumerable:true,get:function(){return a.getVariableValues}});Object.defineProperty(t,"getVisitFn",{enumerable:true,get:function(){return i.getVisitFn}});Object.defineProperty(t,"graphql",{enumerable:true,get:function(){return s.graphql}});Object.defineProperty(t,"graphqlSync",{enumerable:true,get:function(){return s.graphqlSync}});Object.defineProperty(t,"introspectionFromSchema",{enumerable:true,get:function(){return A.introspectionFromSchema}});Object.defineProperty(t,"introspectionTypes",{enumerable:true,get:function(){return o.introspectionTypes}});Object.defineProperty(t,"isAbstractType",{enumerable:true,get:function(){return o.isAbstractType}});Object.defineProperty(t,"isCompositeType",{enumerable:true,get:function(){return o.isCompositeType}});Object.defineProperty(t,"isConstValueNode",{enumerable:true,get:function(){return i.isConstValueNode}});Object.defineProperty(t,"isDefinitionNode",{enumerable:true,get:function(){return i.isDefinitionNode}});Object.defineProperty(t,"isDirective",{enumerable:true,get:function(){return o.isDirective}});Object.defineProperty(t,"isEnumType",{enumerable:true,get:function(){return o.isEnumType}});Object.defineProperty(t,"isEqualType",{enumerable:true,get:function(){return A.isEqualType}});Object.defineProperty(t,"isExecutableDefinitionNode",{enumerable:true,get:function(){return i.isExecutableDefinitionNode}});Object.defineProperty(t,"isInputObjectType",{enumerable:true,get:function(){return o.isInputObjectType}});Object.defineProperty(t,"isInputType",{enumerable:true,get:function(){return o.isInputType}});Object.defineProperty(t,"isInterfaceType",{enumerable:true,get:function(){return o.isInterfaceType}});Object.defineProperty(t,"isIntrospectionType",{enumerable:true,get:function(){return o.isIntrospectionType}});Object.defineProperty(t,"isLeafType",{enumerable:true,get:function(){return o.isLeafType}});Object.defineProperty(t,"isListType",{enumerable:true,get:function(){return o.isListType}});Object.defineProperty(t,"isNamedType",{enumerable:true,get:function(){return o.isNamedType}});Object.defineProperty(t,"isNonNullType",{enumerable:true,get:function(){return o.isNonNullType}});Object.defineProperty(t,"isNullableType",{enumerable:true,get:function(){return o.isNullableType}});Object.defineProperty(t,"isObjectType",{enumerable:true,get:function(){return o.isObjectType}});Object.defineProperty(t,"isOutputType",{enumerable:true,get:function(){return o.isOutputType}});Object.defineProperty(t,"isRequiredArgument",{enumerable:true,get:function(){return o.isRequiredArgument}});Object.defineProperty(t,"isRequiredInputField",{enumerable:true,get:function(){return o.isRequiredInputField}});Object.defineProperty(t,"isScalarType",{enumerable:true,get:function(){return o.isScalarType}});Object.defineProperty(t,"isSchema",{enumerable:true,get:function(){return o.isSchema}});Object.defineProperty(t,"isSelectionNode",{enumerable:true,get:function(){return i.isSelectionNode}});Object.defineProperty(t,"isSpecifiedDirective",{enumerable:true,get:function(){return o.isSpecifiedDirective}});Object.defineProperty(t,"isSpecifiedScalarType",{enumerable:true,get:function(){return o.isSpecifiedScalarType}});Object.defineProperty(t,"isType",{enumerable:true,get:function(){return o.isType}});Object.defineProperty(t,"isTypeDefinitionNode",{enumerable:true,get:function(){return i.isTypeDefinitionNode}});Object.defineProperty(t,"isTypeExtensionNode",{enumerable:true,get:function(){return i.isTypeExtensionNode}});Object.defineProperty(t,"isTypeNode",{enumerable:true,get:function(){return i.isTypeNode}});Object.defineProperty(t,"isTypeSubTypeOf",{enumerable:true,get:function(){return A.isTypeSubTypeOf}});Object.defineProperty(t,"isTypeSystemDefinitionNode",{enumerable:true,get:function(){return i.isTypeSystemDefinitionNode}});Object.defineProperty(t,"isTypeSystemExtensionNode",{enumerable:true,get:function(){return i.isTypeSystemExtensionNode}});Object.defineProperty(t,"isUnionType",{enumerable:true,get:function(){return o.isUnionType}});Object.defineProperty(t,"isValidNameError",{enumerable:true,get:function(){return A.isValidNameError}});Object.defineProperty(t,"isValueNode",{enumerable:true,get:function(){return i.isValueNode}});Object.defineProperty(t,"isWrappingType",{enumerable:true,get:function(){return o.isWrappingType}});Object.defineProperty(t,"lexicographicSortSchema",{enumerable:true,get:function(){return A.lexicographicSortSchema}});Object.defineProperty(t,"locatedError",{enumerable:true,get:function(){return u.locatedError}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return i.parse}});Object.defineProperty(t,"parseConstValue",{enumerable:true,get:function(){return i.parseConstValue}});Object.defineProperty(t,"parseType",{enumerable:true,get:function(){return i.parseType}});Object.defineProperty(t,"parseValue",{enumerable:true,get:function(){return i.parseValue}});Object.defineProperty(t,"print",{enumerable:true,get:function(){return i.print}});Object.defineProperty(t,"printError",{enumerable:true,get:function(){return u.printError}});Object.defineProperty(t,"printIntrospectionSchema",{enumerable:true,get:function(){return A.printIntrospectionSchema}});Object.defineProperty(t,"printLocation",{enumerable:true,get:function(){return i.printLocation}});Object.defineProperty(t,"printSchema",{enumerable:true,get:function(){return A.printSchema}});Object.defineProperty(t,"printSourceLocation",{enumerable:true,get:function(){return i.printSourceLocation}});Object.defineProperty(t,"printType",{enumerable:true,get:function(){return A.printType}});Object.defineProperty(t,"recommendedRules",{enumerable:true,get:function(){return c.recommendedRules}});Object.defineProperty(t,"resolveObjMapThunk",{enumerable:true,get:function(){return o.resolveObjMapThunk}});Object.defineProperty(t,"resolveReadonlyArrayThunk",{enumerable:true,get:function(){return o.resolveReadonlyArrayThunk}});Object.defineProperty(t,"responsePathAsArray",{enumerable:true,get:function(){return a.responsePathAsArray}});Object.defineProperty(t,"separateOperations",{enumerable:true,get:function(){return A.separateOperations}});Object.defineProperty(t,"specifiedDirectives",{enumerable:true,get:function(){return o.specifiedDirectives}});Object.defineProperty(t,"specifiedRules",{enumerable:true,get:function(){return c.specifiedRules}});Object.defineProperty(t,"specifiedScalarTypes",{enumerable:true,get:function(){return o.specifiedScalarTypes}});Object.defineProperty(t,"stripIgnoredCharacters",{enumerable:true,get:function(){return A.stripIgnoredCharacters}});Object.defineProperty(t,"subscribe",{enumerable:true,get:function(){return a.subscribe}});Object.defineProperty(t,"syntaxError",{enumerable:true,get:function(){return u.syntaxError}});Object.defineProperty(t,"typeFromAST",{enumerable:true,get:function(){return A.typeFromAST}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return c.validate}});Object.defineProperty(t,"validateSchema",{enumerable:true,get:function(){return o.validateSchema}});Object.defineProperty(t,"valueFromAST",{enumerable:true,get:function(){return A.valueFromAST}});Object.defineProperty(t,"valueFromASTUntyped",{enumerable:true,get:function(){return A.valueFromASTUntyped}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return n.version}});Object.defineProperty(t,"versionInfo",{enumerable:true,get:function(){return n.versionInfo}});Object.defineProperty(t,"visit",{enumerable:true,get:function(){return i.visit}});Object.defineProperty(t,"visitInParallel",{enumerable:true,get:function(){return i.visitInParallel}});Object.defineProperty(t,"visitWithTypeInfo",{enumerable:true,get:function(){return A.visitWithTypeInfo}});var n=r(98725);var s=r(66352);var o=r(66618);var i=r(70068);var a=r(34404);var c=r(47973);var u=r(79888);var A=r(47006)},73155:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.addPath=addPath;t.pathToArray=pathToArray;function addPath(e,t,r){return{prev:e,key:t,typename:r}}function pathToArray(e){const t=[];let r=e;while(r){t.push(r.key);r=r.prev}return t.reverse()}},65383:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.devAssert=devAssert;function devAssert(e,t){const r=Boolean(e);if(!r){throw new Error(t)}}},41353:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.didYouMean=didYouMean;const r=5;function didYouMean(e,t){const[n,s]=t?[e,t]:[undefined,e];let o=" Did you mean ";if(n){o+=n+" "}const i=s.map((e=>`"${e}"`));switch(i.length){case 0:return"";case 1:return o+i[0]+"?";case 2:return o+i[0]+" or "+i[1]+"?"}const a=i.slice(0,r);const c=a.pop();return o+a.join(", ")+", or "+c+"?"}},48520:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.groupBy=groupBy;function groupBy(e,t){const r=new Map;for(const n of e){const e=t(n);const s=r.get(e);if(s===undefined){r.set(e,[n])}else{s.push(n)}}return r}},86588:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.identityFunc=identityFunc;function identityFunc(e){return e}},25742:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.inspect=inspect;const r=10;const n=2;function inspect(e){return formatValue(e,[])}function formatValue(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return formatObjectValue(e,t);default:return String(e)}}function formatObjectValue(e,t){if(e===null){return"null"}if(t.includes(e)){return"[Circular]"}const r=[...t,e];if(isJSONable(e)){const t=e.toJSON();if(t!==e){return typeof t==="string"?t:formatValue(t,r)}}else if(Array.isArray(e)){return formatArray(e,r)}return formatObject(e,r)}function isJSONable(e){return typeof e.toJSON==="function"}function formatObject(e,t){const r=Object.entries(e);if(r.length===0){return"{}"}if(t.length>n){return"["+getObjectTag(e)+"]"}const s=r.map((([e,r])=>e+": "+formatValue(r,t)));return"{ "+s.join(", ")+" }"}function formatArray(e,t){if(e.length===0){return"[]"}if(t.length>n){return"[Array]"}const s=Math.min(r,e.length);const o=e.length-s;const i=[];for(let r=0;r1){i.push(`... ${o} more items`)}return"["+i.join(", ")+"]"}function getObjectTag(e){const t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor==="function"){const t=e.constructor.name;if(typeof t==="string"&&t!==""){return t}}return t}},45914:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.instanceOf=void 0;var n=r(25742);const s=globalThis.process&&process.env.NODE_ENV==="production";const o=s?function instanceOf(e,t){return e instanceof t}:function instanceOf(e,t){if(e instanceof t){return true}if(typeof e==="object"&&e!==null){var r;const s=t.prototype[Symbol.toStringTag];const o=Symbol.toStringTag in e?e[Symbol.toStringTag]:(r=e.constructor)===null||r===void 0?void 0:r.name;if(s===o){const t=(0,n.inspect)(e);throw new Error(`Cannot use ${s} "${t}" from another module or realm.\n\nEnsure that there is only one instance of "graphql" in the node_modules\ndirectory. If different versions of "graphql" are the dependencies of other\nrelied on modules, use "resolutions" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate "graphql" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`)}}return false};t.instanceOf=o},33650:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.invariant=invariant;function invariant(e,t){const r=Boolean(e);if(!r){throw new Error(t!=null?t:"Unexpected invariant triggered.")}}},34068:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isAsyncIterable=isAsyncIterable;function isAsyncIterable(e){return typeof(e===null||e===void 0?void 0:e[Symbol.asyncIterator])==="function"}},17341:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isIterableObject=isIterableObject;function isIterableObject(e){return typeof e==="object"&&typeof(e===null||e===void 0?void 0:e[Symbol.iterator])==="function"}},20892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isObjectLike=isObjectLike;function isObjectLike(e){return typeof e=="object"&&e!==null}},4091:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isPromise=isPromise;function isPromise(e){return typeof(e===null||e===void 0?void 0:e.then)==="function"}},37579:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.keyMap=keyMap;function keyMap(e,t){const r=Object.create(null);for(const n of e){r[t(n)]=n}return r}},3166:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.keyValMap=keyValMap;function keyValMap(e,t,r){const n=Object.create(null);for(const s of e){n[t(s)]=r(s)}return n}},65719:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.mapValue=mapValue;function mapValue(e,t){const r=Object.create(null);for(const n of Object.keys(e)){r[n]=t(e[n],n)}return r}},38141:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.memoize3=memoize3;function memoize3(e){let t;return function memoized(r,n,s){if(t===undefined){t=new WeakMap}let o=t.get(r);if(o===undefined){o=new WeakMap;t.set(r,o)}let i=o.get(n);if(i===undefined){i=new WeakMap;o.set(n,i)}let a=i.get(s);if(a===undefined){a=e(r,n,s);i.set(s,a)}return a}}},23428:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.naturalCompare=naturalCompare;function naturalCompare(e,t){let n=0;let s=0;while(n0);let c=0;do{++s;c=c*10+i-r;i=t.charCodeAt(s)}while(isDigit(i)&&c>0);if(ac){return 1}}else{if(oi){return 1}++n;++s}}return e.length-t.length}const r=48;const n=57;function isDigit(e){return!isNaN(e)&&r<=e&&e<=n}},68373:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.printPathArray=printPathArray;function printPathArray(e){return e.map((e=>typeof e==="number"?"["+e.toString()+"]":"."+e)).join("")}},65395:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.promiseForObject=promiseForObject;function promiseForObject(e){return Promise.all(Object.values(e)).then((t=>{const r=Object.create(null);for(const[n,s]of Object.keys(e).entries()){r[s]=t[n]}return r}))}},71369:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.promiseReduce=promiseReduce;var n=r(4091);function promiseReduce(e,t,r){let s=r;for(const r of e){s=(0,n.isPromise)(s)?s.then((e=>t(e,r))):t(s,r)}return s}},47904:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.suggestionList=suggestionList;var n=r(23428);function suggestionList(e,t){const r=Object.create(null);const s=new LexicalDistance(e);const o=Math.floor(e.length*.4)+1;for(const e of t){const t=s.measure(e,o);if(t!==undefined){r[e]=t}}return Object.keys(r).sort(((e,t)=>{const s=r[e]-r[t];return s!==0?s:(0,n.naturalCompare)(e,t)}))}class LexicalDistance{constructor(e){this._input=e;this._inputLowerCase=e.toLowerCase();this._inputArray=stringToArray(this._inputLowerCase);this._rows=[new Array(e.length+1).fill(0),new Array(e.length+1).fill(0),new Array(e.length+1).fill(0)]}measure(e,t){if(this._input===e){return 0}const r=e.toLowerCase();if(this._inputLowerCase===r){return 1}let n=stringToArray(r);let s=this._inputArray;if(n.lengtht){return undefined}const a=this._rows;for(let e=0;e<=i;e++){a[0][e]=e}for(let e=1;e<=o;e++){const r=a[(e-1)%3];const o=a[e%3];let c=o[0]=e;for(let t=1;t<=i;t++){const i=n[e-1]===s[t-1]?0:1;let u=Math.min(r[t]+1,o[t-1]+1,r[t-1]+i);if(e>1&&t>1&&n[e-1]===s[t-2]&&n[e-2]===s[t-1]){const r=a[(e-2)%3][t-2];u=Math.min(u,r+1)}if(ut){return undefined}}const c=a[o%3][i];return c<=t?c:undefined}}function stringToArray(e){const t=e.length;const r=new Array(t);for(let n=0;n{Object.defineProperty(t,"__esModule",{value:true});t.toError=toError;var n=r(25742);function toError(e){return e instanceof Error?e:new NonErrorThrown(e)}class NonErrorThrown extends Error{constructor(e){super("Unexpected error value: "+(0,n.inspect)(e));this.name="NonErrorThrown";this.thrownValue=e}}},87104:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.toObjMap=toObjMap;function toObjMap(e){if(e==null){return Object.create(null)}if(Object.getPrototypeOf(e)===null){return e}const t=Object.create(null);for(const[r,n]of Object.entries(e)){t[r]=n}return t}},22740:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Token=t.QueryDocumentKeys=t.OperationTypeNode=t.Location=void 0;t.isNode=isNode;class Location{constructor(e,t,r){this.start=e.start;this.end=t.end;this.startToken=e;this.endToken=t;this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}}t.Location=Location;class Token{constructor(e,t,r,n,s,o){this.kind=e;this.start=t;this.end=r;this.line=n;this.column=s;this.value=o;this.prev=null;this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}}t.Token=Token;const r={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]};t.QueryDocumentKeys=r;const n=new Set(Object.keys(r));function isNode(e){const t=e===null||e===void 0?void 0:e.kind;return typeof t==="string"&&n.has(t)}var s;t.OperationTypeNode=s;(function(e){e["QUERY"]="query";e["MUTATION"]="mutation";e["SUBSCRIPTION"]="subscription"})(s||(t.OperationTypeNode=s={}))},77508:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.dedentBlockStringLines=dedentBlockStringLines;t.isPrintableAsBlockString=isPrintableAsBlockString;t.printBlockString=printBlockString;var n=r(83271);function dedentBlockStringLines(e){var t;let r=Number.MAX_SAFE_INTEGER;let n=null;let s=-1;for(let t=0;tt===0?e:e.slice(r))).slice((t=n)!==null&&t!==void 0?t:0,s+1)}function leadingWhitespace(e){let t=0;while(t1&&s.slice(1).every((e=>e.length===0||(0,n.isWhiteSpace)(e.charCodeAt(0))));const a=r.endsWith('\\"""');const c=e.endsWith('"')&&!a;const u=e.endsWith("\\");const A=c||u;const l=!(t!==null&&t!==void 0&&t.minimize)&&(!o||e.length>70||A||i||a);let d="";const p=o&&(0,n.isWhiteSpace)(e.charCodeAt(0));if(l&&!p||i){d+="\n"}d+=r;if(l||A){d+="\n"}return'"""'+d+'"""'}},83271:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isDigit=isDigit;t.isLetter=isLetter;t.isNameContinue=isNameContinue;t.isNameStart=isNameStart;t.isWhiteSpace=isWhiteSpace;function isWhiteSpace(e){return e===9||e===32}function isDigit(e){return e>=48&&e<=57}function isLetter(e){return e>=97&&e<=122||e>=65&&e<=90}function isNameStart(e){return isLetter(e)||e===95}function isNameContinue(e){return isLetter(e)||isDigit(e)||e===95}},22582:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.DirectiveLocation=void 0;var r;t.DirectiveLocation=r;(function(e){e["QUERY"]="QUERY";e["MUTATION"]="MUTATION";e["SUBSCRIPTION"]="SUBSCRIPTION";e["FIELD"]="FIELD";e["FRAGMENT_DEFINITION"]="FRAGMENT_DEFINITION";e["FRAGMENT_SPREAD"]="FRAGMENT_SPREAD";e["INLINE_FRAGMENT"]="INLINE_FRAGMENT";e["VARIABLE_DEFINITION"]="VARIABLE_DEFINITION";e["SCHEMA"]="SCHEMA";e["SCALAR"]="SCALAR";e["OBJECT"]="OBJECT";e["FIELD_DEFINITION"]="FIELD_DEFINITION";e["ARGUMENT_DEFINITION"]="ARGUMENT_DEFINITION";e["INTERFACE"]="INTERFACE";e["UNION"]="UNION";e["ENUM"]="ENUM";e["ENUM_VALUE"]="ENUM_VALUE";e["INPUT_OBJECT"]="INPUT_OBJECT";e["INPUT_FIELD_DEFINITION"]="INPUT_FIELD_DEFINITION"})(r||(t.DirectiveLocation=r={}))},70068:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"BREAK",{enumerable:true,get:function(){return l.BREAK}});Object.defineProperty(t,"DirectiveLocation",{enumerable:true,get:function(){return g.DirectiveLocation}});Object.defineProperty(t,"Kind",{enumerable:true,get:function(){return i.Kind}});Object.defineProperty(t,"Lexer",{enumerable:true,get:function(){return c.Lexer}});Object.defineProperty(t,"Location",{enumerable:true,get:function(){return d.Location}});Object.defineProperty(t,"OperationTypeNode",{enumerable:true,get:function(){return d.OperationTypeNode}});Object.defineProperty(t,"Source",{enumerable:true,get:function(){return n.Source}});Object.defineProperty(t,"Token",{enumerable:true,get:function(){return d.Token}});Object.defineProperty(t,"TokenKind",{enumerable:true,get:function(){return a.TokenKind}});Object.defineProperty(t,"getEnterLeaveForKind",{enumerable:true,get:function(){return l.getEnterLeaveForKind}});Object.defineProperty(t,"getLocation",{enumerable:true,get:function(){return s.getLocation}});Object.defineProperty(t,"getVisitFn",{enumerable:true,get:function(){return l.getVisitFn}});Object.defineProperty(t,"isConstValueNode",{enumerable:true,get:function(){return p.isConstValueNode}});Object.defineProperty(t,"isDefinitionNode",{enumerable:true,get:function(){return p.isDefinitionNode}});Object.defineProperty(t,"isExecutableDefinitionNode",{enumerable:true,get:function(){return p.isExecutableDefinitionNode}});Object.defineProperty(t,"isSelectionNode",{enumerable:true,get:function(){return p.isSelectionNode}});Object.defineProperty(t,"isTypeDefinitionNode",{enumerable:true,get:function(){return p.isTypeDefinitionNode}});Object.defineProperty(t,"isTypeExtensionNode",{enumerable:true,get:function(){return p.isTypeExtensionNode}});Object.defineProperty(t,"isTypeNode",{enumerable:true,get:function(){return p.isTypeNode}});Object.defineProperty(t,"isTypeSystemDefinitionNode",{enumerable:true,get:function(){return p.isTypeSystemDefinitionNode}});Object.defineProperty(t,"isTypeSystemExtensionNode",{enumerable:true,get:function(){return p.isTypeSystemExtensionNode}});Object.defineProperty(t,"isValueNode",{enumerable:true,get:function(){return p.isValueNode}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return u.parse}});Object.defineProperty(t,"parseConstValue",{enumerable:true,get:function(){return u.parseConstValue}});Object.defineProperty(t,"parseType",{enumerable:true,get:function(){return u.parseType}});Object.defineProperty(t,"parseValue",{enumerable:true,get:function(){return u.parseValue}});Object.defineProperty(t,"print",{enumerable:true,get:function(){return A.print}});Object.defineProperty(t,"printLocation",{enumerable:true,get:function(){return o.printLocation}});Object.defineProperty(t,"printSourceLocation",{enumerable:true,get:function(){return o.printSourceLocation}});Object.defineProperty(t,"visit",{enumerable:true,get:function(){return l.visit}});Object.defineProperty(t,"visitInParallel",{enumerable:true,get:function(){return l.visitInParallel}});var n=r(40203);var s=r(72245);var o=r(6512);var i=r(11123);var a=r(1743);var c=r(29278);var u=r(14929);var A=r(59936);var l=r(30638);var d=r(22740);var p=r(15480);var g=r(22582)},11123:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Kind=void 0;var r;t.Kind=r;(function(e){e["NAME"]="Name";e["DOCUMENT"]="Document";e["OPERATION_DEFINITION"]="OperationDefinition";e["VARIABLE_DEFINITION"]="VariableDefinition";e["SELECTION_SET"]="SelectionSet";e["FIELD"]="Field";e["ARGUMENT"]="Argument";e["FRAGMENT_SPREAD"]="FragmentSpread";e["INLINE_FRAGMENT"]="InlineFragment";e["FRAGMENT_DEFINITION"]="FragmentDefinition";e["VARIABLE"]="Variable";e["INT"]="IntValue";e["FLOAT"]="FloatValue";e["STRING"]="StringValue";e["BOOLEAN"]="BooleanValue";e["NULL"]="NullValue";e["ENUM"]="EnumValue";e["LIST"]="ListValue";e["OBJECT"]="ObjectValue";e["OBJECT_FIELD"]="ObjectField";e["DIRECTIVE"]="Directive";e["NAMED_TYPE"]="NamedType";e["LIST_TYPE"]="ListType";e["NON_NULL_TYPE"]="NonNullType";e["SCHEMA_DEFINITION"]="SchemaDefinition";e["OPERATION_TYPE_DEFINITION"]="OperationTypeDefinition";e["SCALAR_TYPE_DEFINITION"]="ScalarTypeDefinition";e["OBJECT_TYPE_DEFINITION"]="ObjectTypeDefinition";e["FIELD_DEFINITION"]="FieldDefinition";e["INPUT_VALUE_DEFINITION"]="InputValueDefinition";e["INTERFACE_TYPE_DEFINITION"]="InterfaceTypeDefinition";e["UNION_TYPE_DEFINITION"]="UnionTypeDefinition";e["ENUM_TYPE_DEFINITION"]="EnumTypeDefinition";e["ENUM_VALUE_DEFINITION"]="EnumValueDefinition";e["INPUT_OBJECT_TYPE_DEFINITION"]="InputObjectTypeDefinition";e["DIRECTIVE_DEFINITION"]="DirectiveDefinition";e["SCHEMA_EXTENSION"]="SchemaExtension";e["SCALAR_TYPE_EXTENSION"]="ScalarTypeExtension";e["OBJECT_TYPE_EXTENSION"]="ObjectTypeExtension";e["INTERFACE_TYPE_EXTENSION"]="InterfaceTypeExtension";e["UNION_TYPE_EXTENSION"]="UnionTypeExtension";e["ENUM_TYPE_EXTENSION"]="EnumTypeExtension";e["INPUT_OBJECT_TYPE_EXTENSION"]="InputObjectTypeExtension"})(r||(t.Kind=r={}))},29278:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Lexer=void 0;t.isPunctuatorTokenKind=isPunctuatorTokenKind;var n=r(89619);var s=r(22740);var o=r(77508);var i=r(83271);var a=r(1743);class Lexer{constructor(e){const t=new s.Token(a.TokenKind.SOF,0,0,0,0);this.source=e;this.lastToken=t;this.token=t;this.line=1;this.lineStart=0}get[Symbol.toStringTag](){return"Lexer"}advance(){this.lastToken=this.token;const e=this.token=this.lookahead();return e}lookahead(){let e=this.token;if(e.kind!==a.TokenKind.EOF){do{if(e.next){e=e.next}else{const t=readNextToken(this,e.end);e.next=t;t.prev=e;e=t}}while(e.kind===a.TokenKind.COMMENT)}return e}}t.Lexer=Lexer;function isPunctuatorTokenKind(e){return e===a.TokenKind.BANG||e===a.TokenKind.DOLLAR||e===a.TokenKind.AMP||e===a.TokenKind.PAREN_L||e===a.TokenKind.PAREN_R||e===a.TokenKind.SPREAD||e===a.TokenKind.COLON||e===a.TokenKind.EQUALS||e===a.TokenKind.AT||e===a.TokenKind.BRACKET_L||e===a.TokenKind.BRACKET_R||e===a.TokenKind.BRACE_L||e===a.TokenKind.PIPE||e===a.TokenKind.BRACE_R}function isUnicodeScalarValue(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function isSupplementaryCodePoint(e,t){return isLeadingSurrogate(e.charCodeAt(t))&&isTrailingSurrogate(e.charCodeAt(t+1))}function isLeadingSurrogate(e){return e>=55296&&e<=56319}function isTrailingSurrogate(e){return e>=56320&&e<=57343}function printCodePointAt(e,t){const r=e.source.body.codePointAt(t);if(r===undefined){return a.TokenKind.EOF}else if(r>=32&&r<=126){const e=String.fromCodePoint(r);return e==='"'?"'\"'":`"${e}"`}return"U+"+r.toString(16).toUpperCase().padStart(4,"0")}function createToken(e,t,r,n,o){const i=e.line;const a=1+r-e.lineStart;return new s.Token(t,r,n,i,a,o)}function readNextToken(e,t){const r=e.source.body;const s=r.length;let o=t;while(o=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function readEscapedCharacter(e,t){const r=e.source.body;const s=r.charCodeAt(t+1);switch(s){case 34:return{value:'"',size:2};case 92:return{value:"\\",size:2};case 47:return{value:"/",size:2};case 98:return{value:"\b",size:2};case 102:return{value:"\f",size:2};case 110:return{value:"\n",size:2};case 114:return{value:"\r",size:2};case 116:return{value:"\t",size:2}}throw(0,n.syntaxError)(e.source,t,`Invalid character escape sequence: "${r.slice(t,t+2)}".`)}function readBlockString(e,t){const r=e.source.body;const s=r.length;let i=e.lineStart;let c=t+3;let u=c;let A="";const l=[];while(c{Object.defineProperty(t,"__esModule",{value:true});t.getLocation=getLocation;var n=r(33650);const s=/\r\n|[\n\r]/g;function getLocation(e,t){let r=0;let o=1;for(const i of e.body.matchAll(s)){typeof i.index==="number"||(0,n.invariant)(false);if(i.index>=t){break}r=i.index+i[0].length;o+=1}return{line:o,column:t+1-r}}},14929:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Parser=void 0;t.parse=parse;t.parseConstValue=parseConstValue;t.parseType=parseType;t.parseValue=parseValue;var n=r(89619);var s=r(22740);var o=r(22582);var i=r(11123);var a=r(29278);var c=r(40203);var u=r(1743);function parse(e,t){const r=new Parser(e,t);return r.parseDocument()}function parseValue(e,t){const r=new Parser(e,t);r.expectToken(u.TokenKind.SOF);const n=r.parseValueLiteral(false);r.expectToken(u.TokenKind.EOF);return n}function parseConstValue(e,t){const r=new Parser(e,t);r.expectToken(u.TokenKind.SOF);const n=r.parseConstValueLiteral();r.expectToken(u.TokenKind.EOF);return n}function parseType(e,t){const r=new Parser(e,t);r.expectToken(u.TokenKind.SOF);const n=r.parseTypeReference();r.expectToken(u.TokenKind.EOF);return n}class Parser{constructor(e,t={}){const r=(0,c.isSource)(e)?e:new c.Source(e);this._lexer=new a.Lexer(r);this._options=t;this._tokenCounter=0}parseName(){const e=this.expectToken(u.TokenKind.NAME);return this.node(e,{kind:i.Kind.NAME,value:e.value})}parseDocument(){return this.node(this._lexer.token,{kind:i.Kind.DOCUMENT,definitions:this.many(u.TokenKind.SOF,this.parseDefinition,u.TokenKind.EOF)})}parseDefinition(){if(this.peek(u.TokenKind.BRACE_L)){return this.parseOperationDefinition()}const e=this.peekDescription();const t=e?this._lexer.lookahead():this._lexer.token;if(t.kind===u.TokenKind.NAME){switch(t.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(e){throw(0,n.syntaxError)(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.")}switch(t.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(t)}parseOperationDefinition(){const e=this._lexer.token;if(this.peek(u.TokenKind.BRACE_L)){return this.node(e,{kind:i.Kind.OPERATION_DEFINITION,operation:s.OperationTypeNode.QUERY,name:undefined,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()})}const t=this.parseOperationType();let r;if(this.peek(u.TokenKind.NAME)){r=this.parseName()}return this.node(e,{kind:i.Kind.OPERATION_DEFINITION,operation:t,name:r,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}parseOperationType(){const e=this.expectToken(u.TokenKind.NAME);switch(e.value){case"query":return s.OperationTypeNode.QUERY;case"mutation":return s.OperationTypeNode.MUTATION;case"subscription":return s.OperationTypeNode.SUBSCRIPTION}throw this.unexpected(e)}parseVariableDefinitions(){return this.optionalMany(u.TokenKind.PAREN_L,this.parseVariableDefinition,u.TokenKind.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:i.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(u.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(u.TokenKind.EQUALS)?this.parseConstValueLiteral():undefined,directives:this.parseConstDirectives()})}parseVariable(){const e=this._lexer.token;this.expectToken(u.TokenKind.DOLLAR);return this.node(e,{kind:i.Kind.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:i.Kind.SELECTION_SET,selections:this.many(u.TokenKind.BRACE_L,this.parseSelection,u.TokenKind.BRACE_R)})}parseSelection(){return this.peek(u.TokenKind.SPREAD)?this.parseFragment():this.parseField()}parseField(){const e=this._lexer.token;const t=this.parseName();let r;let n;if(this.expectOptionalToken(u.TokenKind.COLON)){r=t;n=this.parseName()}else{n=t}return this.node(e,{kind:i.Kind.FIELD,alias:r,name:n,arguments:this.parseArguments(false),directives:this.parseDirectives(false),selectionSet:this.peek(u.TokenKind.BRACE_L)?this.parseSelectionSet():undefined})}parseArguments(e){const t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(u.TokenKind.PAREN_L,t,u.TokenKind.PAREN_R)}parseArgument(e=false){const t=this._lexer.token;const r=this.parseName();this.expectToken(u.TokenKind.COLON);return this.node(t,{kind:i.Kind.ARGUMENT,name:r,value:this.parseValueLiteral(e)})}parseConstArgument(){return this.parseArgument(true)}parseFragment(){const e=this._lexer.token;this.expectToken(u.TokenKind.SPREAD);const t=this.expectOptionalKeyword("on");if(!t&&this.peek(u.TokenKind.NAME)){return this.node(e,{kind:i.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(false)})}return this.node(e,{kind:i.Kind.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():undefined,directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){const e=this._lexer.token;this.expectKeyword("fragment");if(this._options.allowLegacyFragmentVariables===true){return this.node(e,{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}return this.node(e,{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on"){throw this.unexpected()}return this.parseName()}parseValueLiteral(e){const t=this._lexer.token;switch(t.kind){case u.TokenKind.BRACKET_L:return this.parseList(e);case u.TokenKind.BRACE_L:return this.parseObject(e);case u.TokenKind.INT:this.advanceLexer();return this.node(t,{kind:i.Kind.INT,value:t.value});case u.TokenKind.FLOAT:this.advanceLexer();return this.node(t,{kind:i.Kind.FLOAT,value:t.value});case u.TokenKind.STRING:case u.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case u.TokenKind.NAME:this.advanceLexer();switch(t.value){case"true":return this.node(t,{kind:i.Kind.BOOLEAN,value:true});case"false":return this.node(t,{kind:i.Kind.BOOLEAN,value:false});case"null":return this.node(t,{kind:i.Kind.NULL});default:return this.node(t,{kind:i.Kind.ENUM,value:t.value})}case u.TokenKind.DOLLAR:if(e){this.expectToken(u.TokenKind.DOLLAR);if(this._lexer.token.kind===u.TokenKind.NAME){const e=this._lexer.token.value;throw(0,n.syntaxError)(this._lexer.source,t.start,`Unexpected variable "$${e}" in constant value.`)}else{throw this.unexpected(t)}}return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(true)}parseStringLiteral(){const e=this._lexer.token;this.advanceLexer();return this.node(e,{kind:i.Kind.STRING,value:e.value,block:e.kind===u.TokenKind.BLOCK_STRING})}parseList(e){const item=()=>this.parseValueLiteral(e);return this.node(this._lexer.token,{kind:i.Kind.LIST,values:this.any(u.TokenKind.BRACKET_L,item,u.TokenKind.BRACKET_R)})}parseObject(e){const item=()=>this.parseObjectField(e);return this.node(this._lexer.token,{kind:i.Kind.OBJECT,fields:this.any(u.TokenKind.BRACE_L,item,u.TokenKind.BRACE_R)})}parseObjectField(e){const t=this._lexer.token;const r=this.parseName();this.expectToken(u.TokenKind.COLON);return this.node(t,{kind:i.Kind.OBJECT_FIELD,name:r,value:this.parseValueLiteral(e)})}parseDirectives(e){const t=[];while(this.peek(u.TokenKind.AT)){t.push(this.parseDirective(e))}return t}parseConstDirectives(){return this.parseDirectives(true)}parseDirective(e){const t=this._lexer.token;this.expectToken(u.TokenKind.AT);return this.node(t,{kind:i.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e)})}parseTypeReference(){const e=this._lexer.token;let t;if(this.expectOptionalToken(u.TokenKind.BRACKET_L)){const r=this.parseTypeReference();this.expectToken(u.TokenKind.BRACKET_R);t=this.node(e,{kind:i.Kind.LIST_TYPE,type:r})}else{t=this.parseNamedType()}if(this.expectOptionalToken(u.TokenKind.BANG)){return this.node(e,{kind:i.Kind.NON_NULL_TYPE,type:t})}return t}parseNamedType(){return this.node(this._lexer.token,{kind:i.Kind.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(u.TokenKind.STRING)||this.peek(u.TokenKind.BLOCK_STRING)}parseDescription(){if(this.peekDescription()){return this.parseStringLiteral()}}parseSchemaDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("schema");const r=this.parseConstDirectives();const n=this.many(u.TokenKind.BRACE_L,this.parseOperationTypeDefinition,u.TokenKind.BRACE_R);return this.node(e,{kind:i.Kind.SCHEMA_DEFINITION,description:t,directives:r,operationTypes:n})}parseOperationTypeDefinition(){const e=this._lexer.token;const t=this.parseOperationType();this.expectToken(u.TokenKind.COLON);const r=this.parseNamedType();return this.node(e,{kind:i.Kind.OPERATION_TYPE_DEFINITION,operation:t,type:r})}parseScalarTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("scalar");const r=this.parseName();const n=this.parseConstDirectives();return this.node(e,{kind:i.Kind.SCALAR_TYPE_DEFINITION,description:t,name:r,directives:n})}parseObjectTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("type");const r=this.parseName();const n=this.parseImplementsInterfaces();const s=this.parseConstDirectives();const o=this.parseFieldsDefinition();return this.node(e,{kind:i.Kind.OBJECT_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:s,fields:o})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(u.TokenKind.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(u.TokenKind.BRACE_L,this.parseFieldDefinition,u.TokenKind.BRACE_R)}parseFieldDefinition(){const e=this._lexer.token;const t=this.parseDescription();const r=this.parseName();const n=this.parseArgumentDefs();this.expectToken(u.TokenKind.COLON);const s=this.parseTypeReference();const o=this.parseConstDirectives();return this.node(e,{kind:i.Kind.FIELD_DEFINITION,description:t,name:r,arguments:n,type:s,directives:o})}parseArgumentDefs(){return this.optionalMany(u.TokenKind.PAREN_L,this.parseInputValueDef,u.TokenKind.PAREN_R)}parseInputValueDef(){const e=this._lexer.token;const t=this.parseDescription();const r=this.parseName();this.expectToken(u.TokenKind.COLON);const n=this.parseTypeReference();let s;if(this.expectOptionalToken(u.TokenKind.EQUALS)){s=this.parseConstValueLiteral()}const o=this.parseConstDirectives();return this.node(e,{kind:i.Kind.INPUT_VALUE_DEFINITION,description:t,name:r,type:n,defaultValue:s,directives:o})}parseInterfaceTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("interface");const r=this.parseName();const n=this.parseImplementsInterfaces();const s=this.parseConstDirectives();const o=this.parseFieldsDefinition();return this.node(e,{kind:i.Kind.INTERFACE_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:s,fields:o})}parseUnionTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("union");const r=this.parseName();const n=this.parseConstDirectives();const s=this.parseUnionMemberTypes();return this.node(e,{kind:i.Kind.UNION_TYPE_DEFINITION,description:t,name:r,directives:n,types:s})}parseUnionMemberTypes(){return this.expectOptionalToken(u.TokenKind.EQUALS)?this.delimitedMany(u.TokenKind.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("enum");const r=this.parseName();const n=this.parseConstDirectives();const s=this.parseEnumValuesDefinition();return this.node(e,{kind:i.Kind.ENUM_TYPE_DEFINITION,description:t,name:r,directives:n,values:s})}parseEnumValuesDefinition(){return this.optionalMany(u.TokenKind.BRACE_L,this.parseEnumValueDefinition,u.TokenKind.BRACE_R)}parseEnumValueDefinition(){const e=this._lexer.token;const t=this.parseDescription();const r=this.parseEnumValueName();const n=this.parseConstDirectives();return this.node(e,{kind:i.Kind.ENUM_VALUE_DEFINITION,description:t,name:r,directives:n})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null"){throw(0,n.syntaxError)(this._lexer.source,this._lexer.token.start,`${getTokenDesc(this._lexer.token)} is reserved and cannot be used for an enum value.`)}return this.parseName()}parseInputObjectTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("input");const r=this.parseName();const n=this.parseConstDirectives();const s=this.parseInputFieldsDefinition();return this.node(e,{kind:i.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:r,directives:n,fields:s})}parseInputFieldsDefinition(){return this.optionalMany(u.TokenKind.BRACE_L,this.parseInputValueDef,u.TokenKind.BRACE_R)}parseTypeSystemExtension(){const e=this._lexer.lookahead();if(e.kind===u.TokenKind.NAME){switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}}throw this.unexpected(e)}parseSchemaExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("schema");const t=this.parseConstDirectives();const r=this.optionalMany(u.TokenKind.BRACE_L,this.parseOperationTypeDefinition,u.TokenKind.BRACE_R);if(t.length===0&&r.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.SCHEMA_EXTENSION,directives:t,operationTypes:r})}parseScalarTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("scalar");const t=this.parseName();const r=this.parseConstDirectives();if(r.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.SCALAR_TYPE_EXTENSION,name:t,directives:r})}parseObjectTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("type");const t=this.parseName();const r=this.parseImplementsInterfaces();const n=this.parseConstDirectives();const s=this.parseFieldsDefinition();if(r.length===0&&n.length===0&&s.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.OBJECT_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:s})}parseInterfaceTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("interface");const t=this.parseName();const r=this.parseImplementsInterfaces();const n=this.parseConstDirectives();const s=this.parseFieldsDefinition();if(r.length===0&&n.length===0&&s.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.INTERFACE_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:s})}parseUnionTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("union");const t=this.parseName();const r=this.parseConstDirectives();const n=this.parseUnionMemberTypes();if(r.length===0&&n.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.UNION_TYPE_EXTENSION,name:t,directives:r,types:n})}parseEnumTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("enum");const t=this.parseName();const r=this.parseConstDirectives();const n=this.parseEnumValuesDefinition();if(r.length===0&&n.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.ENUM_TYPE_EXTENSION,name:t,directives:r,values:n})}parseInputObjectTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("input");const t=this.parseName();const r=this.parseConstDirectives();const n=this.parseInputFieldsDefinition();if(r.length===0&&n.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:r,fields:n})}parseDirectiveDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("directive");this.expectToken(u.TokenKind.AT);const r=this.parseName();const n=this.parseArgumentDefs();const s=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");const o=this.parseDirectiveLocations();return this.node(e,{kind:i.Kind.DIRECTIVE_DEFINITION,description:t,name:r,arguments:n,repeatable:s,locations:o})}parseDirectiveLocations(){return this.delimitedMany(u.TokenKind.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){const e=this._lexer.token;const t=this.parseName();if(Object.prototype.hasOwnProperty.call(o.DirectiveLocation,t.value)){return t}throw this.unexpected(e)}node(e,t){if(this._options.noLocation!==true){t.loc=new s.Location(e,this._lexer.lastToken,this._lexer.source)}return t}peek(e){return this._lexer.token.kind===e}expectToken(e){const t=this._lexer.token;if(t.kind===e){this.advanceLexer();return t}throw(0,n.syntaxError)(this._lexer.source,t.start,`Expected ${getTokenKindDesc(e)}, found ${getTokenDesc(t)}.`)}expectOptionalToken(e){const t=this._lexer.token;if(t.kind===e){this.advanceLexer();return true}return false}expectKeyword(e){const t=this._lexer.token;if(t.kind===u.TokenKind.NAME&&t.value===e){this.advanceLexer()}else{throw(0,n.syntaxError)(this._lexer.source,t.start,`Expected "${e}", found ${getTokenDesc(t)}.`)}}expectOptionalKeyword(e){const t=this._lexer.token;if(t.kind===u.TokenKind.NAME&&t.value===e){this.advanceLexer();return true}return false}unexpected(e){const t=e!==null&&e!==void 0?e:this._lexer.token;return(0,n.syntaxError)(this._lexer.source,t.start,`Unexpected ${getTokenDesc(t)}.`)}any(e,t,r){this.expectToken(e);const n=[];while(!this.expectOptionalToken(r)){n.push(t.call(this))}return n}optionalMany(e,t,r){if(this.expectOptionalToken(e)){const e=[];do{e.push(t.call(this))}while(!this.expectOptionalToken(r));return e}return[]}many(e,t,r){this.expectToken(e);const n=[];do{n.push(t.call(this))}while(!this.expectOptionalToken(r));return n}delimitedMany(e,t){this.expectOptionalToken(e);const r=[];do{r.push(t.call(this))}while(this.expectOptionalToken(e));return r}advanceLexer(){const{maxTokens:e}=this._options;const t=this._lexer.advance();if(e!==undefined&&t.kind!==u.TokenKind.EOF){++this._tokenCounter;if(this._tokenCounter>e){throw(0,n.syntaxError)(this._lexer.source,t.start,`Document contains more that ${e} tokens. Parsing aborted.`)}}}}t.Parser=Parser;function getTokenDesc(e){const t=e.value;return getTokenKindDesc(e.kind)+(t!=null?` "${t}"`:"")}function getTokenKindDesc(e){return(0,a.isPunctuatorTokenKind)(e)?`"${e}"`:e}},15480:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.isConstValueNode=isConstValueNode;t.isDefinitionNode=isDefinitionNode;t.isExecutableDefinitionNode=isExecutableDefinitionNode;t.isSelectionNode=isSelectionNode;t.isTypeDefinitionNode=isTypeDefinitionNode;t.isTypeExtensionNode=isTypeExtensionNode;t.isTypeNode=isTypeNode;t.isTypeSystemDefinitionNode=isTypeSystemDefinitionNode;t.isTypeSystemExtensionNode=isTypeSystemExtensionNode;t.isValueNode=isValueNode;var n=r(11123);function isDefinitionNode(e){return isExecutableDefinitionNode(e)||isTypeSystemDefinitionNode(e)||isTypeSystemExtensionNode(e)}function isExecutableDefinitionNode(e){return e.kind===n.Kind.OPERATION_DEFINITION||e.kind===n.Kind.FRAGMENT_DEFINITION}function isSelectionNode(e){return e.kind===n.Kind.FIELD||e.kind===n.Kind.FRAGMENT_SPREAD||e.kind===n.Kind.INLINE_FRAGMENT}function isValueNode(e){return e.kind===n.Kind.VARIABLE||e.kind===n.Kind.INT||e.kind===n.Kind.FLOAT||e.kind===n.Kind.STRING||e.kind===n.Kind.BOOLEAN||e.kind===n.Kind.NULL||e.kind===n.Kind.ENUM||e.kind===n.Kind.LIST||e.kind===n.Kind.OBJECT}function isConstValueNode(e){return isValueNode(e)&&(e.kind===n.Kind.LIST?e.values.some(isConstValueNode):e.kind===n.Kind.OBJECT?e.fields.some((e=>isConstValueNode(e.value))):e.kind!==n.Kind.VARIABLE)}function isTypeNode(e){return e.kind===n.Kind.NAMED_TYPE||e.kind===n.Kind.LIST_TYPE||e.kind===n.Kind.NON_NULL_TYPE}function isTypeSystemDefinitionNode(e){return e.kind===n.Kind.SCHEMA_DEFINITION||isTypeDefinitionNode(e)||e.kind===n.Kind.DIRECTIVE_DEFINITION}function isTypeDefinitionNode(e){return e.kind===n.Kind.SCALAR_TYPE_DEFINITION||e.kind===n.Kind.OBJECT_TYPE_DEFINITION||e.kind===n.Kind.INTERFACE_TYPE_DEFINITION||e.kind===n.Kind.UNION_TYPE_DEFINITION||e.kind===n.Kind.ENUM_TYPE_DEFINITION||e.kind===n.Kind.INPUT_OBJECT_TYPE_DEFINITION}function isTypeSystemExtensionNode(e){return e.kind===n.Kind.SCHEMA_EXTENSION||isTypeExtensionNode(e)}function isTypeExtensionNode(e){return e.kind===n.Kind.SCALAR_TYPE_EXTENSION||e.kind===n.Kind.OBJECT_TYPE_EXTENSION||e.kind===n.Kind.INTERFACE_TYPE_EXTENSION||e.kind===n.Kind.UNION_TYPE_EXTENSION||e.kind===n.Kind.ENUM_TYPE_EXTENSION||e.kind===n.Kind.INPUT_OBJECT_TYPE_EXTENSION}},6512:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.printLocation=printLocation;t.printSourceLocation=printSourceLocation;var n=r(72245);function printLocation(e){return printSourceLocation(e.source,(0,n.getLocation)(e.source,e.start))}function printSourceLocation(e,t){const r=e.locationOffset.column-1;const n="".padStart(r)+e.body;const s=t.line-1;const o=e.locationOffset.line-1;const i=t.line+o;const a=t.line===1?r:0;const c=t.column+a;const u=`${e.name}:${i}:${c}\n`;const A=n.split(/\r\n|[\n\r]/g);const l=A[s];if(l.length>120){const e=Math.floor(c/80);const t=c%80;const r=[];for(let e=0;e["|",e])),["|","^".padStart(t)],["|",r[e+1]]])}return u+printPrefixedLines([[`${i-1} |`,A[s-1]],[`${i} |`,l],["|","^".padStart(c)],[`${i+1} |`,A[s+1]]])}function printPrefixedLines(e){const t=e.filter((([e,t])=>t!==undefined));const r=Math.max(...t.map((([e])=>e.length)));return t.map((([e,t])=>e.padStart(r)+(t?" "+t:""))).join("\n")}},69934:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.printString=printString;function printString(e){return`"${e.replace(r,escapedReplacer)}"`}const r=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function escapedReplacer(e){return n[e.charCodeAt(0)]}const n=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"]},59936:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.print=print;var n=r(77508);var s=r(69934);var o=r(30638);function print(e){return(0,o.visit)(e,a)}const i=80;const a={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>join(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=wrap("(",join(e.variableDefinitions,", "),")");const r=join([e.operation,join([e.name,t]),join(e.directives," ")]," ");return(r==="query"?"":r+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:r,directives:n})=>e+": "+t+wrap(" = ",r)+wrap(" ",join(n," "))},SelectionSet:{leave:({selections:e})=>block(e)},Field:{leave({alias:e,name:t,arguments:r,directives:n,selectionSet:s}){const o=wrap("",e,": ")+t;let a=o+wrap("(",join(r,", "),")");if(a.length>i){a=o+wrap("(\n",indent(join(r,"\n")),"\n)")}return join([a,join(n," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+wrap(" ",join(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:r})=>join(["...",wrap("on ",e),join(t," "),r]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:r,directives:n,selectionSet:s})=>`fragment ${e}${wrap("(",join(r,", "),")")} `+`on ${t} ${wrap("",join(n," ")," ")}`+s},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?(0,n.printBlockString)(e):(0,s.printString)(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+join(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+join(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+wrap("(",join(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:r})=>wrap("",e,"\n")+join(["schema",join(t," "),block(r)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:r})=>wrap("",e,"\n")+join(["scalar",t,join(r," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:r,directives:n,fields:s})=>wrap("",e,"\n")+join(["type",t,wrap("implements ",join(r," & ")),join(n," "),block(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:r,type:n,directives:s})=>wrap("",e,"\n")+t+(hasMultilineItems(r)?wrap("(\n",indent(join(r,"\n")),"\n)"):wrap("(",join(r,", "),")"))+": "+n+wrap(" ",join(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:r,defaultValue:n,directives:s})=>wrap("",e,"\n")+join([t+": "+r,wrap("= ",n),join(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:r,directives:n,fields:s})=>wrap("",e,"\n")+join(["interface",t,wrap("implements ",join(r," & ")),join(n," "),block(s)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:r,types:n})=>wrap("",e,"\n")+join(["union",t,join(r," "),wrap("= ",join(n," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:r,values:n})=>wrap("",e,"\n")+join(["enum",t,join(r," "),block(n)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:r})=>wrap("",e,"\n")+join([t,join(r," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:r,fields:n})=>wrap("",e,"\n")+join(["input",t,join(r," "),block(n)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:r,repeatable:n,locations:s})=>wrap("",e,"\n")+"directive @"+t+(hasMultilineItems(r)?wrap("(\n",indent(join(r,"\n")),"\n)"):wrap("(",join(r,", "),")"))+(n?" repeatable":"")+" on "+join(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>join(["extend schema",join(e," "),block(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>join(["extend scalar",e,join(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:r,fields:n})=>join(["extend type",e,wrap("implements ",join(t," & ")),join(r," "),block(n)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:r,fields:n})=>join(["extend interface",e,wrap("implements ",join(t," & ")),join(r," "),block(n)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:r})=>join(["extend union",e,join(t," "),wrap("= ",join(r," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:r})=>join(["extend enum",e,join(t," "),block(r)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:r})=>join(["extend input",e,join(t," "),block(r)]," ")}};function join(e,t=""){var r;return(r=e===null||e===void 0?void 0:e.filter((e=>e)).join(t))!==null&&r!==void 0?r:""}function block(e){return wrap("{\n",indent(join(e,"\n")),"\n}")}function wrap(e,t,r=""){return t!=null&&t!==""?e+t+r:""}function indent(e){return wrap(" ",e.replace(/\n/g,"\n "))}function hasMultilineItems(e){var t;return(t=e===null||e===void 0?void 0:e.some((e=>e.includes("\n"))))!==null&&t!==void 0?t:false}},40203:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Source=void 0;t.isSource=isSource;var n=r(65383);var s=r(25742);var o=r(45914);class Source{constructor(e,t="GraphQL request",r={line:1,column:1}){typeof e==="string"||(0,n.devAssert)(false,`Body must be a string. Received: ${(0,s.inspect)(e)}.`);this.body=e;this.name=t;this.locationOffset=r;this.locationOffset.line>0||(0,n.devAssert)(false,"line in locationOffset is 1-indexed and must be positive.");this.locationOffset.column>0||(0,n.devAssert)(false,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}}t.Source=Source;function isSource(e){return(0,o.instanceOf)(e,Source)}},1743:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.TokenKind=void 0;var r;t.TokenKind=r;(function(e){e["SOF"]="";e["EOF"]="";e["BANG"]="!";e["DOLLAR"]="$";e["AMP"]="&";e["PAREN_L"]="(";e["PAREN_R"]=")";e["SPREAD"]="...";e["COLON"]=":";e["EQUALS"]="=";e["AT"]="@";e["BRACKET_L"]="[";e["BRACKET_R"]="]";e["BRACE_L"]="{";e["PIPE"]="|";e["BRACE_R"]="}";e["NAME"]="Name";e["INT"]="Int";e["FLOAT"]="Float";e["STRING"]="String";e["BLOCK_STRING"]="BlockString";e["COMMENT"]="Comment"})(r||(t.TokenKind=r={}))},30638:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.BREAK=void 0;t.getEnterLeaveForKind=getEnterLeaveForKind;t.getVisitFn=getVisitFn;t.visit=visit;t.visitInParallel=visitInParallel;var n=r(65383);var s=r(25742);var o=r(22740);var i=r(11123);const a=Object.freeze({});t.BREAK=a;function visit(e,t,r=o.QueryDocumentKeys){const c=new Map;for(const e of Object.values(i.Kind)){c.set(e,getEnterLeaveForKind(t,e))}let u=undefined;let A=Array.isArray(e);let l=[e];let d=-1;let p=[];let g=e;let h=undefined;let m=undefined;const E=[];const y=[];do{d++;const e=d===l.length;const i=e&&p.length!==0;if(e){h=y.length===0?undefined:E[E.length-1];g=m;m=y.pop();if(i){if(A){g=g.slice();let e=0;for(const[t,r]of p){const n=t-e;if(r===null){g.splice(n,1);e++}else{g[n]=r}}}else{g=Object.defineProperties({},Object.getOwnPropertyDescriptors(g));for(const[e,t]of p){g[e]=t}}}d=u.index;l=u.keys;p=u.edits;A=u.inArray;u=u.prev}else if(m){h=A?d:l[d];g=m[h];if(g===null||g===undefined){continue}E.push(h)}let B;if(!Array.isArray(g)){var I,C;(0,o.isNode)(g)||(0,n.devAssert)(false,`Invalid AST Node: ${(0,s.inspect)(g)}.`);const r=e?(I=c.get(g.kind))===null||I===void 0?void 0:I.leave:(C=c.get(g.kind))===null||C===void 0?void 0:C.enter;B=r===null||r===void 0?void 0:r.call(t,g,h,m,E,y);if(B===a){break}if(B===false){if(!e){E.pop();continue}}else if(B!==undefined){p.push([h,B]);if(!e){if((0,o.isNode)(B)){g=B}else{E.pop();continue}}}}if(B===undefined&&i){p.push([h,g])}if(e){E.pop()}else{var b;u={inArray:A,index:d,keys:l,edits:p,prev:u};A=Array.isArray(g);l=A?g:(b=r[g.kind])!==null&&b!==void 0?b:[];d=-1;p=[];if(m){y.push(m)}m=g}}while(u!==undefined);if(p.length!==0){return p[p.length-1][1]}return e}function visitInParallel(e){const t=new Array(e.length).fill(null);const r=Object.create(null);for(const n of Object.values(i.Kind)){let s=false;const o=new Array(e.length).fill(undefined);const i=new Array(e.length).fill(undefined);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:true});t.assertEnumValueName=assertEnumValueName;t.assertName=assertName;var n=r(65383);var s=r(15939);var o=r(83271);function assertName(e){e!=null||(0,n.devAssert)(false,"Must provide name.");typeof e==="string"||(0,n.devAssert)(false,"Expected name to be a string.");if(e.length===0){throw new s.GraphQLError("Expected name to be a non-empty string.")}for(let t=1;t{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLUnionType=t.GraphQLScalarType=t.GraphQLObjectType=t.GraphQLNonNull=t.GraphQLList=t.GraphQLInterfaceType=t.GraphQLInputObjectType=t.GraphQLEnumType=void 0;t.argsToArgsConfig=argsToArgsConfig;t.assertAbstractType=assertAbstractType;t.assertCompositeType=assertCompositeType;t.assertEnumType=assertEnumType;t.assertInputObjectType=assertInputObjectType;t.assertInputType=assertInputType;t.assertInterfaceType=assertInterfaceType;t.assertLeafType=assertLeafType;t.assertListType=assertListType;t.assertNamedType=assertNamedType;t.assertNonNullType=assertNonNullType;t.assertNullableType=assertNullableType;t.assertObjectType=assertObjectType;t.assertOutputType=assertOutputType;t.assertScalarType=assertScalarType;t.assertType=assertType;t.assertUnionType=assertUnionType;t.assertWrappingType=assertWrappingType;t.defineArguments=defineArguments;t.getNamedType=getNamedType;t.getNullableType=getNullableType;t.isAbstractType=isAbstractType;t.isCompositeType=isCompositeType;t.isEnumType=isEnumType;t.isInputObjectType=isInputObjectType;t.isInputType=isInputType;t.isInterfaceType=isInterfaceType;t.isLeafType=isLeafType;t.isListType=isListType;t.isNamedType=isNamedType;t.isNonNullType=isNonNullType;t.isNullableType=isNullableType;t.isObjectType=isObjectType;t.isOutputType=isOutputType;t.isRequiredArgument=isRequiredArgument;t.isRequiredInputField=isRequiredInputField;t.isScalarType=isScalarType;t.isType=isType;t.isUnionType=isUnionType;t.isWrappingType=isWrappingType;t.resolveObjMapThunk=resolveObjMapThunk;t.resolveReadonlyArrayThunk=resolveReadonlyArrayThunk;var n=r(65383);var s=r(41353);var o=r(86588);var i=r(25742);var a=r(45914);var c=r(20892);var u=r(37579);var A=r(3166);var l=r(65719);var d=r(47904);var p=r(87104);var g=r(15939);var h=r(11123);var m=r(59936);var E=r(35470);var y=r(58337);function isType(e){return isScalarType(e)||isObjectType(e)||isInterfaceType(e)||isUnionType(e)||isEnumType(e)||isInputObjectType(e)||isListType(e)||isNonNullType(e)}function assertType(e){if(!isType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL type.`)}return e}function isScalarType(e){return(0,a.instanceOf)(e,GraphQLScalarType)}function assertScalarType(e){if(!isScalarType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Scalar type.`)}return e}function isObjectType(e){return(0,a.instanceOf)(e,GraphQLObjectType)}function assertObjectType(e){if(!isObjectType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Object type.`)}return e}function isInterfaceType(e){return(0,a.instanceOf)(e,GraphQLInterfaceType)}function assertInterfaceType(e){if(!isInterfaceType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Interface type.`)}return e}function isUnionType(e){return(0,a.instanceOf)(e,GraphQLUnionType)}function assertUnionType(e){if(!isUnionType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Union type.`)}return e}function isEnumType(e){return(0,a.instanceOf)(e,GraphQLEnumType)}function assertEnumType(e){if(!isEnumType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Enum type.`)}return e}function isInputObjectType(e){return(0,a.instanceOf)(e,GraphQLInputObjectType)}function assertInputObjectType(e){if(!isInputObjectType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Input Object type.`)}return e}function isListType(e){return(0,a.instanceOf)(e,GraphQLList)}function assertListType(e){if(!isListType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL List type.`)}return e}function isNonNullType(e){return(0,a.instanceOf)(e,GraphQLNonNull)}function assertNonNullType(e){if(!isNonNullType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Non-Null type.`)}return e}function isInputType(e){return isScalarType(e)||isEnumType(e)||isInputObjectType(e)||isWrappingType(e)&&isInputType(e.ofType)}function assertInputType(e){if(!isInputType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL input type.`)}return e}function isOutputType(e){return isScalarType(e)||isObjectType(e)||isInterfaceType(e)||isUnionType(e)||isEnumType(e)||isWrappingType(e)&&isOutputType(e.ofType)}function assertOutputType(e){if(!isOutputType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL output type.`)}return e}function isLeafType(e){return isScalarType(e)||isEnumType(e)}function assertLeafType(e){if(!isLeafType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL leaf type.`)}return e}function isCompositeType(e){return isObjectType(e)||isInterfaceType(e)||isUnionType(e)}function assertCompositeType(e){if(!isCompositeType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL composite type.`)}return e}function isAbstractType(e){return isInterfaceType(e)||isUnionType(e)}function assertAbstractType(e){if(!isAbstractType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL abstract type.`)}return e}class GraphQLList{constructor(e){isType(e)||(0,n.devAssert)(false,`Expected ${(0,i.inspect)(e)} to be a GraphQL type.`);this.ofType=e}get[Symbol.toStringTag](){return"GraphQLList"}toString(){return"["+String(this.ofType)+"]"}toJSON(){return this.toString()}}t.GraphQLList=GraphQLList;class GraphQLNonNull{constructor(e){isNullableType(e)||(0,n.devAssert)(false,`Expected ${(0,i.inspect)(e)} to be a GraphQL nullable type.`);this.ofType=e}get[Symbol.toStringTag](){return"GraphQLNonNull"}toString(){return String(this.ofType)+"!"}toJSON(){return this.toString()}}t.GraphQLNonNull=GraphQLNonNull;function isWrappingType(e){return isListType(e)||isNonNullType(e)}function assertWrappingType(e){if(!isWrappingType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL wrapping type.`)}return e}function isNullableType(e){return isType(e)&&!isNonNullType(e)}function assertNullableType(e){if(!isNullableType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL nullable type.`)}return e}function getNullableType(e){if(e){return isNonNullType(e)?e.ofType:e}}function isNamedType(e){return isScalarType(e)||isObjectType(e)||isInterfaceType(e)||isUnionType(e)||isEnumType(e)||isInputObjectType(e)}function assertNamedType(e){if(!isNamedType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL named type.`)}return e}function getNamedType(e){if(e){let t=e;while(isWrappingType(t)){t=t.ofType}return t}}function resolveReadonlyArrayThunk(e){return typeof e==="function"?e():e}function resolveObjMapThunk(e){return typeof e==="function"?e():e}class GraphQLScalarType{constructor(e){var t,r,s,a;const c=(t=e.parseValue)!==null&&t!==void 0?t:o.identityFunc;this.name=(0,y.assertName)(e.name);this.description=e.description;this.specifiedByURL=e.specifiedByURL;this.serialize=(r=e.serialize)!==null&&r!==void 0?r:o.identityFunc;this.parseValue=c;this.parseLiteral=(s=e.parseLiteral)!==null&&s!==void 0?s:(e,t)=>c((0,E.valueFromASTUntyped)(e,t));this.extensions=(0,p.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(a=e.extensionASTNodes)!==null&&a!==void 0?a:[];e.specifiedByURL==null||typeof e.specifiedByURL==="string"||(0,n.devAssert)(false,`${this.name} must provide "specifiedByURL" as a string, `+`but got: ${(0,i.inspect)(e.specifiedByURL)}.`);e.serialize==null||typeof e.serialize==="function"||(0,n.devAssert)(false,`${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`);if(e.parseLiteral){typeof e.parseValue==="function"&&typeof e.parseLiteral==="function"||(0,n.devAssert)(false,`${this.name} must provide both "parseValue" and "parseLiteral" functions.`)}}get[Symbol.toStringTag](){return"GraphQLScalarType"}toConfig(){return{name:this.name,description:this.description,specifiedByURL:this.specifiedByURL,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLScalarType=GraphQLScalarType;class GraphQLObjectType{constructor(e){var t;this.name=(0,y.assertName)(e.name);this.description=e.description;this.isTypeOf=e.isTypeOf;this.extensions=(0,p.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._fields=()=>defineFieldMap(e);this._interfaces=()=>defineInterfaces(e);e.isTypeOf==null||typeof e.isTypeOf==="function"||(0,n.devAssert)(false,`${this.name} must provide "isTypeOf" as a function, `+`but got: ${(0,i.inspect)(e.isTypeOf)}.`)}get[Symbol.toStringTag](){return"GraphQLObjectType"}getFields(){if(typeof this._fields==="function"){this._fields=this._fields()}return this._fields}getInterfaces(){if(typeof this._interfaces==="function"){this._interfaces=this._interfaces()}return this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:fieldsToFieldsConfig(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLObjectType=GraphQLObjectType;function defineInterfaces(e){var t;const r=resolveReadonlyArrayThunk((t=e.interfaces)!==null&&t!==void 0?t:[]);Array.isArray(r)||(0,n.devAssert)(false,`${e.name} interfaces must be an Array or a function which returns an Array.`);return r}function defineFieldMap(e){const t=resolveObjMapThunk(e.fields);isPlainObj(t)||(0,n.devAssert)(false,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`);return(0,l.mapValue)(t,((t,r)=>{var s;isPlainObj(t)||(0,n.devAssert)(false,`${e.name}.${r} field config must be an object.`);t.resolve==null||typeof t.resolve==="function"||(0,n.devAssert)(false,`${e.name}.${r} field resolver must be a function if `+`provided, but got: ${(0,i.inspect)(t.resolve)}.`);const o=(s=t.args)!==null&&s!==void 0?s:{};isPlainObj(o)||(0,n.devAssert)(false,`${e.name}.${r} args must be an object with argument names as keys.`);return{name:(0,y.assertName)(r),description:t.description,type:t.type,args:defineArguments(o),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:(0,p.toObjMap)(t.extensions),astNode:t.astNode}}))}function defineArguments(e){return Object.entries(e).map((([e,t])=>({name:(0,y.assertName)(e),description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:(0,p.toObjMap)(t.extensions),astNode:t.astNode})))}function isPlainObj(e){return(0,c.isObjectLike)(e)&&!Array.isArray(e)}function fieldsToFieldsConfig(e){return(0,l.mapValue)(e,(e=>({description:e.description,type:e.type,args:argsToArgsConfig(e.args),resolve:e.resolve,subscribe:e.subscribe,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})))}function argsToArgsConfig(e){return(0,A.keyValMap)(e,(e=>e.name),(e=>({description:e.description,type:e.type,defaultValue:e.defaultValue,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})))}function isRequiredArgument(e){return isNonNullType(e.type)&&e.defaultValue===undefined}class GraphQLInterfaceType{constructor(e){var t;this.name=(0,y.assertName)(e.name);this.description=e.description;this.resolveType=e.resolveType;this.extensions=(0,p.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._fields=defineFieldMap.bind(undefined,e);this._interfaces=defineInterfaces.bind(undefined,e);e.resolveType==null||typeof e.resolveType==="function"||(0,n.devAssert)(false,`${this.name} must provide "resolveType" as a function, `+`but got: ${(0,i.inspect)(e.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLInterfaceType"}getFields(){if(typeof this._fields==="function"){this._fields=this._fields()}return this._fields}getInterfaces(){if(typeof this._interfaces==="function"){this._interfaces=this._interfaces()}return this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:fieldsToFieldsConfig(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLInterfaceType=GraphQLInterfaceType;class GraphQLUnionType{constructor(e){var t;this.name=(0,y.assertName)(e.name);this.description=e.description;this.resolveType=e.resolveType;this.extensions=(0,p.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._types=defineTypes.bind(undefined,e);e.resolveType==null||typeof e.resolveType==="function"||(0,n.devAssert)(false,`${this.name} must provide "resolveType" as a function, `+`but got: ${(0,i.inspect)(e.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLUnionType"}getTypes(){if(typeof this._types==="function"){this._types=this._types()}return this._types}toConfig(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLUnionType=GraphQLUnionType;function defineTypes(e){const t=resolveReadonlyArrayThunk(e.types);Array.isArray(t)||(0,n.devAssert)(false,`Must provide Array of types or a function which returns such an array for Union ${e.name}.`);return t}class GraphQLEnumType{constructor(e){var t;this.name=(0,y.assertName)(e.name);this.description=e.description;this.extensions=(0,p.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._values=typeof e.values==="function"?e.values:defineEnumValues(this.name,e.values);this._valueLookup=null;this._nameLookup=null}get[Symbol.toStringTag](){return"GraphQLEnumType"}getValues(){if(typeof this._values==="function"){this._values=defineEnumValues(this.name,this._values())}return this._values}getValue(e){if(this._nameLookup===null){this._nameLookup=(0,u.keyMap)(this.getValues(),(e=>e.name))}return this._nameLookup[e]}serialize(e){if(this._valueLookup===null){this._valueLookup=new Map(this.getValues().map((e=>[e.value,e])))}const t=this._valueLookup.get(e);if(t===undefined){throw new g.GraphQLError(`Enum "${this.name}" cannot represent value: ${(0,i.inspect)(e)}`)}return t.name}parseValue(e){if(typeof e!=="string"){const t=(0,i.inspect)(e);throw new g.GraphQLError(`Enum "${this.name}" cannot represent non-string value: ${t}.`+didYouMeanEnumValue(this,t))}const t=this.getValue(e);if(t==null){throw new g.GraphQLError(`Value "${e}" does not exist in "${this.name}" enum.`+didYouMeanEnumValue(this,e))}return t.value}parseLiteral(e,t){if(e.kind!==h.Kind.ENUM){const t=(0,m.print)(e);throw new g.GraphQLError(`Enum "${this.name}" cannot represent non-enum value: ${t}.`+didYouMeanEnumValue(this,t),{nodes:e})}const r=this.getValue(e.value);if(r==null){const t=(0,m.print)(e);throw new g.GraphQLError(`Value "${t}" does not exist in "${this.name}" enum.`+didYouMeanEnumValue(this,t),{nodes:e})}return r.value}toConfig(){const e=(0,A.keyValMap)(this.getValues(),(e=>e.name),(e=>({description:e.description,value:e.value,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})));return{name:this.name,description:this.description,values:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLEnumType=GraphQLEnumType;function didYouMeanEnumValue(e,t){const r=e.getValues().map((e=>e.name));const n=(0,d.suggestionList)(t,r);return(0,s.didYouMean)("the enum value",n)}function defineEnumValues(e,t){isPlainObj(t)||(0,n.devAssert)(false,`${e} values must be an object with value names as keys.`);return Object.entries(t).map((([t,r])=>{isPlainObj(r)||(0,n.devAssert)(false,`${e}.${t} must refer to an object with a "value" key `+`representing an internal value but got: ${(0,i.inspect)(r)}.`);return{name:(0,y.assertEnumValueName)(t),description:r.description,value:r.value!==undefined?r.value:t,deprecationReason:r.deprecationReason,extensions:(0,p.toObjMap)(r.extensions),astNode:r.astNode}}))}class GraphQLInputObjectType{constructor(e){var t,r;this.name=(0,y.assertName)(e.name);this.description=e.description;this.extensions=(0,p.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this.isOneOf=(r=e.isOneOf)!==null&&r!==void 0?r:false;this._fields=defineInputFieldMap.bind(undefined,e)}get[Symbol.toStringTag](){return"GraphQLInputObjectType"}getFields(){if(typeof this._fields==="function"){this._fields=this._fields()}return this._fields}toConfig(){const e=(0,l.mapValue)(this.getFields(),(e=>({description:e.description,type:e.type,defaultValue:e.defaultValue,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})));return{name:this.name,description:this.description,fields:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,isOneOf:this.isOneOf}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLInputObjectType=GraphQLInputObjectType;function defineInputFieldMap(e){const t=resolveObjMapThunk(e.fields);isPlainObj(t)||(0,n.devAssert)(false,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`);return(0,l.mapValue)(t,((t,r)=>{!("resolve"in t)||(0,n.devAssert)(false,`${e.name}.${r} field has a resolve property, but Input Types cannot define resolvers.`);return{name:(0,y.assertName)(r),description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:(0,p.toObjMap)(t.extensions),astNode:t.astNode}}))}function isRequiredInputField(e){return isNonNullType(e.type)&&e.defaultValue===undefined}},21058:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLSpecifiedByDirective=t.GraphQLSkipDirective=t.GraphQLOneOfDirective=t.GraphQLIncludeDirective=t.GraphQLDirective=t.GraphQLDeprecatedDirective=t.DEFAULT_DEPRECATION_REASON=void 0;t.assertDirective=assertDirective;t.isDirective=isDirective;t.isSpecifiedDirective=isSpecifiedDirective;t.specifiedDirectives=void 0;var n=r(65383);var s=r(25742);var o=r(45914);var i=r(20892);var a=r(87104);var c=r(22582);var u=r(58337);var A=r(84169);var l=r(93571);function isDirective(e){return(0,o.instanceOf)(e,GraphQLDirective)}function assertDirective(e){if(!isDirective(e)){throw new Error(`Expected ${(0,s.inspect)(e)} to be a GraphQL directive.`)}return e}class GraphQLDirective{constructor(e){var t,r;this.name=(0,u.assertName)(e.name);this.description=e.description;this.locations=e.locations;this.isRepeatable=(t=e.isRepeatable)!==null&&t!==void 0?t:false;this.extensions=(0,a.toObjMap)(e.extensions);this.astNode=e.astNode;Array.isArray(e.locations)||(0,n.devAssert)(false,`@${e.name} locations must be an Array.`);const s=(r=e.args)!==null&&r!==void 0?r:{};(0,i.isObjectLike)(s)&&!Array.isArray(s)||(0,n.devAssert)(false,`@${e.name} args must be an object with argument names as keys.`);this.args=(0,A.defineArguments)(s)}get[Symbol.toStringTag](){return"GraphQLDirective"}toConfig(){return{name:this.name,description:this.description,locations:this.locations,args:(0,A.argsToArgsConfig)(this.args),isRepeatable:this.isRepeatable,extensions:this.extensions,astNode:this.astNode}}toString(){return"@"+this.name}toJSON(){return this.toString()}}t.GraphQLDirective=GraphQLDirective;const d=new GraphQLDirective({name:"include",description:"Directs the executor to include this field or fragment only when the `if` argument is true.",locations:[c.DirectiveLocation.FIELD,c.DirectiveLocation.FRAGMENT_SPREAD,c.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new A.GraphQLNonNull(l.GraphQLBoolean),description:"Included when true."}}});t.GraphQLIncludeDirective=d;const p=new GraphQLDirective({name:"skip",description:"Directs the executor to skip this field or fragment when the `if` argument is true.",locations:[c.DirectiveLocation.FIELD,c.DirectiveLocation.FRAGMENT_SPREAD,c.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new A.GraphQLNonNull(l.GraphQLBoolean),description:"Skipped when true."}}});t.GraphQLSkipDirective=p;const g="No longer supported";t.DEFAULT_DEPRECATION_REASON=g;const h=new GraphQLDirective({name:"deprecated",description:"Marks an element of a GraphQL schema as no longer supported.",locations:[c.DirectiveLocation.FIELD_DEFINITION,c.DirectiveLocation.ARGUMENT_DEFINITION,c.DirectiveLocation.INPUT_FIELD_DEFINITION,c.DirectiveLocation.ENUM_VALUE],args:{reason:{type:l.GraphQLString,description:"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).",defaultValue:g}}});t.GraphQLDeprecatedDirective=h;const m=new GraphQLDirective({name:"specifiedBy",description:"Exposes a URL that specifies the behavior of this scalar.",locations:[c.DirectiveLocation.SCALAR],args:{url:{type:new A.GraphQLNonNull(l.GraphQLString),description:"The URL that specifies the behavior of this scalar."}}});t.GraphQLSpecifiedByDirective=m;const E=new GraphQLDirective({name:"oneOf",description:"Indicates exactly one field must be supplied and this field must not be `null`.",locations:[c.DirectiveLocation.INPUT_OBJECT],args:{}});t.GraphQLOneOfDirective=E;const y=Object.freeze([d,p,h,m,E]);t.specifiedDirectives=y;function isSpecifiedDirective(e){return y.some((({name:t})=>t===e.name))}},66618:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"DEFAULT_DEPRECATION_REASON",{enumerable:true,get:function(){return o.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(t,"GRAPHQL_MAX_INT",{enumerable:true,get:function(){return i.GRAPHQL_MAX_INT}});Object.defineProperty(t,"GRAPHQL_MIN_INT",{enumerable:true,get:function(){return i.GRAPHQL_MIN_INT}});Object.defineProperty(t,"GraphQLBoolean",{enumerable:true,get:function(){return i.GraphQLBoolean}});Object.defineProperty(t,"GraphQLDeprecatedDirective",{enumerable:true,get:function(){return o.GraphQLDeprecatedDirective}});Object.defineProperty(t,"GraphQLDirective",{enumerable:true,get:function(){return o.GraphQLDirective}});Object.defineProperty(t,"GraphQLEnumType",{enumerable:true,get:function(){return s.GraphQLEnumType}});Object.defineProperty(t,"GraphQLFloat",{enumerable:true,get:function(){return i.GraphQLFloat}});Object.defineProperty(t,"GraphQLID",{enumerable:true,get:function(){return i.GraphQLID}});Object.defineProperty(t,"GraphQLIncludeDirective",{enumerable:true,get:function(){return o.GraphQLIncludeDirective}});Object.defineProperty(t,"GraphQLInputObjectType",{enumerable:true,get:function(){return s.GraphQLInputObjectType}});Object.defineProperty(t,"GraphQLInt",{enumerable:true,get:function(){return i.GraphQLInt}});Object.defineProperty(t,"GraphQLInterfaceType",{enumerable:true,get:function(){return s.GraphQLInterfaceType}});Object.defineProperty(t,"GraphQLList",{enumerable:true,get:function(){return s.GraphQLList}});Object.defineProperty(t,"GraphQLNonNull",{enumerable:true,get:function(){return s.GraphQLNonNull}});Object.defineProperty(t,"GraphQLObjectType",{enumerable:true,get:function(){return s.GraphQLObjectType}});Object.defineProperty(t,"GraphQLOneOfDirective",{enumerable:true,get:function(){return o.GraphQLOneOfDirective}});Object.defineProperty(t,"GraphQLScalarType",{enumerable:true,get:function(){return s.GraphQLScalarType}});Object.defineProperty(t,"GraphQLSchema",{enumerable:true,get:function(){return n.GraphQLSchema}});Object.defineProperty(t,"GraphQLSkipDirective",{enumerable:true,get:function(){return o.GraphQLSkipDirective}});Object.defineProperty(t,"GraphQLSpecifiedByDirective",{enumerable:true,get:function(){return o.GraphQLSpecifiedByDirective}});Object.defineProperty(t,"GraphQLString",{enumerable:true,get:function(){return i.GraphQLString}});Object.defineProperty(t,"GraphQLUnionType",{enumerable:true,get:function(){return s.GraphQLUnionType}});Object.defineProperty(t,"SchemaMetaFieldDef",{enumerable:true,get:function(){return a.SchemaMetaFieldDef}});Object.defineProperty(t,"TypeKind",{enumerable:true,get:function(){return a.TypeKind}});Object.defineProperty(t,"TypeMetaFieldDef",{enumerable:true,get:function(){return a.TypeMetaFieldDef}});Object.defineProperty(t,"TypeNameMetaFieldDef",{enumerable:true,get:function(){return a.TypeNameMetaFieldDef}});Object.defineProperty(t,"__Directive",{enumerable:true,get:function(){return a.__Directive}});Object.defineProperty(t,"__DirectiveLocation",{enumerable:true,get:function(){return a.__DirectiveLocation}});Object.defineProperty(t,"__EnumValue",{enumerable:true,get:function(){return a.__EnumValue}});Object.defineProperty(t,"__Field",{enumerable:true,get:function(){return a.__Field}});Object.defineProperty(t,"__InputValue",{enumerable:true,get:function(){return a.__InputValue}});Object.defineProperty(t,"__Schema",{enumerable:true,get:function(){return a.__Schema}});Object.defineProperty(t,"__Type",{enumerable:true,get:function(){return a.__Type}});Object.defineProperty(t,"__TypeKind",{enumerable:true,get:function(){return a.__TypeKind}});Object.defineProperty(t,"assertAbstractType",{enumerable:true,get:function(){return s.assertAbstractType}});Object.defineProperty(t,"assertCompositeType",{enumerable:true,get:function(){return s.assertCompositeType}});Object.defineProperty(t,"assertDirective",{enumerable:true,get:function(){return o.assertDirective}});Object.defineProperty(t,"assertEnumType",{enumerable:true,get:function(){return s.assertEnumType}});Object.defineProperty(t,"assertEnumValueName",{enumerable:true,get:function(){return u.assertEnumValueName}});Object.defineProperty(t,"assertInputObjectType",{enumerable:true,get:function(){return s.assertInputObjectType}});Object.defineProperty(t,"assertInputType",{enumerable:true,get:function(){return s.assertInputType}});Object.defineProperty(t,"assertInterfaceType",{enumerable:true,get:function(){return s.assertInterfaceType}});Object.defineProperty(t,"assertLeafType",{enumerable:true,get:function(){return s.assertLeafType}});Object.defineProperty(t,"assertListType",{enumerable:true,get:function(){return s.assertListType}});Object.defineProperty(t,"assertName",{enumerable:true,get:function(){return u.assertName}});Object.defineProperty(t,"assertNamedType",{enumerable:true,get:function(){return s.assertNamedType}});Object.defineProperty(t,"assertNonNullType",{enumerable:true,get:function(){return s.assertNonNullType}});Object.defineProperty(t,"assertNullableType",{enumerable:true,get:function(){return s.assertNullableType}});Object.defineProperty(t,"assertObjectType",{enumerable:true,get:function(){return s.assertObjectType}});Object.defineProperty(t,"assertOutputType",{enumerable:true,get:function(){return s.assertOutputType}});Object.defineProperty(t,"assertScalarType",{enumerable:true,get:function(){return s.assertScalarType}});Object.defineProperty(t,"assertSchema",{enumerable:true,get:function(){return n.assertSchema}});Object.defineProperty(t,"assertType",{enumerable:true,get:function(){return s.assertType}});Object.defineProperty(t,"assertUnionType",{enumerable:true,get:function(){return s.assertUnionType}});Object.defineProperty(t,"assertValidSchema",{enumerable:true,get:function(){return c.assertValidSchema}});Object.defineProperty(t,"assertWrappingType",{enumerable:true,get:function(){return s.assertWrappingType}});Object.defineProperty(t,"getNamedType",{enumerable:true,get:function(){return s.getNamedType}});Object.defineProperty(t,"getNullableType",{enumerable:true,get:function(){return s.getNullableType}});Object.defineProperty(t,"introspectionTypes",{enumerable:true,get:function(){return a.introspectionTypes}});Object.defineProperty(t,"isAbstractType",{enumerable:true,get:function(){return s.isAbstractType}});Object.defineProperty(t,"isCompositeType",{enumerable:true,get:function(){return s.isCompositeType}});Object.defineProperty(t,"isDirective",{enumerable:true,get:function(){return o.isDirective}});Object.defineProperty(t,"isEnumType",{enumerable:true,get:function(){return s.isEnumType}});Object.defineProperty(t,"isInputObjectType",{enumerable:true,get:function(){return s.isInputObjectType}});Object.defineProperty(t,"isInputType",{enumerable:true,get:function(){return s.isInputType}});Object.defineProperty(t,"isInterfaceType",{enumerable:true,get:function(){return s.isInterfaceType}});Object.defineProperty(t,"isIntrospectionType",{enumerable:true,get:function(){return a.isIntrospectionType}});Object.defineProperty(t,"isLeafType",{enumerable:true,get:function(){return s.isLeafType}});Object.defineProperty(t,"isListType",{enumerable:true,get:function(){return s.isListType}});Object.defineProperty(t,"isNamedType",{enumerable:true,get:function(){return s.isNamedType}});Object.defineProperty(t,"isNonNullType",{enumerable:true,get:function(){return s.isNonNullType}});Object.defineProperty(t,"isNullableType",{enumerable:true,get:function(){return s.isNullableType}});Object.defineProperty(t,"isObjectType",{enumerable:true,get:function(){return s.isObjectType}});Object.defineProperty(t,"isOutputType",{enumerable:true,get:function(){return s.isOutputType}});Object.defineProperty(t,"isRequiredArgument",{enumerable:true,get:function(){return s.isRequiredArgument}});Object.defineProperty(t,"isRequiredInputField",{enumerable:true,get:function(){return s.isRequiredInputField}});Object.defineProperty(t,"isScalarType",{enumerable:true,get:function(){return s.isScalarType}});Object.defineProperty(t,"isSchema",{enumerable:true,get:function(){return n.isSchema}});Object.defineProperty(t,"isSpecifiedDirective",{enumerable:true,get:function(){return o.isSpecifiedDirective}});Object.defineProperty(t,"isSpecifiedScalarType",{enumerable:true,get:function(){return i.isSpecifiedScalarType}});Object.defineProperty(t,"isType",{enumerable:true,get:function(){return s.isType}});Object.defineProperty(t,"isUnionType",{enumerable:true,get:function(){return s.isUnionType}});Object.defineProperty(t,"isWrappingType",{enumerable:true,get:function(){return s.isWrappingType}});Object.defineProperty(t,"resolveObjMapThunk",{enumerable:true,get:function(){return s.resolveObjMapThunk}});Object.defineProperty(t,"resolveReadonlyArrayThunk",{enumerable:true,get:function(){return s.resolveReadonlyArrayThunk}});Object.defineProperty(t,"specifiedDirectives",{enumerable:true,get:function(){return o.specifiedDirectives}});Object.defineProperty(t,"specifiedScalarTypes",{enumerable:true,get:function(){return i.specifiedScalarTypes}});Object.defineProperty(t,"validateSchema",{enumerable:true,get:function(){return c.validateSchema}});var n=r(79299);var s=r(84169);var o=r(21058);var i=r(93571);var a=r(10317);var c=r(33902);var u=r(58337)},10317:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.introspectionTypes=t.__TypeKind=t.__Type=t.__Schema=t.__InputValue=t.__Field=t.__EnumValue=t.__DirectiveLocation=t.__Directive=t.TypeNameMetaFieldDef=t.TypeMetaFieldDef=t.TypeKind=t.SchemaMetaFieldDef=void 0;t.isIntrospectionType=isIntrospectionType;var n=r(25742);var s=r(33650);var o=r(22582);var i=r(59936);var a=r(48893);var c=r(84169);var u=r(93571);const A=new c.GraphQLObjectType({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:()=>({description:{type:u.GraphQLString,resolve:e=>e.description},types:{description:"A list of all types supported by this server.",type:new c.GraphQLNonNull(new c.GraphQLList(new c.GraphQLNonNull(p))),resolve(e){return Object.values(e.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new c.GraphQLNonNull(p),resolve:e=>e.getQueryType()},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:p,resolve:e=>e.getMutationType()},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:p,resolve:e=>e.getSubscriptionType()},directives:{description:"A list of all directives supported by this server.",type:new c.GraphQLNonNull(new c.GraphQLList(new c.GraphQLNonNull(l))),resolve:e=>e.getDirectives()}})});t.__Schema=A;const l=new c.GraphQLObjectType({name:"__Directive",description:"A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.",fields:()=>({name:{type:new c.GraphQLNonNull(u.GraphQLString),resolve:e=>e.name},description:{type:u.GraphQLString,resolve:e=>e.description},isRepeatable:{type:new c.GraphQLNonNull(u.GraphQLBoolean),resolve:e=>e.isRepeatable},locations:{type:new c.GraphQLNonNull(new c.GraphQLList(new c.GraphQLNonNull(d))),resolve:e=>e.locations},args:{type:new c.GraphQLNonNull(new c.GraphQLList(new c.GraphQLNonNull(h))),args:{includeDeprecated:{type:u.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter((e=>e.deprecationReason==null))}}})});t.__Directive=l;const d=new c.GraphQLEnumType({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:o.DirectiveLocation.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:o.DirectiveLocation.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:o.DirectiveLocation.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:o.DirectiveLocation.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:o.DirectiveLocation.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:o.DirectiveLocation.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:o.DirectiveLocation.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:o.DirectiveLocation.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:o.DirectiveLocation.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:o.DirectiveLocation.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:o.DirectiveLocation.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:o.DirectiveLocation.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:o.DirectiveLocation.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:o.DirectiveLocation.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:o.DirectiveLocation.UNION,description:"Location adjacent to a union definition."},ENUM:{value:o.DirectiveLocation.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:o.DirectiveLocation.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:o.DirectiveLocation.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:o.DirectiveLocation.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}});t.__DirectiveLocation=d;const p=new c.GraphQLObjectType({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:()=>({kind:{type:new c.GraphQLNonNull(y),resolve(e){if((0,c.isScalarType)(e)){return E.SCALAR}if((0,c.isObjectType)(e)){return E.OBJECT}if((0,c.isInterfaceType)(e)){return E.INTERFACE}if((0,c.isUnionType)(e)){return E.UNION}if((0,c.isEnumType)(e)){return E.ENUM}if((0,c.isInputObjectType)(e)){return E.INPUT_OBJECT}if((0,c.isListType)(e)){return E.LIST}if((0,c.isNonNullType)(e)){return E.NON_NULL}false||(0,s.invariant)(false,`Unexpected type: "${(0,n.inspect)(e)}".`)}},name:{type:u.GraphQLString,resolve:e=>"name"in e?e.name:undefined},description:{type:u.GraphQLString,resolve:e=>"description"in e?e.description:undefined},specifiedByURL:{type:u.GraphQLString,resolve:e=>"specifiedByURL"in e?e.specifiedByURL:undefined},fields:{type:new c.GraphQLList(new c.GraphQLNonNull(g)),args:{includeDeprecated:{type:u.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){if((0,c.isObjectType)(e)||(0,c.isInterfaceType)(e)){const r=Object.values(e.getFields());return t?r:r.filter((e=>e.deprecationReason==null))}}},interfaces:{type:new c.GraphQLList(new c.GraphQLNonNull(p)),resolve(e){if((0,c.isObjectType)(e)||(0,c.isInterfaceType)(e)){return e.getInterfaces()}}},possibleTypes:{type:new c.GraphQLList(new c.GraphQLNonNull(p)),resolve(e,t,r,{schema:n}){if((0,c.isAbstractType)(e)){return n.getPossibleTypes(e)}}},enumValues:{type:new c.GraphQLList(new c.GraphQLNonNull(m)),args:{includeDeprecated:{type:u.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){if((0,c.isEnumType)(e)){const r=e.getValues();return t?r:r.filter((e=>e.deprecationReason==null))}}},inputFields:{type:new c.GraphQLList(new c.GraphQLNonNull(h)),args:{includeDeprecated:{type:u.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){if((0,c.isInputObjectType)(e)){const r=Object.values(e.getFields());return t?r:r.filter((e=>e.deprecationReason==null))}}},ofType:{type:p,resolve:e=>"ofType"in e?e.ofType:undefined},isOneOf:{type:u.GraphQLBoolean,resolve:e=>{if((0,c.isInputObjectType)(e)){return e.isOneOf}}}})});t.__Type=p;const g=new c.GraphQLObjectType({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:()=>({name:{type:new c.GraphQLNonNull(u.GraphQLString),resolve:e=>e.name},description:{type:u.GraphQLString,resolve:e=>e.description},args:{type:new c.GraphQLNonNull(new c.GraphQLList(new c.GraphQLNonNull(h))),args:{includeDeprecated:{type:u.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter((e=>e.deprecationReason==null))}},type:{type:new c.GraphQLNonNull(p),resolve:e=>e.type},isDeprecated:{type:new c.GraphQLNonNull(u.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:u.GraphQLString,resolve:e=>e.deprecationReason}})});t.__Field=g;const h=new c.GraphQLObjectType({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:()=>({name:{type:new c.GraphQLNonNull(u.GraphQLString),resolve:e=>e.name},description:{type:u.GraphQLString,resolve:e=>e.description},type:{type:new c.GraphQLNonNull(p),resolve:e=>e.type},defaultValue:{type:u.GraphQLString,description:"A GraphQL-formatted string representing the default value for this input value.",resolve(e){const{type:t,defaultValue:r}=e;const n=(0,a.astFromValue)(r,t);return n?(0,i.print)(n):null}},isDeprecated:{type:new c.GraphQLNonNull(u.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:u.GraphQLString,resolve:e=>e.deprecationReason}})});t.__InputValue=h;const m=new c.GraphQLObjectType({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:()=>({name:{type:new c.GraphQLNonNull(u.GraphQLString),resolve:e=>e.name},description:{type:u.GraphQLString,resolve:e=>e.description},isDeprecated:{type:new c.GraphQLNonNull(u.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:u.GraphQLString,resolve:e=>e.deprecationReason}})});t.__EnumValue=m;var E;t.TypeKind=E;(function(e){e["SCALAR"]="SCALAR";e["OBJECT"]="OBJECT";e["INTERFACE"]="INTERFACE";e["UNION"]="UNION";e["ENUM"]="ENUM";e["INPUT_OBJECT"]="INPUT_OBJECT";e["LIST"]="LIST";e["NON_NULL"]="NON_NULL"})(E||(t.TypeKind=E={}));const y=new c.GraphQLEnumType({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:E.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:E.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:E.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:E.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:E.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:E.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:E.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:E.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}});t.__TypeKind=y;const I={name:"__schema",type:new c.GraphQLNonNull(A),description:"Access the current type schema of this server.",args:[],resolve:(e,t,r,{schema:n})=>n,deprecationReason:undefined,extensions:Object.create(null),astNode:undefined};t.SchemaMetaFieldDef=I;const C={name:"__type",type:p,description:"Request the type information of a single type.",args:[{name:"name",description:undefined,type:new c.GraphQLNonNull(u.GraphQLString),defaultValue:undefined,deprecationReason:undefined,extensions:Object.create(null),astNode:undefined}],resolve:(e,{name:t},r,{schema:n})=>n.getType(t),deprecationReason:undefined,extensions:Object.create(null),astNode:undefined};t.TypeMetaFieldDef=C;const b={name:"__typename",type:new c.GraphQLNonNull(u.GraphQLString),description:"The name of the current Object type at runtime.",args:[],resolve:(e,t,r,{parentType:n})=>n.name,deprecationReason:undefined,extensions:Object.create(null),astNode:undefined};t.TypeNameMetaFieldDef=b;const B=Object.freeze([A,l,d,p,g,h,m,y]);t.introspectionTypes=B;function isIntrospectionType(e){return B.some((({name:t})=>e.name===t))}},93571:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLString=t.GraphQLInt=t.GraphQLID=t.GraphQLFloat=t.GraphQLBoolean=t.GRAPHQL_MIN_INT=t.GRAPHQL_MAX_INT=void 0;t.isSpecifiedScalarType=isSpecifiedScalarType;t.specifiedScalarTypes=void 0;var n=r(25742);var s=r(20892);var o=r(15939);var i=r(11123);var a=r(59936);var c=r(84169);const u=2147483647;t.GRAPHQL_MAX_INT=u;const A=-2147483648;t.GRAPHQL_MIN_INT=A;const l=new c.GraphQLScalarType({name:"Int",description:"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",serialize(e){const t=serializeObject(e);if(typeof t==="boolean"){return t?1:0}let r=t;if(typeof t==="string"&&t!==""){r=Number(t)}if(typeof r!=="number"||!Number.isInteger(r)){throw new o.GraphQLError(`Int cannot represent non-integer value: ${(0,n.inspect)(t)}`)}if(r>u||ru||eu||te.name===t))}function serializeObject(e){if((0,s.isObjectLike)(e)){if(typeof e.valueOf==="function"){const t=e.valueOf();if(!(0,s.isObjectLike)(t)){return t}}if(typeof e.toJSON==="function"){return e.toJSON()}}return e}},79299:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLSchema=void 0;t.assertSchema=assertSchema;t.isSchema=isSchema;var n=r(65383);var s=r(25742);var o=r(45914);var i=r(20892);var a=r(87104);var c=r(22740);var u=r(84169);var A=r(21058);var l=r(10317);function isSchema(e){return(0,o.instanceOf)(e,GraphQLSchema)}function assertSchema(e){if(!isSchema(e)){throw new Error(`Expected ${(0,s.inspect)(e)} to be a GraphQL schema.`)}return e}class GraphQLSchema{constructor(e){var t,r;this.__validationErrors=e.assumeValid===true?[]:undefined;(0,i.isObjectLike)(e)||(0,n.devAssert)(false,"Must provide configuration object.");!e.types||Array.isArray(e.types)||(0,n.devAssert)(false,`"types" must be Array if provided but got: ${(0,s.inspect)(e.types)}.`);!e.directives||Array.isArray(e.directives)||(0,n.devAssert)(false,'"directives" must be Array if provided but got: '+`${(0,s.inspect)(e.directives)}.`);this.description=e.description;this.extensions=(0,a.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._queryType=e.query;this._mutationType=e.mutation;this._subscriptionType=e.subscription;this._directives=(r=e.directives)!==null&&r!==void 0?r:A.specifiedDirectives;const o=new Set(e.types);if(e.types!=null){for(const t of e.types){o.delete(t);collectReferencedTypes(t,o)}}if(this._queryType!=null){collectReferencedTypes(this._queryType,o)}if(this._mutationType!=null){collectReferencedTypes(this._mutationType,o)}if(this._subscriptionType!=null){collectReferencedTypes(this._subscriptionType,o)}for(const e of this._directives){if((0,A.isDirective)(e)){for(const t of e.args){collectReferencedTypes(t.type,o)}}}collectReferencedTypes(l.__Schema,o);this._typeMap=Object.create(null);this._subTypeMap=Object.create(null);this._implementationsMap=Object.create(null);for(const e of o){if(e==null){continue}const t=e.name;t||(0,n.devAssert)(false,"One of the provided types for building the Schema is missing a name.");if(this._typeMap[t]!==undefined){throw new Error(`Schema must contain uniquely named types but contains multiple types named "${t}".`)}this._typeMap[t]=e;if((0,u.isInterfaceType)(e)){for(const t of e.getInterfaces()){if((0,u.isInterfaceType)(t)){let r=this._implementationsMap[t.name];if(r===undefined){r=this._implementationsMap[t.name]={objects:[],interfaces:[]}}r.interfaces.push(e)}}}else if((0,u.isObjectType)(e)){for(const t of e.getInterfaces()){if((0,u.isInterfaceType)(t)){let r=this._implementationsMap[t.name];if(r===undefined){r=this._implementationsMap[t.name]={objects:[],interfaces:[]}}r.objects.push(e)}}}}}get[Symbol.toStringTag](){return"GraphQLSchema"}getQueryType(){return this._queryType}getMutationType(){return this._mutationType}getSubscriptionType(){return this._subscriptionType}getRootType(e){switch(e){case c.OperationTypeNode.QUERY:return this.getQueryType();case c.OperationTypeNode.MUTATION:return this.getMutationType();case c.OperationTypeNode.SUBSCRIPTION:return this.getSubscriptionType()}}getTypeMap(){return this._typeMap}getType(e){return this.getTypeMap()[e]}getPossibleTypes(e){return(0,u.isUnionType)(e)?e.getTypes():this.getImplementations(e).objects}getImplementations(e){const t=this._implementationsMap[e.name];return t!==null&&t!==void 0?t:{objects:[],interfaces:[]}}isSubType(e,t){let r=this._subTypeMap[e.name];if(r===undefined){r=Object.create(null);if((0,u.isUnionType)(e)){for(const t of e.getTypes()){r[t.name]=true}}else{const t=this.getImplementations(e);for(const e of t.objects){r[e.name]=true}for(const e of t.interfaces){r[e.name]=true}}this._subTypeMap[e.name]=r}return r[t.name]!==undefined}getDirectives(){return this._directives}getDirective(e){return this.getDirectives().find((t=>t.name===e))}toConfig(){return{description:this.description,query:this.getQueryType(),mutation:this.getMutationType(),subscription:this.getSubscriptionType(),types:Object.values(this.getTypeMap()),directives:this.getDirectives(),extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,assumeValid:this.__validationErrors!==undefined}}}t.GraphQLSchema=GraphQLSchema;function collectReferencedTypes(e,t){const r=(0,u.getNamedType)(e);if(!t.has(r)){t.add(r);if((0,u.isUnionType)(r)){for(const e of r.getTypes()){collectReferencedTypes(e,t)}}else if((0,u.isObjectType)(r)||(0,u.isInterfaceType)(r)){for(const e of r.getInterfaces()){collectReferencedTypes(e,t)}for(const e of Object.values(r.getFields())){collectReferencedTypes(e.type,t);for(const r of e.args){collectReferencedTypes(r.type,t)}}}else if((0,u.isInputObjectType)(r)){for(const e of Object.values(r.getFields())){collectReferencedTypes(e.type,t)}}}return t}},33902:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidSchema=assertValidSchema;t.validateSchema=validateSchema;var n=r(25742);var s=r(15939);var o=r(22740);var i=r(46539);var a=r(84169);var c=r(21058);var u=r(10317);var A=r(79299);function validateSchema(e){(0,A.assertSchema)(e);if(e.__validationErrors){return e.__validationErrors}const t=new SchemaValidationContext(e);validateRootTypes(t);validateDirectives(t);validateTypes(t);const r=t.getErrors();e.__validationErrors=r;return r}function assertValidSchema(e){const t=validateSchema(e);if(t.length!==0){throw new Error(t.map((e=>e.message)).join("\n\n"))}}class SchemaValidationContext{constructor(e){this._errors=[];this.schema=e}reportError(e,t){const r=Array.isArray(t)?t.filter(Boolean):t;this._errors.push(new s.GraphQLError(e,{nodes:r}))}getErrors(){return this._errors}}function validateRootTypes(e){const t=e.schema;const r=t.getQueryType();if(!r){e.reportError("Query root type must be provided.",t.astNode)}else if(!(0,a.isObjectType)(r)){var s;e.reportError(`Query root type must be Object type, it cannot be ${(0,n.inspect)(r)}.`,(s=getOperationTypeNode(t,o.OperationTypeNode.QUERY))!==null&&s!==void 0?s:r.astNode)}const i=t.getMutationType();if(i&&!(0,a.isObjectType)(i)){var c;e.reportError("Mutation root type must be Object type if provided, it cannot be "+`${(0,n.inspect)(i)}.`,(c=getOperationTypeNode(t,o.OperationTypeNode.MUTATION))!==null&&c!==void 0?c:i.astNode)}const u=t.getSubscriptionType();if(u&&!(0,a.isObjectType)(u)){var A;e.reportError("Subscription root type must be Object type if provided, it cannot be "+`${(0,n.inspect)(u)}.`,(A=getOperationTypeNode(t,o.OperationTypeNode.SUBSCRIPTION))!==null&&A!==void 0?A:u.astNode)}}function getOperationTypeNode(e,t){var r;return(r=[e.astNode,...e.extensionASTNodes].flatMap((e=>{var t;return(t=e===null||e===void 0?void 0:e.operationTypes)!==null&&t!==void 0?t:[]})).find((e=>e.operation===t)))===null||r===void 0?void 0:r.type}function validateDirectives(e){for(const r of e.schema.getDirectives()){if(!(0,c.isDirective)(r)){e.reportError(`Expected directive but got: ${(0,n.inspect)(r)}.`,r===null||r===void 0?void 0:r.astNode);continue}validateName(e,r);for(const s of r.args){validateName(e,s);if(!(0,a.isInputType)(s.type)){e.reportError(`The type of @${r.name}(${s.name}:) must be Input Type `+`but got: ${(0,n.inspect)(s.type)}.`,s.astNode)}if((0,a.isRequiredArgument)(s)&&s.deprecationReason!=null){var t;e.reportError(`Required argument @${r.name}(${s.name}:) cannot be deprecated.`,[getDeprecatedDirectiveNode(s.astNode),(t=s.astNode)===null||t===void 0?void 0:t.type])}}}}function validateName(e,t){if(t.name.startsWith("__")){e.reportError(`Name "${t.name}" must not begin with "__", which is reserved by GraphQL introspection.`,t.astNode)}}function validateTypes(e){const t=createInputObjectCircularRefsValidator(e);const r=e.schema.getTypeMap();for(const s of Object.values(r)){if(!(0,a.isNamedType)(s)){e.reportError(`Expected GraphQL named type but got: ${(0,n.inspect)(s)}.`,s.astNode);continue}if(!(0,u.isIntrospectionType)(s)){validateName(e,s)}if((0,a.isObjectType)(s)){validateFields(e,s);validateInterfaces(e,s)}else if((0,a.isInterfaceType)(s)){validateFields(e,s);validateInterfaces(e,s)}else if((0,a.isUnionType)(s)){validateUnionMembers(e,s)}else if((0,a.isEnumType)(s)){validateEnumValues(e,s)}else if((0,a.isInputObjectType)(s)){validateInputFields(e,s);t(s)}}}function validateFields(e,t){const r=Object.values(t.getFields());if(r.length===0){e.reportError(`Type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes])}for(const c of r){validateName(e,c);if(!(0,a.isOutputType)(c.type)){var s;e.reportError(`The type of ${t.name}.${c.name} must be Output Type `+`but got: ${(0,n.inspect)(c.type)}.`,(s=c.astNode)===null||s===void 0?void 0:s.type)}for(const r of c.args){const s=r.name;validateName(e,r);if(!(0,a.isInputType)(r.type)){var o;e.reportError(`The type of ${t.name}.${c.name}(${s}:) must be Input `+`Type but got: ${(0,n.inspect)(r.type)}.`,(o=r.astNode)===null||o===void 0?void 0:o.type)}if((0,a.isRequiredArgument)(r)&&r.deprecationReason!=null){var i;e.reportError(`Required argument ${t.name}.${c.name}(${s}:) cannot be deprecated.`,[getDeprecatedDirectiveNode(r.astNode),(i=r.astNode)===null||i===void 0?void 0:i.type])}}}}function validateInterfaces(e,t){const r=Object.create(null);for(const s of t.getInterfaces()){if(!(0,a.isInterfaceType)(s)){e.reportError(`Type ${(0,n.inspect)(t)} must only implement Interface types, `+`it cannot implement ${(0,n.inspect)(s)}.`,getAllImplementsInterfaceNodes(t,s));continue}if(t===s){e.reportError(`Type ${t.name} cannot implement itself because it would create a circular reference.`,getAllImplementsInterfaceNodes(t,s));continue}if(r[s.name]){e.reportError(`Type ${t.name} can only implement ${s.name} once.`,getAllImplementsInterfaceNodes(t,s));continue}r[s.name]=true;validateTypeImplementsAncestors(e,t,s);validateTypeImplementsInterface(e,t,s)}}function validateTypeImplementsInterface(e,t,r){const s=t.getFields();for(const l of Object.values(r.getFields())){const d=l.name;const p=s[d];if(!p){e.reportError(`Interface field ${r.name}.${d} expected but ${t.name} does not provide it.`,[l.astNode,t.astNode,...t.extensionASTNodes]);continue}if(!(0,i.isTypeSubTypeOf)(e.schema,p.type,l.type)){var o,c;e.reportError(`Interface field ${r.name}.${d} expects type `+`${(0,n.inspect)(l.type)} but ${t.name}.${d} `+`is type ${(0,n.inspect)(p.type)}.`,[(o=l.astNode)===null||o===void 0?void 0:o.type,(c=p.astNode)===null||c===void 0?void 0:c.type])}for(const s of l.args){const o=s.name;const a=p.args.find((e=>e.name===o));if(!a){e.reportError(`Interface field argument ${r.name}.${d}(${o}:) expected but ${t.name}.${d} does not provide it.`,[s.astNode,p.astNode]);continue}if(!(0,i.isEqualType)(s.type,a.type)){var u,A;e.reportError(`Interface field argument ${r.name}.${d}(${o}:) `+`expects type ${(0,n.inspect)(s.type)} but `+`${t.name}.${d}(${o}:) is type `+`${(0,n.inspect)(a.type)}.`,[(u=s.astNode)===null||u===void 0?void 0:u.type,(A=a.astNode)===null||A===void 0?void 0:A.type])}}for(const n of p.args){const s=n.name;const o=l.args.find((e=>e.name===s));if(!o&&(0,a.isRequiredArgument)(n)){e.reportError(`Object field ${t.name}.${d} includes required argument ${s} that is missing from the Interface field ${r.name}.${d}.`,[n.astNode,l.astNode])}}}}function validateTypeImplementsAncestors(e,t,r){const n=t.getInterfaces();for(const s of r.getInterfaces()){if(!n.includes(s)){e.reportError(s===t?`Type ${t.name} cannot implement ${r.name} because it would create a circular reference.`:`Type ${t.name} must implement ${s.name} because it is implemented by ${r.name}.`,[...getAllImplementsInterfaceNodes(r,s),...getAllImplementsInterfaceNodes(t,r)])}}}function validateUnionMembers(e,t){const r=t.getTypes();if(r.length===0){e.reportError(`Union type ${t.name} must define one or more member types.`,[t.astNode,...t.extensionASTNodes])}const s=Object.create(null);for(const o of r){if(s[o.name]){e.reportError(`Union type ${t.name} can only include type ${o.name} once.`,getUnionMemberTypeNodes(t,o.name));continue}s[o.name]=true;if(!(0,a.isObjectType)(o)){e.reportError(`Union type ${t.name} can only include Object types, `+`it cannot include ${(0,n.inspect)(o)}.`,getUnionMemberTypeNodes(t,String(o)))}}}function validateEnumValues(e,t){const r=t.getValues();if(r.length===0){e.reportError(`Enum type ${t.name} must define one or more values.`,[t.astNode,...t.extensionASTNodes])}for(const t of r){validateName(e,t)}}function validateInputFields(e,t){const r=Object.values(t.getFields());if(r.length===0){e.reportError(`Input Object type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes])}for(const i of r){validateName(e,i);if(!(0,a.isInputType)(i.type)){var s;e.reportError(`The type of ${t.name}.${i.name} must be Input Type `+`but got: ${(0,n.inspect)(i.type)}.`,(s=i.astNode)===null||s===void 0?void 0:s.type)}if((0,a.isRequiredInputField)(i)&&i.deprecationReason!=null){var o;e.reportError(`Required input field ${t.name}.${i.name} cannot be deprecated.`,[getDeprecatedDirectiveNode(i.astNode),(o=i.astNode)===null||o===void 0?void 0:o.type])}if(t.isOneOf){validateOneOfInputObjectField(t,i,e)}}}function validateOneOfInputObjectField(e,t,r){if((0,a.isNonNullType)(t.type)){var n;r.reportError(`OneOf input field ${e.name}.${t.name} must be nullable.`,(n=t.astNode)===null||n===void 0?void 0:n.type)}if(t.defaultValue!==undefined){r.reportError(`OneOf input field ${e.name}.${t.name} cannot have a default value.`,t.astNode)}}function createInputObjectCircularRefsValidator(e){const t=Object.create(null);const r=[];const n=Object.create(null);return detectCycleRecursive;function detectCycleRecursive(s){if(t[s.name]){return}t[s.name]=true;n[s.name]=r.length;const o=Object.values(s.getFields());for(const t of o){if((0,a.isNonNullType)(t.type)&&(0,a.isInputObjectType)(t.type.ofType)){const s=t.type.ofType;const o=n[s.name];r.push(t);if(o===undefined){detectCycleRecursive(s)}else{const t=r.slice(o);const n=t.map((e=>e.name)).join(".");e.reportError(`Cannot reference Input Object "${s.name}" within itself through a series of non-null fields: "${n}".`,t.map((e=>e.astNode)))}r.pop()}}n[s.name]=undefined}}function getAllImplementsInterfaceNodes(e,t){const{astNode:r,extensionASTNodes:n}=e;const s=r!=null?[r,...n]:n;return s.flatMap((e=>{var t;return(t=e.interfaces)!==null&&t!==void 0?t:[]})).filter((e=>e.name.value===t.name))}function getUnionMemberTypeNodes(e,t){const{astNode:r,extensionASTNodes:n}=e;const s=r!=null?[r,...n]:n;return s.flatMap((e=>{var t;return(t=e.types)!==null&&t!==void 0?t:[]})).filter((e=>e.name.value===t))}function getDeprecatedDirectiveNode(e){var t;return e===null||e===void 0?void 0:(t=e.directives)===null||t===void 0?void 0:t.find((e=>e.name.value===c.GraphQLDeprecatedDirective.name))}},85e3:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeInfo=void 0;t.visitWithTypeInfo=visitWithTypeInfo;var n=r(22740);var s=r(11123);var o=r(30638);var i=r(84169);var a=r(10317);var c=r(76738);class TypeInfo{constructor(e,t,r){this._schema=e;this._typeStack=[];this._parentTypeStack=[];this._inputTypeStack=[];this._fieldDefStack=[];this._defaultValueStack=[];this._directive=null;this._argument=null;this._enumValue=null;this._getFieldDef=r!==null&&r!==void 0?r:getFieldDef;if(t){if((0,i.isInputType)(t)){this._inputTypeStack.push(t)}if((0,i.isCompositeType)(t)){this._parentTypeStack.push(t)}if((0,i.isOutputType)(t)){this._typeStack.push(t)}}}get[Symbol.toStringTag](){return"TypeInfo"}getType(){if(this._typeStack.length>0){return this._typeStack[this._typeStack.length-1]}}getParentType(){if(this._parentTypeStack.length>0){return this._parentTypeStack[this._parentTypeStack.length-1]}}getInputType(){if(this._inputTypeStack.length>0){return this._inputTypeStack[this._inputTypeStack.length-1]}}getParentInputType(){if(this._inputTypeStack.length>1){return this._inputTypeStack[this._inputTypeStack.length-2]}}getFieldDef(){if(this._fieldDefStack.length>0){return this._fieldDefStack[this._fieldDefStack.length-1]}}getDefaultValue(){if(this._defaultValueStack.length>0){return this._defaultValueStack[this._defaultValueStack.length-1]}}getDirective(){return this._directive}getArgument(){return this._argument}getEnumValue(){return this._enumValue}enter(e){const t=this._schema;switch(e.kind){case s.Kind.SELECTION_SET:{const e=(0,i.getNamedType)(this.getType());this._parentTypeStack.push((0,i.isCompositeType)(e)?e:undefined);break}case s.Kind.FIELD:{const r=this.getParentType();let n;let s;if(r){n=this._getFieldDef(t,r,e);if(n){s=n.type}}this._fieldDefStack.push(n);this._typeStack.push((0,i.isOutputType)(s)?s:undefined);break}case s.Kind.DIRECTIVE:this._directive=t.getDirective(e.name.value);break;case s.Kind.OPERATION_DEFINITION:{const r=t.getRootType(e.operation);this._typeStack.push((0,i.isObjectType)(r)?r:undefined);break}case s.Kind.INLINE_FRAGMENT:case s.Kind.FRAGMENT_DEFINITION:{const r=e.typeCondition;const n=r?(0,c.typeFromAST)(t,r):(0,i.getNamedType)(this.getType());this._typeStack.push((0,i.isOutputType)(n)?n:undefined);break}case s.Kind.VARIABLE_DEFINITION:{const r=(0,c.typeFromAST)(t,e.type);this._inputTypeStack.push((0,i.isInputType)(r)?r:undefined);break}case s.Kind.ARGUMENT:{var r;let t;let n;const s=(r=this.getDirective())!==null&&r!==void 0?r:this.getFieldDef();if(s){t=s.args.find((t=>t.name===e.name.value));if(t){n=t.type}}this._argument=t;this._defaultValueStack.push(t?t.defaultValue:undefined);this._inputTypeStack.push((0,i.isInputType)(n)?n:undefined);break}case s.Kind.LIST:{const e=(0,i.getNullableType)(this.getInputType());const t=(0,i.isListType)(e)?e.ofType:e;this._defaultValueStack.push(undefined);this._inputTypeStack.push((0,i.isInputType)(t)?t:undefined);break}case s.Kind.OBJECT_FIELD:{const t=(0,i.getNamedType)(this.getInputType());let r;let n;if((0,i.isInputObjectType)(t)){n=t.getFields()[e.name.value];if(n){r=n.type}}this._defaultValueStack.push(n?n.defaultValue:undefined);this._inputTypeStack.push((0,i.isInputType)(r)?r:undefined);break}case s.Kind.ENUM:{const t=(0,i.getNamedType)(this.getInputType());let r;if((0,i.isEnumType)(t)){r=t.getValue(e.value)}this._enumValue=r;break}default:}}leave(e){switch(e.kind){case s.Kind.SELECTION_SET:this._parentTypeStack.pop();break;case s.Kind.FIELD:this._fieldDefStack.pop();this._typeStack.pop();break;case s.Kind.DIRECTIVE:this._directive=null;break;case s.Kind.OPERATION_DEFINITION:case s.Kind.INLINE_FRAGMENT:case s.Kind.FRAGMENT_DEFINITION:this._typeStack.pop();break;case s.Kind.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case s.Kind.ARGUMENT:this._argument=null;this._defaultValueStack.pop();this._inputTypeStack.pop();break;case s.Kind.LIST:case s.Kind.OBJECT_FIELD:this._defaultValueStack.pop();this._inputTypeStack.pop();break;case s.Kind.ENUM:this._enumValue=null;break;default:}}}t.TypeInfo=TypeInfo;function getFieldDef(e,t,r){const n=r.name.value;if(n===a.SchemaMetaFieldDef.name&&e.getQueryType()===t){return a.SchemaMetaFieldDef}if(n===a.TypeMetaFieldDef.name&&e.getQueryType()===t){return a.TypeMetaFieldDef}if(n===a.TypeNameMetaFieldDef.name&&(0,i.isCompositeType)(t)){return a.TypeNameMetaFieldDef}if((0,i.isObjectType)(t)||(0,i.isInterfaceType)(t)){return t.getFields()[n]}}function visitWithTypeInfo(e,t){return{enter(...r){const s=r[0];e.enter(s);const i=(0,o.getEnterLeaveForKind)(t,s.kind).enter;if(i){const o=i.apply(t,r);if(o!==undefined){e.leave(s);if((0,n.isNode)(o)){e.enter(o)}}return o}},leave(...r){const n=r[0];const s=(0,o.getEnterLeaveForKind)(t,n.kind).leave;let i;if(s){i=s.apply(t,r)}e.leave(n);return i}}}},60873:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidName=assertValidName;t.isValidNameError=isValidNameError;var n=r(65383);var s=r(15939);var o=r(58337);function assertValidName(e){const t=isValidNameError(e);if(t){throw t}return e}function isValidNameError(e){typeof e==="string"||(0,n.devAssert)(false,"Expected name to be a string.");if(e.startsWith("__")){return new s.GraphQLError(`Name "${e}" must not begin with "__", which is reserved by GraphQL introspection.`)}try{(0,o.assertName)(e)}catch(e){return e}}},48893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.astFromValue=astFromValue;var n=r(25742);var s=r(33650);var o=r(17341);var i=r(20892);var a=r(11123);var c=r(84169);var u=r(93571);function astFromValue(e,t){if((0,c.isNonNullType)(t)){const r=astFromValue(e,t.ofType);if((r===null||r===void 0?void 0:r.kind)===a.Kind.NULL){return null}return r}if(e===null){return{kind:a.Kind.NULL}}if(e===undefined){return null}if((0,c.isListType)(t)){const r=t.ofType;if((0,o.isIterableObject)(e)){const t=[];for(const n of e){const e=astFromValue(n,r);if(e!=null){t.push(e)}}return{kind:a.Kind.LIST,values:t}}return astFromValue(e,r)}if((0,c.isInputObjectType)(t)){if(!(0,i.isObjectLike)(e)){return null}const r=[];for(const n of Object.values(t.getFields())){const t=astFromValue(e[n.name],n.type);if(t){r.push({kind:a.Kind.OBJECT_FIELD,name:{kind:a.Kind.NAME,value:n.name},value:t})}}return{kind:a.Kind.OBJECT,fields:r}}if((0,c.isLeafType)(t)){const r=t.serialize(e);if(r==null){return null}if(typeof r==="boolean"){return{kind:a.Kind.BOOLEAN,value:r}}if(typeof r==="number"&&Number.isFinite(r)){const e=String(r);return A.test(e)?{kind:a.Kind.INT,value:e}:{kind:a.Kind.FLOAT,value:e}}if(typeof r==="string"){if((0,c.isEnumType)(t)){return{kind:a.Kind.ENUM,value:r}}if(t===u.GraphQLID&&A.test(r)){return{kind:a.Kind.INT,value:r}}return{kind:a.Kind.STRING,value:r}}throw new TypeError(`Cannot convert value to AST: ${(0,n.inspect)(r)}.`)}false||(0,s.invariant)(false,"Unexpected input type: "+(0,n.inspect)(t))}const A=/^-?(?:0|[1-9][0-9]*)$/},69115:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.buildASTSchema=buildASTSchema;t.buildSchema=buildSchema;var n=r(65383);var s=r(11123);var o=r(14929);var i=r(21058);var a=r(79299);var c=r(77063);var u=r(35487);function buildASTSchema(e,t){e!=null&&e.kind===s.Kind.DOCUMENT||(0,n.devAssert)(false,"Must provide valid Document AST.");if((t===null||t===void 0?void 0:t.assumeValid)!==true&&(t===null||t===void 0?void 0:t.assumeValidSDL)!==true){(0,c.assertValidSDL)(e)}const r={description:undefined,types:[],directives:[],extensions:Object.create(null),extensionASTNodes:[],assumeValid:false};const o=(0,u.extendSchemaImpl)(r,e,t);if(o.astNode==null){for(const e of o.types){switch(e.name){case"Query":o.query=e;break;case"Mutation":o.mutation=e;break;case"Subscription":o.subscription=e;break}}}const A=[...o.directives,...i.specifiedDirectives.filter((e=>o.directives.every((t=>t.name!==e.name))))];return new a.GraphQLSchema({...o,directives:A})}function buildSchema(e,t){const r=(0,o.parse)(e,{noLocation:t===null||t===void 0?void 0:t.noLocation,allowLegacyFragmentVariables:t===null||t===void 0?void 0:t.allowLegacyFragmentVariables});return buildASTSchema(r,{assumeValidSDL:t===null||t===void 0?void 0:t.assumeValidSDL,assumeValid:t===null||t===void 0?void 0:t.assumeValid})}},76954:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.buildClientSchema=buildClientSchema;var n=r(65383);var s=r(25742);var o=r(20892);var i=r(3166);var a=r(14929);var c=r(84169);var u=r(21058);var A=r(10317);var l=r(93571);var d=r(79299);var p=r(46495);function buildClientSchema(e,t){(0,o.isObjectLike)(e)&&(0,o.isObjectLike)(e.__schema)||(0,n.devAssert)(false,`Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0,s.inspect)(e)}.`);const r=e.__schema;const g=(0,i.keyValMap)(r.types,(e=>e.name),(e=>buildType(e)));for(const e of[...l.specifiedScalarTypes,...A.introspectionTypes]){if(g[e.name]){g[e.name]=e}}const h=r.queryType?getObjectType(r.queryType):null;const m=r.mutationType?getObjectType(r.mutationType):null;const E=r.subscriptionType?getObjectType(r.subscriptionType):null;const y=r.directives?r.directives.map(buildDirective):[];return new d.GraphQLSchema({description:r.description,query:h,mutation:m,subscription:E,types:Object.values(g),directives:y,assumeValid:t===null||t===void 0?void 0:t.assumeValid});function getType(e){if(e.kind===A.TypeKind.LIST){const t=e.ofType;if(!t){throw new Error("Decorated type deeper than introspection query.")}return new c.GraphQLList(getType(t))}if(e.kind===A.TypeKind.NON_NULL){const t=e.ofType;if(!t){throw new Error("Decorated type deeper than introspection query.")}const r=getType(t);return new c.GraphQLNonNull((0,c.assertNullableType)(r))}return getNamedType(e)}function getNamedType(e){const t=e.name;if(!t){throw new Error(`Unknown type reference: ${(0,s.inspect)(e)}.`)}const r=g[t];if(!r){throw new Error(`Invalid or incomplete schema, unknown type: ${t}. Ensure that a full introspection query is used in order to build a client schema.`)}return r}function getObjectType(e){return(0,c.assertObjectType)(getNamedType(e))}function getInterfaceType(e){return(0,c.assertInterfaceType)(getNamedType(e))}function buildType(e){if(e!=null&&e.name!=null&&e.kind!=null){switch(e.kind){case A.TypeKind.SCALAR:return buildScalarDef(e);case A.TypeKind.OBJECT:return buildObjectDef(e);case A.TypeKind.INTERFACE:return buildInterfaceDef(e);case A.TypeKind.UNION:return buildUnionDef(e);case A.TypeKind.ENUM:return buildEnumDef(e);case A.TypeKind.INPUT_OBJECT:return buildInputObjectDef(e)}}const t=(0,s.inspect)(e);throw new Error(`Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${t}.`)}function buildScalarDef(e){return new c.GraphQLScalarType({name:e.name,description:e.description,specifiedByURL:e.specifiedByURL})}function buildImplementationsList(e){if(e.interfaces===null&&e.kind===A.TypeKind.INTERFACE){return[]}if(!e.interfaces){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing interfaces: ${t}.`)}return e.interfaces.map(getInterfaceType)}function buildObjectDef(e){return new c.GraphQLObjectType({name:e.name,description:e.description,interfaces:()=>buildImplementationsList(e),fields:()=>buildFieldDefMap(e)})}function buildInterfaceDef(e){return new c.GraphQLInterfaceType({name:e.name,description:e.description,interfaces:()=>buildImplementationsList(e),fields:()=>buildFieldDefMap(e)})}function buildUnionDef(e){if(!e.possibleTypes){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing possibleTypes: ${t}.`)}return new c.GraphQLUnionType({name:e.name,description:e.description,types:()=>e.possibleTypes.map(getObjectType)})}function buildEnumDef(e){if(!e.enumValues){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing enumValues: ${t}.`)}return new c.GraphQLEnumType({name:e.name,description:e.description,values:(0,i.keyValMap)(e.enumValues,(e=>e.name),(e=>({description:e.description,deprecationReason:e.deprecationReason})))})}function buildInputObjectDef(e){if(!e.inputFields){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing inputFields: ${t}.`)}return new c.GraphQLInputObjectType({name:e.name,description:e.description,fields:()=>buildInputValueDefMap(e.inputFields),isOneOf:e.isOneOf})}function buildFieldDefMap(e){if(!e.fields){throw new Error(`Introspection result missing fields: ${(0,s.inspect)(e)}.`)}return(0,i.keyValMap)(e.fields,(e=>e.name),buildField)}function buildField(e){const t=getType(e.type);if(!(0,c.isOutputType)(t)){const e=(0,s.inspect)(t);throw new Error(`Introspection must provide output type for fields, but received: ${e}.`)}if(!e.args){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing field args: ${t}.`)}return{description:e.description,deprecationReason:e.deprecationReason,type:t,args:buildInputValueDefMap(e.args)}}function buildInputValueDefMap(e){return(0,i.keyValMap)(e,(e=>e.name),buildInputValue)}function buildInputValue(e){const t=getType(e.type);if(!(0,c.isInputType)(t)){const e=(0,s.inspect)(t);throw new Error(`Introspection must provide input type for arguments, but received: ${e}.`)}const r=e.defaultValue!=null?(0,p.valueFromAST)((0,a.parseValue)(e.defaultValue),t):undefined;return{description:e.description,type:t,defaultValue:r,deprecationReason:e.deprecationReason}}function buildDirective(e){if(!e.args){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing directive args: ${t}.`)}if(!e.locations){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing directive locations: ${t}.`)}return new u.GraphQLDirective({name:e.name,description:e.description,isRepeatable:e.isRepeatable,locations:e.locations.slice(),args:buildInputValueDefMap(e.args)})}}},67572:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.coerceInputValue=coerceInputValue;var n=r(41353);var s=r(25742);var o=r(33650);var i=r(17341);var a=r(20892);var c=r(73155);var u=r(68373);var A=r(47904);var l=r(15939);var d=r(84169);function coerceInputValue(e,t,r=defaultOnError){return coerceInputValueImpl(e,t,r,undefined)}function defaultOnError(e,t,r){let n="Invalid value "+(0,s.inspect)(t);if(e.length>0){n+=` at "value${(0,u.printPathArray)(e)}"`}r.message=n+": "+r.message;throw r}function coerceInputValueImpl(e,t,r,u){if((0,d.isNonNullType)(t)){if(e!=null){return coerceInputValueImpl(e,t.ofType,r,u)}r((0,c.pathToArray)(u),e,new l.GraphQLError(`Expected non-nullable type "${(0,s.inspect)(t)}" not to be null.`));return}if(e==null){return null}if((0,d.isListType)(t)){const n=t.ofType;if((0,i.isIterableObject)(e)){return Array.from(e,((e,t)=>{const s=(0,c.addPath)(u,t,undefined);return coerceInputValueImpl(e,n,r,s)}))}return[coerceInputValueImpl(e,n,r,u)]}if((0,d.isInputObjectType)(t)){if(!(0,a.isObjectLike)(e)){r((0,c.pathToArray)(u),e,new l.GraphQLError(`Expected type "${t.name}" to be an object.`));return}const o={};const i=t.getFields();for(const n of Object.values(i)){const i=e[n.name];if(i===undefined){if(n.defaultValue!==undefined){o[n.name]=n.defaultValue}else if((0,d.isNonNullType)(n.type)){const t=(0,s.inspect)(n.type);r((0,c.pathToArray)(u),e,new l.GraphQLError(`Field "${n.name}" of required type "${t}" was not provided.`))}continue}o[n.name]=coerceInputValueImpl(i,n.type,r,(0,c.addPath)(u,n.name,t.name))}for(const s of Object.keys(e)){if(!i[s]){const o=(0,A.suggestionList)(s,Object.keys(t.getFields()));r((0,c.pathToArray)(u),e,new l.GraphQLError(`Field "${s}" is not defined by type "${t.name}".`+(0,n.didYouMean)(o)))}}if(t.isOneOf){const n=Object.keys(o);if(n.length!==1){r((0,c.pathToArray)(u),e,new l.GraphQLError(`Exactly one key must be specified for OneOf type "${t.name}".`))}const s=n[0];const i=o[s];if(i===null){r((0,c.pathToArray)(u).concat(s),i,new l.GraphQLError(`Field "${s}" must be non-null.`))}}return o}if((0,d.isLeafType)(t)){let n;try{n=t.parseValue(e)}catch(n){if(n instanceof l.GraphQLError){r((0,c.pathToArray)(u),e,n)}else{r((0,c.pathToArray)(u),e,new l.GraphQLError(`Expected type "${t.name}". `+n.message,{originalError:n}))}return}if(n===undefined){r((0,c.pathToArray)(u),e,new l.GraphQLError(`Expected type "${t.name}".`))}return n}false||(0,o.invariant)(false,"Unexpected input type: "+(0,s.inspect)(t))}},15470:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.concatAST=concatAST;var n=r(11123);function concatAST(e){const t=[];for(const r of e){t.push(...r.definitions)}return{kind:n.Kind.DOCUMENT,definitions:t}}},35487:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.extendSchema=extendSchema;t.extendSchemaImpl=extendSchemaImpl;var n=r(65383);var s=r(25742);var o=r(33650);var i=r(37579);var a=r(65719);var c=r(11123);var u=r(15480);var A=r(84169);var l=r(21058);var d=r(10317);var p=r(93571);var g=r(79299);var h=r(77063);var m=r(13604);var E=r(46495);function extendSchema(e,t,r){(0,g.assertSchema)(e);t!=null&&t.kind===c.Kind.DOCUMENT||(0,n.devAssert)(false,"Must provide valid Document AST.");if((r===null||r===void 0?void 0:r.assumeValid)!==true&&(r===null||r===void 0?void 0:r.assumeValidSDL)!==true){(0,h.assertValidSDLExtension)(t,e)}const s=e.toConfig();const o=extendSchemaImpl(s,t,r);return s===o?e:new g.GraphQLSchema(o)}function extendSchemaImpl(e,t,r){var n,i,g,h;const m=[];const I=Object.create(null);const C=[];let b;const B=[];for(const e of t.definitions){if(e.kind===c.Kind.SCHEMA_DEFINITION){b=e}else if(e.kind===c.Kind.SCHEMA_EXTENSION){B.push(e)}else if((0,u.isTypeDefinitionNode)(e)){m.push(e)}else if((0,u.isTypeExtensionNode)(e)){const t=e.name.value;const r=I[t];I[t]=r?r.concat([e]):[e]}else if(e.kind===c.Kind.DIRECTIVE_DEFINITION){C.push(e)}}if(Object.keys(I).length===0&&m.length===0&&C.length===0&&B.length===0&&b==null){return e}const Q=Object.create(null);for(const t of e.types){Q[t.name]=extendNamedType(t)}for(const e of m){var T;const t=e.name.value;Q[t]=(T=y[t])!==null&&T!==void 0?T:buildType(e)}const v={query:e.query&&replaceNamedType(e.query),mutation:e.mutation&&replaceNamedType(e.mutation),subscription:e.subscription&&replaceNamedType(e.subscription),...b&&getOperationTypes([b]),...getOperationTypes(B)};return{description:(n=b)===null||n===void 0?void 0:(i=n.description)===null||i===void 0?void 0:i.value,...v,types:Object.values(Q),directives:[...e.directives.map(replaceDirective),...C.map(buildDirective)],extensions:Object.create(null),astNode:(g=b)!==null&&g!==void 0?g:e.astNode,extensionASTNodes:e.extensionASTNodes.concat(B),assumeValid:(h=r===null||r===void 0?void 0:r.assumeValid)!==null&&h!==void 0?h:false};function replaceType(e){if((0,A.isListType)(e)){return new A.GraphQLList(replaceType(e.ofType))}if((0,A.isNonNullType)(e)){return new A.GraphQLNonNull(replaceType(e.ofType))}return replaceNamedType(e)}function replaceNamedType(e){return Q[e.name]}function replaceDirective(e){const t=e.toConfig();return new l.GraphQLDirective({...t,args:(0,a.mapValue)(t.args,extendArg)})}function extendNamedType(e){if((0,d.isIntrospectionType)(e)||(0,p.isSpecifiedScalarType)(e)){return e}if((0,A.isScalarType)(e)){return extendScalarType(e)}if((0,A.isObjectType)(e)){return extendObjectType(e)}if((0,A.isInterfaceType)(e)){return extendInterfaceType(e)}if((0,A.isUnionType)(e)){return extendUnionType(e)}if((0,A.isEnumType)(e)){return extendEnumType(e)}if((0,A.isInputObjectType)(e)){return extendInputObjectType(e)}false||(0,o.invariant)(false,"Unexpected type: "+(0,s.inspect)(e))}function extendInputObjectType(e){var t;const r=e.toConfig();const n=(t=I[r.name])!==null&&t!==void 0?t:[];return new A.GraphQLInputObjectType({...r,fields:()=>({...(0,a.mapValue)(r.fields,(e=>({...e,type:replaceType(e.type)}))),...buildInputFieldMap(n)}),extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendEnumType(e){var t;const r=e.toConfig();const n=(t=I[e.name])!==null&&t!==void 0?t:[];return new A.GraphQLEnumType({...r,values:{...r.values,...buildEnumValueMap(n)},extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendScalarType(e){var t;const r=e.toConfig();const n=(t=I[r.name])!==null&&t!==void 0?t:[];let s=r.specifiedByURL;for(const e of n){var o;s=(o=getSpecifiedByURL(e))!==null&&o!==void 0?o:s}return new A.GraphQLScalarType({...r,specifiedByURL:s,extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendObjectType(e){var t;const r=e.toConfig();const n=(t=I[r.name])!==null&&t!==void 0?t:[];return new A.GraphQLObjectType({...r,interfaces:()=>[...e.getInterfaces().map(replaceNamedType),...buildInterfaces(n)],fields:()=>({...(0,a.mapValue)(r.fields,extendField),...buildFieldMap(n)}),extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendInterfaceType(e){var t;const r=e.toConfig();const n=(t=I[r.name])!==null&&t!==void 0?t:[];return new A.GraphQLInterfaceType({...r,interfaces:()=>[...e.getInterfaces().map(replaceNamedType),...buildInterfaces(n)],fields:()=>({...(0,a.mapValue)(r.fields,extendField),...buildFieldMap(n)}),extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendUnionType(e){var t;const r=e.toConfig();const n=(t=I[r.name])!==null&&t!==void 0?t:[];return new A.GraphQLUnionType({...r,types:()=>[...e.getTypes().map(replaceNamedType),...buildUnionTypes(n)],extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendField(e){return{...e,type:replaceType(e.type),args:e.args&&(0,a.mapValue)(e.args,extendArg)}}function extendArg(e){return{...e,type:replaceType(e.type)}}function getOperationTypes(e){const t={};for(const n of e){var r;const e=(r=n.operationTypes)!==null&&r!==void 0?r:[];for(const r of e){t[r.operation]=getNamedType(r.type)}}return t}function getNamedType(e){var t;const r=e.name.value;const n=(t=y[r])!==null&&t!==void 0?t:Q[r];if(n===undefined){throw new Error(`Unknown type: "${r}".`)}return n}function getWrappedType(e){if(e.kind===c.Kind.LIST_TYPE){return new A.GraphQLList(getWrappedType(e.type))}if(e.kind===c.Kind.NON_NULL_TYPE){return new A.GraphQLNonNull(getWrappedType(e.type))}return getNamedType(e)}function buildDirective(e){var t;return new l.GraphQLDirective({name:e.name.value,description:(t=e.description)===null||t===void 0?void 0:t.value,locations:e.locations.map((({value:e})=>e)),isRepeatable:e.repeatable,args:buildArgumentMap(e.arguments),astNode:e})}function buildFieldMap(e){const t=Object.create(null);for(const s of e){var r;const e=(r=s.fields)!==null&&r!==void 0?r:[];for(const r of e){var n;t[r.name.value]={type:getWrappedType(r.type),description:(n=r.description)===null||n===void 0?void 0:n.value,args:buildArgumentMap(r.arguments),deprecationReason:getDeprecationReason(r),astNode:r}}}return t}function buildArgumentMap(e){const t=e!==null&&e!==void 0?e:[];const r=Object.create(null);for(const e of t){var n;const t=getWrappedType(e.type);r[e.name.value]={type:t,description:(n=e.description)===null||n===void 0?void 0:n.value,defaultValue:(0,E.valueFromAST)(e.defaultValue,t),deprecationReason:getDeprecationReason(e),astNode:e}}return r}function buildInputFieldMap(e){const t=Object.create(null);for(const s of e){var r;const e=(r=s.fields)!==null&&r!==void 0?r:[];for(const r of e){var n;const e=getWrappedType(r.type);t[r.name.value]={type:e,description:(n=r.description)===null||n===void 0?void 0:n.value,defaultValue:(0,E.valueFromAST)(r.defaultValue,e),deprecationReason:getDeprecationReason(r),astNode:r}}}return t}function buildEnumValueMap(e){const t=Object.create(null);for(const s of e){var r;const e=(r=s.values)!==null&&r!==void 0?r:[];for(const r of e){var n;t[r.name.value]={description:(n=r.description)===null||n===void 0?void 0:n.value,deprecationReason:getDeprecationReason(r),astNode:r}}}return t}function buildInterfaces(e){return e.flatMap((e=>{var t,r;return(t=(r=e.interfaces)===null||r===void 0?void 0:r.map(getNamedType))!==null&&t!==void 0?t:[]}))}function buildUnionTypes(e){return e.flatMap((e=>{var t,r;return(t=(r=e.types)===null||r===void 0?void 0:r.map(getNamedType))!==null&&t!==void 0?t:[]}))}function buildType(e){var t;const r=e.name.value;const n=(t=I[r])!==null&&t!==void 0?t:[];switch(e.kind){case c.Kind.OBJECT_TYPE_DEFINITION:{var s;const t=[e,...n];return new A.GraphQLObjectType({name:r,description:(s=e.description)===null||s===void 0?void 0:s.value,interfaces:()=>buildInterfaces(t),fields:()=>buildFieldMap(t),astNode:e,extensionASTNodes:n})}case c.Kind.INTERFACE_TYPE_DEFINITION:{var o;const t=[e,...n];return new A.GraphQLInterfaceType({name:r,description:(o=e.description)===null||o===void 0?void 0:o.value,interfaces:()=>buildInterfaces(t),fields:()=>buildFieldMap(t),astNode:e,extensionASTNodes:n})}case c.Kind.ENUM_TYPE_DEFINITION:{var i;const t=[e,...n];return new A.GraphQLEnumType({name:r,description:(i=e.description)===null||i===void 0?void 0:i.value,values:buildEnumValueMap(t),astNode:e,extensionASTNodes:n})}case c.Kind.UNION_TYPE_DEFINITION:{var a;const t=[e,...n];return new A.GraphQLUnionType({name:r,description:(a=e.description)===null||a===void 0?void 0:a.value,types:()=>buildUnionTypes(t),astNode:e,extensionASTNodes:n})}case c.Kind.SCALAR_TYPE_DEFINITION:{var u;return new A.GraphQLScalarType({name:r,description:(u=e.description)===null||u===void 0?void 0:u.value,specifiedByURL:getSpecifiedByURL(e),astNode:e,extensionASTNodes:n})}case c.Kind.INPUT_OBJECT_TYPE_DEFINITION:{var l;const t=[e,...n];return new A.GraphQLInputObjectType({name:r,description:(l=e.description)===null||l===void 0?void 0:l.value,fields:()=>buildInputFieldMap(t),astNode:e,extensionASTNodes:n,isOneOf:isOneOf(e)})}}}}const y=(0,i.keyMap)([...p.specifiedScalarTypes,...d.introspectionTypes],(e=>e.name));function getDeprecationReason(e){const t=(0,m.getDirectiveValues)(l.GraphQLDeprecatedDirective,e);return t===null||t===void 0?void 0:t.reason}function getSpecifiedByURL(e){const t=(0,m.getDirectiveValues)(l.GraphQLSpecifiedByDirective,e);return t===null||t===void 0?void 0:t.url}function isOneOf(e){return Boolean((0,m.getDirectiveValues)(l.GraphQLOneOfDirective,e))}},37461:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.DangerousChangeType=t.BreakingChangeType=void 0;t.findBreakingChanges=findBreakingChanges;t.findDangerousChanges=findDangerousChanges;var n=r(25742);var s=r(33650);var o=r(37579);var i=r(59936);var a=r(84169);var c=r(93571);var u=r(48893);var A=r(67287);var l;t.BreakingChangeType=l;(function(e){e["TYPE_REMOVED"]="TYPE_REMOVED";e["TYPE_CHANGED_KIND"]="TYPE_CHANGED_KIND";e["TYPE_REMOVED_FROM_UNION"]="TYPE_REMOVED_FROM_UNION";e["VALUE_REMOVED_FROM_ENUM"]="VALUE_REMOVED_FROM_ENUM";e["REQUIRED_INPUT_FIELD_ADDED"]="REQUIRED_INPUT_FIELD_ADDED";e["IMPLEMENTED_INTERFACE_REMOVED"]="IMPLEMENTED_INTERFACE_REMOVED";e["FIELD_REMOVED"]="FIELD_REMOVED";e["FIELD_CHANGED_KIND"]="FIELD_CHANGED_KIND";e["REQUIRED_ARG_ADDED"]="REQUIRED_ARG_ADDED";e["ARG_REMOVED"]="ARG_REMOVED";e["ARG_CHANGED_KIND"]="ARG_CHANGED_KIND";e["DIRECTIVE_REMOVED"]="DIRECTIVE_REMOVED";e["DIRECTIVE_ARG_REMOVED"]="DIRECTIVE_ARG_REMOVED";e["REQUIRED_DIRECTIVE_ARG_ADDED"]="REQUIRED_DIRECTIVE_ARG_ADDED";e["DIRECTIVE_REPEATABLE_REMOVED"]="DIRECTIVE_REPEATABLE_REMOVED";e["DIRECTIVE_LOCATION_REMOVED"]="DIRECTIVE_LOCATION_REMOVED"})(l||(t.BreakingChangeType=l={}));var d;t.DangerousChangeType=d;(function(e){e["VALUE_ADDED_TO_ENUM"]="VALUE_ADDED_TO_ENUM";e["TYPE_ADDED_TO_UNION"]="TYPE_ADDED_TO_UNION";e["OPTIONAL_INPUT_FIELD_ADDED"]="OPTIONAL_INPUT_FIELD_ADDED";e["OPTIONAL_ARG_ADDED"]="OPTIONAL_ARG_ADDED";e["IMPLEMENTED_INTERFACE_ADDED"]="IMPLEMENTED_INTERFACE_ADDED";e["ARG_DEFAULT_VALUE_CHANGE"]="ARG_DEFAULT_VALUE_CHANGE"})(d||(t.DangerousChangeType=d={}));function findBreakingChanges(e,t){return findSchemaChanges(e,t).filter((e=>e.type in l))}function findDangerousChanges(e,t){return findSchemaChanges(e,t).filter((e=>e.type in d))}function findSchemaChanges(e,t){return[...findTypeChanges(e,t),...findDirectiveChanges(e,t)]}function findDirectiveChanges(e,t){const r=[];const n=diff(e.getDirectives(),t.getDirectives());for(const e of n.removed){r.push({type:l.DIRECTIVE_REMOVED,description:`${e.name} was removed.`})}for(const[e,t]of n.persisted){const n=diff(e.args,t.args);for(const t of n.added){if((0,a.isRequiredArgument)(t)){r.push({type:l.REQUIRED_DIRECTIVE_ARG_ADDED,description:`A required arg ${t.name} on directive ${e.name} was added.`})}}for(const t of n.removed){r.push({type:l.DIRECTIVE_ARG_REMOVED,description:`${t.name} was removed from ${e.name}.`})}if(e.isRepeatable&&!t.isRepeatable){r.push({type:l.DIRECTIVE_REPEATABLE_REMOVED,description:`Repeatable flag was removed from ${e.name}.`})}for(const n of e.locations){if(!t.locations.includes(n)){r.push({type:l.DIRECTIVE_LOCATION_REMOVED,description:`${n} was removed from ${e.name}.`})}}}return r}function findTypeChanges(e,t){const r=[];const n=diff(Object.values(e.getTypeMap()),Object.values(t.getTypeMap()));for(const e of n.removed){r.push({type:l.TYPE_REMOVED,description:(0,c.isSpecifiedScalarType)(e)?`Standard scalar ${e.name} was removed because it is not referenced anymore.`:`${e.name} was removed.`})}for(const[e,t]of n.persisted){if((0,a.isEnumType)(e)&&(0,a.isEnumType)(t)){r.push(...findEnumTypeChanges(e,t))}else if((0,a.isUnionType)(e)&&(0,a.isUnionType)(t)){r.push(...findUnionTypeChanges(e,t))}else if((0,a.isInputObjectType)(e)&&(0,a.isInputObjectType)(t)){r.push(...findInputObjectTypeChanges(e,t))}else if((0,a.isObjectType)(e)&&(0,a.isObjectType)(t)){r.push(...findFieldChanges(e,t),...findImplementedInterfacesChanges(e,t))}else if((0,a.isInterfaceType)(e)&&(0,a.isInterfaceType)(t)){r.push(...findFieldChanges(e,t),...findImplementedInterfacesChanges(e,t))}else if(e.constructor!==t.constructor){r.push({type:l.TYPE_CHANGED_KIND,description:`${e.name} changed from `+`${typeKindName(e)} to ${typeKindName(t)}.`})}}return r}function findInputObjectTypeChanges(e,t){const r=[];const n=diff(Object.values(e.getFields()),Object.values(t.getFields()));for(const t of n.added){if((0,a.isRequiredInputField)(t)){r.push({type:l.REQUIRED_INPUT_FIELD_ADDED,description:`A required field ${t.name} on input type ${e.name} was added.`})}else{r.push({type:d.OPTIONAL_INPUT_FIELD_ADDED,description:`An optional field ${t.name} on input type ${e.name} was added.`})}}for(const t of n.removed){r.push({type:l.FIELD_REMOVED,description:`${e.name}.${t.name} was removed.`})}for(const[t,s]of n.persisted){const n=isChangeSafeForInputObjectFieldOrFieldArg(t.type,s.type);if(!n){r.push({type:l.FIELD_CHANGED_KIND,description:`${e.name}.${t.name} changed type from `+`${String(t.type)} to ${String(s.type)}.`})}}return r}function findUnionTypeChanges(e,t){const r=[];const n=diff(e.getTypes(),t.getTypes());for(const t of n.added){r.push({type:d.TYPE_ADDED_TO_UNION,description:`${t.name} was added to union type ${e.name}.`})}for(const t of n.removed){r.push({type:l.TYPE_REMOVED_FROM_UNION,description:`${t.name} was removed from union type ${e.name}.`})}return r}function findEnumTypeChanges(e,t){const r=[];const n=diff(e.getValues(),t.getValues());for(const t of n.added){r.push({type:d.VALUE_ADDED_TO_ENUM,description:`${t.name} was added to enum type ${e.name}.`})}for(const t of n.removed){r.push({type:l.VALUE_REMOVED_FROM_ENUM,description:`${t.name} was removed from enum type ${e.name}.`})}return r}function findImplementedInterfacesChanges(e,t){const r=[];const n=diff(e.getInterfaces(),t.getInterfaces());for(const t of n.added){r.push({type:d.IMPLEMENTED_INTERFACE_ADDED,description:`${t.name} added to interfaces implemented by ${e.name}.`})}for(const t of n.removed){r.push({type:l.IMPLEMENTED_INTERFACE_REMOVED,description:`${e.name} no longer implements interface ${t.name}.`})}return r}function findFieldChanges(e,t){const r=[];const n=diff(Object.values(e.getFields()),Object.values(t.getFields()));for(const t of n.removed){r.push({type:l.FIELD_REMOVED,description:`${e.name}.${t.name} was removed.`})}for(const[t,s]of n.persisted){r.push(...findArgChanges(e,t,s));const n=isChangeSafeForObjectOrInterfaceField(t.type,s.type);if(!n){r.push({type:l.FIELD_CHANGED_KIND,description:`${e.name}.${t.name} changed type from `+`${String(t.type)} to ${String(s.type)}.`})}}return r}function findArgChanges(e,t,r){const n=[];const s=diff(t.args,r.args);for(const r of s.removed){n.push({type:l.ARG_REMOVED,description:`${e.name}.${t.name} arg ${r.name} was removed.`})}for(const[r,o]of s.persisted){const s=isChangeSafeForInputObjectFieldOrFieldArg(r.type,o.type);if(!s){n.push({type:l.ARG_CHANGED_KIND,description:`${e.name}.${t.name} arg ${r.name} has changed type from `+`${String(r.type)} to ${String(o.type)}.`})}else if(r.defaultValue!==undefined){if(o.defaultValue===undefined){n.push({type:d.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${r.name} defaultValue was removed.`})}else{const s=stringifyValue(r.defaultValue,r.type);const i=stringifyValue(o.defaultValue,o.type);if(s!==i){n.push({type:d.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${r.name} has changed defaultValue from ${s} to ${i}.`})}}}}for(const r of s.added){if((0,a.isRequiredArgument)(r)){n.push({type:l.REQUIRED_ARG_ADDED,description:`A required arg ${r.name} on ${e.name}.${t.name} was added.`})}else{n.push({type:d.OPTIONAL_ARG_ADDED,description:`An optional arg ${r.name} on ${e.name}.${t.name} was added.`})}}return n}function isChangeSafeForObjectOrInterfaceField(e,t){if((0,a.isListType)(e)){return(0,a.isListType)(t)&&isChangeSafeForObjectOrInterfaceField(e.ofType,t.ofType)||(0,a.isNonNullType)(t)&&isChangeSafeForObjectOrInterfaceField(e,t.ofType)}if((0,a.isNonNullType)(e)){return(0,a.isNonNullType)(t)&&isChangeSafeForObjectOrInterfaceField(e.ofType,t.ofType)}return(0,a.isNamedType)(t)&&e.name===t.name||(0,a.isNonNullType)(t)&&isChangeSafeForObjectOrInterfaceField(e,t.ofType)}function isChangeSafeForInputObjectFieldOrFieldArg(e,t){if((0,a.isListType)(e)){return(0,a.isListType)(t)&&isChangeSafeForInputObjectFieldOrFieldArg(e.ofType,t.ofType)}if((0,a.isNonNullType)(e)){return(0,a.isNonNullType)(t)&&isChangeSafeForInputObjectFieldOrFieldArg(e.ofType,t.ofType)||!(0,a.isNonNullType)(t)&&isChangeSafeForInputObjectFieldOrFieldArg(e.ofType,t)}return(0,a.isNamedType)(t)&&e.name===t.name}function typeKindName(e){if((0,a.isScalarType)(e)){return"a Scalar type"}if((0,a.isObjectType)(e)){return"an Object type"}if((0,a.isInterfaceType)(e)){return"an Interface type"}if((0,a.isUnionType)(e)){return"a Union type"}if((0,a.isEnumType)(e)){return"an Enum type"}if((0,a.isInputObjectType)(e)){return"an Input type"}false||(0,s.invariant)(false,"Unexpected type: "+(0,n.inspect)(e))}function stringifyValue(e,t){const r=(0,u.astFromValue)(e,t);r!=null||(0,s.invariant)(false);return(0,i.print)((0,A.sortValueNode)(r))}function diff(e,t){const r=[];const n=[];const s=[];const i=(0,o.keyMap)(e,(({name:e})=>e));const a=(0,o.keyMap)(t,(({name:e})=>e));for(const t of e){const e=a[t.name];if(e===undefined){n.push(t)}else{s.push([t,e])}}for(const e of t){if(i[e.name]===undefined){r.push(e)}}return{added:r,persisted:s,removed:n}}},30875:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.getIntrospectionQuery=getIntrospectionQuery;function getIntrospectionQuery(e){const t={descriptions:true,specifiedByUrl:false,directiveIsRepeatable:false,schemaDescription:false,inputValueDeprecation:false,oneOf:false,...e};const r=t.descriptions?"description":"";const n=t.specifiedByUrl?"specifiedByURL":"";const s=t.directiveIsRepeatable?"isRepeatable":"";const o=t.schemaDescription?r:"";function inputDeprecation(e){return t.inputValueDeprecation?e:""}const i=t.oneOf?"isOneOf":"";return`\n query IntrospectionQuery {\n __schema {\n ${o}\n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n ${r}\n ${s}\n locations\n args${inputDeprecation("(includeDeprecated: true)")} {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n ${r}\n ${n}\n ${i}\n fields(includeDeprecated: true) {\n name\n ${r}\n args${inputDeprecation("(includeDeprecated: true)")} {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields${inputDeprecation("(includeDeprecated: true)")} {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n ${r}\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n ${r}\n type { ...TypeRef }\n defaultValue\n ${inputDeprecation("isDeprecated")}\n ${inputDeprecation("deprecationReason")}\n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n `}},86201:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getOperationAST=getOperationAST;var n=r(11123);function getOperationAST(e,t){let r=null;for(const o of e.definitions){if(o.kind===n.Kind.OPERATION_DEFINITION){var s;if(t==null){if(r){return null}r=o}else if(((s=o.name)===null||s===void 0?void 0:s.value)===t){return o}}}return r}},45017:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getOperationRootType=getOperationRootType;var n=r(15939);function getOperationRootType(e,t){if(t.operation==="query"){const r=e.getQueryType();if(!r){throw new n.GraphQLError("Schema does not define the required query root type.",{nodes:t})}return r}if(t.operation==="mutation"){const r=e.getMutationType();if(!r){throw new n.GraphQLError("Schema is not configured for mutations.",{nodes:t})}return r}if(t.operation==="subscription"){const r=e.getSubscriptionType();if(!r){throw new n.GraphQLError("Schema is not configured for subscriptions.",{nodes:t})}return r}throw new n.GraphQLError("Can only have query, mutation and subscription operations.",{nodes:t})}},47006:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"BreakingChangeType",{enumerable:true,get:function(){return Q.BreakingChangeType}});Object.defineProperty(t,"DangerousChangeType",{enumerable:true,get:function(){return Q.DangerousChangeType}});Object.defineProperty(t,"TypeInfo",{enumerable:true,get:function(){return m.TypeInfo}});Object.defineProperty(t,"assertValidName",{enumerable:true,get:function(){return B.assertValidName}});Object.defineProperty(t,"astFromValue",{enumerable:true,get:function(){return h.astFromValue}});Object.defineProperty(t,"buildASTSchema",{enumerable:true,get:function(){return c.buildASTSchema}});Object.defineProperty(t,"buildClientSchema",{enumerable:true,get:function(){return a.buildClientSchema}});Object.defineProperty(t,"buildSchema",{enumerable:true,get:function(){return c.buildSchema}});Object.defineProperty(t,"coerceInputValue",{enumerable:true,get:function(){return E.coerceInputValue}});Object.defineProperty(t,"concatAST",{enumerable:true,get:function(){return y.concatAST}});Object.defineProperty(t,"doTypesOverlap",{enumerable:true,get:function(){return b.doTypesOverlap}});Object.defineProperty(t,"extendSchema",{enumerable:true,get:function(){return u.extendSchema}});Object.defineProperty(t,"findBreakingChanges",{enumerable:true,get:function(){return Q.findBreakingChanges}});Object.defineProperty(t,"findDangerousChanges",{enumerable:true,get:function(){return Q.findDangerousChanges}});Object.defineProperty(t,"getIntrospectionQuery",{enumerable:true,get:function(){return n.getIntrospectionQuery}});Object.defineProperty(t,"getOperationAST",{enumerable:true,get:function(){return s.getOperationAST}});Object.defineProperty(t,"getOperationRootType",{enumerable:true,get:function(){return o.getOperationRootType}});Object.defineProperty(t,"introspectionFromSchema",{enumerable:true,get:function(){return i.introspectionFromSchema}});Object.defineProperty(t,"isEqualType",{enumerable:true,get:function(){return b.isEqualType}});Object.defineProperty(t,"isTypeSubTypeOf",{enumerable:true,get:function(){return b.isTypeSubTypeOf}});Object.defineProperty(t,"isValidNameError",{enumerable:true,get:function(){return B.isValidNameError}});Object.defineProperty(t,"lexicographicSortSchema",{enumerable:true,get:function(){return A.lexicographicSortSchema}});Object.defineProperty(t,"printIntrospectionSchema",{enumerable:true,get:function(){return l.printIntrospectionSchema}});Object.defineProperty(t,"printSchema",{enumerable:true,get:function(){return l.printSchema}});Object.defineProperty(t,"printType",{enumerable:true,get:function(){return l.printType}});Object.defineProperty(t,"separateOperations",{enumerable:true,get:function(){return I.separateOperations}});Object.defineProperty(t,"stripIgnoredCharacters",{enumerable:true,get:function(){return C.stripIgnoredCharacters}});Object.defineProperty(t,"typeFromAST",{enumerable:true,get:function(){return d.typeFromAST}});Object.defineProperty(t,"valueFromAST",{enumerable:true,get:function(){return p.valueFromAST}});Object.defineProperty(t,"valueFromASTUntyped",{enumerable:true,get:function(){return g.valueFromASTUntyped}});Object.defineProperty(t,"visitWithTypeInfo",{enumerable:true,get:function(){return m.visitWithTypeInfo}});var n=r(30875);var s=r(86201);var o=r(45017);var i=r(15350);var a=r(76954);var c=r(69115);var u=r(35487);var A=r(26071);var l=r(79258);var d=r(76738);var p=r(46495);var g=r(35470);var h=r(48893);var m=r(85e3);var E=r(67572);var y=r(15470);var I=r(46931);var C=r(1096);var b=r(46539);var B=r(60873);var Q=r(37461)},15350:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.introspectionFromSchema=introspectionFromSchema;var n=r(33650);var s=r(14929);var o=r(98923);var i=r(30875);function introspectionFromSchema(e,t){const r={specifiedByUrl:true,directiveIsRepeatable:true,schemaDescription:true,inputValueDeprecation:true,oneOf:true,...t};const a=(0,s.parse)((0,i.getIntrospectionQuery)(r));const c=(0,o.executeSync)({schema:e,document:a});!c.errors&&c.data||(0,n.invariant)(false);return c.data}},26071:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.lexicographicSortSchema=lexicographicSortSchema;var n=r(25742);var s=r(33650);var o=r(3166);var i=r(23428);var a=r(84169);var c=r(21058);var u=r(10317);var A=r(79299);function lexicographicSortSchema(e){const t=e.toConfig();const r=(0,o.keyValMap)(sortByName(t.types),(e=>e.name),sortNamedType);return new A.GraphQLSchema({...t,types:Object.values(r),directives:sortByName(t.directives).map(sortDirective),query:replaceMaybeType(t.query),mutation:replaceMaybeType(t.mutation),subscription:replaceMaybeType(t.subscription)});function replaceType(e){if((0,a.isListType)(e)){return new a.GraphQLList(replaceType(e.ofType))}else if((0,a.isNonNullType)(e)){return new a.GraphQLNonNull(replaceType(e.ofType))}return replaceNamedType(e)}function replaceNamedType(e){return r[e.name]}function replaceMaybeType(e){return e&&replaceNamedType(e)}function sortDirective(e){const t=e.toConfig();return new c.GraphQLDirective({...t,locations:sortBy(t.locations,(e=>e)),args:sortArgs(t.args)})}function sortArgs(e){return sortObjMap(e,(e=>({...e,type:replaceType(e.type)})))}function sortFields(e){return sortObjMap(e,(e=>({...e,type:replaceType(e.type),args:e.args&&sortArgs(e.args)})))}function sortInputFields(e){return sortObjMap(e,(e=>({...e,type:replaceType(e.type)})))}function sortTypes(e){return sortByName(e).map(replaceNamedType)}function sortNamedType(e){if((0,a.isScalarType)(e)||(0,u.isIntrospectionType)(e)){return e}if((0,a.isObjectType)(e)){const t=e.toConfig();return new a.GraphQLObjectType({...t,interfaces:()=>sortTypes(t.interfaces),fields:()=>sortFields(t.fields)})}if((0,a.isInterfaceType)(e)){const t=e.toConfig();return new a.GraphQLInterfaceType({...t,interfaces:()=>sortTypes(t.interfaces),fields:()=>sortFields(t.fields)})}if((0,a.isUnionType)(e)){const t=e.toConfig();return new a.GraphQLUnionType({...t,types:()=>sortTypes(t.types)})}if((0,a.isEnumType)(e)){const t=e.toConfig();return new a.GraphQLEnumType({...t,values:sortObjMap(t.values,(e=>e))})}if((0,a.isInputObjectType)(e)){const t=e.toConfig();return new a.GraphQLInputObjectType({...t,fields:()=>sortInputFields(t.fields)})}false||(0,s.invariant)(false,"Unexpected type: "+(0,n.inspect)(e))}}function sortObjMap(e,t){const r=Object.create(null);for(const n of Object.keys(e).sort(i.naturalCompare)){r[n]=t(e[n])}return r}function sortByName(e){return sortBy(e,(e=>e.name))}function sortBy(e,t){return e.slice().sort(((e,r)=>{const n=t(e);const s=t(r);return(0,i.naturalCompare)(n,s)}))}},79258:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.printIntrospectionSchema=printIntrospectionSchema;t.printSchema=printSchema;t.printType=printType;var n=r(25742);var s=r(33650);var o=r(77508);var i=r(11123);var a=r(59936);var c=r(84169);var u=r(21058);var A=r(10317);var l=r(93571);var d=r(48893);function printSchema(e){return printFilteredSchema(e,(e=>!(0,u.isSpecifiedDirective)(e)),isDefinedType)}function printIntrospectionSchema(e){return printFilteredSchema(e,u.isSpecifiedDirective,A.isIntrospectionType)}function isDefinedType(e){return!(0,l.isSpecifiedScalarType)(e)&&!(0,A.isIntrospectionType)(e)}function printFilteredSchema(e,t,r){const n=e.getDirectives().filter(t);const s=Object.values(e.getTypeMap()).filter(r);return[printSchemaDefinition(e),...n.map((e=>printDirective(e))),...s.map((e=>printType(e)))].filter(Boolean).join("\n\n")}function printSchemaDefinition(e){if(e.description==null&&isSchemaOfCommonNames(e)){return}const t=[];const r=e.getQueryType();if(r){t.push(` query: ${r.name}`)}const n=e.getMutationType();if(n){t.push(` mutation: ${n.name}`)}const s=e.getSubscriptionType();if(s){t.push(` subscription: ${s.name}`)}return printDescription(e)+`schema {\n${t.join("\n")}\n}`}function isSchemaOfCommonNames(e){const t=e.getQueryType();if(t&&t.name!=="Query"){return false}const r=e.getMutationType();if(r&&r.name!=="Mutation"){return false}const n=e.getSubscriptionType();if(n&&n.name!=="Subscription"){return false}return true}function printType(e){if((0,c.isScalarType)(e)){return printScalar(e)}if((0,c.isObjectType)(e)){return printObject(e)}if((0,c.isInterfaceType)(e)){return printInterface(e)}if((0,c.isUnionType)(e)){return printUnion(e)}if((0,c.isEnumType)(e)){return printEnum(e)}if((0,c.isInputObjectType)(e)){return printInputObject(e)}false||(0,s.invariant)(false,"Unexpected type: "+(0,n.inspect)(e))}function printScalar(e){return printDescription(e)+`scalar ${e.name}`+printSpecifiedByURL(e)}function printImplementedInterfaces(e){const t=e.getInterfaces();return t.length?" implements "+t.map((e=>e.name)).join(" & "):""}function printObject(e){return printDescription(e)+`type ${e.name}`+printImplementedInterfaces(e)+printFields(e)}function printInterface(e){return printDescription(e)+`interface ${e.name}`+printImplementedInterfaces(e)+printFields(e)}function printUnion(e){const t=e.getTypes();const r=t.length?" = "+t.join(" | "):"";return printDescription(e)+"union "+e.name+r}function printEnum(e){const t=e.getValues().map(((e,t)=>printDescription(e," ",!t)+" "+e.name+printDeprecated(e.deprecationReason)));return printDescription(e)+`enum ${e.name}`+printBlock(t)}function printInputObject(e){const t=Object.values(e.getFields()).map(((e,t)=>printDescription(e," ",!t)+" "+printInputValue(e)));return printDescription(e)+`input ${e.name}`+(e.isOneOf?" @oneOf":"")+printBlock(t)}function printFields(e){const t=Object.values(e.getFields()).map(((e,t)=>printDescription(e," ",!t)+" "+e.name+printArgs(e.args," ")+": "+String(e.type)+printDeprecated(e.deprecationReason)));return printBlock(t)}function printBlock(e){return e.length!==0?" {\n"+e.join("\n")+"\n}":""}function printArgs(e,t=""){if(e.length===0){return""}if(e.every((e=>!e.description))){return"("+e.map(printInputValue).join(", ")+")"}return"(\n"+e.map(((e,r)=>printDescription(e," "+t,!r)+" "+t+printInputValue(e))).join("\n")+"\n"+t+")"}function printInputValue(e){const t=(0,d.astFromValue)(e.defaultValue,e.type);let r=e.name+": "+String(e.type);if(t){r+=` = ${(0,a.print)(t)}`}return r+printDeprecated(e.deprecationReason)}function printDirective(e){return printDescription(e)+"directive @"+e.name+printArgs(e.args)+(e.isRepeatable?" repeatable":"")+" on "+e.locations.join(" | ")}function printDeprecated(e){if(e==null){return""}if(e!==u.DEFAULT_DEPRECATION_REASON){const t=(0,a.print)({kind:i.Kind.STRING,value:e});return` @deprecated(reason: ${t})`}return" @deprecated"}function printSpecifiedByURL(e){if(e.specifiedByURL==null){return""}const t=(0,a.print)({kind:i.Kind.STRING,value:e.specifiedByURL});return` @specifiedBy(url: ${t})`}function printDescription(e,t="",r=true){const{description:n}=e;if(n==null){return""}const s=(0,a.print)({kind:i.Kind.STRING,value:n,block:(0,o.isPrintableAsBlockString)(n)});const c=t&&!r?"\n"+t:t;return c+s.replace(/\n/g,"\n"+t)+"\n"}},46931:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.separateOperations=separateOperations;var n=r(11123);var s=r(30638);function separateOperations(e){const t=[];const r=Object.create(null);for(const s of e.definitions){switch(s.kind){case n.Kind.OPERATION_DEFINITION:t.push(s);break;case n.Kind.FRAGMENT_DEFINITION:r[s.name.value]=collectDependencies(s.selectionSet);break;default:}}const s=Object.create(null);for(const o of t){const t=new Set;for(const e of collectDependencies(o.selectionSet)){collectTransitiveDependencies(t,r,e)}const i=o.name?o.name.value:"";s[i]={kind:n.Kind.DOCUMENT,definitions:e.definitions.filter((e=>e===o||e.kind===n.Kind.FRAGMENT_DEFINITION&&t.has(e.name.value)))}}return s}function collectTransitiveDependencies(e,t,r){if(!e.has(r)){e.add(r);const n=t[r];if(n!==undefined){for(const r of n){collectTransitiveDependencies(e,t,r)}}}}function collectDependencies(e){const t=[];(0,s.visit)(e,{FragmentSpread(e){t.push(e.name.value)}});return t}},67287:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.sortValueNode=sortValueNode;var n=r(23428);var s=r(11123);function sortValueNode(e){switch(e.kind){case s.Kind.OBJECT:return{...e,fields:sortFields(e.fields)};case s.Kind.LIST:return{...e,values:e.values.map(sortValueNode)};case s.Kind.INT:case s.Kind.FLOAT:case s.Kind.STRING:case s.Kind.BOOLEAN:case s.Kind.NULL:case s.Kind.ENUM:case s.Kind.VARIABLE:return e}}function sortFields(e){return e.map((e=>({...e,value:sortValueNode(e.value)}))).sort(((e,t)=>(0,n.naturalCompare)(e.name.value,t.name.value)))}},1096:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.stripIgnoredCharacters=stripIgnoredCharacters;var n=r(77508);var s=r(29278);var o=r(40203);var i=r(1743);function stripIgnoredCharacters(e){const t=(0,o.isSource)(e)?e:new o.Source(e);const r=t.body;const a=new s.Lexer(t);let c="";let u=false;while(a.advance().kind!==i.TokenKind.EOF){const e=a.token;const t=e.kind;const o=!(0,s.isPunctuatorTokenKind)(e.kind);if(u){if(o||e.kind===i.TokenKind.SPREAD){c+=" "}}const A=r.slice(e.start,e.end);if(t===i.TokenKind.BLOCK_STRING){c+=(0,n.printBlockString)(e.value,{minimize:true})}else{c+=A}u=o}return c}},46539:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.doTypesOverlap=doTypesOverlap;t.isEqualType=isEqualType;t.isTypeSubTypeOf=isTypeSubTypeOf;var n=r(84169);function isEqualType(e,t){if(e===t){return true}if((0,n.isNonNullType)(e)&&(0,n.isNonNullType)(t)){return isEqualType(e.ofType,t.ofType)}if((0,n.isListType)(e)&&(0,n.isListType)(t)){return isEqualType(e.ofType,t.ofType)}return false}function isTypeSubTypeOf(e,t,r){if(t===r){return true}if((0,n.isNonNullType)(r)){if((0,n.isNonNullType)(t)){return isTypeSubTypeOf(e,t.ofType,r.ofType)}return false}if((0,n.isNonNullType)(t)){return isTypeSubTypeOf(e,t.ofType,r)}if((0,n.isListType)(r)){if((0,n.isListType)(t)){return isTypeSubTypeOf(e,t.ofType,r.ofType)}return false}if((0,n.isListType)(t)){return false}return(0,n.isAbstractType)(r)&&((0,n.isInterfaceType)(t)||(0,n.isObjectType)(t))&&e.isSubType(r,t)}function doTypesOverlap(e,t,r){if(t===r){return true}if((0,n.isAbstractType)(t)){if((0,n.isAbstractType)(r)){return e.getPossibleTypes(t).some((t=>e.isSubType(r,t)))}return e.isSubType(t,r)}if((0,n.isAbstractType)(r)){return e.isSubType(r,t)}return false}},76738:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.typeFromAST=typeFromAST;var n=r(11123);var s=r(84169);function typeFromAST(e,t){switch(t.kind){case n.Kind.LIST_TYPE:{const r=typeFromAST(e,t.type);return r&&new s.GraphQLList(r)}case n.Kind.NON_NULL_TYPE:{const r=typeFromAST(e,t.type);return r&&new s.GraphQLNonNull(r)}case n.Kind.NAMED_TYPE:return e.getType(t.name.value)}}},46495:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.valueFromAST=valueFromAST;var n=r(25742);var s=r(33650);var o=r(37579);var i=r(11123);var a=r(84169);function valueFromAST(e,t,r){if(!e){return}if(e.kind===i.Kind.VARIABLE){const n=e.name.value;if(r==null||r[n]===undefined){return}const s=r[n];if(s===null&&(0,a.isNonNullType)(t)){return}return s}if((0,a.isNonNullType)(t)){if(e.kind===i.Kind.NULL){return}return valueFromAST(e,t.ofType,r)}if(e.kind===i.Kind.NULL){return null}if((0,a.isListType)(t)){const n=t.ofType;if(e.kind===i.Kind.LIST){const t=[];for(const s of e.values){if(isMissingVariable(s,r)){if((0,a.isNonNullType)(n)){return}t.push(null)}else{const e=valueFromAST(s,n,r);if(e===undefined){return}t.push(e)}}return t}const s=valueFromAST(e,n,r);if(s===undefined){return}return[s]}if((0,a.isInputObjectType)(t)){if(e.kind!==i.Kind.OBJECT){return}const n=Object.create(null);const s=(0,o.keyMap)(e.fields,(e=>e.name.value));for(const e of Object.values(t.getFields())){const t=s[e.name];if(!t||isMissingVariable(t.value,r)){if(e.defaultValue!==undefined){n[e.name]=e.defaultValue}else if((0,a.isNonNullType)(e.type)){return}continue}const o=valueFromAST(t.value,e.type,r);if(o===undefined){return}n[e.name]=o}if(t.isOneOf){const e=Object.keys(n);if(e.length!==1){return}if(n[e[0]]===null){return}}return n}if((0,a.isLeafType)(t)){let n;try{n=t.parseLiteral(e,r)}catch(e){return}if(n===undefined){return}return n}false||(0,s.invariant)(false,"Unexpected input type: "+(0,n.inspect)(t))}function isMissingVariable(e,t){return e.kind===i.Kind.VARIABLE&&(t==null||t[e.name.value]===undefined)}},35470:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.valueFromASTUntyped=valueFromASTUntyped;var n=r(3166);var s=r(11123);function valueFromASTUntyped(e,t){switch(e.kind){case s.Kind.NULL:return null;case s.Kind.INT:return parseInt(e.value,10);case s.Kind.FLOAT:return parseFloat(e.value);case s.Kind.STRING:case s.Kind.ENUM:case s.Kind.BOOLEAN:return e.value;case s.Kind.LIST:return e.values.map((e=>valueFromASTUntyped(e,t)));case s.Kind.OBJECT:return(0,n.keyValMap)(e.fields,(e=>e.name.value),(e=>valueFromASTUntyped(e.value,t)));case s.Kind.VARIABLE:return t===null||t===void 0?void 0:t[e.name.value]}}},18139:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValidationContext=t.SDLValidationContext=t.ASTValidationContext=void 0;var n=r(11123);var s=r(30638);var o=r(85e3);class ASTValidationContext{constructor(e,t){this._ast=e;this._fragments=undefined;this._fragmentSpreads=new Map;this._recursivelyReferencedFragments=new Map;this._onError=t}get[Symbol.toStringTag](){return"ASTValidationContext"}reportError(e){this._onError(e)}getDocument(){return this._ast}getFragment(e){let t;if(this._fragments){t=this._fragments}else{t=Object.create(null);for(const e of this.getDocument().definitions){if(e.kind===n.Kind.FRAGMENT_DEFINITION){t[e.name.value]=e}}this._fragments=t}return t[e]}getFragmentSpreads(e){let t=this._fragmentSpreads.get(e);if(!t){t=[];const r=[e];let s;while(s=r.pop()){for(const e of s.selections){if(e.kind===n.Kind.FRAGMENT_SPREAD){t.push(e)}else if(e.selectionSet){r.push(e.selectionSet)}}}this._fragmentSpreads.set(e,t)}return t}getRecursivelyReferencedFragments(e){let t=this._recursivelyReferencedFragments.get(e);if(!t){t=[];const r=Object.create(null);const n=[e.selectionSet];let s;while(s=n.pop()){for(const e of this.getFragmentSpreads(s)){const s=e.name.value;if(r[s]!==true){r[s]=true;const e=this.getFragment(s);if(e){t.push(e);n.push(e.selectionSet)}}}}this._recursivelyReferencedFragments.set(e,t)}return t}}t.ASTValidationContext=ASTValidationContext;class SDLValidationContext extends ASTValidationContext{constructor(e,t,r){super(e,r);this._schema=t}get[Symbol.toStringTag](){return"SDLValidationContext"}getSchema(){return this._schema}}t.SDLValidationContext=SDLValidationContext;class ValidationContext extends ASTValidationContext{constructor(e,t,r,n){super(t,n);this._schema=e;this._typeInfo=r;this._variableUsages=new Map;this._recursiveVariableUsages=new Map}get[Symbol.toStringTag](){return"ValidationContext"}getSchema(){return this._schema}getVariableUsages(e){let t=this._variableUsages.get(e);if(!t){const r=[];const n=new o.TypeInfo(this._schema);(0,s.visit)(e,(0,o.visitWithTypeInfo)(n,{VariableDefinition:()=>false,Variable(e){r.push({node:e,type:n.getInputType(),defaultValue:n.getDefaultValue()})}}));t=r;this._variableUsages.set(e,t)}return t}getRecursiveVariableUsages(e){let t=this._recursiveVariableUsages.get(e);if(!t){t=this.getVariableUsages(e);for(const r of this.getRecursivelyReferencedFragments(e)){t=t.concat(this.getVariableUsages(r))}this._recursiveVariableUsages.set(e,t)}return t}getType(){return this._typeInfo.getType()}getParentType(){return this._typeInfo.getParentType()}getInputType(){return this._typeInfo.getInputType()}getParentInputType(){return this._typeInfo.getParentInputType()}getFieldDef(){return this._typeInfo.getFieldDef()}getDirective(){return this._typeInfo.getDirective()}getArgument(){return this._typeInfo.getArgument()}getEnumValue(){return this._typeInfo.getEnumValue()}}t.ValidationContext=ValidationContext},47973:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"ExecutableDefinitionsRule",{enumerable:true,get:function(){return i.ExecutableDefinitionsRule}});Object.defineProperty(t,"FieldsOnCorrectTypeRule",{enumerable:true,get:function(){return a.FieldsOnCorrectTypeRule}});Object.defineProperty(t,"FragmentsOnCompositeTypesRule",{enumerable:true,get:function(){return c.FragmentsOnCompositeTypesRule}});Object.defineProperty(t,"KnownArgumentNamesRule",{enumerable:true,get:function(){return u.KnownArgumentNamesRule}});Object.defineProperty(t,"KnownDirectivesRule",{enumerable:true,get:function(){return A.KnownDirectivesRule}});Object.defineProperty(t,"KnownFragmentNamesRule",{enumerable:true,get:function(){return l.KnownFragmentNamesRule}});Object.defineProperty(t,"KnownTypeNamesRule",{enumerable:true,get:function(){return d.KnownTypeNamesRule}});Object.defineProperty(t,"LoneAnonymousOperationRule",{enumerable:true,get:function(){return p.LoneAnonymousOperationRule}});Object.defineProperty(t,"LoneSchemaDefinitionRule",{enumerable:true,get:function(){return D.LoneSchemaDefinitionRule}});Object.defineProperty(t,"MaxIntrospectionDepthRule",{enumerable:true,get:function(){return F.MaxIntrospectionDepthRule}});Object.defineProperty(t,"NoDeprecatedCustomRule",{enumerable:true,get:function(){return j.NoDeprecatedCustomRule}});Object.defineProperty(t,"NoFragmentCyclesRule",{enumerable:true,get:function(){return g.NoFragmentCyclesRule}});Object.defineProperty(t,"NoSchemaIntrospectionCustomRule",{enumerable:true,get:function(){return V.NoSchemaIntrospectionCustomRule}});Object.defineProperty(t,"NoUndefinedVariablesRule",{enumerable:true,get:function(){return h.NoUndefinedVariablesRule}});Object.defineProperty(t,"NoUnusedFragmentsRule",{enumerable:true,get:function(){return m.NoUnusedFragmentsRule}});Object.defineProperty(t,"NoUnusedVariablesRule",{enumerable:true,get:function(){return E.NoUnusedVariablesRule}});Object.defineProperty(t,"OverlappingFieldsCanBeMergedRule",{enumerable:true,get:function(){return y.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(t,"PossibleFragmentSpreadsRule",{enumerable:true,get:function(){return I.PossibleFragmentSpreadsRule}});Object.defineProperty(t,"PossibleTypeExtensionsRule",{enumerable:true,get:function(){return G.PossibleTypeExtensionsRule}});Object.defineProperty(t,"ProvidedRequiredArgumentsRule",{enumerable:true,get:function(){return C.ProvidedRequiredArgumentsRule}});Object.defineProperty(t,"ScalarLeafsRule",{enumerable:true,get:function(){return b.ScalarLeafsRule}});Object.defineProperty(t,"SingleFieldSubscriptionsRule",{enumerable:true,get:function(){return B.SingleFieldSubscriptionsRule}});Object.defineProperty(t,"UniqueArgumentDefinitionNamesRule",{enumerable:true,get:function(){return M.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(t,"UniqueArgumentNamesRule",{enumerable:true,get:function(){return Q.UniqueArgumentNamesRule}});Object.defineProperty(t,"UniqueDirectiveNamesRule",{enumerable:true,get:function(){return x.UniqueDirectiveNamesRule}});Object.defineProperty(t,"UniqueDirectivesPerLocationRule",{enumerable:true,get:function(){return T.UniqueDirectivesPerLocationRule}});Object.defineProperty(t,"UniqueEnumValueNamesRule",{enumerable:true,get:function(){return L.UniqueEnumValueNamesRule}});Object.defineProperty(t,"UniqueFieldDefinitionNamesRule",{enumerable:true,get:function(){return U.UniqueFieldDefinitionNamesRule}});Object.defineProperty(t,"UniqueFragmentNamesRule",{enumerable:true,get:function(){return v.UniqueFragmentNamesRule}});Object.defineProperty(t,"UniqueInputFieldNamesRule",{enumerable:true,get:function(){return w.UniqueInputFieldNamesRule}});Object.defineProperty(t,"UniqueOperationNamesRule",{enumerable:true,get:function(){return _.UniqueOperationNamesRule}});Object.defineProperty(t,"UniqueOperationTypesRule",{enumerable:true,get:function(){return N.UniqueOperationTypesRule}});Object.defineProperty(t,"UniqueTypeNamesRule",{enumerable:true,get:function(){return P.UniqueTypeNamesRule}});Object.defineProperty(t,"UniqueVariableNamesRule",{enumerable:true,get:function(){return O.UniqueVariableNamesRule}});Object.defineProperty(t,"ValidationContext",{enumerable:true,get:function(){return s.ValidationContext}});Object.defineProperty(t,"ValuesOfCorrectTypeRule",{enumerable:true,get:function(){return k.ValuesOfCorrectTypeRule}});Object.defineProperty(t,"VariablesAreInputTypesRule",{enumerable:true,get:function(){return R.VariablesAreInputTypesRule}});Object.defineProperty(t,"VariablesInAllowedPositionRule",{enumerable:true,get:function(){return S.VariablesInAllowedPositionRule}});Object.defineProperty(t,"recommendedRules",{enumerable:true,get:function(){return o.recommendedRules}});Object.defineProperty(t,"specifiedRules",{enumerable:true,get:function(){return o.specifiedRules}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return n.validate}});var n=r(77063);var s=r(18139);var o=r(60916);var i=r(75401);var a=r(22153);var c=r(643);var u=r(67663);var A=r(55866);var l=r(15958);var d=r(51574);var p=r(11677);var g=r(42579);var h=r(28873);var m=r(23693);var E=r(79489);var y=r(1646);var I=r(44550);var C=r(1145);var b=r(14754);var B=r(51705);var Q=r(22995);var T=r(29412);var v=r(21914);var w=r(69082);var _=r(54403);var O=r(40218);var k=r(1408);var R=r(16187);var S=r(84186);var F=r(98749);var D=r(62553);var N=r(84234);var P=r(32058);var L=r(33062);var U=r(30087);var M=r(56496);var x=r(29879);var G=r(56058);var j=r(15910);var V=r(26787)},75401:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExecutableDefinitionsRule=ExecutableDefinitionsRule;var n=r(15939);var s=r(11123);var o=r(15480);function ExecutableDefinitionsRule(e){return{Document(t){for(const r of t.definitions){if(!(0,o.isExecutableDefinitionNode)(r)){const t=r.kind===s.Kind.SCHEMA_DEFINITION||r.kind===s.Kind.SCHEMA_EXTENSION?"schema":'"'+r.name.value+'"';e.reportError(new n.GraphQLError(`The ${t} definition is not executable.`,{nodes:r}))}}return false}}}},22153:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.FieldsOnCorrectTypeRule=FieldsOnCorrectTypeRule;var n=r(41353);var s=r(23428);var o=r(47904);var i=r(15939);var a=r(84169);function FieldsOnCorrectTypeRule(e){return{Field(t){const r=e.getParentType();if(r){const s=e.getFieldDef();if(!s){const s=e.getSchema();const o=t.name.value;let a=(0,n.didYouMean)("to use an inline fragment on",getSuggestedTypeNames(s,r,o));if(a===""){a=(0,n.didYouMean)(getSuggestedFieldNames(r,o))}e.reportError(new i.GraphQLError(`Cannot query field "${o}" on type "${r.name}".`+a,{nodes:t}))}}}}}function getSuggestedTypeNames(e,t,r){if(!(0,a.isAbstractType)(t)){return[]}const n=new Set;const o=Object.create(null);for(const s of e.getPossibleTypes(t)){if(!s.getFields()[r]){continue}n.add(s);o[s.name]=1;for(const e of s.getInterfaces()){var i;if(!e.getFields()[r]){continue}n.add(e);o[e.name]=((i=o[e.name])!==null&&i!==void 0?i:0)+1}}return[...n].sort(((t,r)=>{const n=o[r.name]-o[t.name];if(n!==0){return n}if((0,a.isInterfaceType)(t)&&e.isSubType(t,r)){return-1}if((0,a.isInterfaceType)(r)&&e.isSubType(r,t)){return 1}return(0,s.naturalCompare)(t.name,r.name)})).map((e=>e.name))}function getSuggestedFieldNames(e,t){if((0,a.isObjectType)(e)||(0,a.isInterfaceType)(e)){const r=Object.keys(e.getFields());return(0,o.suggestionList)(t,r)}return[]}},643:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.FragmentsOnCompositeTypesRule=FragmentsOnCompositeTypesRule;var n=r(15939);var s=r(59936);var o=r(84169);var i=r(76738);function FragmentsOnCompositeTypesRule(e){return{InlineFragment(t){const r=t.typeCondition;if(r){const t=(0,i.typeFromAST)(e.getSchema(),r);if(t&&!(0,o.isCompositeType)(t)){const t=(0,s.print)(r);e.reportError(new n.GraphQLError(`Fragment cannot condition on non composite type "${t}".`,{nodes:r}))}}},FragmentDefinition(t){const r=(0,i.typeFromAST)(e.getSchema(),t.typeCondition);if(r&&!(0,o.isCompositeType)(r)){const r=(0,s.print)(t.typeCondition);e.reportError(new n.GraphQLError(`Fragment "${t.name.value}" cannot condition on non composite type "${r}".`,{nodes:t.typeCondition}))}}}}},67663:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownArgumentNamesOnDirectivesRule=KnownArgumentNamesOnDirectivesRule;t.KnownArgumentNamesRule=KnownArgumentNamesRule;var n=r(41353);var s=r(47904);var o=r(15939);var i=r(11123);var a=r(21058);function KnownArgumentNamesRule(e){return{...KnownArgumentNamesOnDirectivesRule(e),Argument(t){const r=e.getArgument();const i=e.getFieldDef();const a=e.getParentType();if(!r&&i&&a){const r=t.name.value;const c=i.args.map((e=>e.name));const u=(0,s.suggestionList)(r,c);e.reportError(new o.GraphQLError(`Unknown argument "${r}" on field "${a.name}.${i.name}".`+(0,n.didYouMean)(u),{nodes:t}))}}}}function KnownArgumentNamesOnDirectivesRule(e){const t=Object.create(null);const r=e.getSchema();const c=r?r.getDirectives():a.specifiedDirectives;for(const e of c){t[e.name]=e.args.map((e=>e.name))}const u=e.getDocument().definitions;for(const e of u){if(e.kind===i.Kind.DIRECTIVE_DEFINITION){var A;const r=(A=e.arguments)!==null&&A!==void 0?A:[];t[e.name.value]=r.map((e=>e.name.value))}}return{Directive(r){const i=r.name.value;const a=t[i];if(r.arguments&&a){for(const t of r.arguments){const r=t.name.value;if(!a.includes(r)){const c=(0,s.suggestionList)(r,a);e.reportError(new o.GraphQLError(`Unknown argument "${r}" on directive "@${i}".`+(0,n.didYouMean)(c),{nodes:t}))}}}return false}}}},55866:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownDirectivesRule=KnownDirectivesRule;var n=r(25742);var s=r(33650);var o=r(15939);var i=r(22740);var a=r(22582);var c=r(11123);var u=r(21058);function KnownDirectivesRule(e){const t=Object.create(null);const r=e.getSchema();const n=r?r.getDirectives():u.specifiedDirectives;for(const e of n){t[e.name]=e.locations}const s=e.getDocument().definitions;for(const e of s){if(e.kind===c.Kind.DIRECTIVE_DEFINITION){t[e.name.value]=e.locations.map((e=>e.value))}}return{Directive(r,n,s,i,a){const c=r.name.value;const u=t[c];if(!u){e.reportError(new o.GraphQLError(`Unknown directive "@${c}".`,{nodes:r}));return}const A=getDirectiveLocationForASTPath(a);if(A&&!u.includes(A)){e.reportError(new o.GraphQLError(`Directive "@${c}" may not be used on ${A}.`,{nodes:r}))}}}}function getDirectiveLocationForASTPath(e){const t=e[e.length-1];"kind"in t||(0,s.invariant)(false);switch(t.kind){case c.Kind.OPERATION_DEFINITION:return getDirectiveLocationForOperation(t.operation);case c.Kind.FIELD:return a.DirectiveLocation.FIELD;case c.Kind.FRAGMENT_SPREAD:return a.DirectiveLocation.FRAGMENT_SPREAD;case c.Kind.INLINE_FRAGMENT:return a.DirectiveLocation.INLINE_FRAGMENT;case c.Kind.FRAGMENT_DEFINITION:return a.DirectiveLocation.FRAGMENT_DEFINITION;case c.Kind.VARIABLE_DEFINITION:return a.DirectiveLocation.VARIABLE_DEFINITION;case c.Kind.SCHEMA_DEFINITION:case c.Kind.SCHEMA_EXTENSION:return a.DirectiveLocation.SCHEMA;case c.Kind.SCALAR_TYPE_DEFINITION:case c.Kind.SCALAR_TYPE_EXTENSION:return a.DirectiveLocation.SCALAR;case c.Kind.OBJECT_TYPE_DEFINITION:case c.Kind.OBJECT_TYPE_EXTENSION:return a.DirectiveLocation.OBJECT;case c.Kind.FIELD_DEFINITION:return a.DirectiveLocation.FIELD_DEFINITION;case c.Kind.INTERFACE_TYPE_DEFINITION:case c.Kind.INTERFACE_TYPE_EXTENSION:return a.DirectiveLocation.INTERFACE;case c.Kind.UNION_TYPE_DEFINITION:case c.Kind.UNION_TYPE_EXTENSION:return a.DirectiveLocation.UNION;case c.Kind.ENUM_TYPE_DEFINITION:case c.Kind.ENUM_TYPE_EXTENSION:return a.DirectiveLocation.ENUM;case c.Kind.ENUM_VALUE_DEFINITION:return a.DirectiveLocation.ENUM_VALUE;case c.Kind.INPUT_OBJECT_TYPE_DEFINITION:case c.Kind.INPUT_OBJECT_TYPE_EXTENSION:return a.DirectiveLocation.INPUT_OBJECT;case c.Kind.INPUT_VALUE_DEFINITION:{const t=e[e.length-3];"kind"in t||(0,s.invariant)(false);return t.kind===c.Kind.INPUT_OBJECT_TYPE_DEFINITION?a.DirectiveLocation.INPUT_FIELD_DEFINITION:a.DirectiveLocation.ARGUMENT_DEFINITION}default:false||(0,s.invariant)(false,"Unexpected kind: "+(0,n.inspect)(t.kind))}}function getDirectiveLocationForOperation(e){switch(e){case i.OperationTypeNode.QUERY:return a.DirectiveLocation.QUERY;case i.OperationTypeNode.MUTATION:return a.DirectiveLocation.MUTATION;case i.OperationTypeNode.SUBSCRIPTION:return a.DirectiveLocation.SUBSCRIPTION}}},15958:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownFragmentNamesRule=KnownFragmentNamesRule;var n=r(15939);function KnownFragmentNamesRule(e){return{FragmentSpread(t){const r=t.name.value;const s=e.getFragment(r);if(!s){e.reportError(new n.GraphQLError(`Unknown fragment "${r}".`,{nodes:t.name}))}}}}},51574:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownTypeNamesRule=KnownTypeNamesRule;var n=r(41353);var s=r(47904);var o=r(15939);var i=r(15480);var a=r(10317);var c=r(93571);function KnownTypeNamesRule(e){const t=e.getSchema();const r=t?t.getTypeMap():Object.create(null);const a=Object.create(null);for(const t of e.getDocument().definitions){if((0,i.isTypeDefinitionNode)(t)){a[t.name.value]=true}}const c=[...Object.keys(r),...Object.keys(a)];return{NamedType(t,i,A,l,d){const p=t.name.value;if(!r[p]&&!a[p]){var g;const r=(g=d[2])!==null&&g!==void 0?g:A;const i=r!=null&&isSDLNode(r);if(i&&u.includes(p)){return}const a=(0,s.suggestionList)(p,i?u.concat(c):c);e.reportError(new o.GraphQLError(`Unknown type "${p}".`+(0,n.didYouMean)(a),{nodes:t}))}}}}const u=[...c.specifiedScalarTypes,...a.introspectionTypes].map((e=>e.name));function isSDLNode(e){return"kind"in e&&((0,i.isTypeSystemDefinitionNode)(e)||(0,i.isTypeSystemExtensionNode)(e))}},11677:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.LoneAnonymousOperationRule=LoneAnonymousOperationRule;var n=r(15939);var s=r(11123);function LoneAnonymousOperationRule(e){let t=0;return{Document(e){t=e.definitions.filter((e=>e.kind===s.Kind.OPERATION_DEFINITION)).length},OperationDefinition(r){if(!r.name&&t>1){e.reportError(new n.GraphQLError("This anonymous operation must be the only defined operation.",{nodes:r}))}}}}},62553:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.LoneSchemaDefinitionRule=LoneSchemaDefinitionRule;var n=r(15939);function LoneSchemaDefinitionRule(e){var t,r,s;const o=e.getSchema();const i=(t=(r=(s=o===null||o===void 0?void 0:o.astNode)!==null&&s!==void 0?s:o===null||o===void 0?void 0:o.getQueryType())!==null&&r!==void 0?r:o===null||o===void 0?void 0:o.getMutationType())!==null&&t!==void 0?t:o===null||o===void 0?void 0:o.getSubscriptionType();let a=0;return{SchemaDefinition(t){if(i){e.reportError(new n.GraphQLError("Cannot define a new schema within a schema extension.",{nodes:t}));return}if(a>0){e.reportError(new n.GraphQLError("Must provide only one schema definition.",{nodes:t}))}++a}}}},98749:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.MaxIntrospectionDepthRule=MaxIntrospectionDepthRule;var n=r(15939);var s=r(11123);const o=3;function MaxIntrospectionDepthRule(e){function checkDepth(t,r=Object.create(null),n=0){if(t.kind===s.Kind.FRAGMENT_SPREAD){const s=t.name.value;if(r[s]===true){return false}const o=e.getFragment(s);if(!o){return false}try{r[s]=true;return checkDepth(o,r,n)}finally{r[s]=undefined}}if(t.kind===s.Kind.FIELD&&(t.name.value==="fields"||t.name.value==="interfaces"||t.name.value==="possibleTypes"||t.name.value==="inputFields")){n++;if(n>=o){return true}}if("selectionSet"in t&&t.selectionSet){for(const e of t.selectionSet.selections){if(checkDepth(e,r,n)){return true}}}return false}return{Field(t){if(t.name.value==="__schema"||t.name.value==="__type"){if(checkDepth(t)){e.reportError(new n.GraphQLError("Maximum introspection depth exceeded",{nodes:[t]}));return false}}}}}},42579:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoFragmentCyclesRule=NoFragmentCyclesRule;var n=r(15939);function NoFragmentCyclesRule(e){const t=Object.create(null);const r=[];const s=Object.create(null);return{OperationDefinition:()=>false,FragmentDefinition(e){detectCycleRecursive(e);return false}};function detectCycleRecursive(o){if(t[o.name.value]){return}const i=o.name.value;t[i]=true;const a=e.getFragmentSpreads(o.selectionSet);if(a.length===0){return}s[i]=r.length;for(const t of a){const o=t.name.value;const i=s[o];r.push(t);if(i===undefined){const t=e.getFragment(o);if(t){detectCycleRecursive(t)}}else{const t=r.slice(i);const s=t.slice(0,-1).map((e=>'"'+e.name.value+'"')).join(", ");e.reportError(new n.GraphQLError(`Cannot spread fragment "${o}" within itself`+(s!==""?` via ${s}.`:"."),{nodes:t}))}r.pop()}s[i]=undefined}}},28873:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoUndefinedVariablesRule=NoUndefinedVariablesRule;var n=r(15939);function NoUndefinedVariablesRule(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(r){const s=e.getRecursiveVariableUsages(r);for(const{node:o}of s){const s=o.name.value;if(t[s]!==true){e.reportError(new n.GraphQLError(r.name?`Variable "$${s}" is not defined by operation "${r.name.value}".`:`Variable "$${s}" is not defined.`,{nodes:[o,r]}))}}}},VariableDefinition(e){t[e.variable.name.value]=true}}}},23693:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoUnusedFragmentsRule=NoUnusedFragmentsRule;var n=r(15939);function NoUnusedFragmentsRule(e){const t=[];const r=[];return{OperationDefinition(e){t.push(e);return false},FragmentDefinition(e){r.push(e);return false},Document:{leave(){const s=Object.create(null);for(const r of t){for(const t of e.getRecursivelyReferencedFragments(r)){s[t.name.value]=true}}for(const t of r){const r=t.name.value;if(s[r]!==true){e.reportError(new n.GraphQLError(`Fragment "${r}" is never used.`,{nodes:t}))}}}}}}},79489:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoUnusedVariablesRule=NoUnusedVariablesRule;var n=r(15939);function NoUnusedVariablesRule(e){let t=[];return{OperationDefinition:{enter(){t=[]},leave(r){const s=Object.create(null);const o=e.getRecursiveVariableUsages(r);for(const{node:e}of o){s[e.name.value]=true}for(const o of t){const t=o.variable.name.value;if(s[t]!==true){e.reportError(new n.GraphQLError(r.name?`Variable "$${t}" is never used in operation "${r.name.value}".`:`Variable "$${t}" is never used.`,{nodes:o}))}}}},VariableDefinition(e){t.push(e)}}}},1646:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.OverlappingFieldsCanBeMergedRule=OverlappingFieldsCanBeMergedRule;var n=r(25742);var s=r(15939);var o=r(11123);var i=r(59936);var a=r(84169);var c=r(67287);var u=r(76738);function reasonMessage(e){if(Array.isArray(e)){return e.map((([e,t])=>`subfields "${e}" conflict because `+reasonMessage(t))).join(" and ")}return e}function OverlappingFieldsCanBeMergedRule(e){const t=new PairSet;const r=new Map;return{SelectionSet(n){const o=findConflictsWithinSelectionSet(e,r,t,e.getParentType(),n);for(const[[t,r],n,i]of o){const o=reasonMessage(r);e.reportError(new s.GraphQLError(`Fields "${t}" conflict because ${o}. Use different aliases on the fields to fetch both if this was intentional.`,{nodes:n.concat(i)}))}}}}function findConflictsWithinSelectionSet(e,t,r,n,s){const o=[];const[i,a]=getFieldsAndFragmentNames(e,t,n,s);collectConflictsWithin(e,o,t,r,i);if(a.length!==0){for(let n=0;n1){for(let s=0;s[e.value,t])));return r.every((e=>{const t=e.value;const r=s.get(e.name.value);if(r===undefined){return false}return stringifyValue(t)===stringifyValue(r)}))}function stringifyValue(e){return(0,i.print)((0,c.sortValueNode)(e))}function doTypesConflict(e,t){if((0,a.isListType)(e)){return(0,a.isListType)(t)?doTypesConflict(e.ofType,t.ofType):true}if((0,a.isListType)(t)){return true}if((0,a.isNonNullType)(e)){return(0,a.isNonNullType)(t)?doTypesConflict(e.ofType,t.ofType):true}if((0,a.isNonNullType)(t)){return true}if((0,a.isLeafType)(e)||(0,a.isLeafType)(t)){return e!==t}return false}function getFieldsAndFragmentNames(e,t,r,n){const s=t.get(n);if(s){return s}const o=Object.create(null);const i=Object.create(null);_collectFieldsAndFragmentNames(e,r,n,o,i);const a=[o,Object.keys(i)];t.set(n,a);return a}function getReferencedFieldsAndFragmentNames(e,t,r){const n=t.get(r.selectionSet);if(n){return n}const s=(0,u.typeFromAST)(e.getSchema(),r.typeCondition);return getFieldsAndFragmentNames(e,t,s,r.selectionSet)}function _collectFieldsAndFragmentNames(e,t,r,n,s){for(const i of r.selections){switch(i.kind){case o.Kind.FIELD:{const e=i.name.value;let r;if((0,a.isObjectType)(t)||(0,a.isInterfaceType)(t)){r=t.getFields()[e]}const s=i.alias?i.alias.value:e;if(!n[s]){n[s]=[]}n[s].push([t,i,r]);break}case o.Kind.FRAGMENT_SPREAD:s[i.name.value]=true;break;case o.Kind.INLINE_FRAGMENT:{const r=i.typeCondition;const o=r?(0,u.typeFromAST)(e.getSchema(),r):t;_collectFieldsAndFragmentNames(e,o,i.selectionSet,n,s);break}}}}function subfieldConflicts(e,t,r,n){if(e.length>0){return[[t,e.map((([e])=>e))],[r,...e.map((([,e])=>e)).flat()],[n,...e.map((([,,e])=>e)).flat()]]}}class PairSet{constructor(){this._data=new Map}has(e,t,r){var n;const[s,o]=e{Object.defineProperty(t,"__esModule",{value:true});t.PossibleFragmentSpreadsRule=PossibleFragmentSpreadsRule;var n=r(25742);var s=r(15939);var o=r(84169);var i=r(46539);var a=r(76738);function PossibleFragmentSpreadsRule(e){return{InlineFragment(t){const r=e.getType();const a=e.getParentType();if((0,o.isCompositeType)(r)&&(0,o.isCompositeType)(a)&&!(0,i.doTypesOverlap)(e.getSchema(),r,a)){const o=(0,n.inspect)(a);const i=(0,n.inspect)(r);e.reportError(new s.GraphQLError(`Fragment cannot be spread here as objects of type "${o}" can never be of type "${i}".`,{nodes:t}))}},FragmentSpread(t){const r=t.name.value;const o=getFragmentType(e,r);const a=e.getParentType();if(o&&a&&!(0,i.doTypesOverlap)(e.getSchema(),o,a)){const i=(0,n.inspect)(a);const c=(0,n.inspect)(o);e.reportError(new s.GraphQLError(`Fragment "${r}" cannot be spread here as objects of type "${i}" can never be of type "${c}".`,{nodes:t}))}}}}function getFragmentType(e,t){const r=e.getFragment(t);if(r){const t=(0,a.typeFromAST)(e.getSchema(),r.typeCondition);if((0,o.isCompositeType)(t)){return t}}}},56058:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.PossibleTypeExtensionsRule=PossibleTypeExtensionsRule;var n=r(41353);var s=r(25742);var o=r(33650);var i=r(47904);var a=r(15939);var c=r(11123);var u=r(15480);var A=r(84169);function PossibleTypeExtensionsRule(e){const t=e.getSchema();const r=Object.create(null);for(const t of e.getDocument().definitions){if((0,u.isTypeDefinitionNode)(t)){r[t.name.value]=t}}return{ScalarTypeExtension:checkExtension,ObjectTypeExtension:checkExtension,InterfaceTypeExtension:checkExtension,UnionTypeExtension:checkExtension,EnumTypeExtension:checkExtension,InputObjectTypeExtension:checkExtension};function checkExtension(s){const o=s.name.value;const c=r[o];const u=t===null||t===void 0?void 0:t.getType(o);let A;if(c){A=l[c.kind]}else if(u){A=typeToExtKind(u)}if(A){if(A!==s.kind){const t=extensionKindToTypeName(s.kind);e.reportError(new a.GraphQLError(`Cannot extend non-${t} type "${o}".`,{nodes:c?[c,s]:s}))}}else{const c=Object.keys({...r,...t===null||t===void 0?void 0:t.getTypeMap()});const u=(0,i.suggestionList)(o,c);e.reportError(new a.GraphQLError(`Cannot extend type "${o}" because it is not defined.`+(0,n.didYouMean)(u),{nodes:s.name}))}}}const l={[c.Kind.SCALAR_TYPE_DEFINITION]:c.Kind.SCALAR_TYPE_EXTENSION,[c.Kind.OBJECT_TYPE_DEFINITION]:c.Kind.OBJECT_TYPE_EXTENSION,[c.Kind.INTERFACE_TYPE_DEFINITION]:c.Kind.INTERFACE_TYPE_EXTENSION,[c.Kind.UNION_TYPE_DEFINITION]:c.Kind.UNION_TYPE_EXTENSION,[c.Kind.ENUM_TYPE_DEFINITION]:c.Kind.ENUM_TYPE_EXTENSION,[c.Kind.INPUT_OBJECT_TYPE_DEFINITION]:c.Kind.INPUT_OBJECT_TYPE_EXTENSION};function typeToExtKind(e){if((0,A.isScalarType)(e)){return c.Kind.SCALAR_TYPE_EXTENSION}if((0,A.isObjectType)(e)){return c.Kind.OBJECT_TYPE_EXTENSION}if((0,A.isInterfaceType)(e)){return c.Kind.INTERFACE_TYPE_EXTENSION}if((0,A.isUnionType)(e)){return c.Kind.UNION_TYPE_EXTENSION}if((0,A.isEnumType)(e)){return c.Kind.ENUM_TYPE_EXTENSION}if((0,A.isInputObjectType)(e)){return c.Kind.INPUT_OBJECT_TYPE_EXTENSION}false||(0,o.invariant)(false,"Unexpected type: "+(0,s.inspect)(e))}function extensionKindToTypeName(e){switch(e){case c.Kind.SCALAR_TYPE_EXTENSION:return"scalar";case c.Kind.OBJECT_TYPE_EXTENSION:return"object";case c.Kind.INTERFACE_TYPE_EXTENSION:return"interface";case c.Kind.UNION_TYPE_EXTENSION:return"union";case c.Kind.ENUM_TYPE_EXTENSION:return"enum";case c.Kind.INPUT_OBJECT_TYPE_EXTENSION:return"input object";default:false||(0,o.invariant)(false,"Unexpected kind: "+(0,s.inspect)(e))}}},1145:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ProvidedRequiredArgumentsOnDirectivesRule=ProvidedRequiredArgumentsOnDirectivesRule;t.ProvidedRequiredArgumentsRule=ProvidedRequiredArgumentsRule;var n=r(25742);var s=r(37579);var o=r(15939);var i=r(11123);var a=r(59936);var c=r(84169);var u=r(21058);function ProvidedRequiredArgumentsRule(e){return{...ProvidedRequiredArgumentsOnDirectivesRule(e),Field:{leave(t){var r;const s=e.getFieldDef();if(!s){return false}const i=new Set((r=t.arguments)===null||r===void 0?void 0:r.map((e=>e.name.value)));for(const r of s.args){if(!i.has(r.name)&&(0,c.isRequiredArgument)(r)){const i=(0,n.inspect)(r.type);e.reportError(new o.GraphQLError(`Field "${s.name}" argument "${r.name}" of type "${i}" is required, but it was not provided.`,{nodes:t}))}}}}}}function ProvidedRequiredArgumentsOnDirectivesRule(e){var t;const r=Object.create(null);const A=e.getSchema();const l=(t=A===null||A===void 0?void 0:A.getDirectives())!==null&&t!==void 0?t:u.specifiedDirectives;for(const e of l){r[e.name]=(0,s.keyMap)(e.args.filter(c.isRequiredArgument),(e=>e.name))}const d=e.getDocument().definitions;for(const e of d){if(e.kind===i.Kind.DIRECTIVE_DEFINITION){var p;const t=(p=e.arguments)!==null&&p!==void 0?p:[];r[e.name.value]=(0,s.keyMap)(t.filter(isRequiredArgumentNode),(e=>e.name.value))}}return{Directive:{leave(t){const s=t.name.value;const i=r[s];if(i){var u;const r=(u=t.arguments)!==null&&u!==void 0?u:[];const A=new Set(r.map((e=>e.name.value)));for(const[r,u]of Object.entries(i)){if(!A.has(r)){const i=(0,c.isType)(u.type)?(0,n.inspect)(u.type):(0,a.print)(u.type);e.reportError(new o.GraphQLError(`Directive "@${s}" argument "${r}" of type "${i}" is required, but it was not provided.`,{nodes:t}))}}}}}}}function isRequiredArgumentNode(e){return e.type.kind===i.Kind.NON_NULL_TYPE&&e.defaultValue==null}},14754:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ScalarLeafsRule=ScalarLeafsRule;var n=r(25742);var s=r(15939);var o=r(84169);function ScalarLeafsRule(e){return{Field(t){const r=e.getType();const i=t.selectionSet;if(r){if((0,o.isLeafType)((0,o.getNamedType)(r))){if(i){const o=t.name.value;const a=(0,n.inspect)(r);e.reportError(new s.GraphQLError(`Field "${o}" must not have a selection since type "${a}" has no subfields.`,{nodes:i}))}}else if(!i){const o=t.name.value;const i=(0,n.inspect)(r);e.reportError(new s.GraphQLError(`Field "${o}" of type "${i}" must have a selection of subfields. Did you mean "${o} { ... }"?`,{nodes:t}))}}}}}},51705:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.SingleFieldSubscriptionsRule=SingleFieldSubscriptionsRule;var n=r(15939);var s=r(11123);var o=r(77611);function SingleFieldSubscriptionsRule(e){return{OperationDefinition(t){if(t.operation==="subscription"){const r=e.getSchema();const i=r.getSubscriptionType();if(i){const a=t.name?t.name.value:null;const c=Object.create(null);const u=e.getDocument();const A=Object.create(null);for(const e of u.definitions){if(e.kind===s.Kind.FRAGMENT_DEFINITION){A[e.name.value]=e}}const l=(0,o.collectFields)(r,A,c,i,t.selectionSet);if(l.size>1){const t=[...l.values()];const r=t.slice(1);const s=r.flat();e.reportError(new n.GraphQLError(a!=null?`Subscription "${a}" must select only one top level field.`:"Anonymous Subscription must select only one top level field.",{nodes:s}))}for(const t of l.values()){const r=t[0];const s=r.name.value;if(s.startsWith("__")){e.reportError(new n.GraphQLError(a!=null?`Subscription "${a}" must not select an introspection top level field.`:"Anonymous Subscription must not select an introspection top level field.",{nodes:t}))}}}}}}}},56496:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueArgumentDefinitionNamesRule=UniqueArgumentDefinitionNamesRule;var n=r(48520);var s=r(15939);function UniqueArgumentDefinitionNamesRule(e){return{DirectiveDefinition(e){var t;const r=(t=e.arguments)!==null&&t!==void 0?t:[];return checkArgUniqueness(`@${e.name.value}`,r)},InterfaceTypeDefinition:checkArgUniquenessPerField,InterfaceTypeExtension:checkArgUniquenessPerField,ObjectTypeDefinition:checkArgUniquenessPerField,ObjectTypeExtension:checkArgUniquenessPerField};function checkArgUniquenessPerField(e){var t;const r=e.name.value;const n=(t=e.fields)!==null&&t!==void 0?t:[];for(const e of n){var s;const t=e.name.value;const n=(s=e.arguments)!==null&&s!==void 0?s:[];checkArgUniqueness(`${r}.${t}`,n)}return false}function checkArgUniqueness(t,r){const o=(0,n.groupBy)(r,(e=>e.name.value));for(const[r,n]of o){if(n.length>1){e.reportError(new s.GraphQLError(`Argument "${t}(${r}:)" can only be defined once.`,{nodes:n.map((e=>e.name))}))}}return false}}},22995:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueArgumentNamesRule=UniqueArgumentNamesRule;var n=r(48520);var s=r(15939);function UniqueArgumentNamesRule(e){return{Field:checkArgUniqueness,Directive:checkArgUniqueness};function checkArgUniqueness(t){var r;const o=(r=t.arguments)!==null&&r!==void 0?r:[];const i=(0,n.groupBy)(o,(e=>e.name.value));for(const[t,r]of i){if(r.length>1){e.reportError(new s.GraphQLError(`There can be only one argument named "${t}".`,{nodes:r.map((e=>e.name))}))}}}}},29879:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueDirectiveNamesRule=UniqueDirectiveNamesRule;var n=r(15939);function UniqueDirectiveNamesRule(e){const t=Object.create(null);const r=e.getSchema();return{DirectiveDefinition(s){const o=s.name.value;if(r!==null&&r!==void 0&&r.getDirective(o)){e.reportError(new n.GraphQLError(`Directive "@${o}" already exists in the schema. It cannot be redefined.`,{nodes:s.name}));return}if(t[o]){e.reportError(new n.GraphQLError(`There can be only one directive named "@${o}".`,{nodes:[t[o],s.name]}))}else{t[o]=s.name}return false}}}},29412:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueDirectivesPerLocationRule=UniqueDirectivesPerLocationRule;var n=r(15939);var s=r(11123);var o=r(15480);var i=r(21058);function UniqueDirectivesPerLocationRule(e){const t=Object.create(null);const r=e.getSchema();const a=r?r.getDirectives():i.specifiedDirectives;for(const e of a){t[e.name]=!e.isRepeatable}const c=e.getDocument().definitions;for(const e of c){if(e.kind===s.Kind.DIRECTIVE_DEFINITION){t[e.name.value]=!e.repeatable}}const u=Object.create(null);const A=Object.create(null);return{enter(r){if(!("directives"in r)||!r.directives){return}let i;if(r.kind===s.Kind.SCHEMA_DEFINITION||r.kind===s.Kind.SCHEMA_EXTENSION){i=u}else if((0,o.isTypeDefinitionNode)(r)||(0,o.isTypeExtensionNode)(r)){const e=r.name.value;i=A[e];if(i===undefined){A[e]=i=Object.create(null)}}else{i=Object.create(null)}for(const s of r.directives){const r=s.name.value;if(t[r]){if(i[r]){e.reportError(new n.GraphQLError(`The directive "@${r}" can only be used once at this location.`,{nodes:[i[r],s]}))}else{i[r]=s}}}}}}},33062:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueEnumValueNamesRule=UniqueEnumValueNamesRule;var n=r(15939);var s=r(84169);function UniqueEnumValueNamesRule(e){const t=e.getSchema();const r=t?t.getTypeMap():Object.create(null);const o=Object.create(null);return{EnumTypeDefinition:checkValueUniqueness,EnumTypeExtension:checkValueUniqueness};function checkValueUniqueness(t){var i;const a=t.name.value;if(!o[a]){o[a]=Object.create(null)}const c=(i=t.values)!==null&&i!==void 0?i:[];const u=o[a];for(const t of c){const o=t.name.value;const i=r[a];if((0,s.isEnumType)(i)&&i.getValue(o)){e.reportError(new n.GraphQLError(`Enum value "${a}.${o}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:t.name}))}else if(u[o]){e.reportError(new n.GraphQLError(`Enum value "${a}.${o}" can only be defined once.`,{nodes:[u[o],t.name]}))}else{u[o]=t.name}}return false}}},30087:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueFieldDefinitionNamesRule=UniqueFieldDefinitionNamesRule;var n=r(15939);var s=r(84169);function UniqueFieldDefinitionNamesRule(e){const t=e.getSchema();const r=t?t.getTypeMap():Object.create(null);const s=Object.create(null);return{InputObjectTypeDefinition:checkFieldUniqueness,InputObjectTypeExtension:checkFieldUniqueness,InterfaceTypeDefinition:checkFieldUniqueness,InterfaceTypeExtension:checkFieldUniqueness,ObjectTypeDefinition:checkFieldUniqueness,ObjectTypeExtension:checkFieldUniqueness};function checkFieldUniqueness(t){var o;const i=t.name.value;if(!s[i]){s[i]=Object.create(null)}const a=(o=t.fields)!==null&&o!==void 0?o:[];const c=s[i];for(const t of a){const s=t.name.value;if(hasField(r[i],s)){e.reportError(new n.GraphQLError(`Field "${i}.${s}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:t.name}))}else if(c[s]){e.reportError(new n.GraphQLError(`Field "${i}.${s}" can only be defined once.`,{nodes:[c[s],t.name]}))}else{c[s]=t.name}}return false}}function hasField(e,t){if((0,s.isObjectType)(e)||(0,s.isInterfaceType)(e)||(0,s.isInputObjectType)(e)){return e.getFields()[t]!=null}return false}},21914:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueFragmentNamesRule=UniqueFragmentNamesRule;var n=r(15939);function UniqueFragmentNamesRule(e){const t=Object.create(null);return{OperationDefinition:()=>false,FragmentDefinition(r){const s=r.name.value;if(t[s]){e.reportError(new n.GraphQLError(`There can be only one fragment named "${s}".`,{nodes:[t[s],r.name]}))}else{t[s]=r.name}return false}}}},69082:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueInputFieldNamesRule=UniqueInputFieldNamesRule;var n=r(33650);var s=r(15939);function UniqueInputFieldNamesRule(e){const t=[];let r=Object.create(null);return{ObjectValue:{enter(){t.push(r);r=Object.create(null)},leave(){const e=t.pop();e||(0,n.invariant)(false);r=e}},ObjectField(t){const n=t.name.value;if(r[n]){e.reportError(new s.GraphQLError(`There can be only one input field named "${n}".`,{nodes:[r[n],t.name]}))}else{r[n]=t.name}}}}},54403:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueOperationNamesRule=UniqueOperationNamesRule;var n=r(15939);function UniqueOperationNamesRule(e){const t=Object.create(null);return{OperationDefinition(r){const s=r.name;if(s){if(t[s.value]){e.reportError(new n.GraphQLError(`There can be only one operation named "${s.value}".`,{nodes:[t[s.value],s]}))}else{t[s.value]=s}}return false},FragmentDefinition:()=>false}}},84234:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueOperationTypesRule=UniqueOperationTypesRule;var n=r(15939);function UniqueOperationTypesRule(e){const t=e.getSchema();const r=Object.create(null);const s=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:checkOperationTypes,SchemaExtension:checkOperationTypes};function checkOperationTypes(t){var o;const i=(o=t.operationTypes)!==null&&o!==void 0?o:[];for(const t of i){const o=t.operation;const i=r[o];if(s[o]){e.reportError(new n.GraphQLError(`Type for ${o} already defined in the schema. It cannot be redefined.`,{nodes:t}))}else if(i){e.reportError(new n.GraphQLError(`There can be only one ${o} type in schema.`,{nodes:[i,t]}))}else{r[o]=t}}return false}}},32058:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueTypeNamesRule=UniqueTypeNamesRule;var n=r(15939);function UniqueTypeNamesRule(e){const t=Object.create(null);const r=e.getSchema();return{ScalarTypeDefinition:checkTypeName,ObjectTypeDefinition:checkTypeName,InterfaceTypeDefinition:checkTypeName,UnionTypeDefinition:checkTypeName,EnumTypeDefinition:checkTypeName,InputObjectTypeDefinition:checkTypeName};function checkTypeName(s){const o=s.name.value;if(r!==null&&r!==void 0&&r.getType(o)){e.reportError(new n.GraphQLError(`Type "${o}" already exists in the schema. It cannot also be defined in this type definition.`,{nodes:s.name}));return}if(t[o]){e.reportError(new n.GraphQLError(`There can be only one type named "${o}".`,{nodes:[t[o],s.name]}))}else{t[o]=s.name}return false}}},40218:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueVariableNamesRule=UniqueVariableNamesRule;var n=r(48520);var s=r(15939);function UniqueVariableNamesRule(e){return{OperationDefinition(t){var r;const o=(r=t.variableDefinitions)!==null&&r!==void 0?r:[];const i=(0,n.groupBy)(o,(e=>e.variable.name.value));for(const[t,r]of i){if(r.length>1){e.reportError(new s.GraphQLError(`There can be only one variable named "$${t}".`,{nodes:r.map((e=>e.variable.name))}))}}}}}},1408:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValuesOfCorrectTypeRule=ValuesOfCorrectTypeRule;var n=r(41353);var s=r(25742);var o=r(37579);var i=r(47904);var a=r(15939);var c=r(11123);var u=r(59936);var A=r(84169);function ValuesOfCorrectTypeRule(e){let t={};return{OperationDefinition:{enter(){t={}}},VariableDefinition(e){t[e.variable.name.value]=e},ListValue(t){const r=(0,A.getNullableType)(e.getParentInputType());if(!(0,A.isListType)(r)){isValidValueNode(e,t);return false}},ObjectValue(r){const n=(0,A.getNamedType)(e.getInputType());if(!(0,A.isInputObjectType)(n)){isValidValueNode(e,r);return false}const i=(0,o.keyMap)(r.fields,(e=>e.name.value));for(const t of Object.values(n.getFields())){const o=i[t.name];if(!o&&(0,A.isRequiredInputField)(t)){const o=(0,s.inspect)(t.type);e.reportError(new a.GraphQLError(`Field "${n.name}.${t.name}" of required type "${o}" was not provided.`,{nodes:r}))}}if(n.isOneOf){validateOneOfInputObject(e,r,n,i,t)}},ObjectField(t){const r=(0,A.getNamedType)(e.getParentInputType());const s=e.getInputType();if(!s&&(0,A.isInputObjectType)(r)){const s=(0,i.suggestionList)(t.name.value,Object.keys(r.getFields()));e.reportError(new a.GraphQLError(`Field "${t.name.value}" is not defined by type "${r.name}".`+(0,n.didYouMean)(s),{nodes:t}))}},NullValue(t){const r=e.getInputType();if((0,A.isNonNullType)(r)){e.reportError(new a.GraphQLError(`Expected value of type "${(0,s.inspect)(r)}", found ${(0,u.print)(t)}.`,{nodes:t}))}},EnumValue:t=>isValidValueNode(e,t),IntValue:t=>isValidValueNode(e,t),FloatValue:t=>isValidValueNode(e,t),StringValue:t=>isValidValueNode(e,t),BooleanValue:t=>isValidValueNode(e,t)}}function isValidValueNode(e,t){const r=e.getInputType();if(!r){return}const n=(0,A.getNamedType)(r);if(!(0,A.isLeafType)(n)){const n=(0,s.inspect)(r);e.reportError(new a.GraphQLError(`Expected value of type "${n}", found ${(0,u.print)(t)}.`,{nodes:t}));return}try{const o=n.parseLiteral(t,undefined);if(o===undefined){const n=(0,s.inspect)(r);e.reportError(new a.GraphQLError(`Expected value of type "${n}", found ${(0,u.print)(t)}.`,{nodes:t}))}}catch(n){const o=(0,s.inspect)(r);if(n instanceof a.GraphQLError){e.reportError(n)}else{e.reportError(new a.GraphQLError(`Expected value of type "${o}", found ${(0,u.print)(t)}; `+n.message,{nodes:t,originalError:n}))}}}function validateOneOfInputObject(e,t,r,n,s){var o;const i=Object.keys(n);const u=i.length!==1;if(u){e.reportError(new a.GraphQLError(`OneOf Input Object "${r.name}" must specify exactly one key.`,{nodes:[t]}));return}const A=(o=n[i[0]])===null||o===void 0?void 0:o.value;const l=!A||A.kind===c.Kind.NULL;const d=(A===null||A===void 0?void 0:A.kind)===c.Kind.VARIABLE;if(l){e.reportError(new a.GraphQLError(`Field "${r.name}.${i[0]}" must be non-null.`,{nodes:[t]}));return}if(d){const n=A.name.value;const o=s[n];const i=o.type.kind!==c.Kind.NON_NULL_TYPE;if(i){e.reportError(new a.GraphQLError(`Variable "${n}" must be non-nullable to be used for OneOf Input Object "${r.name}".`,{nodes:[t]}))}}}},16187:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.VariablesAreInputTypesRule=VariablesAreInputTypesRule;var n=r(15939);var s=r(59936);var o=r(84169);var i=r(76738);function VariablesAreInputTypesRule(e){return{VariableDefinition(t){const r=(0,i.typeFromAST)(e.getSchema(),t.type);if(r!==undefined&&!(0,o.isInputType)(r)){const r=t.variable.name.value;const o=(0,s.print)(t.type);e.reportError(new n.GraphQLError(`Variable "$${r}" cannot be non-input type "${o}".`,{nodes:t.type}))}}}}},84186:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.VariablesInAllowedPositionRule=VariablesInAllowedPositionRule;var n=r(25742);var s=r(15939);var o=r(11123);var i=r(84169);var a=r(46539);var c=r(76738);function VariablesInAllowedPositionRule(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(r){const o=e.getRecursiveVariableUsages(r);for(const{node:r,type:i,defaultValue:a}of o){const o=r.name.value;const u=t[o];if(u&&i){const t=e.getSchema();const A=(0,c.typeFromAST)(t,u.type);if(A&&!allowedVariableUsage(t,A,u.defaultValue,i,a)){const t=(0,n.inspect)(A);const a=(0,n.inspect)(i);e.reportError(new s.GraphQLError(`Variable "$${o}" of type "${t}" used in position expecting type "${a}".`,{nodes:[u,r]}))}}}}},VariableDefinition(e){t[e.variable.name.value]=e}}}function allowedVariableUsage(e,t,r,n,s){if((0,i.isNonNullType)(n)&&!(0,i.isNonNullType)(t)){const i=r!=null&&r.kind!==o.Kind.NULL;const c=s!==undefined;if(!i&&!c){return false}const u=n.ofType;return(0,a.isTypeSubTypeOf)(e,t,u)}return(0,a.isTypeSubTypeOf)(e,t,n)}},15910:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoDeprecatedCustomRule=NoDeprecatedCustomRule;var n=r(33650);var s=r(15939);var o=r(84169);function NoDeprecatedCustomRule(e){return{Field(t){const r=e.getFieldDef();const o=r===null||r===void 0?void 0:r.deprecationReason;if(r&&o!=null){const i=e.getParentType();i!=null||(0,n.invariant)(false);e.reportError(new s.GraphQLError(`The field ${i.name}.${r.name} is deprecated. ${o}`,{nodes:t}))}},Argument(t){const r=e.getArgument();const o=r===null||r===void 0?void 0:r.deprecationReason;if(r&&o!=null){const i=e.getDirective();if(i!=null){e.reportError(new s.GraphQLError(`Directive "@${i.name}" argument "${r.name}" is deprecated. ${o}`,{nodes:t}))}else{const i=e.getParentType();const a=e.getFieldDef();i!=null&&a!=null||(0,n.invariant)(false);e.reportError(new s.GraphQLError(`Field "${i.name}.${a.name}" argument "${r.name}" is deprecated. ${o}`,{nodes:t}))}}},ObjectField(t){const r=(0,o.getNamedType)(e.getParentInputType());if((0,o.isInputObjectType)(r)){const n=r.getFields()[t.name.value];const o=n===null||n===void 0?void 0:n.deprecationReason;if(o!=null){e.reportError(new s.GraphQLError(`The input field ${r.name}.${n.name} is deprecated. ${o}`,{nodes:t}))}}},EnumValue(t){const r=e.getEnumValue();const i=r===null||r===void 0?void 0:r.deprecationReason;if(r&&i!=null){const a=(0,o.getNamedType)(e.getInputType());a!=null||(0,n.invariant)(false);e.reportError(new s.GraphQLError(`The enum value "${a.name}.${r.name}" is deprecated. ${i}`,{nodes:t}))}}}}},26787:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoSchemaIntrospectionCustomRule=NoSchemaIntrospectionCustomRule;var n=r(15939);var s=r(84169);var o=r(10317);function NoSchemaIntrospectionCustomRule(e){return{Field(t){const r=(0,s.getNamedType)(e.getType());if(r&&(0,o.isIntrospectionType)(r)){e.reportError(new n.GraphQLError(`GraphQL introspection has been disabled, but the requested query contained the field "${t.name.value}".`,{nodes:t}))}}}}},60916:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.specifiedSDLRules=t.specifiedRules=t.recommendedRules=void 0;var n=r(75401);var s=r(22153);var o=r(643);var i=r(67663);var a=r(55866);var c=r(15958);var u=r(51574);var A=r(11677);var l=r(62553);var d=r(98749);var p=r(42579);var g=r(28873);var h=r(23693);var m=r(79489);var E=r(1646);var y=r(44550);var I=r(56058);var C=r(1145);var b=r(14754);var B=r(51705);var Q=r(56496);var T=r(22995);var v=r(29879);var w=r(29412);var _=r(33062);var O=r(30087);var k=r(21914);var R=r(69082);var S=r(54403);var F=r(84234);var D=r(32058);var N=r(40218);var P=r(1408);var L=r(16187);var U=r(84186);const M=Object.freeze([d.MaxIntrospectionDepthRule]);t.recommendedRules=M;const x=Object.freeze([n.ExecutableDefinitionsRule,S.UniqueOperationNamesRule,A.LoneAnonymousOperationRule,B.SingleFieldSubscriptionsRule,u.KnownTypeNamesRule,o.FragmentsOnCompositeTypesRule,L.VariablesAreInputTypesRule,b.ScalarLeafsRule,s.FieldsOnCorrectTypeRule,k.UniqueFragmentNamesRule,c.KnownFragmentNamesRule,h.NoUnusedFragmentsRule,y.PossibleFragmentSpreadsRule,p.NoFragmentCyclesRule,N.UniqueVariableNamesRule,g.NoUndefinedVariablesRule,m.NoUnusedVariablesRule,a.KnownDirectivesRule,w.UniqueDirectivesPerLocationRule,i.KnownArgumentNamesRule,T.UniqueArgumentNamesRule,P.ValuesOfCorrectTypeRule,C.ProvidedRequiredArgumentsRule,U.VariablesInAllowedPositionRule,E.OverlappingFieldsCanBeMergedRule,R.UniqueInputFieldNamesRule,...M]);t.specifiedRules=x;const G=Object.freeze([l.LoneSchemaDefinitionRule,F.UniqueOperationTypesRule,D.UniqueTypeNamesRule,_.UniqueEnumValueNamesRule,O.UniqueFieldDefinitionNamesRule,Q.UniqueArgumentDefinitionNamesRule,v.UniqueDirectiveNamesRule,u.KnownTypeNamesRule,a.KnownDirectivesRule,w.UniqueDirectivesPerLocationRule,I.PossibleTypeExtensionsRule,i.KnownArgumentNamesOnDirectivesRule,T.UniqueArgumentNamesRule,R.UniqueInputFieldNamesRule,C.ProvidedRequiredArgumentsOnDirectivesRule]);t.specifiedSDLRules=G},77063:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidSDL=assertValidSDL;t.assertValidSDLExtension=assertValidSDLExtension;t.validate=validate;t.validateSDL=validateSDL;var n=r(65383);var s=r(15939);var o=r(30638);var i=r(33902);var a=r(85e3);var c=r(60916);var u=r(18139);function validate(e,t,r=c.specifiedRules,A,l=new a.TypeInfo(e)){var d;const p=(d=A===null||A===void 0?void 0:A.maxErrors)!==null&&d!==void 0?d:100;t||(0,n.devAssert)(false,"Must provide document.");(0,i.assertValidSchema)(e);const g=Object.freeze({});const h=[];const m=new u.ValidationContext(e,t,l,(e=>{if(h.length>=p){h.push(new s.GraphQLError("Too many validation errors, error limit reached. Validation aborted."));throw g}h.push(e)}));const E=(0,o.visitInParallel)(r.map((e=>e(m))));try{(0,o.visit)(t,(0,a.visitWithTypeInfo)(l,E))}catch(e){if(e!==g){throw e}}return h}function validateSDL(e,t,r=c.specifiedSDLRules){const n=[];const s=new u.SDLValidationContext(e,t,(e=>{n.push(e)}));const i=r.map((e=>e(s)));(0,o.visit)(e,(0,o.visitInParallel)(i));return n}function assertValidSDL(e){const t=validateSDL(e);if(t.length!==0){throw new Error(t.map((e=>e.message)).join("\n\n"))}}function assertValidSDLExtension(e,t){const r=validateSDL(e,t);if(r.length!==0){throw new Error(r.map((e=>e.message)).join("\n\n"))}}},98725:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.versionInfo=t.version=void 0;const r="16.9.0";t.version=r;const n=Object.freeze({major:16,minor:9,patch:0,preReleaseTag:null});t.versionInfo=n},70744:e=>{var t=1e3;var r=t*60;var n=r*60;var s=n*24;var o=s*7;var i=s*365.25;e.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0){return parse(e)}else if(r==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!a){return}var c=parseFloat(a[1]);var u=(a[2]||"ms").toLowerCase();switch(u){case"years":case"year":case"yrs":case"yr":case"y":return c*i;case"weeks":case"week":case"w":return c*o;case"days":case"day":case"d":return c*s;case"hours":case"hour":case"hrs":case"hr":case"h":return c*n;case"minutes":case"minute":case"mins":case"min":case"m":return c*r;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return undefined}}function fmtShort(e){var o=Math.abs(e);if(o>=s){return Math.round(e/s)+"d"}if(o>=n){return Math.round(e/n)+"h"}if(o>=r){return Math.round(e/r)+"m"}if(o>=t){return Math.round(e/t)+"s"}return e+"ms"}function fmtLong(e){var o=Math.abs(e);if(o>=s){return plural(e,o,s,"day")}if(o>=n){return plural(e,o,n,"hour")}if(o>=r){return plural(e,o,r,"minute")}if(o>=t){return plural(e,o,t,"second")}return e+" ms"}function plural(e,t,r,n){var s=t>=r*1.5;return Math.round(e/r)+" "+n+(s?"s":"")}},55560:(e,t,r)=>{var n=r(58264);e.exports=n(once);e.exports.strict=n(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(e){var f=function(){if(f.called)return f.value;f.called=true;return f.value=e.apply(this,arguments)};f.called=false;return f}function onceStrict(e){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=e.apply(this,arguments)};var t=e.name||"Function wrapped with `once`";f.onceError=t+" shouldn't be called more than once";f.called=false;return f}},61860:e=>{var t;var r;var n;var s;var o;var i;var a;var c;var u;var A;var l;var d;var p;var g;var h;var m;var E;var y;var I;var C;var b;var B;var Q;var T;var v;var w;var _;var O;var k;var R;var S;var F;(function(t){var r=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd){define("tslib",["exports"],(function(e){t(createExporter(r,createExporter(e)))}))}else if(true&&typeof e.exports==="object"){t(createExporter(r,createExporter(e.exports)))}else{t(createExporter(r))}function createExporter(e,t){if(e!==r){if(typeof Object.create==="function"){Object.defineProperty(e,"__esModule",{value:true})}else{e.__esModule=true}}return function(r,n){return e[r]=t?t(r,n):n}}})((function(e){var D=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};t=function(e,t){if(typeof t!=="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");D(e,t);function __(){this.constructor=e}e.prototype=t===null?Object.create(t):(__.prototype=t.prototype,new __)};r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;a--)if(i=e[a])o=(s<3?i(o):s>3?i(t,r,o):i(t,r))||o;return s>3&&o&&Object.defineProperty(t,r,o),o};o=function(e,t){return function(r,n){t(r,n,e)}};i=function(e,t,r,n,s,o){function accept(e){if(e!==void 0&&typeof e!=="function")throw new TypeError("Function expected");return e}var i=n.kind,a=i==="getter"?"get":i==="setter"?"set":"value";var c=!t&&e?n["static"]?e:e.prototype:null;var u=t||(c?Object.getOwnPropertyDescriptor(c,n.name):{});var A,l=false;for(var d=r.length-1;d>=0;d--){var p={};for(var g in n)p[g]=g==="access"?{}:n[g];for(var g in n.access)p.access[g]=n.access[g];p.addInitializer=function(e){if(l)throw new TypeError("Cannot add initializers after decoration has completed");o.push(accept(e||null))};var h=(0,r[d])(i==="accessor"?{get:u.get,set:u.set}:u[a],p);if(i==="accessor"){if(h===void 0)continue;if(h===null||typeof h!=="object")throw new TypeError("Object expected");if(A=accept(h.get))u.get=A;if(A=accept(h.set))u.set=A;if(A=accept(h.init))s.unshift(A)}else if(A=accept(h)){if(i==="field")s.unshift(A);else u[a]=A}}if(c)Object.defineProperty(c,n.name,u);l=true};a=function(e,t,r){var n=arguments.length>2;for(var s=0;s0&&o[o.length-1])&&(a[0]===6||a[0]===2)){r=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]=e.length)e=void 0;return{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};h=function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),s,o=[],i;try{while((t===void 0||t-- >0)&&!(s=n.next()).done)o.push(s.value)}catch(e){i={error:e}}finally{try{if(s&&!s.done&&(r=n["return"]))r.call(n)}finally{if(i)throw i.error}}return o};m=function(){for(var e=[],t=0;t1||resume(e,t)}))};if(t)s[e]=t(s[e])}}function resume(e,t){try{step(n[e](t))}catch(e){settle(o[0][3],e)}}function step(e){e.value instanceof I?Promise.resolve(e.value.v).then(fulfill,reject):settle(o[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),o.shift(),o.length)resume(o[0][0],o[0][1])}};b=function(e){var t,r;return t={},verb("next"),verb("throw",(function(e){throw e})),verb("return"),t[Symbol.iterator]=function(){return this},t;function verb(n,s){t[n]=e[n]?function(t){return(r=!r)?{value:I(e[n](t)),done:false}:s?s(t):t}:s}};B=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof g==="function"?g(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(n,s){r=e[t](r),settle(n,s,r.done,r.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}};Q=function(e,t){if(Object.defineProperty){Object.defineProperty(e,"raw",{value:t})}else{e.raw=t}return e};var N=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t};T=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))k(t,e,r);N(t,e);return t};v=function(e){return e&&e.__esModule?e:{default:e}};w=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)};_=function(e,t,r,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(e,r):s?s.value=r:t.set(e,r),r};O=function(e,t){if(t===null||typeof t!=="object"&&typeof t!=="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e==="function"?t===e:e.has(t)};R=function(e,t,r){if(t!==null&&t!==void 0){if(typeof t!=="object"&&typeof t!=="function")throw new TypeError("Object expected.");var n,s;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(n===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose];if(r)s=n}if(typeof n!=="function")throw new TypeError("Object not disposable.");if(s)n=function(){try{s.call(this)}catch(e){return Promise.reject(e)}};e.stack.push({value:t,dispose:n,async:r})}else if(r){e.stack.push({async:true})}return t};var P=typeof SuppressedError==="function"?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};S=function(e){function fail(t){e.error=e.hasError?new P(t,e.error,"An error was suppressed during disposal."):t;e.hasError=true}var t,r=0;function next(){while(t=e.stack.pop()){try{if(!t.async&&r===1)return r=0,e.stack.push(t),Promise.resolve().then(next);if(t.dispose){var n=t.dispose.call(t.value);if(t.async)return r|=2,Promise.resolve(n).then(next,(function(e){fail(e);return next()}))}else r|=1}catch(e){fail(e)}}if(r===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return next()};F=function(e,t){if(typeof e==="string"&&/^\.\.?\//.test(e)){return e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,(function(e,r,n,s,o){return r?t?".jsx":".js":n&&(!s||!o)?e:n+s+"."+o.toLowerCase()+"js"}))}return e};e("__extends",t);e("__assign",r);e("__rest",n);e("__decorate",s);e("__param",o);e("__esDecorate",i);e("__runInitializers",a);e("__propKey",c);e("__setFunctionName",u);e("__metadata",A);e("__awaiter",l);e("__generator",d);e("__exportStar",p);e("__createBinding",k);e("__values",g);e("__read",h);e("__spread",m);e("__spreadArrays",E);e("__spreadArray",y);e("__await",I);e("__asyncGenerator",C);e("__asyncDelegator",b);e("__asyncValues",B);e("__makeTemplateObject",Q);e("__importStar",T);e("__importDefault",v);e("__classPrivateFieldGet",w);e("__classPrivateFieldSet",_);e("__classPrivateFieldIn",O);e("__addDisposableResource",R);e("__disposeResources",S);e("__rewriteRelativeImportExtension",F)}));0&&0},20770:(e,t,r)=>{e.exports=r(20218)},20218:(e,t,r)=>{var n=r(69278);var s=r(64756);var o=r(58611);var i=r(65692);var a=r(24434);var c=r(42613);var u=r(39023);t.httpOverHttp=httpOverHttp;t.httpsOverHttp=httpsOverHttp;t.httpOverHttps=httpOverHttps;t.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var t=new TunnelingAgent(e);t.request=o.request;return t}function httpsOverHttp(e){var t=new TunnelingAgent(e);t.request=o.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function httpOverHttps(e){var t=new TunnelingAgent(e);t.request=i.request;return t}function httpsOverHttps(e){var t=new TunnelingAgent(e);t.request=i.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function TunnelingAgent(e){var t=this;t.options=e||{};t.proxyOptions=t.options.proxy||{};t.maxSockets=t.options.maxSockets||o.Agent.defaultMaxSockets;t.requests=[];t.sockets=[];t.on("free",(function onFree(e,r,n,s){var o=toOptions(r,n,s);for(var i=0,a=t.requests.length;i=this.maxSockets){s.requests.push(o);return}s.createSocket(o,(function(t){t.on("free",onFree);t.on("close",onCloseOrRemove);t.on("agentRemove",onCloseOrRemove);e.onSocket(t);function onFree(){s.emit("free",t,o)}function onCloseOrRemove(e){s.removeSocket(t);t.removeListener("free",onFree);t.removeListener("close",onCloseOrRemove);t.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,t){var r=this;var n={};r.sockets.push(n);var s=mergeOptions({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){s.localAddress=e.localAddress}if(s.proxyAuth){s.headers=s.headers||{};s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")}A("making CONNECT request");var o=r.request(s);o.useChunkedEncodingByDefault=false;o.once("response",onResponse);o.once("upgrade",onUpgrade);o.once("connect",onConnect);o.once("error",onError);o.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,t,r){process.nextTick((function(){onConnect(e,t,r)}))}function onConnect(s,i,a){o.removeAllListeners();i.removeAllListeners();if(s.statusCode!==200){A("tunneling socket could not be established, statusCode=%d",s.statusCode);i.destroy();var c=new Error("tunneling socket could not be established, "+"statusCode="+s.statusCode);c.code="ECONNRESET";e.request.emit("error",c);r.removeSocket(n);return}if(a.length>0){A("got illegal response body from proxy");i.destroy();var c=new Error("got illegal response body from proxy");c.code="ECONNRESET";e.request.emit("error",c);r.removeSocket(n);return}A("tunneling connection has established");r.sockets[r.sockets.indexOf(n)]=i;return t(i)}function onError(t){o.removeAllListeners();A("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var s=new Error("tunneling socket could not be established, "+"cause="+t.message);s.code="ECONNRESET";e.request.emit("error",s);r.removeSocket(n)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var t=this.sockets.indexOf(e);if(t===-1){return}this.sockets.splice(t,1);var r=this.requests.shift();if(r){this.createSocket(r,(function(e){r.request.onSocket(e)}))}};function createSecureSocket(e,t){var r=this;TunnelingAgent.prototype.createSocket.call(r,e,(function(n){var o=e.request.getHeader("host");var i=mergeOptions({},r.options,{socket:n,servername:o?o.replace(/:.*$/,""):e.host});var a=s.connect(0,i);r.sockets[r.sockets.indexOf(n)]=a;t(a)}))}function toOptions(e,t,r){if(typeof e==="string"){return{host:e,port:t,localAddress:r}}return e}function mergeOptions(e){for(var t=1,r=arguments.length;t{Object.defineProperty(t,"__esModule",{value:true});t.AbstractStandardValidator=void 0;const n=r(29293);class AbstractStandardValidator extends n.AbstractValidator{constructor(e){super(e)}assertAndClean(e,t){this.assert(e,t);this.cleanValue(this.schema,e)}assertAndCleanCopy(e,t){this.assert(e,t);return this.cleanCopyOfValue(this.schema,e)}validateAndClean(e,t){this.validate(e,t);this.cleanValue(this.schema,e)}validateAndCleanCopy(e,t){this.validate(e,t);return this.cleanCopyOfValue(this.schema,e)}}t.AbstractStandardValidator=AbstractStandardValidator},73422:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.AbstractTypedUnionValidator=t.DEFAULT_DISCRIMINANT_KEY=void 0;const n=r(29293);t.DEFAULT_DISCRIMINANT_KEY="kind";class AbstractTypedUnionValidator extends n.AbstractValidator{constructor(e){super(e)}assert(e,t){this.assertReturningSchema(e,t)}assertAndClean(e,t){const r=this.assertReturningSchema(e,t);this.cleanValue(r,e)}assertAndCleanCopy(e,t){const r=this.assertReturningSchema(e,t);return this.cleanCopyOfValue(r,e)}validate(e,t){this.validateReturningSchema(e,t)}validateAndClean(e,t){const r=this.validateReturningSchema(e,t);this.cleanValue(r,e)}validateAndCleanCopy(e,t){const r=this.validateReturningSchema(e,t);return this.cleanCopyOfValue(r,e)}toValueKeyDereference(e){return/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(e)?`value.${e}`:`value['${e.replace(/'/g,"\\'")}']`}}t.AbstractTypedUnionValidator=AbstractTypedUnionValidator},29293:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.AbstractValidator=void 0;const n=r(45105);const s=r(17085);class AbstractValidator{constructor(e){this.schema=e}testReturningErrors(e){return this.test(e)?null:this.errors(e)}testReturningFirstError(e){const t=this.testReturningErrors(e);if(t===null){return null}const r=t[Symbol.iterator]().next();return r.done?null:r.value}firstError(e){const t=this.errors(e)[Symbol.iterator]();const r=t.next();return r.done?null:r.value}cleanCopyOfValue(e,t){if(e.type==="object"&&typeof t==="object"){const r={};Object.keys(e.properties).forEach((e=>{r[e]=t[e]}));return r}return t}cleanValue(e,t){if(e.type==="object"&&typeof t==="object"){const r=Object.keys(e.properties);Object.getOwnPropertyNames(t).forEach((e=>{if(!r.includes(e)){delete t[e]}}))}}uncompiledAssert(e,t,r){if(!n.Value.Check(e,t)){(0,s.throwInvalidAssert)(r,n.Value.Errors(e,t).First())}}uncompiledValidate(e,t,r){if(!n.Value.Check(e,t)){(0,s.throwInvalidValidate)(r,n.Value.Errors(e,t))}}}t.AbstractValidator=AbstractValidator},26498:function(e,t,r){var n=this&&this.__classPrivateFieldSet||function(e,t,r,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(e,r):s?s.value=r:t.set(e,r),r};var s=this&&this.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)};var o,i;Object.defineProperty(t,"__esModule",{value:true});t.CompilingDiscriminatedUnionValidator=void 0;const a=r(73422);const c=r(893);class CompilingDiscriminatedUnionValidator extends c.AbstractCompilingTypedUnionValidator{constructor(e){var t;super(e);o.set(this,void 0);i.set(this,void 0);n(this,o,(t=this.schema.discriminantKey)!==null&&t!==void 0?t:a.DEFAULT_DISCRIMINANT_KEY,"f")}compiledFindSchemaMemberIndex(e){if(s(this,i,"f")===undefined){const e=[`if (typeof value !== 'object' || value === null || Array.isArray(value)) return null;\n switch (${this.toValueKeyDereference(s(this,o,"f"))}) {\n`];for(let t=0;t{Object.defineProperty(t,"__esModule",{value:true});t.TypeIdentifyingKeyIndex=t.MESSAGE_MEMBERS_MISSING_KEY=t.MESSAGE_MULTIPLE_MEMBERS_WITH_SAME_KEY=t.MESSAGE_MEMBER_WITH_MULTIPLE_KEYS=t.MESSAGE_OPTIONAL_TYPE_ID_KEY=void 0;const n=r(14019);t.MESSAGE_OPTIONAL_TYPE_ID_KEY="Type identifying key cannot be optional";t.MESSAGE_MEMBER_WITH_MULTIPLE_KEYS="Union has member with multiple identifying keys";t.MESSAGE_MULTIPLE_MEMBERS_WITH_SAME_KEY="Union has multiple members with same identifying key";t.MESSAGE_MEMBERS_MISSING_KEY="Union has members missing identifying keys";class TypeIdentifyingKeyIndex{constructor(e){this.schema=e}cacheKeys(){const e=this.schema.anyOf.length;const r=new Set;this.keyByMemberIndex=new Array(e);for(let s=0;s{Object.defineProperty(t,"__esModule",{value:true});t.TypeIdentifyingKey=void 0;function TypeIdentifyingKey(e){return Object.assign(Object.assign({},e),{typeIdentifyingKey:true})}t.TypeIdentifyingKey=TypeIdentifyingKey},80619:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(29293),t);s(r(58453),t);s(r(73422),t);s(r(68589),t);s(r(29539),t);s(r(96388),t);s(r(55776),t)},17085:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.throwInvalidValidate=t.throwInvalidAssert=t.createUnionTypeErrorIterable=t.createUnionTypeError=t.createErrorsIterable=t.adjustErrorMessage=t.DEFAULT_UNKNOWN_TYPE_MESSAGE=t.DEFAULT_OVERALL_MESSAGE=void 0;const n=r(14019);const s=r(65507);const o=r(55776);t.DEFAULT_OVERALL_MESSAGE="Invalid value";t.DEFAULT_UNKNOWN_TYPE_MESSAGE="Object type not recognized";const i="Expected required property";function adjustErrorMessage(e){if(e.schema.errorMessage!==undefined){e.message=e.schema.errorMessage}return e}t.adjustErrorMessage=adjustErrorMessage;function createErrorsIterable(e){return{[Symbol.iterator]:function*(){const t=e[Symbol.iterator]();let r=t.next();let s="???";while(r.value!==undefined){const e=r.value;const o=e.message;if(e.path!==s){adjustErrorMessage(e);if(e.message!=o){s=e.path;yield e}else if(e.message!=i||["Any","Unknown"].includes(e.schema[n.Kind])){yield e}}r=t.next()}}}}t.createErrorsIterable=createErrorsIterable;function createUnionTypeError(e,r){var n;return{type:s.ValueErrorType.Union,path:"",schema:e,value:r,message:(n=e.errorMessage)!==null&&n!==void 0?n:t.DEFAULT_UNKNOWN_TYPE_MESSAGE}}t.createUnionTypeError=createUnionTypeError;function createUnionTypeErrorIterable(e){return{[Symbol.iterator]:function*(){yield e}}}t.createUnionTypeErrorIterable=createUnionTypeErrorIterable;function throwInvalidAssert(e,r){adjustErrorMessage(r);throw new o.ValidationException(e===undefined?t.DEFAULT_OVERALL_MESSAGE:e.replace("{error}",o.ValidationException.errorToString(r)),[r])}t.throwInvalidAssert=throwInvalidAssert;function throwInvalidValidate(e,r){throw new o.ValidationException(e!==null&&e!==void 0?e:t.DEFAULT_OVERALL_MESSAGE,r instanceof s.ValueErrorIterator?[...createErrorsIterable(r)]:[r])}t.throwInvalidValidate=throwInvalidValidate},55776:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValidationException=void 0;class ValidationException{constructor(e,t=[]){this.message=e;this.details=t}toString(){let e=this.message;if(this.details.length>0){if(!e.endsWith(":")){e+=":"}for(const t of this.details){e+="\n * "+ValidationException.errorToString(t)}}return e}static errorToString(e){return e.path!=""?`${e.path.substring(1)} - ${e.message}`:e.message}}t.ValidationException=ValidationException},3470:function(e,t,r){var n=this&&this.__classPrivateFieldGet||function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)};var s=this&&this.__classPrivateFieldSet||function(e,t,r,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(e,r):s?s.value=r:t.set(e,r),r};var o;Object.defineProperty(t,"__esModule",{value:true});t.CompilingStandardValidator=void 0;const i=r(25269);const a=r(58453);const c=r(17085);class CompilingStandardValidator extends a.AbstractStandardValidator{constructor(e){super(e);o.set(this,void 0)}test(e){const t=this.getCompiledType();return t.Check(e)}assert(e,t){const r=this.getCompiledType();if(!r.Check(e)){(0,c.throwInvalidAssert)(t,r.Errors(e).First())}}validate(e,t){const r=this.getCompiledType();if(!r.Check(e)){(0,c.throwInvalidValidate)(t,r.Errors(e))}}errors(e){const t=this.getCompiledType();return(0,c.createErrorsIterable)(t.Errors(e))}getCompiledType(){if(n(this,o,"f")===undefined){s(this,o,i.TypeCompiler.Compile(this.schema),"f")}return n(this,o,"f")}}t.CompilingStandardValidator=CompilingStandardValidator;o=new WeakMap},68589:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(12491),t);s(r(3470),t)},12491:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.StandardValidator=void 0;const n=r(58453);const s=r(45105);const o=r(17085);class StandardValidator extends n.AbstractStandardValidator{constructor(e){super(e)}test(e){return s.Value.Check(this.schema,e)}assert(e,t){this.uncompiledAssert(this.schema,e,t)}validate(e,t){this.uncompiledValidate(this.schema,e,t)}errors(e){return(0,o.createErrorsIterable)(s.Value.Errors(this.schema,e))}}t.StandardValidator=StandardValidator},24371:(e,t,r)=>{const n=r(86197);const s=r(28611);const o=r(68707);const i=r(35076);const a=r(81093);const c=r(59965);const u=r(3440);const{InvalidArgumentError:A}=o;const l=r(56615);const d=r(59136);const p=r(47365);const g=r(47501);const h=r(94004);const m=r(52429);const E=r(22720);const y=r(53573);const{getGlobalDispatcher:I,setGlobalDispatcher:C}=r(32581);const b=r(78840);const B=r(48299);const Q=r(64415);let T;try{r(76982);T=true}catch{T=false}Object.assign(s.prototype,l);e.exports.Dispatcher=s;e.exports.Client=n;e.exports.Pool=i;e.exports.BalancedPool=a;e.exports.Agent=c;e.exports.ProxyAgent=E;e.exports.RetryHandler=y;e.exports.DecoratorHandler=b;e.exports.RedirectHandler=B;e.exports.createRedirectInterceptor=Q;e.exports.buildConnector=d;e.exports.errors=o;function makeDispatcher(e){return(t,r,n)=>{if(typeof r==="function"){n=r;r=null}if(!t||typeof t!=="string"&&typeof t!=="object"&&!(t instanceof URL)){throw new A("invalid url")}if(r!=null&&typeof r!=="object"){throw new A("invalid opts")}if(r&&r.path!=null){if(typeof r.path!=="string"){throw new A("invalid opts.path")}let e=r.path;if(!r.path.startsWith("/")){e=`/${e}`}t=new URL(u.parseOrigin(t).origin+e)}else{if(!r){r=typeof t==="object"?t:{}}t=u.parseURL(t)}const{agent:s,dispatcher:o=I()}=r;if(s){throw new A("unsupported opts.agent. Did you mean opts.client?")}return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}e.exports.setGlobalDispatcher=C;e.exports.getGlobalDispatcher=I;if(u.nodeMajor>16||u.nodeMajor===16&&u.nodeMinor>=8){let t=null;e.exports.fetch=async function fetch(e){if(!t){t=r(12315).fetch}try{return await t(...arguments)}catch(e){if(typeof e==="object"){Error.captureStackTrace(e,this)}throw e}};e.exports.Headers=r(26349).Headers;e.exports.Response=r(48676).Response;e.exports.Request=r(25194).Request;e.exports.FormData=r(43073).FormData;e.exports.File=r(63041).File;e.exports.FileReader=r(82160).FileReader;const{setGlobalOrigin:n,getGlobalOrigin:s}=r(75628);e.exports.setGlobalOrigin=n;e.exports.getGlobalOrigin=s;const{CacheStorage:o}=r(44738);const{kConstruct:i}=r(80296);e.exports.caches=new o(i)}if(u.nodeMajor>=16){const{deleteCookie:t,getCookies:n,getSetCookies:s,setCookie:o}=r(53168);e.exports.deleteCookie=t;e.exports.getCookies=n;e.exports.getSetCookies=s;e.exports.setCookie=o;const{parseMIMEType:i,serializeAMimeType:a}=r(94322);e.exports.parseMIMEType=i;e.exports.serializeAMimeType=a}if(u.nodeMajor>=18&&T){const{WebSocket:t}=r(55171);e.exports.WebSocket=t}e.exports.request=makeDispatcher(l.request);e.exports.stream=makeDispatcher(l.stream);e.exports.pipeline=makeDispatcher(l.pipeline);e.exports.connect=makeDispatcher(l.connect);e.exports.upgrade=makeDispatcher(l.upgrade);e.exports.MockClient=p;e.exports.MockPool=h;e.exports.MockAgent=g;e.exports.mockErrors=m},59965:(e,t,r)=>{const{InvalidArgumentError:n}=r(68707);const{kClients:s,kRunning:o,kClose:i,kDestroy:a,kDispatch:c,kInterceptors:u}=r(36443);const A=r(50001);const l=r(35076);const d=r(86197);const p=r(3440);const g=r(64415);const{WeakRef:h,FinalizationRegistry:m}=r(13194)();const E=Symbol("onConnect");const y=Symbol("onDisconnect");const I=Symbol("onConnectionError");const C=Symbol("maxRedirections");const b=Symbol("onDrain");const B=Symbol("factory");const Q=Symbol("finalizer");const T=Symbol("options");function defaultFactory(e,t){return t&&t.connections===1?new d(e,t):new l(e,t)}class Agent extends A{constructor({factory:e=defaultFactory,maxRedirections:t=0,connect:r,...o}={}){super();if(typeof e!=="function"){throw new n("factory must be a function.")}if(r!=null&&typeof r!=="function"&&typeof r!=="object"){throw new n("connect must be a function or an object")}if(!Number.isInteger(t)||t<0){throw new n("maxRedirections must be a positive number")}if(r&&typeof r!=="function"){r={...r}}this[u]=o.interceptors&&o.interceptors.Agent&&Array.isArray(o.interceptors.Agent)?o.interceptors.Agent:[g({maxRedirections:t})];this[T]={...p.deepClone(o),connect:r};this[T].interceptors=o.interceptors?{...o.interceptors}:undefined;this[C]=t;this[B]=e;this[s]=new Map;this[Q]=new m((e=>{const t=this[s].get(e);if(t!==undefined&&t.deref()===undefined){this[s].delete(e)}}));const i=this;this[b]=(e,t)=>{i.emit("drain",e,[i,...t])};this[E]=(e,t)=>{i.emit("connect",e,[i,...t])};this[y]=(e,t,r)=>{i.emit("disconnect",e,[i,...t],r)};this[I]=(e,t,r)=>{i.emit("connectionError",e,[i,...t],r)}}get[o](){let e=0;for(const t of this[s].values()){const r=t.deref();if(r){e+=r[o]}}return e}[c](e,t){let r;if(e.origin&&(typeof e.origin==="string"||e.origin instanceof URL)){r=String(e.origin)}else{throw new n("opts.origin must be a non-empty string or URL.")}const o=this[s].get(r);let i=o?o.deref():null;if(!i){i=this[B](e.origin,this[T]).on("drain",this[b]).on("connect",this[E]).on("disconnect",this[y]).on("connectionError",this[I]);this[s].set(r,new h(i));this[Q].register(i,r)}return i.dispatch(e,t)}async[i](){const e=[];for(const t of this[s].values()){const r=t.deref();if(r){e.push(r.close())}}await Promise.all(e)}async[a](e){const t=[];for(const r of this[s].values()){const n=r.deref();if(n){t.push(n.destroy(e))}}await Promise.all(t)}}e.exports=Agent},80158:(e,t,r)=>{const{addAbortListener:n}=r(3440);const{RequestAbortedError:s}=r(68707);const o=Symbol("kListener");const i=Symbol("kSignal");function abort(e){if(e.abort){e.abort()}else{e.onError(new s)}}function addSignal(e,t){e[i]=null;e[o]=null;if(!t){return}if(t.aborted){abort(e);return}e[i]=t;e[o]=()=>{abort(e)};n(e[i],e[o])}function removeSignal(e){if(!e[i]){return}if("removeEventListener"in e[i]){e[i].removeEventListener("abort",e[o])}else{e[i].removeListener("abort",e[o])}e[i]=null;e[o]=null}e.exports={addSignal:addSignal,removeSignal:removeSignal}},34660:(e,t,r)=>{const{AsyncResource:n}=r(90290);const{InvalidArgumentError:s,RequestAbortedError:o,SocketError:i}=r(68707);const a=r(3440);const{addSignal:c,removeSignal:u}=r(80158);class ConnectHandler extends n{constructor(e,t){if(!e||typeof e!=="object"){throw new s("invalid opts")}if(typeof t!=="function"){throw new s("invalid callback")}const{signal:r,opaque:n,responseHeaders:o}=e;if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new s("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque=n||null;this.responseHeaders=o||null;this.callback=t;this.abort=null;c(this,r)}onConnect(e,t){if(!this.callback){throw new o}this.abort=e;this.context=t}onHeaders(){throw new i("bad connect",null)}onUpgrade(e,t,r){const{callback:n,opaque:s,context:o}=this;u(this);this.callback=null;let i=t;if(i!=null){i=this.responseHeaders==="raw"?a.parseRawHeaders(t):a.parseHeaders(t)}this.runInAsyncScope(n,null,null,{statusCode:e,headers:i,socket:r,opaque:s,context:o})}onError(e){const{callback:t,opaque:r}=this;u(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}}}function connect(e,t){if(t===undefined){return new Promise(((t,r)=>{connect.call(this,e,((e,n)=>e?r(e):t(n)))}))}try{const r=new ConnectHandler(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!=="function"){throw r}const n=e&&e.opaque;queueMicrotask((()=>t(r,{opaque:n})))}}e.exports=connect},76862:(e,t,r)=>{const{Readable:n,Duplex:s,PassThrough:o}=r(2203);const{InvalidArgumentError:i,InvalidReturnValueError:a,RequestAbortedError:c}=r(68707);const u=r(3440);const{AsyncResource:A}=r(90290);const{addSignal:l,removeSignal:d}=r(80158);const p=r(42613);const g=Symbol("resume");class PipelineRequest extends n{constructor(){super({autoDestroy:true});this[g]=null}_read(){const{[g]:e}=this;if(e){this[g]=null;e()}}_destroy(e,t){this._read();t(e)}}class PipelineResponse extends n{constructor(e){super({autoDestroy:true});this[g]=e}_read(){this[g]()}_destroy(e,t){if(!e&&!this._readableState.endEmitted){e=new c}t(e)}}class PipelineHandler extends A{constructor(e,t){if(!e||typeof e!=="object"){throw new i("invalid opts")}if(typeof t!=="function"){throw new i("invalid handler")}const{signal:r,method:n,opaque:o,onInfo:a,responseHeaders:A}=e;if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new i("signal must be an EventEmitter or EventTarget")}if(n==="CONNECT"){throw new i("invalid method")}if(a&&typeof a!=="function"){throw new i("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=o||null;this.responseHeaders=A||null;this.handler=t;this.abort=null;this.context=null;this.onInfo=a||null;this.req=(new PipelineRequest).on("error",u.nop);this.ret=new s({readableObjectMode:e.objectMode,autoDestroy:true,read:()=>{const{body:e}=this;if(e&&e.resume){e.resume()}},write:(e,t,r)=>{const{req:n}=this;if(n.push(e,t)||n._readableState.destroyed){r()}else{n[g]=r}},destroy:(e,t)=>{const{body:r,req:n,res:s,ret:o,abort:i}=this;if(!e&&!o._readableState.endEmitted){e=new c}if(i&&e){i()}u.destroy(r,e);u.destroy(n,e);u.destroy(s,e);d(this);t(e)}}).on("prefinish",(()=>{const{req:e}=this;e.push(null)}));this.res=null;l(this,r)}onConnect(e,t){const{ret:r,res:n}=this;p(!n,"pipeline cannot be retried");if(r.destroyed){throw new c}this.abort=e;this.context=t}onHeaders(e,t,r){const{opaque:n,handler:s,context:o}=this;if(e<200){if(this.onInfo){const r=this.responseHeaders==="raw"?u.parseRawHeaders(t):u.parseHeaders(t);this.onInfo({statusCode:e,headers:r})}return}this.res=new PipelineResponse(r);let i;try{this.handler=null;const r=this.responseHeaders==="raw"?u.parseRawHeaders(t):u.parseHeaders(t);i=this.runInAsyncScope(s,null,{statusCode:e,headers:r,opaque:n,body:this.res,context:o})}catch(e){this.res.on("error",u.nop);throw e}if(!i||typeof i.on!=="function"){throw new a("expected Readable")}i.on("data",(e=>{const{ret:t,body:r}=this;if(!t.push(e)&&r.pause){r.pause()}})).on("error",(e=>{const{ret:t}=this;u.destroy(t,e)})).on("end",(()=>{const{ret:e}=this;e.push(null)})).on("close",(()=>{const{ret:e}=this;if(!e._readableState.ended){u.destroy(e,new c)}}));this.body=i}onData(e){const{res:t}=this;return t.push(e)}onComplete(e){const{res:t}=this;t.push(null)}onError(e){const{ret:t}=this;this.handler=null;u.destroy(t,e)}}function pipeline(e,t){try{const r=new PipelineHandler(e,t);this.dispatch({...e,body:r.req},r);return r.ret}catch(e){return(new o).destroy(e)}}e.exports=pipeline},14043:(e,t,r)=>{const n=r(49927);const{InvalidArgumentError:s,RequestAbortedError:o}=r(68707);const i=r(3440);const{getResolveErrorBodyCallback:a}=r(87655);const{AsyncResource:c}=r(90290);const{addSignal:u,removeSignal:A}=r(80158);class RequestHandler extends c{constructor(e,t){if(!e||typeof e!=="object"){throw new s("invalid opts")}const{signal:r,method:n,opaque:o,body:a,onInfo:c,responseHeaders:A,throwOnError:l,highWaterMark:d}=e;try{if(typeof t!=="function"){throw new s("invalid callback")}if(d&&(typeof d!=="number"||d<0)){throw new s("invalid highWaterMark")}if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new s("signal must be an EventEmitter or EventTarget")}if(n==="CONNECT"){throw new s("invalid method")}if(c&&typeof c!=="function"){throw new s("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(e){if(i.isStream(a)){i.destroy(a.on("error",i.nop),e)}throw e}this.responseHeaders=A||null;this.opaque=o||null;this.callback=t;this.res=null;this.abort=null;this.body=a;this.trailers={};this.context=null;this.onInfo=c||null;this.throwOnError=l;this.highWaterMark=d;if(i.isStream(a)){a.on("error",(e=>{this.onError(e)}))}u(this,r)}onConnect(e,t){if(!this.callback){throw new o}this.abort=e;this.context=t}onHeaders(e,t,r,s){const{callback:o,opaque:c,abort:u,context:A,responseHeaders:l,highWaterMark:d}=this;const p=l==="raw"?i.parseRawHeaders(t):i.parseHeaders(t);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:p})}return}const g=l==="raw"?i.parseHeaders(t):p;const h=g["content-type"];const m=new n({resume:r,abort:u,contentType:h,highWaterMark:d});this.callback=null;this.res=m;if(o!==null){if(this.throwOnError&&e>=400){this.runInAsyncScope(a,null,{callback:o,body:m,contentType:h,statusCode:e,statusMessage:s,headers:p})}else{this.runInAsyncScope(o,null,null,{statusCode:e,headers:p,trailers:this.trailers,opaque:c,body:m,context:A})}}}onData(e){const{res:t}=this;return t.push(e)}onComplete(e){const{res:t}=this;A(this);i.parseHeaders(e,this.trailers);t.push(null)}onError(e){const{res:t,callback:r,body:n,opaque:s}=this;A(this);if(r){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(r,null,e,{opaque:s})}))}if(t){this.res=null;queueMicrotask((()=>{i.destroy(t,e)}))}if(n){this.body=null;i.destroy(n,e)}}}function request(e,t){if(t===undefined){return new Promise(((t,r)=>{request.call(this,e,((e,n)=>e?r(e):t(n)))}))}try{this.dispatch(e,new RequestHandler(e,t))}catch(r){if(typeof t!=="function"){throw r}const n=e&&e.opaque;queueMicrotask((()=>t(r,{opaque:n})))}}e.exports=request;e.exports.RequestHandler=RequestHandler},3560:(e,t,r)=>{const{finished:n,PassThrough:s}=r(2203);const{InvalidArgumentError:o,InvalidReturnValueError:i,RequestAbortedError:a}=r(68707);const c=r(3440);const{getResolveErrorBodyCallback:u}=r(87655);const{AsyncResource:A}=r(90290);const{addSignal:l,removeSignal:d}=r(80158);class StreamHandler extends A{constructor(e,t,r){if(!e||typeof e!=="object"){throw new o("invalid opts")}const{signal:n,method:s,opaque:i,body:a,onInfo:u,responseHeaders:A,throwOnError:d}=e;try{if(typeof r!=="function"){throw new o("invalid callback")}if(typeof t!=="function"){throw new o("invalid factory")}if(n&&typeof n.on!=="function"&&typeof n.addEventListener!=="function"){throw new o("signal must be an EventEmitter or EventTarget")}if(s==="CONNECT"){throw new o("invalid method")}if(u&&typeof u!=="function"){throw new o("invalid onInfo callback")}super("UNDICI_STREAM")}catch(e){if(c.isStream(a)){c.destroy(a.on("error",c.nop),e)}throw e}this.responseHeaders=A||null;this.opaque=i||null;this.factory=t;this.callback=r;this.res=null;this.abort=null;this.context=null;this.trailers=null;this.body=a;this.onInfo=u||null;this.throwOnError=d||false;if(c.isStream(a)){a.on("error",(e=>{this.onError(e)}))}l(this,n)}onConnect(e,t){if(!this.callback){throw new a}this.abort=e;this.context=t}onHeaders(e,t,r,o){const{factory:a,opaque:A,context:l,callback:d,responseHeaders:p}=this;const g=p==="raw"?c.parseRawHeaders(t):c.parseHeaders(t);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:g})}return}this.factory=null;let h;if(this.throwOnError&&e>=400){const r=p==="raw"?c.parseHeaders(t):g;const n=r["content-type"];h=new s;this.callback=null;this.runInAsyncScope(u,null,{callback:d,body:h,contentType:n,statusCode:e,statusMessage:o,headers:g})}else{if(a===null){return}h=this.runInAsyncScope(a,null,{statusCode:e,headers:g,opaque:A,context:l});if(!h||typeof h.write!=="function"||typeof h.end!=="function"||typeof h.on!=="function"){throw new i("expected Writable")}n(h,{readable:false},(e=>{const{callback:t,res:r,opaque:n,trailers:s,abort:o}=this;this.res=null;if(e||!r.readable){c.destroy(r,e)}this.callback=null;this.runInAsyncScope(t,null,e||null,{opaque:n,trailers:s});if(e){o()}}))}h.on("drain",r);this.res=h;const m=h.writableNeedDrain!==undefined?h.writableNeedDrain:h._writableState&&h._writableState.needDrain;return m!==true}onData(e){const{res:t}=this;return t?t.write(e):true}onComplete(e){const{res:t}=this;d(this);if(!t){return}this.trailers=c.parseHeaders(e);t.end()}onError(e){const{res:t,callback:r,opaque:n,body:s}=this;d(this);this.factory=null;if(t){this.res=null;c.destroy(t,e)}else if(r){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(r,null,e,{opaque:n})}))}if(s){this.body=null;c.destroy(s,e)}}}function stream(e,t,r){if(r===undefined){return new Promise(((r,n)=>{stream.call(this,e,t,((e,t)=>e?n(e):r(t)))}))}try{this.dispatch(e,new StreamHandler(e,t,r))}catch(t){if(typeof r!=="function"){throw t}const n=e&&e.opaque;queueMicrotask((()=>r(t,{opaque:n})))}}e.exports=stream},61882:(e,t,r)=>{const{InvalidArgumentError:n,RequestAbortedError:s,SocketError:o}=r(68707);const{AsyncResource:i}=r(90290);const a=r(3440);const{addSignal:c,removeSignal:u}=r(80158);const A=r(42613);class UpgradeHandler extends i{constructor(e,t){if(!e||typeof e!=="object"){throw new n("invalid opts")}if(typeof t!=="function"){throw new n("invalid callback")}const{signal:r,opaque:s,responseHeaders:o}=e;if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new n("signal must be an EventEmitter or EventTarget")}super("UNDICI_UPGRADE");this.responseHeaders=o||null;this.opaque=s||null;this.callback=t;this.abort=null;this.context=null;c(this,r)}onConnect(e,t){if(!this.callback){throw new s}this.abort=e;this.context=null}onHeaders(){throw new o("bad upgrade",null)}onUpgrade(e,t,r){const{callback:n,opaque:s,context:o}=this;A.strictEqual(e,101);u(this);this.callback=null;const i=this.responseHeaders==="raw"?a.parseRawHeaders(t):a.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:i,socket:r,opaque:s,context:o})}onError(e){const{callback:t,opaque:r}=this;u(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}}}function upgrade(e,t){if(t===undefined){return new Promise(((t,r)=>{upgrade.call(this,e,((e,n)=>e?r(e):t(n)))}))}try{const r=new UpgradeHandler(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!=="function"){throw r}const n=e&&e.opaque;queueMicrotask((()=>t(r,{opaque:n})))}}e.exports=upgrade},56615:(e,t,r)=>{e.exports.request=r(14043);e.exports.stream=r(3560);e.exports.pipeline=r(76862);e.exports.upgrade=r(61882);e.exports.connect=r(34660)},49927:(e,t,r)=>{const n=r(42613);const{Readable:s}=r(2203);const{RequestAbortedError:o,NotSupportedError:i,InvalidArgumentError:a}=r(68707);const c=r(3440);const{ReadableStreamFrom:u,toUSVString:A}=r(3440);let l;const d=Symbol("kConsume");const p=Symbol("kReading");const g=Symbol("kBody");const h=Symbol("abort");const m=Symbol("kContentType");const noop=()=>{};e.exports=class BodyReadable extends s{constructor({resume:e,abort:t,contentType:r="",highWaterMark:n=64*1024}){super({autoDestroy:true,read:e,highWaterMark:n});this._readableState.dataEmitted=false;this[h]=t;this[d]=null;this[g]=null;this[m]=r;this[p]=false}destroy(e){if(this.destroyed){return this}if(!e&&!this._readableState.endEmitted){e=new o}if(e){this[h]()}return super.destroy(e)}emit(e,...t){if(e==="data"){this._readableState.dataEmitted=true}else if(e==="error"){this._readableState.errorEmitted=true}return super.emit(e,...t)}on(e,...t){if(e==="data"||e==="readable"){this[p]=true}return super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){const r=super.off(e,...t);if(e==="data"||e==="readable"){this[p]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return r}removeListener(e,...t){return this.off(e,...t)}push(e){if(this[d]&&e!==null&&this.readableLength===0){consumePush(this[d],e);return this[p]?super.push(e):true}return super.push(e)}async text(){return consume(this,"text")}async json(){return consume(this,"json")}async blob(){return consume(this,"blob")}async arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new i}get bodyUsed(){return c.isDisturbed(this)}get body(){if(!this[g]){this[g]=u(this);if(this[d]){this[g].getReader();n(this[g].locked)}}return this[g]}dump(e){let t=e&&Number.isFinite(e.limit)?e.limit:262144;const r=e&&e.signal;if(r){try{if(typeof r!=="object"||!("aborted"in r)){throw new a("signal must be an AbortSignal")}c.throwIfAborted(r)}catch(e){return Promise.reject(e)}}if(this.closed){return Promise.resolve(null)}return new Promise(((e,n)=>{const s=r?c.addAbortListener(r,(()=>{this.destroy()})):noop;this.on("close",(function(){s();if(r&&r.aborted){n(r.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"}))}else{e(null)}})).on("error",noop).on("data",(function(e){t-=e.length;if(t<=0){this.destroy()}})).resume()}))}};function isLocked(e){return e[g]&&e[g].locked===true||e[d]}function isUnusable(e){return c.isDisturbed(e)||isLocked(e)}async function consume(e,t){if(isUnusable(e)){throw new TypeError("unusable")}n(!e[d]);return new Promise(((r,n)=>{e[d]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]};e.on("error",(function(e){consumeFinish(this[d],e)})).on("close",(function(){if(this[d].body!==null){consumeFinish(this[d],new o)}}));process.nextTick(consumeStart,e[d])}))}function consumeStart(e){if(e.body===null){return}const{_readableState:t}=e.stream;for(const r of t.buffer){consumePush(e,r)}if(t.endEmitted){consumeEnd(this[d])}else{e.stream.on("end",(function(){consumeEnd(this[d])}))}e.stream.resume();while(e.stream.read()!=null){}}function consumeEnd(e){const{type:t,body:n,resolve:s,stream:o,length:i}=e;try{if(t==="text"){s(A(Buffer.concat(n)))}else if(t==="json"){s(JSON.parse(Buffer.concat(n)))}else if(t==="arrayBuffer"){const e=new Uint8Array(i);let t=0;for(const r of n){e.set(r,t);t+=r.byteLength}s(e.buffer)}else if(t==="blob"){if(!l){l=r(20181).Blob}s(new l(n,{type:o[m]}))}consumeFinish(e)}catch(e){o.destroy(e)}}function consumePush(e,t){e.length+=t.length;e.body.push(t)}function consumeFinish(e,t){if(e.body===null){return}if(t){e.reject(t)}else{e.resolve()}e.type=null;e.stream=null;e.resolve=null;e.reject=null;e.length=0;e.body=null}},87655:(e,t,r)=>{const n=r(42613);const{ResponseStatusCodeError:s}=r(68707);const{toUSVString:o}=r(3440);async function getResolveErrorBodyCallback({callback:e,body:t,contentType:r,statusCode:i,statusMessage:a,headers:c}){n(t);let u=[];let A=0;for await(const e of t){u.push(e);A+=e.length;if(A>128*1024){u=null;break}}if(i===204||!r||!u){process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,c));return}try{if(r.startsWith("application/json")){const t=JSON.parse(o(Buffer.concat(u)));process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,c,t));return}if(r.startsWith("text/")){const t=o(Buffer.concat(u));process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,c,t));return}}catch(e){}process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,c))}e.exports={getResolveErrorBodyCallback:getResolveErrorBodyCallback}},81093:(e,t,r)=>{const{BalancedPoolMissingUpstreamError:n,InvalidArgumentError:s}=r(68707);const{PoolBase:o,kClients:i,kNeedDrain:a,kAddClient:c,kRemoveClient:u,kGetDispatcher:A}=r(58640);const l=r(35076);const{kUrl:d,kInterceptors:p}=r(36443);const{parseOrigin:g}=r(3440);const h=Symbol("factory");const m=Symbol("options");const E=Symbol("kGreatestCommonDivisor");const y=Symbol("kCurrentWeight");const I=Symbol("kIndex");const C=Symbol("kWeight");const b=Symbol("kMaxWeightPerServer");const B=Symbol("kErrorPenalty");function getGreatestCommonDivisor(e,t){if(t===0)return e;return getGreatestCommonDivisor(t,e%t)}function defaultFactory(e,t){return new l(e,t)}class BalancedPool extends o{constructor(e=[],{factory:t=defaultFactory,...r}={}){super();this[m]=r;this[I]=-1;this[y]=0;this[b]=this[m].maxWeightPerServer||100;this[B]=this[m].errorPenalty||15;if(!Array.isArray(e)){e=[e]}if(typeof t!=="function"){throw new s("factory must be a function.")}this[p]=r.interceptors&&r.interceptors.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[];this[h]=t;for(const t of e){this.addUpstream(t)}this._updateBalancedPoolStats()}addUpstream(e){const t=g(e).origin;if(this[i].find((e=>e[d].origin===t&&e.closed!==true&&e.destroyed!==true))){return this}const r=this[h](t,Object.assign({},this[m]));this[c](r);r.on("connect",(()=>{r[C]=Math.min(this[b],r[C]+this[B])}));r.on("connectionError",(()=>{r[C]=Math.max(1,r[C]-this[B]);this._updateBalancedPoolStats()}));r.on("disconnect",((...e)=>{const t=e[2];if(t&&t.code==="UND_ERR_SOCKET"){r[C]=Math.max(1,r[C]-this[B]);this._updateBalancedPoolStats()}}));for(const e of this[i]){e[C]=this[b]}this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){this[E]=this[i].map((e=>e[C])).reduce(getGreatestCommonDivisor,0)}removeUpstream(e){const t=g(e).origin;const r=this[i].find((e=>e[d].origin===t&&e.closed!==true&&e.destroyed!==true));if(r){this[u](r)}return this}get upstreams(){return this[i].filter((e=>e.closed!==true&&e.destroyed!==true)).map((e=>e[d].origin))}[A](){if(this[i].length===0){throw new n}const e=this[i].find((e=>!e[a]&&e.closed!==true&&e.destroyed!==true));if(!e){return}const t=this[i].map((e=>e[a])).reduce(((e,t)=>e&&t),true);if(t){return}let r=0;let s=this[i].findIndex((e=>!e[a]));while(r++this[i][s][C]&&!e[a]){s=this[I]}if(this[I]===0){this[y]=this[y]-this[E];if(this[y]<=0){this[y]=this[b]}}if(e[C]>=this[y]&&!e[a]){return e}}this[y]=this[i][s][C];this[I]=s;return this[i][s]}}e.exports=BalancedPool},50479:(e,t,r)=>{const{kConstruct:n}=r(80296);const{urlEquals:s,fieldValues:o}=r(23993);const{kEnumerableProperty:i,isDisturbed:a}=r(3440);const{kHeadersList:c}=r(36443);const{webidl:u}=r(74222);const{Response:A,cloneResponse:l}=r(48676);const{Request:d}=r(25194);const{kState:p,kHeaders:g,kGuard:h,kRealm:m}=r(89710);const{fetching:E}=r(12315);const{urlIsHttpHttpsScheme:y,createDeferredPromise:I,readAllBytes:C}=r(15523);const b=r(42613);const{getGlobalDispatcher:B}=r(32581);class Cache{#e;constructor(){if(arguments[0]!==n){u.illegalConstructor()}this.#e=arguments[1]}async match(e,t={}){u.brandCheck(this,Cache);u.argumentLengthCheck(arguments,1,{header:"Cache.match"});e=u.converters.RequestInfo(e);t=u.converters.CacheQueryOptions(t);const r=await this.matchAll(e,t);if(r.length===0){return}return r[0]}async matchAll(e=undefined,t={}){u.brandCheck(this,Cache);if(e!==undefined)e=u.converters.RequestInfo(e);t=u.converters.CacheQueryOptions(t);let r=null;if(e!==undefined){if(e instanceof d){r=e[p];if(r.method!=="GET"&&!t.ignoreMethod){return[]}}else if(typeof e==="string"){r=new d(e)[p]}}const n=[];if(e===undefined){for(const e of this.#e){n.push(e[1])}}else{const e=this.#t(r,t);for(const t of e){n.push(t[1])}}const s=[];for(const e of n){const t=new A(e.body?.source??null);const r=t[p].body;t[p]=e;t[p].body=r;t[g][c]=e.headersList;t[g][h]="immutable";s.push(t)}return Object.freeze(s)}async add(e){u.brandCheck(this,Cache);u.argumentLengthCheck(arguments,1,{header:"Cache.add"});e=u.converters.RequestInfo(e);const t=[e];const r=this.addAll(t);return await r}async addAll(e){u.brandCheck(this,Cache);u.argumentLengthCheck(arguments,1,{header:"Cache.addAll"});e=u.converters["sequence"](e);const t=[];const r=[];for(const t of e){if(typeof t==="string"){continue}const e=t[p];if(!y(e.url)||e.method!=="GET"){throw u.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}}const n=[];for(const s of e){const e=new d(s)[p];if(!y(e.url)){throw u.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."})}e.initiator="fetch";e.destination="subresource";r.push(e);const i=I();n.push(E({request:e,dispatcher:B(),processResponse(e){if(e.type==="error"||e.status===206||e.status<200||e.status>299){i.reject(u.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}))}else if(e.headersList.contains("vary")){const t=o(e.headersList.get("vary"));for(const e of t){if(e==="*"){i.reject(u.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const e of n){e.abort()}return}}}},processResponseEndOfBody(e){if(e.aborted){i.reject(new DOMException("aborted","AbortError"));return}i.resolve(e)}}));t.push(i.promise)}const s=Promise.all(t);const i=await s;const a=[];let c=0;for(const e of i){const t={type:"put",request:r[c],response:e};a.push(t);c++}const A=I();let l=null;try{this.#r(a)}catch(e){l=e}queueMicrotask((()=>{if(l===null){A.resolve(undefined)}else{A.reject(l)}}));return A.promise}async put(e,t){u.brandCheck(this,Cache);u.argumentLengthCheck(arguments,2,{header:"Cache.put"});e=u.converters.RequestInfo(e);t=u.converters.Response(t);let r=null;if(e instanceof d){r=e[p]}else{r=new d(e)[p]}if(!y(r.url)||r.method!=="GET"){throw u.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"})}const n=t[p];if(n.status===206){throw u.errors.exception({header:"Cache.put",message:"Got 206 status"})}if(n.headersList.contains("vary")){const e=o(n.headersList.get("vary"));for(const t of e){if(t==="*"){throw u.errors.exception({header:"Cache.put",message:"Got * vary field value"})}}}if(n.body&&(a(n.body.stream)||n.body.stream.locked)){throw u.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"})}const s=l(n);const i=I();if(n.body!=null){const e=n.body.stream;const t=e.getReader();C(t).then(i.resolve,i.reject)}else{i.resolve(undefined)}const c=[];const A={type:"put",request:r,response:s};c.push(A);const g=await i.promise;if(s.body!=null){s.body.source=g}const h=I();let m=null;try{this.#r(c)}catch(e){m=e}queueMicrotask((()=>{if(m===null){h.resolve()}else{h.reject(m)}}));return h.promise}async delete(e,t={}){u.brandCheck(this,Cache);u.argumentLengthCheck(arguments,1,{header:"Cache.delete"});e=u.converters.RequestInfo(e);t=u.converters.CacheQueryOptions(t);let r=null;if(e instanceof d){r=e[p];if(r.method!=="GET"&&!t.ignoreMethod){return false}}else{b(typeof e==="string");r=new d(e)[p]}const n=[];const s={type:"delete",request:r,options:t};n.push(s);const o=I();let i=null;let a;try{a=this.#r(n)}catch(e){i=e}queueMicrotask((()=>{if(i===null){o.resolve(!!a?.length)}else{o.reject(i)}}));return o.promise}async keys(e=undefined,t={}){u.brandCheck(this,Cache);if(e!==undefined)e=u.converters.RequestInfo(e);t=u.converters.CacheQueryOptions(t);let r=null;if(e!==undefined){if(e instanceof d){r=e[p];if(r.method!=="GET"&&!t.ignoreMethod){return[]}}else if(typeof e==="string"){r=new d(e)[p]}}const n=I();const s=[];if(e===undefined){for(const e of this.#e){s.push(e[0])}}else{const e=this.#t(r,t);for(const t of e){s.push(t[0])}}queueMicrotask((()=>{const e=[];for(const t of s){const r=new d("https://a");r[p]=t;r[g][c]=t.headersList;r[g][h]="immutable";r[m]=t.client;e.push(r)}n.resolve(Object.freeze(e))}));return n.promise}#r(e){const t=this.#e;const r=[...t];const n=[];const s=[];try{for(const r of e){if(r.type!=="delete"&&r.type!=="put"){throw u.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'})}if(r.type==="delete"&&r.response!=null){throw u.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"})}if(this.#t(r.request,r.options,n).length){throw new DOMException("???","InvalidStateError")}let e;if(r.type==="delete"){e=this.#t(r.request,r.options);if(e.length===0){return[]}for(const r of e){const e=t.indexOf(r);b(e!==-1);t.splice(e,1)}}else if(r.type==="put"){if(r.response==null){throw u.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"})}const s=r.request;if(!y(s.url)){throw u.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(s.method!=="GET"){throw u.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"})}if(r.options!=null){throw u.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"})}e=this.#t(r.request);for(const r of e){const e=t.indexOf(r);b(e!==-1);t.splice(e,1)}t.push([r.request,r.response]);n.push([r.request,r.response])}s.push([r.request,r.response])}return s}catch(e){this.#e.length=0;this.#e=r;throw e}}#t(e,t,r){const n=[];const s=r??this.#e;for(const r of s){const[s,o]=r;if(this.#n(e,s,o,t)){n.push(r)}}return n}#n(e,t,r=null,n){const i=new URL(e.url);const a=new URL(t.url);if(n?.ignoreSearch){a.search="";i.search=""}if(!s(i,a,true)){return false}if(r==null||n?.ignoreVary||!r.headersList.contains("vary")){return true}const c=o(r.headersList.get("vary"));for(const r of c){if(r==="*"){return false}const n=t.headersList.get(r);const s=e.headersList.get(r);if(n!==s){return false}}return true}}Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:i,matchAll:i,add:i,addAll:i,put:i,delete:i,keys:i});const Q=[{key:"ignoreSearch",converter:u.converters.boolean,defaultValue:false},{key:"ignoreMethod",converter:u.converters.boolean,defaultValue:false},{key:"ignoreVary",converter:u.converters.boolean,defaultValue:false}];u.converters.CacheQueryOptions=u.dictionaryConverter(Q);u.converters.MultiCacheQueryOptions=u.dictionaryConverter([...Q,{key:"cacheName",converter:u.converters.DOMString}]);u.converters.Response=u.interfaceConverter(A);u.converters["sequence"]=u.sequenceConverter(u.converters.RequestInfo);e.exports={Cache:Cache}},44738:(e,t,r)=>{const{kConstruct:n}=r(80296);const{Cache:s}=r(50479);const{webidl:o}=r(74222);const{kEnumerableProperty:i}=r(3440);class CacheStorage{#s=new Map;constructor(){if(arguments[0]!==n){o.illegalConstructor()}}async match(e,t={}){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"});e=o.converters.RequestInfo(e);t=o.converters.MultiCacheQueryOptions(t);if(t.cacheName!=null){if(this.#s.has(t.cacheName)){const r=this.#s.get(t.cacheName);const o=new s(n,r);return await o.match(e,t)}}else{for(const r of this.#s.values()){const o=new s(n,r);const i=await o.match(e,t);if(i!==undefined){return i}}}}async has(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"});e=o.converters.DOMString(e);return this.#s.has(e)}async open(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"});e=o.converters.DOMString(e);if(this.#s.has(e)){const t=this.#s.get(e);return new s(n,t)}const t=[];this.#s.set(e,t);return new s(n,t)}async delete(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"});e=o.converters.DOMString(e);return this.#s.delete(e)}async keys(){o.brandCheck(this,CacheStorage);const e=this.#s.keys();return[...e]}}Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:i,has:i,open:i,delete:i,keys:i});e.exports={CacheStorage:CacheStorage}},80296:(e,t,r)=>{e.exports={kConstruct:r(36443).kConstruct}},23993:(e,t,r)=>{const n=r(42613);const{URLSerializer:s}=r(94322);const{isValidHeaderName:o}=r(15523);function urlEquals(e,t,r=false){const n=s(e,r);const o=s(t,r);return n===o}function fieldValues(e){n(e!==null);const t=[];for(let r of e.split(",")){r=r.trim();if(!r.length){continue}else if(!o(r)){continue}t.push(r)}return t}e.exports={urlEquals:urlEquals,fieldValues:fieldValues}},86197:(e,t,r)=>{const n=r(42613);const s=r(69278);const o=r(58611);const{pipeline:i}=r(2203);const a=r(3440);const c=r(28804);const u=r(44655);const A=r(50001);const{RequestContentLengthMismatchError:l,ResponseContentLengthMismatchError:d,InvalidArgumentError:p,RequestAbortedError:g,HeadersTimeoutError:h,HeadersOverflowError:m,SocketError:E,InformationalError:y,BodyTimeoutError:I,HTTPParserError:C,ResponseExceededMaxSizeError:b,ClientDestroyedError:B}=r(68707);const Q=r(59136);const{kUrl:T,kReset:v,kServerName:w,kClient:_,kBusy:O,kParser:k,kConnect:R,kBlocking:S,kResuming:F,kRunning:D,kPending:N,kSize:P,kWriting:L,kQueue:U,kConnected:M,kConnecting:x,kNeedDrain:G,kNoRef:j,kKeepAliveDefaultTimeout:V,kHostHeader:H,kPendingIdx:q,kRunningIdx:Y,kError:K,kPipelining:J,kSocket:$,kKeepAliveTimeoutValue:W,kMaxHeadersSize:z,kKeepAliveMaxTimeout:Z,kKeepAliveTimeoutThreshold:X,kHeadersTimeout:ee,kBodyTimeout:te,kStrictContentLength:re,kConnector:ne,kMaxRedirections:se,kMaxRequests:oe,kCounter:ie,kClose:ae,kDestroy:ce,kDispatch:ue,kInterceptors:Ae,kLocalAddress:le,kMaxResponseSize:de,kHTTPConnVersion:pe,kHost:fe,kHTTP2Session:ge,kHTTP2SessionState:he,kHTTP2BuildRequest:me,kHTTP2CopyHeaders:Ee,kHTTP1BuildRequest:ye}=r(36443);let Ie;try{Ie=r(85675)}catch{Ie={constants:{}}}const{constants:{HTTP2_HEADER_AUTHORITY:Ce,HTTP2_HEADER_METHOD:be,HTTP2_HEADER_PATH:Be,HTTP2_HEADER_SCHEME:Qe,HTTP2_HEADER_CONTENT_LENGTH:Te,HTTP2_HEADER_EXPECT:ve,HTTP2_HEADER_STATUS:we}}=Ie;let _e=false;const Oe=Buffer[Symbol.species];const ke=Symbol("kClosedResolve");const Re={};try{const e=r(31637);Re.sendHeaders=e.channel("undici:client:sendHeaders");Re.beforeConnect=e.channel("undici:client:beforeConnect");Re.connectError=e.channel("undici:client:connectError");Re.connected=e.channel("undici:client:connected")}catch{Re.sendHeaders={hasSubscribers:false};Re.beforeConnect={hasSubscribers:false};Re.connectError={hasSubscribers:false};Re.connected={hasSubscribers:false}}class Client extends A{constructor(e,{interceptors:t,maxHeaderSize:r,headersTimeout:n,socketTimeout:i,requestTimeout:c,connectTimeout:u,bodyTimeout:A,idleTimeout:l,keepAlive:d,keepAliveTimeout:g,maxKeepAliveTimeout:h,keepAliveMaxTimeout:m,keepAliveTimeoutThreshold:E,socketPath:y,pipelining:I,tls:C,strictContentLength:b,maxCachedSessions:B,maxRedirections:v,connect:_,maxRequestsPerClient:O,localAddress:k,maxResponseSize:R,autoSelectFamily:S,autoSelectFamilyAttemptTimeout:D,allowH2:N,maxConcurrentStreams:P}={}){super();if(d!==undefined){throw new p("unsupported keepAlive, use pipelining=0 instead")}if(i!==undefined){throw new p("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(c!==undefined){throw new p("unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(l!==undefined){throw new p("unsupported idleTimeout, use keepAliveTimeout instead")}if(h!==undefined){throw new p("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(r!=null&&!Number.isFinite(r)){throw new p("invalid maxHeaderSize")}if(y!=null&&typeof y!=="string"){throw new p("invalid socketPath")}if(u!=null&&(!Number.isFinite(u)||u<0)){throw new p("invalid connectTimeout")}if(g!=null&&(!Number.isFinite(g)||g<=0)){throw new p("invalid keepAliveTimeout")}if(m!=null&&(!Number.isFinite(m)||m<=0)){throw new p("invalid keepAliveMaxTimeout")}if(E!=null&&!Number.isFinite(E)){throw new p("invalid keepAliveTimeoutThreshold")}if(n!=null&&(!Number.isInteger(n)||n<0)){throw new p("headersTimeout must be a positive integer or zero")}if(A!=null&&(!Number.isInteger(A)||A<0)){throw new p("bodyTimeout must be a positive integer or zero")}if(_!=null&&typeof _!=="function"&&typeof _!=="object"){throw new p("connect must be a function or an object")}if(v!=null&&(!Number.isInteger(v)||v<0)){throw new p("maxRedirections must be a positive number")}if(O!=null&&(!Number.isInteger(O)||O<0)){throw new p("maxRequestsPerClient must be a positive number")}if(k!=null&&(typeof k!=="string"||s.isIP(k)===0)){throw new p("localAddress must be valid string IP address")}if(R!=null&&(!Number.isInteger(R)||R<-1)){throw new p("maxResponseSize must be a positive number")}if(D!=null&&(!Number.isInteger(D)||D<-1)){throw new p("autoSelectFamilyAttemptTimeout must be a positive number")}if(N!=null&&typeof N!=="boolean"){throw new p("allowH2 must be a valid boolean value")}if(P!=null&&(typeof P!=="number"||P<1)){throw new p("maxConcurrentStreams must be a possitive integer, greater than 0")}if(typeof _!=="function"){_=Q({...C,maxCachedSessions:B,allowH2:N,socketPath:y,timeout:u,...a.nodeHasAutoSelectFamily&&S?{autoSelectFamily:S,autoSelectFamilyAttemptTimeout:D}:undefined,..._})}this[Ae]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[Fe({maxRedirections:v})];this[T]=a.parseOrigin(e);this[ne]=_;this[$]=null;this[J]=I!=null?I:1;this[z]=r||o.maxHeaderSize;this[V]=g==null?4e3:g;this[Z]=m==null?6e5:m;this[X]=E==null?1e3:E;this[W]=this[V];this[w]=null;this[le]=k!=null?k:null;this[F]=0;this[G]=0;this[H]=`host: ${this[T].hostname}${this[T].port?`:${this[T].port}`:""}\r\n`;this[te]=A!=null?A:3e5;this[ee]=n!=null?n:3e5;this[re]=b==null?true:b;this[se]=v;this[oe]=O;this[ke]=null;this[de]=R>-1?R:-1;this[pe]="h1";this[ge]=null;this[he]=!N?null:{openStreams:0,maxConcurrentStreams:P!=null?P:100};this[fe]=`${this[T].hostname}${this[T].port?`:${this[T].port}`:""}`;this[U]=[];this[Y]=0;this[q]=0}get pipelining(){return this[J]}set pipelining(e){this[J]=e;resume(this,true)}get[N](){return this[U].length-this[q]}get[D](){return this[q]-this[Y]}get[P](){return this[U].length-this[Y]}get[M](){return!!this[$]&&!this[x]&&!this[$].destroyed}get[O](){const e=this[$];return e&&(e[v]||e[L]||e[S])||this[P]>=(this[J]||1)||this[N]>0}[R](e){connect(this);this.once("connect",e)}[ue](e,t){const r=e.origin||this[T].origin;const n=this[pe]==="h2"?u[me](r,e,t):u[ye](r,e,t);this[U].push(n);if(this[F]){}else if(a.bodyLength(n.body)==null&&a.isIterable(n.body)){this[F]=1;process.nextTick(resume,this)}else{resume(this,true)}if(this[F]&&this[G]!==2&&this[O]){this[G]=2}return this[G]<2}async[ae](){return new Promise((e=>{if(!this[P]){e(null)}else{this[ke]=e}}))}async[ce](e){return new Promise((t=>{const r=this[U].splice(this[q]);for(let t=0;t{if(this[ke]){this[ke]();this[ke]=null}t()};if(this[ge]!=null){a.destroy(this[ge],e);this[ge]=null;this[he]=null}if(!this[$]){queueMicrotask(callback)}else{a.destroy(this[$].on("close",callback),e)}resume(this)}))}}function onHttp2SessionError(e){n(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");this[$][K]=e;onError(this[_],e)}function onHttp2FrameError(e,t,r){const n=new y(`HTTP/2: "frameError" received - type ${e}, code ${t}`);if(r===0){this[$][K]=n;onError(this[_],n)}}function onHttp2SessionEnd(){a.destroy(this,new E("other side closed"));a.destroy(this[$],new E("other side closed"))}function onHTTP2GoAway(e){const t=this[_];const r=new y(`HTTP/2: "GOAWAY" frame received with code ${e}`);t[$]=null;t[ge]=null;if(t.destroyed){n(this[N]===0);const e=t[U].splice(t[Y]);for(let t=0;t0){const e=t[U][t[Y]];t[U][t[Y]++]=null;errorRequest(t,e,r)}t[q]=t[Y];n(t[D]===0);t.emit("disconnect",t[T],[t],r);resume(t)}const Se=r(52824);const Fe=r(64415);const De=Buffer.alloc(0);async function lazyllhttp(){const e=process.env.JEST_WORKER_ID?r(63870):undefined;let t;try{t=await WebAssembly.compile(Buffer.from(r(53434),"base64"))}catch(n){t=await WebAssembly.compile(Buffer.from(e||r(63870),"base64"))}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(e,t,r)=>0,wasm_on_status:(e,t,r)=>{n.strictEqual(Le.ptr,e);const s=t-xe+Ue.byteOffset;return Le.onStatus(new Oe(Ue.buffer,s,r))||0},wasm_on_message_begin:e=>{n.strictEqual(Le.ptr,e);return Le.onMessageBegin()||0},wasm_on_header_field:(e,t,r)=>{n.strictEqual(Le.ptr,e);const s=t-xe+Ue.byteOffset;return Le.onHeaderField(new Oe(Ue.buffer,s,r))||0},wasm_on_header_value:(e,t,r)=>{n.strictEqual(Le.ptr,e);const s=t-xe+Ue.byteOffset;return Le.onHeaderValue(new Oe(Ue.buffer,s,r))||0},wasm_on_headers_complete:(e,t,r,s)=>{n.strictEqual(Le.ptr,e);return Le.onHeadersComplete(t,Boolean(r),Boolean(s))||0},wasm_on_body:(e,t,r)=>{n.strictEqual(Le.ptr,e);const s=t-xe+Ue.byteOffset;return Le.onBody(new Oe(Ue.buffer,s,r))||0},wasm_on_message_complete:e=>{n.strictEqual(Le.ptr,e);return Le.onMessageComplete()||0}}})}let Ne=null;let Pe=lazyllhttp();Pe.catch();let Le=null;let Ue=null;let Me=0;let xe=null;const Ge=1;const je=2;const Ve=3;class Parser{constructor(e,t,{exports:r}){n(Number.isFinite(e[z])&&e[z]>0);this.llhttp=r;this.ptr=this.llhttp.llhttp_alloc(Se.TYPE.RESPONSE);this.client=e;this.socket=t;this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.statusCode=null;this.statusText="";this.upgrade=false;this.headers=[];this.headersSize=0;this.headersMaxSize=e[z];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this);this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=e[de]}setTimeout(e,t){this.timeoutType=t;if(e!==this.timeoutValue){c.clearTimeout(this.timeout);if(e){this.timeout=c.setTimeout(onParserTimeout,e,this);if(this.timeout.unref){this.timeout.unref()}}else{this.timeout=null}this.timeoutValue=e}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}}resume(){if(this.socket.destroyed||!this.paused){return}n(this.ptr!=null);n(Le==null);this.llhttp.llhttp_resume(this.ptr);n(this.timeoutType===je);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||De);this.readMore()}readMore(){while(!this.paused&&this.ptr){const e=this.socket.read();if(e===null){break}this.execute(e)}}execute(e){n(this.ptr!=null);n(Le==null);n(!this.paused);const{socket:t,llhttp:r}=this;if(e.length>Me){if(xe){r.free(xe)}Me=Math.ceil(e.length/4096)*4096;xe=r.malloc(Me)}new Uint8Array(r.memory.buffer,xe,Me).set(e);try{let n;try{Ue=e;Le=this;n=r.llhttp_execute(this.ptr,xe,e.length)}catch(e){throw e}finally{Le=null;Ue=null}const s=r.llhttp_get_error_pos(this.ptr)-xe;if(n===Se.ERROR.PAUSED_UPGRADE){this.onUpgrade(e.slice(s))}else if(n===Se.ERROR.PAUSED){this.paused=true;t.unshift(e.slice(s))}else if(n!==Se.ERROR.OK){const t=r.llhttp_get_error_reason(this.ptr);let o="";if(t){const e=new Uint8Array(r.memory.buffer,t).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,t,e).toString()+")"}throw new C(o,Se.ERROR[n],e.slice(s))}}catch(e){a.destroy(t,e)}}destroy(){n(this.ptr!=null);n(Le==null);this.llhttp.llhttp_free(this.ptr);this.ptr=null;c.clearTimeout(this.timeout);this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.paused=false}onStatus(e){this.statusText=e.toString()}onMessageBegin(){const{socket:e,client:t}=this;if(e.destroyed){return-1}const r=t[U][t[Y]];if(!r){return-1}}onHeaderField(e){const t=this.headers.length;if((t&1)===0){this.headers.push(e)}else{this.headers[t-1]=Buffer.concat([this.headers[t-1],e])}this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;if((t&1)===1){this.headers.push(e);t+=1}else{this.headers[t-1]=Buffer.concat([this.headers[t-1],e])}const r=this.headers[t-2];if(r.length===10&&r.toString().toLowerCase()==="keep-alive"){this.keepAlive+=e.toString()}else if(r.length===10&&r.toString().toLowerCase()==="connection"){this.connection+=e.toString()}else if(r.length===14&&r.toString().toLowerCase()==="content-length"){this.contentLength+=e.toString()}this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e;if(this.headersSize>=this.headersMaxSize){a.destroy(this.socket,new m)}}onUpgrade(e){const{upgrade:t,client:r,socket:s,headers:o,statusCode:i}=this;n(t);const c=r[U][r[Y]];n(c);n(!s.destroyed);n(s===r[$]);n(!this.paused);n(c.upgrade||c.method==="CONNECT");this.statusCode=null;this.statusText="";this.shouldKeepAlive=null;n(this.headers.length%2===0);this.headers=[];this.headersSize=0;s.unshift(e);s[k].destroy();s[k]=null;s[_]=null;s[K]=null;s.removeListener("error",onSocketError).removeListener("readable",onSocketReadable).removeListener("end",onSocketEnd).removeListener("close",onSocketClose);r[$]=null;r[U][r[Y]++]=null;r.emit("disconnect",r[T],[r],new y("upgrade"));try{c.onUpgrade(i,o,s)}catch(e){a.destroy(s,e)}resume(r)}onHeadersComplete(e,t,r){const{client:s,socket:o,headers:i,statusText:c}=this;if(o.destroyed){return-1}const u=s[U][s[Y]];if(!u){return-1}n(!this.upgrade);n(this.statusCode<200);if(e===100){a.destroy(o,new E("bad response",a.getSocketInfo(o)));return-1}if(t&&!u.upgrade){a.destroy(o,new E("bad upgrade",a.getSocketInfo(o)));return-1}n.strictEqual(this.timeoutType,Ge);this.statusCode=e;this.shouldKeepAlive=r||u.method==="HEAD"&&!o[v]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const e=u.bodyTimeout!=null?u.bodyTimeout:s[te];this.setTimeout(e,je)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(u.method==="CONNECT"){n(s[D]===1);this.upgrade=true;return 2}if(t){n(s[D]===1);this.upgrade=true;return 2}n(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&s[J]){const e=this.keepAlive?a.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){const t=Math.min(e-s[X],s[Z]);if(t<=0){o[v]=true}else{s[W]=t}}else{s[W]=s[V]}}else{o[v]=true}const A=u.onHeaders(e,i,this.resume,c)===false;if(u.aborted){return-1}if(u.method==="HEAD"){return 1}if(e<200){return 1}if(o[S]){o[S]=false;resume(s)}return A?Se.ERROR.PAUSED:0}onBody(e){const{client:t,socket:r,statusCode:s,maxResponseSize:o}=this;if(r.destroyed){return-1}const i=t[U][t[Y]];n(i);n.strictEqual(this.timeoutType,je);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}n(s>=200);if(o>-1&&this.bytesRead+e.length>o){a.destroy(r,new b);return-1}this.bytesRead+=e.length;if(i.onData(e)===false){return Se.ERROR.PAUSED}}onMessageComplete(){const{client:e,socket:t,statusCode:r,upgrade:s,headers:o,contentLength:i,bytesRead:c,shouldKeepAlive:u}=this;if(t.destroyed&&(!r||u)){return-1}if(s){return}const A=e[U][e[Y]];n(A);n(r>=100);this.statusCode=null;this.statusText="";this.bytesRead=0;this.contentLength="";this.keepAlive="";this.connection="";n(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(r<200){return}if(A.method!=="HEAD"&&i&&c!==parseInt(i,10)){a.destroy(t,new d);return-1}A.onComplete(o);e[U][e[Y]++]=null;if(t[L]){n.strictEqual(e[D],0);a.destroy(t,new y("reset"));return Se.ERROR.PAUSED}else if(!u){a.destroy(t,new y("reset"));return Se.ERROR.PAUSED}else if(t[v]&&e[D]===0){a.destroy(t,new y("reset"));return Se.ERROR.PAUSED}else if(e[J]===1){setImmediate(resume,e)}else{resume(e)}}}function onParserTimeout(e){const{socket:t,timeoutType:r,client:s}=e;if(r===Ge){if(!t[L]||t.writableNeedDrain||s[D]>1){n(!e.paused,"cannot be paused while waiting for headers");a.destroy(t,new h)}}else if(r===je){if(!e.paused){a.destroy(t,new I)}}else if(r===Ve){n(s[D]===0&&s[W]);a.destroy(t,new y("socket idle timeout"))}}function onSocketReadable(){const{[k]:e}=this;if(e){e.readMore()}}function onSocketError(e){const{[_]:t,[k]:r}=this;n(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");if(t[pe]!=="h2"){if(e.code==="ECONNRESET"&&r.statusCode&&!r.shouldKeepAlive){r.onMessageComplete();return}}this[K]=e;onError(this[_],e)}function onError(e,t){if(e[D]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){n(e[q]===e[Y]);const r=e[U].splice(e[Y]);for(let n=0;n0&&r.code!=="UND_ERR_INFO"){const t=e[U][e[Y]];e[U][e[Y]++]=null;errorRequest(e,t,r)}e[q]=e[Y];n(e[D]===0);e.emit("disconnect",e[T],[e],r);resume(e)}async function connect(e){n(!e[x]);n(!e[$]);let{host:t,hostname:r,protocol:o,port:i}=e[T];if(r[0]==="["){const e=r.indexOf("]");n(e!==-1);const t=r.substring(1,e);n(s.isIP(t));r=t}e[x]=true;if(Re.beforeConnect.hasSubscribers){Re.beforeConnect.publish({connectParams:{host:t,hostname:r,protocol:o,port:i,servername:e[w],localAddress:e[le]},connector:e[ne]})}try{const s=await new Promise(((n,s)=>{e[ne]({host:t,hostname:r,protocol:o,port:i,servername:e[w],localAddress:e[le]},((e,t)=>{if(e){s(e)}else{n(t)}}))}));if(e.destroyed){a.destroy(s.on("error",(()=>{})),new B);return}e[x]=false;n(s);const c=s.alpnProtocol==="h2";if(c){if(!_e){_e=true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const t=Ie.connect(e[T],{createConnection:()=>s,peerMaxConcurrentStreams:e[he].maxConcurrentStreams});e[pe]="h2";t[_]=e;t[$]=s;t.on("error",onHttp2SessionError);t.on("frameError",onHttp2FrameError);t.on("end",onHttp2SessionEnd);t.on("goaway",onHTTP2GoAway);t.on("close",onSocketClose);t.unref();e[ge]=t;s[ge]=t}else{if(!Ne){Ne=await Pe;Pe=null}s[j]=false;s[L]=false;s[v]=false;s[S]=false;s[k]=new Parser(e,s,Ne)}s[ie]=0;s[oe]=e[oe];s[_]=e;s[K]=null;s.on("error",onSocketError).on("readable",onSocketReadable).on("end",onSocketEnd).on("close",onSocketClose);e[$]=s;if(Re.connected.hasSubscribers){Re.connected.publish({connectParams:{host:t,hostname:r,protocol:o,port:i,servername:e[w],localAddress:e[le]},connector:e[ne],socket:s})}e.emit("connect",e[T],[e])}catch(s){if(e.destroyed){return}e[x]=false;if(Re.connectError.hasSubscribers){Re.connectError.publish({connectParams:{host:t,hostname:r,protocol:o,port:i,servername:e[w],localAddress:e[le]},connector:e[ne],error:s})}if(s.code==="ERR_TLS_CERT_ALTNAME_INVALID"){n(e[D]===0);while(e[N]>0&&e[U][e[q]].servername===e[w]){const t=e[U][e[q]++];errorRequest(e,t,s)}}else{onError(e,s)}e.emit("connectionError",e[T],[e],s)}resume(e)}function emitDrain(e){e[G]=0;e.emit("drain",e[T],[e])}function resume(e,t){if(e[F]===2){return}e[F]=2;_resume(e,t);e[F]=0;if(e[Y]>256){e[U].splice(0,e[Y]);e[q]-=e[Y];e[Y]=0}}function _resume(e,t){while(true){if(e.destroyed){n(e[N]===0);return}if(e[ke]&&!e[P]){e[ke]();e[ke]=null;return}const r=e[$];if(r&&!r.destroyed&&r.alpnProtocol!=="h2"){if(e[P]===0){if(!r[j]&&r.unref){r.unref();r[j]=true}}else if(r[j]&&r.ref){r.ref();r[j]=false}if(e[P]===0){if(r[k].timeoutType!==Ve){r[k].setTimeout(e[W],Ve)}}else if(e[D]>0&&r[k].statusCode<200){if(r[k].timeoutType!==Ge){const t=e[U][e[Y]];const n=t.headersTimeout!=null?t.headersTimeout:e[ee];r[k].setTimeout(n,Ge)}}}if(e[O]){e[G]=2}else if(e[G]===2){if(t){e[G]=1;process.nextTick(emitDrain,e)}else{emitDrain(e)}continue}if(e[N]===0){return}if(e[D]>=(e[J]||1)){return}const s=e[U][e[q]];if(e[T].protocol==="https:"&&e[w]!==s.servername){if(e[D]>0){return}e[w]=s.servername;if(r&&r.servername!==s.servername){a.destroy(r,new y("servername changed"));return}}if(e[x]){return}if(!r&&!e[ge]){connect(e);return}if(r.destroyed||r[L]||r[v]||r[S]){return}if(e[D]>0&&!s.idempotent){return}if(e[D]>0&&(s.upgrade||s.method==="CONNECT")){return}if(e[D]>0&&a.bodyLength(s.body)!==0&&(a.isStream(s.body)||a.isAsyncIterable(s.body))){return}if(!s.aborted&&write(e,s)){e[q]++}else{e[U].splice(e[q],1)}}}function shouldSendContentLength(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function write(e,t){if(e[pe]==="h2"){writeH2(e,e[ge],t);return}const{body:r,method:s,path:o,host:i,upgrade:c,headers:u,blocking:A,reset:d}=t;const p=s==="PUT"||s==="POST"||s==="PATCH";if(r&&typeof r.read==="function"){r.read(0)}const h=a.bodyLength(r);let m=h;if(m===null){m=t.contentLength}if(m===0&&!p){m=null}if(shouldSendContentLength(s)&&m>0&&t.contentLength!==null&&t.contentLength!==m){if(e[re]){errorRequest(e,t,new l);return false}process.emitWarning(new l)}const E=e[$];try{t.onConnect((r=>{if(t.aborted||t.completed){return}errorRequest(e,t,r||new g);a.destroy(E,new y("aborted"))}))}catch(r){errorRequest(e,t,r)}if(t.aborted){return false}if(s==="HEAD"){E[v]=true}if(c||s==="CONNECT"){E[v]=true}if(d!=null){E[v]=d}if(e[oe]&&E[ie]++>=e[oe]){E[v]=true}if(A){E[S]=true}let I=`${s} ${o} HTTP/1.1\r\n`;if(typeof i==="string"){I+=`host: ${i}\r\n`}else{I+=e[H]}if(c){I+=`connection: upgrade\r\nupgrade: ${c}\r\n`}else if(e[J]&&!E[v]){I+="connection: keep-alive\r\n"}else{I+="connection: close\r\n"}if(u){I+=u}if(Re.sendHeaders.hasSubscribers){Re.sendHeaders.publish({request:t,headers:I,socket:E})}if(!r||h===0){if(m===0){E.write(`${I}content-length: 0\r\n\r\n`,"latin1")}else{n(m===null,"no body must not have content length");E.write(`${I}\r\n`,"latin1")}t.onRequestSent()}else if(a.isBuffer(r)){n(m===r.byteLength,"buffer body must have content length");E.cork();E.write(`${I}content-length: ${m}\r\n\r\n`,"latin1");E.write(r);E.uncork();t.onBodySent(r);t.onRequestSent();if(!p){E[v]=true}}else if(a.isBlobLike(r)){if(typeof r.stream==="function"){writeIterable({body:r.stream(),client:e,request:t,socket:E,contentLength:m,header:I,expectsPayload:p})}else{writeBlob({body:r,client:e,request:t,socket:E,contentLength:m,header:I,expectsPayload:p})}}else if(a.isStream(r)){writeStream({body:r,client:e,request:t,socket:E,contentLength:m,header:I,expectsPayload:p})}else if(a.isIterable(r)){writeIterable({body:r,client:e,request:t,socket:E,contentLength:m,header:I,expectsPayload:p})}else{n(false)}return true}function writeH2(e,t,r){const{body:s,method:o,path:i,host:c,upgrade:A,expectContinue:d,signal:p,headers:h}=r;let m;if(typeof h==="string")m=u[Ee](h.trim());else m=h;if(A){errorRequest(e,r,new Error("Upgrade not supported for H2"));return false}try{r.onConnect((t=>{if(r.aborted||r.completed){return}errorRequest(e,r,t||new g)}))}catch(t){errorRequest(e,r,t)}if(r.aborted){return false}let E;const I=e[he];m[Ce]=c||e[fe];m[be]=o;if(o==="CONNECT"){t.ref();E=t.request(m,{endStream:false,signal:p});if(E.id&&!E.pending){r.onUpgrade(null,null,E);++I.openStreams}else{E.once("ready",(()=>{r.onUpgrade(null,null,E);++I.openStreams}))}E.once("close",(()=>{I.openStreams-=1;if(I.openStreams===0)t.unref()}));return true}m[Be]=i;m[Qe]="https";const C=o==="PUT"||o==="POST"||o==="PATCH";if(s&&typeof s.read==="function"){s.read(0)}let b=a.bodyLength(s);if(b==null){b=r.contentLength}if(b===0||!C){b=null}if(shouldSendContentLength(o)&&b>0&&r.contentLength!=null&&r.contentLength!==b){if(e[re]){errorRequest(e,r,new l);return false}process.emitWarning(new l)}if(b!=null){n(s,"no body must not have content length");m[Te]=`${b}`}t.ref();const B=o==="GET"||o==="HEAD";if(d){m[ve]="100-continue";E=t.request(m,{endStream:B,signal:p});E.once("continue",writeBodyH2)}else{E=t.request(m,{endStream:B,signal:p});writeBodyH2()}++I.openStreams;E.once("response",(e=>{const{[we]:t,...n}=e;if(r.onHeaders(Number(t),n,E.resume.bind(E),"")===false){E.pause()}}));E.once("end",(()=>{r.onComplete([])}));E.on("data",(e=>{if(r.onData(e)===false){E.pause()}}));E.once("close",(()=>{I.openStreams-=1;if(I.openStreams===0){t.unref()}}));E.once("error",(function(t){if(e[ge]&&!e[ge].destroyed&&!this.closed&&!this.destroyed){I.streams-=1;a.destroy(E,t)}}));E.once("frameError",((t,n)=>{const s=new y(`HTTP/2: "frameError" received - type ${t}, code ${n}`);errorRequest(e,r,s);if(e[ge]&&!e[ge].destroyed&&!this.closed&&!this.destroyed){I.streams-=1;a.destroy(E,s)}}));return true;function writeBodyH2(){if(!s){r.onRequestSent()}else if(a.isBuffer(s)){n(b===s.byteLength,"buffer body must have content length");E.cork();E.write(s);E.uncork();E.end();r.onBodySent(s);r.onRequestSent()}else if(a.isBlobLike(s)){if(typeof s.stream==="function"){writeIterable({client:e,request:r,contentLength:b,h2stream:E,expectsPayload:C,body:s.stream(),socket:e[$],header:""})}else{writeBlob({body:s,client:e,request:r,contentLength:b,expectsPayload:C,h2stream:E,header:"",socket:e[$]})}}else if(a.isStream(s)){writeStream({body:s,client:e,request:r,contentLength:b,expectsPayload:C,socket:e[$],h2stream:E,header:""})}else if(a.isIterable(s)){writeIterable({body:s,client:e,request:r,contentLength:b,expectsPayload:C,header:"",h2stream:E,socket:e[$]})}else{n(false)}}}function writeStream({h2stream:e,body:t,client:r,request:s,socket:o,contentLength:c,header:u,expectsPayload:A}){n(c!==0||r[D]===0,"stream body cannot be pipelined");if(r[pe]==="h2"){const p=i(t,e,(r=>{if(r){a.destroy(t,r);a.destroy(e,r)}else{s.onRequestSent()}}));p.on("data",onPipeData);p.once("end",(()=>{p.removeListener("data",onPipeData);a.destroy(p)}));function onPipeData(e){s.onBodySent(e)}return}let l=false;const d=new AsyncWriter({socket:o,request:s,contentLength:c,client:r,expectsPayload:A,header:u});const onData=function(e){if(l){return}try{if(!d.write(e)&&this.pause){this.pause()}}catch(e){a.destroy(this,e)}};const onDrain=function(){if(l){return}if(t.resume){t.resume()}};const onAbort=function(){if(l){return}const e=new g;queueMicrotask((()=>onFinished(e)))};const onFinished=function(e){if(l){return}l=true;n(o.destroyed||o[L]&&r[D]<=1);o.off("drain",onDrain).off("error",onFinished);t.removeListener("data",onData).removeListener("end",onFinished).removeListener("error",onFinished).removeListener("close",onAbort);if(!e){try{d.end()}catch(t){e=t}}d.destroy(e);if(e&&(e.code!=="UND_ERR_INFO"||e.message!=="reset")){a.destroy(t,e)}else{a.destroy(t)}};t.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onAbort);if(t.resume){t.resume()}o.on("drain",onDrain).on("error",onFinished)}async function writeBlob({h2stream:e,body:t,client:r,request:s,socket:o,contentLength:i,header:c,expectsPayload:u}){n(i===t.size,"blob body must have content length");const A=r[pe]==="h2";try{if(i!=null&&i!==t.size){throw new l}const n=Buffer.from(await t.arrayBuffer());if(A){e.cork();e.write(n);e.uncork()}else{o.cork();o.write(`${c}content-length: ${i}\r\n\r\n`,"latin1");o.write(n);o.uncork()}s.onBodySent(n);s.onRequestSent();if(!u){o[v]=true}resume(r)}catch(t){a.destroy(A?e:o,t)}}async function writeIterable({h2stream:e,body:t,client:r,request:s,socket:o,contentLength:i,header:a,expectsPayload:c}){n(i!==0||r[D]===0,"iterator body cannot be pipelined");let u=null;function onDrain(){if(u){const e=u;u=null;e()}}const waitForDrain=()=>new Promise(((e,t)=>{n(u===null);if(o[K]){t(o[K])}else{u=e}}));if(r[pe]==="h2"){e.on("close",onDrain).on("drain",onDrain);try{for await(const r of t){if(o[K]){throw o[K]}const t=e.write(r);s.onBodySent(r);if(!t){await waitForDrain()}}}catch(t){e.destroy(t)}finally{s.onRequestSent();e.end();e.off("close",onDrain).off("drain",onDrain)}return}o.on("close",onDrain).on("drain",onDrain);const A=new AsyncWriter({socket:o,request:s,contentLength:i,client:r,expectsPayload:c,header:a});try{for await(const e of t){if(o[K]){throw o[K]}if(!A.write(e)){await waitForDrain()}}A.end()}catch(e){A.destroy(e)}finally{o.off("close",onDrain).off("drain",onDrain)}}class AsyncWriter{constructor({socket:e,request:t,contentLength:r,client:n,expectsPayload:s,header:o}){this.socket=e;this.request=t;this.contentLength=r;this.client=n;this.bytesWritten=0;this.expectsPayload=s;this.header=o;e[L]=true}write(e){const{socket:t,request:r,contentLength:n,client:s,bytesWritten:o,expectsPayload:i,header:a}=this;if(t[K]){throw t[K]}if(t.destroyed){return false}const c=Buffer.byteLength(e);if(!c){return true}if(n!==null&&o+c>n){if(s[re]){throw new l}process.emitWarning(new l)}t.cork();if(o===0){if(!i){t[v]=true}if(n===null){t.write(`${a}transfer-encoding: chunked\r\n`,"latin1")}else{t.write(`${a}content-length: ${n}\r\n\r\n`,"latin1")}}if(n===null){t.write(`\r\n${c.toString(16)}\r\n`,"latin1")}this.bytesWritten+=c;const u=t.write(e);t.uncork();r.onBodySent(e);if(!u){if(t[k].timeout&&t[k].timeoutType===Ge){if(t[k].timeout.refresh){t[k].timeout.refresh()}}}return u}end(){const{socket:e,contentLength:t,client:r,bytesWritten:n,expectsPayload:s,header:o,request:i}=this;i.onRequestSent();e[L]=false;if(e[K]){throw e[K]}if(e.destroyed){return}if(n===0){if(s){e.write(`${o}content-length: 0\r\n\r\n`,"latin1")}else{e.write(`${o}\r\n`,"latin1")}}else if(t===null){e.write("\r\n0\r\n\r\n","latin1")}if(t!==null&&n!==t){if(r[re]){throw new l}else{process.emitWarning(new l)}}if(e[k].timeout&&e[k].timeoutType===Ge){if(e[k].timeout.refresh){e[k].timeout.refresh()}}resume(r)}destroy(e){const{socket:t,client:r}=this;t[L]=false;if(e){n(r[D]<=1,"pipeline should only contain this request");a.destroy(t,e)}}}function errorRequest(e,t,r){try{t.onError(r);n(t.aborted)}catch(r){e.emit("error",r)}}e.exports=Client},13194:(e,t,r)=>{const{kConnected:n,kSize:s}=r(36443);class CompatWeakRef{constructor(e){this.value=e}deref(){return this.value[n]===0&&this.value[s]===0?undefined:this.value}}class CompatFinalizer{constructor(e){this.finalizer=e}register(e,t){if(e.on){e.on("disconnect",(()=>{if(e[n]===0&&e[s]===0){this.finalizer(t)}}))}}}e.exports=function(){if(process.env.NODE_V8_COVERAGE){return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}}return{WeakRef:global.WeakRef||CompatWeakRef,FinalizationRegistry:global.FinalizationRegistry||CompatFinalizer}}},19237:e=>{const t=1024;const r=4096;e.exports={maxAttributeValueSize:t,maxNameValuePairSize:r}},53168:(e,t,r)=>{const{parseSetCookie:n}=r(8915);const{stringify:s,getHeadersList:o}=r(3834);const{webidl:i}=r(74222);const{Headers:a}=r(26349);function getCookies(e){i.argumentLengthCheck(arguments,1,{header:"getCookies"});i.brandCheck(e,a,{strict:false});const t=e.get("cookie");const r={};if(!t){return r}for(const e of t.split(";")){const[t,...n]=e.split("=");r[t.trim()]=n.join("=")}return r}function deleteCookie(e,t,r){i.argumentLengthCheck(arguments,2,{header:"deleteCookie"});i.brandCheck(e,a,{strict:false});t=i.converters.DOMString(t);r=i.converters.DeleteCookieAttributes(r);setCookie(e,{name:t,value:"",expires:new Date(0),...r})}function getSetCookies(e){i.argumentLengthCheck(arguments,1,{header:"getSetCookies"});i.brandCheck(e,a,{strict:false});const t=o(e).cookies;if(!t){return[]}return t.map((e=>n(Array.isArray(e)?e[1]:e)))}function setCookie(e,t){i.argumentLengthCheck(arguments,2,{header:"setCookie"});i.brandCheck(e,a,{strict:false});t=i.converters.Cookie(t);const r=s(t);if(r){e.append("Set-Cookie",s(t))}}i.converters.DeleteCookieAttributes=i.dictionaryConverter([{converter:i.nullableConverter(i.converters.DOMString),key:"path",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"domain",defaultValue:null}]);i.converters.Cookie=i.dictionaryConverter([{converter:i.converters.DOMString,key:"name"},{converter:i.converters.DOMString,key:"value"},{converter:i.nullableConverter((e=>{if(typeof e==="number"){return i.converters["unsigned long long"](e)}return new Date(e)})),key:"expires",defaultValue:null},{converter:i.nullableConverter(i.converters["long long"]),key:"maxAge",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"domain",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"path",defaultValue:null},{converter:i.nullableConverter(i.converters.boolean),key:"secure",defaultValue:null},{converter:i.nullableConverter(i.converters.boolean),key:"httpOnly",defaultValue:null},{converter:i.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:i.sequenceConverter(i.converters.DOMString),key:"unparsed",defaultValue:[]}]);e.exports={getCookies:getCookies,deleteCookie:deleteCookie,getSetCookies:getSetCookies,setCookie:setCookie}},8915:(e,t,r)=>{const{maxNameValuePairSize:n,maxAttributeValueSize:s}=r(19237);const{isCTLExcludingHtab:o}=r(3834);const{collectASequenceOfCodePointsFast:i}=r(94322);const a=r(42613);function parseSetCookie(e){if(o(e)){return null}let t="";let r="";let s="";let a="";if(e.includes(";")){const n={position:0};t=i(";",e,n);r=e.slice(n.position)}else{t=e}if(!t.includes("=")){a=t}else{const e={position:0};s=i("=",t,e);a=t.slice(e.position+1)}s=s.trim();a=a.trim();if(s.length+a.length>n){return null}return{name:s,value:a,...parseUnparsedAttributes(r)}}function parseUnparsedAttributes(e,t={}){if(e.length===0){return t}a(e[0]===";");e=e.slice(1);let r="";if(e.includes(";")){r=i(";",e,{position:0});e=e.slice(r.length)}else{r=e;e=""}let n="";let o="";if(r.includes("=")){const e={position:0};n=i("=",r,e);o=r.slice(e.position+1)}else{n=r}n=n.trim();o=o.trim();if(o.length>s){return parseUnparsedAttributes(e,t)}const c=n.toLowerCase();if(c==="expires"){const e=new Date(o);t.expires=e}else if(c==="max-age"){const r=o.charCodeAt(0);if((r<48||r>57)&&o[0]!=="-"){return parseUnparsedAttributes(e,t)}if(!/^\d+$/.test(o)){return parseUnparsedAttributes(e,t)}const n=Number(o);t.maxAge=n}else if(c==="domain"){let e=o;if(e[0]==="."){e=e.slice(1)}e=e.toLowerCase();t.domain=e}else if(c==="path"){let e="";if(o.length===0||o[0]!=="/"){e="/"}else{e=o}t.path=e}else if(c==="secure"){t.secure=true}else if(c==="httponly"){t.httpOnly=true}else if(c==="samesite"){let e="Default";const r=o.toLowerCase();if(r.includes("none")){e="None"}if(r.includes("strict")){e="Strict"}if(r.includes("lax")){e="Lax"}t.sameSite=e}else{t.unparsed??=[];t.unparsed.push(`${n}=${o}`)}return parseUnparsedAttributes(e,t)}e.exports={parseSetCookie:parseSetCookie,parseUnparsedAttributes:parseUnparsedAttributes}},3834:(e,t,r)=>{const n=r(42613);const{kHeadersList:s}=r(36443);function isCTLExcludingHtab(e){if(e.length===0){return false}for(const t of e){const e=t.charCodeAt(0);if(e>=0||e<=8||(e>=10||e<=31)||e===127){return false}}}function validateCookieName(e){for(const t of e){const e=t.charCodeAt(0);if(e<=32||e>127||t==="("||t===")"||t===">"||t==="<"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"){throw new Error("Invalid cookie name")}}}function validateCookieValue(e){for(const t of e){const e=t.charCodeAt(0);if(e<33||e===34||e===44||e===59||e===92||e>126){throw new Error("Invalid header value")}}}function validateCookiePath(e){for(const t of e){const e=t.charCodeAt(0);if(e<33||t===";"){throw new Error("Invalid cookie path")}}}function validateCookieDomain(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-")){throw new Error("Invalid cookie domain")}}function toIMFDate(e){if(typeof e==="number"){e=new Date(e)}const t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const n=t[e.getUTCDay()];const s=e.getUTCDate().toString().padStart(2,"0");const o=r[e.getUTCMonth()];const i=e.getUTCFullYear();const a=e.getUTCHours().toString().padStart(2,"0");const c=e.getUTCMinutes().toString().padStart(2,"0");const u=e.getUTCSeconds().toString().padStart(2,"0");return`${n}, ${s} ${o} ${i} ${a}:${c}:${u} GMT`}function validateCookieMaxAge(e){if(e<0){throw new Error("Invalid cookie max-age")}}function stringify(e){if(e.name.length===0){return null}validateCookieName(e.name);validateCookieValue(e.value);const t=[`${e.name}=${e.value}`];if(e.name.startsWith("__Secure-")){e.secure=true}if(e.name.startsWith("__Host-")){e.secure=true;e.domain=null;e.path="/"}if(e.secure){t.push("Secure")}if(e.httpOnly){t.push("HttpOnly")}if(typeof e.maxAge==="number"){validateCookieMaxAge(e.maxAge);t.push(`Max-Age=${e.maxAge}`)}if(e.domain){validateCookieDomain(e.domain);t.push(`Domain=${e.domain}`)}if(e.path){validateCookiePath(e.path);t.push(`Path=${e.path}`)}if(e.expires&&e.expires.toString()!=="Invalid Date"){t.push(`Expires=${toIMFDate(e.expires)}`)}if(e.sameSite){t.push(`SameSite=${e.sameSite}`)}for(const r of e.unparsed){if(!r.includes("=")){throw new Error("Invalid unparsed")}const[e,...n]=r.split("=");t.push(`${e.trim()}=${n.join("=")}`)}return t.join("; ")}let o;function getHeadersList(e){if(e[s]){return e[s]}if(!o){o=Object.getOwnPropertySymbols(e).find((e=>e.description==="headers list"));n(o,"Headers cannot be parsed")}const t=e[o];n(t);return t}e.exports={isCTLExcludingHtab:isCTLExcludingHtab,stringify:stringify,getHeadersList:getHeadersList}},59136:(e,t,r)=>{const n=r(69278);const s=r(42613);const o=r(3440);const{InvalidArgumentError:i,ConnectTimeoutError:a}=r(68707);let c;let u;if(global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE){u=class WeakSessionCache{constructor(e){this._maxCachedSessions=e;this._sessionCache=new Map;this._sessionRegistry=new global.FinalizationRegistry((e=>{if(this._sessionCache.size=this._maxCachedSessions){const{value:e}=this._sessionCache.keys().next();this._sessionCache.delete(e)}this._sessionCache.set(e,t)}}}function buildConnector({allowH2:e,maxCachedSessions:t,socketPath:a,timeout:A,...l}){if(t!=null&&(!Number.isInteger(t)||t<0)){throw new i("maxCachedSessions must be a positive integer or zero")}const d={path:a,...l};const p=new u(t==null?100:t);A=A==null?1e4:A;e=e!=null?e:false;return function connect({hostname:t,host:i,protocol:a,port:u,servername:l,localAddress:g,httpSocket:h},m){let E;if(a==="https:"){if(!c){c=r(64756)}l=l||d.servername||o.getServerName(i)||null;const n=l||t;const a=p.get(n)||null;s(n);E=c.connect({highWaterMark:16384,...d,servername:l,session:a,localAddress:g,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:h,port:u||443,host:t});E.on("session",(function(e){p.set(n,e)}))}else{s(!h,"httpSocket can only be sent on TLS update");E=n.connect({highWaterMark:64*1024,...d,localAddress:g,port:u||80,host:t})}if(d.keepAlive==null||d.keepAlive){const e=d.keepAliveInitialDelay===undefined?6e4:d.keepAliveInitialDelay;E.setKeepAlive(true,e)}const y=setupTimeout((()=>onConnectTimeout(E)),A);E.setNoDelay(true).once(a==="https:"?"secureConnect":"connect",(function(){y();if(m){const e=m;m=null;e(null,this)}})).on("error",(function(e){y();if(m){const t=m;m=null;t(e)}}));return E}}function setupTimeout(e,t){if(!t){return()=>{}}let r=null;let n=null;const s=setTimeout((()=>{r=setImmediate((()=>{if(process.platform==="win32"){n=setImmediate((()=>e()))}else{e()}}))}),t);return()=>{clearTimeout(s);clearImmediate(r);clearImmediate(n)}}function onConnectTimeout(e){o.destroy(e,new a)}e.exports=buildConnector},10735:e=>{const t={};const r=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{class UndiciError extends Error{constructor(e){super(e);this.name="UndiciError";this.code="UND_ERR"}}class ConnectTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ConnectTimeoutError);this.name="ConnectTimeoutError";this.message=e||"Connect Timeout Error";this.code="UND_ERR_CONNECT_TIMEOUT"}}class HeadersTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersTimeoutError);this.name="HeadersTimeoutError";this.message=e||"Headers Timeout Error";this.code="UND_ERR_HEADERS_TIMEOUT"}}class HeadersOverflowError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersOverflowError);this.name="HeadersOverflowError";this.message=e||"Headers Overflow Error";this.code="UND_ERR_HEADERS_OVERFLOW"}}class BodyTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,BodyTimeoutError);this.name="BodyTimeoutError";this.message=e||"Body Timeout Error";this.code="UND_ERR_BODY_TIMEOUT"}}class ResponseStatusCodeError extends UndiciError{constructor(e,t,r,n){super(e);Error.captureStackTrace(this,ResponseStatusCodeError);this.name="ResponseStatusCodeError";this.message=e||"Response Status Code Error";this.code="UND_ERR_RESPONSE_STATUS_CODE";this.body=n;this.status=t;this.statusCode=t;this.headers=r}}class InvalidArgumentError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidArgumentError);this.name="InvalidArgumentError";this.message=e||"Invalid Argument Error";this.code="UND_ERR_INVALID_ARG"}}class InvalidReturnValueError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidReturnValueError);this.name="InvalidReturnValueError";this.message=e||"Invalid Return Value Error";this.code="UND_ERR_INVALID_RETURN_VALUE"}}class RequestAbortedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestAbortedError);this.name="AbortError";this.message=e||"Request aborted";this.code="UND_ERR_ABORTED"}}class InformationalError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InformationalError);this.name="InformationalError";this.message=e||"Request information";this.code="UND_ERR_INFO"}}class RequestContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestContentLengthMismatchError);this.name="RequestContentLengthMismatchError";this.message=e||"Request body length does not match content-length header";this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}}class ResponseContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseContentLengthMismatchError);this.name="ResponseContentLengthMismatchError";this.message=e||"Response body length does not match content-length header";this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}}class ClientDestroyedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientDestroyedError);this.name="ClientDestroyedError";this.message=e||"The client is destroyed";this.code="UND_ERR_DESTROYED"}}class ClientClosedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientClosedError);this.name="ClientClosedError";this.message=e||"The client is closed";this.code="UND_ERR_CLOSED"}}class SocketError extends UndiciError{constructor(e,t){super(e);Error.captureStackTrace(this,SocketError);this.name="SocketError";this.message=e||"Socket error";this.code="UND_ERR_SOCKET";this.socket=t}}class NotSupportedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="NotSupportedError";this.message=e||"Not supported error";this.code="UND_ERR_NOT_SUPPORTED"}}class BalancedPoolMissingUpstreamError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="MissingUpstreamError";this.message=e||"No upstream has been added to the BalancedPool";this.code="UND_ERR_BPL_MISSING_UPSTREAM"}}class HTTPParserError extends Error{constructor(e,t,r){super(e);Error.captureStackTrace(this,HTTPParserError);this.name="HTTPParserError";this.code=t?`HPE_${t}`:undefined;this.data=r?r.toString():undefined}}class ResponseExceededMaxSizeError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseExceededMaxSizeError);this.name="ResponseExceededMaxSizeError";this.message=e||"Response content exceeded max size";this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}}class RequestRetryError extends UndiciError{constructor(e,t,{headers:r,data:n}){super(e);Error.captureStackTrace(this,RequestRetryError);this.name="RequestRetryError";this.message=e||"Request retry error";this.code="UND_ERR_REQ_RETRY";this.statusCode=t;this.data=n;this.headers=r}}e.exports={HTTPParserError:HTTPParserError,UndiciError:UndiciError,HeadersTimeoutError:HeadersTimeoutError,HeadersOverflowError:HeadersOverflowError,BodyTimeoutError:BodyTimeoutError,RequestContentLengthMismatchError:RequestContentLengthMismatchError,ConnectTimeoutError:ConnectTimeoutError,ResponseStatusCodeError:ResponseStatusCodeError,InvalidArgumentError:InvalidArgumentError,InvalidReturnValueError:InvalidReturnValueError,RequestAbortedError:RequestAbortedError,ClientDestroyedError:ClientDestroyedError,ClientClosedError:ClientClosedError,InformationalError:InformationalError,SocketError:SocketError,NotSupportedError:NotSupportedError,ResponseContentLengthMismatchError:ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError:BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError:ResponseExceededMaxSizeError,RequestRetryError:RequestRetryError}},44655:(e,t,r)=>{const{InvalidArgumentError:n,NotSupportedError:s}=r(68707);const o=r(42613);const{kHTTP2BuildRequest:i,kHTTP2CopyHeaders:a,kHTTP1BuildRequest:c}=r(36443);const u=r(3440);const A=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;const l=/[^\t\x20-\x7e\x80-\xff]/;const d=/[^\u0021-\u00ff]/;const p=Symbol("handler");const g={};let h;try{const e=r(31637);g.create=e.channel("undici:request:create");g.bodySent=e.channel("undici:request:bodySent");g.headers=e.channel("undici:request:headers");g.trailers=e.channel("undici:request:trailers");g.error=e.channel("undici:request:error")}catch{g.create={hasSubscribers:false};g.bodySent={hasSubscribers:false};g.headers={hasSubscribers:false};g.trailers={hasSubscribers:false};g.error={hasSubscribers:false}}class Request{constructor(e,{path:t,method:s,body:o,headers:i,query:a,idempotent:c,blocking:l,upgrade:m,headersTimeout:E,bodyTimeout:y,reset:I,throwOnError:C,expectContinue:b},B){if(typeof t!=="string"){throw new n("path must be a string")}else if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&s!=="CONNECT"){throw new n("path must be an absolute URL or start with a slash")}else if(d.exec(t)!==null){throw new n("invalid request path")}if(typeof s!=="string"){throw new n("method must be a string")}else if(A.exec(s)===null){throw new n("invalid request method")}if(m&&typeof m!=="string"){throw new n("upgrade must be a string")}if(E!=null&&(!Number.isFinite(E)||E<0)){throw new n("invalid headersTimeout")}if(y!=null&&(!Number.isFinite(y)||y<0)){throw new n("invalid bodyTimeout")}if(I!=null&&typeof I!=="boolean"){throw new n("invalid reset")}if(b!=null&&typeof b!=="boolean"){throw new n("invalid expectContinue")}this.headersTimeout=E;this.bodyTimeout=y;this.throwOnError=C===true;this.method=s;this.abort=null;if(o==null){this.body=null}else if(u.isStream(o)){this.body=o;const e=this.body._readableState;if(!e||!e.autoDestroy){this.endHandler=function autoDestroy(){u.destroy(this)};this.body.on("end",this.endHandler)}this.errorHandler=e=>{if(this.abort){this.abort(e)}else{this.error=e}};this.body.on("error",this.errorHandler)}else if(u.isBuffer(o)){this.body=o.byteLength?o:null}else if(ArrayBuffer.isView(o)){this.body=o.buffer.byteLength?Buffer.from(o.buffer,o.byteOffset,o.byteLength):null}else if(o instanceof ArrayBuffer){this.body=o.byteLength?Buffer.from(o):null}else if(typeof o==="string"){this.body=o.length?Buffer.from(o):null}else if(u.isFormDataLike(o)||u.isIterable(o)||u.isBlobLike(o)){this.body=o}else{throw new n("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable")}this.completed=false;this.aborted=false;this.upgrade=m||null;this.path=a?u.buildURL(t,a):t;this.origin=e;this.idempotent=c==null?s==="HEAD"||s==="GET":c;this.blocking=l==null?false:l;this.reset=I==null?null:I;this.host=null;this.contentLength=null;this.contentType=null;this.headers="";this.expectContinue=b!=null?b:false;if(Array.isArray(i)){if(i.length%2!==0){throw new n("headers array must be even")}for(let e=0;e{e.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}},3440:(e,t,r)=>{const n=r(42613);const{kDestroyed:s,kBodyUsed:o}=r(36443);const{IncomingMessage:i}=r(58611);const a=r(2203);const c=r(69278);const{InvalidArgumentError:u}=r(68707);const{Blob:A}=r(20181);const l=r(39023);const{stringify:d}=r(83480);const{headerNameLowerCasedRecord:p}=r(10735);const[g,h]=process.versions.node.split(".").map((e=>Number(e)));function nop(){}function isStream(e){return e&&typeof e==="object"&&typeof e.pipe==="function"&&typeof e.on==="function"}function isBlobLike(e){return A&&e instanceof A||e&&typeof e==="object"&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function buildURL(e,t){if(e.includes("?")||e.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const r=d(t);if(r){e+="?"+r}return e}function parseURL(e){if(typeof e==="string"){e=new URL(e);if(!/^https?:/.test(e.origin||e.protocol)){throw new u("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return e}if(!e||typeof e!=="object"){throw new u("Invalid URL: The URL argument must be a non-null object.")}if(!/^https?:/.test(e.origin||e.protocol)){throw new u("Invalid URL protocol: the URL must start with `http:` or `https:`.")}if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port))){throw new u("Invalid URL: port must be a valid integer or a string representation of an integer.")}if(e.path!=null&&typeof e.path!=="string"){throw new u("Invalid URL path: the path must be a string or null/undefined.")}if(e.pathname!=null&&typeof e.pathname!=="string"){throw new u("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(e.hostname!=null&&typeof e.hostname!=="string"){throw new u("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(e.origin!=null&&typeof e.origin!=="string"){throw new u("Invalid URL origin: the origin must be a string or null/undefined.")}const t=e.port!=null?e.port:e.protocol==="https:"?443:80;let r=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${t}`;let n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;if(r.endsWith("/")){r=r.substring(0,r.length-1)}if(n&&!n.startsWith("/")){n=`/${n}`}e=new URL(r+n)}return e}function parseOrigin(e){e=parseURL(e);if(e.pathname!=="/"||e.search||e.hash){throw new u("invalid url")}return e}function getHostname(e){if(e[0]==="["){const t=e.indexOf("]");n(t!==-1);return e.substring(1,t)}const t=e.indexOf(":");if(t===-1)return e;return e.substring(0,t)}function getServerName(e){if(!e){return null}n.strictEqual(typeof e,"string");const t=getHostname(e);if(c.isIP(t)){return""}return t}function deepClone(e){return JSON.parse(JSON.stringify(e))}function isAsyncIterable(e){return!!(e!=null&&typeof e[Symbol.asyncIterator]==="function")}function isIterable(e){return!!(e!=null&&(typeof e[Symbol.iterator]==="function"||typeof e[Symbol.asyncIterator]==="function"))}function bodyLength(e){if(e==null){return 0}else if(isStream(e)){const t=e._readableState;return t&&t.objectMode===false&&t.ended===true&&Number.isFinite(t.length)?t.length:null}else if(isBlobLike(e)){return e.size!=null?e.size:null}else if(isBuffer(e)){return e.byteLength}return null}function isDestroyed(e){return!e||!!(e.destroyed||e[s])}function isReadableAborted(e){const t=e&&e._readableState;return isDestroyed(e)&&t&&!t.endEmitted}function destroy(e,t){if(e==null||!isStream(e)||isDestroyed(e)){return}if(typeof e.destroy==="function"){if(Object.getPrototypeOf(e).constructor===i){e.socket=null}e.destroy(t)}else if(t){process.nextTick(((e,t)=>{e.emit("error",t)}),e,t)}if(e.destroyed!==true){e[s]=true}}const m=/timeout=(\d+)/;function parseKeepAliveTimeout(e){const t=e.toString().match(m);return t?parseInt(t[1],10)*1e3:null}function headerNameToString(e){return p[e]||e.toLowerCase()}function parseHeaders(e,t={}){if(!Array.isArray(e))return e;for(let r=0;re.toString("utf8")))}else{t[n]=e[r+1].toString("utf8")}}else{if(!Array.isArray(s)){s=[s];t[n]=s}s.push(e[r+1].toString("utf8"))}}if("content-length"in t&&"content-disposition"in t){t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")}return t}function parseRawHeaders(e){const t=[];let r=false;let n=-1;for(let s=0;s{e.close()}))}else{const t=Buffer.isBuffer(n)?n:Buffer.from(n);e.enqueue(new Uint8Array(t))}return e.desiredSize>0},async cancel(e){await t.return()}},0)}function isFormDataLike(e){return e&&typeof e==="object"&&typeof e.append==="function"&&typeof e.delete==="function"&&typeof e.get==="function"&&typeof e.getAll==="function"&&typeof e.has==="function"&&typeof e.set==="function"&&e[Symbol.toStringTag]==="FormData"}function throwIfAborted(e){if(!e){return}if(typeof e.throwIfAborted==="function"){e.throwIfAborted()}else{if(e.aborted){const e=new Error("The operation was aborted");e.name="AbortError";throw e}}}function addAbortListener(e,t){if("addEventListener"in e){e.addEventListener("abort",t,{once:true});return()=>e.removeEventListener("abort",t)}e.addListener("abort",t);return()=>e.removeListener("abort",t)}const y=!!String.prototype.toWellFormed;function toUSVString(e){if(y){return`${e}`.toWellFormed()}else if(l.toUSVString){return l.toUSVString(e)}return`${e}`}function parseRangeHeader(e){if(e==null||e==="")return{start:0,end:null,size:null};const t=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]?parseInt(t[3]):null}:null}const I=Object.create(null);I.enumerable=true;e.exports={kEnumerableProperty:I,nop:nop,isDisturbed:isDisturbed,isErrored:isErrored,isReadable:isReadable,toUSVString:toUSVString,isReadableAborted:isReadableAborted,isBlobLike:isBlobLike,parseOrigin:parseOrigin,parseURL:parseURL,getServerName:getServerName,isStream:isStream,isIterable:isIterable,isAsyncIterable:isAsyncIterable,isDestroyed:isDestroyed,headerNameToString:headerNameToString,parseRawHeaders:parseRawHeaders,parseHeaders:parseHeaders,parseKeepAliveTimeout:parseKeepAliveTimeout,destroy:destroy,bodyLength:bodyLength,deepClone:deepClone,ReadableStreamFrom:ReadableStreamFrom,isBuffer:isBuffer,validateHandler:validateHandler,getSocketInfo:getSocketInfo,isFormDataLike:isFormDataLike,buildURL:buildURL,throwIfAborted:throwIfAborted,addAbortListener:addAbortListener,parseRangeHeader:parseRangeHeader,nodeMajor:g,nodeMinor:h,nodeHasAutoSelectFamily:g>18||g===18&&h>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}},50001:(e,t,r)=>{const n=r(28611);const{ClientDestroyedError:s,ClientClosedError:o,InvalidArgumentError:i}=r(68707);const{kDestroy:a,kClose:c,kDispatch:u,kInterceptors:A}=r(36443);const l=Symbol("destroyed");const d=Symbol("closed");const p=Symbol("onDestroyed");const g=Symbol("onClosed");const h=Symbol("Intercepted Dispatch");class DispatcherBase extends n{constructor(){super();this[l]=false;this[p]=null;this[d]=false;this[g]=[]}get destroyed(){return this[l]}get closed(){return this[d]}get interceptors(){return this[A]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--){const e=this[A][t];if(typeof e!=="function"){throw new i("interceptor must be an function")}}}this[A]=e}close(e){if(e===undefined){return new Promise(((e,t)=>{this.close(((r,n)=>r?t(r):e(n)))}))}if(typeof e!=="function"){throw new i("invalid callback")}if(this[l]){queueMicrotask((()=>e(new s,null)));return}if(this[d]){if(this[g]){this[g].push(e)}else{queueMicrotask((()=>e(null,null)))}return}this[d]=true;this[g].push(e);const onClosed=()=>{const e=this[g];this[g]=null;for(let t=0;tthis.destroy())).then((()=>{queueMicrotask(onClosed)}))}destroy(e,t){if(typeof e==="function"){t=e;e=null}if(t===undefined){return new Promise(((t,r)=>{this.destroy(e,((e,n)=>e?r(e):t(n)))}))}if(typeof t!=="function"){throw new i("invalid callback")}if(this[l]){if(this[p]){this[p].push(t)}else{queueMicrotask((()=>t(null,null)))}return}if(!e){e=new s}this[l]=true;this[p]=this[p]||[];this[p].push(t);const onDestroyed=()=>{const e=this[p];this[p]=null;for(let t=0;t{queueMicrotask(onDestroyed)}))}[h](e,t){if(!this[A]||this[A].length===0){this[h]=this[u];return this[u](e,t)}let r=this[u].bind(this);for(let e=this[A].length-1;e>=0;e--){r=this[A][e](r)}this[h]=r;return r(e,t)}dispatch(e,t){if(!t||typeof t!=="object"){throw new i("handler must be an object")}try{if(!e||typeof e!=="object"){throw new i("opts must be an object.")}if(this[l]||this[p]){throw new s}if(this[d]){throw new o}return this[h](e,t)}catch(e){if(typeof t.onError!=="function"){throw new i("invalid onError method")}t.onError(e);return false}}}e.exports=DispatcherBase},28611:(e,t,r)=>{const n=r(24434);class Dispatcher extends n{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}}e.exports=Dispatcher},8923:(e,t,r)=>{const n=r(89581);const s=r(3440);const{ReadableStreamFrom:o,isBlobLike:i,isReadableStreamLike:a,readableStreamClose:c,createDeferredPromise:u,fullyReadBody:A}=r(15523);const{FormData:l}=r(43073);const{kState:d}=r(89710);const{webidl:p}=r(74222);const{DOMException:g,structuredClone:h}=r(87326);const{Blob:m,File:E}=r(20181);const{kBodyUsed:y}=r(36443);const I=r(42613);const{isErrored:C}=r(3440);const{isUint8Array:b,isArrayBuffer:B}=r(98253);const{File:Q}=r(63041);const{parseMIMEType:T,serializeAMimeType:v}=r(94322);let w=globalThis.ReadableStream;const _=E??Q;const O=new TextEncoder;const k=new TextDecoder;function extractBody(e,t=false){if(!w){w=r(63774).ReadableStream}let n=null;if(e instanceof w){n=e}else if(i(e)){n=e.stream()}else{n=new w({async pull(e){e.enqueue(typeof A==="string"?O.encode(A):A);queueMicrotask((()=>c(e)))},start(){},type:undefined})}I(a(n));let u=null;let A=null;let l=null;let d=null;if(typeof e==="string"){A=e;d="text/plain;charset=UTF-8"}else if(e instanceof URLSearchParams){A=e.toString();d="application/x-www-form-urlencoded;charset=UTF-8"}else if(B(e)){A=new Uint8Array(e.slice())}else if(ArrayBuffer.isView(e)){A=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}else if(s.isFormDataLike(e)){const t=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`;const r=`--${t}\r\nContent-Disposition: form-data` -/*! formdata-polyfill. MIT License. Jimmy Wärting */;const escape=e=>e.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=e=>e.replace(/\r?\n|\r/g,"\r\n");const n=[];const s=new Uint8Array([13,10]);l=0;let o=false;for(const[t,i]of e){if(typeof i==="string"){const e=O.encode(r+`; name="${escape(normalizeLinefeeds(t))}"`+`\r\n\r\n${normalizeLinefeeds(i)}\r\n`);n.push(e);l+=e.byteLength}else{const e=O.encode(`${r}; name="${escape(normalizeLinefeeds(t))}"`+(i.name?`; filename="${escape(i.name)}"`:"")+"\r\n"+`Content-Type: ${i.type||"application/octet-stream"}\r\n\r\n`);n.push(e,i,s);if(typeof i.size==="number"){l+=e.byteLength+i.size+s.byteLength}else{o=true}}}const i=O.encode(`--${t}--`);n.push(i);l+=i.byteLength;if(o){l=null}A=e;u=async function*(){for(const e of n){if(e.stream){yield*e.stream()}else{yield e}}};d="multipart/form-data; boundary="+t}else if(i(e)){A=e;l=e.size;if(e.type){d=e.type}}else if(typeof e[Symbol.asyncIterator]==="function"){if(t){throw new TypeError("keepalive")}if(s.isDisturbed(e)||e.locked){throw new TypeError("Response body object should not be disturbed or locked")}n=e instanceof w?e:o(e)}if(typeof A==="string"||s.isBuffer(A)){l=Buffer.byteLength(A)}if(u!=null){let t;n=new w({async start(){t=u(e)[Symbol.asyncIterator]()},async pull(e){const{value:r,done:s}=await t.next();if(s){queueMicrotask((()=>{e.close()}))}else{if(!C(n)){e.enqueue(new Uint8Array(r))}}return e.desiredSize>0},async cancel(e){await t.return()},type:undefined})}const p={stream:n,source:A,length:l};return[p,d]}function safelyExtractBody(e,t=false){if(!w){w=r(63774).ReadableStream}if(e instanceof w){I(!s.isDisturbed(e),"The body has already been consumed.");I(!e.locked,"The stream is locked.")}return extractBody(e,t)}function cloneBody(e){const[t,r]=e.stream.tee();const n=h(r,{transfer:[r]});const[,s]=n.tee();e.stream=t;return{stream:s,length:e.length,source:e.source}}async function*consumeBody(e){if(e){if(b(e)){yield e}else{const t=e.stream;if(s.isDisturbed(t)){throw new TypeError("The body has already been consumed.")}if(t.locked){throw new TypeError("The stream is locked.")}t[y]=true;yield*t}}}function throwIfAborted(e){if(e.aborted){throw new g("The operation was aborted.","AbortError")}}function bodyMixinMethods(e){const t={blob(){return specConsumeBody(this,(e=>{let t=bodyMimeType(this);if(t==="failure"){t=""}else if(t){t=v(t)}return new m([e],{type:t})}),e)},arrayBuffer(){return specConsumeBody(this,(e=>new Uint8Array(e).buffer),e)},text(){return specConsumeBody(this,utf8DecodeBytes,e)},json(){return specConsumeBody(this,parseJSONFromBytes,e)},async formData(){p.brandCheck(this,e);throwIfAborted(this[d]);const t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){const e={};for(const[t,r]of this.headers)e[t.toLowerCase()]=r;const t=new l;let r;try{r=new n({headers:e,preservePath:true})}catch(e){throw new g(`${e}`,"AbortError")}r.on("field",((e,r)=>{t.append(e,r)}));r.on("file",((e,r,n,s,o)=>{const i=[];if(s==="base64"||s.toLowerCase()==="base64"){let s="";r.on("data",(e=>{s+=e.toString().replace(/[\r\n]/gm,"");const t=s.length-s.length%4;i.push(Buffer.from(s.slice(0,t),"base64"));s=s.slice(t)}));r.on("end",(()=>{i.push(Buffer.from(s,"base64"));t.append(e,new _(i,n,{type:o}))}))}else{r.on("data",(e=>{i.push(e)}));r.on("end",(()=>{t.append(e,new _(i,n,{type:o}))}))}}));const s=new Promise(((e,t)=>{r.on("finish",e);r.on("error",(e=>t(new TypeError(e))))}));if(this.body!==null)for await(const e of consumeBody(this[d].body))r.write(e);r.end();await s;return t}else if(/application\/x-www-form-urlencoded/.test(t)){let e;try{let t="";const r=new TextDecoder("utf-8",{ignoreBOM:true});for await(const e of consumeBody(this[d].body)){if(!b(e)){throw new TypeError("Expected Uint8Array chunk")}t+=r.decode(e,{stream:true})}t+=r.decode();e=new URLSearchParams(t)}catch(e){throw Object.assign(new TypeError,{cause:e})}const t=new l;for(const[r,n]of e){t.append(r,n)}return t}else{await Promise.resolve();throwIfAborted(this[d]);throw p.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}};return t}function mixinBody(e){Object.assign(e.prototype,bodyMixinMethods(e))}async function specConsumeBody(e,t,r){p.brandCheck(e,r);throwIfAborted(e[d]);if(bodyUnusable(e[d].body)){throw new TypeError("Body is unusable")}const n=u();const errorSteps=e=>n.reject(e);const successSteps=e=>{try{n.resolve(t(e))}catch(e){errorSteps(e)}};if(e[d].body==null){successSteps(new Uint8Array);return n.promise}await A(e[d].body,successSteps,errorSteps);return n.promise}function bodyUnusable(e){return e!=null&&(e.stream.locked||s.isDisturbed(e.stream))}function utf8DecodeBytes(e){if(e.length===0){return""}if(e[0]===239&&e[1]===187&&e[2]===191){e=e.subarray(3)}const t=k.decode(e);return t}function parseJSONFromBytes(e){return JSON.parse(utf8DecodeBytes(e))}function bodyMimeType(e){const{headersList:t}=e[d];const r=t.get("content-type");if(r===null){return"failure"}return T(r)}e.exports={extractBody:extractBody,safelyExtractBody:safelyExtractBody,cloneBody:cloneBody,mixinBody:mixinBody}},87326:(e,t,r)=>{const{MessageChannel:n,receiveMessageOnPort:s}=r(28167);const o=["GET","HEAD","POST"];const i=new Set(o);const a=[101,204,205,304];const c=[301,302,303,307,308];const u=new Set(c);const A=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"];const l=new Set(A);const d=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"];const p=new Set(d);const g=["follow","manual","error"];const h=["GET","HEAD","OPTIONS","TRACE"];const m=new Set(h);const E=["navigate","same-origin","no-cors","cors"];const y=["omit","same-origin","include"];const I=["default","no-store","reload","no-cache","force-cache","only-if-cached"];const C=["content-encoding","content-language","content-location","content-type","content-length"];const b=["half"];const B=["CONNECT","TRACE","TRACK"];const Q=new Set(B);const T=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""];const v=new Set(T);const w=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})();let _;const O=globalThis.structuredClone??function structuredClone(e,t=undefined){if(arguments.length===0){throw new TypeError("missing argument")}if(!_){_=new n}_.port1.unref();_.port2.unref();_.port1.postMessage(e,t?.transfer);return s(_.port2).message};e.exports={DOMException:w,structuredClone:O,subresource:T,forbiddenMethods:B,requestBodyHeader:C,referrerPolicy:d,requestRedirect:g,requestMode:E,requestCredentials:y,requestCache:I,redirectStatus:c,corsSafeListedMethods:o,nullBodyStatus:a,safeMethods:h,badPorts:A,requestDuplex:b,subresourceSet:v,badPortsSet:l,redirectStatusSet:u,corsSafeListedMethodsSet:i,safeMethodsSet:m,forbiddenMethodsSet:Q,referrerPolicySet:p}},94322:(e,t,r)=>{const n=r(42613);const{atob:s}=r(20181);const{isomorphicDecode:o}=r(15523);const i=new TextEncoder;const a=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/;const c=/(\u000A|\u000D|\u0009|\u0020)/;const u=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function dataURLProcessor(e){n(e.protocol==="data:");let t=URLSerializer(e,true);t=t.slice(5);const r={position:0};let s=collectASequenceOfCodePointsFast(",",t,r);const i=s.length;s=removeASCIIWhitespace(s,true,true);if(r.position>=t.length){return"failure"}r.position++;const a=t.slice(i+1);let c=stringPercentDecode(a);if(/;(\u0020){0,}base64$/i.test(s)){const e=o(c);c=forgivingBase64(e);if(c==="failure"){return"failure"}s=s.slice(0,-6);s=s.replace(/(\u0020)+$/,"");s=s.slice(0,-1)}if(s.startsWith(";")){s="text/plain"+s}let u=parseMIMEType(s);if(u==="failure"){u=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:u,body:c}}function URLSerializer(e,t=false){if(!t){return e.href}const r=e.href;const n=e.hash.length;return n===0?r:r.substring(0,r.length-n)}function collectASequenceOfCodePoints(e,t,r){let n="";while(r.positione.length){return"failure"}t.position++;let n=collectASequenceOfCodePointsFast(";",e,t);n=removeHTTPWhitespace(n,false,true);if(n.length===0||!a.test(n)){return"failure"}const s=r.toLowerCase();const o=n.toLowerCase();const i={type:s,subtype:o,parameters:new Map,essence:`${s}/${o}`};while(t.positionc.test(e)),e,t);let r=collectASequenceOfCodePoints((e=>e!==";"&&e!=="="),e,t);r=r.toLowerCase();if(t.positione.length){break}let n=null;if(e[t.position]==='"'){n=collectAnHTTPQuotedString(e,t,true);collectASequenceOfCodePointsFast(";",e,t)}else{n=collectASequenceOfCodePointsFast(";",e,t);n=removeHTTPWhitespace(n,false,true);if(n.length===0){continue}}if(r.length!==0&&a.test(r)&&(n.length===0||u.test(n))&&!i.parameters.has(r)){i.parameters.set(r,n)}}return i}function forgivingBase64(e){e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,"");if(e.length%4===0){e=e.replace(/=?=$/,"")}if(e.length%4===1){return"failure"}if(/[^+/0-9A-Za-z]/.test(e)){return"failure"}const t=s(e);const r=new Uint8Array(t.length);for(let e=0;ee!=='"'&&e!=="\\"),e,t);if(t.position>=e.length){break}const r=e[t.position];t.position++;if(r==="\\"){if(t.position>=e.length){o+="\\";break}o+=e[t.position];t.position++}else{n(r==='"');break}}if(r){return o}return e.slice(s,t.position)}function serializeAMimeType(e){n(e!=="failure");const{parameters:t,essence:r}=e;let s=r;for(let[e,r]of t.entries()){s+=";";s+=e;s+="=";if(!a.test(r)){r=r.replace(/(\\|")/g,"\\$1");r='"'+r;r+='"'}s+=r}return s}function isHTTPWhiteSpace(e){return e==="\r"||e==="\n"||e==="\t"||e===" "}function removeHTTPWhitespace(e,t=true,r=true){let n=0;let s=e.length-1;if(t){for(;n0&&isHTTPWhiteSpace(e[s]);s--);}return e.slice(n,s+1)}function isASCIIWhitespace(e){return e==="\r"||e==="\n"||e==="\t"||e==="\f"||e===" "}function removeASCIIWhitespace(e,t=true,r=true){let n=0;let s=e.length-1;if(t){for(;n0&&isASCIIWhitespace(e[s]);s--);}return e.slice(n,s+1)}e.exports={dataURLProcessor:dataURLProcessor,URLSerializer:URLSerializer,collectASequenceOfCodePoints:collectASequenceOfCodePoints,collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast,stringPercentDecode:stringPercentDecode,parseMIMEType:parseMIMEType,collectAnHTTPQuotedString:collectAnHTTPQuotedString,serializeAMimeType:serializeAMimeType}},63041:(e,t,r)=>{const{Blob:n,File:s}=r(20181);const{types:o}=r(39023);const{kState:i}=r(89710);const{isBlobLike:a}=r(15523);const{webidl:c}=r(74222);const{parseMIMEType:u,serializeAMimeType:A}=r(94322);const{kEnumerableProperty:l}=r(3440);const d=new TextEncoder;class File extends n{constructor(e,t,r={}){c.argumentLengthCheck(arguments,2,{header:"File constructor"});e=c.converters["sequence"](e);t=c.converters.USVString(t);r=c.converters.FilePropertyBag(r);const n=t;let s=r.type;let o;e:{if(s){s=u(s);if(s==="failure"){s="";break e}s=A(s).toLowerCase()}o=r.lastModified}super(processBlobParts(e,r),{type:s});this[i]={name:n,lastModified:o,type:s}}get name(){c.brandCheck(this,File);return this[i].name}get lastModified(){c.brandCheck(this,File);return this[i].lastModified}get type(){c.brandCheck(this,File);return this[i].type}}class FileLike{constructor(e,t,r={}){const n=t;const s=r.type;const o=r.lastModified??Date.now();this[i]={blobLike:e,name:n,type:s,lastModified:o}}stream(...e){c.brandCheck(this,FileLike);return this[i].blobLike.stream(...e)}arrayBuffer(...e){c.brandCheck(this,FileLike);return this[i].blobLike.arrayBuffer(...e)}slice(...e){c.brandCheck(this,FileLike);return this[i].blobLike.slice(...e)}text(...e){c.brandCheck(this,FileLike);return this[i].blobLike.text(...e)}get size(){c.brandCheck(this,FileLike);return this[i].blobLike.size}get type(){c.brandCheck(this,FileLike);return this[i].blobLike.type}get name(){c.brandCheck(this,FileLike);return this[i].name}get lastModified(){c.brandCheck(this,FileLike);return this[i].lastModified}get[Symbol.toStringTag](){return"File"}}Object.defineProperties(File.prototype,{[Symbol.toStringTag]:{value:"File",configurable:true},name:l,lastModified:l});c.converters.Blob=c.interfaceConverter(n);c.converters.BlobPart=function(e,t){if(c.util.Type(e)==="Object"){if(a(e)){return c.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||o.isAnyArrayBuffer(e)){return c.converters.BufferSource(e,t)}}return c.converters.USVString(e,t)};c.converters["sequence"]=c.sequenceConverter(c.converters.BlobPart);c.converters.FilePropertyBag=c.dictionaryConverter([{key:"lastModified",converter:c.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:c.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>{e=c.converters.DOMString(e);e=e.toLowerCase();if(e!=="native"){e="transparent"}return e},defaultValue:"transparent"}]);function processBlobParts(e,t){const r=[];for(const n of e){if(typeof n==="string"){let e=n;if(t.endings==="native"){e=convertLineEndingsNative(e)}r.push(d.encode(e))}else if(o.isAnyArrayBuffer(n)||o.isTypedArray(n)){if(!n.buffer){r.push(new Uint8Array(n))}else{r.push(new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}}else if(a(n)){r.push(n)}}return r}function convertLineEndingsNative(e){let t="\n";if(process.platform==="win32"){t="\r\n"}return e.replace(/\r?\n/g,t)}function isFileLike(e){return s&&e instanceof s||e instanceof File||e&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&e[Symbol.toStringTag]==="File"}e.exports={File:File,FileLike:FileLike,isFileLike:isFileLike}},43073:(e,t,r)=>{const{isBlobLike:n,toUSVString:s,makeIterator:o}=r(15523);const{kState:i}=r(89710);const{File:a,FileLike:c,isFileLike:u}=r(63041);const{webidl:A}=r(74222);const{Blob:l,File:d}=r(20181);const p=d??a;class FormData{constructor(e){if(e!==undefined){throw A.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}this[i]=[]}append(e,t,r=undefined){A.brandCheck(this,FormData);A.argumentLengthCheck(arguments,2,{header:"FormData.append"});if(arguments.length===3&&!n(t)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}e=A.converters.USVString(e);t=n(t)?A.converters.Blob(t,{strict:false}):A.converters.USVString(t);r=arguments.length===3?A.converters.USVString(r):undefined;const s=makeEntry(e,t,r);this[i].push(s)}delete(e){A.brandCheck(this,FormData);A.argumentLengthCheck(arguments,1,{header:"FormData.delete"});e=A.converters.USVString(e);this[i]=this[i].filter((t=>t.name!==e))}get(e){A.brandCheck(this,FormData);A.argumentLengthCheck(arguments,1,{header:"FormData.get"});e=A.converters.USVString(e);const t=this[i].findIndex((t=>t.name===e));if(t===-1){return null}return this[i][t].value}getAll(e){A.brandCheck(this,FormData);A.argumentLengthCheck(arguments,1,{header:"FormData.getAll"});e=A.converters.USVString(e);return this[i].filter((t=>t.name===e)).map((e=>e.value))}has(e){A.brandCheck(this,FormData);A.argumentLengthCheck(arguments,1,{header:"FormData.has"});e=A.converters.USVString(e);return this[i].findIndex((t=>t.name===e))!==-1}set(e,t,r=undefined){A.brandCheck(this,FormData);A.argumentLengthCheck(arguments,2,{header:"FormData.set"});if(arguments.length===3&&!n(t)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}e=A.converters.USVString(e);t=n(t)?A.converters.Blob(t,{strict:false}):A.converters.USVString(t);r=arguments.length===3?s(r):undefined;const o=makeEntry(e,t,r);const a=this[i].findIndex((t=>t.name===e));if(a!==-1){this[i]=[...this[i].slice(0,a),o,...this[i].slice(a+1).filter((t=>t.name!==e))]}else{this[i].push(o)}}entries(){A.brandCheck(this,FormData);return o((()=>this[i].map((e=>[e.name,e.value]))),"FormData","key+value")}keys(){A.brandCheck(this,FormData);return o((()=>this[i].map((e=>[e.name,e.value]))),"FormData","key")}values(){A.brandCheck(this,FormData);return o((()=>this[i].map((e=>[e.name,e.value]))),"FormData","value")}forEach(e,t=globalThis){A.brandCheck(this,FormData);A.argumentLengthCheck(arguments,1,{header:"FormData.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.")}for(const[r,n]of this){e.apply(t,[n,r,this])}}}FormData.prototype[Symbol.iterator]=FormData.prototype.entries;Object.defineProperties(FormData.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(e,t,r){e=Buffer.from(e).toString("utf8");if(typeof t==="string"){t=Buffer.from(t).toString("utf8")}else{if(!u(t)){t=t instanceof l?new p([t],"blob",{type:t.type}):new c(t,"blob",{type:t.type})}if(r!==undefined){const e={type:t.type,lastModified:t.lastModified};t=d&&t instanceof d||t instanceof a?new p([t],r,e):new c(t,r,e)}}return{name:e,value:t}}e.exports={FormData:FormData}},75628:e=>{const t=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[t]}function setGlobalOrigin(e){if(e===undefined){Object.defineProperty(globalThis,t,{value:undefined,writable:true,enumerable:false,configurable:false});return}const r=new URL(e);if(r.protocol!=="http:"&&r.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${r.protocol}`)}Object.defineProperty(globalThis,t,{value:r,writable:true,enumerable:false,configurable:false})}e.exports={getGlobalOrigin:getGlobalOrigin,setGlobalOrigin:setGlobalOrigin}},26349:(e,t,r)=>{const{kHeadersList:n,kConstruct:s}=r(36443);const{kGuard:o}=r(89710);const{kEnumerableProperty:i}=r(3440);const{makeIterator:a,isValidHeaderName:c,isValidHeaderValue:u}=r(15523);const{webidl:A}=r(74222);const l=r(42613);const d=Symbol("headers map");const p=Symbol("headers map sorted");function isHTTPWhiteSpaceCharCode(e){return e===10||e===13||e===9||e===32}function headerValueNormalize(e){let t=0;let r=e.length;while(r>t&&isHTTPWhiteSpaceCharCode(e.charCodeAt(r-1)))--r;while(r>t&&isHTTPWhiteSpaceCharCode(e.charCodeAt(t)))++t;return t===0&&r===e.length?e:e.substring(t,r)}function fill(e,t){if(Array.isArray(t)){for(let r=0;r>","record"]})}}function appendHeader(e,t,r){r=headerValueNormalize(r);if(!c(t)){throw A.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"})}else if(!u(r)){throw A.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}if(e[o]==="immutable"){throw new TypeError("immutable")}else if(e[o]==="request-no-cors"){}return e[n].append(t,r)}class HeadersList{cookies=null;constructor(e){if(e instanceof HeadersList){this[d]=new Map(e[d]);this[p]=e[p];this.cookies=e.cookies===null?null:[...e.cookies]}else{this[d]=new Map(e);this[p]=null}}contains(e){e=e.toLowerCase();return this[d].has(e)}clear(){this[d].clear();this[p]=null;this.cookies=null}append(e,t){this[p]=null;const r=e.toLowerCase();const n=this[d].get(r);if(n){const e=r==="cookie"?"; ":", ";this[d].set(r,{name:n.name,value:`${n.value}${e}${t}`})}else{this[d].set(r,{name:e,value:t})}if(r==="set-cookie"){this.cookies??=[];this.cookies.push(t)}}set(e,t){this[p]=null;const r=e.toLowerCase();if(r==="set-cookie"){this.cookies=[t]}this[d].set(r,{name:e,value:t})}delete(e){this[p]=null;e=e.toLowerCase();if(e==="set-cookie"){this.cookies=null}this[d].delete(e)}get(e){const t=this[d].get(e.toLowerCase());return t===undefined?null:t.value}*[Symbol.iterator](){for(const[e,{value:t}]of this[d]){yield[e,t]}}get entries(){const e={};if(this[d].size){for(const{name:t,value:r}of this[d].values()){e[t]=r}}return e}}class Headers{constructor(e=undefined){if(e===s){return}this[n]=new HeadersList;this[o]="none";if(e!==undefined){e=A.converters.HeadersInit(e);fill(this,e)}}append(e,t){A.brandCheck(this,Headers);A.argumentLengthCheck(arguments,2,{header:"Headers.append"});e=A.converters.ByteString(e);t=A.converters.ByteString(t);return appendHeader(this,e,t)}delete(e){A.brandCheck(this,Headers);A.argumentLengthCheck(arguments,1,{header:"Headers.delete"});e=A.converters.ByteString(e);if(!c(e)){throw A.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"})}if(this[o]==="immutable"){throw new TypeError("immutable")}else if(this[o]==="request-no-cors"){}if(!this[n].contains(e)){return}this[n].delete(e)}get(e){A.brandCheck(this,Headers);A.argumentLengthCheck(arguments,1,{header:"Headers.get"});e=A.converters.ByteString(e);if(!c(e)){throw A.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"})}return this[n].get(e)}has(e){A.brandCheck(this,Headers);A.argumentLengthCheck(arguments,1,{header:"Headers.has"});e=A.converters.ByteString(e);if(!c(e)){throw A.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"})}return this[n].contains(e)}set(e,t){A.brandCheck(this,Headers);A.argumentLengthCheck(arguments,2,{header:"Headers.set"});e=A.converters.ByteString(e);t=A.converters.ByteString(t);t=headerValueNormalize(t);if(!c(e)){throw A.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"})}else if(!u(t)){throw A.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}if(this[o]==="immutable"){throw new TypeError("immutable")}else if(this[o]==="request-no-cors"){}this[n].set(e,t)}getSetCookie(){A.brandCheck(this,Headers);const e=this[n].cookies;if(e){return[...e]}return[]}get[p](){if(this[n][p]){return this[n][p]}const e=[];const t=[...this[n]].sort(((e,t)=>e[0]e),"Headers","key")}return a((()=>[...this[p].values()]),"Headers","key")}values(){A.brandCheck(this,Headers);if(this[o]==="immutable"){const e=this[p];return a((()=>e),"Headers","value")}return a((()=>[...this[p].values()]),"Headers","value")}entries(){A.brandCheck(this,Headers);if(this[o]==="immutable"){const e=this[p];return a((()=>e),"Headers","key+value")}return a((()=>[...this[p].values()]),"Headers","key+value")}forEach(e,t=globalThis){A.brandCheck(this,Headers);A.argumentLengthCheck(arguments,1,{header:"Headers.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.")}for(const[r,n]of this){e.apply(t,[n,r,this])}}[Symbol.for("nodejs.util.inspect.custom")](){A.brandCheck(this,Headers);return this[n]}}Headers.prototype[Symbol.iterator]=Headers.prototype.entries;Object.defineProperties(Headers.prototype,{append:i,delete:i,get:i,has:i,set:i,getSetCookie:i,keys:i,values:i,entries:i,forEach:i,[Symbol.iterator]:{enumerable:false},[Symbol.toStringTag]:{value:"Headers",configurable:true}});A.converters.HeadersInit=function(e){if(A.util.Type(e)==="Object"){if(e[Symbol.iterator]){return A.converters["sequence>"](e)}return A.converters["record"](e)}throw A.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};e.exports={fill:fill,Headers:Headers,HeadersList:HeadersList}},12315:(e,t,r)=>{const{Response:n,makeNetworkError:s,makeAppropriateNetworkError:o,filterResponse:i,makeResponse:a}=r(48676);const{Headers:c}=r(26349);const{Request:u,makeRequest:A}=r(25194);const l=r(43106);const{bytesMatch:d,makePolicyContainer:p,clonePolicyContainer:g,requestBadPort:h,TAOCheck:m,appendRequestOriginHeader:E,responseLocationURL:y,requestCurrentURL:I,setRequestReferrerPolicyOnRedirect:C,tryUpgradeRequestToAPotentiallyTrustworthyURL:b,createOpaqueTimingInfo:B,appendFetchMetadata:Q,corsCheck:T,crossOriginResourcePolicyCheck:v,determineRequestsReferrer:w,coarsenedSharedCurrentTime:_,createDeferredPromise:O,isBlobLike:k,sameOrigin:R,isCancelled:S,isAborted:F,isErrorLike:D,fullyReadBody:N,readableStreamClose:P,isomorphicEncode:L,urlIsLocal:U,urlIsHttpHttpsScheme:M,urlHasHttpsScheme:x}=r(15523);const{kState:G,kHeaders:j,kGuard:V,kRealm:H}=r(89710);const q=r(42613);const{safelyExtractBody:Y}=r(8923);const{redirectStatusSet:K,nullBodyStatus:J,safeMethodsSet:$,requestBodyHeader:W,subresourceSet:z,DOMException:Z}=r(87326);const{kHeadersList:X}=r(36443);const ee=r(24434);const{Readable:te,pipeline:re}=r(2203);const{addAbortListener:ne,isErrored:se,isReadable:oe,nodeMajor:ie,nodeMinor:ae}=r(3440);const{dataURLProcessor:ce,serializeAMimeType:ue}=r(94322);const{TransformStream:Ae}=r(63774);const{getGlobalDispatcher:le}=r(32581);const{webidl:de}=r(74222);const{STATUS_CODES:pe}=r(58611);const fe=["GET","HEAD"];let ge;let he=globalThis.ReadableStream;class Fetch extends ee{constructor(e){super();this.dispatcher=e;this.connection=null;this.dump=false;this.state="ongoing";this.setMaxListeners(21)}terminate(e){if(this.state!=="ongoing"){return}this.state="terminated";this.connection?.destroy(e);this.emit("terminated",e)}abort(e){if(this.state!=="ongoing"){return}this.state="aborted";if(!e){e=new Z("The operation was aborted.","AbortError")}this.serializedAbortReason=e;this.connection?.destroy(e);this.emit("terminated",e)}}function fetch(e,t={}){de.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});const r=O();let s;try{s=new u(e,t)}catch(e){r.reject(e);return r.promise}const o=s[G];if(s.signal.aborted){abortFetch(r,o,null,s.signal.reason);return r.promise}const i=o.client.globalObject;if(i?.constructor?.name==="ServiceWorkerGlobalScope"){o.serviceWorkers="none"}let a=null;const c=null;let A=false;let l=null;ne(s.signal,(()=>{A=true;q(l!=null);l.abort(s.signal.reason);abortFetch(r,o,a,s.signal.reason)}));const handleFetchDone=e=>finalizeAndReportTiming(e,"fetch");const processResponse=e=>{if(A){return Promise.resolve()}if(e.aborted){abortFetch(r,o,a,l.serializedAbortReason);return Promise.resolve()}if(e.type==="error"){r.reject(Object.assign(new TypeError("fetch failed"),{cause:e.error}));return Promise.resolve()}a=new n;a[G]=e;a[H]=c;a[j][X]=e.headersList;a[j][V]="immutable";a[j][H]=c;r.resolve(a)};l=fetching({request:o,processResponseEndOfBody:handleFetchDone,processResponse:processResponse,dispatcher:t.dispatcher??le()});return r.promise}function finalizeAndReportTiming(e,t="other"){if(e.type==="error"&&e.aborted){return}if(!e.urlList?.length){return}const r=e.urlList[0];let n=e.timingInfo;let s=e.cacheState;if(!M(r)){return}if(n===null){return}if(!e.timingAllowPassed){n=B({startTime:n.startTime});s=""}n.endTime=_();e.timingInfo=n;markResourceTiming(n,r,t,globalThis,s)}function markResourceTiming(e,t,r,n,s){if(ie>18||ie===18&&ae>=2){performance.markResourceTiming(e,t.href,r,n,s)}}function abortFetch(e,t,r,n){if(!n){n=new Z("The operation was aborted.","AbortError")}e.reject(n);if(t.body!=null&&oe(t.body?.stream)){t.body.stream.cancel(n).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}if(r==null){return}const s=r[G];if(s.body!=null&&oe(s.body?.stream)){s.body.stream.cancel(n).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}}function fetching({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:s,processResponseConsumeBody:o,useParallelQueue:i=false,dispatcher:a}){let c=null;let u=false;if(e.client!=null){c=e.client.globalObject;u=e.client.crossOriginIsolatedCapability}const A=_(u);const l=B({startTime:A});const d={controller:new Fetch(a),request:e,timingInfo:l,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:s,taskDestination:c,crossOriginIsolatedCapability:u};q(!e.body||e.body.stream);if(e.window==="client"){e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"}if(e.origin==="client"){e.origin=e.client?.origin}if(e.policyContainer==="client"){if(e.client!=null){e.policyContainer=g(e.client.policyContainer)}else{e.policyContainer=p()}}if(!e.headersList.contains("accept")){const t="*/*";e.headersList.append("accept",t)}if(!e.headersList.contains("accept-language")){e.headersList.append("accept-language","*")}if(e.priority===null){}if(z.has(e.destination)){}mainFetch(d).catch((e=>{d.controller.terminate(e)}));return d.controller}async function mainFetch(e,t=false){const r=e.request;let n=null;if(r.localURLsOnly&&!U(I(r))){n=s("local URLs only")}b(r);if(h(r)==="blocked"){n=s("bad port")}if(r.referrerPolicy===""){r.referrerPolicy=r.policyContainer.referrerPolicy}if(r.referrer!=="no-referrer"){r.referrer=w(r)}if(n===null){n=await(async()=>{const t=I(r);if(R(t,r.url)&&r.responseTainting==="basic"||t.protocol==="data:"||(r.mode==="navigate"||r.mode==="websocket")){r.responseTainting="basic";return await schemeFetch(e)}if(r.mode==="same-origin"){return s('request mode cannot be "same-origin"')}if(r.mode==="no-cors"){if(r.redirect!=="follow"){return s('redirect mode cannot be "follow" for "no-cors" request')}r.responseTainting="opaque";return await schemeFetch(e)}if(!M(I(r))){return s("URL scheme must be a HTTP(S) scheme")}r.responseTainting="cors";return await httpFetch(e)})()}if(t){return n}if(n.status!==0&&!n.internalResponse){if(r.responseTainting==="cors"){}if(r.responseTainting==="basic"){n=i(n,"basic")}else if(r.responseTainting==="cors"){n=i(n,"cors")}else if(r.responseTainting==="opaque"){n=i(n,"opaque")}else{q(false)}}let o=n.status===0?n:n.internalResponse;if(o.urlList.length===0){o.urlList.push(...r.urlList)}if(!r.timingAllowFailed){n.timingAllowPassed=true}if(n.type==="opaque"&&o.status===206&&o.rangeRequested&&!r.headers.contains("range")){n=o=s()}if(n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||J.includes(o.status))){o.body=null;e.controller.dump=true}if(r.integrity){const processBodyError=t=>fetchFinale(e,s(t));if(r.responseTainting==="opaque"||n.body==null){processBodyError(n.error);return}const processBody=t=>{if(!d(t,r.integrity)){processBodyError("integrity mismatch");return}n.body=Y(t)[0];fetchFinale(e,n)};await N(n.body,processBody,processBodyError)}else{fetchFinale(e,n)}}function schemeFetch(e){if(S(e)&&e.request.redirectCount===0){return Promise.resolve(o(e))}const{request:t}=e;const{protocol:n}=I(t);switch(n){case"about:":{return Promise.resolve(s("about scheme is not supported"))}case"blob:":{if(!ge){ge=r(20181).resolveObjectURL}const e=I(t);if(e.search.length!==0){return Promise.resolve(s("NetworkError when attempting to fetch resource."))}const n=ge(e.toString());if(t.method!=="GET"||!k(n)){return Promise.resolve(s("invalid method"))}const o=Y(n);const i=o[0];const c=L(`${i.length}`);const u=o[1]??"";const A=a({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:c}],["content-type",{name:"Content-Type",value:u}]]});A.body=i;return Promise.resolve(A)}case"data:":{const e=I(t);const r=ce(e);if(r==="failure"){return Promise.resolve(s("failed to fetch the data URL"))}const n=ue(r.mimeType);return Promise.resolve(a({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:n}]],body:Y(r.body)[0]}))}case"file:":{return Promise.resolve(s("not implemented... yet..."))}case"http:":case"https:":{return httpFetch(e).catch((e=>s(e)))}default:{return Promise.resolve(s("unknown scheme"))}}}function finalizeResponse(e,t){e.request.done=true;if(e.processResponseDone!=null){queueMicrotask((()=>e.processResponseDone(t)))}}function fetchFinale(e,t){if(t.type==="error"){t.urlList=[e.request.urlList[0]];t.timingInfo=B({startTime:e.timingInfo.startTime})}const processResponseEndOfBody=()=>{e.request.done=true;if(e.processResponseEndOfBody!=null){queueMicrotask((()=>e.processResponseEndOfBody(t)))}};if(e.processResponse!=null){queueMicrotask((()=>e.processResponse(t)))}if(t.body==null){processResponseEndOfBody()}else{const identityTransformAlgorithm=(e,t)=>{t.enqueue(e)};const e=new Ae({start(){},transform:identityTransformAlgorithm,flush:processResponseEndOfBody},{size(){return 1}},{size(){return 1}});t.body={stream:t.body.stream.pipeThrough(e)}}if(e.processResponseConsumeBody!=null){const processBody=r=>e.processResponseConsumeBody(t,r);const processBodyError=r=>e.processResponseConsumeBody(t,r);if(t.body==null){queueMicrotask((()=>processBody(null)))}else{return N(t.body,processBody,processBodyError)}return Promise.resolve()}}async function httpFetch(e){const t=e.request;let r=null;let n=null;const o=e.timingInfo;if(t.serviceWorkers==="all"){}if(r===null){if(t.redirect==="follow"){t.serviceWorkers="none"}n=r=await httpNetworkOrCacheFetch(e);if(t.responseTainting==="cors"&&T(t,r)==="failure"){return s("cors failure")}if(m(t,r)==="failure"){t.timingAllowFailed=true}}if((t.responseTainting==="opaque"||r.type==="opaque")&&v(t.origin,t.client,t.destination,n)==="blocked"){return s("blocked")}if(K.has(n.status)){if(t.redirect!=="manual"){e.controller.connection.destroy()}if(t.redirect==="error"){r=s("unexpected redirect")}else if(t.redirect==="manual"){r=n}else if(t.redirect==="follow"){r=await httpRedirectFetch(e,r)}else{q(false)}}r.timingInfo=o;return r}function httpRedirectFetch(e,t){const r=e.request;const n=t.internalResponse?t.internalResponse:t;let o;try{o=y(n,I(r).hash);if(o==null){return t}}catch(e){return Promise.resolve(s(e))}if(!M(o)){return Promise.resolve(s("URL scheme must be a HTTP(S) scheme"))}if(r.redirectCount===20){return Promise.resolve(s("redirect count exceeded"))}r.redirectCount+=1;if(r.mode==="cors"&&(o.username||o.password)&&!R(r,o)){return Promise.resolve(s('cross origin not allowed for request mode "cors"'))}if(r.responseTainting==="cors"&&(o.username||o.password)){return Promise.resolve(s('URL cannot contain credentials for request mode "cors"'))}if(n.status!==303&&r.body!=null&&r.body.source==null){return Promise.resolve(s())}if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!fe.includes(r.method)){r.method="GET";r.body=null;for(const e of W){r.headersList.delete(e)}}if(!R(I(r),o)){r.headersList.delete("authorization");r.headersList.delete("proxy-authorization",true);r.headersList.delete("cookie");r.headersList.delete("host")}if(r.body!=null){q(r.body.source!=null);r.body=Y(r.body.source)[0]}const i=e.timingInfo;i.redirectEndTime=i.postRedirectStartTime=_(e.crossOriginIsolatedCapability);if(i.redirectStartTime===0){i.redirectStartTime=i.startTime}r.urlList.push(o);C(r,n);return mainFetch(e,true)}async function httpNetworkOrCacheFetch(e,t=false,r=false){const n=e.request;let i=null;let a=null;let c=null;const u=null;const l=false;if(n.window==="no-window"&&n.redirect==="error"){i=e;a=n}else{a=A(n);i={...e};i.request=a}const d=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic";const p=a.body?a.body.length:null;let g=null;if(a.body==null&&["POST","PUT"].includes(a.method)){g="0"}if(p!=null){g=L(`${p}`)}if(g!=null){a.headersList.append("content-length",g)}if(p!=null&&a.keepalive){}if(a.referrer instanceof URL){a.headersList.append("referer",L(a.referrer.href))}E(a);Q(a);if(!a.headersList.contains("user-agent")){a.headersList.append("user-agent",typeof esbuildDetection==="undefined"?"undici":"node")}if(a.cache==="default"&&(a.headersList.contains("if-modified-since")||a.headersList.contains("if-none-match")||a.headersList.contains("if-unmodified-since")||a.headersList.contains("if-match")||a.headersList.contains("if-range"))){a.cache="no-store"}if(a.cache==="no-cache"&&!a.preventNoCacheCacheControlHeaderModification&&!a.headersList.contains("cache-control")){a.headersList.append("cache-control","max-age=0")}if(a.cache==="no-store"||a.cache==="reload"){if(!a.headersList.contains("pragma")){a.headersList.append("pragma","no-cache")}if(!a.headersList.contains("cache-control")){a.headersList.append("cache-control","no-cache")}}if(a.headersList.contains("range")){a.headersList.append("accept-encoding","identity")}if(!a.headersList.contains("accept-encoding")){if(x(I(a))){a.headersList.append("accept-encoding","br, gzip, deflate")}else{a.headersList.append("accept-encoding","gzip, deflate")}}a.headersList.delete("host");if(d){}if(u==null){a.cache="no-store"}if(a.mode!=="no-store"&&a.mode!=="reload"){}if(c==null){if(a.mode==="only-if-cached"){return s("only if cached")}const e=await httpNetworkFetch(i,d,r);if(!$.has(a.method)&&e.status>=200&&e.status<=399){}if(l&&e.status===304){}if(c==null){c=e}}c.urlList=[...a.urlList];if(a.headersList.contains("range")){c.rangeRequested=true}c.requestIncludesCredentials=d;if(c.status===407){if(n.window==="no-window"){return s()}if(S(e)){return o(e)}return s("proxy authentication required")}if(c.status===421&&!r&&(n.body==null||n.body.source!=null)){if(S(e)){return o(e)}e.controller.connection.destroy();c=await httpNetworkOrCacheFetch(e,t,true)}if(t){}return c}async function httpNetworkFetch(e,t=false,n=false){q(!e.controller.connection||e.controller.connection.destroyed);e.controller.connection={abort:null,destroyed:false,destroy(e){if(!this.destroyed){this.destroyed=true;this.abort?.(e??new Z("The operation was aborted.","AbortError"))}}};const i=e.request;let u=null;const A=e.timingInfo;const d=null;if(d==null){i.cache="no-store"}const p=n?"yes":"no";if(i.mode==="websocket"){}else{}let g=null;if(i.body==null&&e.processRequestEndOfBody){queueMicrotask((()=>e.processRequestEndOfBody()))}else if(i.body!=null){const processBodyChunk=async function*(t){if(S(e)){return}yield t;e.processRequestBodyChunkLength?.(t.byteLength)};const processEndOfBody=()=>{if(S(e)){return}if(e.processRequestEndOfBody){e.processRequestEndOfBody()}};const processBodyError=t=>{if(S(e)){return}if(t.name==="AbortError"){e.controller.abort()}else{e.controller.terminate(t)}};g=async function*(){try{for await(const e of i.body.stream){yield*processBodyChunk(e)}processEndOfBody()}catch(e){processBodyError(e)}}()}try{const{body:t,status:r,statusText:n,headersList:s,socket:o}=await dispatch({body:g});if(o){u=a({status:r,statusText:n,headersList:s,socket:o})}else{const o=t[Symbol.asyncIterator]();e.controller.next=()=>o.next();u=a({status:r,statusText:n,headersList:s})}}catch(t){if(t.name==="AbortError"){e.controller.connection.destroy();return o(e,t)}return s(t)}const pullAlgorithm=()=>{e.controller.resume()};const cancelAlgorithm=t=>{e.controller.abort(t)};if(!he){he=r(63774).ReadableStream}const h=new he({async start(t){e.controller.controller=t},async pull(e){await pullAlgorithm(e)},async cancel(e){await cancelAlgorithm(e)}},{highWaterMark:0,size(){return 1}});u.body={stream:h};e.controller.on("terminated",onAborted);e.controller.resume=async()=>{while(true){let t;let r;try{const{done:r,value:n}=await e.controller.next();if(F(e)){break}t=r?undefined:n}catch(n){if(e.controller.ended&&!A.encodedBodySize){t=undefined}else{t=n;r=true}}if(t===undefined){P(e.controller.controller);finalizeResponse(e,u);return}A.decodedBodySize+=t?.byteLength??0;if(r){e.controller.terminate(t);return}e.controller.controller.enqueue(new Uint8Array(t));if(se(h)){e.controller.terminate();return}if(!e.controller.controller.desiredSize){return}}};function onAborted(t){if(F(e)){u.aborted=true;if(oe(h)){e.controller.controller.error(e.controller.serializedAbortReason)}}else{if(oe(h)){e.controller.controller.error(new TypeError("terminated",{cause:D(t)?t:undefined}))}}e.controller.connection.destroy()}return u;async function dispatch({body:t}){const r=I(i);const n=e.controller.dispatcher;return new Promise(((s,o)=>n.dispatch({path:r.pathname+r.search,origin:r.origin,method:i.method,body:e.controller.dispatcher.isMockActive?i.body&&(i.body.source||i.body.stream):t,headers:i.headersList.entries,maxRedirections:0,upgrade:i.mode==="websocket"?"websocket":undefined},{body:null,abort:null,onConnect(t){const{connection:r}=e.controller;if(r.destroyed){t(new Z("The operation was aborted.","AbortError"))}else{e.controller.on("terminated",t);this.abort=r.abort=t}},onHeaders(e,t,r,n){if(e<200){return}let o=[];let a="";const u=new c;if(Array.isArray(t)){for(let e=0;ee.trim()))}else if(r.toLowerCase()==="location"){a=n}u[X].append(r,n)}}else{const e=Object.keys(t);for(const r of e){const e=t[r];if(r.toLowerCase()==="content-encoding"){o=e.toLowerCase().split(",").map((e=>e.trim())).reverse()}else if(r.toLowerCase()==="location"){a=e}u[X].append(r,e)}}this.body=new te({read:r});const A=[];const d=i.redirect==="follow"&&a&&K.has(e);if(i.method!=="HEAD"&&i.method!=="CONNECT"&&!J.includes(e)&&!d){for(const e of o){if(e==="x-gzip"||e==="gzip"){A.push(l.createGunzip({flush:l.constants.Z_SYNC_FLUSH,finishFlush:l.constants.Z_SYNC_FLUSH}))}else if(e==="deflate"){A.push(l.createInflate())}else if(e==="br"){A.push(l.createBrotliDecompress())}else{A.length=0;break}}}s({status:e,statusText:n,headersList:u[X],body:A.length?re(this.body,...A,(()=>{})):this.body.on("error",(()=>{}))});return true},onData(t){if(e.controller.dump){return}const r=t;A.encodedBodySize+=r.byteLength;return this.body.push(r)},onComplete(){if(this.abort){e.controller.off("terminated",this.abort)}e.controller.ended=true;this.body.push(null)},onError(t){if(this.abort){e.controller.off("terminated",this.abort)}this.body?.destroy(t);e.controller.terminate(t);o(t)},onUpgrade(e,t,r){if(e!==101){return}const n=new c;for(let e=0;e{const{extractBody:n,mixinBody:s,cloneBody:o}=r(8923);const{Headers:i,fill:a,HeadersList:c}=r(26349);const{FinalizationRegistry:u}=r(13194)();const A=r(3440);const{isValidHTTPToken:l,sameOrigin:d,normalizeMethod:p,makePolicyContainer:g,normalizeMethodRecord:h}=r(15523);const{forbiddenMethodsSet:m,corsSafeListedMethodsSet:E,referrerPolicy:y,requestRedirect:I,requestMode:C,requestCredentials:b,requestCache:B,requestDuplex:Q}=r(87326);const{kEnumerableProperty:T}=A;const{kHeaders:v,kSignal:w,kState:_,kGuard:O,kRealm:k}=r(89710);const{webidl:R}=r(74222);const{getGlobalOrigin:S}=r(75628);const{URLSerializer:F}=r(94322);const{kHeadersList:D,kConstruct:N}=r(36443);const P=r(42613);const{getMaxListeners:L,setMaxListeners:U,getEventListeners:M,defaultMaxListeners:x}=r(24434);let G=globalThis.TransformStream;const j=Symbol("abortController");const V=new u((({signal:e,abort:t})=>{e.removeEventListener("abort",t)}));class Request{constructor(e,t={}){if(e===N){return}R.argumentLengthCheck(arguments,1,{header:"Request constructor"});e=R.converters.RequestInfo(e);t=R.converters.RequestInit(t);this[k]={settingsObject:{baseUrl:S(),get origin(){return this.baseUrl?.origin},policyContainer:g()}};let s=null;let o=null;const u=this[k].settingsObject.baseUrl;let y=null;if(typeof e==="string"){let t;try{t=new URL(e,u)}catch(t){throw new TypeError("Failed to parse URL from "+e,{cause:t})}if(t.username||t.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e)}s=makeRequest({urlList:[t]});o="cors"}else{P(e instanceof Request);s=e[_];y=e[w]}const I=this[k].settingsObject.origin;let C="client";if(s.window?.constructor?.name==="EnvironmentSettingsObject"&&d(s.window,I)){C=s.window}if(t.window!=null){throw new TypeError(`'window' option '${C}' must be null`)}if("window"in t){C="no-window"}s=makeRequest({method:s.method,headersList:s.headersList,unsafeRequest:s.unsafeRequest,client:this[k].settingsObject,window:C,priority:s.priority,origin:s.origin,referrer:s.referrer,referrerPolicy:s.referrerPolicy,mode:s.mode,credentials:s.credentials,cache:s.cache,redirect:s.redirect,integrity:s.integrity,keepalive:s.keepalive,reloadNavigation:s.reloadNavigation,historyNavigation:s.historyNavigation,urlList:[...s.urlList]});const b=Object.keys(t).length!==0;if(b){if(s.mode==="navigate"){s.mode="same-origin"}s.reloadNavigation=false;s.historyNavigation=false;s.origin="client";s.referrer="client";s.referrerPolicy="";s.url=s.urlList[s.urlList.length-1];s.urlList=[s.url]}if(t.referrer!==undefined){const e=t.referrer;if(e===""){s.referrer="no-referrer"}else{let t;try{t=new URL(e,u)}catch(t){throw new TypeError(`Referrer "${e}" is not a valid URL.`,{cause:t})}if(t.protocol==="about:"&&t.hostname==="client"||I&&!d(t,this[k].settingsObject.baseUrl)){s.referrer="client"}else{s.referrer=t}}}if(t.referrerPolicy!==undefined){s.referrerPolicy=t.referrerPolicy}let B;if(t.mode!==undefined){B=t.mode}else{B=o}if(B==="navigate"){throw R.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(B!=null){s.mode=B}if(t.credentials!==undefined){s.credentials=t.credentials}if(t.cache!==undefined){s.cache=t.cache}if(s.cache==="only-if-cached"&&s.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode")}if(t.redirect!==undefined){s.redirect=t.redirect}if(t.integrity!=null){s.integrity=String(t.integrity)}if(t.keepalive!==undefined){s.keepalive=Boolean(t.keepalive)}if(t.method!==undefined){let e=t.method;if(!l(e)){throw new TypeError(`'${e}' is not a valid HTTP method.`)}if(m.has(e.toUpperCase())){throw new TypeError(`'${e}' HTTP method is unsupported.`)}e=h[e]??p(e);s.method=e}if(t.signal!==undefined){y=t.signal}this[_]=s;const Q=new AbortController;this[w]=Q.signal;this[w][k]=this[k];if(y!=null){if(!y||typeof y.aborted!=="boolean"||typeof y.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(y.aborted){Q.abort(y.reason)}else{this[j]=Q;const e=new WeakRef(Q);const abort=function(){const t=e.deref();if(t!==undefined){t.abort(this.reason)}};try{if(typeof L==="function"&&L(y)===x){U(100,y)}else if(M(y,"abort").length>=x){U(100,y)}}catch{}A.addAbortListener(y,abort);V.register(Q,{signal:y,abort:abort})}}this[v]=new i(N);this[v][D]=s.headersList;this[v][O]="request";this[v][k]=this[k];if(B==="no-cors"){if(!E.has(s.method)){throw new TypeError(`'${s.method} is unsupported in no-cors mode.`)}this[v][O]="request-no-cors"}if(b){const e=this[v][D];const r=t.headers!==undefined?t.headers:new c(e);e.clear();if(r instanceof c){for(const[t,n]of r){e.append(t,n)}e.cookies=r.cookies}else{a(this[v],r)}}const T=e instanceof Request?e[_].body:null;if((t.body!=null||T!=null)&&(s.method==="GET"||s.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let F=null;if(t.body!=null){const[e,r]=n(t.body,s.keepalive);F=e;if(r&&!this[v][D].contains("content-type")){this[v].append("content-type",r)}}const H=F??T;if(H!=null&&H.source==null){if(F!=null&&t.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(s.mode!=="same-origin"&&s.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}s.useCORSPreflightFlag=true}let q=H;if(F==null&&T!=null){if(A.isDisturbed(T.stream)||T.stream.locked){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}if(!G){G=r(63774).TransformStream}const e=new G;T.stream.pipeThrough(e);q={source:T.source,length:T.length,stream:e.readable}}this[_].body=q}get method(){R.brandCheck(this,Request);return this[_].method}get url(){R.brandCheck(this,Request);return F(this[_].url)}get headers(){R.brandCheck(this,Request);return this[v]}get destination(){R.brandCheck(this,Request);return this[_].destination}get referrer(){R.brandCheck(this,Request);if(this[_].referrer==="no-referrer"){return""}if(this[_].referrer==="client"){return"about:client"}return this[_].referrer.toString()}get referrerPolicy(){R.brandCheck(this,Request);return this[_].referrerPolicy}get mode(){R.brandCheck(this,Request);return this[_].mode}get credentials(){return this[_].credentials}get cache(){R.brandCheck(this,Request);return this[_].cache}get redirect(){R.brandCheck(this,Request);return this[_].redirect}get integrity(){R.brandCheck(this,Request);return this[_].integrity}get keepalive(){R.brandCheck(this,Request);return this[_].keepalive}get isReloadNavigation(){R.brandCheck(this,Request);return this[_].reloadNavigation}get isHistoryNavigation(){R.brandCheck(this,Request);return this[_].historyNavigation}get signal(){R.brandCheck(this,Request);return this[w]}get body(){R.brandCheck(this,Request);return this[_].body?this[_].body.stream:null}get bodyUsed(){R.brandCheck(this,Request);return!!this[_].body&&A.isDisturbed(this[_].body.stream)}get duplex(){R.brandCheck(this,Request);return"half"}clone(){R.brandCheck(this,Request);if(this.bodyUsed||this.body?.locked){throw new TypeError("unusable")}const e=cloneRequest(this[_]);const t=new Request(N);t[_]=e;t[k]=this[k];t[v]=new i(N);t[v][D]=e.headersList;t[v][O]=this[v][O];t[v][k]=this[v][k];const r=new AbortController;if(this.signal.aborted){r.abort(this.signal.reason)}else{A.addAbortListener(this.signal,(()=>{r.abort(this.signal.reason)}))}t[w]=r.signal;return t}}s(Request);function makeRequest(e){const t={method:"GET",localURLsOnly:false,unsafeRequest:false,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:false,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:false,credentials:"same-origin",useCredentials:false,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:false,historyNavigation:false,userActivation:false,taintedOrigin:false,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:false,done:false,timingAllowFailed:false,...e,headersList:e.headersList?new c(e.headersList):new c};t.url=t.urlList[0];return t}function cloneRequest(e){const t=makeRequest({...e,body:null});if(e.body!=null){t.body=o(e.body)}return t}Object.defineProperties(Request.prototype,{method:T,url:T,headers:T,redirect:T,clone:T,signal:T,duplex:T,destination:T,body:T,bodyUsed:T,isHistoryNavigation:T,isReloadNavigation:T,keepalive:T,integrity:T,cache:T,credentials:T,attribute:T,referrerPolicy:T,referrer:T,mode:T,[Symbol.toStringTag]:{value:"Request",configurable:true}});R.converters.Request=R.interfaceConverter(Request);R.converters.RequestInfo=function(e){if(typeof e==="string"){return R.converters.USVString(e)}if(e instanceof Request){return R.converters.Request(e)}return R.converters.USVString(e)};R.converters.AbortSignal=R.interfaceConverter(AbortSignal);R.converters.RequestInit=R.dictionaryConverter([{key:"method",converter:R.converters.ByteString},{key:"headers",converter:R.converters.HeadersInit},{key:"body",converter:R.nullableConverter(R.converters.BodyInit)},{key:"referrer",converter:R.converters.USVString},{key:"referrerPolicy",converter:R.converters.DOMString,allowedValues:y},{key:"mode",converter:R.converters.DOMString,allowedValues:C},{key:"credentials",converter:R.converters.DOMString,allowedValues:b},{key:"cache",converter:R.converters.DOMString,allowedValues:B},{key:"redirect",converter:R.converters.DOMString,allowedValues:I},{key:"integrity",converter:R.converters.DOMString},{key:"keepalive",converter:R.converters.boolean},{key:"signal",converter:R.nullableConverter((e=>R.converters.AbortSignal(e,{strict:false})))},{key:"window",converter:R.converters.any},{key:"duplex",converter:R.converters.DOMString,allowedValues:Q}]);e.exports={Request:Request,makeRequest:makeRequest}},48676:(e,t,r)=>{const{Headers:n,HeadersList:s,fill:o}=r(26349);const{extractBody:i,cloneBody:a,mixinBody:c}=r(8923);const u=r(3440);const{kEnumerableProperty:A}=u;const{isValidReasonPhrase:l,isCancelled:d,isAborted:p,isBlobLike:g,serializeJavascriptValueToJSONString:h,isErrorLike:m,isomorphicEncode:E}=r(15523);const{redirectStatusSet:y,nullBodyStatus:I,DOMException:C}=r(87326);const{kState:b,kHeaders:B,kGuard:Q,kRealm:T}=r(89710);const{webidl:v}=r(74222);const{FormData:w}=r(43073);const{getGlobalOrigin:_}=r(75628);const{URLSerializer:O}=r(94322);const{kHeadersList:k,kConstruct:R}=r(36443);const S=r(42613);const{types:F}=r(39023);const D=globalThis.ReadableStream||r(63774).ReadableStream;const N=new TextEncoder("utf-8");class Response{static error(){const e={settingsObject:{}};const t=new Response;t[b]=makeNetworkError();t[T]=e;t[B][k]=t[b].headersList;t[B][Q]="immutable";t[B][T]=e;return t}static json(e,t={}){v.argumentLengthCheck(arguments,1,{header:"Response.json"});if(t!==null){t=v.converters.ResponseInit(t)}const r=N.encode(h(e));const n=i(r);const s={settingsObject:{}};const o=new Response;o[T]=s;o[B][Q]="response";o[B][T]=s;initializeResponse(o,t,{body:n[0],type:"application/json"});return o}static redirect(e,t=302){const r={settingsObject:{}};v.argumentLengthCheck(arguments,1,{header:"Response.redirect"});e=v.converters.USVString(e);t=v.converters["unsigned short"](t);let n;try{n=new URL(e,_())}catch(t){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:t})}if(!y.has(t)){throw new RangeError("Invalid status code "+t)}const s=new Response;s[T]=r;s[B][Q]="immutable";s[B][T]=r;s[b].status=t;const o=E(O(n));s[b].headersList.append("location",o);return s}constructor(e=null,t={}){if(e!==null){e=v.converters.BodyInit(e)}t=v.converters.ResponseInit(t);this[T]={settingsObject:{}};this[b]=makeResponse({});this[B]=new n(R);this[B][Q]="response";this[B][k]=this[b].headersList;this[B][T]=this[T];let r=null;if(e!=null){const[t,n]=i(e);r={body:t,type:n}}initializeResponse(this,t,r)}get type(){v.brandCheck(this,Response);return this[b].type}get url(){v.brandCheck(this,Response);const e=this[b].urlList;const t=e[e.length-1]??null;if(t===null){return""}return O(t,true)}get redirected(){v.brandCheck(this,Response);return this[b].urlList.length>1}get status(){v.brandCheck(this,Response);return this[b].status}get ok(){v.brandCheck(this,Response);return this[b].status>=200&&this[b].status<=299}get statusText(){v.brandCheck(this,Response);return this[b].statusText}get headers(){v.brandCheck(this,Response);return this[B]}get body(){v.brandCheck(this,Response);return this[b].body?this[b].body.stream:null}get bodyUsed(){v.brandCheck(this,Response);return!!this[b].body&&u.isDisturbed(this[b].body.stream)}clone(){v.brandCheck(this,Response);if(this.bodyUsed||this.body&&this.body.locked){throw v.errors.exception({header:"Response.clone",message:"Body has already been consumed."})}const e=cloneResponse(this[b]);const t=new Response;t[b]=e;t[T]=this[T];t[B][k]=e.headersList;t[B][Q]=this[B][Q];t[B][T]=this[B][T];return t}}c(Response);Object.defineProperties(Response.prototype,{type:A,url:A,status:A,ok:A,redirected:A,statusText:A,headers:A,clone:A,body:A,bodyUsed:A,[Symbol.toStringTag]:{value:"Response",configurable:true}});Object.defineProperties(Response,{json:A,redirect:A,error:A});function cloneResponse(e){if(e.internalResponse){return filterResponse(cloneResponse(e.internalResponse),e.type)}const t=makeResponse({...e,body:null});if(e.body!=null){t.body=a(e.body)}return t}function makeResponse(e){return{aborted:false,rangeRequested:false,timingAllowPassed:false,requestIncludesCredentials:false,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new s(e.headersList):new s,urlList:e.urlList?[...e.urlList]:[]}}function makeNetworkError(e){const t=m(e);return makeResponse({type:"error",status:0,error:t?e:new Error(e?String(e):e),aborted:e&&e.name==="AbortError"})}function makeFilteredResponse(e,t){t={internalResponse:e,...t};return new Proxy(e,{get(e,r){return r in t?t[r]:e[r]},set(e,r,n){S(!(r in t));e[r]=n;return true}})}function filterResponse(e,t){if(t==="basic"){return makeFilteredResponse(e,{type:"basic",headersList:e.headersList})}else if(t==="cors"){return makeFilteredResponse(e,{type:"cors",headersList:e.headersList})}else if(t==="opaque"){return makeFilteredResponse(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(t==="opaqueredirect"){return makeFilteredResponse(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{S(false)}}function makeAppropriateNetworkError(e,t=null){S(d(e));return p(e)?makeNetworkError(Object.assign(new C("The operation was aborted.","AbortError"),{cause:t})):makeNetworkError(Object.assign(new C("Request was cancelled."),{cause:t}))}function initializeResponse(e,t,r){if(t.status!==null&&(t.status<200||t.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in t&&t.statusText!=null){if(!l(String(t.statusText))){throw new TypeError("Invalid statusText")}}if("status"in t&&t.status!=null){e[b].status=t.status}if("statusText"in t&&t.statusText!=null){e[b].statusText=t.statusText}if("headers"in t&&t.headers!=null){o(e[B],t.headers)}if(r){if(I.includes(e.status)){throw v.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status})}e[b].body=r.body;if(r.type!=null&&!e[b].headersList.contains("Content-Type")){e[b].headersList.append("content-type",r.type)}}}v.converters.ReadableStream=v.interfaceConverter(D);v.converters.FormData=v.interfaceConverter(w);v.converters.URLSearchParams=v.interfaceConverter(URLSearchParams);v.converters.XMLHttpRequestBodyInit=function(e){if(typeof e==="string"){return v.converters.USVString(e)}if(g(e)){return v.converters.Blob(e,{strict:false})}if(F.isArrayBuffer(e)||F.isTypedArray(e)||F.isDataView(e)){return v.converters.BufferSource(e)}if(u.isFormDataLike(e)){return v.converters.FormData(e,{strict:false})}if(e instanceof URLSearchParams){return v.converters.URLSearchParams(e)}return v.converters.DOMString(e)};v.converters.BodyInit=function(e){if(e instanceof D){return v.converters.ReadableStream(e)}if(e?.[Symbol.asyncIterator]){return e}return v.converters.XMLHttpRequestBodyInit(e)};v.converters.ResponseInit=v.dictionaryConverter([{key:"status",converter:v.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:v.converters.ByteString,defaultValue:""},{key:"headers",converter:v.converters.HeadersInit}]);e.exports={makeNetworkError:makeNetworkError,makeResponse:makeResponse,makeAppropriateNetworkError:makeAppropriateNetworkError,filterResponse:filterResponse,Response:Response,cloneResponse:cloneResponse}},89710:e=>{e.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}},15523:(e,t,r)=>{const{redirectStatusSet:n,referrerPolicySet:s,badPortsSet:o}=r(87326);const{getGlobalOrigin:i}=r(75628);const{performance:a}=r(82987);const{isBlobLike:c,toUSVString:u,ReadableStreamFrom:A}=r(3440);const l=r(42613);const{isUint8Array:d}=r(98253);let p=[];let g;try{g=r(76982);const e=["sha256","sha384","sha512"];p=g.getHashes().filter((t=>e.includes(t)))}catch{}function responseURL(e){const t=e.urlList;const r=t.length;return r===0?null:t[r-1].toString()}function responseLocationURL(e,t){if(!n.has(e.status)){return null}let r=e.headersList.get("location");if(r!==null&&isValidHeaderValue(r)){r=new URL(r,responseURL(e))}if(r&&!r.hash){r.hash=t}return r}function requestCurrentURL(e){return e.urlList[e.urlList.length-1]}function requestBadPort(e){const t=requestCurrentURL(e);if(urlIsHttpHttpsScheme(t)&&o.has(t.port)){return"blocked"}return"allowed"}function isErrorLike(e){return e instanceof Error||(e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException")}function isValidReasonPhrase(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255)){return false}}return true}function isTokenCharCode(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return false;default:return e>=33&&e<=126}}function isValidHTTPToken(e){if(e.length===0){return false}for(let t=0;t0){for(let e=n.length;e!==0;e--){const t=n[e-1].trim();if(s.has(t)){o=t;break}}}if(o!==""){e.referrerPolicy=o}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(e){let t=null;t=e.mode;e.headersList.set("sec-fetch-mode",t)}function appendRequestOriginHeader(e){let t=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket"){if(t){e.headersList.append("origin",t)}}else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(e.origin&&urlHasHttpsScheme(e.origin)&&!urlHasHttpsScheme(requestCurrentURL(e))){t=null}break;case"same-origin":if(!sameOrigin(e,requestCurrentURL(e))){t=null}break;default:}if(t){e.headersList.append("origin",t)}}}function coarsenedSharedCurrentTime(e){return a.now()}function createOpaqueTimingInfo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(e){return{referrerPolicy:e.referrerPolicy}}function determineRequestsReferrer(e){const t=e.referrerPolicy;l(t);let r=null;if(e.referrer==="client"){const e=i();if(!e||e.origin==="null"){return"no-referrer"}r=new URL(e)}else if(e.referrer instanceof URL){r=e.referrer}let n=stripURLForReferrer(r);const s=stripURLForReferrer(r,true);if(n.toString().length>4096){n=s}const o=sameOrigin(e,n);const a=isURLPotentiallyTrustworthy(n)&&!isURLPotentiallyTrustworthy(e.url);switch(t){case"origin":return s!=null?s:stripURLForReferrer(r,true);case"unsafe-url":return n;case"same-origin":return o?s:"no-referrer";case"origin-when-cross-origin":return o?n:s;case"strict-origin-when-cross-origin":{const t=requestCurrentURL(e);if(sameOrigin(n,t)){return n}if(isURLPotentiallyTrustworthy(n)&&!isURLPotentiallyTrustworthy(t)){return"no-referrer"}return s}case"strict-origin":case"no-referrer-when-downgrade":default:return a?"no-referrer":s}}function stripURLForReferrer(e,t){l(e instanceof URL);if(e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"){return"no-referrer"}e.username="";e.password="";e.hash="";if(t){e.pathname="";e.search=""}return e}function isURLPotentiallyTrustworthy(e){if(!(e instanceof URL)){return false}if(e.href==="about:blank"||e.href==="about:srcdoc"){return true}if(e.protocol==="data:")return true;if(e.protocol==="file:")return true;return isOriginPotentiallyTrustworthy(e.origin);function isOriginPotentiallyTrustworthy(e){if(e==null||e==="null")return false;const t=new URL(e);if(t.protocol==="https:"||t.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(t.hostname)||(t.hostname==="localhost"||t.hostname.includes("localhost."))||t.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(e,t){if(g===undefined){return true}const r=parseMetadata(t);if(r==="no metadata"){return true}if(r.length===0){return true}const n=getStrongestMetadata(r);const s=filterMetadataListByAlgorithm(r,n);for(const t of s){const r=t.algo;const n=t.hash;let s=g.createHash(r).update(e).digest("base64");if(s[s.length-1]==="="){if(s[s.length-2]==="="){s=s.slice(0,-2)}else{s=s.slice(0,-1)}}if(compareBase64Mixed(s,n)){return true}}return false}const h=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function parseMetadata(e){const t=[];let r=true;for(const n of e.split(" ")){r=false;const e=h.exec(n);if(e===null||e.groups===undefined||e.groups.algo===undefined){continue}const s=e.groups.algo.toLowerCase();if(p.includes(s)){t.push(e.groups)}}if(r===true){return"no metadata"}return t}function getStrongestMetadata(e){let t=e[0].algo;if(t[3]==="5"){return t}for(let r=1;r{e=r;t=n}));return{promise:r,resolve:e,reject:t}}function isAborted(e){return e.controller.state==="aborted"}function isCancelled(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}const m={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(m,null);function normalizeMethod(e){return m[e.toLowerCase()]??e}function serializeJavascriptValueToJSONString(e){const t=JSON.stringify(e);if(t===undefined){throw new TypeError("Value is not JSON serializable")}l(typeof t==="string");return t}const E=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function makeIterator(e,t,r){const n={index:0,kind:r,target:e};const s={next(){if(Object.getPrototypeOf(this)!==s){throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`)}const{index:e,kind:r,target:o}=n;const i=o();const a=i.length;if(e>=a){return{value:undefined,done:true}}const c=i[e];n.index=e+1;return iteratorResult(c,r)},[Symbol.toStringTag]:`${t} Iterator`};Object.setPrototypeOf(s,E);return Object.setPrototypeOf({},s)}function iteratorResult(e,t){let r;switch(t){case"key":{r=e[0];break}case"value":{r=e[1];break}case"key+value":{r=e;break}}return{value:r,done:false}}async function fullyReadBody(e,t,r){const n=t;const s=r;let o;try{o=e.stream.getReader()}catch(e){s(e);return}try{const e=await readAllBytes(o);n(e)}catch(e){s(e)}}let y=globalThis.ReadableStream;function isReadableStreamLike(e){if(!y){y=r(63774).ReadableStream}return e instanceof y||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee==="function"}const I=65535;function isomorphicDecode(e){if(e.lengthe+String.fromCharCode(t)),"")}function readableStreamClose(e){try{e.close()}catch(e){if(!e.message.includes("Controller is already closed")){throw e}}}function isomorphicEncode(e){for(let t=0;tObject.prototype.hasOwnProperty.call(e,t));e.exports={isAborted:isAborted,isCancelled:isCancelled,createDeferredPromise:createDeferredPromise,ReadableStreamFrom:A,toUSVString:u,tryUpgradeRequestToAPotentiallyTrustworthyURL:tryUpgradeRequestToAPotentiallyTrustworthyURL,coarsenedSharedCurrentTime:coarsenedSharedCurrentTime,determineRequestsReferrer:determineRequestsReferrer,makePolicyContainer:makePolicyContainer,clonePolicyContainer:clonePolicyContainer,appendFetchMetadata:appendFetchMetadata,appendRequestOriginHeader:appendRequestOriginHeader,TAOCheck:TAOCheck,corsCheck:corsCheck,crossOriginResourcePolicyCheck:crossOriginResourcePolicyCheck,createOpaqueTimingInfo:createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect:setRequestReferrerPolicyOnRedirect,isValidHTTPToken:isValidHTTPToken,requestBadPort:requestBadPort,requestCurrentURL:requestCurrentURL,responseURL:responseURL,responseLocationURL:responseLocationURL,isBlobLike:c,isURLPotentiallyTrustworthy:isURLPotentiallyTrustworthy,isValidReasonPhrase:isValidReasonPhrase,sameOrigin:sameOrigin,normalizeMethod:normalizeMethod,serializeJavascriptValueToJSONString:serializeJavascriptValueToJSONString,makeIterator:makeIterator,isValidHeaderName:isValidHeaderName,isValidHeaderValue:isValidHeaderValue,hasOwn:C,isErrorLike:isErrorLike,fullyReadBody:fullyReadBody,bytesMatch:bytesMatch,isReadableStreamLike:isReadableStreamLike,readableStreamClose:readableStreamClose,isomorphicEncode:isomorphicEncode,isomorphicDecode:isomorphicDecode,urlIsLocal:urlIsLocal,urlHasHttpsScheme:urlHasHttpsScheme,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme,readAllBytes:readAllBytes,normalizeMethodRecord:m,parseMetadata:parseMetadata}},74222:(e,t,r)=>{const{types:n}=r(39023);const{hasOwn:s,toUSVString:o}=r(15523);const i={};i.converters={};i.util={};i.errors={};i.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};i.errors.conversionFailed=function(e){const t=e.types.length===1?"":" one of";const r=`${e.argument} could not be converted to`+`${t}: ${e.types.join(", ")}.`;return i.errors.exception({header:e.prefix,message:r})};i.errors.invalidArgument=function(e){return i.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};i.brandCheck=function(e,t,r=undefined){if(r?.strict!==false&&!(e instanceof t)){throw new TypeError("Illegal invocation")}else{return e?.[Symbol.toStringTag]===t.prototype[Symbol.toStringTag]}};i.argumentLengthCheck=function({length:e},t,r){if(es){throw i.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${s}, got ${a}.`})}return a}if(!Number.isNaN(a)&&n.clamp===true){a=Math.min(Math.max(a,o),s);if(Math.floor(a)%2===0){a=Math.floor(a)}else{a=Math.ceil(a)}return a}if(Number.isNaN(a)||a===0&&Object.is(0,a)||a===Number.POSITIVE_INFINITY||a===Number.NEGATIVE_INFINITY){return 0}a=i.util.IntegerPart(a);a=a%Math.pow(2,t);if(r==="signed"&&a>=Math.pow(2,t)-1){return a-Math.pow(2,t)}return a};i.util.IntegerPart=function(e){const t=Math.floor(Math.abs(e));if(e<0){return-1*t}return t};i.sequenceConverter=function(e){return t=>{if(i.util.Type(t)!=="Object"){throw i.errors.exception({header:"Sequence",message:`Value of type ${i.util.Type(t)} is not an Object.`})}const r=t?.[Symbol.iterator]?.();const n=[];if(r===undefined||typeof r.next!=="function"){throw i.errors.exception({header:"Sequence",message:"Object is not an iterator."})}while(true){const{done:t,value:s}=r.next();if(t){break}n.push(e(s))}return n}};i.recordConverter=function(e,t){return r=>{if(i.util.Type(r)!=="Object"){throw i.errors.exception({header:"Record",message:`Value of type ${i.util.Type(r)} is not an Object.`})}const s={};if(!n.isProxy(r)){const n=Object.keys(r);for(const o of n){const n=e(o);const i=t(r[o]);s[n]=i}return s}const o=Reflect.ownKeys(r);for(const n of o){const o=Reflect.getOwnPropertyDescriptor(r,n);if(o?.enumerable){const o=e(n);const i=t(r[n]);s[o]=i}}return s}};i.interfaceConverter=function(e){return(t,r={})=>{if(r.strict!==false&&!(t instanceof e)){throw i.errors.exception({header:e.name,message:`Expected ${t} to be an instance of ${e.name}.`})}return t}};i.dictionaryConverter=function(e){return t=>{const r=i.util.Type(t);const n={};if(r==="Null"||r==="Undefined"){return n}else if(r!=="Object"){throw i.errors.exception({header:"Dictionary",message:`Expected ${t} to be one of: Null, Undefined, Object.`})}for(const r of e){const{key:e,defaultValue:o,required:a,converter:c}=r;if(a===true){if(!s(t,e)){throw i.errors.exception({header:"Dictionary",message:`Missing required key "${e}".`})}}let u=t[e];const A=s(r,"defaultValue");if(A&&u!==null){u=u??o}if(a||A||u!==undefined){u=c(u);if(r.allowedValues&&!r.allowedValues.includes(u)){throw i.errors.exception({header:"Dictionary",message:`${u} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`})}n[e]=u}}return n}};i.nullableConverter=function(e){return t=>{if(t===null){return t}return e(t)}};i.converters.DOMString=function(e,t={}){if(e===null&&t.legacyNullToEmptyString){return""}if(typeof e==="symbol"){throw new TypeError("Could not convert argument of type symbol to string.")}return String(e)};i.converters.ByteString=function(e){const t=i.converters.DOMString(e);for(let e=0;e255){throw new TypeError("Cannot convert argument to a ByteString because the character at "+`index ${e} has a value of ${t.charCodeAt(e)} which is greater than 255.`)}}return t};i.converters.USVString=o;i.converters.boolean=function(e){const t=Boolean(e);return t};i.converters.any=function(e){return e};i.converters["long long"]=function(e){const t=i.util.ConvertToInt(e,64,"signed");return t};i.converters["unsigned long long"]=function(e){const t=i.util.ConvertToInt(e,64,"unsigned");return t};i.converters["unsigned long"]=function(e){const t=i.util.ConvertToInt(e,32,"unsigned");return t};i.converters["unsigned short"]=function(e,t){const r=i.util.ConvertToInt(e,16,"unsigned",t);return r};i.converters.ArrayBuffer=function(e,t={}){if(i.util.Type(e)!=="Object"||!n.isAnyArrayBuffer(e)){throw i.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]})}if(t.allowShared===false&&n.isSharedArrayBuffer(e)){throw i.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};i.converters.TypedArray=function(e,t,r={}){if(i.util.Type(e)!=="Object"||!n.isTypedArray(e)||e.constructor.name!==t.name){throw i.errors.conversionFailed({prefix:`${t.name}`,argument:`${e}`,types:[t.name]})}if(r.allowShared===false&&n.isSharedArrayBuffer(e.buffer)){throw i.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};i.converters.DataView=function(e,t={}){if(i.util.Type(e)!=="Object"||!n.isDataView(e)){throw i.errors.exception({header:"DataView",message:"Object is not a DataView."})}if(t.allowShared===false&&n.isSharedArrayBuffer(e.buffer)){throw i.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};i.converters.BufferSource=function(e,t={}){if(n.isAnyArrayBuffer(e)){return i.converters.ArrayBuffer(e,t)}if(n.isTypedArray(e)){return i.converters.TypedArray(e,e.constructor)}if(n.isDataView(e)){return i.converters.DataView(e,t)}throw new TypeError(`Could not convert ${e} to a BufferSource.`)};i.converters["sequence"]=i.sequenceConverter(i.converters.ByteString);i.converters["sequence>"]=i.sequenceConverter(i.converters["sequence"]);i.converters["record"]=i.recordConverter(i.converters.ByteString,i.converters.ByteString);e.exports={webidl:i}},40396:e=>{function getEncoding(e){if(!e){return"failure"}switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}e.exports={getEncoding:getEncoding}},82160:(e,t,r)=>{const{staticPropertyDescriptors:n,readOperation:s,fireAProgressEvent:o}=r(10165);const{kState:i,kError:a,kResult:c,kEvents:u,kAborted:A}=r(86812);const{webidl:l}=r(74222);const{kEnumerableProperty:d}=r(3440);class FileReader extends EventTarget{constructor(){super();this[i]="empty";this[c]=null;this[a]=null;this[u]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"});e=l.converters.Blob(e,{strict:false});s(this,e,"ArrayBuffer")}readAsBinaryString(e){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"});e=l.converters.Blob(e,{strict:false});s(this,e,"BinaryString")}readAsText(e,t=undefined){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"});e=l.converters.Blob(e,{strict:false});if(t!==undefined){t=l.converters.DOMString(t)}s(this,e,"Text",t)}readAsDataURL(e){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"});e=l.converters.Blob(e,{strict:false});s(this,e,"DataURL")}abort(){if(this[i]==="empty"||this[i]==="done"){this[c]=null;return}if(this[i]==="loading"){this[i]="done";this[c]=null}this[A]=true;o("abort",this);if(this[i]!=="loading"){o("loadend",this)}}get readyState(){l.brandCheck(this,FileReader);switch(this[i]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){l.brandCheck(this,FileReader);return this[c]}get error(){l.brandCheck(this,FileReader);return this[a]}get onloadend(){l.brandCheck(this,FileReader);return this[u].loadend}set onloadend(e){l.brandCheck(this,FileReader);if(this[u].loadend){this.removeEventListener("loadend",this[u].loadend)}if(typeof e==="function"){this[u].loadend=e;this.addEventListener("loadend",e)}else{this[u].loadend=null}}get onerror(){l.brandCheck(this,FileReader);return this[u].error}set onerror(e){l.brandCheck(this,FileReader);if(this[u].error){this.removeEventListener("error",this[u].error)}if(typeof e==="function"){this[u].error=e;this.addEventListener("error",e)}else{this[u].error=null}}get onloadstart(){l.brandCheck(this,FileReader);return this[u].loadstart}set onloadstart(e){l.brandCheck(this,FileReader);if(this[u].loadstart){this.removeEventListener("loadstart",this[u].loadstart)}if(typeof e==="function"){this[u].loadstart=e;this.addEventListener("loadstart",e)}else{this[u].loadstart=null}}get onprogress(){l.brandCheck(this,FileReader);return this[u].progress}set onprogress(e){l.brandCheck(this,FileReader);if(this[u].progress){this.removeEventListener("progress",this[u].progress)}if(typeof e==="function"){this[u].progress=e;this.addEventListener("progress",e)}else{this[u].progress=null}}get onload(){l.brandCheck(this,FileReader);return this[u].load}set onload(e){l.brandCheck(this,FileReader);if(this[u].load){this.removeEventListener("load",this[u].load)}if(typeof e==="function"){this[u].load=e;this.addEventListener("load",e)}else{this[u].load=null}}get onabort(){l.brandCheck(this,FileReader);return this[u].abort}set onabort(e){l.brandCheck(this,FileReader);if(this[u].abort){this.removeEventListener("abort",this[u].abort)}if(typeof e==="function"){this[u].abort=e;this.addEventListener("abort",e)}else{this[u].abort=null}}}FileReader.EMPTY=FileReader.prototype.EMPTY=0;FileReader.LOADING=FileReader.prototype.LOADING=1;FileReader.DONE=FileReader.prototype.DONE=2;Object.defineProperties(FileReader.prototype,{EMPTY:n,LOADING:n,DONE:n,readAsArrayBuffer:d,readAsBinaryString:d,readAsText:d,readAsDataURL:d,abort:d,readyState:d,result:d,error:d,onloadstart:d,onprogress:d,onload:d,onabort:d,onerror:d,onloadend:d,[Symbol.toStringTag]:{value:"FileReader",writable:false,enumerable:false,configurable:true}});Object.defineProperties(FileReader,{EMPTY:n,LOADING:n,DONE:n});e.exports={FileReader:FileReader}},15976:(e,t,r)=>{const{webidl:n}=r(74222);const s=Symbol("ProgressEvent state");class ProgressEvent extends Event{constructor(e,t={}){e=n.converters.DOMString(e);t=n.converters.ProgressEventInit(t??{});super(e,t);this[s]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){n.brandCheck(this,ProgressEvent);return this[s].lengthComputable}get loaded(){n.brandCheck(this,ProgressEvent);return this[s].loaded}get total(){n.brandCheck(this,ProgressEvent);return this[s].total}}n.converters.ProgressEventInit=n.dictionaryConverter([{key:"lengthComputable",converter:n.converters.boolean,defaultValue:false},{key:"loaded",converter:n.converters["unsigned long long"],defaultValue:0},{key:"total",converter:n.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:n.converters.boolean,defaultValue:false},{key:"cancelable",converter:n.converters.boolean,defaultValue:false},{key:"composed",converter:n.converters.boolean,defaultValue:false}]);e.exports={ProgressEvent:ProgressEvent}},86812:e=>{e.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}},10165:(e,t,r)=>{const{kState:n,kError:s,kResult:o,kAborted:i,kLastProgressEventFired:a}=r(86812);const{ProgressEvent:c}=r(15976);const{getEncoding:u}=r(40396);const{DOMException:A}=r(87326);const{serializeAMimeType:l,parseMIMEType:d}=r(94322);const{types:p}=r(39023);const{StringDecoder:g}=r(13193);const{btoa:h}=r(20181);const m={enumerable:true,writable:false,configurable:false};function readOperation(e,t,r,c){if(e[n]==="loading"){throw new A("Invalid state","InvalidStateError")}e[n]="loading";e[o]=null;e[s]=null;const u=t.stream();const l=u.getReader();const d=[];let g=l.read();let h=true;(async()=>{while(!e[i]){try{const{done:u,value:A}=await g;if(h&&!e[i]){queueMicrotask((()=>{fireAProgressEvent("loadstart",e)}))}h=false;if(!u&&p.isUint8Array(A)){d.push(A);if((e[a]===undefined||Date.now()-e[a]>=50)&&!e[i]){e[a]=Date.now();queueMicrotask((()=>{fireAProgressEvent("progress",e)}))}g=l.read()}else if(u){queueMicrotask((()=>{e[n]="done";try{const n=packageData(d,r,t.type,c);if(e[i]){return}e[o]=n;fireAProgressEvent("load",e)}catch(t){e[s]=t;fireAProgressEvent("error",e)}if(e[n]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}catch(t){if(e[i]){return}queueMicrotask((()=>{e[n]="done";e[s]=t;fireAProgressEvent("error",e);if(e[n]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}})()}function fireAProgressEvent(e,t){const r=new c(e,{bubbles:false,cancelable:false});t.dispatchEvent(r)}function packageData(e,t,r,n){switch(t){case"DataURL":{let t="data:";const n=d(r||"application/octet-stream");if(n!=="failure"){t+=l(n)}t+=";base64,";const s=new g("latin1");for(const r of e){t+=h(s.write(r))}t+=h(s.end());return t}case"Text":{let t="failure";if(n){t=u(n)}if(t==="failure"&&r){const e=d(r);if(e!=="failure"){t=u(e.parameters.get("charset"))}}if(t==="failure"){t="UTF-8"}return decode(e,t)}case"ArrayBuffer":{const t=combineByteSequences(e);return t.buffer}case"BinaryString":{let t="";const r=new g("latin1");for(const n of e){t+=r.write(n)}t+=r.end();return t}}}function decode(e,t){const r=combineByteSequences(e);const n=BOMSniffing(r);let s=0;if(n!==null){t=n;s=n==="UTF-8"?3:2}const o=r.slice(s);return new TextDecoder(t).decode(o)}function BOMSniffing(e){const[t,r,n]=e;if(t===239&&r===187&&n===191){return"UTF-8"}else if(t===254&&r===255){return"UTF-16BE"}else if(t===255&&r===254){return"UTF-16LE"}return null}function combineByteSequences(e){const t=e.reduce(((e,t)=>e+t.byteLength),0);let r=0;return e.reduce(((e,t)=>{e.set(t,r);r+=t.byteLength;return e}),new Uint8Array(t))}e.exports={staticPropertyDescriptors:m,readOperation:readOperation,fireAProgressEvent:fireAProgressEvent}},32581:(e,t,r)=>{const n=Symbol.for("undici.globalDispatcher.1");const{InvalidArgumentError:s}=r(68707);const o=r(59965);if(getGlobalDispatcher()===undefined){setGlobalDispatcher(new o)}function setGlobalDispatcher(e){if(!e||typeof e.dispatch!=="function"){throw new s("Argument agent must implement Agent")}Object.defineProperty(globalThis,n,{value:e,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[n]}e.exports={setGlobalDispatcher:setGlobalDispatcher,getGlobalDispatcher:getGlobalDispatcher}},78840:e=>{e.exports=class DecoratorHandler{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}},48299:(e,t,r)=>{const n=r(3440);const{kBodyUsed:s}=r(36443);const o=r(42613);const{InvalidArgumentError:i}=r(68707);const a=r(24434);const c=[300,301,302,303,307,308];const u=Symbol("body");class BodyAsyncIterable{constructor(e){this[u]=e;this[s]=false}async*[Symbol.asyncIterator](){o(!this[s],"disturbed");this[s]=true;yield*this[u]}}class RedirectHandler{constructor(e,t,r,c){if(t!=null&&(!Number.isInteger(t)||t<0)){throw new i("maxRedirections must be a positive number")}n.validateHandler(c,r.method,r.upgrade);this.dispatch=e;this.location=null;this.abort=null;this.opts={...r,maxRedirections:0};this.maxRedirections=t;this.handler=c;this.history=[];if(n.isStream(this.opts.body)){if(n.bodyLength(this.opts.body)===0){this.opts.body.on("data",(function(){o(false)}))}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[s]=false;a.prototype.on.call(this.opts.body,"data",(function(){this[s]=true}))}}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function"){this.opts.body=new BodyAsyncIterable(this.opts.body)}else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&n.isIterable(this.opts.body)){this.opts.body=new BodyAsyncIterable(this.opts.body)}}onConnect(e){this.abort=e;this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,r){this.handler.onUpgrade(e,t,r)}onError(e){this.handler.onError(e)}onHeaders(e,t,r,s){this.location=this.history.length>=this.maxRedirections||n.isDisturbed(this.opts.body)?null:parseLocation(e,t);if(this.opts.origin){this.history.push(new URL(this.opts.path,this.opts.origin))}if(!this.location){return this.handler.onHeaders(e,t,r,s)}const{origin:o,pathname:i,search:a}=n.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin)));const c=a?`${i}${a}`:i;this.opts.headers=cleanRequestHeaders(this.opts.headers,e===303,this.opts.origin!==o);this.opts.path=c;this.opts.origin=o;this.opts.maxRedirections=0;this.opts.query=null;if(e===303&&this.opts.method!=="HEAD"){this.opts.method="GET";this.opts.body=null}}onData(e){if(this.location){}else{return this.handler.onData(e)}}onComplete(e){if(this.location){this.location=null;this.abort=null;this.dispatch(this.opts,this)}else{this.handler.onComplete(e)}}onBodySent(e){if(this.handler.onBodySent){this.handler.onBodySent(e)}}}function parseLocation(e,t){if(c.indexOf(e)===-1){return null}for(let e=0;e{const n=r(42613);const{kRetryHandlerDefaultRetry:s}=r(36443);const{RequestRetryError:o}=r(68707);const{isDisturbed:i,parseHeaders:a,parseRangeHeader:c}=r(3440);function calculateRetryAfterHeader(e){const t=Date.now();const r=new Date(e).getTime()-t;return r}class RetryHandler{constructor(e,t){const{retryOptions:r,...n}=e;const{retry:o,maxRetries:i,maxTimeout:a,minTimeout:c,timeoutFactor:u,methods:A,errorCodes:l,retryAfter:d,statusCodes:p}=r??{};this.dispatch=t.dispatch;this.handler=t.handler;this.opts=n;this.abort=null;this.aborted=false;this.retryOpts={retry:o??RetryHandler[s],retryAfter:d??true,maxTimeout:a??30*1e3,timeout:c??500,timeoutFactor:u??2,maxRetries:i??5,methods:A??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:p??[500,502,503,504,429],errorCodes:l??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]};this.retryCount=0;this.start=0;this.end=null;this.etag=null;this.resume=null;this.handler.onConnect((e=>{this.aborted=true;if(this.abort){this.abort(e)}else{this.reason=e}}))}onRequestSent(){if(this.handler.onRequestSent){this.handler.onRequestSent()}}onUpgrade(e,t,r){if(this.handler.onUpgrade){this.handler.onUpgrade(e,t,r)}}onConnect(e){if(this.aborted){e(this.reason)}else{this.abort=e}}onBodySent(e){if(this.handler.onBodySent)return this.handler.onBodySent(e)}static[s](e,{state:t,opts:r},n){const{statusCode:s,code:o,headers:i}=e;const{method:a,retryOptions:c}=r;const{maxRetries:u,timeout:A,maxTimeout:l,timeoutFactor:d,statusCodes:p,errorCodes:g,methods:h}=c;let{counter:m,currentTimeout:E}=t;E=E!=null&&E>0?E:A;if(o&&o!=="UND_ERR_REQ_RETRY"&&o!=="UND_ERR_SOCKET"&&!g.includes(o)){n(e);return}if(Array.isArray(h)&&!h.includes(a)){n(e);return}if(s!=null&&Array.isArray(p)&&!p.includes(s)){n(e);return}if(m>u){n(e);return}let y=i!=null&&i["retry-after"];if(y){y=Number(y);y=isNaN(y)?calculateRetryAfterHeader(y):y*1e3}const I=y>0?Math.min(y,l):Math.min(E*d**m,l);t.currentTimeout=I;setTimeout((()=>n(null)),I)}onHeaders(e,t,r,s){const i=a(t);this.retryCount+=1;if(e>=300){this.abort(new o("Request failed",e,{headers:i,count:this.retryCount}));return false}if(this.resume!=null){this.resume=null;if(e!==206){return true}const t=c(i["content-range"]);if(!t){this.abort(new o("Content-Range mismatch",e,{headers:i,count:this.retryCount}));return false}if(this.etag!=null&&this.etag!==i.etag){this.abort(new o("ETag mismatch",e,{headers:i,count:this.retryCount}));return false}const{start:s,size:a,end:u=a}=t;n(this.start===s,"content-range mismatch");n(this.end==null||this.end===u,"content-range mismatch");this.resume=r;return true}if(this.end==null){if(e===206){const o=c(i["content-range"]);if(o==null){return this.handler.onHeaders(e,t,r,s)}const{start:a,size:u,end:A=u}=o;n(a!=null&&Number.isFinite(a)&&this.start!==a,"content-range mismatch");n(Number.isFinite(a));n(A!=null&&Number.isFinite(A)&&this.end!==A,"invalid content-length");this.start=a;this.end=A}if(this.end==null){const e=i["content-length"];this.end=e!=null?Number(e):null}n(Number.isFinite(this.start));n(this.end==null||Number.isFinite(this.end),"invalid content-length");this.resume=r;this.etag=i.etag!=null?i.etag:null;return this.handler.onHeaders(e,t,r,s)}const u=new o("Request failed",e,{headers:i,count:this.retryCount});this.abort(u);return false}onData(e){this.start+=e.length;return this.handler.onData(e)}onComplete(e){this.retryCount=0;return this.handler.onComplete(e)}onError(e){if(this.aborted||i(this.opts.body)){return this.handler.onError(e)}this.retryOpts.retry(e,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},onRetry.bind(this));function onRetry(e){if(e!=null||this.aborted||i(this.opts.body)){return this.handler.onError(e)}if(this.start!==0){this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}}}try{this.dispatch(this.opts,this)}catch(e){this.handler.onError(e)}}}}e.exports=RetryHandler},64415:(e,t,r)=>{const n=r(48299);function createRedirectInterceptor({maxRedirections:e}){return t=>function Intercept(r,s){const{maxRedirections:o=e}=r;if(!o){return t(r,s)}const i=new n(t,o,r,s);r={...r,maxRedirections:0};return t(r,i)}}e.exports=createRedirectInterceptor},52824:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.SPECIAL_HEADERS=t.HEADER_STATE=t.MINOR=t.MAJOR=t.CONNECTION_TOKEN_CHARS=t.HEADER_CHARS=t.TOKEN=t.STRICT_TOKEN=t.HEX=t.URL_CHAR=t.STRICT_URL_CHAR=t.USERINFO_CHARS=t.MARK=t.ALPHANUM=t.NUM=t.HEX_MAP=t.NUM_MAP=t.ALPHA=t.FINISH=t.H_METHOD_MAP=t.METHOD_MAP=t.METHODS_RTSP=t.METHODS_ICE=t.METHODS_HTTP=t.METHODS=t.LENIENT_FLAGS=t.FLAGS=t.TYPE=t.ERROR=void 0;const n=r(50172);var s;(function(e){e[e["OK"]=0]="OK";e[e["INTERNAL"]=1]="INTERNAL";e[e["STRICT"]=2]="STRICT";e[e["LF_EXPECTED"]=3]="LF_EXPECTED";e[e["UNEXPECTED_CONTENT_LENGTH"]=4]="UNEXPECTED_CONTENT_LENGTH";e[e["CLOSED_CONNECTION"]=5]="CLOSED_CONNECTION";e[e["INVALID_METHOD"]=6]="INVALID_METHOD";e[e["INVALID_URL"]=7]="INVALID_URL";e[e["INVALID_CONSTANT"]=8]="INVALID_CONSTANT";e[e["INVALID_VERSION"]=9]="INVALID_VERSION";e[e["INVALID_HEADER_TOKEN"]=10]="INVALID_HEADER_TOKEN";e[e["INVALID_CONTENT_LENGTH"]=11]="INVALID_CONTENT_LENGTH";e[e["INVALID_CHUNK_SIZE"]=12]="INVALID_CHUNK_SIZE";e[e["INVALID_STATUS"]=13]="INVALID_STATUS";e[e["INVALID_EOF_STATE"]=14]="INVALID_EOF_STATE";e[e["INVALID_TRANSFER_ENCODING"]=15]="INVALID_TRANSFER_ENCODING";e[e["CB_MESSAGE_BEGIN"]=16]="CB_MESSAGE_BEGIN";e[e["CB_HEADERS_COMPLETE"]=17]="CB_HEADERS_COMPLETE";e[e["CB_MESSAGE_COMPLETE"]=18]="CB_MESSAGE_COMPLETE";e[e["CB_CHUNK_HEADER"]=19]="CB_CHUNK_HEADER";e[e["CB_CHUNK_COMPLETE"]=20]="CB_CHUNK_COMPLETE";e[e["PAUSED"]=21]="PAUSED";e[e["PAUSED_UPGRADE"]=22]="PAUSED_UPGRADE";e[e["PAUSED_H2_UPGRADE"]=23]="PAUSED_H2_UPGRADE";e[e["USER"]=24]="USER"})(s=t.ERROR||(t.ERROR={}));var o;(function(e){e[e["BOTH"]=0]="BOTH";e[e["REQUEST"]=1]="REQUEST";e[e["RESPONSE"]=2]="RESPONSE"})(o=t.TYPE||(t.TYPE={}));var i;(function(e){e[e["CONNECTION_KEEP_ALIVE"]=1]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=2]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=4]="CONNECTION_UPGRADE";e[e["CHUNKED"]=8]="CHUNKED";e[e["UPGRADE"]=16]="UPGRADE";e[e["CONTENT_LENGTH"]=32]="CONTENT_LENGTH";e[e["SKIPBODY"]=64]="SKIPBODY";e[e["TRAILING"]=128]="TRAILING";e[e["TRANSFER_ENCODING"]=512]="TRANSFER_ENCODING"})(i=t.FLAGS||(t.FLAGS={}));var a;(function(e){e[e["HEADERS"]=1]="HEADERS";e[e["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";e[e["KEEP_ALIVE"]=4]="KEEP_ALIVE"})(a=t.LENIENT_FLAGS||(t.LENIENT_FLAGS={}));var c;(function(e){e[e["DELETE"]=0]="DELETE";e[e["GET"]=1]="GET";e[e["HEAD"]=2]="HEAD";e[e["POST"]=3]="POST";e[e["PUT"]=4]="PUT";e[e["CONNECT"]=5]="CONNECT";e[e["OPTIONS"]=6]="OPTIONS";e[e["TRACE"]=7]="TRACE";e[e["COPY"]=8]="COPY";e[e["LOCK"]=9]="LOCK";e[e["MKCOL"]=10]="MKCOL";e[e["MOVE"]=11]="MOVE";e[e["PROPFIND"]=12]="PROPFIND";e[e["PROPPATCH"]=13]="PROPPATCH";e[e["SEARCH"]=14]="SEARCH";e[e["UNLOCK"]=15]="UNLOCK";e[e["BIND"]=16]="BIND";e[e["REBIND"]=17]="REBIND";e[e["UNBIND"]=18]="UNBIND";e[e["ACL"]=19]="ACL";e[e["REPORT"]=20]="REPORT";e[e["MKACTIVITY"]=21]="MKACTIVITY";e[e["CHECKOUT"]=22]="CHECKOUT";e[e["MERGE"]=23]="MERGE";e[e["M-SEARCH"]=24]="M-SEARCH";e[e["NOTIFY"]=25]="NOTIFY";e[e["SUBSCRIBE"]=26]="SUBSCRIBE";e[e["UNSUBSCRIBE"]=27]="UNSUBSCRIBE";e[e["PATCH"]=28]="PATCH";e[e["PURGE"]=29]="PURGE";e[e["MKCALENDAR"]=30]="MKCALENDAR";e[e["LINK"]=31]="LINK";e[e["UNLINK"]=32]="UNLINK";e[e["SOURCE"]=33]="SOURCE";e[e["PRI"]=34]="PRI";e[e["DESCRIBE"]=35]="DESCRIBE";e[e["ANNOUNCE"]=36]="ANNOUNCE";e[e["SETUP"]=37]="SETUP";e[e["PLAY"]=38]="PLAY";e[e["PAUSE"]=39]="PAUSE";e[e["TEARDOWN"]=40]="TEARDOWN";e[e["GET_PARAMETER"]=41]="GET_PARAMETER";e[e["SET_PARAMETER"]=42]="SET_PARAMETER";e[e["REDIRECT"]=43]="REDIRECT";e[e["RECORD"]=44]="RECORD";e[e["FLUSH"]=45]="FLUSH"})(c=t.METHODS||(t.METHODS={}));t.METHODS_HTTP=[c.DELETE,c.GET,c.HEAD,c.POST,c.PUT,c.CONNECT,c.OPTIONS,c.TRACE,c.COPY,c.LOCK,c.MKCOL,c.MOVE,c.PROPFIND,c.PROPPATCH,c.SEARCH,c.UNLOCK,c.BIND,c.REBIND,c.UNBIND,c.ACL,c.REPORT,c.MKACTIVITY,c.CHECKOUT,c.MERGE,c["M-SEARCH"],c.NOTIFY,c.SUBSCRIBE,c.UNSUBSCRIBE,c.PATCH,c.PURGE,c.MKCALENDAR,c.LINK,c.UNLINK,c.PRI,c.SOURCE];t.METHODS_ICE=[c.SOURCE];t.METHODS_RTSP=[c.OPTIONS,c.DESCRIBE,c.ANNOUNCE,c.SETUP,c.PLAY,c.PAUSE,c.TEARDOWN,c.GET_PARAMETER,c.SET_PARAMETER,c.REDIRECT,c.RECORD,c.FLUSH,c.GET,c.POST];t.METHOD_MAP=n.enumToMap(c);t.H_METHOD_MAP={};Object.keys(t.METHOD_MAP).forEach((e=>{if(/^H/.test(e)){t.H_METHOD_MAP[e]=t.METHOD_MAP[e]}}));var u;(function(e){e[e["SAFE"]=0]="SAFE";e[e["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";e[e["UNSAFE"]=2]="UNSAFE"})(u=t.FINISH||(t.FINISH={}));t.ALPHA=[];for(let e="A".charCodeAt(0);e<="Z".charCodeAt(0);e++){t.ALPHA.push(String.fromCharCode(e));t.ALPHA.push(String.fromCharCode(e+32))}t.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};t.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};t.NUM=["0","1","2","3","4","5","6","7","8","9"];t.ALPHANUM=t.ALPHA.concat(t.NUM);t.MARK=["-","_",".","!","~","*","'","(",")"];t.USERINFO_CHARS=t.ALPHANUM.concat(t.MARK).concat(["%",";",":","&","=","+","$",","]);t.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(t.ALPHANUM);t.URL_CHAR=t.STRICT_URL_CHAR.concat(["\t","\f"]);for(let e=128;e<=255;e++){t.URL_CHAR.push(e)}t.HEX=t.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);t.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(t.ALPHANUM);t.TOKEN=t.STRICT_TOKEN.concat([" "]);t.HEADER_CHARS=["\t"];for(let e=32;e<=255;e++){if(e!==127){t.HEADER_CHARS.push(e)}}t.CONNECTION_TOKEN_CHARS=t.HEADER_CHARS.filter((e=>e!==44));t.MAJOR=t.NUM_MAP;t.MINOR=t.MAJOR;var A;(function(e){e[e["GENERAL"]=0]="GENERAL";e[e["CONNECTION"]=1]="CONNECTION";e[e["CONTENT_LENGTH"]=2]="CONTENT_LENGTH";e[e["TRANSFER_ENCODING"]=3]="TRANSFER_ENCODING";e[e["UPGRADE"]=4]="UPGRADE";e[e["CONNECTION_KEEP_ALIVE"]=5]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=6]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=7]="CONNECTION_UPGRADE";e[e["TRANSFER_ENCODING_CHUNKED"]=8]="TRANSFER_ENCODING_CHUNKED"})(A=t.HEADER_STATE||(t.HEADER_STATE={}));t.SPECIAL_HEADERS={connection:A.CONNECTION,"content-length":A.CONTENT_LENGTH,"proxy-connection":A.CONNECTION,"transfer-encoding":A.TRANSFER_ENCODING,upgrade:A.UPGRADE}},63870:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},53434:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="},50172:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.enumToMap=void 0;function enumToMap(e){const t={};Object.keys(e).forEach((r=>{const n=e[r];if(typeof n==="number"){t[r]=n}}));return t}t.enumToMap=enumToMap},47501:(e,t,r)=>{const{kClients:n}=r(36443);const s=r(59965);const{kAgent:o,kMockAgentSet:i,kMockAgentGet:a,kDispatches:c,kIsMockActive:u,kNetConnect:A,kGetNetConnect:l,kOptions:d,kFactory:p}=r(91117);const g=r(47365);const h=r(94004);const{matchValue:m,buildMockOptions:E}=r(53397);const{InvalidArgumentError:y,UndiciError:I}=r(68707);const C=r(28611);const b=r(91529);const B=r(56142);class FakeWeakRef{constructor(e){this.value=e}deref(){return this.value}}class MockAgent extends C{constructor(e){super(e);this[A]=true;this[u]=true;if(e&&e.agent&&typeof e.agent.dispatch!=="function"){throw new y("Argument opts.agent must implement Agent")}const t=e&&e.agent?e.agent:new s(e);this[o]=t;this[n]=t[n];this[d]=E(e)}get(e){let t=this[a](e);if(!t){t=this[p](e);this[i](e,t)}return t}dispatch(e,t){this.get(e.origin);return this[o].dispatch(e,t)}async close(){await this[o].close();this[n].clear()}deactivate(){this[u]=false}activate(){this[u]=true}enableNetConnect(e){if(typeof e==="string"||typeof e==="function"||e instanceof RegExp){if(Array.isArray(this[A])){this[A].push(e)}else{this[A]=[e]}}else if(typeof e==="undefined"){this[A]=true}else{throw new y("Unsupported matcher. Must be one of String|Function|RegExp.")}}disableNetConnect(){this[A]=false}get isMockActive(){return this[u]}[i](e,t){this[n].set(e,new FakeWeakRef(t))}[p](e){const t=Object.assign({agent:this},this[d]);return this[d]&&this[d].connections===1?new g(e,t):new h(e,t)}[a](e){const t=this[n].get(e);if(t){return t.deref()}if(typeof e!=="string"){const t=this[p]("http://localhost:9999");this[i](e,t);return t}for(const[t,r]of Array.from(this[n])){const n=r.deref();if(n&&typeof t!=="string"&&m(t,e)){const t=this[p](e);this[i](e,t);t[c]=n[c];return t}}}[l](){return this[A]}pendingInterceptors(){const e=this[n];return Array.from(e.entries()).flatMap((([e,t])=>t.deref()[c].map((t=>({...t,origin:e}))))).filter((({pending:e})=>e))}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new B}={}){const t=this.pendingInterceptors();if(t.length===0){return}const r=new b("interceptor","interceptors").pluralize(t.length);throw new I(`\n${r.count} ${r.noun} ${r.is} pending:\n\n${e.format(t)}\n`.trim())}}e.exports=MockAgent},47365:(e,t,r)=>{const{promisify:n}=r(39023);const s=r(86197);const{buildMockDispatch:o}=r(53397);const{kDispatches:i,kMockAgent:a,kClose:c,kOriginalClose:u,kOrigin:A,kOriginalDispatch:l,kConnected:d}=r(91117);const{MockInterceptor:p}=r(31511);const g=r(36443);const{InvalidArgumentError:h}=r(68707);class MockClient extends s{constructor(e,t){super(e,t);if(!t||!t.agent||typeof t.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[a]=t.agent;this[A]=e;this[i]=[];this[d]=1;this[l]=this.dispatch;this[u]=this.close.bind(this);this.dispatch=o.call(this);this.close=this[c]}get[g.kConnected](){return this[d]}intercept(e){return new p(e,this[i])}async[c](){await n(this[u])();this[d]=0;this[a][g.kClients].delete(this[A])}}e.exports=MockClient},52429:(e,t,r)=>{const{UndiciError:n}=r(68707);class MockNotMatchedError extends n{constructor(e){super(e);Error.captureStackTrace(this,MockNotMatchedError);this.name="MockNotMatchedError";this.message=e||"The request does not match any registered mock dispatches";this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}}e.exports={MockNotMatchedError:MockNotMatchedError}},31511:(e,t,r)=>{const{getResponseData:n,buildKey:s,addMockDispatch:o}=r(53397);const{kDispatches:i,kDispatchKey:a,kDefaultHeaders:c,kDefaultTrailers:u,kContentLength:A,kMockDispatch:l}=r(91117);const{InvalidArgumentError:d}=r(68707);const{buildURL:p}=r(3440);class MockScope{constructor(e){this[l]=e}delay(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new d("waitInMs must be a valid integer > 0")}this[l].delay=e;return this}persist(){this[l].persist=true;return this}times(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new d("repeatTimes must be a valid integer > 0")}this[l].times=e;return this}}class MockInterceptor{constructor(e,t){if(typeof e!=="object"){throw new d("opts must be an object")}if(typeof e.path==="undefined"){throw new d("opts.path must be defined")}if(typeof e.method==="undefined"){e.method="GET"}if(typeof e.path==="string"){if(e.query){e.path=p(e.path,e.query)}else{const t=new URL(e.path,"data://");e.path=t.pathname+t.search}}if(typeof e.method==="string"){e.method=e.method.toUpperCase()}this[a]=s(e);this[i]=t;this[c]={};this[u]={};this[A]=false}createMockScopeDispatchData(e,t,r={}){const s=n(t);const o=this[A]?{"content-length":s.length}:{};const i={...this[c],...o,...r.headers};const a={...this[u],...r.trailers};return{statusCode:e,data:t,headers:i,trailers:a}}validateReplyParameters(e,t,r){if(typeof e==="undefined"){throw new d("statusCode must be defined")}if(typeof t==="undefined"){throw new d("data must be defined")}if(typeof r!=="object"){throw new d("responseOptions must be an object")}}reply(e){if(typeof e==="function"){const wrappedDefaultsCallback=t=>{const r=e(t);if(typeof r!=="object"){throw new d("reply options callback must return an object")}const{statusCode:n,data:s="",responseOptions:o={}}=r;this.validateReplyParameters(n,s,o);return{...this.createMockScopeDispatchData(n,s,o)}};const t=o(this[i],this[a],wrappedDefaultsCallback);return new MockScope(t)}const[t,r="",n={}]=[...arguments];this.validateReplyParameters(t,r,n);const s=this.createMockScopeDispatchData(t,r,n);const c=o(this[i],this[a],s);return new MockScope(c)}replyWithError(e){if(typeof e==="undefined"){throw new d("error must be defined")}const t=o(this[i],this[a],{error:e});return new MockScope(t)}defaultReplyHeaders(e){if(typeof e==="undefined"){throw new d("headers must be defined")}this[c]=e;return this}defaultReplyTrailers(e){if(typeof e==="undefined"){throw new d("trailers must be defined")}this[u]=e;return this}replyContentLength(){this[A]=true;return this}}e.exports.MockInterceptor=MockInterceptor;e.exports.MockScope=MockScope},94004:(e,t,r)=>{const{promisify:n}=r(39023);const s=r(35076);const{buildMockDispatch:o}=r(53397);const{kDispatches:i,kMockAgent:a,kClose:c,kOriginalClose:u,kOrigin:A,kOriginalDispatch:l,kConnected:d}=r(91117);const{MockInterceptor:p}=r(31511);const g=r(36443);const{InvalidArgumentError:h}=r(68707);class MockPool extends s{constructor(e,t){super(e,t);if(!t||!t.agent||typeof t.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[a]=t.agent;this[A]=e;this[i]=[];this[d]=1;this[l]=this.dispatch;this[u]=this.close.bind(this);this.dispatch=o.call(this);this.close=this[c]}get[g.kConnected](){return this[d]}intercept(e){return new p(e,this[i])}async[c](){await n(this[u])();this[d]=0;this[a][g.kClients].delete(this[A])}}e.exports=MockPool},91117:e=>{e.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}},53397:(e,t,r)=>{const{MockNotMatchedError:n}=r(52429);const{kDispatches:s,kMockAgent:o,kOriginalDispatch:i,kOrigin:a,kGetNetConnect:c}=r(91117);const{buildURL:u,nop:A}=r(3440);const{STATUS_CODES:l}=r(58611);const{types:{isPromise:d}}=r(39023);function matchValue(e,t){if(typeof e==="string"){return e===t}if(e instanceof RegExp){return e.test(t)}if(typeof e==="function"){return e(t)===true}return false}function lowerCaseEntries(e){return Object.fromEntries(Object.entries(e).map((([e,t])=>[e.toLocaleLowerCase(),t])))}function getHeaderByName(e,t){if(Array.isArray(e)){for(let r=0;r!e)).filter((({path:e})=>matchValue(safeUrl(e),s)));if(o.length===0){throw new n(`Mock dispatch not matched for path '${s}'`)}o=o.filter((({method:e})=>matchValue(e,t.method)));if(o.length===0){throw new n(`Mock dispatch not matched for method '${t.method}'`)}o=o.filter((({body:e})=>typeof e!=="undefined"?matchValue(e,t.body):true));if(o.length===0){throw new n(`Mock dispatch not matched for body '${t.body}'`)}o=o.filter((e=>matchHeaders(e,t.headers)));if(o.length===0){throw new n(`Mock dispatch not matched for headers '${typeof t.headers==="object"?JSON.stringify(t.headers):t.headers}'`)}return o[0]}function addMockDispatch(e,t,r){const n={timesInvoked:0,times:1,persist:false,consumed:false};const s=typeof r==="function"?{callback:r}:{...r};const o={...n,...t,pending:true,data:{error:null,...s}};e.push(o);return o}function deleteMockDispatch(e,t){const r=e.findIndex((e=>{if(!e.consumed){return false}return matchKey(e,t)}));if(r!==-1){e.splice(r,1)}}function buildKey(e){const{path:t,method:r,body:n,headers:s,query:o}=e;return{path:t,method:r,body:n,headers:s,query:o}}function generateKeyValues(e){return Object.entries(e).reduce(((e,[t,r])=>[...e,Buffer.from(`${t}`),Array.isArray(r)?r.map((e=>Buffer.from(`${e}`))):Buffer.from(`${r}`)]),[])}function getStatusText(e){return l[e]||"unknown"}async function getResponse(e){const t=[];for await(const r of e){t.push(r)}return Buffer.concat(t).toString("utf8")}function mockDispatch(e,t){const r=buildKey(e);const n=getMockDispatch(this[s],r);n.timesInvoked++;if(n.data.callback){n.data={...n.data,...n.data.callback(e)}}const{data:{statusCode:o,data:i,headers:a,trailers:c,error:u},delay:l,persist:p}=n;const{timesInvoked:g,times:h}=n;n.consumed=!p&&g>=h;n.pending=g0){setTimeout((()=>{handleReply(this[s])}),l)}else{handleReply(this[s])}function handleReply(n,s=i){const u=Array.isArray(e.headers)?buildHeadersFromArray(e.headers):e.headers;const l=typeof s==="function"?s({...e,headers:u}):s;if(d(l)){l.then((e=>handleReply(n,e)));return}const p=getResponseData(l);const g=generateKeyValues(a);const h=generateKeyValues(c);t.abort=A;t.onHeaders(o,g,resume,getStatusText(o));t.onData(Buffer.from(p));t.onComplete(h);deleteMockDispatch(n,r)}function resume(){}return true}function buildMockDispatch(){const e=this[o];const t=this[a];const r=this[i];return function dispatch(s,o){if(e.isMockActive){try{mockDispatch.call(this,s,o)}catch(i){if(i instanceof n){const a=e[c]();if(a===false){throw new n(`${i.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`)}if(checkNetConnect(a,t)){r.call(this,s,o)}else{throw new n(`${i.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}}else{throw i}}}else{r.call(this,s,o)}}}function checkNetConnect(e,t){const r=new URL(t);if(e===true){return true}else if(Array.isArray(e)&&e.some((e=>matchValue(e,r.host)))){return true}return false}function buildMockOptions(e){if(e){const{agent:t,...r}=e;return r}}e.exports={getResponseData:getResponseData,getMockDispatch:getMockDispatch,addMockDispatch:addMockDispatch,deleteMockDispatch:deleteMockDispatch,buildKey:buildKey,generateKeyValues:generateKeyValues,matchValue:matchValue,getResponse:getResponse,getStatusText:getStatusText,mockDispatch:mockDispatch,buildMockDispatch:buildMockDispatch,checkNetConnect:checkNetConnect,buildMockOptions:buildMockOptions,getHeaderByName:getHeaderByName}},56142:(e,t,r)=>{const{Transform:n}=r(2203);const{Console:s}=r(64236);e.exports=class PendingInterceptorsFormatter{constructor({disableColors:e}={}){this.transform=new n({transform(e,t,r){r(null,e)}});this.logger=new s({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){const t=e.map((({method:e,path:t,data:{statusCode:r},persist:n,times:s,timesInvoked:o,origin:i})=>({Method:e,Origin:i,Path:t,"Status code":r,Persistent:n?"✅":"❌",Invocations:o,Remaining:n?Infinity:s-o})));this.logger.table(t);return this.transform.read().toString()}}},91529:e=>{const t={pronoun:"it",is:"is",was:"was",this:"this"};const r={pronoun:"they",is:"are",was:"were",this:"these"};e.exports=class Pluralizer{constructor(e,t){this.singular=e;this.plural=t}pluralize(e){const n=e===1;const s=n?t:r;const o=n?this.singular:this.plural;return{...s,count:e,noun:o}}}},34869:e=>{const t=2048;const r=t-1;class FixedCircularBuffer{constructor(){this.bottom=0;this.top=0;this.list=new Array(t);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&r)===this.bottom}push(e){this.list[this.top]=e;this.top=this.top+1&r}shift(){const e=this.list[this.bottom];if(e===undefined)return null;this.list[this.bottom]=undefined;this.bottom=this.bottom+1&r;return e}}e.exports=class FixedQueue{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(e){if(this.head.isFull()){this.head=this.head.next=new FixedCircularBuffer}this.head.push(e)}shift(){const e=this.tail;const t=e.shift();if(e.isEmpty()&&e.next!==null){this.tail=e.next}return t}}},58640:(e,t,r)=>{const n=r(50001);const s=r(34869);const{kConnected:o,kSize:i,kRunning:a,kPending:c,kQueued:u,kBusy:A,kFree:l,kUrl:d,kClose:p,kDestroy:g,kDispatch:h}=r(36443);const m=r(24622);const E=Symbol("clients");const y=Symbol("needDrain");const I=Symbol("queue");const C=Symbol("closed resolve");const b=Symbol("onDrain");const B=Symbol("onConnect");const Q=Symbol("onDisconnect");const T=Symbol("onConnectionError");const v=Symbol("get dispatcher");const w=Symbol("add client");const _=Symbol("remove client");const O=Symbol("stats");class PoolBase extends n{constructor(){super();this[I]=new s;this[E]=[];this[u]=0;const e=this;this[b]=function onDrain(t,r){const n=e[I];let s=false;while(!s){const t=n.shift();if(!t){break}e[u]--;s=!this.dispatch(t.opts,t.handler)}this[y]=s;if(!this[y]&&e[y]){e[y]=false;e.emit("drain",t,[e,...r])}if(e[C]&&n.isEmpty()){Promise.all(e[E].map((e=>e.close()))).then(e[C])}};this[B]=(t,r)=>{e.emit("connect",t,[e,...r])};this[Q]=(t,r,n)=>{e.emit("disconnect",t,[e,...r],n)};this[T]=(t,r,n)=>{e.emit("connectionError",t,[e,...r],n)};this[O]=new m(this)}get[A](){return this[y]}get[o](){return this[E].filter((e=>e[o])).length}get[l](){return this[E].filter((e=>e[o]&&!e[y])).length}get[c](){let e=this[u];for(const{[c]:t}of this[E]){e+=t}return e}get[a](){let e=0;for(const{[a]:t}of this[E]){e+=t}return e}get[i](){let e=this[u];for(const{[i]:t}of this[E]){e+=t}return e}get stats(){return this[O]}async[p](){if(this[I].isEmpty()){return Promise.all(this[E].map((e=>e.close())))}else{return new Promise((e=>{this[C]=e}))}}async[g](e){while(true){const t=this[I].shift();if(!t){break}t.handler.onError(e)}return Promise.all(this[E].map((t=>t.destroy(e))))}[h](e,t){const r=this[v]();if(!r){this[y]=true;this[I].push({opts:e,handler:t});this[u]++}else if(!r.dispatch(e,t)){r[y]=true;this[y]=!this[v]()}return!this[y]}[w](e){e.on("drain",this[b]).on("connect",this[B]).on("disconnect",this[Q]).on("connectionError",this[T]);this[E].push(e);if(this[y]){process.nextTick((()=>{if(this[y]){this[b](e[d],[this,e])}}))}return this}[_](e){e.close((()=>{const t=this[E].indexOf(e);if(t!==-1){this[E].splice(t,1)}}));this[y]=this[E].some((e=>!e[y]&&e.closed!==true&&e.destroyed!==true))}}e.exports={PoolBase:PoolBase,kClients:E,kNeedDrain:y,kAddClient:w,kRemoveClient:_,kGetDispatcher:v}},24622:(e,t,r)=>{const{kFree:n,kConnected:s,kPending:o,kQueued:i,kRunning:a,kSize:c}=r(36443);const u=Symbol("pool");class PoolStats{constructor(e){this[u]=e}get connected(){return this[u][s]}get free(){return this[u][n]}get pending(){return this[u][o]}get queued(){return this[u][i]}get running(){return this[u][a]}get size(){return this[u][c]}}e.exports=PoolStats},35076:(e,t,r)=>{const{PoolBase:n,kClients:s,kNeedDrain:o,kAddClient:i,kGetDispatcher:a}=r(58640);const c=r(86197);const{InvalidArgumentError:u}=r(68707);const A=r(3440);const{kUrl:l,kInterceptors:d}=r(36443);const p=r(59136);const g=Symbol("options");const h=Symbol("connections");const m=Symbol("factory");function defaultFactory(e,t){return new c(e,t)}class Pool extends n{constructor(e,{connections:t,factory:r=defaultFactory,connect:n,connectTimeout:s,tls:o,maxCachedSessions:i,socketPath:a,autoSelectFamily:c,autoSelectFamilyAttemptTimeout:E,allowH2:y,...I}={}){super();if(t!=null&&(!Number.isFinite(t)||t<0)){throw new u("invalid connections")}if(typeof r!=="function"){throw new u("factory must be a function.")}if(n!=null&&typeof n!=="function"&&typeof n!=="object"){throw new u("connect must be a function or an object")}if(typeof n!=="function"){n=p({...o,maxCachedSessions:i,allowH2:y,socketPath:a,timeout:s,...A.nodeHasAutoSelectFamily&&c?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:E}:undefined,...n})}this[d]=I.interceptors&&I.interceptors.Pool&&Array.isArray(I.interceptors.Pool)?I.interceptors.Pool:[];this[h]=t||null;this[l]=A.parseOrigin(e);this[g]={...A.deepClone(I),connect:n,allowH2:y};this[g].interceptors=I.interceptors?{...I.interceptors}:undefined;this[m]=r}[a](){let e=this[s].find((e=>!e[o]));if(e){return e}if(!this[h]||this[s].length{const{kProxy:n,kClose:s,kDestroy:o,kInterceptors:i}=r(36443);const{URL:a}=r(87016);const c=r(59965);const u=r(35076);const A=r(50001);const{InvalidArgumentError:l,RequestAbortedError:d}=r(68707);const p=r(59136);const g=Symbol("proxy agent");const h=Symbol("proxy client");const m=Symbol("proxy headers");const E=Symbol("request tls settings");const y=Symbol("proxy tls settings");const I=Symbol("connect endpoint function");function defaultProtocolPort(e){return e==="https:"?443:80}function buildProxyOptions(e){if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new l("Proxy opts.uri is mandatory")}return{uri:e.uri,protocol:e.protocol||"https"}}function defaultFactory(e,t){return new u(e,t)}class ProxyAgent extends A{constructor(e){super(e);this[n]=buildProxyOptions(e);this[g]=new c(e);this[i]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[];if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new l("Proxy opts.uri is mandatory")}const{clientFactory:t=defaultFactory}=e;if(typeof t!=="function"){throw new l("Proxy opts.clientFactory must be a function.")}this[E]=e.requestTls;this[y]=e.proxyTls;this[m]=e.headers||{};const r=new a(e.uri);const{origin:s,port:o,host:u,username:A,password:C}=r;if(e.auth&&e.token){throw new l("opts.auth cannot be used in combination with opts.token")}else if(e.auth){this[m]["proxy-authorization"]=`Basic ${e.auth}`}else if(e.token){this[m]["proxy-authorization"]=e.token}else if(A&&C){this[m]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(A)}:${decodeURIComponent(C)}`).toString("base64")}`}const b=p({...e.proxyTls});this[I]=p({...e.requestTls});this[h]=t(r,{connect:b});this[g]=new c({...e,connect:async(e,t)=>{let r=e.host;if(!e.port){r+=`:${defaultProtocolPort(e.protocol)}`}try{const{socket:n,statusCode:i}=await this[h].connect({origin:s,port:o,path:r,signal:e.signal,headers:{...this[m],host:u}});if(i!==200){n.on("error",(()=>{})).destroy();t(new d(`Proxy response (${i}) !== 200 when HTTP Tunneling`))}if(e.protocol!=="https:"){t(null,n);return}let a;if(this[E]){a=this[E].servername}else{a=e.servername}this[I]({...e,servername:a,httpSocket:n},t)}catch(e){t(e)}}})}dispatch(e,t){const{host:r}=new a(e.origin);const n=buildHeaders(e.headers);throwIfProxyAuthIsSent(n);return this[g].dispatch({...e,headers:{...n,host:r}},t)}async[s](){await this[g].close();await this[h].close()}async[o](){await this[g].destroy();await this[h].destroy()}}function buildHeaders(e){if(Array.isArray(e)){const t={};for(let r=0;re.toLowerCase()==="proxy-authorization"));if(t){throw new l("Proxy-Authorization should be sent in ProxyAgent constructor")}}e.exports=ProxyAgent},28804:e=>{let t=Date.now();let r;const n=[];function onTimeout(){t=Date.now();let e=n.length;let r=0;while(r0&&t>=s.state){s.state=-1;s.callback(s.opaque)}if(s.state===-1){s.state=-2;if(r!==e-1){n[r]=n.pop()}else{n.pop()}e-=1}else{r+=1}}if(n.length>0){refreshTimeout()}}function refreshTimeout(){if(r&&r.refresh){r.refresh()}else{clearTimeout(r);r=setTimeout(onTimeout,1e3);if(r.unref){r.unref()}}}class Timeout{constructor(e,t,r){this.callback=e;this.delay=t;this.opaque=r;this.state=-2;this.refresh()}refresh(){if(this.state===-2){n.push(this);if(!r||n.length===1){refreshTimeout()}}this.state=0}clear(){this.state=-1}}e.exports={setTimeout(e,t,r){return t<1e3?setTimeout(e,t,r):new Timeout(e,t,r)},clearTimeout(e){if(e instanceof Timeout){e.clear()}else{clearTimeout(e)}}}},68550:(e,t,r)=>{const n=r(31637);const{uid:s,states:o}=r(45913);const{kReadyState:i,kSentClose:a,kByteParser:c,kReceivedClose:u}=r(62933);const{fireEvent:A,failWebsocketConnection:l}=r(3574);const{CloseEvent:d}=r(46255);const{makeRequest:p}=r(25194);const{fetching:g}=r(12315);const{Headers:h}=r(26349);const{getGlobalDispatcher:m}=r(32581);const{kHeadersList:E}=r(36443);const y={};y.open=n.channel("undici:websocket:open");y.close=n.channel("undici:websocket:close");y.socketError=n.channel("undici:websocket:socket_error");let I;try{I=r(76982)}catch{}function establishWebSocketConnection(e,t,r,n,o){const i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";const a=p({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(o.headers){const e=new h(o.headers)[E];a.headersList=e}const c=I.randomBytes(16).toString("base64");a.headersList.append("sec-websocket-key",c);a.headersList.append("sec-websocket-version","13");for(const e of t){a.headersList.append("sec-websocket-protocol",e)}const u="";const A=g({request:a,useParallelQueue:true,dispatcher:o.dispatcher??m(),processResponse(e){if(e.type==="error"||e.status!==101){l(r,"Received network error or non-101 status code.");return}if(t.length!==0&&!e.headersList.get("Sec-WebSocket-Protocol")){l(r,"Server did not respond with sent protocols.");return}if(e.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){l(r,'Server did not set Upgrade header to "websocket".');return}if(e.headersList.get("Connection")?.toLowerCase()!=="upgrade"){l(r,'Server did not set Connection header to "upgrade".');return}const o=e.headersList.get("Sec-WebSocket-Accept");const i=I.createHash("sha1").update(c+s).digest("base64");if(o!==i){l(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const A=e.headersList.get("Sec-WebSocket-Extensions");if(A!==null&&A!==u){l(r,"Received different permessage-deflate than the one set.");return}const d=e.headersList.get("Sec-WebSocket-Protocol");if(d!==null&&d!==a.headersList.get("Sec-WebSocket-Protocol")){l(r,"Protocol was not set in the opening handshake.");return}e.socket.on("data",onSocketData);e.socket.on("close",onSocketClose);e.socket.on("error",onSocketError);if(y.open.hasSubscribers){y.open.publish({address:e.socket.address(),protocol:d,extensions:A})}n(e)}});return A}function onSocketData(e){if(!this.ws[c].write(e)){this.pause()}}function onSocketClose(){const{ws:e}=this;const t=e[a]&&e[u];let r=1005;let n="";const s=e[c].closingInfo;if(s){r=s.code??1005;n=s.reason}else if(!e[a]){r=1006}e[i]=o.CLOSED;A("close",e,d,{wasClean:t,code:r,reason:n});if(y.close.hasSubscribers){y.close.publish({websocket:e,code:r,reason:n})}}function onSocketError(e){const{ws:t}=this;t[i]=o.CLOSING;if(y.socketError.hasSubscribers){y.socketError.publish(e)}this.destroy()}e.exports={establishWebSocketConnection:establishWebSocketConnection}},45913:e=>{const t="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";const r={enumerable:true,writable:false,configurable:false};const n={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};const s={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10};const o=2**16-1;const i={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};const a=Buffer.allocUnsafe(0);e.exports={uid:t,staticPropertyDescriptors:r,states:n,opcodes:s,maxUnsigned16Bit:o,parserStates:i,emptyBuffer:a}},46255:(e,t,r)=>{const{webidl:n}=r(74222);const{kEnumerableProperty:s}=r(3440);const{MessagePort:o}=r(28167);class MessageEvent extends Event{#o;constructor(e,t={}){n.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"});e=n.converters.DOMString(e);t=n.converters.MessageEventInit(t);super(e,t);this.#o=t}get data(){n.brandCheck(this,MessageEvent);return this.#o.data}get origin(){n.brandCheck(this,MessageEvent);return this.#o.origin}get lastEventId(){n.brandCheck(this,MessageEvent);return this.#o.lastEventId}get source(){n.brandCheck(this,MessageEvent);return this.#o.source}get ports(){n.brandCheck(this,MessageEvent);if(!Object.isFrozen(this.#o.ports)){Object.freeze(this.#o.ports)}return this.#o.ports}initMessageEvent(e,t=false,r=false,s=null,o="",i="",a=null,c=[]){n.brandCheck(this,MessageEvent);n.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"});return new MessageEvent(e,{bubbles:t,cancelable:r,data:s,origin:o,lastEventId:i,source:a,ports:c})}}class CloseEvent extends Event{#o;constructor(e,t={}){n.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"});e=n.converters.DOMString(e);t=n.converters.CloseEventInit(t);super(e,t);this.#o=t}get wasClean(){n.brandCheck(this,CloseEvent);return this.#o.wasClean}get code(){n.brandCheck(this,CloseEvent);return this.#o.code}get reason(){n.brandCheck(this,CloseEvent);return this.#o.reason}}class ErrorEvent extends Event{#o;constructor(e,t){n.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"});super(e,t);e=n.converters.DOMString(e);t=n.converters.ErrorEventInit(t??{});this.#o=t}get message(){n.brandCheck(this,ErrorEvent);return this.#o.message}get filename(){n.brandCheck(this,ErrorEvent);return this.#o.filename}get lineno(){n.brandCheck(this,ErrorEvent);return this.#o.lineno}get colno(){n.brandCheck(this,ErrorEvent);return this.#o.colno}get error(){n.brandCheck(this,ErrorEvent);return this.#o.error}}Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:s,origin:s,lastEventId:s,source:s,ports:s,initMessageEvent:s});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:true},reason:s,code:s,wasClean:s});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:true},message:s,filename:s,lineno:s,colno:s,error:s});n.converters.MessagePort=n.interfaceConverter(o);n.converters["sequence"]=n.sequenceConverter(n.converters.MessagePort);const i=[{key:"bubbles",converter:n.converters.boolean,defaultValue:false},{key:"cancelable",converter:n.converters.boolean,defaultValue:false},{key:"composed",converter:n.converters.boolean,defaultValue:false}];n.converters.MessageEventInit=n.dictionaryConverter([...i,{key:"data",converter:n.converters.any,defaultValue:null},{key:"origin",converter:n.converters.USVString,defaultValue:""},{key:"lastEventId",converter:n.converters.DOMString,defaultValue:""},{key:"source",converter:n.nullableConverter(n.converters.MessagePort),defaultValue:null},{key:"ports",converter:n.converters["sequence"],get defaultValue(){return[]}}]);n.converters.CloseEventInit=n.dictionaryConverter([...i,{key:"wasClean",converter:n.converters.boolean,defaultValue:false},{key:"code",converter:n.converters["unsigned short"],defaultValue:0},{key:"reason",converter:n.converters.USVString,defaultValue:""}]);n.converters.ErrorEventInit=n.dictionaryConverter([...i,{key:"message",converter:n.converters.DOMString,defaultValue:""},{key:"filename",converter:n.converters.USVString,defaultValue:""},{key:"lineno",converter:n.converters["unsigned long"],defaultValue:0},{key:"colno",converter:n.converters["unsigned long"],defaultValue:0},{key:"error",converter:n.converters.any}]);e.exports={MessageEvent:MessageEvent,CloseEvent:CloseEvent,ErrorEvent:ErrorEvent}},31237:(e,t,r)=>{const{maxUnsigned16Bit:n}=r(45913);let s;try{s=r(76982)}catch{}class WebsocketFrameSend{constructor(e){this.frameData=e;this.maskKey=s.randomBytes(4)}createFrame(e){const t=this.frameData?.byteLength??0;let r=t;let s=6;if(t>n){s+=8;r=127}else if(t>125){s+=2;r=126}const o=Buffer.allocUnsafe(t+s);o[0]=o[1]=0;o[0]|=128;o[0]=(o[0]&240)+e; -/*! ws. MIT License. Einar Otto Stangvik */o[s-4]=this.maskKey[0];o[s-3]=this.maskKey[1];o[s-2]=this.maskKey[2];o[s-1]=this.maskKey[3];o[1]=r;if(r===126){o.writeUInt16BE(t,2)}else if(r===127){o[2]=o[3]=0;o.writeUIntBE(t,4,6)}o[1]|=128;for(let e=0;e{const{Writable:n}=r(2203);const s=r(31637);const{parserStates:o,opcodes:i,states:a,emptyBuffer:c}=r(45913);const{kReadyState:u,kSentClose:A,kResponse:l,kReceivedClose:d}=r(62933);const{isValidStatusCode:p,failWebsocketConnection:g,websocketMessageReceived:h}=r(3574);const{WebsocketFrameSend:m}=r(31237);const E={};E.ping=s.channel("undici:websocket:ping");E.pong=s.channel("undici:websocket:pong");class ByteParser extends n{#i=[];#a=0;#c=o.INFO;#u={};#A=[];constructor(e){super();this.ws=e}_write(e,t,r){this.#i.push(e);this.#a+=e.length;this.run(r)}run(e){while(true){if(this.#c===o.INFO){if(this.#a<2){return e()}const t=this.consume(2);this.#u.fin=(t[0]&128)!==0;this.#u.opcode=t[0]&15;this.#u.originalOpcode??=this.#u.opcode;this.#u.fragmented=!this.#u.fin&&this.#u.opcode!==i.CONTINUATION;if(this.#u.fragmented&&this.#u.opcode!==i.BINARY&&this.#u.opcode!==i.TEXT){g(this.ws,"Invalid frame type was fragmented.");return}const r=t[1]&127;if(r<=125){this.#u.payloadLength=r;this.#c=o.READ_DATA}else if(r===126){this.#c=o.PAYLOADLENGTH_16}else if(r===127){this.#c=o.PAYLOADLENGTH_64}if(this.#u.fragmented&&r>125){g(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#u.opcode===i.PING||this.#u.opcode===i.PONG||this.#u.opcode===i.CLOSE)&&r>125){g(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#u.opcode===i.CLOSE){if(r===1){g(this.ws,"Received close frame with a 1-byte body.");return}const e=this.consume(r);this.#u.closeInfo=this.parseCloseBody(false,e);if(!this.ws[A]){const e=Buffer.allocUnsafe(2);e.writeUInt16BE(this.#u.closeInfo.code,0);const t=new m(e);this.ws[l].socket.write(t.createFrame(i.CLOSE),(e=>{if(!e){this.ws[A]=true}}))}this.ws[u]=a.CLOSING;this.ws[d]=true;this.end();return}else if(this.#u.opcode===i.PING){const t=this.consume(r);if(!this.ws[d]){const e=new m(t);this.ws[l].socket.write(e.createFrame(i.PONG));if(E.ping.hasSubscribers){E.ping.publish({payload:t})}}this.#c=o.INFO;if(this.#a>0){continue}else{e();return}}else if(this.#u.opcode===i.PONG){const t=this.consume(r);if(E.pong.hasSubscribers){E.pong.publish({payload:t})}if(this.#a>0){continue}else{e();return}}}else if(this.#c===o.PAYLOADLENGTH_16){if(this.#a<2){return e()}const t=this.consume(2);this.#u.payloadLength=t.readUInt16BE(0);this.#c=o.READ_DATA}else if(this.#c===o.PAYLOADLENGTH_64){if(this.#a<8){return e()}const t=this.consume(8);const r=t.readUInt32BE(0);if(r>2**31-1){g(this.ws,"Received payload length > 2^31 bytes.");return}const n=t.readUInt32BE(4);this.#u.payloadLength=(r<<8)+n;this.#c=o.READ_DATA}else if(this.#c===o.READ_DATA){if(this.#a=this.#u.payloadLength){const e=this.consume(this.#u.payloadLength);this.#A.push(e);if(!this.#u.fragmented||this.#u.fin&&this.#u.opcode===i.CONTINUATION){const e=Buffer.concat(this.#A);h(this.ws,this.#u.originalOpcode,e);this.#u={};this.#A.length=0}this.#c=o.INFO}}if(this.#a>0){continue}else{e();break}}}consume(e){if(e>this.#a){return null}else if(e===0){return c}if(this.#i[0].length===e){this.#a-=this.#i[0].length;return this.#i.shift()}const t=Buffer.allocUnsafe(e);let r=0;while(r!==e){const n=this.#i[0];const{length:s}=n;if(s+r===e){t.set(this.#i.shift(),r);break}else if(s+r>e){t.set(n.subarray(0,e-r),r);this.#i[0]=n.subarray(e-r);break}else{t.set(this.#i.shift(),r);r+=n.length}}this.#a-=e;return t}parseCloseBody(e,t){let r;if(t.length>=2){r=t.readUInt16BE(0)}if(e){if(!p(r)){return null}return{code:r}}let n=t.subarray(2);if(n[0]===239&&n[1]===187&&n[2]===191){n=n.subarray(3)}if(r!==undefined&&!p(r)){return null}try{n=new TextDecoder("utf-8",{fatal:true}).decode(n)}catch{return null}return{code:r,reason:n}}get closingInfo(){return this.#u.closeInfo}}e.exports={ByteParser:ByteParser}},62933:e=>{e.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},3574:(e,t,r)=>{const{kReadyState:n,kController:s,kResponse:o,kBinaryType:i,kWebSocketURL:a}=r(62933);const{states:c,opcodes:u}=r(45913);const{MessageEvent:A,ErrorEvent:l}=r(46255);function isEstablished(e){return e[n]===c.OPEN}function isClosing(e){return e[n]===c.CLOSING}function isClosed(e){return e[n]===c.CLOSED}function fireEvent(e,t,r=Event,n){const s=new r(e,n);t.dispatchEvent(s)}function websocketMessageReceived(e,t,r){if(e[n]!==c.OPEN){return}let s;if(t===u.TEXT){try{s=new TextDecoder("utf-8",{fatal:true}).decode(r)}catch{failWebsocketConnection(e,"Received invalid UTF-8 in text frame.");return}}else if(t===u.BINARY){if(e[i]==="blob"){s=new Blob([r])}else{s=new Uint8Array(r).buffer}}fireEvent("message",e,A,{origin:e[a].origin,data:s})}function isValidSubprotocol(e){if(e.length===0){return false}for(const t of e){const e=t.charCodeAt(0);if(e<33||e>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||e===32||e===9){return false}}return true}function isValidStatusCode(e){if(e>=1e3&&e<1015){return e!==1004&&e!==1005&&e!==1006}return e>=3e3&&e<=4999}function failWebsocketConnection(e,t){const{[s]:r,[o]:n}=e;r.abort();if(n?.socket&&!n.socket.destroyed){n.socket.destroy()}if(t){fireEvent("error",e,l,{error:new Error(t)})}}e.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},55171:(e,t,r)=>{const{webidl:n}=r(74222);const{DOMException:s}=r(87326);const{URLSerializer:o}=r(94322);const{getGlobalOrigin:i}=r(75628);const{staticPropertyDescriptors:a,states:c,opcodes:u,emptyBuffer:A}=r(45913);const{kWebSocketURL:l,kReadyState:d,kController:p,kBinaryType:g,kResponse:h,kSentClose:m,kByteParser:E}=r(62933);const{isEstablished:y,isClosing:I,isValidSubprotocol:C,failWebsocketConnection:b,fireEvent:B}=r(3574);const{establishWebSocketConnection:Q}=r(68550);const{WebsocketFrameSend:T}=r(31237);const{ByteParser:v}=r(43171);const{kEnumerableProperty:w,isBlobLike:_}=r(3440);const{getGlobalDispatcher:O}=r(32581);const{types:k}=r(39023);let R=false;class WebSocket extends EventTarget{#l={open:null,error:null,close:null,message:null};#d=0;#p="";#f="";constructor(e,t=[]){super();n.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!R){R=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const r=n.converters["DOMString or sequence or WebSocketInit"](t);e=n.converters.USVString(e);t=r.protocols;const o=i();let a;try{a=new URL(e,o)}catch(e){throw new s(e,"SyntaxError")}if(a.protocol==="http:"){a.protocol="ws:"}else if(a.protocol==="https:"){a.protocol="wss:"}if(a.protocol!=="ws:"&&a.protocol!=="wss:"){throw new s(`Expected a ws: or wss: protocol, got ${a.protocol}`,"SyntaxError")}if(a.hash||a.href.endsWith("#")){throw new s("Got fragment","SyntaxError")}if(typeof t==="string"){t=[t]}if(t.length!==new Set(t.map((e=>e.toLowerCase()))).size){throw new s("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(t.length>0&&!t.every((e=>C(e)))){throw new s("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[l]=new URL(a.href);this[p]=Q(a,t,this,(e=>this.#g(e)),r);this[d]=WebSocket.CONNECTING;this[g]="blob"}close(e=undefined,t=undefined){n.brandCheck(this,WebSocket);if(e!==undefined){e=n.converters["unsigned short"](e,{clamp:true})}if(t!==undefined){t=n.converters.USVString(t)}if(e!==undefined){if(e!==1e3&&(e<3e3||e>4999)){throw new s("invalid code","InvalidAccessError")}}let r=0;if(t!==undefined){r=Buffer.byteLength(t);if(r>123){throw new s(`Reason must be less than 123 bytes; received ${r}`,"SyntaxError")}}if(this[d]===WebSocket.CLOSING||this[d]===WebSocket.CLOSED){}else if(!y(this)){b(this,"Connection was closed before it was established.");this[d]=WebSocket.CLOSING}else if(!I(this)){const n=new T;if(e!==undefined&&t===undefined){n.frameData=Buffer.allocUnsafe(2);n.frameData.writeUInt16BE(e,0)}else if(e!==undefined&&t!==undefined){n.frameData=Buffer.allocUnsafe(2+r);n.frameData.writeUInt16BE(e,0);n.frameData.write(t,2,"utf-8")}else{n.frameData=A}const s=this[h].socket;s.write(n.createFrame(u.CLOSE),(e=>{if(!e){this[m]=true}}));this[d]=c.CLOSING}else{this[d]=WebSocket.CLOSING}}send(e){n.brandCheck(this,WebSocket);n.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});e=n.converters.WebSocketSendData(e);if(this[d]===WebSocket.CONNECTING){throw new s("Sent before connected.","InvalidStateError")}if(!y(this)||I(this)){return}const t=this[h].socket;if(typeof e==="string"){const r=Buffer.from(e);const n=new T(r);const s=n.createFrame(u.TEXT);this.#d+=r.byteLength;t.write(s,(()=>{this.#d-=r.byteLength}))}else if(k.isArrayBuffer(e)){const r=Buffer.from(e);const n=new T(r);const s=n.createFrame(u.BINARY);this.#d+=r.byteLength;t.write(s,(()=>{this.#d-=r.byteLength}))}else if(ArrayBuffer.isView(e)){const r=Buffer.from(e,e.byteOffset,e.byteLength);const n=new T(r);const s=n.createFrame(u.BINARY);this.#d+=r.byteLength;t.write(s,(()=>{this.#d-=r.byteLength}))}else if(_(e)){const r=new T;e.arrayBuffer().then((e=>{const n=Buffer.from(e);r.frameData=n;const s=r.createFrame(u.BINARY);this.#d+=n.byteLength;t.write(s,(()=>{this.#d-=n.byteLength}))}))}}get readyState(){n.brandCheck(this,WebSocket);return this[d]}get bufferedAmount(){n.brandCheck(this,WebSocket);return this.#d}get url(){n.brandCheck(this,WebSocket);return o(this[l])}get extensions(){n.brandCheck(this,WebSocket);return this.#f}get protocol(){n.brandCheck(this,WebSocket);return this.#p}get onopen(){n.brandCheck(this,WebSocket);return this.#l.open}set onopen(e){n.brandCheck(this,WebSocket);if(this.#l.open){this.removeEventListener("open",this.#l.open)}if(typeof e==="function"){this.#l.open=e;this.addEventListener("open",e)}else{this.#l.open=null}}get onerror(){n.brandCheck(this,WebSocket);return this.#l.error}set onerror(e){n.brandCheck(this,WebSocket);if(this.#l.error){this.removeEventListener("error",this.#l.error)}if(typeof e==="function"){this.#l.error=e;this.addEventListener("error",e)}else{this.#l.error=null}}get onclose(){n.brandCheck(this,WebSocket);return this.#l.close}set onclose(e){n.brandCheck(this,WebSocket);if(this.#l.close){this.removeEventListener("close",this.#l.close)}if(typeof e==="function"){this.#l.close=e;this.addEventListener("close",e)}else{this.#l.close=null}}get onmessage(){n.brandCheck(this,WebSocket);return this.#l.message}set onmessage(e){n.brandCheck(this,WebSocket);if(this.#l.message){this.removeEventListener("message",this.#l.message)}if(typeof e==="function"){this.#l.message=e;this.addEventListener("message",e)}else{this.#l.message=null}}get binaryType(){n.brandCheck(this,WebSocket);return this[g]}set binaryType(e){n.brandCheck(this,WebSocket);if(e!=="blob"&&e!=="arraybuffer"){this[g]="blob"}else{this[g]=e}}#g(e){this[h]=e;const t=new v(this);t.on("drain",(function onParserDrain(){this.ws[h].socket.resume()}));e.socket.ws=this;this[E]=t;this[d]=c.OPEN;const r=e.headersList.get("sec-websocket-extensions");if(r!==null){this.#f=r}const n=e.headersList.get("sec-websocket-protocol");if(n!==null){this.#p=n}B("open",this)}}WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=c.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=c.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=c.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=c.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:a,OPEN:a,CLOSING:a,CLOSED:a,url:w,readyState:w,bufferedAmount:w,onopen:w,onerror:w,onclose:w,close:w,onmessage:w,binaryType:w,send:w,extensions:w,protocol:w,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:a,OPEN:a,CLOSING:a,CLOSED:a});n.converters["sequence"]=n.sequenceConverter(n.converters.DOMString);n.converters["DOMString or sequence"]=function(e){if(n.util.Type(e)==="Object"&&Symbol.iterator in e){return n.converters["sequence"](e)}return n.converters.DOMString(e)};n.converters.WebSocketInit=n.dictionaryConverter([{key:"protocols",converter:n.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return O()}},{key:"headers",converter:n.nullableConverter(n.converters.HeadersInit)}]);n.converters["DOMString or sequence or WebSocketInit"]=function(e){if(n.util.Type(e)==="Object"&&!(Symbol.iterator in e)){return n.converters.WebSocketInit(e)}return{protocols:n.converters["DOMString or sequence"](e)}};n.converters.WebSocketSendData=function(e){if(n.util.Type(e)==="Object"){if(_(e)){return n.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||k.isAnyArrayBuffer(e)){return n.converters.BufferSource(e)}}return n.converters.USVString(e)};e.exports={WebSocket:WebSocket}},12048:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return s.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return c.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return u.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return A.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return l.default}});var n=_interopRequireDefault(r(6415));var s=_interopRequireDefault(r(51697));var o=_interopRequireDefault(r(4676));var i=_interopRequireDefault(r(69771));var a=_interopRequireDefault(r(37723));var c=_interopRequireDefault(r(15868));var u=_interopRequireDefault(r(36200));var A=_interopRequireDefault(r(37597));var l=_interopRequireDefault(r(17267));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},10216:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(76982));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return n.default.createHash("md5").update(e).digest()}var s=md5;t["default"]=s},37723:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r="00000000-0000-0000-0000-000000000000";t["default"]=r},17267:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(36200));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,n.default)(e)){throw TypeError("Invalid UUID")}let t;const r=new Uint8Array(16);r[0]=(t=parseInt(e.slice(0,8),16))>>>24;r[1]=t>>>16&255;r[2]=t>>>8&255;r[3]=t&255;r[4]=(t=parseInt(e.slice(9,13),16))>>>8;r[5]=t&255;r[6]=(t=parseInt(e.slice(14,18),16))>>>8;r[7]=t&255;r[8]=(t=parseInt(e.slice(19,23),16))>>>8;r[9]=t&255;r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;r[11]=t/4294967296&255;r[12]=t>>>24&255;r[13]=t>>>16&255;r[14]=t>>>8&255;r[15]=t&255;return r}var s=parse;t["default"]=s},67879:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=/^(?:[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;t["default"]=r},12973:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=rng;var n=_interopRequireDefault(r(76982));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const s=new Uint8Array(256);let o=s.length;function rng(){if(o>s.length-16){n.default.randomFillSync(s);o=0}return s.slice(o,o+=16)}},507:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(76982));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return n.default.createHash("sha1").update(e).digest()}var s=sha1;t["default"]=s},37597:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(36200));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const s=[];for(let e=0;e<256;++e){s.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const r=(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase();if(!(0,n.default)(r)){throw TypeError("Stringified UUID is invalid")}return r}var o=stringify;t["default"]=o},6415:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(12973));var s=_interopRequireDefault(r(37597));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let o;let i;let a=0;let c=0;function v1(e,t,r){let u=t&&r||0;const A=t||new Array(16);e=e||{};let l=e.node||o;let d=e.clockseq!==undefined?e.clockseq:i;if(l==null||d==null){const t=e.random||(e.rng||n.default)();if(l==null){l=o=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(d==null){d=i=(t[6]<<8|t[7])&16383}}let p=e.msecs!==undefined?e.msecs:Date.now();let g=e.nsecs!==undefined?e.nsecs:c+1;const h=p-a+(g-c)/1e4;if(h<0&&e.clockseq===undefined){d=d+1&16383}if((h<0||p>a)&&e.nsecs===undefined){g=0}if(g>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}a=p;c=g;i=d;p+=122192928e5;const m=((p&268435455)*1e4+g)%4294967296;A[u++]=m>>>24&255;A[u++]=m>>>16&255;A[u++]=m>>>8&255;A[u++]=m&255;const E=p/4294967296*1e4&268435455;A[u++]=E>>>8&255;A[u++]=E&255;A[u++]=E>>>24&15|16;A[u++]=E>>>16&255;A[u++]=d>>>8|128;A[u++]=d&255;for(let e=0;e<6;++e){A[u+e]=l[e]}return t||(0,s.default)(A)}var u=v1;t["default"]=u},51697:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(92930));var s=_interopRequireDefault(r(10216));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const o=(0,n.default)("v3",48,s.default);var i=o;t["default"]=i},92930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;t.URL=t.DNS=void 0;var n=_interopRequireDefault(r(37597));var s=_interopRequireDefault(r(17267));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(12973));var s=_interopRequireDefault(r(37597));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,r){e=e||{};const o=e.random||(e.rng||n.default)();o[6]=o[6]&15|64;o[8]=o[8]&63|128;if(t){r=r||0;for(let e=0;e<16;++e){t[r+e]=o[e]}return t}return(0,s.default)(o)}var o=v4;t["default"]=o},69771:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(92930));var s=_interopRequireDefault(r(507));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const o=(0,n.default)("v5",80,s.default);var i=o;t["default"]=i},36200:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(67879));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&n.default.test(e)}var s=validate;t["default"]=s},15868:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(r(36200));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,n.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var s=version;t["default"]=s},58264:e=>{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r{t.exports=e(import.meta.url)("assert")},90290:t=>{t.exports=e(import.meta.url)("async_hooks")},20181:t=>{t.exports=e(import.meta.url)("buffer")},64236:t=>{t.exports=e(import.meta.url)("console")},76982:t=>{t.exports=e(import.meta.url)("crypto")},31637:t=>{t.exports=e(import.meta.url)("diagnostics_channel")},24434:t=>{t.exports=e(import.meta.url)("events")},79896:t=>{t.exports=e(import.meta.url)("fs")},58611:t=>{t.exports=e(import.meta.url)("http")},85675:t=>{t.exports=e(import.meta.url)("http2")},65692:t=>{t.exports=e(import.meta.url)("https")},69278:t=>{t.exports=e(import.meta.url)("net")},78474:t=>{t.exports=e(import.meta.url)("node:events")},57075:t=>{t.exports=e(import.meta.url)("node:stream")},57975:t=>{t.exports=e(import.meta.url)("node:util")},70857:t=>{t.exports=e(import.meta.url)("os")},16928:t=>{t.exports=e(import.meta.url)("path")},82987:t=>{t.exports=e(import.meta.url)("perf_hooks")},83480:t=>{t.exports=e(import.meta.url)("querystring")},2203:t=>{t.exports=e(import.meta.url)("stream")},63774:t=>{t.exports=e(import.meta.url)("stream/web")},13193:t=>{t.exports=e(import.meta.url)("string_decoder")},64756:t=>{t.exports=e(import.meta.url)("tls")},87016:t=>{t.exports=e(import.meta.url)("url")},39023:t=>{t.exports=e(import.meta.url)("util")},98253:t=>{t.exports=e(import.meta.url)("util/types")},28167:t=>{t.exports=e(import.meta.url)("worker_threads")},43106:t=>{t.exports=e(import.meta.url)("zlib")},27182:(e,t,r)=>{const n=r(57075).Writable;const s=r(57975).inherits;const o=r(84136);const i=r(50612);const a=r(62271);const c=45;const u=Buffer.from("-");const A=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(e){if(!(this instanceof Dicer)){return new Dicer(e)}n.call(this,e);if(!e||!e.headerFirst&&typeof e.boundary!=="string"){throw new TypeError("Boundary required")}if(typeof e.boundary==="string"){this.setBoundary(e.boundary)}else{this._bparser=undefined}this._headerFirst=e.headerFirst;this._dashes=0;this._parts=0;this._finished=false;this._realFinish=false;this._isPreamble=true;this._justMatched=false;this._firstWrite=true;this._inHeader=true;this._part=undefined;this._cb=undefined;this._ignoreData=false;this._partOpts={highWaterMark:e.partHwm};this._pause=false;const t=this;this._hparser=new a(e);this._hparser.on("header",(function(e){t._inHeader=false;t._part.emit("header",e)}))}s(Dicer,n);Dicer.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){const e=this;process.nextTick((function(){e.emit("error",new Error("Unexpected end of multipart data"));if(e._part&&!e._ignoreData){const t=e._isPreamble?"Preamble":"Part";e._part.emit("error",new Error(t+" terminated early due to unexpected end of multipart data"));e._part.push(null);process.nextTick((function(){e._realFinish=true;e.emit("finish");e._realFinish=false}));return}e._realFinish=true;e.emit("finish");e._realFinish=false}))}}else{n.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(e,t,r){if(!this._hparser&&!this._bparser){return r()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new i(this._partOpts);if(this.listenerCount("preamble")!==0){this.emit("preamble",this._part)}else{this._ignore()}}const t=this._hparser.push(e);if(!this._inHeader&&t!==undefined&&t{const n=r(78474).EventEmitter;const s=r(57975).inherits;const o=r(22393);const i=r(84136);const a=Buffer.from("\r\n\r\n");const c=/\r\n/g;const u=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(e){n.call(this);e=e||{};const t=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=o(e,"maxHeaderPairs",2e3);this.maxHeaderSize=o(e,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new i(a);this.ss.on("info",(function(e,r,n,s){if(r&&!t.maxed){if(t.nread+s-n>=t.maxHeaderSize){s=t.maxHeaderSize-t.nread+n;t.nread=t.maxHeaderSize;t.maxed=true}else{t.nread+=s-n}t.buffer+=r.toString("binary",n,s)}if(e){t._finish()}}))}s(HeaderParser,n);HeaderParser.prototype.push=function(e){const t=this.ss.push(e);if(this.finished){return t}};HeaderParser.prototype.reset=function(){this.finished=false;this.buffer="";this.header={};this.ss.reset()};HeaderParser.prototype._finish=function(){if(this.buffer){this._parseHeader()}this.ss.matches=this.ss.maxMatches;const e=this.header;this.header={};this.buffer="";this.finished=true;this.nread=this.npairs=0;this.maxed=false;this.emit("header",e)};HeaderParser.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs){return}const e=this.buffer.split(c);const t=e.length;let r,n;for(var s=0;s{const n=r(57975).inherits;const s=r(57075).Readable;function PartStream(e){s.call(this,e)}n(PartStream,s);PartStream.prototype._read=function(e){};e.exports=PartStream},84136:(e,t,r)=>{const n=r(78474).EventEmitter;const s=r(57975).inherits;function SBMH(e){if(typeof e==="string"){e=Buffer.from(e)}if(!Buffer.isBuffer(e)){throw new TypeError("The needle has to be a String or a Buffer.")}const t=e.length;if(t===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(t>256){throw new Error("The needle cannot have a length bigger than 256.")}this.maxMatches=Infinity;this.matches=0;this._occ=new Array(256).fill(t);this._lookbehind_size=0;this._needle=e;this._bufpos=0;this._lookbehind=Buffer.alloc(t);for(var r=0;r=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const r=this._lookbehind_size+o;if(r>0){this.emit("info",false,this._lookbehind,0,r)}this._lookbehind.copy(this._lookbehind,0,r,this._lookbehind_size-r);this._lookbehind_size-=r;e.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=t;this._bufpos=t;return t}}o+=(o>=0)*this._bufpos;if(e.indexOf(r,o)!==-1){o=e.indexOf(r,o);++this.matches;if(o>0){this.emit("info",true,e,this._bufpos,o)}else{this.emit("info",true)}return this._bufpos=o+n}else{o=t-n}while(o0){this.emit("info",false,e,this._bufpos,o{const n=r(57075).Writable;const{inherits:s}=r(57975);const o=r(27182);const i=r(41192);const a=r(80855);const c=r(8929);function Busboy(e){if(!(this instanceof Busboy)){return new Busboy(e)}if(typeof e!=="object"){throw new TypeError("Busboy expected an options-Object.")}if(typeof e.headers!=="object"){throw new TypeError("Busboy expected an options-Object with headers-attribute.")}if(typeof e.headers["content-type"]!=="string"){throw new TypeError("Missing Content-Type-header.")}const{headers:t,...r}=e;this.opts={autoDestroy:false,...r};n.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(t);this._finished=false}s(Busboy,n);Busboy.prototype.emit=function(e){if(e==="finish"){if(!this._done){this._parser?.end();return}else if(this._finished){return}this._finished=true}n.prototype.emit.apply(this,arguments)};Busboy.prototype.getParserByHeaders=function(e){const t=c(e["content-type"]);const r={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(i.detect.test(t[0])){return new i(this,r)}if(a.detect.test(t[0])){return new a(this,r)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(e,t,r){this._parser.write(e,r)};e.exports=Busboy;e.exports["default"]=Busboy;e.exports.Busboy=Busboy;e.exports.Dicer=o},41192:(e,t,r)=>{const{Readable:n}=r(57075);const{inherits:s}=r(57975);const o=r(27182);const i=r(8929);const a=r(72747);const c=r(20692);const u=r(22393);const A=/^boundary$/i;const l=/^form-data$/i;const d=/^charset$/i;const p=/^filename$/i;const g=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(e,t){let r;let n;const s=this;let h;const m=t.limits;const E=t.isPartAFile||((e,t,r)=>t==="application/octet-stream"||r!==undefined);const y=t.parsedConType||[];const I=t.defCharset||"utf8";const C=t.preservePath;const b={highWaterMark:t.fileHwm};for(r=0,n=y.length;rw){s.parser.removeListener("part",onPart);s.parser.on("part",skipPart);e.hitPartsLimit=true;e.emit("partsLimit");return skipPart(t)}if(D){const e=D;e.emit("end");e.removeAllListeners("end")}t.on("header",(function(o){let u;let A;let h;let m;let y;let w;let _=0;if(o["content-type"]){h=i(o["content-type"][0]);if(h[0]){u=h[0].toLowerCase();for(r=0,n=h.length;rQ){const n=Q-_+e.length;if(n>0){r.push(e.slice(0,n))}r.truncated=true;r.bytesRead=Q;t.removeAllListeners("data");r.emit("limit");return}else if(!r.push(e)){s._pause=true}r.bytesRead=_};N=function(){F=undefined;r.push(null)}}else{if(R===v){if(!e.hitFieldsLimit){e.hitFieldsLimit=true;e.emit("fieldsLimit")}return skipPart(t)}++R;++S;let r="";let n=false;D=t;O=function(e){if((_+=e.length)>B){const s=B-(_-e.length);r+=e.toString("binary",0,s);n=true;t.removeAllListeners("data")}else{r+=e.toString("binary")}};N=function(){D=undefined;if(r.length){r=a(r,"binary",m)}e.emit("field",A,r,false,n,y,u);--S;checkFinished()}}t._readableState.sync=false;t.on("data",O);t.on("end",N)})).on("error",(function(e){if(F){F.emit("error",e)}}))})).on("error",(function(t){e.emit("error",t)})).on("finish",(function(){N=true;checkFinished()}))}Multipart.prototype.write=function(e,t){const r=this.parser.write(e);if(r&&!this._pause){t()}else{this._needDrain=!r;this._cb=t}};Multipart.prototype.end=function(){const e=this;if(e.parser.writable){e.parser.end()}else if(!e._boy._done){process.nextTick((function(){e._boy._done=true;e._boy.emit("finish")}))}};function skipPart(e){e.resume()}function FileStream(e){n.call(this,e);this.bytesRead=0;this.truncated=false}s(FileStream,n);FileStream.prototype._read=function(e){};e.exports=Multipart},80855:(e,t,r)=>{const n=r(11496);const s=r(72747);const o=r(22393);const i=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(e,t){const r=t.limits;const s=t.parsedConType;this.boy=e;this.fieldSizeLimit=o(r,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=o(r,"fieldNameSize",100);this.fieldsLimit=o(r,"fields",Infinity);let a;for(var c=0,u=s.length;ci){this._key+=this.decoder.write(e.toString("binary",i,r))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();i=r+1}else if(n!==undefined){++this._fields;let r;const o=this._keyTrunc;if(n>i){r=this._key+=this.decoder.write(e.toString("binary",i,n))}else{r=this._key}this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();if(r.length){this.boy.emit("field",s(r,"binary",this.charset),"",o,false)}i=n+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(o>i){this._key+=this.decoder.write(e.toString("binary",i,o))}i=o;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(ii){this._val+=this.decoder.write(e.toString("binary",i,n))}this.boy.emit("field",s(this._key,"binary",this.charset),s(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc);this._state="key";this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();i=n+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(o>i){this._val+=this.decoder.write(e.toString("binary",i,o))}i=o;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(i0){this.boy.emit("field",s(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",s(this._key,"binary",this.charset),s(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};e.exports=UrlEncoded},11496:e=>{const t=/\+/g;const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Decoder(){this.buffer=undefined}Decoder.prototype.write=function(e){e=e.replace(t," ");let n="";let s=0;let o=0;const i=e.length;for(;so){n+=e.substring(o,s);o=s}this.buffer="";++o}}if(o{e.exports=function basename(e){if(typeof e!=="string"){return""}for(var t=e.length-1;t>=0;--t){switch(e.charCodeAt(t)){case 47:case 92:e=e.slice(t+1);return e===".."||e==="."?"":e}}return e===".."||e==="."?"":e}},72747:function(e){const t=new TextDecoder("utf-8");const r=new Map([["utf-8",t],["utf8",t]]);function getDecoder(e){let t;while(true){switch(e){case"utf-8":case"utf8":return n.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return n.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return n.utf16le;case"base64":return n.base64;default:if(t===undefined){t=true;e=e.toLowerCase();continue}return n.other.bind(e)}}}const n={utf8:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.utf8Slice(0,e.length)},latin1:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){return e}return e.latin1Slice(0,e.length)},utf16le:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.ucs2Slice(0,e.length)},base64:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.base64Slice(0,e.length)},other:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}if(r.has(this.toString())){try{return r.get(this).decode(e)}catch{}}return typeof e==="string"?e:e.toString()}};function decodeText(e,t,r){if(e){return getDecoder(r)(e,t)}return e}e.exports=decodeText},22393:e=>{e.exports=function getLimit(e,t,r){if(!e||e[t]===undefined||e[t]===null){return r}if(typeof e[t]!=="number"||isNaN(e[t])){throw new TypeError("Limit "+t+" is not a valid number")}return e[t]}},8929:(e,t,r)=>{const n=r(72747);const s=/%[a-fA-F0-9][a-fA-F0-9]/g;const o={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"","%08":"\b","%09":"\t","%0a":"\n","%0A":"\n","%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"","%1B":"","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"","%7F":"","%80":"€","%81":"","%82":"‚","%83":"ƒ","%84":"„","%85":"…","%86":"†","%87":"‡","%88":"ˆ","%89":"‰","%8a":"Š","%8A":"Š","%8b":"‹","%8B":"‹","%8c":"Œ","%8C":"Œ","%8d":"","%8D":"","%8e":"Ž","%8E":"Ž","%8f":"","%8F":"","%90":"","%91":"‘","%92":"’","%93":"“","%94":"”","%95":"•","%96":"–","%97":"—","%98":"˜","%99":"™","%9a":"š","%9A":"š","%9b":"›","%9B":"›","%9c":"œ","%9C":"œ","%9d":"","%9D":"","%9e":"ž","%9E":"ž","%9f":"Ÿ","%9F":"Ÿ","%a0":" ","%A0":" ","%a1":"¡","%A1":"¡","%a2":"¢","%A2":"¢","%a3":"£","%A3":"£","%a4":"¤","%A4":"¤","%a5":"¥","%A5":"¥","%a6":"¦","%A6":"¦","%a7":"§","%A7":"§","%a8":"¨","%A8":"¨","%a9":"©","%A9":"©","%aa":"ª","%Aa":"ª","%aA":"ª","%AA":"ª","%ab":"«","%Ab":"«","%aB":"«","%AB":"«","%ac":"¬","%Ac":"¬","%aC":"¬","%AC":"¬","%ad":"­","%Ad":"­","%aD":"­","%AD":"­","%ae":"®","%Ae":"®","%aE":"®","%AE":"®","%af":"¯","%Af":"¯","%aF":"¯","%AF":"¯","%b0":"°","%B0":"°","%b1":"±","%B1":"±","%b2":"²","%B2":"²","%b3":"³","%B3":"³","%b4":"´","%B4":"´","%b5":"µ","%B5":"µ","%b6":"¶","%B6":"¶","%b7":"·","%B7":"·","%b8":"¸","%B8":"¸","%b9":"¹","%B9":"¹","%ba":"º","%Ba":"º","%bA":"º","%BA":"º","%bb":"»","%Bb":"»","%bB":"»","%BB":"»","%bc":"¼","%Bc":"¼","%bC":"¼","%BC":"¼","%bd":"½","%Bd":"½","%bD":"½","%BD":"½","%be":"¾","%Be":"¾","%bE":"¾","%BE":"¾","%bf":"¿","%Bf":"¿","%bF":"¿","%BF":"¿","%c0":"À","%C0":"À","%c1":"Á","%C1":"Á","%c2":"Â","%C2":"Â","%c3":"Ã","%C3":"Ã","%c4":"Ä","%C4":"Ä","%c5":"Å","%C5":"Å","%c6":"Æ","%C6":"Æ","%c7":"Ç","%C7":"Ç","%c8":"È","%C8":"È","%c9":"É","%C9":"É","%ca":"Ê","%Ca":"Ê","%cA":"Ê","%CA":"Ê","%cb":"Ë","%Cb":"Ë","%cB":"Ë","%CB":"Ë","%cc":"Ì","%Cc":"Ì","%cC":"Ì","%CC":"Ì","%cd":"Í","%Cd":"Í","%cD":"Í","%CD":"Í","%ce":"Î","%Ce":"Î","%cE":"Î","%CE":"Î","%cf":"Ï","%Cf":"Ï","%cF":"Ï","%CF":"Ï","%d0":"Ð","%D0":"Ð","%d1":"Ñ","%D1":"Ñ","%d2":"Ò","%D2":"Ò","%d3":"Ó","%D3":"Ó","%d4":"Ô","%D4":"Ô","%d5":"Õ","%D5":"Õ","%d6":"Ö","%D6":"Ö","%d7":"×","%D7":"×","%d8":"Ø","%D8":"Ø","%d9":"Ù","%D9":"Ù","%da":"Ú","%Da":"Ú","%dA":"Ú","%DA":"Ú","%db":"Û","%Db":"Û","%dB":"Û","%DB":"Û","%dc":"Ü","%Dc":"Ü","%dC":"Ü","%DC":"Ü","%dd":"Ý","%Dd":"Ý","%dD":"Ý","%DD":"Ý","%de":"Þ","%De":"Þ","%dE":"Þ","%DE":"Þ","%df":"ß","%Df":"ß","%dF":"ß","%DF":"ß","%e0":"à","%E0":"à","%e1":"á","%E1":"á","%e2":"â","%E2":"â","%e3":"ã","%E3":"ã","%e4":"ä","%E4":"ä","%e5":"å","%E5":"å","%e6":"æ","%E6":"æ","%e7":"ç","%E7":"ç","%e8":"è","%E8":"è","%e9":"é","%E9":"é","%ea":"ê","%Ea":"ê","%eA":"ê","%EA":"ê","%eb":"ë","%Eb":"ë","%eB":"ë","%EB":"ë","%ec":"ì","%Ec":"ì","%eC":"ì","%EC":"ì","%ed":"í","%Ed":"í","%eD":"í","%ED":"í","%ee":"î","%Ee":"î","%eE":"î","%EE":"î","%ef":"ï","%Ef":"ï","%eF":"ï","%EF":"ï","%f0":"ð","%F0":"ð","%f1":"ñ","%F1":"ñ","%f2":"ò","%F2":"ò","%f3":"ó","%F3":"ó","%f4":"ô","%F4":"ô","%f5":"õ","%F5":"õ","%f6":"ö","%F6":"ö","%f7":"÷","%F7":"÷","%f8":"ø","%F8":"ø","%f9":"ù","%F9":"ù","%fa":"ú","%Fa":"ú","%fA":"ú","%FA":"ú","%fb":"û","%Fb":"û","%fB":"û","%FB":"û","%fc":"ü","%Fc":"ü","%fC":"ü","%FC":"ü","%fd":"ý","%Fd":"ý","%fD":"ý","%FD":"ý","%fe":"þ","%Fe":"þ","%fE":"þ","%FE":"þ","%ff":"ÿ","%Ff":"ÿ","%fF":"ÿ","%FF":"ÿ"};function encodedReplacer(e){return o[e]}const i=0;const a=1;const c=2;const u=3;function parseParams(e){const t=[];let r=i;let o="";let A=false;let l=false;let d=0;let p="";const g=e.length;for(var h=0;h{var n=r(41127);var s=r(63301);var o=r(84454);var i=r(92223);var a=r(87103);var c=r(90334);var u=r(13142);function resolveCollection(e,t,r,n,s,o){const i=r.type==="block-map"?a.resolveBlockMap(e,t,r,n,o):r.type==="block-seq"?c.resolveBlockSeq(e,t,r,n,o):u.resolveFlowCollection(e,t,r,n,o);const A=i.constructor;if(s==="!"||s===A.tagName){i.tag=A.tagName;return i}if(s)i.tag=s;return i}function composeCollection(e,t,r,a,c){const u=!a?null:t.directives.tagName(a.source,(e=>c(a,"TAG_RESOLVE_FAILED",e)));const A=r.type==="block-map"?"map":r.type==="block-seq"?"seq":r.start.source==="{"?"map":"seq";if(!a||!u||u==="!"||u===o.YAMLMap.tagName&&A==="map"||u===i.YAMLSeq.tagName&&A==="seq"||!A){return resolveCollection(e,t,r,c,u)}let l=t.schema.tags.find((e=>e.tag===u&&e.collection===A));if(!l){const n=t.schema.knownTags[u];if(n&&n.collection===A){t.schema.tags.push(Object.assign({},n,{default:false}));l=n}else{if(n?.collection){c(a,"BAD_COLLECTION_TYPE",`${n.tag} used for ${A} collection, but expects ${n.collection}`,true)}else{c(a,"TAG_RESOLVE_FAILED",`Unresolved tag: ${u}`,true)}return resolveCollection(e,t,r,c,u)}}const d=resolveCollection(e,t,r,c,u,l);const p=l.resolve?.(d,(e=>c(a,"TAG_RESOLVE_FAILED",e)),t.options)??d;const g=n.isNode(p)?p:new s.Scalar(p);g.range=d.range;g.tag=u;if(l?.format)g.format=l.format;return g}t.composeCollection=composeCollection},23683:(e,t,r)=>{var n=r(3021);var s=r(45937);var o=r(17788);var i=r(34631);function composeDoc(e,t,{offset:r,start:a,value:c,end:u},A){const l=Object.assign({_directives:t},e);const d=new n.Document(undefined,l);const p={atRoot:true,directives:d.directives,options:d.options,schema:d.schema};const g=i.resolveProps(a,{indicator:"doc-start",next:c??u?.[0],offset:r,onError:A,parentIndent:0,startOnNewline:true});if(g.found){d.directives.docStart=true;if(c&&(c.type==="block-map"||c.type==="block-seq")&&!g.hasNewline)A(g.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}d.contents=c?s.composeNode(p,c,g,A):s.composeEmptyNode(p,g.end,a,null,g,A);const h=d.contents.range[2];const m=o.resolveEnd(u,h,false,A);if(m.comment)d.comment=m.comment;d.range=[r,h,m.offset];return d}t.composeDoc=composeDoc},45937:(e,t,r)=>{var n=r(4065);var s=r(57349);var o=r(5413);var i=r(17788);var a=r(22599);const c={composeNode:composeNode,composeEmptyNode:composeEmptyNode};function composeNode(e,t,r,n){const{spaceBefore:i,comment:a,anchor:u,tag:A}=r;let l;let d=true;switch(t.type){case"alias":l=composeAlias(e,t,n);if(u||A)n(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=o.composeScalar(e,t,A,n);if(u)l.anchor=u.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":l=s.composeCollection(c,e,t,A,n);if(u)l.anchor=u.source.substring(1);break;default:{const s=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;n(t,"UNEXPECTED_TOKEN",s);l=composeEmptyNode(e,t.offset,undefined,null,r,n);d=false}}if(u&&l.anchor==="")n(u,"BAD_ALIAS","Anchor cannot be an empty string");if(i)l.spaceBefore=true;if(a){if(t.type==="scalar"&&t.source==="")l.comment=a;else l.commentBefore=a}if(e.options.keepSourceTokens&&d)l.srcToken=t;return l}function composeEmptyNode(e,t,r,n,{spaceBefore:s,comment:i,anchor:c,tag:u,end:A},l){const d={type:"scalar",offset:a.emptyScalarPosition(t,r,n),indent:-1,source:""};const p=o.composeScalar(e,d,u,l);if(c){p.anchor=c.source.substring(1);if(p.anchor==="")l(c,"BAD_ALIAS","Anchor cannot be an empty string")}if(s)p.spaceBefore=true;if(i){p.comment=i;p.range[2]=A}return p}function composeAlias({options:e},{offset:t,source:r,end:s},o){const a=new n.Alias(r.substring(1));if(a.source==="")o(t,"BAD_ALIAS","Alias cannot be an empty string");if(a.source.endsWith(":"))o(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",true);const c=t+r.length;const u=i.resolveEnd(s,c,e.strict,o);a.range=[t,c,u.offset];if(u.comment)a.comment=u.comment;return a}t.composeEmptyNode=composeEmptyNode;t.composeNode=composeNode},5413:(e,t,r)=>{var n=r(41127);var s=r(63301);var o=r(48913);var i=r(76842);function composeScalar(e,t,r,a){const{value:c,type:u,comment:A,range:l}=t.type==="block-scalar"?o.resolveBlockScalar(e,t,a):i.resolveFlowScalar(t,e.options.strict,a);const d=r?e.directives.tagName(r.source,(e=>a(r,"TAG_RESOLVE_FAILED",e))):null;const p=r&&d?findScalarTagByName(e.schema,c,d,r,a):t.type==="scalar"?findScalarTagByTest(e,c,t,a):e.schema[n.SCALAR];let g;try{const o=p.resolve(c,(e=>a(r??t,"TAG_RESOLVE_FAILED",e)),e.options);g=n.isScalar(o)?o:new s.Scalar(o)}catch(e){const n=e instanceof Error?e.message:String(e);a(r??t,"TAG_RESOLVE_FAILED",n);g=new s.Scalar(c)}g.range=l;g.source=c;if(u)g.type=u;if(d)g.tag=d;if(p.format)g.format=p.format;if(A)g.comment=A;return g}function findScalarTagByName(e,t,r,s,o){if(r==="!")return e[n.SCALAR];const i=[];for(const t of e.tags){if(!t.collection&&t.tag===r){if(t.default&&t.test)i.push(t);else return t}}for(const e of i)if(e.test?.test(t))return e;const a=e.knownTags[r];if(a&&!a.collection){e.tags.push(Object.assign({},a,{default:false,test:undefined}));return a}o(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str");return e[n.SCALAR]}function findScalarTagByTest({directives:e,schema:t},r,s,o){const i=t.tags.find((e=>e.default&&e.test?.test(r)))||t[n.SCALAR];if(t.compat){const a=t.compat.find((e=>e.default&&e.test?.test(r)))??t[n.SCALAR];if(i.tag!==a.tag){const t=e.tagString(i.tag);const r=e.tagString(a.tag);const n=`Value may be parsed as either ${t} or ${r}`;o(s,"TAG_RESOLVE_FAILED",n,true)}}return i}t.composeScalar=composeScalar},89984:(e,t,r)=>{var n=r(61342);var s=r(3021);var o=r(91464);var i=r(41127);var a=r(23683);var c=r(17788);function getErrorPos(e){if(typeof e==="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:r}=e;return[t,t+(typeof r==="string"?r.length:1)]}function parsePrelude(e){let t="";let r=false;let n=false;for(let s=0;s{const s=getErrorPos(e);if(n)this.warnings.push(new o.YAMLWarning(s,t,r));else this.errors.push(new o.YAMLParseError(s,t,r))};this.directives=new n.Directives({version:e.version||"1.2"});this.options=e}decorate(e,t){const{comment:r,afterEmptyLine:n}=parsePrelude(this.prelude);if(r){const s=e.contents;if(t){e.comment=e.comment?`${e.comment}\n${r}`:r}else if(n||e.directives.docStart||!s){e.commentBefore=r}else if(i.isCollection(s)&&!s.flow&&s.items.length>0){let e=s.items[0];if(i.isPair(e))e=e.key;const t=e.commentBefore;e.commentBefore=t?`${r}\n${t}`:r}else{const e=s.commentBefore;s.commentBefore=e?`${r}\n${e}`:r}}if(t){Array.prototype.push.apply(e.errors,this.errors);Array.prototype.push.apply(e.warnings,this.warnings)}else{e.errors=this.errors;e.warnings=this.warnings}this.prelude=[];this.errors=[];this.warnings=[]}streamInfo(){return{comment:parsePrelude(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=false,r=-1){for(const t of e)yield*this.next(t);yield*this.end(t,r)}*next(e){if(process.env.LOG_STREAM)console.dir(e,{depth:null});switch(e.type){case"directive":this.directives.add(e.source,((t,r,n)=>{const s=getErrorPos(e);s[0]+=t;this.onError(s,"BAD_DIRECTIVE",r,n)}));this.prelude.push(e.source);this.atDirectives=true;break;case"document":{const t=a.composeDoc(this.options,this.directives,e,this.onError);if(this.atDirectives&&!t.directives.docStart)this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line");this.decorate(t,false);if(this.doc)yield this.doc;this.doc=t;this.atDirectives=false;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message;const r=new o.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t);if(this.atDirectives||!this.doc)this.errors.push(r);else this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const t="Unexpected doc-end without preceding document";this.errors.push(new o.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t));break}this.doc.directives.docEnd=true;const t=c.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);this.decorate(this.doc,true);if(t.comment){const e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new o.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=false,t=-1){if(this.doc){this.decorate(this.doc,true);yield this.doc;this.doc=null}else if(e){const e=Object.assign({_directives:this.directives},this.options);const r=new s.Document(undefined,e);if(this.atDirectives)this.onError(t,"MISSING_CHAR","Missing directives-end indicator line");r.range=[0,t,t];this.decorate(r,false);yield r}}}t.Composer=Composer},87103:(e,t,r)=>{var n=r(57165);var s=r(84454);var o=r(34631);var i=r(9499);var a=r(74051);var c=r(81187);const u="All mapping items must start at the same column";function resolveBlockMap({composeNode:e,composeEmptyNode:t},r,A,l,d){const p=d?.nodeClass??s.YAMLMap;const g=new p(r.schema);if(r.atRoot)r.atRoot=false;let h=A.offset;let m=null;for(const s of A.items){const{start:d,key:p,sep:E,value:y}=s;const I=o.resolveProps(d,{indicator:"explicit-key-ind",next:p??E?.[0],offset:h,onError:l,parentIndent:A.indent,startOnNewline:true});const C=!I.found;if(C){if(p){if(p.type==="block-seq")l(h,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in p&&p.indent!==A.indent)l(h,"BAD_INDENT",u)}if(!I.anchor&&!I.tag&&!E){m=I.end;if(I.comment){if(g.comment)g.comment+="\n"+I.comment;else g.comment=I.comment}continue}if(I.hasNewlineAfterProp||i.containsNewline(p)){l(p??d[d.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}}else if(I.found?.indent!==A.indent){l(h,"BAD_INDENT",u)}const b=I.end;const B=p?e(r,p,I,l):t(r,b,d,null,I,l);if(r.schema.compat)a.flowIndentCheck(A.indent,p,l);if(c.mapIncludes(r,g.items,B))l(b,"DUPLICATE_KEY","Map keys must be unique");const Q=o.resolveProps(E??[],{indicator:"map-value-ind",next:y,offset:B.range[2],onError:l,parentIndent:A.indent,startOnNewline:!p||p.type==="block-scalar"});h=Q.end;if(Q.found){if(C){if(y?.type==="block-map"&&!Q.hasNewline)l(h,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(r.options.strict&&I.start{var n=r(63301);function resolveBlockScalar(e,t,r){const s=t.offset;const o=parseBlockScalarHeader(t,e.options.strict,r);if(!o)return{value:"",type:null,comment:"",range:[s,s,s]};const i=o.mode===">"?n.Scalar.BLOCK_FOLDED:n.Scalar.BLOCK_LITERAL;const a=t.source?splitLines(t.source):[];let c=a.length;for(let e=a.length-1;e>=0;--e){const t=a[e][1];if(t===""||t==="\r")c=e;else break}if(c===0){const e=o.chomp==="+"&&a.length>0?"\n".repeat(Math.max(1,a.length-1)):"";let r=s+o.length;if(t.source)r+=t.source.length;return{value:e,type:i,comment:o.comment,range:[s,r,r]}}let u=t.indent+o.indent;let A=t.offset+o.length;let l=0;for(let t=0;tu)u=n.length}else{if(n.length=c;--e){if(a[e][0].length>u)c=e+1}let d="";let p="";let g=false;for(let e=0;eu||s[0]==="\t"){if(p===" ")p="\n";else if(!g&&p==="\n")p="\n\n";d+=p+t.slice(u)+s;p="\n";g=true}else if(s===""){if(p==="\n")d+="\n";else p="\n"}else{d+=p+s;p=" ";g=false}}switch(o.chomp){case"-":break;case"+":for(let e=c;e{var n=r(92223);var s=r(34631);var o=r(74051);function resolveBlockSeq({composeNode:e,composeEmptyNode:t},r,i,a,c){const u=c?.nodeClass??n.YAMLSeq;const A=new u(r.schema);if(r.atRoot)r.atRoot=false;let l=i.offset;let d=null;for(const{start:n,value:c}of i.items){const u=s.resolveProps(n,{indicator:"seq-item-ind",next:c,offset:l,onError:a,parentIndent:i.indent,startOnNewline:true});if(!u.found){if(u.anchor||u.tag||c){if(c&&c.type==="block-seq")a(u.end,"BAD_INDENT","All sequence items must start at the same column");else a(l,"MISSING_CHAR","Sequence item without - indicator")}else{d=u.end;if(u.comment)A.comment=u.comment;continue}}const p=c?e(r,c,u,a):t(r,u.end,n,null,u,a);if(r.schema.compat)o.flowIndentCheck(i.indent,c,a);l=p.range[2];A.items.push(p)}A.range=[i.offset,l,d??l];return A}t.resolveBlockSeq=resolveBlockSeq},17788:(e,t)=>{function resolveEnd(e,t,r,n){let s="";if(e){let o=false;let i="";for(const a of e){const{source:e,type:c}=a;switch(c){case"space":o=true;break;case"comment":{if(r&&!o)n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const t=e.substring(1)||" ";if(!s)s=t;else s+=i+t;i="";break}case"newline":if(s)i+=e;o=true;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}t+=e.length}}return{comment:s,offset:t}}t.resolveEnd=resolveEnd},13142:(e,t,r)=>{var n=r(41127);var s=r(57165);var o=r(84454);var i=r(92223);var a=r(17788);var c=r(34631);var u=r(9499);var A=r(81187);const l="Block collections are not allowed within flow collections";const isBlock=e=>e&&(e.type==="block-map"||e.type==="block-seq");function resolveFlowCollection({composeNode:e,composeEmptyNode:t},r,d,p,g){const h=d.start.source==="{";const m=h?"flow map":"flow sequence";const E=g?.nodeClass??(h?o.YAMLMap:i.YAMLSeq);const y=new E(r.schema);y.flow=true;const I=r.atRoot;if(I)r.atRoot=false;let C=d.offset+d.start.source.length;for(let i=0;i0){const e=a.resolveEnd(Q,T,r.options.strict,p);if(e.comment){if(y.comment)y.comment+="\n"+e.comment;else y.comment=e.comment}y.range=[d.offset,T,e.offset]}else{y.range=[d.offset,T,T]}return y}t.resolveFlowCollection=resolveFlowCollection},76842:(e,t,r)=>{var n=r(63301);var s=r(17788);function resolveFlowScalar(e,t,r){const{offset:o,type:i,source:a,end:c}=e;let u;let A;const _onError=(e,t,n)=>r(o+e,t,n);switch(i){case"scalar":u=n.Scalar.PLAIN;A=plainValue(a,_onError);break;case"single-quoted-scalar":u=n.Scalar.QUOTE_SINGLE;A=singleQuotedValue(a,_onError);break;case"double-quoted-scalar":u=n.Scalar.QUOTE_DOUBLE;A=doubleQuotedValue(a,_onError);break;default:r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`);return{value:"",type:null,comment:"",range:[o,o+a.length,o+a.length]}}const l=o+a.length;const d=s.resolveEnd(c,l,t,r);return{value:A,type:u,comment:d.comment,range:[o,l,d.offset]}}function plainValue(e,t){let r="";switch(e[0]){case"\t":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}if(r)t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`);return foldLines(e)}function singleQuotedValue(e,t){if(e[e.length-1]!=="'"||e.length===1)t(e.length,"MISSING_CHAR","Missing closing 'quote");return foldLines(e.slice(1,-1)).replace(/''/g,"'")}function foldLines(e){let t,r;try{t=new RegExp("(.*?)(?t?e.slice(t,n+1):s}else{r+=s}}if(e[e.length-1]!=='"'||e.length===1)t(e.length,"MISSING_CHAR",'Missing closing "quote');return r}function foldNewline(e,t){let r="";let n=e[t+1];while(n===" "||n==="\t"||n==="\n"||n==="\r"){if(n==="\r"&&e[t+2]!=="\n")break;if(n==="\n")r+="\n";t+=1;n=e[t+1]}if(!r)r=" ";return{fold:r,offset:t}}const o={0:"\0",a:"",b:"\b",e:"",f:"\f",n:"\n",r:"\r",t:"\t",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function parseCharCode(e,t,r,n){const s=e.substr(t,r);const o=s.length===r&&/^[0-9a-fA-F]+$/.test(s);const i=o?parseInt(s,16):NaN;if(isNaN(i)){const s=e.substr(t-2,r+2);n(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${s}`);return s}return String.fromCodePoint(i)}t.resolveFlowScalar=resolveFlowScalar},34631:(e,t)=>{function resolveProps(e,{flow:t,indicator:r,next:n,offset:s,onError:o,parentIndent:i,startOnNewline:a}){let c=false;let u=a;let A=a;let l="";let d="";let p=false;let g=false;let h=false;let m=null;let E=null;let y=null;let I=null;let C=null;let b=null;for(const s of e){if(h){if(s.type!=="space"&&s.type!=="newline"&&s.type!=="comma")o(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");h=false}if(m){if(u&&s.type!=="comment"&&s.type!=="newline"){o(m,"TAB_AS_INDENT","Tabs are not allowed as indentation")}m=null}switch(s.type){case"space":if(!t&&(r!=="doc-start"||n?.type!=="flow-collection")&&s.source.includes("\t")){m=s}A=true;break;case"comment":{if(!A)o(s,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const e=s.source.substring(1)||" ";if(!l)l=e;else l+=d+e;d="";u=false;break}case"newline":if(u){if(l)l+=s.source;else c=true}else d+=s.source;u=true;p=true;if(E||y)g=true;A=true;break;case"anchor":if(E)o(s,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(s.source.endsWith(":"))o(s.offset+s.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",true);E=s;if(b===null)b=s.offset;u=false;A=false;h=true;break;case"tag":{if(y)o(s,"MULTIPLE_TAGS","A node can have at most one tag");y=s;if(b===null)b=s.offset;u=false;A=false;h=true;break}case r:if(E||y)o(s,"BAD_PROP_ORDER",`Anchors and tags must be after the ${s.source} indicator`);if(C)o(s,"UNEXPECTED_TOKEN",`Unexpected ${s.source} in ${t??"collection"}`);C=s;u=r==="seq-item-ind"||r==="explicit-key-ind";A=false;break;case"comma":if(t){if(I)o(s,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`);I=s;u=false;A=false;break}default:o(s,"UNEXPECTED_TOKEN",`Unexpected ${s.type} token`);u=false;A=false}}const B=e[e.length-1];const Q=B?B.offset+B.source.length:s;if(h&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")){o(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space")}if(m&&(u&&m.indent<=i||n?.type==="block-map"||n?.type==="block-seq"))o(m,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:I,found:C,spaceBefore:c,comment:l,hasNewline:p,hasNewlineAfterProp:g,anchor:E,tag:y,end:Q,start:b??Q}}t.resolveProps=resolveProps},9499:(e,t)=>{function containsNewline(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes("\n"))return true;if(e.end)for(const t of e.end)if(t.type==="newline")return true;return false;case"flow-collection":for(const t of e.items){for(const e of t.start)if(e.type==="newline")return true;if(t.sep)for(const e of t.sep)if(e.type==="newline")return true;if(containsNewline(t.key)||containsNewline(t.value))return true}return false;default:return true}}t.containsNewline=containsNewline},22599:(e,t)=>{function emptyScalarPosition(e,t,r){if(t){if(r===null)r=t.length;for(let n=r-1;n>=0;--n){let r=t[n];switch(r.type){case"space":case"comment":case"newline":e-=r.source.length;continue}r=t[++n];while(r?.type==="space"){e+=r.source.length;r=t[++n]}break}}return e}t.emptyScalarPosition=emptyScalarPosition},74051:(e,t,r)=>{var n=r(9499);function flowIndentCheck(e,t,r){if(t?.type==="flow-collection"){const s=t.end[0];if(s.indent===e&&(s.source==="]"||s.source==="}")&&n.containsNewline(t)){const e="Flow end indicator should be more indented than parent";r(s,"BAD_INDENT",e,true)}}}t.flowIndentCheck=flowIndentCheck},81187:(e,t,r)=>{var n=r(41127);function mapIncludes(e,t,r){const{uniqueKeys:s}=e.options;if(s===false)return false;const o=typeof s==="function"?s:(t,r)=>t===r||n.isScalar(t)&&n.isScalar(r)&&t.value===r.value&&!(t.value==="<<"&&e.schema.merge);return t.some((e=>o(e.key,r)))}t.mapIncludes=mapIncludes},3021:(e,t,r)=>{var n=r(4065);var s=r(40101);var o=r(41127);var i=r(57165);var a=r(74043);var c=r(45840);var u=r(6829);var A=r(71596);var l=r(83661);var d=r(42404);var p=r(61342);class Document{constructor(e,t,r){this.commentBefore=null;this.comment=null;this.errors=[];this.warnings=[];Object.defineProperty(this,o.NODE_TYPE,{value:o.DOC});let n=null;if(typeof t==="function"||Array.isArray(t)){n=t}else if(r===undefined&&t){r=t;t=undefined}const s=Object.assign({intAsBigInt:false,keepSourceTokens:false,logLevel:"warn",prettyErrors:true,strict:true,uniqueKeys:true,version:"1.2"},r);this.options=s;let{version:i}=s;if(r?._directives){this.directives=r._directives.atDocument();if(this.directives.yaml.explicit)i=this.directives.yaml.version}else this.directives=new p.Directives({version:i});this.setSchema(i,r);this.contents=e===undefined?null:this.createNode(e,n,r)}clone(){const e=Object.create(Document.prototype,{[o.NODE_TYPE]:{value:o.DOC}});e.commentBefore=this.commentBefore;e.comment=this.comment;e.errors=this.errors.slice();e.warnings=this.warnings.slice();e.options=Object.assign({},this.options);if(this.directives)e.directives=this.directives.clone();e.schema=this.schema.clone();e.contents=o.isNode(this.contents)?this.contents.clone(e.schema):this.contents;if(this.range)e.range=this.range.slice();return e}add(e){if(assertCollection(this.contents))this.contents.add(e)}addIn(e,t){if(assertCollection(this.contents))this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){const r=A.anchorNames(this);e.anchor=!t||r.has(t)?A.findNewAnchor(t||"a",r):t}return new n.Alias(e.anchor)}createNode(e,t,r){let n=undefined;if(typeof t==="function"){e=t.call({"":e},"",e);n=t}else if(Array.isArray(t)){const keyToStr=e=>typeof e==="number"||e instanceof String||e instanceof Number;const e=t.filter(keyToStr).map(String);if(e.length>0)t=t.concat(e);n=t}else if(r===undefined&&t){r=t;t=undefined}const{aliasDuplicateObjects:s,anchorPrefix:i,flow:a,keepUndefined:c,onTagObj:u,tag:l}=r??{};const{onAnchor:p,setAnchors:g,sourceObjects:h}=A.createNodeAnchors(this,i||"a");const m={aliasDuplicateObjects:s??true,keepUndefined:c??false,onAnchor:p,onTagObj:u,replacer:n,schema:this.schema,sourceObjects:h};const E=d.createNode(e,l,m);if(a&&o.isCollection(E))E.flow=true;g();return E}createPair(e,t,r={}){const n=this.createNode(e,null,r);const s=this.createNode(t,null,r);return new i.Pair(n,s)}delete(e){return assertCollection(this.contents)?this.contents.delete(e):false}deleteIn(e){if(s.isEmptyPath(e)){if(this.contents==null)return false;this.contents=null;return true}return assertCollection(this.contents)?this.contents.deleteIn(e):false}get(e,t){return o.isCollection(this.contents)?this.contents.get(e,t):undefined}getIn(e,t){if(s.isEmptyPath(e))return!t&&o.isScalar(this.contents)?this.contents.value:this.contents;return o.isCollection(this.contents)?this.contents.getIn(e,t):undefined}has(e){return o.isCollection(this.contents)?this.contents.has(e):false}hasIn(e){if(s.isEmptyPath(e))return this.contents!==undefined;return o.isCollection(this.contents)?this.contents.hasIn(e):false}set(e,t){if(this.contents==null){this.contents=s.collectionFromPath(this.schema,[e],t)}else if(assertCollection(this.contents)){this.contents.set(e,t)}}setIn(e,t){if(s.isEmptyPath(e)){this.contents=t}else if(this.contents==null){this.contents=s.collectionFromPath(this.schema,Array.from(e),t)}else if(assertCollection(this.contents)){this.contents.setIn(e,t)}}setSchema(e,t={}){if(typeof e==="number")e=String(e);let r;switch(e){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new p.Directives({version:"1.1"});r={merge:true,resolveKnownTags:false,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=e;else this.directives=new p.Directives({version:e});r={merge:false,resolveKnownTags:true,schema:"core"};break;case null:if(this.directives)delete this.directives;r=null;break;default:{const t=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new c.Schema(Object.assign(r,t));else throw new Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:n,onAnchor:s,reviver:o}={}){const i={anchors:new Map,doc:this,keep:!e,mapAsMap:r===true,mapKeyWarned:false,maxAliasCount:typeof n==="number"?n:100};const c=a.toJS(this.contents,t??"",i);if(typeof s==="function")for(const{count:e,res:t}of i.anchors.values())s(t,e);return typeof o==="function"?l.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:true,jsonArg:e,mapAsMap:false,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return u.stringifyDocument(this,e)}}function assertCollection(e){if(o.isCollection(e))return true;throw new Error("Expected a YAML collection as document contents")}t.Document=Document},71596:(e,t,r)=>{var n=r(41127);var s=r(10204);function anchorIsValid(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const t=JSON.stringify(e);const r=`Anchor must not contain whitespace or control characters: ${t}`;throw new Error(r)}return true}function anchorNames(e){const t=new Set;s.visit(e,{Value(e,r){if(r.anchor)t.add(r.anchor)}});return t}function findNewAnchor(e,t){for(let r=1;true;++r){const n=`${e}${r}`;if(!t.has(n))return n}}function createNodeAnchors(e,t){const r=[];const s=new Map;let o=null;return{onAnchor:n=>{r.push(n);if(!o)o=anchorNames(e);const s=findNewAnchor(t,o);o.add(s);return s},setAnchors:()=>{for(const e of r){const t=s.get(e);if(typeof t==="object"&&t.anchor&&(n.isScalar(t.node)||n.isCollection(t.node))){t.node.anchor=t.anchor}else{const t=new Error("Failed to resolve repeated object (this should not happen)");t.source=e;throw t}}},sourceObjects:s}}t.anchorIsValid=anchorIsValid;t.anchorNames=anchorNames;t.createNodeAnchors=createNodeAnchors;t.findNewAnchor=findNewAnchor},83661:(e,t)=>{function applyReviver(e,t,r,n){if(n&&typeof n==="object"){if(Array.isArray(n)){for(let t=0,r=n.length;t{var n=r(4065);var s=r(41127);var o=r(63301);const i="tag:yaml.org,2002:";function findTagObject(e,t,r){if(t){const e=r.filter((e=>e.tag===t));const n=e.find((e=>!e.format))??e[0];if(!n)throw new Error(`Tag ${t} not found`);return n}return r.find((t=>t.identify?.(e)&&!t.format))}function createNode(e,t,r){if(s.isDocument(e))e=e.contents;if(s.isNode(e))return e;if(s.isPair(e)){const t=r.schema[s.MAP].createNode?.(r.schema,null,r);t.items.push(e);return t}if(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt!=="undefined"&&e instanceof BigInt){e=e.valueOf()}const{aliasDuplicateObjects:a,onAnchor:c,onTagObj:u,schema:A,sourceObjects:l}=r;let d=undefined;if(a&&e&&typeof e==="object"){d=l.get(e);if(d){if(!d.anchor)d.anchor=c(e);return new n.Alias(d.anchor)}else{d={anchor:null,node:null};l.set(e,d)}}if(t?.startsWith("!!"))t=i+t.slice(2);let p=findTagObject(e,t,A.tags);if(!p){if(e&&typeof e.toJSON==="function"){e=e.toJSON()}if(!e||typeof e!=="object"){const t=new o.Scalar(e);if(d)d.node=t;return t}p=e instanceof Map?A[s.MAP]:Symbol.iterator in Object(e)?A[s.SEQ]:A[s.MAP]}if(u){u(p);delete r.onTagObj}const g=p?.createNode?p.createNode(r.schema,e,r):typeof p?.nodeClass?.from==="function"?p.nodeClass.from(r.schema,e,r):new o.Scalar(e);if(t)g.tag=t;else if(!p.default)g.tag=p.tag;if(d)d.node=g;return g}t.createNode=createNode},61342:(e,t,r)=>{var n=r(41127);var s=r(10204);const o={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"};const escapeTagName=e=>e.replace(/[!,[\]{}]/g,(e=>o[e]));class Directives{constructor(e,t){this.docStart=null;this.docEnd=false;this.yaml=Object.assign({},Directives.defaultYaml,e);this.tags=Object.assign({},Directives.defaultTags,t)}clone(){const e=new Directives(this.yaml,this.tags);e.docStart=this.docStart;return e}atDocument(){const e=new Directives(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=true;break;case"1.2":this.atNextDocument=false;this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.2"};this.tags=Object.assign({},Directives.defaultTags);break}return e}add(e,t){if(this.atNextDocument){this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.1"};this.tags=Object.assign({},Directives.defaultTags);this.atNextDocument=false}const r=e.trim().split(/[ \t]+/);const n=r.shift();switch(n){case"%TAG":{if(r.length!==2){t(0,"%TAG directive should contain exactly two parts");if(r.length<2)return false}const[e,n]=r;this.tags[e]=n;return true}case"%YAML":{this.yaml.explicit=true;if(r.length!==1){t(0,"%YAML directive should contain exactly one part");return false}const[e]=r;if(e==="1.1"||e==="1.2"){this.yaml.version=e;return true}else{const r=/^\d+\.\d+$/.test(e);t(6,`Unsupported YAML version ${e}`,r);return false}}default:t(0,`Unknown directive ${n}`,true);return false}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!"){t(`Not a valid tag: ${e}`);return null}if(e[1]==="<"){const r=e.slice(2,-1);if(r==="!"||r==="!!"){t(`Verbatim tags aren't resolved, so ${e} is invalid.`);return null}if(e[e.length-1]!==">")t("Verbatim tags must end with a >");return r}const[,r,n]=e.match(/^(.*!)([^!]*)$/s);if(!n)t(`The ${e} tag has no suffix`);const s=this.tags[r];if(s){try{return s+decodeURIComponent(n)}catch(e){t(String(e));return null}}if(r==="!")return e;t(`Could not resolve tag: ${e}`);return null}tagString(e){for(const[t,r]of Object.entries(this.tags)){if(e.startsWith(r))return t+escapeTagName(e.substring(r.length))}return e[0]==="!"?e:`!<${e}>`}toString(e){const t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[];const r=Object.entries(this.tags);let o;if(e&&r.length>0&&n.isNode(e.contents)){const t={};s.visit(e.contents,((e,r)=>{if(n.isNode(r)&&r.tag)t[r.tag]=true}));o=Object.keys(t)}else o=[];for(const[n,s]of r){if(n==="!!"&&s==="tag:yaml.org,2002:")continue;if(!e||o.some((e=>e.startsWith(s))))t.push(`%TAG ${n} ${s}`)}return t.join("\n")}}Directives.defaultYaml={explicit:false,version:"1.2"};Directives.defaultTags={"!!":"tag:yaml.org,2002:"};t.Directives=Directives},91464:(e,t)=>{class YAMLError extends Error{constructor(e,t,r,n){super();this.name=e;this.code=r;this.message=n;this.pos=t}}class YAMLParseError extends YAMLError{constructor(e,t,r){super("YAMLParseError",e,t,r)}}class YAMLWarning extends YAMLError{constructor(e,t,r){super("YAMLWarning",e,t,r)}}const prettifyError=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map((e=>t.linePos(e)));const{line:n,col:s}=r.linePos[0];r.message+=` at line ${n}, column ${s}`;let o=s-1;let i=e.substring(t.lineStarts[n-1],t.lineStarts[n]).replace(/[\n\r]+$/,"");if(o>=60&&i.length>80){const e=Math.min(o-39,i.length-79);i="…"+i.substring(e);o-=e-1}if(i.length>80)i=i.substring(0,79)+"…";if(n>1&&/^ *$/.test(i.substring(0,o))){let r=e.substring(t.lineStarts[n-2],t.lineStarts[n-1]);if(r.length>80)r=r.substring(0,79)+"…\n";i=r+i}if(/[^ ]/.test(i)){let e=1;const t=r.linePos[1];if(t&&t.line===n&&t.col>s){e=Math.max(1,Math.min(t.col-s,80-o))}const a=" ".repeat(o)+"^".repeat(e);r.message+=`:\n\n${i}\n${a}\n`}};t.YAMLError=YAMLError;t.YAMLParseError=YAMLParseError;t.YAMLWarning=YAMLWarning;t.prettifyError=prettifyError},38815:(e,t,r)=>{var n;var s=r(89984);var o=r(3021);var i=r(45840);var a=r(91464);var c=r(4065);var u=r(41127);var A=r(57165);var l=r(63301);var d=r(84454);var p=r(92223);var g=r(3461);var h=r(40361);var m=r(66628);var E=r(3456);var y=r(84047);var I=r(10204);n=s.Composer;n=o.Document;n=i.Schema;n=a.YAMLError;n=a.YAMLParseError;n=a.YAMLWarning;n=c.Alias;n=u.isAlias;n=u.isCollection;n=u.isDocument;n=u.isMap;n=u.isNode;n=u.isPair;n=u.isScalar;n=u.isSeq;n=A.Pair;n=l.Scalar;n=d.YAMLMap;n=p.YAMLSeq;n=g;n=h.Lexer;n=m.LineCounter;n=E.Parser;n=y.parse;n=y.parseAllDocuments;n=y.parseDocument;n=y.stringify;n=I.visit;n=I.visitAsync},57249:(e,t)=>{function debug(e,...t){if(e==="debug")console.log(...t)}function warn(e,t){if(e==="debug"||e==="warn"){if(typeof process!=="undefined"&&process.emitWarning)process.emitWarning(t);else console.warn(t)}}t.debug=debug;t.warn=warn},4065:(e,t,r)=>{var n=r(71596);var s=r(10204);var o=r(41127);var i=r(66673);var a=r(74043);class Alias extends i.NodeBase{constructor(e){super(o.ALIAS);this.source=e;Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t=undefined;s.visit(e,{Node:(e,r)=>{if(r===this)return s.visit.BREAK;if(r.anchor===this.source)t=r}});return t}toJSON(e,t){if(!t)return{source:this.source};const{anchors:r,doc:n,maxAliasCount:s}=t;const o=this.resolve(n);if(!o){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(e)}let i=r.get(o);if(!i){a.toJS(o,null,t);i=r.get(o)}if(!i||i.res===undefined){const e="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(e)}if(s>=0){i.count+=1;if(i.aliasCount===0)i.aliasCount=getAliasCount(n,o,r);if(i.count*i.aliasCount>s){const e="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(e)}}return i.res}toString(e,t,r){const s=`*${this.source}`;if(e){n.anchorIsValid(this.source);if(e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(e)}if(e.implicitKey)return`${s} `}return s}}function getAliasCount(e,t,r){if(o.isAlias(t)){const n=t.resolve(e);const s=r&&n&&r.get(n);return s?s.count*s.aliasCount:0}else if(o.isCollection(t)){let n=0;for(const s of t.items){const t=getAliasCount(e,s,r);if(t>n)n=t}return n}else if(o.isPair(t)){const n=getAliasCount(e,t.key,r);const s=getAliasCount(e,t.value,r);return Math.max(n,s)}return 1}t.Alias=Alias},40101:(e,t,r)=>{var n=r(42404);var s=r(41127);var o=r(66673);function collectionFromPath(e,t,r){let s=r;for(let e=t.length-1;e>=0;--e){const r=t[e];if(typeof r==="number"&&Number.isInteger(r)&&r>=0){const e=[];e[r]=s;s=e}else{s=new Map([[r,s]])}}return n.createNode(s,undefined,{aliasDuplicateObjects:false,keepUndefined:false,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const isEmptyPath=e=>e==null||typeof e==="object"&&!!e[Symbol.iterator]().next().done;class Collection extends o.NodeBase{constructor(e,t){super(e);Object.defineProperty(this,"schema",{value:t,configurable:true,enumerable:false,writable:true})}clone(e){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(e)t.schema=e;t.items=t.items.map((t=>s.isNode(t)||s.isPair(t)?t.clone(e):t));if(this.range)t.range=this.range.slice();return t}addIn(e,t){if(isEmptyPath(e))this.add(t);else{const[r,...n]=e;const o=this.get(r,true);if(s.isCollection(o))o.addIn(n,t);else if(o===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,n,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${n}`)}}deleteIn(e){const[t,...r]=e;if(r.length===0)return this.delete(t);const n=this.get(t,true);if(s.isCollection(n))return n.deleteIn(r);else throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){const[r,...n]=e;const o=this.get(r,true);if(n.length===0)return!t&&s.isScalar(o)?o.value:o;else return s.isCollection(o)?o.getIn(n,t):undefined}hasAllNullValues(e){return this.items.every((t=>{if(!s.isPair(t))return false;const r=t.value;return r==null||e&&s.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag}))}hasIn(e){const[t,...r]=e;if(r.length===0)return this.has(t);const n=this.get(t,true);return s.isCollection(n)?n.hasIn(r):false}setIn(e,t){const[r,...n]=e;if(n.length===0){this.set(r,t)}else{const e=this.get(r,true);if(s.isCollection(e))e.setIn(n,t);else if(e===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,n,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${n}`)}}}Collection.maxFlowStringSingleLineLength=60;t.Collection=Collection;t.collectionFromPath=collectionFromPath;t.isEmptyPath=isEmptyPath},66673:(e,t,r)=>{var n=r(83661);var s=r(41127);var o=r(74043);class NodeBase{constructor(e){Object.defineProperty(this,s.NODE_TYPE,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)e.range=this.range.slice();return e}toJS(e,{mapAsMap:t,maxAliasCount:r,onAnchor:i,reviver:a}={}){if(!s.isDocument(e))throw new TypeError("A document argument is required");const c={anchors:new Map,doc:e,keep:true,mapAsMap:t===true,mapKeyWarned:false,maxAliasCount:typeof r==="number"?r:100};const u=o.toJS(this,"",c);if(typeof i==="function")for(const{count:e,res:t}of c.anchors.values())i(t,e);return typeof a==="function"?n.applyReviver(a,{"":u},"",u):u}}t.NodeBase=NodeBase},57165:(e,t,r)=>{var n=r(42404);var s=r(59748);var o=r(97104);var i=r(41127);function createPair(e,t,r){const s=n.createNode(e,undefined,r);const o=n.createNode(t,undefined,r);return new Pair(s,o)}class Pair{constructor(e,t=null){Object.defineProperty(this,i.NODE_TYPE,{value:i.PAIR});this.key=e;this.value=t}clone(e){let{key:t,value:r}=this;if(i.isNode(t))t=t.clone(e);if(i.isNode(r))r=r.clone(e);return new Pair(t,r)}toJSON(e,t){const r=t?.mapAsMap?new Map:{};return o.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?s.stringifyPair(this,e,t,r):JSON.stringify(this)}}t.Pair=Pair;t.createPair=createPair},63301:(e,t,r)=>{var n=r(41127);var s=r(66673);var o=r(74043);const isScalarValue=e=>!e||typeof e!=="function"&&typeof e!=="object";class Scalar extends s.NodeBase{constructor(e){super(n.SCALAR);this.value=e}toJSON(e,t){return t?.keep?this.value:o.toJS(this.value,e,t)}toString(){return String(this.value)}}Scalar.BLOCK_FOLDED="BLOCK_FOLDED";Scalar.BLOCK_LITERAL="BLOCK_LITERAL";Scalar.PLAIN="PLAIN";Scalar.QUOTE_DOUBLE="QUOTE_DOUBLE";Scalar.QUOTE_SINGLE="QUOTE_SINGLE";t.Scalar=Scalar;t.isScalarValue=isScalarValue},84454:(e,t,r)=>{var n=r(61212);var s=r(97104);var o=r(40101);var i=r(41127);var a=r(57165);var c=r(63301);function findPair(e,t){const r=i.isScalar(t)?t.value:t;for(const n of e){if(i.isPair(n)){if(n.key===t||n.key===r)return n;if(i.isScalar(n.key)&&n.key.value===r)return n}}return undefined}class YAMLMap extends o.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(i.MAP,e);this.items=[]}static from(e,t,r){const{keepUndefined:n,replacer:s}=r;const o=new this(e);const add=(e,i)=>{if(typeof s==="function")i=s.call(t,e,i);else if(Array.isArray(s)&&!s.includes(e))return;if(i!==undefined||n)o.items.push(a.createPair(e,i,r))};if(t instanceof Map){for(const[e,r]of t)add(e,r)}else if(t&&typeof t==="object"){for(const e of Object.keys(t))add(e,t[e])}if(typeof e.sortMapEntries==="function"){o.items.sort(e.sortMapEntries)}return o}add(e,t){let r;if(i.isPair(e))r=e;else if(!e||typeof e!=="object"||!("key"in e)){r=new a.Pair(e,e?.value)}else r=new a.Pair(e.key,e.value);const n=findPair(this.items,r.key);const s=this.schema?.sortMapEntries;if(n){if(!t)throw new Error(`Key ${r.key} already set`);if(i.isScalar(n.value)&&c.isScalarValue(r.value))n.value.value=r.value;else n.value=r.value}else if(s){const e=this.items.findIndex((e=>s(r,e)<0));if(e===-1)this.items.push(r);else this.items.splice(e,0,r)}else{this.items.push(r)}}delete(e){const t=findPair(this.items,e);if(!t)return false;const r=this.items.splice(this.items.indexOf(t),1);return r.length>0}get(e,t){const r=findPair(this.items,e);const n=r?.value;return(!t&&i.isScalar(n)?n.value:n)??undefined}has(e){return!!findPair(this.items,e)}set(e,t){this.add(new a.Pair(e,t),true)}toJSON(e,t,r){const n=r?new r:t?.mapAsMap?new Map:{};if(t?.onCreate)t.onCreate(n);for(const e of this.items)s.addPairToJSMap(t,n,e);return n}toString(e,t,r){if(!e)return JSON.stringify(this);for(const e of this.items){if(!i.isPair(e))throw new Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`)}if(!e.allNullValues&&this.hasAllNullValues(false))e=Object.assign({},e,{allNullValues:true});return n.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}}t.YAMLMap=YAMLMap;t.findPair=findPair},92223:(e,t,r)=>{var n=r(42404);var s=r(61212);var o=r(40101);var i=r(41127);var a=r(63301);var c=r(74043);class YAMLSeq extends o.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(i.SEQ,e);this.items=[]}add(e){this.items.push(e)}delete(e){const t=asItemIndex(e);if(typeof t!=="number")return false;const r=this.items.splice(t,1);return r.length>0}get(e,t){const r=asItemIndex(e);if(typeof r!=="number")return undefined;const n=this.items[r];return!t&&i.isScalar(n)?n.value:n}has(e){const t=asItemIndex(e);return typeof t==="number"&&t=0?t:null}t.YAMLSeq=YAMLSeq},97104:(e,t,r)=>{var n=r(57249);var s=r(2148);var o=r(41127);var i=r(63301);var a=r(74043);const c="<<";function addPairToJSMap(e,t,{key:r,value:n}){if(e?.doc.schema.merge&&isMergeKey(r)){n=o.isAlias(n)?n.resolve(e.doc):n;if(o.isSeq(n))for(const r of n.items)mergeToJSMap(e,t,r);else if(Array.isArray(n))for(const r of n)mergeToJSMap(e,t,r);else mergeToJSMap(e,t,n)}else{const s=a.toJS(r,"",e);if(t instanceof Map){t.set(s,a.toJS(n,s,e))}else if(t instanceof Set){t.add(s)}else{const o=stringifyKey(r,s,e);const i=a.toJS(n,o,e);if(o in t)Object.defineProperty(t,o,{value:i,writable:true,enumerable:true,configurable:true});else t[o]=i}}return t}const isMergeKey=e=>e===c||o.isScalar(e)&&e.value===c&&(!e.type||e.type===i.Scalar.PLAIN);function mergeToJSMap(e,t,r){const n=e&&o.isAlias(r)?r.resolve(e.doc):r;if(!o.isMap(n))throw new Error("Merge sources must be maps or map aliases");const s=n.toJSON(null,e,Map);for(const[e,r]of s){if(t instanceof Map){if(!t.has(e))t.set(e,r)}else if(t instanceof Set){t.add(e)}else if(!Object.prototype.hasOwnProperty.call(t,e)){Object.defineProperty(t,e,{value:r,writable:true,enumerable:true,configurable:true})}}return t}function stringifyKey(e,t,r){if(t===null)return"";if(typeof t!=="object")return String(t);if(o.isNode(e)&&r?.doc){const t=s.createStringifyContext(r.doc,{});t.anchors=new Set;for(const e of r.anchors.keys())t.anchors.add(e.anchor);t.inFlow=true;t.inStringifyKey=true;const o=e.toString(t);if(!r.mapKeyWarned){let e=JSON.stringify(o);if(e.length>40)e=e.substring(0,36)+'..."';n.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`);r.mapKeyWarned=true}return o}return JSON.stringify(t)}t.addPairToJSMap=addPairToJSMap},41127:(e,t)=>{const r=Symbol.for("yaml.alias");const n=Symbol.for("yaml.document");const s=Symbol.for("yaml.map");const o=Symbol.for("yaml.pair");const i=Symbol.for("yaml.scalar");const a=Symbol.for("yaml.seq");const c=Symbol.for("yaml.node.type");const isAlias=e=>!!e&&typeof e==="object"&&e[c]===r;const isDocument=e=>!!e&&typeof e==="object"&&e[c]===n;const isMap=e=>!!e&&typeof e==="object"&&e[c]===s;const isPair=e=>!!e&&typeof e==="object"&&e[c]===o;const isScalar=e=>!!e&&typeof e==="object"&&e[c]===i;const isSeq=e=>!!e&&typeof e==="object"&&e[c]===a;function isCollection(e){if(e&&typeof e==="object")switch(e[c]){case s:case a:return true}return false}function isNode(e){if(e&&typeof e==="object")switch(e[c]){case r:case s:case i:case a:return true}return false}const hasAnchor=e=>(isScalar(e)||isCollection(e))&&!!e.anchor;t.ALIAS=r;t.DOC=n;t.MAP=s;t.NODE_TYPE=c;t.PAIR=o;t.SCALAR=i;t.SEQ=a;t.hasAnchor=hasAnchor;t.isAlias=isAlias;t.isCollection=isCollection;t.isDocument=isDocument;t.isMap=isMap;t.isNode=isNode;t.isPair=isPair;t.isScalar=isScalar;t.isSeq=isSeq},74043:(e,t,r)=>{var n=r(41127);function toJS(e,t,r){if(Array.isArray(e))return e.map(((e,t)=>toJS(e,String(t),r)));if(e&&typeof e.toJSON==="function"){if(!r||!n.hasAnchor(e))return e.toJSON(t,r);const s={aliasCount:0,count:1,res:undefined};r.anchors.set(e,s);r.onCreate=e=>{s.res=e;delete r.onCreate};const o=e.toJSON(t,r);if(r.onCreate)r.onCreate(o);return o}if(typeof e==="bigint"&&!r?.keep)return Number(e);return e}t.toJS=toJS},60110:(e,t,r)=>{var n=r(48913);var s=r(76842);var o=r(91464);var i=r(83069);function resolveAsScalar(e,t=true,r){if(e){const _onError=(e,t,n)=>{const s=typeof e==="number"?e:Array.isArray(e)?e[0]:e.offset;if(r)r(s,t,n);else throw new o.YAMLParseError([s,s+1],t,n)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return s.resolveFlowScalar(e,t,_onError);case"block-scalar":return n.resolveBlockScalar({options:{strict:t}},e,_onError)}}return null}function createScalarToken(e,t){const{implicitKey:r=false,indent:n,inFlow:s=false,offset:o=-1,type:a="PLAIN"}=t;const c=i.stringifyString({type:a,value:e},{implicitKey:r,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:true,lineWidth:-1}});const u=t.end??[{type:"newline",offset:-1,indent:n,source:"\n"}];switch(c[0]){case"|":case">":{const e=c.indexOf("\n");const t=c.substring(0,e);const r=c.substring(e+1)+"\n";const s=[{type:"block-scalar-header",offset:o,indent:n,source:t}];if(!addEndtoBlockProps(s,u))s.push({type:"newline",offset:-1,indent:n,source:"\n"});return{type:"block-scalar",offset:o,indent:n,props:s,source:r}}case'"':return{type:"double-quoted-scalar",offset:o,indent:n,source:c,end:u};case"'":return{type:"single-quoted-scalar",offset:o,indent:n,source:c,end:u};default:return{type:"scalar",offset:o,indent:n,source:c,end:u}}}function setScalarValue(e,t,r={}){let{afterKey:n=false,implicitKey:s=false,inFlow:o=false,type:a}=r;let c="indent"in e?e.indent:null;if(n&&typeof c==="number")c+=2;if(!a)switch(e.type){case"single-quoted-scalar":a="QUOTE_SINGLE";break;case"double-quoted-scalar":a="QUOTE_DOUBLE";break;case"block-scalar":{const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");a=t.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:a="PLAIN"}const u=i.stringifyString({type:a,value:t},{implicitKey:s||c===null,indent:c!==null&&c>0?" ".repeat(c):"",inFlow:o,options:{blockQuote:true,lineWidth:-1}});switch(u[0]){case"|":case">":setBlockScalarValue(e,u);break;case'"':setFlowScalarValue(e,u,"double-quoted-scalar");break;case"'":setFlowScalarValue(e,u,"single-quoted-scalar");break;default:setFlowScalarValue(e,u,"scalar")}}function setBlockScalarValue(e,t){const r=t.indexOf("\n");const n=t.substring(0,r);const s=t.substring(r+1)+"\n";if(e.type==="block-scalar"){const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");t.source=n;e.source=s}else{const{offset:t}=e;const r="indent"in e?e.indent:-1;const o=[{type:"block-scalar-header",offset:t,indent:r,source:n}];if(!addEndtoBlockProps(o,"end"in e?e.end:undefined))o.push({type:"newline",offset:-1,indent:r,source:"\n"});for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:"block-scalar",indent:r,props:o,source:s})}}function addEndtoBlockProps(e,t){if(t)for(const r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":e.push(r);return true}return false}function setFlowScalarValue(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r;e.source=t;break;case"block-scalar":{const n=e.props.slice(1);let s=t.length;if(e.props[0].type==="block-scalar-header")s-=e.props[0].source.length;for(const e of n)e.offset+=s;delete e.props;Object.assign(e,{type:r,source:t,end:n});break}case"block-map":case"block-seq":{const n=e.offset+t.length;const s={type:"newline",offset:n,indent:e.indent,source:"\n"};delete e.items;Object.assign(e,{type:r,source:t,end:[s]});break}default:{const n="indent"in e?e.indent:-1;const s="end"in e&&Array.isArray(e.end)?e.end.filter((e=>e.type==="space"||e.type==="comment"||e.type==="newline")):[];for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:r,indent:n,source:t,end:s})}}}t.createScalarToken=createScalarToken;t.resolveAsScalar=resolveAsScalar;t.setScalarValue=setScalarValue},91733:(e,t)=>{const stringify=e=>"type"in e?stringifyToken(e):stringifyItem(e);function stringifyToken(e){switch(e.type){case"block-scalar":{let t="";for(const r of e.props)t+=stringifyToken(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(const r of e.items)t+=stringifyItem(r);return t}case"flow-collection":{let t=e.start.source;for(const r of e.items)t+=stringifyItem(r);for(const r of e.end)t+=r.source;return t}case"document":{let t=stringifyItem(e);if(e.end)for(const r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(const r of e.end)t+=r.source;return t}}}function stringifyItem({start:e,key:t,sep:r,value:n}){let s="";for(const t of e)s+=t.source;if(t)s+=stringifyToken(t);if(r)for(const e of r)s+=e.source;if(n)s+=stringifyToken(n);return s}t.stringify=stringify},97715:(e,t)=>{const r=Symbol("break visit");const n=Symbol("skip children");const s=Symbol("remove item");function visit(e,t){if("type"in e&&e.type==="document")e={start:e.start,value:e.value};_visit(Object.freeze([]),e,t)}visit.BREAK=r;visit.SKIP=n;visit.REMOVE=s;visit.itemAtPath=(e,t)=>{let r=e;for(const[e,n]of t){const t=r?.[e];if(t&&"items"in t){r=t.items[n]}else return undefined}return r};visit.parentCollection=(e,t)=>{const r=visit.itemAtPath(e,t.slice(0,-1));const n=t[t.length-1][0];const s=r?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function _visit(e,t,n){let o=n(t,e);if(typeof o==="symbol")return o;for(const i of["key","value"]){const a=t[i];if(a&&"items"in a){for(let t=0;t{var n=r(60110);var s=r(91733);var o=r(97715);const i="\ufeff";const a="";const c="";const u="";const isCollection=e=>!!e&&"items"in e;const isScalar=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function prettyToken(e){switch(e){case i:return"";case a:return"";case c:return"";case u:return"";default:return JSON.stringify(e)}}function tokenType(e){switch(e){case i:return"byte-order-mark";case a:return"doc-mode";case c:return"flow-error-end";case u:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case"\n":case"\r\n":return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}t.createScalarToken=n.createScalarToken;t.resolveAsScalar=n.resolveAsScalar;t.setScalarValue=n.setScalarValue;t.stringify=s.stringify;t.visit=o.visit;t.BOM=i;t.DOCUMENT=a;t.FLOW_END=c;t.SCALAR=u;t.isCollection=isCollection;t.isScalar=isScalar;t.prettyToken=prettyToken;t.tokenType=tokenType},40361:(e,t,r)=>{var n=r(3461);function isEmpty(e){switch(e){case undefined:case" ":case"\n":case"\r":case"\t":return true;default:return false}}const s=new Set("0123456789ABCDEFabcdef");const o=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()");const i=new Set(",[]{}");const a=new Set(" ,[]{}\n\r\t");const isNotAnchorChar=e=>!e||a.has(e);class Lexer{constructor(){this.atEnd=false;this.blockScalarIndent=-1;this.blockScalarKeep=false;this.buffer="";this.flowKey=false;this.flowLevel=0;this.indentNext=0;this.indentValue=0;this.lineEndPos=null;this.next=null;this.pos=0}*lex(e,t=false){if(e){if(typeof e!=="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e;this.lineEndPos=null}this.atEnd=!t;let r=this.next??"stream";while(r&&(t||this.hasChars(1)))r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos;let t=this.buffer[e];while(t===" "||t==="\t")t=this.buffer[++e];if(!t||t==="#"||t==="\n")return true;if(t==="\r")return this.buffer[e+1]==="\n";return false}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;while(t===" ")t=this.buffer[++r+e];if(t==="\r"){const t=this.buffer[r+e+1];if(t==="\n"||!t&&!this.atEnd)return e+r+1}return t==="\n"||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){const t=this.buffer.substr(e,3);if((t==="---"||t==="...")&&isEmpty(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;if(typeof e!=="number"||e!==-1&&ethis.indentValue&&!isEmpty(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){const[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&isEmpty(t)){const e=(yield*this.pushCount(1))+(yield*this.pushSpaces(true));this.indentNext=this.indentValue+1;this.indentValue+=e;return yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(true);const e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case undefined:yield*this.pushNewline();return yield*this.parseLineStart();case"{":case"[":yield*this.pushCount(1);this.flowKey=false;this.flowLevel=1;return"flow";case"}":case"]":yield*this.pushCount(1);return"doc";case"*":yield*this.pushUntil(isNotAnchorChar);return"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":t+=(yield*this.parseBlockScalarHeader());t+=(yield*this.pushSpaces(true));yield*this.pushCount(e.length-t);yield*this.pushNewline();return yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t;let r=-1;do{e=yield*this.pushNewline();if(e>0){t=yield*this.pushSpaces(false);this.indentValue=r=t}else{t=0}t+=(yield*this.pushSpaces(true))}while(e+t>0);const s=this.getLine();if(s===null)return this.setNext("flow");if(r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil((e=>isEmpty(e)||e==="#"))}*parseBlockScalar(){let e=this.pos-1;let t=0;let r;e:for(let n=this.pos;r=this.buffer[n];++n){switch(r){case" ":t+=1;break;case"\n":e=n;t=0;break;case"\r":{const e=this.buffer[n+1];if(!e&&!this.atEnd)return this.setNext("block-scalar");if(e==="\n")break}default:break e}}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=t;else{this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext)}do{const t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf("\n",t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;r=this.buffer[s];while(r===" ")r=this.buffer[++s];if(r==="\t"){while(r==="\t"||r===" "||r==="\r"||r==="\n")r=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep){do{let r=e-1;let n=this.buffer[r];if(n==="\r")n=this.buffer[--r];const s=r;while(n===" ")n=this.buffer[--r];if(n==="\n"&&r>=this.pos&&r+1+t>s)e=r;else break}while(true)}yield n.SCALAR;yield*this.pushToIndex(e+1,true);return yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let t=this.pos-1;let r=this.pos-1;let s;while(s=this.buffer[++r]){if(s===":"){const n=this.buffer[r+1];if(isEmpty(n)||e&&i.has(n))break;t=r}else if(isEmpty(s)){let n=this.buffer[r+1];if(s==="\r"){if(n==="\n"){r+=1;s="\n";n=this.buffer[r+1]}else t=r}if(n==="#"||e&&i.has(n))break;if(s==="\n"){const e=this.continueScalar(r+1);if(e===-1)break;r=Math.max(r,e-2)}}else{if(e&&i.has(s))break;t=r}}if(!s&&!this.atEnd)return this.setNext("plain-scalar");yield n.SCALAR;yield*this.pushToIndex(t+1,true);return e?"flow":"doc"}*pushCount(e){if(e>0){yield this.buffer.substr(this.pos,e);this.pos+=e;return e}return 0}*pushToIndex(e,t){const r=this.buffer.slice(this.pos,e);if(r){yield r;this.pos+=r.length;return r.length}else if(t)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(isNotAnchorChar))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0;const t=this.charAt(1);if(isEmpty(t)||e&&i.has(t)){if(!e)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=false;return(yield*this.pushCount(1))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2;let t=this.buffer[e];while(!isEmpty(t)&&t!==">")t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,false)}else{let e=this.pos+1;let t=this.buffer[e];while(t){if(o.has(t))t=this.buffer[++e];else if(t==="%"&&s.has(this.buffer[e+1])&&s.has(this.buffer[e+2])){t=this.buffer[e+=3]}else break}return yield*this.pushToIndex(e,false)}}*pushNewline(){const e=this.buffer[this.pos];if(e==="\n")return yield*this.pushCount(1);else if(e==="\r"&&this.charAt(1)==="\n")return yield*this.pushCount(2);else return 0}*pushSpaces(e){let t=this.pos-1;let r;do{r=this.buffer[++t]}while(r===" "||e&&r==="\t");const n=t-this.pos;if(n>0){yield this.buffer.substr(this.pos,n);this.pos=t}return n}*pushUntil(e){let t=this.pos;let r=this.buffer[t];while(!e(r))r=this.buffer[++t];return yield*this.pushToIndex(t,false)}}t.Lexer=Lexer},66628:(e,t)=>{class LineCounter{constructor(){this.lineStarts=[];this.addNewLine=e=>this.lineStarts.push(e);this.linePos=e=>{let t=0;let r=this.lineStarts.length;while(t>1;if(this.lineStarts[n]{var n=r(3461);var s=r(40361);function includesToken(e,t){for(let r=0;r=0){switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}}while(e[++t]?.type==="space"){}return e.splice(t,e.length)}function fixFlowSeqItems(e){if(e.start.type==="flow-seq-start"){for(const t of e.items){if(t.sep&&!t.value&&!includesToken(t.start,"explicit-key-ind")&&!includesToken(t.sep,"map-value-ind")){if(t.key)t.value=t.key;delete t.key;if(isFlowToken(t.value)){if(t.value.end)Array.prototype.push.apply(t.value.end,t.sep);else t.value.end=t.sep}else Array.prototype.push.apply(t.start,t.sep);delete t.sep}}}}class Parser{constructor(e){this.atNewLine=true;this.atScalar=false;this.indent=0;this.offset=0;this.onKeyLine=false;this.stack=[];this.source="";this.type="";this.lexer=new s.Lexer;this.onNewLine=e}*parse(e,t=false){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(const r of this.lexer.lex(e,t))yield*this.next(r);if(!t)yield*this.end()}*next(e){this.source=e;if(process.env.LOG_TOKENS)console.log("|",n.prettyToken(e));if(this.atScalar){this.atScalar=false;yield*this.step();this.offset+=e.length;return}const t=n.tokenType(e);if(!t){const t=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:t,source:e});this.offset+=e.length}else if(t==="scalar"){this.atNewLine=false;this.atScalar=true;this.type="scalar"}else{this.type=t;yield*this.step();switch(t){case"newline":this.atNewLine=true;this.indent=0;if(this.onNewLine)this.onNewLine(this.offset+e.length);break;case"space":if(this.atNewLine&&e[0]===" ")this.indent+=e.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=e.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=false}this.offset+=e.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){const e={type:this.type,offset:this.offset,indent:this.indent,source:this.source};return e}*step(){const e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){const t=e??this.stack.pop();if(!t){const e="Tried to pop an empty stack";yield{type:"error",offset:this.offset,source:"",message:e}}else if(this.stack.length===0){yield t}else{const e=this.peek(1);if(t.type==="block-scalar"){t.indent="indent"in e?e.indent:0}else if(t.type==="flow-collection"&&e.type==="document"){t.indent=0}if(t.type==="flow-collection")fixFlowSeqItems(t);switch(e.type){case"document":e.value=t;break;case"block-scalar":e.props.push(t);break;case"block-map":{const r=e.items[e.items.length-1];if(r.value){e.items.push({start:[],key:t,sep:[]});this.onKeyLine=true;return}else if(r.sep){r.value=t}else{Object.assign(r,{key:t,sep:[]});this.onKeyLine=!r.explicitKey;return}break}case"block-seq":{const r=e.items[e.items.length-1];if(r.value)e.items.push({start:[],value:t});else r.value=t;break}case"flow-collection":{const r=e.items[e.items.length-1];if(!r||r.value)e.items.push({start:[],key:t,sep:[]});else if(r.sep)r.value=t;else Object.assign(r,{key:t,sep:[]});return}default:yield*this.pop();yield*this.pop(t)}if((e.type==="document"||e.type==="block-map"||e.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){const r=t.items[t.items.length-1];if(r&&!r.sep&&!r.value&&r.start.length>0&&findNonEmptyIndex(r.start)===-1&&(t.indent===0||r.start.every((e=>e.type!=="comment"||e.indent=e.indent){const r=!this.onKeyLine&&this.indent===e.indent;const n=r&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind";let s=[];if(n&&t.sep&&!t.value){const r=[];for(let n=0;ne.indent)r.length=0;break;default:r.length=0}}if(r.length>=2)s=t.sep.splice(r[1])}switch(this.type){case"anchor":case"tag":if(n||t.value){s.push(this.sourceToken);e.items.push({start:s});this.onKeyLine=true}else if(t.sep){t.sep.push(this.sourceToken)}else{t.start.push(this.sourceToken)}return;case"explicit-key-ind":if(!t.sep&&!t.explicitKey){t.start.push(this.sourceToken);t.explicitKey=true}else if(n||t.value){s.push(this.sourceToken);e.items.push({start:s,explicitKey:true})}else{this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:true}]})}this.onKeyLine=true;return;case"map-value-ind":if(t.explicitKey){if(!t.sep){if(includesToken(t.start,"newline")){Object.assign(t,{key:null,sep:[this.sourceToken]})}else{const e=getFirstKeyStartProps(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value){e.items.push({start:[],key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]})}else if(isFlowToken(t.key)&&!includesToken(t.sep,"newline")){const e=getFirstKeyStartProps(t.start);const r=t.key;const n=t.sep;n.push(this.sourceToken);delete t.key,delete t.sep;this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:r,sep:n}]})}else if(s.length>0){t.sep=t.sep.concat(s,this.sourceToken)}else{t.sep.push(this.sourceToken)}}else{if(!t.sep){Object.assign(t,{key:null,sep:[this.sourceToken]})}else if(t.value||n){e.items.push({start:s,key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]})}else{t.sep.push(this.sourceToken)}}this.onKeyLine=true;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);if(n||t.value){e.items.push({start:s,key:r,sep:[]});this.onKeyLine=true}else if(t.sep){this.stack.push(r)}else{Object.assign(t,{key:r,sep:[]});this.onKeyLine=true}return}default:{const t=this.startBlockValue(e);if(t){if(r&&t.type!=="block-seq"){e.items.push({start:s})}this.stack.push(t);return}}}}yield*this.pop();yield*this.step()}*blockSequence(e){const t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){const r="end"in t.value?t.value.end:undefined;const n=Array.isArray(r)?r[r.length-1]:undefined;if(n?.type==="comment")r?.push(this.sourceToken);else e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){const r=e.items[e.items.length-2];const n=r?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start);n.push(this.sourceToken);e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;if(t.value||includesToken(t.start,"seq-item-ind"))e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return}if(this.indent>e.indent){const t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop();yield*this.step()}*flowCollection(e){const t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let e;do{yield*this.pop();e=this.peek(1)}while(e&&e.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!t||t.sep)e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return;case"map-value-ind":if(!t||t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!t||t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);if(!t||t.value)e.items.push({start:[],key:r,sep:[]});else if(t.sep)this.stack.push(r);else Object.assign(t,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}const r=this.startBlockValue(e);if(r)this.stack.push(r);else{yield*this.pop();yield*this.step()}}else{const t=this.peek(2);if(t.type==="block-map"&&(this.type==="map-value-ind"&&t.indent===e.indent||this.type==="newline"&&!t.items[t.items.length-1].sep)){yield*this.pop();yield*this.step()}else if(this.type==="map-value-ind"&&t.type!=="flow-collection"){const r=getPrevProps(t);const n=getFirstKeyStartProps(r);fixFlowSeqItems(e);const s=e.end.splice(1,e.end.length);s.push(this.sourceToken);const o={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=true;this.stack[this.stack.length-1]=o}else{yield*this.lineEnd(e)}}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf("\n")+1;while(e!==0){this.onNewLine(this.offset+e);e=this.source.indexOf("\n",e)+1}}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);r.push(this.sourceToken);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:true}]}}case"map-value-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){if(this.type!=="comment")return false;if(this.indent<=t)return false;return e.every((e=>e.type==="newline"||e.type==="space"))}*documentEnd(e){if(this.type!=="doc-mode"){if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop();yield*this.step();break;case"newline":this.onKeyLine=false;case"space":case"comment":default:if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}t.Parser=Parser},84047:(e,t,r)=>{var n=r(89984);var s=r(3021);var o=r(91464);var i=r(57249);var a=r(66628);var c=r(3456);function parseOptions(e){const t=e.prettyErrors!==false;const r=e.lineCounter||t&&new a.LineCounter||null;return{lineCounter:r,prettyErrors:t}}function parseAllDocuments(e,t={}){const{lineCounter:r,prettyErrors:s}=parseOptions(t);const i=new c.Parser(r?.addNewLine);const a=new n.Composer(t);const u=Array.from(a.compose(i.parse(e)));if(s&&r)for(const t of u){t.errors.forEach(o.prettifyError(e,r));t.warnings.forEach(o.prettifyError(e,r))}if(u.length>0)return u;return Object.assign([],{empty:true},a.streamInfo())}function parseDocument(e,t={}){const{lineCounter:r,prettyErrors:s}=parseOptions(t);const i=new c.Parser(r?.addNewLine);const a=new n.Composer(t);let u=null;for(const t of a.compose(i.parse(e),true,e.length)){if(!u)u=t;else if(u.options.logLevel!=="silent"){u.errors.push(new o.YAMLParseError(t.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}}if(s&&r){u.errors.forEach(o.prettifyError(e,r));u.warnings.forEach(o.prettifyError(e,r))}return u}function parse(e,t,r){let n=undefined;if(typeof t==="function"){n=t}else if(r===undefined&&t&&typeof t==="object"){r=t}const s=parseDocument(e,r);if(!s)return null;s.warnings.forEach((e=>i.warn(s.options.logLevel,e)));if(s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];else s.errors=[]}return s.toJS(Object.assign({reviver:n},r))}function stringify(e,t,r){let n=null;if(typeof t==="function"||Array.isArray(t)){n=t}else if(r===undefined&&t){r=t}if(typeof r==="string")r=r.length;if(typeof r==="number"){const e=Math.round(r);r=e<1?undefined:e>8?{indent:8}:{indent:e}}if(e===undefined){const{keepUndefined:e}=r??t??{};if(!e)return undefined}return new s.Document(e,n,r).toString(r)}t.parse=parse;t.parseAllDocuments=parseAllDocuments;t.parseDocument=parseDocument;t.stringify=stringify},45840:(e,t,r)=>{var n=r(41127);var s=r(47451);var o=r(1706);var i=r(66464);var a=r(90018);const sortMapEntriesByKey=(e,t)=>e.keyt.key?1:0;class Schema{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:c,schema:u,sortMapEntries:A,toStringDefaults:l}){this.compat=Array.isArray(e)?a.getTags(e,"compat"):e?a.getTags(null,e):null;this.merge=!!r;this.name=typeof u==="string"&&u||"core";this.knownTags=c?a.coreKnownTags:{};this.tags=a.getTags(t,this.name);this.toStringOptions=l??null;Object.defineProperty(this,n.MAP,{value:s.map});Object.defineProperty(this,n.SCALAR,{value:i.string});Object.defineProperty(this,n.SEQ,{value:o.seq});this.sortMapEntries=typeof A==="function"?A:A===true?sortMapEntriesByKey:null}clone(){const e=Object.create(Schema.prototype,Object.getOwnPropertyDescriptors(this));e.tags=this.tags.slice();return e}}t.Schema=Schema},47451:(e,t,r)=>{var n=r(41127);var s=r(84454);const o={collection:"map",default:true,nodeClass:s.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){if(!n.isMap(e))t("Expected a mapping for this tag");return e},createNode:(e,t,r)=>s.YAMLMap.from(e,t,r)};t.map=o},73632:(e,t,r)=>{var n=r(63301);const s={identify:e=>e==null,createNode:()=>new n.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new n.Scalar(null),stringify:({source:e},t)=>typeof e==="string"&&s.test.test(e)?e:t.options.nullStr};t.nullTag=s},1706:(e,t,r)=>{var n=r(41127);var s=r(92223);const o={collection:"seq",default:true,nodeClass:s.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){if(!n.isSeq(e))t("Expected a sequence for this tag");return e},createNode:(e,t,r)=>s.YAMLSeq.from(e,t,r)};t.seq=o},66464:(e,t,r)=>{var n=r(83069);const s={identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,s){t=Object.assign({actualString:true},t);return n.stringifyString(e,t,r,s)}};t.string=s},73959:(e,t,r)=>{var n=r(63301);const s={identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new n.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&s.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?r.options.trueStr:r.options.falseStr}};t.boolTag=s},38405:(e,t,r)=>{var n=r(63301);var s=r(28689);const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:s.stringifyNumber};const i={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():s.stringifyNumber(e)}};const a={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new n.Scalar(parseFloat(e));const r=e.indexOf(".");if(r!==-1&&e[e.length-1]==="0")t.minFractionDigits=e.length-r-1;return t},stringify:s.stringifyNumber};t.float=a;t.floatExp=i;t.floatNaN=o},59874:(e,t,r)=>{var n=r(28689);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);const intResolve=(e,t,r,{intAsBigInt:n})=>n?BigInt(e):parseInt(e.substring(t),r);function intStringify(e,t,r){const{value:s}=e;if(intIdentify(s)&&s>=0)return r+s.toString(t);return n.stringifyNumber(e)}const s={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>intResolve(e,2,8,r),stringify:e=>intStringify(e,8,"0o")};const o={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:n.stringifyNumber};const i={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=o;t.intHex=i;t.intOct=s},70896:(e,t,r)=>{var n=r(47451);var s=r(73632);var o=r(1706);var i=r(66464);var a=r(73959);var c=r(38405);var u=r(59874);const A=[n.map,o.seq,i.string,s.nullTag,a.boolTag,u.intOct,u.int,u.intHex,c.floatNaN,c.floatExp,c.float];t.schema=A},33559:(e,t,r)=>{var n=r(63301);var s=r(47451);var o=r(1706);function intIdentify(e){return typeof e==="bigint"||Number.isInteger(e)}const stringifyJSON=({value:e})=>JSON.stringify(e);const i=[{identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:stringifyJSON},{identify:e=>e==null,createNode:()=>new n.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:stringifyJSON},{identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:e=>e==="true",stringify:stringifyJSON},{identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>intIdentify(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:stringifyJSON}];const a={default:true,tag:"",test:/^/,resolve(e,t){t(`Unresolved plain scalar ${JSON.stringify(e)}`);return e}};const c=[s.map,o.seq].concat(i,a);t.schema=c},90018:(e,t,r)=>{var n=r(47451);var s=r(73632);var o=r(1706);var i=r(66464);var a=r(73959);var c=r(38405);var u=r(59874);var A=r(70896);var l=r(33559);var d=r(56083);var p=r(50303);var g=r(18385);var h=r(35913);var m=r(81528);var E=r(46752);const y=new Map([["core",A.schema],["failsafe",[n.map,o.seq,i.string]],["json",l.schema],["yaml11",h.schema],["yaml-1.1",h.schema]]);const I={binary:d.binary,bool:a.boolTag,float:c.float,floatExp:c.floatExp,floatNaN:c.floatNaN,floatTime:E.floatTime,int:u.int,intHex:u.intHex,intOct:u.intOct,intTime:E.intTime,map:n.map,null:s.nullTag,omap:p.omap,pairs:g.pairs,seq:o.seq,set:m.set,timestamp:E.timestamp};const C={"tag:yaml.org,2002:binary":d.binary,"tag:yaml.org,2002:omap":p.omap,"tag:yaml.org,2002:pairs":g.pairs,"tag:yaml.org,2002:set":m.set,"tag:yaml.org,2002:timestamp":E.timestamp};function getTags(e,t){let r=y.get(t);if(!r){if(Array.isArray(e))r=[];else{const e=Array.from(y.keys()).filter((e=>e!=="yaml11")).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e)){for(const t of e)r=r.concat(t)}else if(typeof e==="function"){r=e(r.slice())}return r.map((e=>{if(typeof e!=="string")return e;const t=I[e];if(t)return t;const r=Object.keys(I).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown custom tag "${e}"; use one of ${r}`)}))}t.coreKnownTags=C;t.getTags=getTags},56083:(e,t,r)=>{var n=r(63301);var s=r(83069);const o={identify:e=>e instanceof Uint8Array,default:false,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof Buffer==="function"){return Buffer.from(e,"base64")}else if(typeof atob==="function"){const t=atob(e.replace(/[\n\r]/g,""));const r=new Uint8Array(t.length);for(let e=0;e{var n=r(63301);function boolStringify({value:e,source:t},r){const n=e?s:o;if(t&&n.test.test(t))return t;return e?r.options.trueStr:r.options.falseStr}const s={identify:e=>e===true,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new n.Scalar(true),stringify:boolStringify};const o={identify:e=>e===false,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new n.Scalar(false),stringify:boolStringify};t.falseTag=o;t.trueTag=s},35782:(e,t,r)=>{var n=r(63301);var s=r(28689);const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:s.stringifyNumber};const i={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():s.stringifyNumber(e)}};const a={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new n.Scalar(parseFloat(e.replace(/_/g,"")));const r=e.indexOf(".");if(r!==-1){const n=e.substring(r+1).replace(/_/g,"");if(n[n.length-1]==="0")t.minFractionDigits=n.length}return t},stringify:s.stringifyNumber};t.float=a;t.floatExp=i;t.floatNaN=o},10873:(e,t,r)=>{var n=r(28689);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);function intResolve(e,t,r,{intAsBigInt:n}){const s=e[0];if(s==="-"||s==="+")t+=1;e=e.substring(t).replace(/_/g,"");if(n){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const t=BigInt(e);return s==="-"?BigInt(-1)*t:t}const o=parseInt(e,r);return s==="-"?-1*o:o}function intStringify(e,t,r){const{value:s}=e;if(intIdentify(s)){const e=s.toString(t);return s<0?"-"+r+e.substr(1):r+e}return n.stringifyNumber(e)}const s={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>intResolve(e,2,2,r),stringify:e=>intStringify(e,2,"0b")};const o={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>intResolve(e,1,8,r),stringify:e=>intStringify(e,8,"0")};const i={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:n.stringifyNumber};const a={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=i;t.intBin=s;t.intHex=a;t.intOct=o},50303:(e,t,r)=>{var n=r(41127);var s=r(74043);var o=r(84454);var i=r(92223);var a=r(18385);class YAMLOMap extends i.YAMLSeq{constructor(){super();this.add=o.YAMLMap.prototype.add.bind(this);this.delete=o.YAMLMap.prototype.delete.bind(this);this.get=o.YAMLMap.prototype.get.bind(this);this.has=o.YAMLMap.prototype.has.bind(this);this.set=o.YAMLMap.prototype.set.bind(this);this.tag=YAMLOMap.tag}toJSON(e,t){if(!t)return super.toJSON(e);const r=new Map;if(t?.onCreate)t.onCreate(r);for(const e of this.items){let o,i;if(n.isPair(e)){o=s.toJS(e.key,"",t);i=s.toJS(e.value,o,t)}else{o=s.toJS(e,"",t)}if(r.has(o))throw new Error("Ordered maps must not include duplicate keys");r.set(o,i)}return r}static from(e,t,r){const n=a.createPairs(e,t,r);const s=new this;s.items=n.items;return s}}YAMLOMap.tag="tag:yaml.org,2002:omap";const c={collection:"seq",identify:e=>e instanceof Map,nodeClass:YAMLOMap,default:false,tag:"tag:yaml.org,2002:omap",resolve(e,t){const r=a.resolvePairs(e,t);const s=[];for(const{key:e}of r.items){if(n.isScalar(e)){if(s.includes(e.value)){t(`Ordered maps must not include duplicate keys: ${e.value}`)}else{s.push(e.value)}}}return Object.assign(new YAMLOMap,r)},createNode:(e,t,r)=>YAMLOMap.from(e,t,r)};t.YAMLOMap=YAMLOMap;t.omap=c},18385:(e,t,r)=>{var n=r(41127);var s=r(57165);var o=r(63301);var i=r(92223);function resolvePairs(e,t){if(n.isSeq(e)){for(let r=0;r1)t("Each pair must have its own sequence indicator");const e=i.items[0]||new s.Pair(new o.Scalar(null));if(i.commentBefore)e.key.commentBefore=e.key.commentBefore?`${i.commentBefore}\n${e.key.commentBefore}`:i.commentBefore;if(i.comment){const t=e.value??e.key;t.comment=t.comment?`${i.comment}\n${t.comment}`:i.comment}i=e}e.items[r]=n.isPair(i)?i:new s.Pair(i)}}else t("Expected a sequence for this tag");return e}function createPairs(e,t,r){const{replacer:n}=r;const o=new i.YAMLSeq(e);o.tag="tag:yaml.org,2002:pairs";let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof n==="function")e=n.call(t,String(a++),e);let i,c;if(Array.isArray(e)){if(e.length===2){i=e[0];c=e[1]}else throw new TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){const t=Object.keys(e);if(t.length===1){i=t[0];c=e[i]}else{throw new TypeError(`Expected tuple with one key, not ${t.length} keys`)}}else{i=e}o.items.push(s.createPair(i,c,r))}return o}const a={collection:"seq",default:false,tag:"tag:yaml.org,2002:pairs",resolve:resolvePairs,createNode:createPairs};t.createPairs=createPairs;t.pairs=a;t.resolvePairs=resolvePairs},35913:(e,t,r)=>{var n=r(47451);var s=r(73632);var o=r(1706);var i=r(66464);var a=r(56083);var c=r(88398);var u=r(35782);var A=r(10873);var l=r(50303);var d=r(18385);var p=r(81528);var g=r(46752);const h=[n.map,o.seq,i.string,s.nullTag,c.trueTag,c.falseTag,A.intBin,A.intOct,A.int,A.intHex,u.floatNaN,u.floatExp,u.float,a.binary,l.omap,d.pairs,p.set,g.intTime,g.floatTime,g.timestamp];t.schema=h},81528:(e,t,r)=>{var n=r(41127);var s=r(57165);var o=r(84454);class YAMLSet extends o.YAMLMap{constructor(e){super(e);this.tag=YAMLSet.tag}add(e){let t;if(n.isPair(e))t=e;else if(e&&typeof e==="object"&&"key"in e&&"value"in e&&e.value===null)t=new s.Pair(e.key,null);else t=new s.Pair(e,null);const r=o.findPair(this.items,t.key);if(!r)this.items.push(t)}get(e,t){const r=o.findPair(this.items,e);return!t&&n.isPair(r)?n.isScalar(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!=="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);const r=o.findPair(this.items,e);if(r&&!t){this.items.splice(this.items.indexOf(r),1)}else if(!r&&t){this.items.push(new s.Pair(e))}}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(true))return super.toString(Object.assign({},e,{allNullValues:true}),t,r);else throw new Error("Set items must all have null values")}static from(e,t,r){const{replacer:n}=r;const o=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof n==="function")e=n.call(t,e,e);o.items.push(s.createPair(e,null,r))}return o}}YAMLSet.tag="tag:yaml.org,2002:set";const i={collection:"map",identify:e=>e instanceof Set,nodeClass:YAMLSet,default:false,tag:"tag:yaml.org,2002:set",createNode:(e,t,r)=>YAMLSet.from(e,t,r),resolve(e,t){if(n.isMap(e)){if(e.hasAllNullValues(true))return Object.assign(new YAMLSet,e);else t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};t.YAMLSet=YAMLSet;t.set=i},46752:(e,t,r)=>{var n=r(28689);function parseSexagesimal(e,t){const r=e[0];const n=r==="-"||r==="+"?e.substring(1):e;const num=e=>t?BigInt(e):Number(e);const s=n.replace(/_/g,"").split(":").reduce(((e,t)=>e*num(60)+num(t)),num(0));return r==="-"?num(-1)*s:s}function stringifySexagesimal(e){let{value:t}=e;let num=e=>e;if(typeof t==="bigint")num=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return n.stringifyNumber(e);let r="";if(t<0){r="-";t*=num(-1)}const s=num(60);const o=[t%s];if(t<60){o.unshift(0)}else{t=(t-o[0])/s;o.unshift(t%s);if(t>=60){t=(t-o[0])/s;o.unshift(t)}}return r+o.map((e=>String(e).padStart(2,"0"))).join(":").replace(/000000\d*$/,"")}const s={identify:e=>typeof e==="bigint"||Number.isInteger(e),default:true,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>parseSexagesimal(e,r),stringify:stringifySexagesimal};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>parseSexagesimal(e,false),stringify:stringifySexagesimal};const i={identify:e=>e instanceof Date,default:true,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"+"(?:"+"(?:t|T|[ \\t]+)"+"([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)"+"(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?"+")?$"),resolve(e){const t=e.match(i.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,r,n,s,o,a,c]=t.map(Number);const u=t[7]?Number((t[7]+"00").substr(1,3)):0;let A=Date.UTC(r,n-1,s,o||0,a||0,c||0,u);const l=t[8];if(l&&l!=="Z"){let e=parseSexagesimal(l,false);if(Math.abs(e)<30)e*=60;A-=6e4*e}return new Date(A)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};t.floatTime=o;t.intTime=s;t.timestamp=i},34475:(e,t)=>{const r="flow";const n="block";const s="quoted";function foldFlowLines(e,t,r="flow",{indentAtStart:o,lineWidth:i=80,minContentWidth:a=20,onFold:c,onOverflow:u}={}){if(!i||i<0)return e;const A=Math.max(1+a,1+i-t.length);if(e.length<=A)return e;const l=[];const d={};let p=i-t.length;if(typeof o==="number"){if(o>i-Math.max(2,a))l.push(0);else p=i-o}let g=undefined;let h=undefined;let m=false;let E=-1;let y=-1;let I=-1;if(r===n){E=consumeMoreIndentedLines(e,E,t.length);if(E!==-1)p=E+A}for(let o;o=e[E+=1];){if(r===s&&o==="\\"){y=E;switch(e[E+1]){case"x":E+=3;break;case"u":E+=5;break;case"U":E+=9;break;default:E+=1}I=E}if(o==="\n"){if(r===n)E=consumeMoreIndentedLines(e,E,t.length);p=E+t.length+A;g=undefined}else{if(o===" "&&h&&h!==" "&&h!=="\n"&&h!=="\t"){const t=e[E+1];if(t&&t!==" "&&t!=="\n"&&t!=="\t")g=E}if(E>=p){if(g){l.push(g);p=g+A;g=undefined}else if(r===s){while(h===" "||h==="\t"){h=o;o=e[E+=1];m=true}const t=E>I+1?E-2:y-1;if(d[t])return e;l.push(t);d[t]=true;p=t+A;g=undefined}else{m=true}}}h=o}if(m&&u)u();if(l.length===0)return e;if(c)c();let C=e.slice(0,l[0]);for(let n=0;n{var n=r(71596);var s=r(41127);var o=r(59799);var i=r(83069);function createStringifyContext(e,t){const r=Object.assign({blockQuote:true,commentString:o.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:false,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:true,indentSeq:true,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:false,singleQuote:null,trueStr:"true",verifyAliasOrder:true},e.schema.toStringOptions,t);let n;switch(r.collectionStyle){case"block":n=false;break;case"flow":n=true;break;default:n=null}return{anchors:new Set,doc:e,flowCollectionPadding:r.flowCollectionPadding?" ":"",indent:"",indentStep:typeof r.indent==="number"?" ".repeat(r.indent):" ",inFlow:n,options:r}}function getTagObject(e,t){if(t.tag){const r=e.filter((e=>e.tag===t.tag));if(r.length>0)return r.find((e=>e.format===t.format))??r[0]}let r=undefined;let n;if(s.isScalar(t)){n=t.value;const s=e.filter((e=>e.identify?.(n)));r=s.find((e=>e.format===t.format))??s.find((e=>!e.format))}else{n=t;r=e.find((e=>e.nodeClass&&n instanceof e.nodeClass))}if(!r){const e=n?.constructor?.name??typeof n;throw new Error(`Tag not resolved for ${e} value`)}return r}function stringifyProps(e,t,{anchors:r,doc:o}){if(!o.directives)return"";const i=[];const a=(s.isScalar(e)||s.isCollection(e))&&e.anchor;if(a&&n.anchorIsValid(a)){r.add(a);i.push(`&${a}`)}const c=e.tag?e.tag:t.default?null:t.tag;if(c)i.push(o.directives.tagString(c));return i.join(" ")}function stringify(e,t,r,n){if(s.isPair(e))return e.toString(t,r,n);if(s.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e)){throw new TypeError(`Cannot stringify circular structure without alias nodes`)}else{if(t.resolvedAliases)t.resolvedAliases.add(e);else t.resolvedAliases=new Set([e]);e=e.resolve(t.doc)}}let o=undefined;const a=s.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>o=e});if(!o)o=getTagObject(t.doc.schema.tags,a);const c=stringifyProps(a,o,t);if(c.length>0)t.indentAtStart=(t.indentAtStart??0)+c.length+1;const u=typeof o.stringify==="function"?o.stringify(a,t,r,n):s.isScalar(a)?i.stringifyString(a,t,r,n):a.toString(t,r,n);if(!c)return u;return s.isScalar(a)||u[0]==="{"||u[0]==="["?`${c} ${u}`:`${c}\n${t.indent}${u}`}t.createStringifyContext=createStringifyContext;t.stringify=stringify},61212:(e,t,r)=>{var n=r(41127);var s=r(2148);var o=r(59799);function stringifyCollection(e,t,r){const n=t.inFlow??e.flow;const s=n?stringifyFlowCollection:stringifyBlockCollection;return s(e,t,r)}function stringifyBlockCollection({comment:e,items:t},r,{blockItemPrefix:i,flowChars:a,itemIndent:c,onChompKeep:u,onComment:A}){const{indent:l,options:{commentString:d}}=r;const p=Object.assign({},r,{indent:c,type:null});let g=false;const h=[];for(let e=0;eu=null),(()=>g=true));if(u)A+=o.lineComment(A,c,d(u));if(g&&u)g=false;h.push(i+A)}let m;if(h.length===0){m=a.start+a.end}else{m=h[0];for(let e=1;ec=null));if(rp||u.includes("\n")))d=true;g.push(u);p=g.length}const{start:h,end:m}=r;if(g.length===0){return h+m}else{if(!d){const e=g.reduce(((e,t)=>e+t.length+2),2);d=t.options.lineWidth>0&&e>t.options.lineWidth}if(d){let e=h;for(const t of g)e+=t?`\n${c}${a}${t}`:"\n";return`${e}\n${a}${m}`}else{return`${h}${u}${g.join(" ")}${u}${m}`}}}function addCommentBefore({indent:e,options:{commentString:t}},r,n,s){if(n&&s)n=n.replace(/^\n+/,"");if(n){const s=o.indentComment(t(n),e);r.push(s.trimStart())}}t.stringifyCollection=stringifyCollection},59799:(e,t)=>{const stringifyComment=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function indentComment(e,t){if(/^\n+$/.test(e))return e.substring(1);return t?e.replace(/^(?! *$)/gm,t):e}const lineComment=(e,t,r)=>e.endsWith("\n")?indentComment(r,t):r.includes("\n")?"\n"+indentComment(r,t):(e.endsWith(" ")?"":" ")+r;t.indentComment=indentComment;t.lineComment=lineComment;t.stringifyComment=stringifyComment},6829:(e,t,r)=>{var n=r(41127);var s=r(2148);var o=r(59799);function stringifyDocument(e,t){const r=[];let i=t.directives===true;if(t.directives!==false&&e.directives){const t=e.directives.toString(e);if(t){r.push(t);i=true}else if(e.directives.docStart)i=true}if(i)r.push("---");const a=s.createStringifyContext(e,t);const{commentString:c}=a.options;if(e.commentBefore){if(r.length!==1)r.unshift("");const t=c(e.commentBefore);r.unshift(o.indentComment(t,""))}let u=false;let A=null;if(e.contents){if(n.isNode(e.contents)){if(e.contents.spaceBefore&&i)r.push("");if(e.contents.commentBefore){const t=c(e.contents.commentBefore);r.push(o.indentComment(t,""))}a.forceBlockIndent=!!e.comment;A=e.contents.comment}const t=A?undefined:()=>u=true;let l=s.stringify(e.contents,a,(()=>A=null),t);if(A)l+=o.lineComment(l,"",c(A));if((l[0]==="|"||l[0]===">")&&r[r.length-1]==="---"){r[r.length-1]=`--- ${l}`}else r.push(l)}else{r.push(s.stringify(e.contents,a))}if(e.directives?.docEnd){if(e.comment){const t=c(e.comment);if(t.includes("\n")){r.push("...");r.push(o.indentComment(t,""))}else{r.push(`... ${t}`)}}else{r.push("...")}}else{let t=e.comment;if(t&&u)t=t.replace(/^\n+/,"");if(t){if((!u||A)&&r[r.length-1]!=="")r.push("");r.push(o.indentComment(c(t),""))}}return r.join("\n")+"\n"}t.stringifyDocument=stringifyDocument},28689:(e,t)=>{function stringifyNumber({format:e,minFractionDigits:t,tag:r,value:n}){if(typeof n==="bigint")return String(n);const s=typeof n==="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let o=JSON.stringify(n);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(o)){let e=o.indexOf(".");if(e<0){e=o.length;o+="."}let r=t-(o.length-e-1);while(r-- >0)o+="0"}return o}t.stringifyNumber=stringifyNumber},59748:(e,t,r)=>{var n=r(41127);var s=r(63301);var o=r(2148);var i=r(59799);function stringifyPair({key:e,value:t},r,a,c){const{allNullValues:u,doc:A,indent:l,indentStep:d,options:{commentString:p,indentSeq:g,simpleKeys:h}}=r;let m=n.isNode(e)&&e.comment||null;if(h){if(m){throw new Error("With simple keys, key nodes cannot have comments")}if(n.isCollection(e)||!n.isNode(e)&&typeof e==="object"){const e="With simple keys, collection cannot be used as a key value";throw new Error(e)}}let E=!h&&(!e||m&&t==null&&!r.inFlow||n.isCollection(e)||(n.isScalar(e)?e.type===s.Scalar.BLOCK_FOLDED||e.type===s.Scalar.BLOCK_LITERAL:typeof e==="object"));r=Object.assign({},r,{allNullValues:false,implicitKey:!E&&(h||!u),indent:l+d});let y=false;let I=false;let C=o.stringify(e,r,(()=>y=true),(()=>I=true));if(!E&&!r.inFlow&&C.length>1024){if(h)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");E=true}if(r.inFlow){if(u||t==null){if(y&&a)a();return C===""?"?":E?`? ${C}`:C}}else if(u&&!h||t==null&&E){C=`? ${C}`;if(m&&!y){C+=i.lineComment(C,r.indent,p(m))}else if(I&&c)c();return C}if(y)m=null;if(E){if(m)C+=i.lineComment(C,r.indent,p(m));C=`? ${C}\n${l}:`}else{C=`${C}:`;if(m)C+=i.lineComment(C,r.indent,p(m))}let b,B,Q;if(n.isNode(t)){b=!!t.spaceBefore;B=t.commentBefore;Q=t.comment}else{b=false;B=null;Q=null;if(t&&typeof t==="object")t=A.createNode(t)}r.implicitKey=false;if(!E&&!m&&n.isScalar(t))r.indentAtStart=C.length+1;I=false;if(!g&&d.length>=2&&!r.inFlow&&!E&&n.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor){r.indent=r.indent.substring(2)}let T=false;const v=o.stringify(t,r,(()=>T=true),(()=>I=true));let w=" ";if(m||b||B){w=b?"\n":"";if(B){const e=p(B);w+=`\n${i.indentComment(e,r.indent)}`}if(v===""&&!r.inFlow){if(w==="\n")w="\n\n"}else{w+=`\n${r.indent}`}}else if(!E&&n.isCollection(t)){const e=v[0];const n=v.indexOf("\n");const s=n!==-1;const o=r.inFlow??t.flow??t.items.length===0;if(s||!o){let t=false;if(s&&(e==="&"||e==="!")){let r=v.indexOf(" ");if(e==="&"&&r!==-1&&r{var n=r(63301);var s=r(34475);const getFoldOptions=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth});const containsDocumentMarker=e=>/^(%|---|\.\.\.)/m.test(e);function lineLengthOverLimit(e,t,r){if(!t||t<0)return false;const n=t-r;const s=e.length;if(s<=n)return false;for(let t=0,r=0;tn)return true;r=t+1;if(s-r<=n)return false}}return true}function doubleQuotedString(e,t){const r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;const{implicitKey:n}=t;const o=t.options.doubleQuotedMinMultiLineLength;const i=t.indent||(containsDocumentMarker(e)?" ":"");let a="";let c=0;for(let e=0,t=r[e];t;t=r[++e]){if(t===" "&&r[e+1]==="\\"&&r[e+2]==="n"){a+=r.slice(c,e)+"\\ ";e+=1;c=e;t="\\"}if(t==="\\")switch(r[e+1]){case"u":{a+=r.slice(c,e);const t=r.substr(e+2,4);switch(t){case"0000":a+="\\0";break;case"0007":a+="\\a";break;case"000b":a+="\\v";break;case"001b":a+="\\e";break;case"0085":a+="\\N";break;case"00a0":a+="\\_";break;case"2028":a+="\\L";break;case"2029":a+="\\P";break;default:if(t.substr(0,2)==="00")a+="\\x"+t.substr(2);else a+=r.substr(e,6)}e+=5;c=e+1}break;case"n":if(n||r[e+2]==='"'||r.length\n";let g;let h;for(h=r.length;h>0;--h){const e=r[h-1];if(e!=="\n"&&e!=="\t"&&e!==" ")break}let m=r.substring(h);const E=m.indexOf("\n");if(E===-1){g="-"}else if(r===m||E!==m.length-1){g="+";if(c)c()}else{g=""}if(m){r=r.slice(0,-m.length);if(m[m.length-1]==="\n")m=m.slice(0,-1);m=m.replace(o,`$&${d}`)}let y=false;let I;let C=-1;for(I=0;I")+(y?B:"")+g;if(e){Q+=" "+A(e.replace(/ ?[\r\n]+/g," "));if(a)a()}if(p){r=r.replace(/\n+/g,`$&${d}`);return`${Q}\n${d}${b}${r}${m}`}r=r.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${d}`);const T=s.foldFlowLines(`${b}${r}${m}`,d,s.FOLD_BLOCK,getFoldOptions(i,true));return`${Q}\n${d}${T}`}function plainString(e,t,r,o){const{type:i,value:a}=e;const{actualString:c,implicitKey:u,indent:A,indentStep:l,inFlow:d}=t;if(u&&a.includes("\n")||d&&/[[\]{},]/.test(a)){return quotedString(a,t)}if(!a||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a)){return u||d||!a.includes("\n")?quotedString(a,t):blockString(e,t,r,o)}if(!u&&!d&&i!==n.Scalar.PLAIN&&a.includes("\n")){return blockString(e,t,r,o)}if(containsDocumentMarker(a)){if(A===""){t.forceBlockIndent=true;return blockString(e,t,r,o)}else if(u&&A===l){return quotedString(a,t)}}const p=a.replace(/\n+/g,`$&\n${A}`);if(c){const test=e=>e.default&&e.tag!=="tag:yaml.org,2002:str"&&e.test?.test(p);const{compat:e,tags:r}=t.doc.schema;if(r.some(test)||e?.some(test))return quotedString(a,t)}return u?p:s.foldFlowLines(p,A,s.FOLD_FLOW,getFoldOptions(t,false))}function stringifyString(e,t,r,s){const{implicitKey:o,inFlow:i}=t;const a=typeof e.value==="string"?e:Object.assign({},e,{value:String(e.value)});let{type:c}=e;if(c!==n.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(a.value))c=n.Scalar.QUOTE_DOUBLE}const _stringify=e=>{switch(e){case n.Scalar.BLOCK_FOLDED:case n.Scalar.BLOCK_LITERAL:return o||i?quotedString(a.value,t):blockString(a,t,r,s);case n.Scalar.QUOTE_DOUBLE:return doubleQuotedString(a.value,t);case n.Scalar.QUOTE_SINGLE:return singleQuotedString(a.value,t);case n.Scalar.PLAIN:return plainString(a,t,r,s);default:return null}};let u=_stringify(c);if(u===null){const{defaultKeyType:e,defaultStringType:r}=t.options;const n=o&&e||r;u=_stringify(n);if(u===null)throw new Error(`Unsupported default string type ${n}`)}return u}t.stringifyString=stringifyString},10204:(e,t,r)=>{var n=r(41127);const s=Symbol("break visit");const o=Symbol("skip children");const i=Symbol("remove node");function visit(e,t){const r=initVisitor(t);if(n.isDocument(e)){const t=visit_(null,e.contents,r,Object.freeze([e]));if(t===i)e.contents=null}else visit_(null,e,r,Object.freeze([]))}visit.BREAK=s;visit.SKIP=o;visit.REMOVE=i;function visit_(e,t,r,o){const a=callVisitor(e,t,r,o);if(n.isNode(a)||n.isPair(a)){replaceNode(e,o,a);return visit_(e,a,r,o)}if(typeof a!=="symbol"){if(n.isCollection(t)){o=Object.freeze(o.concat(t));for(let e=0;e{e.exports=JSON.parse('{"name":"dotenv","version":"16.4.5","description":"Loads environment variables from .env file","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","require":"./lib/main.js","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","lint-readme":"standard-markdown","pretest":"npm run lint && npm run dts-check","test":"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov","prerelease":"npm test","release":"standard-version"},"repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"funding":"https://dotenvx.com","keywords":["dotenv","env",".env","environment","variables","config","settings"],"readmeFilename":"README.md","license":"BSD-2-Clause","devDependencies":{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3","decache":"^4.6.1","sinon":"^14.0.1","standard":"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0","tap":"^16.3.0","tar":"^6.1.11","typescript":"^4.8.4"},"engines":{"node":">=12"},"browser":{"fs":false}}')}};var r={};function __nccwpck_require__(e){var n=r[e];if(n!==undefined){return n.exports}var s=r[e]={exports:{}};var o=true;try{t[e].call(s.exports,s,s.exports,__nccwpck_require__);o=false}finally{if(o)delete r[e]}return s.exports}(()=>{__nccwpck_require__.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;__nccwpck_require__.d(t,{a:t});return t}})();(()=>{__nccwpck_require__.d=(e,t)=>{for(var r in t){if(__nccwpck_require__.o(t,r)&&!__nccwpck_require__.o(e,r)){Object.defineProperty(e,r,{enumerable:true,get:t[r]})}}}})();(()=>{__nccwpck_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})();(()=>{__nccwpck_require__.r=e=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=new URL(".",import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/)?1:0,-1)+"/";var n={};var s={};__nccwpck_require__.r(s);__nccwpck_require__.d(s,{Any:()=>any_Any,Array:()=>array_Array,AsyncIterator:()=>async_iterator_AsyncIterator,Awaited:()=>awaited_Awaited,BigInt:()=>bigint_BigInt,Boolean:()=>boolean_Boolean,Capitalize:()=>capitalize_Capitalize,Composite:()=>composite_Composite,Const:()=>const_Const,Constructor:()=>constructor_Constructor,ConstructorParameters:()=>constructor_parameters_ConstructorParameters,Date:()=>date_Date,Deref:()=>deref_deref_Deref,Enum:()=>enum_Enum,Exclude:()=>exclude_Exclude,Extends:()=>extends_Extends,Extract:()=>extract_Extract,Function:()=>function_Function,Index:()=>indexed_Index,InstanceType:()=>instance_type_InstanceType,Integer:()=>integer_Integer,Intersect:()=>intersect_Intersect,Iterator:()=>iterator_Iterator,KeyOf:()=>keyof_KeyOf,Literal:()=>literal_Literal,Lowercase:()=>lowercase_Lowercase,Mapped:()=>mapped_Mapped,Never:()=>never_Never,Not:()=>not_Not,Null:()=>null_Null,Number:()=>number_Number,Object:()=>O,Omit:()=>omit_Omit,Optional:()=>optional_Optional,Parameters:()=>parameters_Parameters,Partial:()=>partial_Partial,Pick:()=>pick_Pick,Promise:()=>promise_Promise,Readonly:()=>readonly_Readonly,ReadonlyOptional:()=>readonly_optional_ReadonlyOptional,Record:()=>record_Record,Recursive:()=>recursive_Recursive,Ref:()=>ref_Ref,RegExp:()=>regexp_RegExp,Required:()=>required_Required,Rest:()=>rest_Rest,ReturnType:()=>return_type_ReturnType,Strict:()=>strict_Strict,String:()=>string_String,Symbol:()=>symbol_Symbol,TemplateLiteral:()=>template_literal_TemplateLiteral,Transform:()=>transform_Transform,Tuple:()=>tuple_Tuple,Uint8Array:()=>uint8array_Uint8Array,Uncapitalize:()=>uncapitalize_Uncapitalize,Undefined:()=>undefined_Undefined,Union:()=>union_Union,Unknown:()=>unknown_Unknown,Unsafe:()=>unsafe_Unsafe,Uppercase:()=>uppercase_Uppercase,Void:()=>void_Void});var o={reset:"",bright:"",dim:"",underscore:"",blink:"",reverse:"",hidden:"",fgBlack:"",fgRed:"",fgGreen:"",fgYellow:"",fgBlue:"",fgMagenta:"",fgCyan:"",fgWhite:"",bgBlack:"",bgRed:"",bgGreen:"",bgYellow:"",bgBlue:"",bgMagenta:"",bgCyan:"",bgWhite:""};var i={FATAL:"fatal",ERROR:"error",INFO:"info",VERBOSE:"verbose",DEBUG:"debug"};var a=class{constructor(){this.ok=this.ok.bind(this);this.info=this.info.bind(this);this.error=this.error.bind(this);this.fatal=this.fatal.bind(this);this.debug=this.debug.bind(this);this.verbose=this.verbose.bind(this)}fatal(e,t){this._logWithStack(i.FATAL,e,t)}error(e,t){this._logWithStack(i.ERROR,e,t)}ok(e,t){this._logWithStack("ok",e,t)}info(e,t){this._logWithStack(i.INFO,e,t)}debug(e,t){this._logWithStack(i.DEBUG,e,t)}verbose(e,t){this._logWithStack(i.VERBOSE,e,t)}_logWithStack(e,t,r){this._log(e,t);if(typeof r==="string"){this._log(e,r);return}if(r){const t=r;let n=t?.error?.stack||t?.stack;if(!n){const e=(new Error).stack?.split("\n");if(e){e.splice(0,4);n=e.filter((e=>e.includes(".ts:"))).join("\n")}}const s={...t};delete s.message;delete s.name;delete s.stack;if(!this._isEmpty(s)){this._log(e,s)}if(typeof n=="string"){const t=this._formatStackTrace(n,1);const r=this._colorizeText(t,o.dim);this._log(e,r)}else if(n){const t=this._formatStackTrace(n.join("\n"),1);const r=this._colorizeText(t,o.dim);this._log(e,r)}else{throw new Error("Stack is null")}}}_colorizeText(e,t){if(!t){throw new Error(`Invalid color: ${t}`)}return t.concat(e).concat(o.reset)}_formatStackTrace(e,t=0,r=""){const n=e.split("\n");for(let e=0;e`${r}${e.replace(/\s*at\s*/," ↳ ")}`)).join("\n")}_isEmpty(e){return!Reflect.ownKeys(e).some((t=>typeof e[String(t)]!=="function"))}_log(e,t){const r={fatal:"×",ok:"✓",error:"⚠",info:"›",debug:"››",verbose:"💬"};const n=r[e];const s=typeof t==="string"?t:JSON.stringify(t,null,2);const i=s.split("\n");const a=i.map(((e,t)=>{const r=t===0?`\t${n}`:`\t${" ".repeat(n.length)}`;return`${r} ${e}`})).join("\n");const c=a;const u={fatal:["error",o.fgRed],ok:["log",o.fgGreen],error:["warn",o.fgYellow],info:["info",o.dim],debug:["debug",o.fgMagenta],verbose:["debug",o.dim]};const A=console[u[e][0]];if(typeof A==="function"&&c.length>12){A(this._colorizeText(c,u[e][1]))}else if(c.length<=12){return}else{throw new Error(c)}}};var c=class{logMessage;metadata;constructor(e,t){this.logMessage=e;this.metadata=t}};var u=class _Logs{_maxLevel=-1;static console;_log({level:e,consoleLog:t,logMessage:r,metadata:n,type:s}){if(this._getNumericLevel(e)<=this._maxLevel){t(r,n)}return new c({raw:r,diff:this._diffColorCommentMessage(s,r),type:s,level:e},n)}_addDiagnosticInformation(e){if(!e){e={}}else if(typeof e!=="object"){e={message:e}}const t=(new Error).stack?.split("\n")||[];if(t.length>3){const r=t[3];const n=r.match(/at (\S+)/);if(n){e.caller=n[1]}}return e}ok(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.INFO,consoleLog:_Logs.console.ok,logMessage:e,metadata:t,type:"ok"})}info(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.INFO,consoleLog:_Logs.console.info,logMessage:e,metadata:t,type:"info"})}error(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.ERROR,consoleLog:_Logs.console.error,logMessage:e,metadata:t,type:"error"})}debug(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.DEBUG,consoleLog:_Logs.console.debug,logMessage:e,metadata:t,type:"debug"})}fatal(e,t){if(!t){t=_Logs.convertErrorsIntoObjects(new Error(e));const r=t.stack;r.splice(1,1);t.stack=r}if(t instanceof Error){t=_Logs.convertErrorsIntoObjects(t);const e=t.stack;e.splice(1,1);t.stack=e}t=this._addDiagnosticInformation(t);return this._log({level:i.FATAL,consoleLog:_Logs.console.fatal,logMessage:e,metadata:t,type:"fatal"})}verbose(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.VERBOSE,consoleLog:_Logs.console.verbose,logMessage:e,metadata:t,type:"verbose"})}constructor(e){this._maxLevel=this._getNumericLevel(e);_Logs.console=new a}_diffColorCommentMessage(e,t){const r={fatal:"-",ok:"+",error:"!",info:"#",debug:"@@@@"};const n=r[e];if(n){t=t.trim().split("\n").map((e=>`${n} ${e}`)).join("\n")}else if(e==="debug"){t=t.split("\n").map((e=>`@@ ${e} @@`)).join("\n")}else{t=t.split("\n").map((e=>`# ${e}`)).join("\n")}const s="```diff";const o="```";return[s,t,o].join("\n")}_getNumericLevel(e){switch(e){case i.FATAL:return 0;case i.ERROR:return 1;case i.INFO:return 2;case i.VERBOSE:return 4;case i.DEBUG:return 5;default:return-1}}static convertErrorsIntoObjects(e){if(e instanceof Error){return{message:e.message,name:e.name,stack:e.stack?e.stack.split("\n"):null}}else if(typeof e==="object"&&e!==null){const t=Object.keys(e);t.forEach((t=>{e[t]=this.convertErrorsIntoObjects(e[t])}))}return e}};var A=/\x1b\[\d+m|\s/g;function cleanLogs(e){const t=e.mock.calls.map((e=>e.map((e=>e?.toString())).join(" ")));return t.flat().map((e=>cleanLogString(e)))}function cleanLogString(e){return e.replaceAll(A,"").replaceAll(/\n/g,"").replaceAll(/\r/g,"").replaceAll(/\t/g,"").trim()}function cleanSpyLogs(e){return cleanLogs(e)}function IsAsyncIterator(e){return IsObject(e)&&Symbol.asyncIterator in e}function IsIterator(e){return IsObject(e)&&Symbol.iterator in e}function IsStandardObject(e){return IsObject(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function IsInstanceObject(e){return IsObject(e)&&!IsArray(e)&&IsFunction(e.constructor)&&e.constructor.name!=="Object"}function IsPromise(e){return e instanceof Promise}function IsDate(e){return e instanceof Date&&Number.isFinite(e.getTime())}function IsMap(e){return e instanceof globalThis.Map}function IsSet(e){return e instanceof globalThis.Set}function IsRegExp(e){return e instanceof globalThis.RegExp}function IsTypedArray(e){return ArrayBuffer.isView(e)}function IsInt8Array(e){return e instanceof globalThis.Int8Array}function IsUint8Array(e){return e instanceof globalThis.Uint8Array}function IsUint8ClampedArray(e){return e instanceof globalThis.Uint8ClampedArray}function IsInt16Array(e){return e instanceof globalThis.Int16Array}function IsUint16Array(e){return e instanceof globalThis.Uint16Array}function IsInt32Array(e){return e instanceof globalThis.Int32Array}function IsUint32Array(e){return e instanceof globalThis.Uint32Array}function IsFloat32Array(e){return e instanceof globalThis.Float32Array}function IsFloat64Array(e){return e instanceof globalThis.Float64Array}function IsBigInt64Array(e){return e instanceof globalThis.BigInt64Array}function IsBigUint64Array(e){return e instanceof globalThis.BigUint64Array}function HasPropertyKey(e,t){return t in e}function IsObject(e){return e!==null&&typeof e==="object"}function IsArray(e){return Array.isArray(e)&&!ArrayBuffer.isView(e)}function IsUndefined(e){return e===undefined}function IsNull(e){return e===null}function IsBoolean(e){return typeof e==="boolean"}function IsNumber(e){return typeof e==="number"}function IsInteger(e){return Number.isInteger(e)}function IsBigInt(e){return typeof e==="bigint"}function IsString(e){return typeof e==="string"}function IsFunction(e){return typeof e==="function"}function IsSymbol(e){return typeof e==="symbol"}function IsValueType(e){return IsBigInt(e)||IsBoolean(e)||IsNull(e)||IsNumber(e)||IsString(e)||IsSymbol(e)||IsUndefined(e)}var l;(function(e){e.ExactOptionalPropertyTypes=false;e.AllowArrayObject=false;e.AllowNaN=false;e.AllowNullVoid=false;function IsExactOptionalProperty(t,r){return e.ExactOptionalPropertyTypes?r in t:t[r]!==undefined}e.IsExactOptionalProperty=IsExactOptionalProperty;function IsObjectLike(t){const r=IsObject(t);return e.AllowArrayObject?r:r&&!IsArray(t)}e.IsObjectLike=IsObjectLike;function IsRecordLike(e){return IsObjectLike(e)&&!(e instanceof Date)&&!(e instanceof Uint8Array)}e.IsRecordLike=IsRecordLike;function IsNumberLike(t){return e.AllowNaN?IsNumber(t):Number.isFinite(t)}e.IsNumberLike=IsNumberLike;function IsVoidLike(t){const r=IsUndefined(t);return e.AllowNullVoid?r||t===null:r}e.IsVoidLike=IsVoidLike})(l||(l={}));const d=new Map;function Entries(){return new Map(d)}function Clear(){return d.clear()}function Delete(e){return d.delete(e)}function Has(e){return d.has(e)}function format_Set(e,t){d.set(e,t)}function Get(e){return d.get(e)}const p=new Map;function type_Entries(){return new Map(p)}function type_Clear(){return p.clear()}function type_Delete(e){return p.delete(e)}function type_Has(e){return p.has(e)}function type_Set(e,t){p.set(e,t)}function type_Get(e){return p.get(e)}const g=Symbol.for("TypeBox.Transform");const h=Symbol.for("TypeBox.Readonly");const m=Symbol.for("TypeBox.Optional");const E=Symbol.for("TypeBox.Hint");const y=Symbol.for("TypeBox.Kind");function unsafe_Unsafe(e={}){return{...e,[y]:e[y]??"Unsafe"}}class TypeBoxError extends Error{constructor(e){super(e)}}class TypeSystemDuplicateTypeKind extends TypeBoxError{constructor(e){super(`Duplicate type kind '${e}' detected`)}}class TypeSystemDuplicateFormat extends TypeBoxError{constructor(e){super(`Duplicate string format '${e}' detected`)}}var I;(function(e){function Type(e,t){if(type_Has(e))throw new TypeSystemDuplicateTypeKind(e);type_Set(e,t);return(t={})=>unsafe_Unsafe({...t,[y]:e})}e.Type=Type;function Format(e,t){if(Has(e))throw new TypeSystemDuplicateFormat(e);format_Set(e,t);return e}e.Format=Format})(I||(I={}));function MappedKey(e){return{[Kind]:"MappedKey",keys:e}}function MappedResult(e){return{[y]:"MappedResult",properties:e}}function value_IsAsyncIterator(e){return value_IsObject(e)&&!value_IsArray(e)&&!value_IsUint8Array(e)&&Symbol.asyncIterator in e}function value_IsArray(e){return Array.isArray(e)}function value_IsBigInt(e){return typeof e==="bigint"}function value_IsBoolean(e){return typeof e==="boolean"}function value_IsDate(e){return e instanceof globalThis.Date}function value_IsFunction(e){return typeof e==="function"}function value_IsIterator(e){return value_IsObject(e)&&!value_IsArray(e)&&!value_IsUint8Array(e)&&Symbol.iterator in e}function value_IsNull(e){return e===null}function value_IsNumber(e){return typeof e==="number"}function value_IsObject(e){return typeof e==="object"&&e!==null}function value_IsRegExp(e){return e instanceof globalThis.RegExp}function value_IsString(e){return typeof e==="string"}function value_IsSymbol(e){return typeof e==="symbol"}function value_IsUint8Array(e){return e instanceof globalThis.Uint8Array}function value_IsUndefined(e){return e===undefined}function ArrayType(e){return e.map((e=>Visit(e)))}function DateType(e){return new Date(e.getTime())}function Uint8ArrayType(e){return new Uint8Array(e)}function RegExpType(e){return new RegExp(e.source,e.flags)}function ObjectType(e){const t={};for(const r of Object.getOwnPropertyNames(e)){t[r]=Visit(e[r])}for(const r of Object.getOwnPropertySymbols(e)){t[r]=Visit(e[r])}return t}function Visit(e){return value_IsArray(e)?ArrayType(e):value_IsDate(e)?DateType(e):value_IsUint8Array(e)?Uint8ArrayType(e):value_IsRegExp(e)?RegExpType(e):value_IsObject(e)?ObjectType(e):e}function Clone(e){return Visit(e)}function CloneRest(e){return e.map((e=>CloneType(e)))}function CloneType(e,t={}){return{...Clone(e),...t}}function DiscardKey(e,t){const{[t]:r,...n}=e;return n}function Discard(e,t){return t.reduce(((e,t)=>DiscardKey(e,t)),e)}function array_Array(e,t={}){return{...t,[y]:"Array",type:"array",items:CloneType(e)}}function async_iterator_AsyncIterator(e,t={}){return{...t,[y]:"AsyncIterator",type:"AsyncIterator",items:CloneType(e)}}function constructor_Constructor(e,t,r){return{...r,[y]:"Constructor",type:"Constructor",parameters:CloneRest(e),returns:CloneType(t)}}function function_Function(e,t,r){return{...r,[y]:"Function",type:"Function",parameters:CloneRest(e),returns:CloneType(t)}}function never_Never(e={}){return{...e,[y]:"Never",not:{}}}function IsReadonly(e){return value_IsObject(e)&&e[h]==="Readonly"}function IsOptional(e){return value_IsObject(e)&&e[m]==="Optional"}function IsAny(e){return IsKindOf(e,"Any")}function kind_IsArray(e){return IsKindOf(e,"Array")}function kind_IsAsyncIterator(e){return IsKindOf(e,"AsyncIterator")}function kind_IsBigInt(e){return IsKindOf(e,"BigInt")}function kind_IsBoolean(e){return IsKindOf(e,"Boolean")}function IsConstructor(e){return IsKindOf(e,"Constructor")}function kind_IsDate(e){return IsKindOf(e,"Date")}function kind_IsFunction(e){return IsKindOf(e,"Function")}function kind_IsInteger(e){return IsKindOf(e,"Integer")}function IsProperties(e){return ValueGuard.IsObject(e)}function IsIntersect(e){return IsKindOf(e,"Intersect")}function kind_IsIterator(e){return IsKindOf(e,"Iterator")}function IsKindOf(e,t){return value_IsObject(e)&&y in e&&e[y]===t}function IsLiteralString(e){return IsLiteral(e)&&ValueGuard.IsString(e.const)}function IsLiteralNumber(e){return IsLiteral(e)&&ValueGuard.IsNumber(e.const)}function IsLiteralBoolean(e){return IsLiteral(e)&&ValueGuard.IsBoolean(e.const)}function IsLiteral(e){return IsKindOf(e,"Literal")}function IsMappedKey(e){return IsKindOf(e,"MappedKey")}function IsMappedResult(e){return IsKindOf(e,"MappedResult")}function IsNever(e){return IsKindOf(e,"Never")}function IsNot(e){return IsKindOf(e,"Not")}function kind_IsNull(e){return IsKindOf(e,"Null")}function kind_IsNumber(e){return IsKindOf(e,"Number")}function kind_IsObject(e){return IsKindOf(e,"Object")}function kind_IsPromise(e){return IsKindOf(e,"Promise")}function IsRecord(e){return IsKindOf(e,"Record")}function IsRecursive(e){return ValueGuard.IsObject(e)&&Hint in e&&e[Hint]==="Recursive"}function IsRef(e){return IsKindOf(e,"Ref")}function kind_IsRegExp(e){return IsKindOf(e,"RegExp")}function kind_IsString(e){return IsKindOf(e,"String")}function kind_IsSymbol(e){return IsKindOf(e,"Symbol")}function IsTemplateLiteral(e){return IsKindOf(e,"TemplateLiteral")}function IsThis(e){return IsKindOf(e,"This")}function IsTransform(e){return value_IsObject(e)&&g in e}function IsTuple(e){return IsKindOf(e,"Tuple")}function kind_IsUndefined(e){return IsKindOf(e,"Undefined")}function IsUnion(e){return IsKindOf(e,"Union")}function kind_IsUint8Array(e){return IsKindOf(e,"Uint8Array")}function IsUnknown(e){return IsKindOf(e,"Unknown")}function IsUnsafe(e){return IsKindOf(e,"Unsafe")}function IsVoid(e){return IsKindOf(e,"Void")}function IsKind(e){return value_IsObject(e)&&y in e&&value_IsString(e[y])}function IsSchema(e){return IsAny(e)||kind_IsArray(e)||kind_IsBoolean(e)||kind_IsBigInt(e)||kind_IsAsyncIterator(e)||IsConstructor(e)||kind_IsDate(e)||kind_IsFunction(e)||kind_IsInteger(e)||IsIntersect(e)||kind_IsIterator(e)||IsLiteral(e)||IsMappedKey(e)||IsMappedResult(e)||IsNever(e)||IsNot(e)||kind_IsNull(e)||kind_IsNumber(e)||kind_IsObject(e)||kind_IsPromise(e)||IsRecord(e)||IsRef(e)||kind_IsRegExp(e)||kind_IsString(e)||kind_IsSymbol(e)||IsTemplateLiteral(e)||IsThis(e)||IsTuple(e)||kind_IsUndefined(e)||IsUnion(e)||kind_IsUint8Array(e)||IsUnknown(e)||IsUnsafe(e)||IsVoid(e)||IsKind(e)}function RemoveOptional(e){return Discard(CloneType(e),[m])}function AddOptional(e){return{...CloneType(e),[m]:"Optional"}}function OptionalWithFlag(e,t){return t===false?RemoveOptional(e):AddOptional(e)}function optional_Optional(e,t){const r=t??true;return IsMappedResult(e)?OptionalFromMappedResult(e,r):OptionalWithFlag(e,r)}function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=optional_Optional(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function OptionalFromMappedResult(e,t){const r=FromMappedResult(e,t);return MappedResult(r)}function IntersectCreate(e,t){const r=e.every((e=>kind_IsObject(e)));const n=IsSchema(t.unevaluatedProperties)?{unevaluatedProperties:CloneType(t.unevaluatedProperties)}:{};return t.unevaluatedProperties===false||IsSchema(t.unevaluatedProperties)||r?{...t,...n,[y]:"Intersect",type:"object",allOf:CloneRest(e)}:{...t,...n,[y]:"Intersect",allOf:CloneRest(e)}}function IsIntersectOptional(e){return e.every((e=>IsOptional(e)))}function RemoveOptionalFromType(e){return Discard(e,[m])}function RemoveOptionalFromRest(e){return e.map((e=>IsOptional(e)?RemoveOptionalFromType(e):e))}function ResolveIntersect(e,t){return IsIntersectOptional(e)?optional_Optional(IntersectCreate(RemoveOptionalFromRest(e),t)):IntersectCreate(RemoveOptionalFromRest(e),t)}function IntersectEvaluated(e,t={}){if(e.length===0)return never_Never(t);if(e.length===1)return CloneType(e[0],t);if(e.some((e=>IsTransform(e))))throw new Error("Cannot intersect transform types");return ResolveIntersect(e,t)}function intersect_Intersect(e,t={}){if(e.length===0)return never_Never(t);if(e.length===1)return CloneType(e[0],t);if(e.some((e=>IsTransform(e))))throw new Error("Cannot intersect transform types");return IntersectCreate(e,t)}function UnionCreate(e,t){return{...t,[y]:"Union",anyOf:CloneRest(e)}}function IsUnionOptional(e){return e.some((e=>IsOptional(e)))}function union_evaluated_RemoveOptionalFromRest(e){return e.map((e=>IsOptional(e)?union_evaluated_RemoveOptionalFromType(e):e))}function union_evaluated_RemoveOptionalFromType(e){return Discard(e,[m])}function ResolveUnion(e,t){return IsUnionOptional(e)?optional_Optional(UnionCreate(union_evaluated_RemoveOptionalFromRest(e),t)):UnionCreate(union_evaluated_RemoveOptionalFromRest(e),t)}function UnionEvaluated(e,t={}){return e.length===0?never_Never(t):e.length===1?CloneType(e[0],t):ResolveUnion(e,t)}function union_Union(e,t={}){return e.length===0?never_Never(t):e.length===1?CloneType(e[0],t):UnionCreate(e,t)}class TemplateLiteralParserError extends TypeBoxError{}function Unescape(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function IsNonEscaped(e,t,r){return e[t]===r&&e.charCodeAt(t-1)!==92}function IsOpenParen(e,t){return IsNonEscaped(e,t,"(")}function IsCloseParen(e,t){return IsNonEscaped(e,t,")")}function IsSeparator(e,t){return IsNonEscaped(e,t,"|")}function IsGroup(e){if(!(IsOpenParen(e,0)&&IsCloseParen(e,e.length-1)))return false;let t=0;for(let r=0;r0)n.push(TemplateLiteralParse(t));r=s+1}}const s=e.slice(r);if(s.length>0)n.push(TemplateLiteralParse(s));if(n.length===0)return{type:"const",const:""};if(n.length===1)return n[0];return{type:"or",expr:n}}function And(e){function Group(e,t){if(!IsOpenParen(e,t))throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);let r=0;for(let n=t;n0)t.push(TemplateLiteralParse(o));r=s-1}}return t.length===0?{type:"const",const:""}:t.length===1?t[0]:{type:"and",expr:t}}function TemplateLiteralParse(e){return IsGroup(e)?TemplateLiteralParse(InGroup(e)):IsPrecedenceOr(e)?Or(e):IsPrecedenceAnd(e)?And(e):{type:"const",const:Unescape(e)}}function TemplateLiteralParseExact(e){return TemplateLiteralParse(e.slice(1,e.length-1))}class TemplateLiteralFiniteError extends TypeBoxError{}function IsNumberExpression(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function IsBooleanExpression(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function IsStringExpression(e){return e.type==="const"&&e.const===".*"}function IsTemplateLiteralExpressionFinite(e){return IsNumberExpression(e)||IsStringExpression(e)?false:IsBooleanExpression(e)?true:e.type==="and"?e.expr.every((e=>IsTemplateLiteralExpressionFinite(e))):e.type==="or"?e.expr.every((e=>IsTemplateLiteralExpressionFinite(e))):e.type==="const"?true:(()=>{throw new TemplateLiteralFiniteError(`Unknown expression type`)})()}function IsTemplateLiteralFinite(e){const t=TemplateLiteralParseExact(e.pattern);return IsTemplateLiteralExpressionFinite(t)}class TemplateLiteralGenerateError extends TypeBoxError{}function*GenerateReduce(e){if(e.length===1)return yield*e[0];for(const t of e[0]){for(const r of GenerateReduce(e.slice(1))){yield`${t}${r}`}}}function*GenerateAnd(e){return yield*GenerateReduce(e.expr.map((e=>[...TemplateLiteralExpressionGenerate(e)])))}function*GenerateOr(e){for(const t of e.expr)yield*TemplateLiteralExpressionGenerate(t)}function*GenerateConst(e){return yield e.const}function*TemplateLiteralExpressionGenerate(e){return e.type==="and"?yield*GenerateAnd(e):e.type==="or"?yield*GenerateOr(e):e.type==="const"?yield*GenerateConst(e):(()=>{throw new TemplateLiteralGenerateError("Unknown expression")})()}function TemplateLiteralGenerate(e){const t=TemplateLiteralParseExact(e.pattern);return IsTemplateLiteralExpressionFinite(t)?[...TemplateLiteralExpressionGenerate(t)]:[]}function literal_Literal(e,t={}){return{...t,[y]:"Literal",const:e,type:typeof e}}function boolean_Boolean(e={}){return{...e,[y]:"Boolean",type:"boolean"}}function bigint_BigInt(e={}){return{...e,[y]:"BigInt",type:"bigint"}}function number_Number(e={}){return{...e,[y]:"Number",type:"number"}}function string_String(e={}){return{...e,[y]:"String",type:"string"}}function*FromUnion(e){const t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield boolean_Boolean():t==="number"?yield number_Number():t==="bigint"?yield bigint_BigInt():t==="string"?yield string_String():yield(()=>{const e=t.split("|").map((e=>literal_Literal(e.trim())));return e.length===0?never_Never():e.length===1?e[0]:UnionEvaluated(e)})()}function*FromTerminal(e){if(e[1]!=="{"){const t=literal_Literal("$");const r=FromSyntax(e.slice(1));return yield*[t,...r]}for(let t=2;tpattern_Visit(e,t))).join("|")})`:kind_IsNumber(e)?`${t}${b}`:kind_IsInteger(e)?`${t}${b}`:kind_IsBigInt(e)?`${t}${b}`:kind_IsString(e)?`${t}${B}`:IsLiteral(e)?`${t}${Escape(e.const.toString())}`:kind_IsBoolean(e)?`${t}${C}`:(()=>{throw new TemplateLiteralPatternError(`Unexpected Kind '${e[y]}'`)})()}function TemplateLiteralPattern(e){return`^${e.map((e=>pattern_Visit(e,""))).join("")}$`}function TemplateLiteralToUnion(e){const t=TemplateLiteralGenerate(e);const r=t.map((e=>literal_Literal(e)));return UnionEvaluated(r)}function template_literal_TemplateLiteral(e,t={}){const r=value_IsString(e)?TemplateLiteralPattern(TemplateLiteralSyntax(e)):TemplateLiteralPattern(e);return{...t,[y]:"TemplateLiteral",type:"string",pattern:r}}function FromTemplateLiteral(e){const t=TemplateLiteralGenerate(e);return t.map((e=>e.toString()))}function indexed_property_keys_FromUnion(e){const t=[];for(const r of e)t.push(...IndexPropertyKeys(r));return t}function FromLiteral(e){return[e.toString()]}function IndexPropertyKeys(e){return[...new Set(IsTemplateLiteral(e)?FromTemplateLiteral(e):IsUnion(e)?indexed_property_keys_FromUnion(e.anyOf):IsLiteral(e)?FromLiteral(e.const):kind_IsNumber(e)?["[number]"]:kind_IsInteger(e)?["[number]"]:[])]}function indexed_from_mapped_result_FromProperties(e,t,r){const n={};for(const s of Object.getOwnPropertyNames(t)){n[s]=indexed_Index(e,IndexPropertyKeys(t[s]),r)}return n}function indexed_from_mapped_result_FromMappedResult(e,t,r){return indexed_from_mapped_result_FromProperties(e,t.properties,r)}function IndexFromMappedResult(e,t,r){const n=indexed_from_mapped_result_FromMappedResult(e,t,r);return MappedResult(n)}function FromRest(e,t){return e.map((e=>IndexFromPropertyKey(e,t)))}function FromIntersectRest(e){return e.filter((e=>!IsNever(e)))}function FromIntersect(e,t){return IntersectEvaluated(FromIntersectRest(FromRest(e,t)))}function FromUnionRest(e){return e.some((e=>IsNever(e)))?[]:e}function indexed_FromUnion(e,t){return UnionEvaluated(FromUnionRest(FromRest(e,t)))}function FromTuple(e,t){return t in e?e[t]:t==="[number]"?UnionEvaluated(e):never_Never()}function FromArray(e,t){return t==="[number]"?e:never_Never()}function FromProperty(e,t){return t in e?e[t]:never_Never()}function IndexFromPropertyKey(e,t){return IsIntersect(e)?FromIntersect(e.allOf,t):IsUnion(e)?indexed_FromUnion(e.anyOf,t):IsTuple(e)?FromTuple(e.items??[],t):kind_IsArray(e)?FromArray(e.items,t):kind_IsObject(e)?FromProperty(e.properties,t):never_Never()}function IndexFromPropertyKeys(e,t){return t.map((t=>IndexFromPropertyKey(e,t)))}function FromSchema(e,t){return UnionEvaluated(IndexFromPropertyKeys(e,t))}function indexed_Index(e,t,r={}){return IsMappedResult(t)?CloneType(IndexFromMappedResult(e,t,r)):IsMappedKey(t)?CloneType(IndexFromMappedKey(e,t,r)):IsSchema(t)?CloneType(FromSchema(e,IndexPropertyKeys(t)),r):CloneType(FromSchema(e,t),r)}function MappedIndexPropertyKey(e,t,r){return{[t]:indexed_Index(e,[t],r)}}function MappedIndexPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...MappedIndexPropertyKey(e,n,r)})),{})}function MappedIndexProperties(e,t,r){return MappedIndexPropertyKeys(e,t.keys,r)}function IndexFromMappedKey(e,t,r){const n=MappedIndexProperties(e,t,r);return MappedResult(n)}function iterator_Iterator(e,t={}){return{...t,[y]:"Iterator",type:"Iterator",items:CloneType(e)}}function _Object(e,t={}){const r=globalThis.Object.getOwnPropertyNames(e);const n=r.filter((t=>IsOptional(e[t])));const s=r.filter((e=>!n.includes(e)));const o=IsSchema(t.additionalProperties)?{additionalProperties:CloneType(t.additionalProperties)}:{};const i={};for(const t of r)i[t]=CloneType(e[t]);return s.length>0?{...t,...o,[y]:"Object",type:"object",properties:i,required:s}:{...t,...o,[y]:"Object",type:"object",properties:i}}const O=_Object;function promise_Promise(e,t={}){return{...t,[y]:"Promise",type:"Promise",item:CloneType(e)}}function RemoveReadonly(e){return Discard(CloneType(e),[h])}function AddReadonly(e){return{...CloneType(e),[h]:"Readonly"}}function ReadonlyWithFlag(e,t){return t===false?RemoveReadonly(e):AddReadonly(e)}function readonly_Readonly(e,t){const r=t??true;return IsMappedResult(e)?ReadonlyFromMappedResult(e,r):ReadonlyWithFlag(e,r)}function readonly_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=readonly_Readonly(e[n],t);return r}function readonly_from_mapped_result_FromMappedResult(e,t){return readonly_from_mapped_result_FromProperties(e.properties,t)}function ReadonlyFromMappedResult(e,t){const r=readonly_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function tuple_Tuple(e,t={}){const[r,n,s]=[false,e.length,e.length];return e.length>0?{...t,[y]:"Tuple",type:"array",items:CloneRest(e),additionalItems:r,minItems:n,maxItems:s}:{...t,[y]:"Tuple",type:"array",minItems:n,maxItems:s}}function SetIncludes(e,t){return e.includes(t)}function SetIsSubset(e,t){return e.every((e=>SetIncludes(t,e)))}function SetDistinct(e){return[...new Set(e)]}function SetIntersect(e,t){return e.filter((e=>t.includes(e)))}function SetUnion(e,t){return[...e,...t]}function SetComplement(e,t){return e.filter((e=>!t.includes(e)))}function SetIntersectManyResolve(e,t){return e.reduce(((e,t)=>SetIntersect(e,t)),t)}function SetIntersectMany(e){return e.length===1?e[0]:e.length>1?SetIntersectManyResolve(e.slice(1),e[0]):[]}function SetUnionMany(e){const t=[];for(const r of e)t.push(...r);return t}function mapped_FromMappedResult(e,t){return e in t?FromSchemaType(e,t[e]):MappedResult(t)}function MappedKeyToKnownMappedResultProperties(e){return{[e]:literal_Literal(e)}}function MappedKeyToUnknownMappedResultProperties(e){const t={};for(const r of e)t[r]=literal_Literal(r);return t}function MappedKeyToMappedResultProperties(e,t){return SetIncludes(t,e)?MappedKeyToKnownMappedResultProperties(e):MappedKeyToUnknownMappedResultProperties(t)}function FromMappedKey(e,t){const r=MappedKeyToMappedResultProperties(e,t);return mapped_FromMappedResult(e,r)}function mapped_FromRest(e,t){return t.map((t=>FromSchemaType(e,t)))}function mapped_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(t))r[n]=FromSchemaType(e,t[n]);return r}function FromSchemaType(e,t){return IsOptional(t)?optional_Optional(FromSchemaType(e,Discard(t,[m]))):IsReadonly(t)?readonly_Readonly(FromSchemaType(e,Discard(t,[h]))):IsMappedResult(t)?mapped_FromMappedResult(e,t.properties):IsMappedKey(t)?FromMappedKey(e,t.keys):IsConstructor(t)?constructor_Constructor(mapped_FromRest(e,t.parameters),FromSchemaType(e,t.returns)):kind_IsFunction(t)?function_Function(mapped_FromRest(e,t.parameters),FromSchemaType(e,t.returns)):kind_IsAsyncIterator(t)?async_iterator_AsyncIterator(FromSchemaType(e,t.items)):kind_IsIterator(t)?iterator_Iterator(FromSchemaType(e,t.items)):IsIntersect(t)?intersect_Intersect(mapped_FromRest(e,t.allOf)):IsUnion(t)?union_Union(mapped_FromRest(e,t.anyOf)):IsTuple(t)?tuple_Tuple(mapped_FromRest(e,t.items??[])):kind_IsObject(t)?O(mapped_FromProperties(e,t.properties)):kind_IsArray(t)?array_Array(FromSchemaType(e,t.items)):kind_IsPromise(t)?promise_Promise(FromSchemaType(e,t.item)):t}function MappedFunctionReturnType(e,t){const r={};for(const n of e)r[n]=FromSchemaType(n,t);return r}function mapped_Mapped(e,t,r={}){const n=IsSchema(e)?IndexPropertyKeys(e):e;const s=t({[y]:"MappedKey",keys:n});const o=MappedFunctionReturnType(n,s);return CloneType(O(o),r)}function keyof_property_keys_FromRest(e){const t=[];for(const r of e)t.push(KeyOfPropertyKeys(r));return t}function keyof_property_keys_FromIntersect(e){const t=keyof_property_keys_FromRest(e);const r=SetUnionMany(t);return r}function keyof_property_keys_FromUnion(e){const t=keyof_property_keys_FromRest(e);const r=SetIntersectMany(t);return r}function keyof_property_keys_FromTuple(e){return e.map(((e,t)=>t.toString()))}function keyof_property_keys_FromArray(e){return["[number]"]}function keyof_property_keys_FromProperties(e){return globalThis.Object.getOwnPropertyNames(e)}function FromPatternProperties(e){if(!k)return[];const t=globalThis.Object.getOwnPropertyNames(e);return t.map((e=>e[0]==="^"&&e[e.length-1]==="$"?e.slice(1,e.length-1):e))}function KeyOfPropertyKeys(e){return IsIntersect(e)?keyof_property_keys_FromIntersect(e.allOf):IsUnion(e)?keyof_property_keys_FromUnion(e.anyOf):IsTuple(e)?keyof_property_keys_FromTuple(e.items??[]):kind_IsArray(e)?keyof_property_keys_FromArray(e.items):kind_IsObject(e)?keyof_property_keys_FromProperties(e.properties):IsRecord(e)?FromPatternProperties(e.patternProperties):[]}let k=false;function KeyOfPattern(e){k=true;const t=KeyOfPropertyKeys(e);k=false;const r=t.map((e=>`(${e})`));return`^(${r.join("|")})$`}function KeyOfPropertyKeysToRest(e){return e.map((e=>e==="[number]"?number_Number():literal_Literal(e)))}function keyof_KeyOf(e,t={}){if(IsMappedResult(e)){return KeyOfFromMappedResult(e,t)}else{const r=KeyOfPropertyKeys(e);const n=KeyOfPropertyKeysToRest(r);const s=UnionEvaluated(n);return CloneType(s,t)}}function keyof_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=keyof_KeyOf(e[n],t);return r}function keyof_from_mapped_result_FromMappedResult(e,t){return keyof_from_mapped_result_FromProperties(e.properties,t)}function KeyOfFromMappedResult(e,t){const r=keyof_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function KeyOfPropertyEntries(e){const t=KeyOfPropertyKeys(e);const r=IndexFromPropertyKeys(e,t);return t.map(((e,n)=>[t[n],r[n]]))}function extends_undefined_Intersect(e){return e.allOf.every((e=>ExtendsUndefinedCheck(e)))}function extends_undefined_Union(e){return e.anyOf.some((e=>ExtendsUndefinedCheck(e)))}function extends_undefined_Not(e){return!ExtendsUndefinedCheck(e.not)}function ExtendsUndefinedCheck(e){return e[y]==="Intersect"?extends_undefined_Intersect(e):e[y]==="Union"?extends_undefined_Union(e):e[y]==="Not"?extends_undefined_Not(e):e[y]==="Undefined"?true:false}function DefaultErrorFunction(e){switch(e.errorType){case x.ArrayContains:return"Expected array to contain at least one matching value";case x.ArrayMaxContains:return`Expected array to contain no more than ${e.schema.maxContains} matching values`;case x.ArrayMinContains:return`Expected array to contain at least ${e.schema.minContains} matching values`;case x.ArrayMaxItems:return`Expected array length to be less or equal to ${e.schema.maxItems}`;case x.ArrayMinItems:return`Expected array length to be greater or equal to ${e.schema.minItems}`;case x.ArrayUniqueItems:return"Expected array elements to be unique";case x.Array:return"Expected array";case x.AsyncIterator:return"Expected AsyncIterator";case x.BigIntExclusiveMaximum:return`Expected bigint to be less than ${e.schema.exclusiveMaximum}`;case x.BigIntExclusiveMinimum:return`Expected bigint to be greater than ${e.schema.exclusiveMinimum}`;case x.BigIntMaximum:return`Expected bigint to be less or equal to ${e.schema.maximum}`;case x.BigIntMinimum:return`Expected bigint to be greater or equal to ${e.schema.minimum}`;case x.BigIntMultipleOf:return`Expected bigint to be a multiple of ${e.schema.multipleOf}`;case x.BigInt:return"Expected bigint";case x.Boolean:return"Expected boolean";case x.DateExclusiveMinimumTimestamp:return`Expected Date timestamp to be greater than ${e.schema.exclusiveMinimumTimestamp}`;case x.DateExclusiveMaximumTimestamp:return`Expected Date timestamp to be less than ${e.schema.exclusiveMaximumTimestamp}`;case x.DateMinimumTimestamp:return`Expected Date timestamp to be greater or equal to ${e.schema.minimumTimestamp}`;case x.DateMaximumTimestamp:return`Expected Date timestamp to be less or equal to ${e.schema.maximumTimestamp}`;case x.DateMultipleOfTimestamp:return`Expected Date timestamp to be a multiple of ${e.schema.multipleOfTimestamp}`;case x.Date:return"Expected Date";case x.Function:return"Expected function";case x.IntegerExclusiveMaximum:return`Expected integer to be less than ${e.schema.exclusiveMaximum}`;case x.IntegerExclusiveMinimum:return`Expected integer to be greater than ${e.schema.exclusiveMinimum}`;case x.IntegerMaximum:return`Expected integer to be less or equal to ${e.schema.maximum}`;case x.IntegerMinimum:return`Expected integer to be greater or equal to ${e.schema.minimum}`;case x.IntegerMultipleOf:return`Expected integer to be a multiple of ${e.schema.multipleOf}`;case x.Integer:return"Expected integer";case x.IntersectUnevaluatedProperties:return"Unexpected property";case x.Intersect:return"Expected all values to match";case x.Iterator:return"Expected Iterator";case x.Literal:return`Expected ${typeof e.schema.const==="string"?`'${e.schema.const}'`:e.schema.const}`;case x.Never:return"Never";case x.Not:return"Value should not match";case x.Null:return"Expected null";case x.NumberExclusiveMaximum:return`Expected number to be less than ${e.schema.exclusiveMaximum}`;case x.NumberExclusiveMinimum:return`Expected number to be greater than ${e.schema.exclusiveMinimum}`;case x.NumberMaximum:return`Expected number to be less or equal to ${e.schema.maximum}`;case x.NumberMinimum:return`Expected number to be greater or equal to ${e.schema.minimum}`;case x.NumberMultipleOf:return`Expected number to be a multiple of ${e.schema.multipleOf}`;case x.Number:return"Expected number";case x.Object:return"Expected object";case x.ObjectAdditionalProperties:return"Unexpected property";case x.ObjectMaxProperties:return`Expected object to have no more than ${e.schema.maxProperties} properties`;case x.ObjectMinProperties:return`Expected object to have at least ${e.schema.minProperties} properties`;case x.ObjectRequiredProperty:return"Expected required property";case x.Promise:return"Expected Promise";case x.RegExp:return"Expected string to match regular expression";case x.StringFormatUnknown:return`Unknown format '${e.schema.format}'`;case x.StringFormat:return`Expected string to match '${e.schema.format}' format`;case x.StringMaxLength:return`Expected string length less or equal to ${e.schema.maxLength}`;case x.StringMinLength:return`Expected string length greater or equal to ${e.schema.minLength}`;case x.StringPattern:return`Expected string to match '${e.schema.pattern}'`;case x.String:return"Expected string";case x.Symbol:return"Expected symbol";case x.TupleLength:return`Expected tuple to have ${e.schema.maxItems||0} elements`;case x.Tuple:return"Expected tuple";case x.Uint8ArrayMaxByteLength:return`Expected byte length less or equal to ${e.schema.maxByteLength}`;case x.Uint8ArrayMinByteLength:return`Expected byte length greater or equal to ${e.schema.minByteLength}`;case x.Uint8Array:return"Expected Uint8Array";case x.Undefined:return"Expected undefined";case x.Union:return"Expected union value";case x.Void:return"Expected void";case x.Kind:return`Expected kind '${e.schema[y]}'`;default:return"Unknown error type"}}let R=DefaultErrorFunction;function SetErrorFunction(e){R=e}function GetErrorFunction(){return R}class TypeDereferenceError extends TypeBoxError{constructor(e){super(`Unable to dereference schema with $id '${e.$id}'`);this.schema=e}}function Resolve(e,t){const r=t.find((t=>t.$id===e.$ref));if(r===undefined)throw new TypeDereferenceError(e);return deref_Deref(r,t)}function deref_Deref(e,t){return e[y]==="This"||e[y]==="Ref"?Resolve(e,t):e}class ValueHashError extends TypeBoxError{constructor(e){super(`Unable to hash value`);this.value=e}}var S;(function(e){e[e["Undefined"]=0]="Undefined";e[e["Null"]=1]="Null";e[e["Boolean"]=2]="Boolean";e[e["Number"]=3]="Number";e[e["String"]=4]="String";e[e["Object"]=5]="Object";e[e["Array"]=6]="Array";e[e["Date"]=7]="Date";e[e["Uint8Array"]=8]="Uint8Array";e[e["Symbol"]=9]="Symbol";e[e["BigInt"]=10]="BigInt"})(S||(S={}));let F=BigInt("14695981039346656037");const[D,N]=[BigInt("1099511628211"),BigInt("2")**BigInt("64")];const P=Array.from({length:256}).map(((e,t)=>BigInt(t)));const L=new Float64Array(1);const U=new DataView(L.buffer);const M=new Uint8Array(L.buffer);function*NumberToBytes(e){const t=e===0?1:Math.ceil(Math.floor(Math.log2(e)+1)/8);for(let r=0;r>8*(t-1-r)&255}}function hash_ArrayType(e){FNV1A64(S.Array);for(const t of e){hash_Visit(t)}}function BooleanType(e){FNV1A64(S.Boolean);FNV1A64(e?1:0)}function BigIntType(e){FNV1A64(S.BigInt);U.setBigInt64(0,e);for(const e of M){FNV1A64(e)}}function hash_DateType(e){FNV1A64(S.Date);hash_Visit(e.getTime())}function NullType(e){FNV1A64(S.Null)}function NumberType(e){FNV1A64(S.Number);U.setFloat64(0,e);for(const e of M){FNV1A64(e)}}function hash_ObjectType(e){FNV1A64(S.Object);for(const t of globalThis.Object.getOwnPropertyNames(e).sort()){hash_Visit(t);hash_Visit(e[t])}}function StringType(e){FNV1A64(S.String);for(let t=0;t=e.minItems)){yield Create(x.ArrayMinItems,e,r,n)}if(IsDefined(e.maxItems)&&!(n.length<=e.maxItems)){yield Create(x.ArrayMaxItems,e,r,n)}for(let s=0;serrors_Visit(s,t,`${r}${o}`,n).next().done===true?e+1:e),0);if(o===0){yield Create(x.ArrayContains,e,r,n)}if(IsNumber(e.minContains)&&oe.maxContains){yield Create(x.ArrayMaxContains,e,r,n)}}function*FromAsyncIterator(e,t,r,n){if(!IsAsyncIterator(n))yield Create(x.AsyncIterator,e,r,n)}function*FromBigInt(e,t,r,n){if(!IsBigInt(n))return yield Create(x.BigInt,e,r,n);if(IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(x.BigIntExclusiveMinimum,e,r,n)}if(IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(x.BigIntMaximum,e,r,n)}if(IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(x.BigIntMinimum,e,r,n)}if(IsDefined(e.multipleOf)&&!(n%e.multipleOf===BigInt(0))){yield Create(x.BigIntMultipleOf,e,r,n)}}function*FromBoolean(e,t,r,n){if(!IsBoolean(n))yield Create(x.Boolean,e,r,n)}function*FromConstructor(e,t,r,n){yield*errors_Visit(e.returns,t,r,n.prototype)}function*FromDate(e,t,r,n){if(!IsDate(n))return yield Create(x.Date,e,r,n);if(IsDefined(e.exclusiveMaximumTimestamp)&&!(n.getTime()e.exclusiveMinimumTimestamp)){yield Create(x.DateExclusiveMinimumTimestamp,e,r,n)}if(IsDefined(e.maximumTimestamp)&&!(n.getTime()<=e.maximumTimestamp)){yield Create(x.DateMaximumTimestamp,e,r,n)}if(IsDefined(e.minimumTimestamp)&&!(n.getTime()>=e.minimumTimestamp)){yield Create(x.DateMinimumTimestamp,e,r,n)}if(IsDefined(e.multipleOfTimestamp)&&!(n.getTime()%e.multipleOfTimestamp===0)){yield Create(x.DateMultipleOfTimestamp,e,r,n)}}function*FromFunction(e,t,r,n){if(!IsFunction(n))yield Create(x.Function,e,r,n)}function*FromInteger(e,t,r,n){if(!IsInteger(n))return yield Create(x.Integer,e,r,n);if(IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(x.IntegerExclusiveMinimum,e,r,n)}if(IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(x.IntegerMaximum,e,r,n)}if(IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(x.IntegerMinimum,e,r,n)}if(IsDefined(e.multipleOf)&&!(n%e.multipleOf===0)){yield Create(x.IntegerMultipleOf,e,r,n)}}function*errors_FromIntersect(e,t,r,n){for(const s of e.allOf){const o=errors_Visit(s,t,r,n).next();if(!o.done){yield Create(x.Intersect,e,r,n);yield o.value}}if(e.unevaluatedProperties===false){const t=new RegExp(KeyOfPattern(e));for(const s of Object.getOwnPropertyNames(n)){if(!t.test(s)){yield Create(x.IntersectUnevaluatedProperties,e,`${r}/${s}`,n)}}}if(typeof e.unevaluatedProperties==="object"){const s=new RegExp(KeyOfPattern(e));for(const o of Object.getOwnPropertyNames(n)){if(!s.test(o)){const s=errors_Visit(e.unevaluatedProperties,t,`${r}/${o}`,n[o]).next();if(!s.done)yield s.value}}}}function*FromIterator(e,t,r,n){if(!IsIterator(n))yield Create(x.Iterator,e,r,n)}function*errors_FromLiteral(e,t,r,n){if(!(n===e.const))yield Create(x.Literal,e,r,n)}function*FromNever(e,t,r,n){yield Create(x.Never,e,r,n)}function*FromNot(e,t,r,n){if(errors_Visit(e.not,t,r,n).next().done===true)yield Create(x.Not,e,r,n)}function*FromNull(e,t,r,n){if(!IsNull(n))yield Create(x.Null,e,r,n)}function*FromNumber(e,t,r,n){if(!l.IsNumberLike(n))return yield Create(x.Number,e,r,n);if(IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(x.NumberExclusiveMinimum,e,r,n)}if(IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(x.NumberMaximum,e,r,n)}if(IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(x.NumberMinimum,e,r,n)}if(IsDefined(e.multipleOf)&&!(n%e.multipleOf===0)){yield Create(x.NumberMultipleOf,e,r,n)}}function*FromObject(e,t,r,n){if(!l.IsObjectLike(n))return yield Create(x.Object,e,r,n);if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(n).length>=e.minProperties)){yield Create(x.ObjectMinProperties,e,r,n)}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(n).length<=e.maxProperties)){yield Create(x.ObjectMaxProperties,e,r,n)}const s=Array.isArray(e.required)?e.required:[];const o=Object.getOwnPropertyNames(e.properties);const i=Object.getOwnPropertyNames(n);for(const t of s){if(i.includes(t))continue;yield Create(x.ObjectRequiredProperty,e.properties[t],`${r}/${EscapeKey(t)}`,undefined)}if(e.additionalProperties===false){for(const t of i){if(!o.includes(t)){yield Create(x.ObjectAdditionalProperties,e,`${r}/${EscapeKey(t)}`,n[t])}}}if(typeof e.additionalProperties==="object"){for(const s of i){if(o.includes(s))continue;yield*errors_Visit(e.additionalProperties,t,`${r}/${EscapeKey(s)}`,n[s])}}for(const s of o){const o=e.properties[s];if(e.required&&e.required.includes(s)){yield*errors_Visit(o,t,`${r}/${EscapeKey(s)}`,n[s]);if(ExtendsUndefinedCheck(e)&&!(s in n)){yield Create(x.ObjectRequiredProperty,o,`${r}/${EscapeKey(s)}`,undefined)}}else{if(l.IsExactOptionalProperty(n,s)){yield*errors_Visit(o,t,`${r}/${EscapeKey(s)}`,n[s])}}}}function*FromPromise(e,t,r,n){if(!IsPromise(n))yield Create(x.Promise,e,r,n)}function*FromRecord(e,t,r,n){if(!l.IsRecordLike(n))return yield Create(x.Object,e,r,n);if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(n).length>=e.minProperties)){yield Create(x.ObjectMinProperties,e,r,n)}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(n).length<=e.maxProperties)){yield Create(x.ObjectMaxProperties,e,r,n)}const[s,o]=Object.entries(e.patternProperties)[0];const i=new RegExp(s);for(const[e,s]of Object.entries(n)){if(i.test(e))yield*errors_Visit(o,t,`${r}/${EscapeKey(e)}`,s)}if(typeof e.additionalProperties==="object"){for(const[s,o]of Object.entries(n)){if(!i.test(s))yield*errors_Visit(e.additionalProperties,t,`${r}/${EscapeKey(s)}`,o)}}if(e.additionalProperties===false){for(const[t,s]of Object.entries(n)){if(i.test(t))continue;return yield Create(x.ObjectAdditionalProperties,e,`${r}/${EscapeKey(t)}`,s)}}}function*FromRef(e,t,r,n){yield*errors_Visit(deref_Deref(e,t),t,r,n)}function*FromRegExp(e,t,r,n){if(!IsString(n))return yield Create(x.String,e,r,n);if(IsDefined(e.minLength)&&!(n.length>=e.minLength)){yield Create(x.StringMinLength,e,r,n)}if(IsDefined(e.maxLength)&&!(n.length<=e.maxLength)){yield Create(x.StringMaxLength,e,r,n)}const s=new RegExp(e.source,e.flags);if(!s.test(n)){return yield Create(x.RegExp,e,r,n)}}function*FromString(e,t,r,n){if(!IsString(n))return yield Create(x.String,e,r,n);if(IsDefined(e.minLength)&&!(n.length>=e.minLength)){yield Create(x.StringMinLength,e,r,n)}if(IsDefined(e.maxLength)&&!(n.length<=e.maxLength)){yield Create(x.StringMaxLength,e,r,n)}if(IsString(e.pattern)){const t=new RegExp(e.pattern);if(!t.test(n)){yield Create(x.StringPattern,e,r,n)}}if(IsString(e.format)){if(!Has(e.format)){yield Create(x.StringFormatUnknown,e,r,n)}else{const t=Get(e.format);if(!t(n)){yield Create(x.StringFormat,e,r,n)}}}}function*FromSymbol(e,t,r,n){if(!IsSymbol(n))yield Create(x.Symbol,e,r,n)}function*errors_FromTemplateLiteral(e,t,r,n){if(!IsString(n))return yield Create(x.String,e,r,n);const s=new RegExp(e.pattern);if(!s.test(n)){yield Create(x.StringPattern,e,r,n)}}function*FromThis(e,t,r,n){yield*errors_Visit(deref_Deref(e,t),t,r,n)}function*errors_FromTuple(e,t,r,n){if(!IsArray(n))return yield Create(x.Tuple,e,r,n);if(e.items===undefined&&!(n.length===0)){return yield Create(x.TupleLength,e,r,n)}if(!(n.length===e.maxItems)){return yield Create(x.TupleLength,e,r,n)}if(!e.items){return}for(let s=0;s0){yield Create(x.Union,e,r,n)}}function*FromUint8Array(e,t,r,n){if(!IsUint8Array(n))return yield Create(x.Uint8Array,e,r,n);if(IsDefined(e.maxByteLength)&&!(n.length<=e.maxByteLength)){yield Create(x.Uint8ArrayMaxByteLength,e,r,n)}if(IsDefined(e.minByteLength)&&!(n.length>=e.minByteLength)){yield Create(x.Uint8ArrayMinByteLength,e,r,n)}}function*FromUnknown(e,t,r,n){}function*FromVoid(e,t,r,n){if(!l.IsVoidLike(n))yield Create(x.Void,e,r,n)}function*FromKind(e,t,r,n){const s=type_Get(e[y]);if(!s(e,n))yield Create(x.Kind,e,r,n)}function*errors_Visit(e,t,r,n){const s=IsDefined(e.$id)?[...t,e]:t;const o=e;switch(o[y]){case"Any":return yield*FromAny(o,s,r,n);case"Array":return yield*errors_FromArray(o,s,r,n);case"AsyncIterator":return yield*FromAsyncIterator(o,s,r,n);case"BigInt":return yield*FromBigInt(o,s,r,n);case"Boolean":return yield*FromBoolean(o,s,r,n);case"Constructor":return yield*FromConstructor(o,s,r,n);case"Date":return yield*FromDate(o,s,r,n);case"Function":return yield*FromFunction(o,s,r,n);case"Integer":return yield*FromInteger(o,s,r,n);case"Intersect":return yield*errors_FromIntersect(o,s,r,n);case"Iterator":return yield*FromIterator(o,s,r,n);case"Literal":return yield*errors_FromLiteral(o,s,r,n);case"Never":return yield*FromNever(o,s,r,n);case"Not":return yield*FromNot(o,s,r,n);case"Null":return yield*FromNull(o,s,r,n);case"Number":return yield*FromNumber(o,s,r,n);case"Object":return yield*FromObject(o,s,r,n);case"Promise":return yield*FromPromise(o,s,r,n);case"Record":return yield*FromRecord(o,s,r,n);case"Ref":return yield*FromRef(o,s,r,n);case"RegExp":return yield*FromRegExp(o,s,r,n);case"String":return yield*FromString(o,s,r,n);case"Symbol":return yield*FromSymbol(o,s,r,n);case"TemplateLiteral":return yield*errors_FromTemplateLiteral(o,s,r,n);case"This":return yield*FromThis(o,s,r,n);case"Tuple":return yield*errors_FromTuple(o,s,r,n);case"Undefined":return yield*FromUndefined(o,s,r,n);case"Union":return yield*errors_FromUnion(o,s,r,n);case"Uint8Array":return yield*FromUint8Array(o,s,r,n);case"Unknown":return yield*FromUnknown(o,s,r,n);case"Void":return yield*FromVoid(o,s,r,n);default:if(!type_Has(o[y]))throw new ValueErrorsUnknownTypeError(e);return yield*FromKind(o,s,r,n)}}function Errors(...e){const t=e.length===3?errors_Visit(e[0],e[1],"",e[2]):errors_Visit(e[0],[],"",e[1]);return new ValueErrorIterator(t)}function any_Any(e={}){return{...e,[y]:"Any"}}function unknown_Unknown(e={}){return{...e,[y]:"Unknown"}}class TypeGuardUnknownTypeError extends TypeBoxError{}const G=["Any","Array","AsyncIterator","BigInt","Boolean","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"];function IsPattern(e){try{new RegExp(e);return true}catch{return false}}function IsControlCharacterFree(e){if(!value_IsString(e))return false;for(let t=0;t=7&&r<=13||r===27||r===127){return false}}return true}function IsAdditionalProperties(e){return IsOptionalBoolean(e)||type_IsSchema(e)}function IsOptionalBigInt(e){return value_IsUndefined(e)||value_IsBigInt(e)}function IsOptionalNumber(e){return value_IsUndefined(e)||value_IsNumber(e)}function IsOptionalBoolean(e){return value_IsUndefined(e)||value_IsBoolean(e)}function IsOptionalString(e){return value_IsUndefined(e)||value_IsString(e)}function IsOptionalPattern(e){return value_IsUndefined(e)||value_IsString(e)&&IsControlCharacterFree(e)&&IsPattern(e)}function IsOptionalFormat(e){return value_IsUndefined(e)||value_IsString(e)&&IsControlCharacterFree(e)}function IsOptionalSchema(e){return value_IsUndefined(e)||type_IsSchema(e)}function type_IsReadonly(e){return value_IsObject(e)&&e[h]==="Readonly"}function type_IsOptional(e){return value_IsObject(e)&&e[m]==="Optional"}function type_IsAny(e){return type_IsKindOf(e,"Any")&&IsOptionalString(e.$id)}function type_IsArray(e){return type_IsKindOf(e,"Array")&&e.type==="array"&&IsOptionalString(e.$id)&&type_IsSchema(e.items)&&IsOptionalNumber(e.minItems)&&IsOptionalNumber(e.maxItems)&&IsOptionalBoolean(e.uniqueItems)&&IsOptionalSchema(e.contains)&&IsOptionalNumber(e.minContains)&&IsOptionalNumber(e.maxContains)}function type_IsAsyncIterator(e){return type_IsKindOf(e,"AsyncIterator")&&e.type==="AsyncIterator"&&IsOptionalString(e.$id)&&type_IsSchema(e.items)}function type_IsBigInt(e){return type_IsKindOf(e,"BigInt")&&e.type==="bigint"&&IsOptionalString(e.$id)&&IsOptionalBigInt(e.exclusiveMaximum)&&IsOptionalBigInt(e.exclusiveMinimum)&&IsOptionalBigInt(e.maximum)&&IsOptionalBigInt(e.minimum)&&IsOptionalBigInt(e.multipleOf)}function type_IsBoolean(e){return type_IsKindOf(e,"Boolean")&&e.type==="boolean"&&IsOptionalString(e.$id)}function type_IsConstructor(e){return type_IsKindOf(e,"Constructor")&&e.type==="Constructor"&&IsOptionalString(e.$id)&&value_IsArray(e.parameters)&&e.parameters.every((e=>type_IsSchema(e)))&&type_IsSchema(e.returns)}function type_IsDate(e){return type_IsKindOf(e,"Date")&&e.type==="Date"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximumTimestamp)&&IsOptionalNumber(e.exclusiveMinimumTimestamp)&&IsOptionalNumber(e.maximumTimestamp)&&IsOptionalNumber(e.minimumTimestamp)&&IsOptionalNumber(e.multipleOfTimestamp)}function type_IsFunction(e){return type_IsKindOf(e,"Function")&&e.type==="Function"&&IsOptionalString(e.$id)&&value_IsArray(e.parameters)&&e.parameters.every((e=>type_IsSchema(e)))&&type_IsSchema(e.returns)}function type_IsInteger(e){return type_IsKindOf(e,"Integer")&&e.type==="integer"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximum)&&IsOptionalNumber(e.exclusiveMinimum)&&IsOptionalNumber(e.maximum)&&IsOptionalNumber(e.minimum)&&IsOptionalNumber(e.multipleOf)}function type_IsProperties(e){return value_IsObject(e)&&Object.entries(e).every((([e,t])=>IsControlCharacterFree(e)&&type_IsSchema(t)))}function type_IsIntersect(e){return type_IsKindOf(e,"Intersect")&&(value_IsString(e.type)&&e.type!=="object"?false:true)&&value_IsArray(e.allOf)&&e.allOf.every((e=>type_IsSchema(e)&&!type_IsTransform(e)))&&IsOptionalString(e.type)&&(IsOptionalBoolean(e.unevaluatedProperties)||IsOptionalSchema(e.unevaluatedProperties))&&IsOptionalString(e.$id)}function type_IsIterator(e){return type_IsKindOf(e,"Iterator")&&e.type==="Iterator"&&IsOptionalString(e.$id)&&type_IsSchema(e.items)}function type_IsKindOf(e,t){return value_IsObject(e)&&y in e&&e[y]===t}function type_IsLiteralString(e){return type_IsLiteral(e)&&value_IsString(e.const)}function type_IsLiteralNumber(e){return type_IsLiteral(e)&&value_IsNumber(e.const)}function type_IsLiteralBoolean(e){return type_IsLiteral(e)&&value_IsBoolean(e.const)}function type_IsLiteral(e){return type_IsKindOf(e,"Literal")&&IsOptionalString(e.$id)&&IsLiteralValue(e.const)}function IsLiteralValue(e){return value_IsBoolean(e)||value_IsNumber(e)||value_IsString(e)}function type_IsMappedKey(e){return type_IsKindOf(e,"MappedKey")&&value_IsArray(e.keys)&&e.keys.every((e=>value_IsNumber(e)||value_IsString(e)))}function type_IsMappedResult(e){return type_IsKindOf(e,"MappedResult")&&type_IsProperties(e.properties)}function type_IsNever(e){return type_IsKindOf(e,"Never")&&value_IsObject(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function type_IsNot(e){return type_IsKindOf(e,"Not")&&type_IsSchema(e.not)}function type_IsNull(e){return type_IsKindOf(e,"Null")&&e.type==="null"&&IsOptionalString(e.$id)}function type_IsNumber(e){return type_IsKindOf(e,"Number")&&e.type==="number"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximum)&&IsOptionalNumber(e.exclusiveMinimum)&&IsOptionalNumber(e.maximum)&&IsOptionalNumber(e.minimum)&&IsOptionalNumber(e.multipleOf)}function type_IsObject(e){return type_IsKindOf(e,"Object")&&e.type==="object"&&IsOptionalString(e.$id)&&type_IsProperties(e.properties)&&IsAdditionalProperties(e.additionalProperties)&&IsOptionalNumber(e.minProperties)&&IsOptionalNumber(e.maxProperties)}function type_IsPromise(e){return type_IsKindOf(e,"Promise")&&e.type==="Promise"&&IsOptionalString(e.$id)&&type_IsSchema(e.item)}function type_IsRecord(e){return type_IsKindOf(e,"Record")&&e.type==="object"&&IsOptionalString(e.$id)&&IsAdditionalProperties(e.additionalProperties)&&value_IsObject(e.patternProperties)&&(e=>{const t=Object.getOwnPropertyNames(e.patternProperties);return t.length===1&&IsPattern(t[0])&&value_IsObject(e.patternProperties)&&type_IsSchema(e.patternProperties[t[0]])})(e)}function type_IsRecursive(e){return value_IsObject(e)&&E in e&&e[E]==="Recursive"}function type_IsRef(e){return type_IsKindOf(e,"Ref")&&IsOptionalString(e.$id)&&value_IsString(e.$ref)}function type_IsRegExp(e){return type_IsKindOf(e,"RegExp")&&IsOptionalString(e.$id)&&value_IsString(e.source)&&value_IsString(e.flags)&&IsOptionalNumber(e.maxLength)&&IsOptionalNumber(e.minLength)}function type_IsString(e){return type_IsKindOf(e,"String")&&e.type==="string"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.minLength)&&IsOptionalNumber(e.maxLength)&&IsOptionalPattern(e.pattern)&&IsOptionalFormat(e.format)}function type_IsSymbol(e){return type_IsKindOf(e,"Symbol")&&e.type==="symbol"&&IsOptionalString(e.$id)}function type_IsTemplateLiteral(e){return type_IsKindOf(e,"TemplateLiteral")&&e.type==="string"&&value_IsString(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function type_IsThis(e){return type_IsKindOf(e,"This")&&IsOptionalString(e.$id)&&value_IsString(e.$ref)}function type_IsTransform(e){return value_IsObject(e)&&g in e}function type_IsTuple(e){return type_IsKindOf(e,"Tuple")&&e.type==="array"&&IsOptionalString(e.$id)&&value_IsNumber(e.minItems)&&value_IsNumber(e.maxItems)&&e.minItems===e.maxItems&&(value_IsUndefined(e.items)&&value_IsUndefined(e.additionalItems)&&e.minItems===0||value_IsArray(e.items)&&e.items.every((e=>type_IsSchema(e))))}function type_IsUndefined(e){return type_IsKindOf(e,"Undefined")&&e.type==="undefined"&&IsOptionalString(e.$id)}function IsUnionLiteral(e){return type_IsUnion(e)&&e.anyOf.every((e=>type_IsLiteralString(e)||type_IsLiteralNumber(e)))}function type_IsUnion(e){return type_IsKindOf(e,"Union")&&IsOptionalString(e.$id)&&value_IsObject(e)&&value_IsArray(e.anyOf)&&e.anyOf.every((e=>type_IsSchema(e)))}function type_IsUint8Array(e){return type_IsKindOf(e,"Uint8Array")&&e.type==="Uint8Array"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.minByteLength)&&IsOptionalNumber(e.maxByteLength)}function type_IsUnknown(e){return type_IsKindOf(e,"Unknown")&&IsOptionalString(e.$id)}function type_IsUnsafe(e){return type_IsKindOf(e,"Unsafe")}function type_IsVoid(e){return type_IsKindOf(e,"Void")&&e.type==="void"&&IsOptionalString(e.$id)}function type_IsKind(e){return value_IsObject(e)&&y in e&&value_IsString(e[y])&&!G.includes(e[y])}function type_IsSchema(e){return value_IsObject(e)&&(type_IsAny(e)||type_IsArray(e)||type_IsBoolean(e)||type_IsBigInt(e)||type_IsAsyncIterator(e)||type_IsConstructor(e)||type_IsDate(e)||type_IsFunction(e)||type_IsInteger(e)||type_IsIntersect(e)||type_IsIterator(e)||type_IsLiteral(e)||type_IsMappedKey(e)||type_IsMappedResult(e)||type_IsNever(e)||type_IsNot(e)||type_IsNull(e)||type_IsNumber(e)||type_IsObject(e)||type_IsPromise(e)||type_IsRecord(e)||type_IsRef(e)||type_IsRegExp(e)||type_IsString(e)||type_IsSymbol(e)||type_IsTemplateLiteral(e)||type_IsThis(e)||type_IsTuple(e)||type_IsUndefined(e)||type_IsUnion(e)||type_IsUint8Array(e)||type_IsUnknown(e)||type_IsUnsafe(e)||type_IsVoid(e)||type_IsKind(e))}class ExtendsResolverError extends TypeBoxError{}var j;(function(e){e[e["Union"]=0]="Union";e[e["True"]=1]="True";e[e["False"]=2]="False"})(j||(j={}));function IntoBooleanResult(e){return e===j.False?e:j.True}function Throw(e){throw new ExtendsResolverError(e)}function IsStructuralRight(e){return type_IsNever(e)||type_IsIntersect(e)||type_IsUnion(e)||type_IsUnknown(e)||type_IsAny(e)}function StructuralRight(e,t){return type_IsNever(t)?FromNeverRight(e,t):type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)?FromUnionRight(e,t):type_IsUnknown(t)?FromUnknownRight(e,t):type_IsAny(t)?FromAnyRight(e,t):Throw("StructuralRight")}function FromAnyRight(e,t){return j.True}function extends_check_FromAny(e,t){return type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)&&t.anyOf.some((e=>type_IsAny(e)||type_IsUnknown(e)))?j.True:type_IsUnion(t)?j.Union:type_IsUnknown(t)?j.True:type_IsAny(t)?j.True:j.Union}function FromArrayRight(e,t){return type_IsUnknown(e)?j.False:type_IsAny(e)?j.Union:type_IsNever(e)?j.True:j.False}function extends_check_FromArray(e,t){return type_IsObject(t)&&IsObjectArrayLike(t)?j.True:IsStructuralRight(t)?StructuralRight(e,t):!type_IsArray(t)?j.False:IntoBooleanResult(extends_check_Visit(e.items,t.items))}function extends_check_FromAsyncIterator(e,t){return IsStructuralRight(t)?StructuralRight(e,t):!type_IsAsyncIterator(t)?j.False:IntoBooleanResult(extends_check_Visit(e.items,t.items))}function extends_check_FromBigInt(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsBigInt(t)?j.True:j.False}function FromBooleanRight(e,t){return type_IsLiteralBoolean(e)?j.True:type_IsBoolean(e)?j.True:j.False}function extends_check_FromBoolean(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsBoolean(t)?j.True:j.False}function extends_check_FromConstructor(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):!type_IsConstructor(t)?j.False:e.parameters.length>t.parameters.length?j.False:!e.parameters.every(((e,r)=>IntoBooleanResult(extends_check_Visit(t.parameters[r],e))===j.True))?j.False:IntoBooleanResult(extends_check_Visit(e.returns,t.returns))}function extends_check_FromDate(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsDate(t)?j.True:j.False}function extends_check_FromFunction(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):!type_IsFunction(t)?j.False:e.parameters.length>t.parameters.length?j.False:!e.parameters.every(((e,r)=>IntoBooleanResult(extends_check_Visit(t.parameters[r],e))===j.True))?j.False:IntoBooleanResult(extends_check_Visit(e.returns,t.returns))}function FromIntegerRight(e,t){return type_IsLiteral(e)&&value_IsNumber(e.const)?j.True:type_IsNumber(e)||type_IsInteger(e)?j.True:j.False}function extends_check_FromInteger(e,t){return type_IsInteger(t)||type_IsNumber(t)?j.True:IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):j.False}function FromIntersectRight(e,t){return t.allOf.every((t=>extends_check_Visit(e,t)===j.True))?j.True:j.False}function extends_check_FromIntersect(e,t){return e.allOf.some((e=>extends_check_Visit(e,t)===j.True))?j.True:j.False}function extends_check_FromIterator(e,t){return IsStructuralRight(t)?StructuralRight(e,t):!type_IsIterator(t)?j.False:IntoBooleanResult(extends_check_Visit(e.items,t.items))}function extends_check_FromLiteral(e,t){return type_IsLiteral(t)&&t.const===e.const?j.True:IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsString(t)?FromStringRight(e,t):type_IsNumber(t)?FromNumberRight(e,t):type_IsInteger(t)?FromIntegerRight(e,t):type_IsBoolean(t)?FromBooleanRight(e,t):j.False}function FromNeverRight(e,t){return j.False}function extends_check_FromNever(e,t){return j.True}function UnwrapTNot(e){let[t,r]=[e,0];while(true){if(!type_IsNot(t))break;t=t.not;r+=1}return r%2===0?t:unknown_Unknown()}function extends_check_FromNot(e,t){return type_IsNot(e)?extends_check_Visit(UnwrapTNot(e),t):type_IsNot(t)?extends_check_Visit(e,UnwrapTNot(t)):Throw("Invalid fallthrough for Not")}function extends_check_FromNull(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsNull(t)?j.True:j.False}function FromNumberRight(e,t){return type_IsLiteralNumber(e)?j.True:type_IsNumber(e)||type_IsInteger(e)?j.True:j.False}function extends_check_FromNumber(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsInteger(t)||type_IsNumber(t)?j.True:j.False}function IsObjectPropertyCount(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function IsObjectStringLike(e){return IsObjectArrayLike(e)}function IsObjectSymbolLike(e){return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"description"in e.properties&&type_IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(type_IsString(e.properties.description.anyOf[0])&&type_IsUndefined(e.properties.description.anyOf[1])||type_IsString(e.properties.description.anyOf[1])&&type_IsUndefined(e.properties.description.anyOf[0]))}function IsObjectNumberLike(e){return IsObjectPropertyCount(e,0)}function IsObjectBooleanLike(e){return IsObjectPropertyCount(e,0)}function IsObjectBigIntLike(e){return IsObjectPropertyCount(e,0)}function IsObjectDateLike(e){return IsObjectPropertyCount(e,0)}function IsObjectUint8ArrayLike(e){return IsObjectArrayLike(e)}function IsObjectFunctionLike(e){const t=number_Number();return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"length"in e.properties&&IntoBooleanResult(extends_check_Visit(e.properties["length"],t))===j.True}function IsObjectConstructorLike(e){return IsObjectPropertyCount(e,0)}function IsObjectArrayLike(e){const t=number_Number();return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"length"in e.properties&&IntoBooleanResult(extends_check_Visit(e.properties["length"],t))===j.True}function IsObjectPromiseLike(e){const t=function_Function([any_Any()],any_Any());return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"then"in e.properties&&IntoBooleanResult(extends_check_Visit(e.properties["then"],t))===j.True}function Property(e,t){return extends_check_Visit(e,t)===j.False?j.False:type_IsOptional(e)&&!type_IsOptional(t)?j.False:j.True}function FromObjectRight(e,t){return type_IsUnknown(e)?j.False:type_IsAny(e)?j.Union:type_IsNever(e)||type_IsLiteralString(e)&&IsObjectStringLike(t)||type_IsLiteralNumber(e)&&IsObjectNumberLike(t)||type_IsLiteralBoolean(e)&&IsObjectBooleanLike(t)||type_IsSymbol(e)&&IsObjectSymbolLike(t)||type_IsBigInt(e)&&IsObjectBigIntLike(t)||type_IsString(e)&&IsObjectStringLike(t)||type_IsSymbol(e)&&IsObjectSymbolLike(t)||type_IsNumber(e)&&IsObjectNumberLike(t)||type_IsInteger(e)&&IsObjectNumberLike(t)||type_IsBoolean(e)&&IsObjectBooleanLike(t)||type_IsUint8Array(e)&&IsObjectUint8ArrayLike(t)||type_IsDate(e)&&IsObjectDateLike(t)||type_IsConstructor(e)&&IsObjectConstructorLike(t)||type_IsFunction(e)&&IsObjectFunctionLike(t)?j.True:type_IsRecord(e)&&type_IsString(RecordKey(e))?(()=>t[E]==="Record"?j.True:j.False)():type_IsRecord(e)&&type_IsNumber(RecordKey(e))?(()=>IsObjectPropertyCount(t,0)?j.True:j.False)():j.False}function extends_check_FromObject(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):!type_IsObject(t)?j.False:(()=>{for(const r of Object.getOwnPropertyNames(t.properties)){if(!(r in e.properties)&&!type_IsOptional(t.properties[r])){return j.False}if(type_IsOptional(t.properties[r])){return j.True}if(Property(e.properties[r],t.properties[r])===j.False){return j.False}}return j.True})()}function extends_check_FromPromise(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)&&IsObjectPromiseLike(t)?j.True:!type_IsPromise(t)?j.False:IntoBooleanResult(extends_check_Visit(e.item,t.item))}function RecordKey(e){return v in e.patternProperties?number_Number():w in e.patternProperties?string_String():Throw("Unknown record key pattern")}function RecordValue(e){return v in e.patternProperties?e.patternProperties[v]:w in e.patternProperties?e.patternProperties[w]:Throw("Unable to get record value schema")}function FromRecordRight(e,t){const[r,n]=[RecordKey(t),RecordValue(t)];return type_IsLiteralString(e)&&type_IsNumber(r)&&IntoBooleanResult(extends_check_Visit(e,n))===j.True?j.True:type_IsUint8Array(e)&&type_IsNumber(r)?extends_check_Visit(e,n):type_IsString(e)&&type_IsNumber(r)?extends_check_Visit(e,n):type_IsArray(e)&&type_IsNumber(r)?extends_check_Visit(e,n):type_IsObject(e)?(()=>{for(const t of Object.getOwnPropertyNames(e.properties)){if(Property(n,e.properties[t])===j.False){return j.False}}return j.True})():j.False}function extends_check_FromRecord(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):!type_IsRecord(t)?j.False:extends_check_Visit(RecordValue(e),RecordValue(t))}function extends_check_FromRegExp(e,t){const r=type_IsRegExp(e)?string_String():e;const n=type_IsRegExp(t)?string_String():t;return extends_check_Visit(r,n)}function FromStringRight(e,t){return type_IsLiteral(e)&&value_IsString(e.const)?j.True:type_IsString(e)?j.True:j.False}function extends_check_FromString(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsString(t)?j.True:j.False}function extends_check_FromSymbol(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsSymbol(t)?j.True:j.False}function extends_check_FromTemplateLiteral(e,t){return type_IsTemplateLiteral(e)?extends_check_Visit(TemplateLiteralToUnion(e),t):type_IsTemplateLiteral(t)?extends_check_Visit(e,TemplateLiteralToUnion(t)):Throw("Invalid fallthrough for TemplateLiteral")}function IsArrayOfTuple(e,t){return type_IsArray(t)&&e.items!==undefined&&e.items.every((e=>extends_check_Visit(e,t.items)===j.True))}function FromTupleRight(e,t){return type_IsNever(e)?j.True:type_IsUnknown(e)?j.False:type_IsAny(e)?j.Union:j.False}function extends_check_FromTuple(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)&&IsObjectArrayLike(t)?j.True:type_IsArray(t)&&IsArrayOfTuple(e,t)?j.True:!type_IsTuple(t)?j.False:value_IsUndefined(e.items)&&!value_IsUndefined(t.items)||!value_IsUndefined(e.items)&&value_IsUndefined(t.items)?j.False:value_IsUndefined(e.items)&&!value_IsUndefined(t.items)?j.True:e.items.every(((e,r)=>extends_check_Visit(e,t.items[r])===j.True))?j.True:j.False}function extends_check_FromUint8Array(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsUint8Array(t)?j.True:j.False}function extends_check_FromUndefined(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsVoid(t)?FromVoidRight(e,t):type_IsUndefined(t)?j.True:j.False}function FromUnionRight(e,t){return t.anyOf.some((t=>extends_check_Visit(e,t)===j.True))?j.True:j.False}function extends_check_FromUnion(e,t){return e.anyOf.every((e=>extends_check_Visit(e,t)===j.True))?j.True:j.False}function FromUnknownRight(e,t){return j.True}function extends_check_FromUnknown(e,t){return type_IsNever(t)?FromNeverRight(e,t):type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)?FromUnionRight(e,t):type_IsAny(t)?FromAnyRight(e,t):type_IsString(t)?FromStringRight(e,t):type_IsNumber(t)?FromNumberRight(e,t):type_IsInteger(t)?FromIntegerRight(e,t):type_IsBoolean(t)?FromBooleanRight(e,t):type_IsArray(t)?FromArrayRight(e,t):type_IsTuple(t)?FromTupleRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsUnknown(t)?j.True:j.False}function FromVoidRight(e,t){return type_IsUndefined(e)?j.True:type_IsUndefined(e)?j.True:j.False}function extends_check_FromVoid(e,t){return type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)?FromUnionRight(e,t):type_IsUnknown(t)?FromUnknownRight(e,t):type_IsAny(t)?FromAnyRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsVoid(t)?j.True:j.False}function extends_check_Visit(e,t){return type_IsTemplateLiteral(e)||type_IsTemplateLiteral(t)?extends_check_FromTemplateLiteral(e,t):type_IsRegExp(e)||type_IsRegExp(t)?extends_check_FromRegExp(e,t):type_IsNot(e)||type_IsNot(t)?extends_check_FromNot(e,t):type_IsAny(e)?extends_check_FromAny(e,t):type_IsArray(e)?extends_check_FromArray(e,t):type_IsBigInt(e)?extends_check_FromBigInt(e,t):type_IsBoolean(e)?extends_check_FromBoolean(e,t):type_IsAsyncIterator(e)?extends_check_FromAsyncIterator(e,t):type_IsConstructor(e)?extends_check_FromConstructor(e,t):type_IsDate(e)?extends_check_FromDate(e,t):type_IsFunction(e)?extends_check_FromFunction(e,t):type_IsInteger(e)?extends_check_FromInteger(e,t):type_IsIntersect(e)?extends_check_FromIntersect(e,t):type_IsIterator(e)?extends_check_FromIterator(e,t):type_IsLiteral(e)?extends_check_FromLiteral(e,t):type_IsNever(e)?extends_check_FromNever(e,t):type_IsNull(e)?extends_check_FromNull(e,t):type_IsNumber(e)?extends_check_FromNumber(e,t):type_IsObject(e)?extends_check_FromObject(e,t):type_IsRecord(e)?extends_check_FromRecord(e,t):type_IsString(e)?extends_check_FromString(e,t):type_IsSymbol(e)?extends_check_FromSymbol(e,t):type_IsTuple(e)?extends_check_FromTuple(e,t):type_IsPromise(e)?extends_check_FromPromise(e,t):type_IsUint8Array(e)?extends_check_FromUint8Array(e,t):type_IsUndefined(e)?extends_check_FromUndefined(e,t):type_IsUnion(e)?extends_check_FromUnion(e,t):type_IsUnknown(e)?extends_check_FromUnknown(e,t):type_IsVoid(e)?extends_check_FromVoid(e,t):Throw(`Unknown left type operand '${e[y]}'`)}function ExtendsCheck(e,t){return extends_check_Visit(e,t)}function extends_from_mapped_result_FromProperties(e,t,r,n,s){const o={};for(const i of globalThis.Object.getOwnPropertyNames(e))o[i]=extends_Extends(e[i],t,r,n,s);return o}function extends_from_mapped_result_FromMappedResult(e,t,r,n,s){return extends_from_mapped_result_FromProperties(e.properties,t,r,n,s)}function ExtendsFromMappedResult(e,t,r,n,s){const o=extends_from_mapped_result_FromMappedResult(e,t,r,n,s);return MappedResult(o)}function ExtendsResolve(e,t,r,n){const s=ExtendsCheck(e,t);return s===j.Union?union_Union([r,n]):s===j.True?r:n}function extends_Extends(e,t,r,n,s={}){return IsMappedResult(e)?ExtendsFromMappedResult(e,t,r,n,s):IsMappedKey(e)?CloneType(ExtendsFromMappedKey(e,t,r,n,s)):CloneType(ExtendsResolve(e,t,r,n),s)}function FromPropertyKey(e,t,r,n,s){return{[e]:extends_Extends(literal_Literal(e),t,r,n,s)}}function FromPropertyKeys(e,t,r,n,s){return e.reduce(((e,o)=>({...e,...FromPropertyKey(o,t,r,n,s)})),{})}function extends_from_mapped_key_FromMappedKey(e,t,r,n,s){return FromPropertyKeys(e.keys,t,r,n,s)}function ExtendsFromMappedKey(e,t,r,n,s){const o=extends_from_mapped_key_FromMappedKey(e,t,r,n,s);return MappedResult(o)}class ValueCheckUnknownTypeError extends TypeBoxError{constructor(e){super(`Unknown type`);this.schema=e}}function IsAnyOrUnknown(e){return e[y]==="Any"||e[y]==="Unknown"}function check_IsDefined(e){return e!==undefined}function check_FromAny(e,t,r){return true}function check_FromArray(e,t,r){if(!IsArray(r))return false;if(check_IsDefined(e.minItems)&&!(r.length>=e.minItems)){return false}if(check_IsDefined(e.maxItems)&&!(r.length<=e.maxItems)){return false}if(!r.every((r=>check_Visit(e.items,t,r)))){return false}if(e.uniqueItems===true&&!function(){const e=new Set;for(const t of r){const r=Hash(t);if(e.has(r)){return false}else{e.add(r)}}return true}()){return false}if(!(check_IsDefined(e.contains)||IsNumber(e.minContains)||IsNumber(e.maxContains))){return true}const n=check_IsDefined(e.contains)?e.contains:never_Never();const s=r.reduce(((e,r)=>check_Visit(n,t,r)?e+1:e),0);if(s===0){return false}if(IsNumber(e.minContains)&&se.maxContains){return false}return true}function check_FromAsyncIterator(e,t,r){return IsAsyncIterator(r)}function check_FromBigInt(e,t,r){if(!IsBigInt(r))return false;if(check_IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(check_IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(check_IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(check_IsDefined(e.multipleOf)&&!(r%e.multipleOf===BigInt(0))){return false}return true}function check_FromBoolean(e,t,r){return IsBoolean(r)}function check_FromConstructor(e,t,r){return check_Visit(e.returns,t,r.prototype)}function check_FromDate(e,t,r){if(!IsDate(r))return false;if(check_IsDefined(e.exclusiveMaximumTimestamp)&&!(r.getTime()e.exclusiveMinimumTimestamp)){return false}if(check_IsDefined(e.maximumTimestamp)&&!(r.getTime()<=e.maximumTimestamp)){return false}if(check_IsDefined(e.minimumTimestamp)&&!(r.getTime()>=e.minimumTimestamp)){return false}if(check_IsDefined(e.multipleOfTimestamp)&&!(r.getTime()%e.multipleOfTimestamp===0)){return false}return true}function check_FromFunction(e,t,r){return IsFunction(r)}function check_FromInteger(e,t,r){if(!IsInteger(r)){return false}if(check_IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(check_IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(check_IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(check_IsDefined(e.multipleOf)&&!(r%e.multipleOf===0)){return false}return true}function check_FromIntersect(e,t,r){const n=e.allOf.every((e=>check_Visit(e,t,r)));if(e.unevaluatedProperties===false){const t=new RegExp(KeyOfPattern(e));const s=Object.getOwnPropertyNames(r).every((e=>t.test(e)));return n&&s}else if(type_IsSchema(e.unevaluatedProperties)){const s=new RegExp(KeyOfPattern(e));const o=Object.getOwnPropertyNames(r).every((n=>s.test(n)||check_Visit(e.unevaluatedProperties,t,r[n])));return n&&o}else{return n}}function check_FromIterator(e,t,r){return IsIterator(r)}function check_FromLiteral(e,t,r){return r===e.const}function check_FromNever(e,t,r){return false}function check_FromNot(e,t,r){return!check_Visit(e.not,t,r)}function check_FromNull(e,t,r){return IsNull(r)}function check_FromNumber(e,t,r){if(!l.IsNumberLike(r))return false;if(check_IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(check_IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(check_IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(check_IsDefined(e.multipleOf)&&!(r%e.multipleOf===0)){return false}return true}function check_FromObject(e,t,r){if(!l.IsObjectLike(r))return false;if(check_IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(r).length>=e.minProperties)){return false}if(check_IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(r).length<=e.maxProperties)){return false}const n=Object.getOwnPropertyNames(e.properties);for(const s of n){const n=e.properties[s];if(e.required&&e.required.includes(s)){if(!check_Visit(n,t,r[s])){return false}if((ExtendsUndefinedCheck(n)||IsAnyOrUnknown(n))&&!(s in r)){return false}}else{if(l.IsExactOptionalProperty(r,s)&&!check_Visit(n,t,r[s])){return false}}}if(e.additionalProperties===false){const t=Object.getOwnPropertyNames(r);if(e.required&&e.required.length===n.length&&t.length===n.length){return true}else{return t.every((e=>n.includes(e)))}}else if(typeof e.additionalProperties==="object"){const s=Object.getOwnPropertyNames(r);return s.every((s=>n.includes(s)||check_Visit(e.additionalProperties,t,r[s])))}else{return true}}function check_FromPromise(e,t,r){return IsPromise(r)}function check_FromRecord(e,t,r){if(!l.IsRecordLike(r)){return false}if(check_IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(r).length>=e.minProperties)){return false}if(check_IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(r).length<=e.maxProperties)){return false}const[n,s]=Object.entries(e.patternProperties)[0];const o=new RegExp(n);const i=Object.entries(r).every((([e,r])=>o.test(e)?check_Visit(s,t,r):true));const a=typeof e.additionalProperties==="object"?Object.entries(r).every((([r,n])=>!o.test(r)?check_Visit(e.additionalProperties,t,n):true)):true;const c=e.additionalProperties===false?Object.getOwnPropertyNames(r).every((e=>o.test(e))):true;return i&&a&&c}function check_FromRef(e,t,r){return check_Visit(deref_Deref(e,t),t,r)}function check_FromRegExp(e,t,r){const n=new RegExp(e.source,e.flags);if(check_IsDefined(e.minLength)){if(!(r.length>=e.minLength))return false}if(check_IsDefined(e.maxLength)){if(!(r.length<=e.maxLength))return false}return n.test(r)}function check_FromString(e,t,r){if(!IsString(r)){return false}if(check_IsDefined(e.minLength)){if(!(r.length>=e.minLength))return false}if(check_IsDefined(e.maxLength)){if(!(r.length<=e.maxLength))return false}if(check_IsDefined(e.pattern)){const t=new RegExp(e.pattern);if(!t.test(r))return false}if(check_IsDefined(e.format)){if(!Has(e.format))return false;const t=Get(e.format);return t(r)}return true}function check_FromSymbol(e,t,r){return IsSymbol(r)}function check_FromTemplateLiteral(e,t,r){return IsString(r)&&new RegExp(e.pattern).test(r)}function check_FromThis(e,t,r){return check_Visit(deref_Deref(e,t),t,r)}function check_FromTuple(e,t,r){if(!IsArray(r)){return false}if(e.items===undefined&&!(r.length===0)){return false}if(!(r.length===e.maxItems)){return false}if(!e.items){return true}for(let n=0;ncheck_Visit(e,t,r)))}function check_FromUint8Array(e,t,r){if(!IsUint8Array(r)){return false}if(check_IsDefined(e.maxByteLength)&&!(r.length<=e.maxByteLength)){return false}if(check_IsDefined(e.minByteLength)&&!(r.length>=e.minByteLength)){return false}return true}function check_FromUnknown(e,t,r){return true}function check_FromVoid(e,t,r){return l.IsVoidLike(r)}function check_FromKind(e,t,r){if(!type_Has(e[y]))return false;const n=type_Get(e[y]);return n(e,r)}function check_Visit(e,t,r){const n=check_IsDefined(e.$id)?[...t,e]:t;const s=e;switch(s[y]){case"Any":return check_FromAny(s,n,r);case"Array":return check_FromArray(s,n,r);case"AsyncIterator":return check_FromAsyncIterator(s,n,r);case"BigInt":return check_FromBigInt(s,n,r);case"Boolean":return check_FromBoolean(s,n,r);case"Constructor":return check_FromConstructor(s,n,r);case"Date":return check_FromDate(s,n,r);case"Function":return check_FromFunction(s,n,r);case"Integer":return check_FromInteger(s,n,r);case"Intersect":return check_FromIntersect(s,n,r);case"Iterator":return check_FromIterator(s,n,r);case"Literal":return check_FromLiteral(s,n,r);case"Never":return check_FromNever(s,n,r);case"Not":return check_FromNot(s,n,r);case"Null":return check_FromNull(s,n,r);case"Number":return check_FromNumber(s,n,r);case"Object":return check_FromObject(s,n,r);case"Promise":return check_FromPromise(s,n,r);case"Record":return check_FromRecord(s,n,r);case"Ref":return check_FromRef(s,n,r);case"RegExp":return check_FromRegExp(s,n,r);case"String":return check_FromString(s,n,r);case"Symbol":return check_FromSymbol(s,n,r);case"TemplateLiteral":return check_FromTemplateLiteral(s,n,r);case"This":return check_FromThis(s,n,r);case"Tuple":return check_FromTuple(s,n,r);case"Undefined":return check_FromUndefined(s,n,r);case"Union":return check_FromUnion(s,n,r);case"Uint8Array":return check_FromUint8Array(s,n,r);case"Unknown":return check_FromUnknown(s,n,r);case"Void":return check_FromVoid(s,n,r);default:if(!type_Has(s[y]))throw new ValueCheckUnknownTypeError(s);return check_FromKind(s,n,r)}}function Check(...e){return e.length===3?check_Visit(e[0],e[1],e[2]):check_Visit(e[0],[],e[1])}function clone_ObjectType(e){const t={};for(const r of Object.getOwnPropertyNames(e)){t[r]=clone_Clone(e[r])}for(const r of Object.getOwnPropertySymbols(e)){t[r]=clone_Clone(e[r])}return t}function clone_ArrayType(e){return e.map((e=>clone_Clone(e)))}function TypedArrayType(e){return e.slice()}function clone_DateType(e){return new Date(e.toISOString())}function ValueType(e){return e}function clone_Clone(e){if(IsArray(e))return clone_ArrayType(e);if(IsDate(e))return clone_DateType(e);if(IsStandardObject(e))return clone_ObjectType(e);if(IsTypedArray(e))return TypedArrayType(e);if(IsValueType(e))return ValueType(e);throw new Error("ValueClone: Unable to clone value")}class ValueCreateError extends TypeBoxError{constructor(e,t){super(t);this.schema=e}}function FromDefault(e){return typeof e==="function"?e:clone_Clone(e)}function create_FromAny(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return{}}}function create_FromArray(e,t){if(e.uniqueItems===true&&!HasPropertyKey(e,"default")){throw new ValueCreateError(e,"Array with the uniqueItems constraint requires a default value")}else if("contains"in e&&!HasPropertyKey(e,"default")){throw new ValueCreateError(e,"Array with the contains constraint requires a default value")}else if("default"in e){return FromDefault(e.default)}else if(e.minItems!==undefined){return Array.from({length:e.minItems}).map((r=>create_Visit(e.items,t)))}else{return[]}}function create_FromAsyncIterator(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return async function*(){}()}}function create_FromBigInt(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return BigInt(0)}}function create_FromBoolean(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return false}}function create_FromConstructor(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{const r=create_Visit(e.returns,t);if(typeof r==="object"&&!Array.isArray(r)){return class{constructor(){for(const[e,t]of Object.entries(r)){const r=this;r[e]=t}}}}else{return class{}}}}function create_FromDate(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if(e.minimumTimestamp!==undefined){return new Date(e.minimumTimestamp)}else{return new Date}}function create_FromFunction(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return()=>create_Visit(e.returns,t)}}function create_FromInteger(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if(e.minimum!==undefined){return e.minimum}else{return 0}}function create_FromIntersect(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{const r=e.allOf.reduce(((e,r)=>{const n=create_Visit(r,t);return typeof n==="object"?{...e,...n}:n}),{});if(!Check(e,t,r))throw new ValueCreateError(e,"Intersect produced invalid value. Consider using a default value.");return r}}function create_FromIterator(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return function*(){}()}}function create_FromLiteral(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return e.const}}function create_FromNever(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{throw new ValueCreateError(e,"Never types cannot be created. Consider using a default value.")}}function create_FromNot(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{throw new ValueCreateError(e,"Not types must have a default value")}}function create_FromNull(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return null}}function create_FromNumber(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if(e.minimum!==undefined){return e.minimum}else{return 0}}function create_FromObject(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{const r=new Set(e.required);const n={};for(const[s,o]of Object.entries(e.properties)){if(!r.has(s))continue;n[s]=create_Visit(o,t)}return n}}function create_FromPromise(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return Promise.resolve(create_Visit(e.item,t))}}function create_FromRecord(e,t){const[r,n]=Object.entries(e.patternProperties)[0];if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if(!(r===w||r===v)){const e=r.slice(1,r.length-1).split("|");const s={};for(const r of e)s[r]=create_Visit(n,t);return s}else{return{}}}function create_FromRef(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return create_Visit(deref_Deref(e,t),t)}}function create_FromRegExp(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{throw new ValueCreateError(e,"RegExp types cannot be created. Consider using a default value.")}}function create_FromString(e,t){if(e.pattern!==undefined){if(!HasPropertyKey(e,"default")){throw new ValueCreateError(e,"String types with patterns must specify a default value")}else{return FromDefault(e.default)}}else if(e.format!==undefined){if(!HasPropertyKey(e,"default")){throw new ValueCreateError(e,"String types with formats must specify a default value")}else{return FromDefault(e.default)}}else{if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if(e.minLength!==undefined){return Array.from({length:e.minLength}).map((()=>" ")).join("")}else{return""}}}function create_FromSymbol(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if("value"in e){return Symbol.for(e.value)}else{return Symbol()}}function create_FromTemplateLiteral(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}if(!IsTemplateLiteralFinite(e))throw new ValueCreateError(e,"Can only create template literals that produce a finite variants. Consider using a default value.");const r=TemplateLiteralGenerate(e);return r[0]}function create_FromThis(e,t){if(H++>V)throw new ValueCreateError(e,"Cannot create recursive type as it appears possibly infinite. Consider using a default.");if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return create_Visit(deref_Deref(e,t),t)}}function create_FromTuple(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}if(e.items===undefined){return[]}else{return Array.from({length:e.minItems}).map(((r,n)=>create_Visit(e.items[n],t)))}}function create_FromUndefined(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return undefined}}function create_FromUnion(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if(e.anyOf.length===0){throw new Error("ValueCreate.Union: Cannot create Union with zero variants")}else{return create_Visit(e.anyOf[0],t)}}function create_FromUint8Array(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else if(e.minByteLength!==undefined){return new Uint8Array(e.minByteLength)}else{return new Uint8Array(0)}}function create_FromUnknown(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return{}}}function create_FromVoid(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{return void 0}}function create_FromKind(e,t){if(HasPropertyKey(e,"default")){return FromDefault(e.default)}else{throw new Error("User defined types must specify a default value")}}function create_Visit(e,t){const r=IsString(e.$id)?[...t,e]:t;const n=e;switch(n[y]){case"Any":return create_FromAny(n,r);case"Array":return create_FromArray(n,r);case"AsyncIterator":return create_FromAsyncIterator(n,r);case"BigInt":return create_FromBigInt(n,r);case"Boolean":return create_FromBoolean(n,r);case"Constructor":return create_FromConstructor(n,r);case"Date":return create_FromDate(n,r);case"Function":return create_FromFunction(n,r);case"Integer":return create_FromInteger(n,r);case"Intersect":return create_FromIntersect(n,r);case"Iterator":return create_FromIterator(n,r);case"Literal":return create_FromLiteral(n,r);case"Never":return create_FromNever(n,r);case"Not":return create_FromNot(n,r);case"Null":return create_FromNull(n,r);case"Number":return create_FromNumber(n,r);case"Object":return create_FromObject(n,r);case"Promise":return create_FromPromise(n,r);case"Record":return create_FromRecord(n,r);case"Ref":return create_FromRef(n,r);case"RegExp":return create_FromRegExp(n,r);case"String":return create_FromString(n,r);case"Symbol":return create_FromSymbol(n,r);case"TemplateLiteral":return create_FromTemplateLiteral(n,r);case"This":return create_FromThis(n,r);case"Tuple":return create_FromTuple(n,r);case"Undefined":return create_FromUndefined(n,r);case"Union":return create_FromUnion(n,r);case"Uint8Array":return create_FromUint8Array(n,r);case"Unknown":return create_FromUnknown(n,r);case"Void":return create_FromVoid(n,r);default:if(!type_Has(n[y]))throw new ValueCreateError(n,"Unknown type");return create_FromKind(n,r)}}const V=512;let H=0;function create_Create(...e){H=0;return e.length===2?create_Visit(e[0],e[1]):create_Visit(e[0],[])}class ValueCastError extends TypeBoxError{constructor(e,t){super(t);this.schema=e}}function ScoreUnion(e,t,r){if(e[y]==="Object"&&typeof r==="object"&&!IsNull(r)){const n=e;const s=Object.getOwnPropertyNames(r);const o=Object.entries(n.properties);const[i,a]=[1/o.length,o.length];return o.reduce(((e,[n,o])=>{const c=o[y]==="Literal"&&o.const===r[n]?a:0;const u=Check(o,t,r[n])?i:0;const A=s.includes(n)?i:0;return e+(c+u+A)}),0)}else{return Check(e,t,r)?1:0}}function SelectUnion(e,t,r){const n=e.anyOf.map((e=>deref_Deref(e,t)));let[s,o]=[n[0],0];for(const e of n){const n=ScoreUnion(e,t,r);if(n>o){s=e;o=n}}return s}function CastUnion(e,t,r){if("default"in e){return typeof r==="function"?e.default:clone_Clone(e.default)}else{const n=SelectUnion(e,t,r);return Cast(n,t,r)}}function DefaultClone(e,t,r){return Check(e,t,r)?clone_Clone(r):create_Create(e,t)}function Default(e,t,r){return Check(e,t,r)?r:create_Create(e,t)}function cast_FromArray(e,t,r){if(Check(e,t,r))return clone_Clone(r);const n=IsArray(r)?clone_Clone(r):create_Create(e,t);const s=IsNumber(e.minItems)&&n.lengthnull))]:n;const o=IsNumber(e.maxItems)&&s.length>e.maxItems?s.slice(0,e.maxItems):s;const i=o.map((r=>cast_Visit(e.items,t,r)));if(e.uniqueItems!==true)return i;const a=[...new Set(i)];if(!Check(e,t,a))throw new ValueCastError(e,"Array cast produced invalid data due to uniqueItems constraint");return a}function cast_FromConstructor(e,t,r){if(Check(e,t,r))return create_Create(e,t);const n=new Set(e.returns.required||[]);const result=function(){};for(const[s,o]of Object.entries(e.returns.properties)){if(!n.has(s)&&r.prototype[s]===undefined)continue;result.prototype[s]=cast_Visit(o,t,r.prototype[s])}return result}function cast_FromIntersect(e,t,r){const n=create_Create(e,t);const s=IsStandardObject(n)&&IsStandardObject(r)?{...n,...r}:r;return Check(e,t,s)?s:create_Create(e,t)}function cast_FromNever(e,t,r){throw new ValueCastError(e,"Never types cannot be cast")}function cast_FromObject(e,t,r){if(Check(e,t,r))return r;if(r===null||typeof r!=="object")return create_Create(e,t);const n=new Set(e.required||[]);const s={};for(const[o,i]of Object.entries(e.properties)){if(!n.has(o)&&r[o]===undefined)continue;s[o]=cast_Visit(i,t,r[o])}if(typeof e.additionalProperties==="object"){const n=Object.getOwnPropertyNames(e.properties);for(const o of Object.getOwnPropertyNames(r)){if(n.includes(o))continue;s[o]=cast_Visit(e.additionalProperties,t,r[o])}}return s}function cast_FromRecord(e,t,r){if(Check(e,t,r))return clone_Clone(r);if(r===null||typeof r!=="object"||Array.isArray(r)||r instanceof Date)return create_Create(e,t);const n=Object.getOwnPropertyNames(e.patternProperties)[0];const s=e.patternProperties[n];const o={};for(const[e,n]of Object.entries(r)){o[e]=cast_Visit(s,t,n)}return o}function cast_FromRef(e,t,r){return cast_Visit(deref_Deref(e,t),t,r)}function cast_FromThis(e,t,r){return cast_Visit(deref_Deref(e,t),t,r)}function cast_FromTuple(e,t,r){if(Check(e,t,r))return clone_Clone(r);if(!IsArray(r))return create_Create(e,t);if(e.items===undefined)return[];return e.items.map(((e,n)=>cast_Visit(e,t,r[n])))}function cast_FromUnion(e,t,r){return Check(e,t,r)?clone_Clone(r):CastUnion(e,t,r)}function cast_Visit(e,t,r){const n=IsString(e.$id)?[...t,e]:t;const s=e;switch(e[y]){case"Array":return cast_FromArray(s,n,r);case"Constructor":return cast_FromConstructor(s,n,r);case"Intersect":return cast_FromIntersect(s,n,r);case"Never":return cast_FromNever(s,n,r);case"Object":return cast_FromObject(s,n,r);case"Record":return cast_FromRecord(s,n,r);case"Ref":return cast_FromRef(s,n,r);case"This":return cast_FromThis(s,n,r);case"Tuple":return cast_FromTuple(s,n,r);case"Union":return cast_FromUnion(s,n,r);case"Date":case"Symbol":case"Uint8Array":return DefaultClone(e,t,r);default:return Default(s,n,r)}}function Cast(...e){return e.length===3?cast_Visit(e[0],e[1],e[2]):cast_Visit(e[0],[],e[1])}function IsCheckable(e){return type_IsSchema(e)&&e[y]!=="Unsafe"}function clean_FromArray(e,t,r){if(!IsArray(r))return r;return r.map((r=>clean_Visit(e.items,t,r)))}function clean_FromIntersect(e,t,r){const n=e.unevaluatedProperties;const s=e.allOf.map((e=>clean_Visit(e,t,clone_Clone(r))));const o=s.reduce(((e,t)=>IsObject(t)?{...e,...t}:t),{});if(!IsObject(r)||!IsObject(o)||!type_IsSchema(n))return o;const i=KeyOfPropertyKeys(e);for(const e of Object.getOwnPropertyNames(r)){if(i.includes(e))continue;if(Check(n,t,r[e])){o[e]=clean_Visit(n,t,r[e])}}return o}function clean_FromObject(e,t,r){if(!IsObject(r)||IsArray(r))return r;const n=e.additionalProperties;for(const s of Object.getOwnPropertyNames(r)){if(s in e.properties){r[s]=clean_Visit(e.properties[s],t,r[s]);continue}if(type_IsSchema(n)&&Check(n,t,r[s])){r[s]=clean_Visit(n,t,r[s]);continue}delete r[s]}return r}function clean_FromRecord(e,t,r){if(!IsObject(r))return r;const n=e.additionalProperties;const s=Object.getOwnPropertyNames(r);const[o,i]=Object.entries(e.patternProperties)[0];const a=new RegExp(o);for(const e of s){if(a.test(e)){r[e]=clean_Visit(i,t,r[e]);continue}if(type_IsSchema(n)&&Check(n,t,r[e])){r[e]=clean_Visit(n,t,r[e]);continue}delete r[e]}return r}function clean_FromRef(e,t,r){return clean_Visit(deref_Deref(e,t),t,r)}function clean_FromThis(e,t,r){return clean_Visit(deref_Deref(e,t),t,r)}function clean_FromTuple(e,t,r){if(!IsArray(r))return r;if(IsUndefined(e.items))return[];const n=Math.min(r.length,e.items.length);for(let s=0;sn?r.slice(0,n):r}function clean_FromUnion(e,t,r){for(const n of e.anyOf){if(IsCheckable(n)&&Check(n,t,r)){return clean_Visit(n,t,r)}}return r}function clean_Visit(e,t,r){const n=IsString(e.$id)?[...t,e]:t;const s=e;switch(s[y]){case"Array":return clean_FromArray(s,n,r);case"Intersect":return clean_FromIntersect(s,n,r);case"Object":return clean_FromObject(s,n,r);case"Record":return clean_FromRecord(s,n,r);case"Ref":return clean_FromRef(s,n,r);case"This":return clean_FromThis(s,n,r);case"Tuple":return clean_FromTuple(s,n,r);case"Union":return clean_FromUnion(s,n,r);default:return r}}function Clean(...e){return e.length===3?clean_Visit(e[0],e[1],e[2]):clean_Visit(e[0],[],e[1])}function IsStringNumeric(e){return IsString(e)&&!isNaN(e)&&!isNaN(parseFloat(e))}function IsValueToString(e){return IsBigInt(e)||IsBoolean(e)||IsNumber(e)}function IsValueTrue(e){return e===true||IsNumber(e)&&e===1||IsBigInt(e)&&e===BigInt("1")||IsString(e)&&(e.toLowerCase()==="true"||e==="1")}function IsValueFalse(e){return e===false||IsNumber(e)&&(e===0||Object.is(e,-0))||IsBigInt(e)&&e===BigInt("0")||IsString(e)&&(e.toLowerCase()==="false"||e==="0"||e==="-0")}function IsTimeStringWithTimeZone(e){return IsString(e)&&/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(e)}function IsTimeStringWithoutTimeZone(e){return IsString(e)&&/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(e)}function IsDateTimeStringWithTimeZone(e){return IsString(e)&&/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i.test(e)}function IsDateTimeStringWithoutTimeZone(e){return IsString(e)&&/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)?$/i.test(e)}function IsDateString(e){return IsString(e)&&/^\d\d\d\d-[0-1]\d-[0-3]\d$/i.test(e)}function TryConvertLiteralString(e,t){const r=TryConvertString(e);return r===t?r:e}function TryConvertLiteralNumber(e,t){const r=TryConvertNumber(e);return r===t?r:e}function TryConvertLiteralBoolean(e,t){const r=TryConvertBoolean(e);return r===t?r:e}function TryConvertLiteral(e,t){return IsString(e.const)?TryConvertLiteralString(t,e.const):IsNumber(e.const)?TryConvertLiteralNumber(t,e.const):IsBoolean(e.const)?TryConvertLiteralBoolean(t,e.const):clone_Clone(t)}function TryConvertBoolean(e){return IsValueTrue(e)?true:IsValueFalse(e)?false:e}function TryConvertBigInt(e){return IsStringNumeric(e)?BigInt(parseInt(e)):IsNumber(e)?BigInt(e|0):IsValueFalse(e)?BigInt(0):IsValueTrue(e)?BigInt(1):e}function TryConvertString(e){return IsValueToString(e)?e.toString():IsSymbol(e)&&e.description!==undefined?e.description.toString():e}function TryConvertNumber(e){return IsStringNumeric(e)?parseFloat(e):IsValueTrue(e)?1:IsValueFalse(e)?0:e}function TryConvertInteger(e){return IsStringNumeric(e)?parseInt(e):IsNumber(e)?e|0:IsValueTrue(e)?1:IsValueFalse(e)?0:e}function TryConvertNull(e){return IsString(e)&&e.toLowerCase()==="null"?null:e}function TryConvertUndefined(e){return IsString(e)&&e==="undefined"?undefined:e}function TryConvertDate(e){return IsDate(e)?e:IsNumber(e)?new Date(e):IsValueTrue(e)?new Date(1):IsValueFalse(e)?new Date(0):IsStringNumeric(e)?new Date(parseInt(e)):IsTimeStringWithoutTimeZone(e)?new Date(`1970-01-01T${e}.000Z`):IsTimeStringWithTimeZone(e)?new Date(`1970-01-01T${e}`):IsDateTimeStringWithoutTimeZone(e)?new Date(`${e}.000Z`):IsDateTimeStringWithTimeZone(e)?new Date(e):IsDateString(e)?new Date(`${e}T00:00:00.000Z`):e}function convert_Default(e){return e}function convert_FromArray(e,t,r){const n=IsArray(r)?r:[r];return n.map((r=>convert_Visit(e.items,t,r)))}function convert_FromBigInt(e,t,r){return TryConvertBigInt(r)}function convert_FromBoolean(e,t,r){return TryConvertBoolean(r)}function convert_FromDate(e,t,r){return TryConvertDate(r)}function convert_FromInteger(e,t,r){return TryConvertInteger(r)}function convert_FromIntersect(e,t,r){return e.allOf.reduce(((e,r)=>convert_Visit(r,t,e)),r)}function convert_FromLiteral(e,t,r){return TryConvertLiteral(e,r)}function convert_FromNull(e,t,r){return TryConvertNull(r)}function convert_FromNumber(e,t,r){return TryConvertNumber(r)}function convert_FromObject(e,t,r){const n=IsObject(r);if(!n)return r;const s={};for(const n of Object.keys(r)){s[n]=HasPropertyKey(e.properties,n)?convert_Visit(e.properties[n],t,r[n]):r[n]}return s}function convert_FromRecord(e,t,r){const n=IsObject(r);if(!n)return r;const s=Object.getOwnPropertyNames(e.patternProperties)[0];const o=e.patternProperties[s];const i={};for(const[e,n]of Object.entries(r)){i[e]=convert_Visit(o,t,n)}return i}function convert_FromRef(e,t,r){return convert_Visit(deref_Deref(e,t),t,r)}function convert_FromString(e,t,r){return TryConvertString(r)}function convert_FromSymbol(e,t,r){return IsString(r)||IsNumber(r)?Symbol(r):r}function convert_FromThis(e,t,r){return convert_Visit(deref_Deref(e,t),t,r)}function convert_FromTuple(e,t,r){const n=IsArray(r)&&!IsUndefined(e.items);if(!n)return r;return r.map(((r,n)=>n{const s=default_Visit(r,t,n);return IsObject(s)?{...e,...s}:s}),{})}function default_FromObject(e,t,r){const n=ValueOrDefault(e,r);if(!IsObject(n))return n;const s=e.additionalProperties;const o=Object.getOwnPropertyNames(e.properties);for(const r of o){if(!IsDefaultSchema(e.properties[r]))continue;n[r]=default_Visit(e.properties[r],t,n[r])}if(!IsDefaultSchema(s))return n;for(const e of Object.getOwnPropertyNames(n)){if(o.includes(e))continue;n[e]=default_Visit(s,t,n[e])}return n}function default_FromRecord(e,t,r){const n=ValueOrDefault(e,r);if(!IsObject(n))return n;const s=e.additionalProperties;const[o,i]=Object.entries(e.patternProperties)[0];const a=new RegExp(o);for(const e of Object.getOwnPropertyNames(n)){if(!(a.test(e)&&IsDefaultSchema(i)))continue;n[e]=default_Visit(i,t,n[e])}if(!IsDefaultSchema(s))return n;for(const e of Object.getOwnPropertyNames(n)){if(a.test(e))continue;n[e]=default_Visit(s,t,n[e])}return n}function default_FromRef(e,t,r){return default_Visit(deref_Deref(e,t),t,ValueOrDefault(e,r))}function default_FromThis(e,t,r){return default_Visit(deref_Deref(e,t),t,r)}function default_FromTuple(e,t,r){const n=ValueOrDefault(e,r);if(!IsArray(n)||IsUndefined(e.items))return n;const[s,o]=[e.items,Math.max(e.items.length,n.length)];for(let e=0;e=0;n--){if(n0&&e[0].path===""&&e[0].type==="update"}function IsIdentity(e){return e.length===0}function Patch(e,t){if(IsRootUpdate(t)){return clone_Clone(t[0].value)}if(IsIdentity(t)){return clone_Clone(e)}const r=clone_Clone(e);for(const e of t){switch(e.type){case"insert":{pointer_Set(r,e.path,e.value);break}case"update":{pointer_Set(r,e.path,e.value);break}case"delete":{pointer_Delete(r,e.path);break}}}return r}class ValueMutateError extends TypeBoxError{constructor(e){super(e)}}function mutate_ObjectType(e,t,r,n){if(!IsStandardObject(r)){pointer_Set(e,t,clone_Clone(n))}else{const s=Object.getOwnPropertyNames(r);const o=Object.getOwnPropertyNames(n);for(const e of s){if(!o.includes(e)){delete r[e]}}for(const e of o){if(!s.includes(e)){r[e]=null}}for(const s of o){mutate_Visit(e,`${t}/${s}`,r[s],n[s])}}}function mutate_ArrayType(e,t,r,n){if(!IsArray(r)){pointer_Set(e,t,clone_Clone(n))}else{for(let s=0;sdecode_Visit(e.items,t,`${r}/${s}`,n)))):decode_Default(e,r,n)}function decode_FromIntersect(e,t,r,n){if(!IsStandardObject(n)||IsValueType(n))return decode_Default(e,r,n);const s=KeyOfPropertyEntries(e);const o=s.map((e=>e[0]));const i={...n};for(const[e,n]of s)if(e in i){i[e]=decode_Visit(n,t,`${r}/${e}`,i[e])}if(!type_IsTransform(e.unevaluatedProperties)){return decode_Default(e,r,i)}const a=Object.getOwnPropertyNames(i);const c=e.unevaluatedProperties;const u={...i};for(const e of a)if(!o.includes(e)){u[e]=decode_Default(c,`${r}/${e}`,u[e])}return decode_Default(e,r,u)}function decode_FromNot(e,t,r,n){return decode_Default(e,r,decode_Visit(e.not,t,r,n))}function decode_FromObject(e,t,r,n){if(!IsStandardObject(n))return decode_Default(e,r,n);const s=KeyOfPropertyKeys(e);const o={...n};for(const n of s)if(n in o){o[n]=decode_Visit(e.properties[n],t,`${r}/${n}`,o[n])}if(!type_IsSchema(e.additionalProperties)){return decode_Default(e,r,o)}const i=Object.getOwnPropertyNames(o);const a=e.additionalProperties;const c={...o};for(const e of i)if(!s.includes(e)){c[e]=decode_Default(a,`${r}/${e}`,c[e])}return decode_Default(e,r,c)}function decode_FromRecord(e,t,r,n){if(!IsStandardObject(n))return decode_Default(e,r,n);const s=Object.getOwnPropertyNames(e.patternProperties)[0];const o=new RegExp(s);const i={...n};for(const a of Object.getOwnPropertyNames(n))if(o.test(a)){i[a]=decode_Visit(e.patternProperties[s],t,`${r}/${a}`,i[a])}if(!type_IsSchema(e.additionalProperties)){return decode_Default(e,r,i)}const a=Object.getOwnPropertyNames(i);const c=e.additionalProperties;const u={...i};for(const e of a)if(!o.test(e)){u[e]=decode_Default(c,`${r}/${e}`,u[e])}return decode_Default(e,r,u)}function decode_FromRef(e,t,r,n){const s=deref_Deref(e,t);return decode_Default(e,r,decode_Visit(s,t,r,n))}function decode_FromThis(e,t,r,n){const s=deref_Deref(e,t);return decode_Default(e,r,decode_Visit(s,t,r,n))}function decode_FromTuple(e,t,r,n){return IsArray(n)&&IsArray(e.items)?decode_Default(e,r,e.items.map(((e,s)=>decode_Visit(e,t,`${r}/${s}`,n[s])))):decode_Default(e,r,n)}function decode_FromUnion(e,t,r,n){for(const s of e.anyOf){if(!Check(s,t,n))continue;const o=decode_Visit(s,t,r,n);return decode_Default(e,r,o)}return decode_Default(e,r,n)}function decode_Visit(e,t,r,n){const s=typeof e.$id==="string"?[...t,e]:t;const o=e;switch(e[y]){case"Array":return decode_FromArray(o,s,r,n);case"Intersect":return decode_FromIntersect(o,s,r,n);case"Not":return decode_FromNot(o,s,r,n);case"Object":return decode_FromObject(o,s,r,n);case"Record":return decode_FromRecord(o,s,r,n);case"Ref":return decode_FromRef(o,s,r,n);case"Symbol":return decode_Default(o,r,n);case"This":return decode_FromThis(o,s,r,n);case"Tuple":return decode_FromTuple(o,s,r,n);case"Union":return decode_FromUnion(o,s,r,n);default:return decode_Default(o,r,n)}}function TransformDecode(e,t,r){return decode_Visit(e,t,"",r)}class TransformEncodeCheckError extends TypeBoxError{constructor(e,t,r){super(`The encoded value does not match the expected schema`);this.schema=e;this.value=t;this.error=r}}class TransformEncodeError extends TypeBoxError{constructor(e,t,r,n){super(`${n instanceof Error?n.message:"Unknown error"}`);this.schema=e;this.path=t;this.value=r;this.error=n}}function encode_Default(e,t,r){try{return type_IsTransform(e)?e[g].Encode(r):r}catch(n){throw new TransformEncodeError(e,t,r,n)}}function encode_FromArray(e,t,r,n){const s=encode_Default(e,r,n);return IsArray(s)?s.map(((n,s)=>encode_Visit(e.items,t,`${r}/${s}`,n))):s}function encode_FromIntersect(e,t,r,n){const s=encode_Default(e,r,n);if(!IsStandardObject(n)||IsValueType(n))return s;const o=KeyOfPropertyEntries(e);const i=o.map((e=>e[0]));const a={...s};for(const[e,n]of o)if(e in a){a[e]=encode_Visit(n,t,`${r}/${e}`,a[e])}if(!type_IsTransform(e.unevaluatedProperties)){return encode_Default(e,r,a)}const c=Object.getOwnPropertyNames(a);const u=e.unevaluatedProperties;const A={...a};for(const e of c)if(!i.includes(e)){A[e]=encode_Default(u,`${r}/${e}`,A[e])}return A}function encode_FromNot(e,t,r,n){return encode_Default(e.not,r,encode_Default(e,r,n))}function encode_FromObject(e,t,r,n){const s=encode_Default(e,r,n);if(!IsStandardObject(s))return s;const o=KeyOfPropertyKeys(e);const i={...s};for(const n of o)if(n in i){i[n]=encode_Visit(e.properties[n],t,`${r}/${n}`,i[n])}if(!type_IsSchema(e.additionalProperties)){return i}const a=Object.getOwnPropertyNames(i);const c=e.additionalProperties;const u={...i};for(const e of a)if(!o.includes(e)){u[e]=encode_Default(c,`${r}/${e}`,u[e])}return u}function encode_FromRecord(e,t,r,n){const s=encode_Default(e,r,n);if(!IsStandardObject(n))return s;const o=Object.getOwnPropertyNames(e.patternProperties)[0];const i=new RegExp(o);const a={...s};for(const s of Object.getOwnPropertyNames(n))if(i.test(s)){a[s]=encode_Visit(e.patternProperties[o],t,`${r}/${s}`,a[s])}if(!type_IsSchema(e.additionalProperties)){return encode_Default(e,r,a)}const c=Object.getOwnPropertyNames(a);const u=e.additionalProperties;const A={...a};for(const e of c)if(!i.test(e)){A[e]=encode_Default(u,`${r}/${e}`,A[e])}return A}function encode_FromRef(e,t,r,n){const s=deref_Deref(e,t);const o=encode_Visit(s,t,r,n);return encode_Default(e,r,o)}function encode_FromThis(e,t,r,n){const s=deref_Deref(e,t);const o=encode_Visit(s,t,r,n);return encode_Default(e,r,o)}function encode_FromTuple(e,t,r,n){const s=encode_Default(e,r,n);return IsArray(e.items)?e.items.map(((e,n)=>encode_Visit(e,t,`${r}/${n}`,s[n]))):[]}function encode_FromUnion(e,t,r,n){for(const s of e.anyOf){if(!Check(s,t,n))continue;const o=encode_Visit(s,t,r,n);return encode_Default(e,r,o)}for(const s of e.anyOf){const o=encode_Visit(s,t,r,n);if(!Check(e,t,o))continue;return encode_Default(e,r,o)}return encode_Default(e,r,n)}function encode_Visit(e,t,r,n){const s=typeof e.$id==="string"?[...t,e]:t;const o=e;switch(e[y]){case"Array":return encode_FromArray(o,s,r,n);case"Intersect":return encode_FromIntersect(o,s,r,n);case"Not":return encode_FromNot(o,s,r,n);case"Object":return encode_FromObject(o,s,r,n);case"Record":return encode_FromRecord(o,s,r,n);case"Ref":return encode_FromRef(o,s,r,n);case"This":return encode_FromThis(o,s,r,n);case"Tuple":return encode_FromTuple(o,s,r,n);case"Union":return encode_FromUnion(o,s,r,n);default:return encode_Default(o,r,n)}}function TransformEncode(e,t,r){return encode_Visit(e,t,"",r)}function has_FromArray(e,t){return type_IsTransform(e)||has_Visit(e.items,t)}function has_FromAsyncIterator(e,t){return type_IsTransform(e)||has_Visit(e.items,t)}function has_FromConstructor(e,t){return type_IsTransform(e)||has_Visit(e.returns,t)||e.parameters.some((e=>has_Visit(e,t)))}function has_FromFunction(e,t){return type_IsTransform(e)||has_Visit(e.returns,t)||e.parameters.some((e=>has_Visit(e,t)))}function has_FromIntersect(e,t){return type_IsTransform(e)||type_IsTransform(e.unevaluatedProperties)||e.allOf.some((e=>has_Visit(e,t)))}function has_FromIterator(e,t){return type_IsTransform(e)||has_Visit(e.items,t)}function has_FromNot(e,t){return type_IsTransform(e)||has_Visit(e.not,t)}function has_FromObject(e,t){return type_IsTransform(e)||Object.values(e.properties).some((e=>has_Visit(e,t)))||type_IsSchema(e.additionalProperties)&&has_Visit(e.additionalProperties,t)}function has_FromPromise(e,t){return type_IsTransform(e)||has_Visit(e.item,t)}function has_FromRecord(e,t){const r=Object.getOwnPropertyNames(e.patternProperties)[0];const n=e.patternProperties[r];return type_IsTransform(e)||has_Visit(n,t)||type_IsSchema(e.additionalProperties)&&type_IsTransform(e.additionalProperties)}function has_FromRef(e,t){if(type_IsTransform(e))return true;return has_Visit(deref_Deref(e,t),t)}function has_FromThis(e,t){if(type_IsTransform(e))return true;return has_Visit(deref_Deref(e,t),t)}function has_FromTuple(e,t){return type_IsTransform(e)||!IsUndefined(e.items)&&e.items.some((e=>has_Visit(e,t)))}function has_FromUnion(e,t){return type_IsTransform(e)||e.anyOf.some((e=>has_Visit(e,t)))}function has_Visit(e,t){const r=IsString(e.$id)?[...t,e]:t;const n=e;if(e.$id&&$.has(e.$id))return false;if(e.$id)$.add(e.$id);switch(e[y]){case"Array":return has_FromArray(n,r);case"AsyncIterator":return has_FromAsyncIterator(n,r);case"Constructor":return has_FromConstructor(n,r);case"Function":return has_FromFunction(n,r);case"Intersect":return has_FromIntersect(n,r);case"Iterator":return has_FromIterator(n,r);case"Not":return has_FromNot(n,r);case"Object":return has_FromObject(n,r);case"Promise":return has_FromPromise(n,r);case"Record":return has_FromRecord(n,r);case"Ref":return has_FromRef(n,r);case"This":return has_FromThis(n,r);case"Tuple":return has_FromTuple(n,r);case"Union":return has_FromUnion(n,r);default:return type_IsTransform(e)}}const $=new Set;function HasTransform(e,t){$.clear();return has_Visit(e,t)}function equal_ObjectType(e,t){if(!IsStandardObject(t))return false;const r=[...Object.keys(e),...Object.getOwnPropertySymbols(e)];const n=[...Object.keys(t),...Object.getOwnPropertySymbols(t)];if(r.length!==n.length)return false;return r.every((r=>Equal(e[r],t[r])))}function equal_DateType(e,t){return IsDate(t)&&e.getTime()===t.getTime()}function equal_ArrayType(e,t){if(!IsArray(t)||e.length!==t.length)return false;return e.every(((e,r)=>Equal(e,t[r])))}function equal_TypedArrayType(e,t){if(!IsTypedArray(t)||e.length!==t.length||Object.getPrototypeOf(e).constructor.name!==Object.getPrototypeOf(t).constructor.name)return false;return e.every(((e,r)=>Equal(e,t[r])))}function equal_ValueType(e,t){return e===t}function Equal(e,t){if(IsStandardObject(e))return equal_ObjectType(e,t);if(IsDate(e))return equal_DateType(e,t);if(IsTypedArray(e))return equal_TypedArrayType(e,t);if(IsArray(e))return equal_ArrayType(e,t);if(IsValueType(e))return equal_ValueType(e,t);throw new Error("ValueEquals: Unable to compare value")}function value_Cast(...e){return Cast.apply(Cast,e)}function value_Create(...e){return create_Create.apply(create_Create,e)}function value_Check(...e){return Check.apply(Check,e)}function value_Clean(...e){return Clean.apply(Clean,e)}function value_Convert(...e){return Convert.apply(Convert,e)}function value_Clone(e){return clone_Clone(e)}function Decode(...e){const[t,r,n]=e.length===3?[e[0],e[1],e[2]]:[e[0],[],e[1]];if(!value_Check(t,r,n))throw new TransformDecodeCheckError(t,n,value_Errors(t,r,n).First());return HasTransform(t,r)?TransformDecode(t,r,n):n}function value_Default(...e){return default_Default.apply(default_Default,e)}function Encode(...e){const[t,r,n]=e.length===3?[e[0],e[1],e[2]]:[e[0],[],e[1]];const s=HasTransform(t,r)?TransformEncode(t,r,n):n;if(!value_Check(t,r,s))throw new TransformEncodeCheckError(t,s,value_Errors(t,r,s).First());return s}function value_Errors(...e){return Errors.apply(Errors,e)}function value_Equal(e,t){return Equal(e,t)}function value_Diff(e,t){return Diff(e,t)}function value_Hash(e){return Hash(e)}function value_Patch(e,t){return Patch(e,t)}function value_Mutate(e,t){Mutate(e,t)}var parseBody=async(e,t=Object.create(null))=>{const{all:r=false,dot:n=false}=t;const s=e instanceof X?e.raw.headers:e.headers;const o=s.get("Content-Type");if(o!==null&&o.startsWith("multipart/form-data")||o!==null&&o.startsWith("application/x-www-form-urlencoded")){return parseFormData(e,{all:r,dot:n})}return{}};async function parseFormData(e,t){const r=await e.formData();if(r){return convertFormDataToBodyData(r,t)}return{}}function convertFormDataToBodyData(e,t){const r=Object.create(null);e.forEach(((e,n)=>{const s=t.all||n.endsWith("[]");if(!s){r[n]=e}else{handleParsingAllValues(r,n,e)}}));if(t.dot){Object.entries(r).forEach((([e,t])=>{const n=e.includes(".");if(n){handleParsingNestedValues(r,e,t);delete r[e]}}))}return r}var handleParsingAllValues=(e,t,r)=>{if(e[t]!==void 0){if(Array.isArray(e[t])){e[t].push(r)}else{e[t]=[e[t],r]}}else{e[t]=r}};var handleParsingNestedValues=(e,t,r)=>{let n=e;const s=t.split(".");s.forEach(((e,t)=>{if(t===s.length-1){n[e]=r}else{if(!n[e]||typeof n[e]!=="object"||Array.isArray(n[e])||n[e]instanceof File){n[e]=Object.create(null)}n=n[e]}}))};var splitPath=e=>{const t=e.split("/");if(t[0]===""){t.shift()}return t};var splitRoutingPath=e=>{const{groups:t,path:r}=extractGroupsFromPath(e);const n=splitPath(r);return replaceGroupMarks(n,t)};var extractGroupsFromPath=e=>{const t=[];e=e.replace(/\{[^}]+\}/g,((e,r)=>{const n=`@${r}`;t.push([n,e]);return n}));return{groups:t,path:e}};var replaceGroupMarks=(e,t)=>{for(let r=t.length-1;r>=0;r--){const[n]=t[r];for(let s=e.length-1;s>=0;s--){if(e[s].includes(n)){e[s]=e[s].replace(n,t[r][1]);break}}}return e};var W={};var getPattern=e=>{if(e==="*"){return"*"}const t=e.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(t){if(!W[e]){if(t[2]){W[e]=[e,t[1],new RegExp("^"+t[2]+"$")]}else{W[e]=[e,t[1],true]}}return W[e]}return null};var tryDecodeURI=e=>{try{return decodeURI(e)}catch{return e.replace(/(?:%[0-9A-Fa-f]{2})+/g,(e=>{try{return decodeURI(e)}catch{return e}}))}};var getPath=e=>{const t=e.url;const r=t.indexOf("/",8);let n=r;for(;n{const t=e.indexOf("?",8);return t===-1?"":"?"+e.slice(t+1)};var getPathNoStrict=e=>{const t=getPath(e);return t.length>1&&t[t.length-1]==="/"?t.slice(0,-1):t};var mergePath=(...e)=>{let t="";let r=false;for(let n of e){if(t[t.length-1]==="/"){t=t.slice(0,-1);r=true}if(n[0]!=="/"){n=`/${n}`}if(n==="/"&&r){t=`${t}/`}else if(n!=="/"){t=`${t}${n}`}if(n==="/"&&t===""){t="/"}}return t};var checkOptionalParameter=e=>{if(!e.match(/\:.+\?$/)){return null}const t=e.split("/");const r=[];let n="";t.forEach((e=>{if(e!==""&&!/\:/.test(e)){n+="/"+e}else if(/\:/.test(e)){if(/\?/.test(e)){if(r.length===0&&n===""){r.push("/")}else{r.push(n)}const t=e.replace("?","");n+="/"+t;r.push(n)}else{n+="/"+e}}}));return r.filter(((e,t,r)=>r.indexOf(e)===t))};var _decodeURI=e=>{if(!/[%+]/.test(e)){return e}if(e.indexOf("+")!==-1){e=e.replace(/\+/g," ")}return/%/.test(e)?Z(e):e};var _getQueryParam=(e,t,r)=>{let n;if(!r&&t&&!/[%+]/.test(t)){let r=e.indexOf(`?${t}`,8);if(r===-1){r=e.indexOf(`&${t}`,8)}while(r!==-1){const n=e.charCodeAt(r+t.length+1);if(n===61){const n=r+t.length+2;const s=e.indexOf("&",n);return _decodeURI(e.slice(n,s===-1?void 0:s))}else if(n==38||isNaN(n)){return""}r=e.indexOf(`&${t}`,r+1)}n=/[%+]/.test(e);if(!n){return void 0}}const s={};n??=/[%+]/.test(e);let o=e.indexOf("?",8);while(o!==-1){const t=e.indexOf("&",o+1);let i=e.indexOf("=",o);if(i>t&&t!==-1){i=-1}let a=e.slice(o+1,i===-1?t===-1?void 0:t:i);if(n){a=_decodeURI(a)}o=t;if(a===""){continue}let c;if(i===-1){c=""}else{c=e.slice(i+1,t===-1?void 0:t);if(n){c=_decodeURI(c)}}if(r){if(!(s[a]&&Array.isArray(s[a]))){s[a]=[]}s[a].push(c)}else{s[a]??=c}}return t?s[t]:s};var z=_getQueryParam;var getQueryParams=(e,t)=>_getQueryParam(e,t,true);var Z=decodeURIComponent;var X=class{raw;#h;#m;routeIndex=0;path;bodyCache={};constructor(e,t="/",r=[[]]){this.raw=e;this.path=t;this.#m=r;this.#h={}}param(e){return e?this.getDecodedParam(e):this.getAllDecodedParams()}getDecodedParam(e){const t=this.#m[0][this.routeIndex][1][e];const r=this.getParamValue(t);return r?/\%/.test(r)?Z(r):r:void 0}getAllDecodedParams(){const e={};const t=Object.keys(this.#m[0][this.routeIndex][1]);for(const r of t){const t=this.getParamValue(this.#m[0][this.routeIndex][1][r]);if(t&&typeof t==="string"){e[r]=/\%/.test(t)?Z(t):t}}return e}getParamValue(e){return this.#m[1]?this.#m[1][e]:e}query(e){return z(this.url,e)}queries(e){return getQueryParams(this.url,e)}header(e){if(e){return this.raw.headers.get(e.toLowerCase())??void 0}const t={};this.raw.headers.forEach(((e,r)=>{t[r]=e}));return t}async parseBody(e){return this.bodyCache.parsedBody??=await parseBody(this,e)}cachedBody=e=>{const{bodyCache:t,raw:r}=this;const n=t[e];if(n){return n}const s=Object.keys(t)[0];if(s){return t[s].then((t=>{if(s==="json"){t=JSON.stringify(t)}return new Response(t)[e]()}))}return t[e]=r[e]()};json(){return this.cachedBody("json")}text(){return this.cachedBody("text")}arrayBuffer(){return this.cachedBody("arrayBuffer")}blob(){return this.cachedBody("blob")}formData(){return this.cachedBody("formData")}addValidatedData(e,t){this.#h[e]=t}valid(e){return this.#h[e]}get url(){return this.raw.url}get method(){return this.raw.method}get matchedRoutes(){return this.#m[0].map((([[,e]])=>e))}get routePath(){return this.#m[0].map((([[,e]])=>e))[this.routeIndex].path}};var ee={Stringify:1,BeforeStream:2,Stream:3};var raw=(e,t)=>{const r=new String(e);r.isEscaped=true;r.callbacks=t;return r};var te=/[&<>'"]/;var stringBufferToString=async e=>{let t="";const r=[];for(let n=e.length-1;;n--){t+=e[n];n--;if(n<0){break}let s=await e[n];if(typeof s==="object"){r.push(...s.callbacks||[])}const o=s.isEscaped;s=await(typeof s==="object"?s.toString():s);if(typeof s==="object"){r.push(...s.callbacks||[])}if(s.isEscaped??o){t+=s}else{const e=[t];escapeToBuffer(s,e);t=e[0]}}return raw(t,r)};var escapeToBuffer=(e,t)=>{const r=e.search(te);if(r===-1){t[0]+=e;return}let n;let s;let o=0;for(s=r;s{const o=e.callbacks;if(!o?.length){return Promise.resolve(e)}if(s){s[0]+=e}else{s=[e]}const i=Promise.all(o.map((e=>e({phase:t,buffer:s,context:n})))).then((e=>Promise.all(e.filter(Boolean).map((e=>resolveCallback(e,t,false,n,s)))).then((()=>s[0]))));if(r){return raw(await i,o)}else{return i}};var re="text/plain; charset=UTF-8";var setHeaders=(e,t={})=>{Object.entries(t).forEach((([t,r])=>e.set(t,r)));return e};var ne=class{#E;#y;env={};#I;finalized=false;error;#C=200;#b;#B;#Q;#T;#v=true;#w;#_;#O;#m;#k;constructor(e,t){this.#E=e;if(t){this.#b=t.executionCtx;this.env=t.env;this.#O=t.notFoundHandler;this.#k=t.path;this.#m=t.matchResult}}get req(){this.#y??=new X(this.#E,this.#k,this.#m);return this.#y}get event(){if(this.#b&&"respondWith"in this.#b){return this.#b}else{throw Error("This context has no FetchEvent")}}get executionCtx(){if(this.#b){return this.#b}else{throw Error("This context has no ExecutionContext")}}get res(){this.#v=false;return this.#T||=new Response("404 Not Found",{status:404})}set res(e){this.#v=false;if(this.#T&&e){this.#T.headers.delete("content-type");for(const[t,r]of this.#T.headers.entries()){if(t==="set-cookie"){const t=this.#T.headers.getSetCookie();e.headers.delete("set-cookie");for(const r of t){e.headers.append("set-cookie",r)}}else{e.headers.set(t,r)}}}this.#T=e;this.finalized=true}render=(...e)=>{this.#_??=e=>this.html(e);return this.#_(...e)};setLayout=e=>this.#w=e;getLayout=()=>this.#w;setRenderer=e=>{this.#_=e};header=(e,t,r)=>{if(t===void 0){if(this.#B){this.#B.delete(e)}else if(this.#Q){delete this.#Q[e.toLocaleLowerCase()]}if(this.finalized){this.res.headers.delete(e)}return}if(r?.append){if(!this.#B){this.#v=false;this.#B=new Headers(this.#Q);this.#Q={}}this.#B.append(e,t)}else{if(this.#B){this.#B.set(e,t)}else{this.#Q??={};this.#Q[e.toLowerCase()]=t}}if(this.finalized){if(r?.append){this.res.headers.append(e,t)}else{this.res.headers.set(e,t)}}};status=e=>{this.#v=false;this.#C=e};set=(e,t)=>{this.#I??={};this.#I[e]=t};get=e=>this.#I?this.#I[e]:void 0;get var(){return{...this.#I}}newResponse=(e,t,r)=>{if(this.#v&&!r&&!t&&this.#C===200){return new Response(e,{headers:this.#Q})}if(t&&typeof t!=="number"){const r=new Headers(t.headers);if(this.#B){this.#B.forEach(((e,t)=>{if(t==="set-cookie"){r.append(t,e)}else{r.set(t,e)}}))}const n=setHeaders(r,this.#Q);return new Response(e,{headers:n,status:t.status??this.#C})}const n=typeof t==="number"?t:this.#C;this.#Q??={};this.#B??=new Headers;setHeaders(this.#B,this.#Q);if(this.#T){this.#T.headers.forEach(((e,t)=>{if(t==="set-cookie"){this.#B?.append(t,e)}else{this.#B?.set(t,e)}}));setHeaders(this.#B,this.#Q)}r??={};for(const[e,t]of Object.entries(r)){if(typeof t==="string"){this.#B.set(e,t)}else{this.#B.delete(e);for(const r of t){this.#B.append(e,r)}}}return new Response(e,{status:n,headers:this.#B})};body=(e,t,r)=>typeof t==="number"?this.newResponse(e,t,r):this.newResponse(e,t);text=(e,t,r)=>{if(!this.#Q){if(this.#v&&!r&&!t){return new Response(e)}this.#Q={}}this.#Q["content-type"]=re;return typeof t==="number"?this.newResponse(e,t,r):this.newResponse(e,t)};json=(e,t,r)=>{const n=JSON.stringify(e);this.#Q??={};this.#Q["content-type"]="application/json; charset=UTF-8";return typeof t==="number"?this.newResponse(n,t,r):this.newResponse(n,t)};html=(e,t,r)=>{this.#Q??={};this.#Q["content-type"]="text/html; charset=UTF-8";if(typeof e==="object"){if(!(e instanceof Promise)){e=e.toString()}if(e instanceof Promise){return e.then((e=>resolveCallback(e,ee.Stringify,false,{}))).then((e=>typeof t==="number"?this.newResponse(e,t,r):this.newResponse(e,t)))}}return typeof t==="number"?this.newResponse(e,t,r):this.newResponse(e,t)};redirect=(e,t)=>{this.#B??=new Headers;this.#B.set("Location",e);return this.newResponse(null,t??302)};notFound=()=>{this.#O??=()=>new Response;return this.#O(this)}};var compose=(e,t,r)=>(n,s)=>{let o=-1;return dispatch(0);async function dispatch(i){if(i<=o){throw new Error("next() called multiple times")}o=i;let a;let c=false;let u;if(e[i]){u=e[i][0][0];if(n instanceof ne){n.req.routeIndex=i}}else{u=i===e.length&&s||void 0}if(!u){if(n instanceof ne&&n.finalized===false&&r){a=await r(n)}}else{try{a=await u(n,(()=>dispatch(i+1)))}catch(e){if(e instanceof Error&&n instanceof ne&&t){n.error=e;a=await t(e,n);c=true}else{throw e}}}if(a&&(n.finalized===false||c)){n.res=a}return n}};var se="ALL";var oe="all";var ie=["get","post","put","delete","options","patch"];var ae="Can not add a route since the matcher is already built.";var ce=class extends Error{};var ue=Symbol("composedHandler");var notFoundHandler=e=>e.text("404 Not Found",404);var errorHandler=(e,t)=>{if("getResponse"in e){return e.getResponse()}console.error(e);return t.text("Internal Server Error",500)};var Ae=class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#k="/";routes=[];constructor(e={}){const t=[...ie,oe];t.forEach((e=>{this[e]=(t,...r)=>{if(typeof t==="string"){this.#k=t}else{this.addRoute(e,this.#k,t)}r.forEach((t=>{if(typeof t!=="string"){this.addRoute(e,this.#k,t)}}));return this}}));this.on=(e,t,...r)=>{for(const n of[t].flat()){this.#k=n;for(const t of[e].flat()){r.map((e=>{this.addRoute(t.toUpperCase(),this.#k,e)}))}}return this};this.use=(e,...t)=>{if(typeof e==="string"){this.#k=e}else{this.#k="*";t.unshift(e)}t.forEach((e=>{this.addRoute(se,this.#k,e)}));return this};const r=e.strict??true;delete e.strict;Object.assign(this,e);this.getPath=r?e.getPath??getPath:getPathNoStrict}clone(){const e=new Ae({router:this.router,getPath:this.getPath});e.routes=this.routes;return e}notFoundHandler=notFoundHandler;errorHandler=errorHandler;route(e,t){const r=this.basePath(e);t.routes.map((e=>{let n;if(t.errorHandler===errorHandler){n=e.handler}else{n=async(r,n)=>(await compose([],t.errorHandler)(r,(()=>e.handler(r,n)))).res;n[ue]=e.handler}r.addRoute(e.method,e.path,n)}));return this}basePath(e){const t=this.clone();t._basePath=mergePath(this._basePath,e);return t}onError=e=>{this.errorHandler=e;return this};notFound=e=>{this.notFoundHandler=e;return this};mount(e,t,r){let n;let s;if(r){if(typeof r==="function"){s=r}else{s=r.optionHandler;n=r.replaceRequest}}const o=s?e=>{const t=s(e);return Array.isArray(t)?t:[t]}:e=>{let t=void 0;try{t=e.executionCtx}catch{}return[e.env,t]};n||=(()=>{const t=mergePath(this._basePath,e);const r=t==="/"?0:t.length;return e=>{const t=new URL(e.url);t.pathname=t.pathname.slice(r)||"/";return new Request(t,e)}})();const handler=async(e,r)=>{const s=await t(n(e.req.raw),...o(e));if(s){return s}await r()};this.addRoute(se,mergePath(e,"*"),handler);return this}addRoute(e,t,r){e=e.toUpperCase();t=mergePath(this._basePath,t);const n={path:t,method:e,handler:r};this.router.add(e,t,[r,n]);this.routes.push(n)}matchRoute(e,t){return this.router.match(e,t)}handleError(e,t){if(e instanceof Error){return this.errorHandler(e,t)}throw e}dispatch(e,t,r,n){if(n==="HEAD"){return(async()=>new Response(null,await this.dispatch(e,t,r,"GET")))()}const s=this.getPath(e,{env:r});const o=this.matchRoute(n,s);const i=new ne(e,{path:s,matchResult:o,env:r,executionCtx:t,notFoundHandler:this.notFoundHandler});if(o[0].length===1){let e;try{e=o[0][0][0][0](i,(async()=>{i.res=await this.notFoundHandler(i)}))}catch(e){return this.handleError(e,i)}return e instanceof Promise?e.then((e=>e||(i.finalized?i.res:this.notFoundHandler(i)))).catch((e=>this.handleError(e,i))):e??this.notFoundHandler(i)}const a=compose(o[0],this.errorHandler,this.notFoundHandler);return(async()=>{try{const e=await a(i);if(!e.finalized){throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?")}return e.res}catch(e){return this.handleError(e,i)}})()}fetch=(e,...t)=>this.dispatch(e,t[1],t[0],e.method);request=(e,t,r,n)=>{if(e instanceof Request){if(t!==void 0){e=new Request(e,t)}return this.fetch(e,r,n)}e=e.toString();const s=/^https?:\/\//.test(e)?e:`http://localhost${mergePath("/",e)}`;const o=new Request(s,t);return this.fetch(o,r,n)};fire=()=>{addEventListener("fetch",(e=>{e.respondWith(this.dispatch(e.request,e,void 0,e.request.method))}))}};var le="[^/]+";var de=".*";var pe="(?:|/.*)";var fe=Symbol();var ge=new Set(".\\+*[^]$()");function compareKey(e,t){if(e.length===1){return t.length===1?ee!==de&&e!==pe))){throw fe}if(s){return}c=this.children[t]=new he;if(e!==""){c.varIndex=n.varIndex++}}if(!s&&e!==""){r.push([e,c.varIndex])}}else{c=this.children[o];if(!c){if(Object.keys(this.children).some((e=>e.length>1&&e!==de&&e!==pe))){throw fe}if(s){return}c=this.children[o]=new he}}c.insert(i,t,r,n,s)}buildRegExpStr(){const e=Object.keys(this.children).sort(compareKey);const t=e.map((e=>{const t=this.children[e];return(typeof t.varIndex==="number"?`(${e})@${t.varIndex}`:ge.has(e)?`\\${e}`:e)+t.buildRegExpStr()}));if(typeof this.index==="number"){t.unshift(`#${this.index}`)}if(t.length===0){return""}if(t.length===1){return t[0]}return"(?:"+t.join("|")+")"}};var me=class{context={varIndex:0};root=new he;insert(e,t,r){const n=[];const s=[];for(let t=0;;){let r=false;e=e.replace(/\{[^}]+\}/g,(e=>{const n=`@\\${t}`;s[t]=[n,e];t++;r=true;return n}));if(!r){break}}const o=e.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let e=s.length-1;e>=0;e--){const[t]=s[e];for(let r=o.length-1;r>=0;r--){if(o[r].indexOf(t)!==-1){o[r]=o[r].replace(t,s[e][1]);break}}}this.root.insert(o,t,n,this.context,r);return n}buildRegExp(){let e=this.root.buildRegExpStr();if(e===""){return[/^$/,[],[]]}let t=0;const r=[];const n=[];e=e.replace(/#(\d+)|@(\d+)|\.\*\$/g,((e,s,o)=>{if(typeof s!=="undefined"){r[++t]=Number(s);return"$()"}if(typeof o!=="undefined"){n[Number(o)]=++t;return""}return""}));return[new RegExp(`^${e}`),r,n]}};var Ee=[];var ye=[/^$/,[],Object.create(null)];var Ie=Object.create(null);function buildWildcardRegExp(e){return Ie[e]??=new RegExp(e==="*"?"":`^${e.replace(/\/\*$|([.\\+*[^\]$()])/g,((e,t)=>t?`\\${t}`:"(?:|/.*)"))}$`)}function clearWildcardRegExpCache(){Ie=Object.create(null)}function buildMatcherFromPreprocessedRoutes(e){const t=new me;const r=[];if(e.length===0){return ye}const n=e.map((e=>[!/\*|\/:/.test(e[0]),...e])).sort((([e,t],[r,n])=>e?1:r?-1:t.length-n.length));const s=Object.create(null);for(let e=0,o=-1,i=n.length;e[e,Object.create(null)])),Ee]}else{o++}let u;try{u=t.insert(a,o,i)}catch(e){throw e===fe?new ce(a):e}if(i){continue}r[o]=c.map((([e,t])=>{const r=Object.create(null);t-=1;for(;t>=0;t--){const[e,n]=u[t];r[e]=n}return[e,r]}))}const[o,i,a]=t.buildRegExp();for(let e=0,t=r.length;et.length-e.length))){if(buildWildcardRegExp(r).test(t)){return[...e[r]]}}return void 0}var Ce=class{name="RegExpRouter";middleware;routes;constructor(){this.middleware={[se]:Object.create(null)};this.routes={[se]:Object.create(null)}}add(e,t,r){const{middleware:n,routes:s}=this;if(!n||!s){throw new Error(ae)}if(!n[e]){[n,s].forEach((t=>{t[e]=Object.create(null);Object.keys(t[se]).forEach((r=>{t[e][r]=[...t[se][r]]}))}))}if(t==="/*"){t="*"}const o=(t.match(/\/:/g)||[]).length;if(/\*$/.test(t)){const i=buildWildcardRegExp(t);if(e===se){Object.keys(n).forEach((e=>{n[e][t]||=findMiddleware(n[e],t)||findMiddleware(n[se],t)||[]}))}else{n[e][t]||=findMiddleware(n[e],t)||findMiddleware(n[se],t)||[]}Object.keys(n).forEach((t=>{if(e===se||e===t){Object.keys(n[t]).forEach((e=>{i.test(e)&&n[t][e].push([r,o])}))}}));Object.keys(s).forEach((t=>{if(e===se||e===t){Object.keys(s[t]).forEach((e=>i.test(e)&&s[t][e].push([r,o])))}}));return}const i=checkOptionalParameter(t)||[t];for(let t=0,a=i.length;t{if(e===se||e===i){s[i][c]||=[...findMiddleware(n[i],c)||findMiddleware(n[se],c)||[]];s[i][c].push([r,o-a+t+1])}}))}}match(e,t){clearWildcardRegExpCache();const r=this.buildAllMatchers();this.match=(e,t)=>{const n=r[e]||r[se];const s=n[2][t];if(s){return s}const o=t.match(n[0]);if(!o){return[[],Ee]}const i=o.indexOf("",1);return[n[1][i],o]};return this.match(e,t)}buildAllMatchers(){const e=Object.create(null);[...Object.keys(this.routes),...Object.keys(this.middleware)].forEach((t=>{e[t]||=this.buildMatcher(t)}));this.middleware=this.routes=void 0;return e}buildMatcher(e){const t=[];let r=e===se;[this.middleware,this.routes].forEach((n=>{const s=n[e]?Object.keys(n[e]).map((t=>[t,n[e][t]])):[];if(s.length!==0){r||=true;t.push(...s)}else if(e!==se){t.push(...Object.keys(n[se]).map((e=>[e,n[se][e]])))}}));if(!r){return null}else{return buildMatcherFromPreprocessedRoutes(t)}}};var be=class{name="SmartRouter";routers=[];routes=[];constructor(e){Object.assign(this,e)}add(e,t,r){if(!this.routes){throw new Error(ae)}this.routes.push([e,t,r])}match(e,t){if(!this.routes){throw new Error("Fatal error")}const{routers:r,routes:n}=this;const s=r.length;let o=0;let i;for(;o{s.add(...e)}));i=s.match(e,t)}catch(e){if(e instanceof ce){continue}throw e}this.match=s.match.bind(s);this.routers=[s];this.routes=void 0;break}if(o===s){throw new Error("Fatal error")}this.name=`SmartRouter + ${this.activeRouter.name}`;return i}get activeRouter(){if(this.routes||this.routers.length!==1){throw new Error("No active router has been determined yet.")}return this.routers[0]}};var Be=class{methods;children;patterns;order=0;name;params=Object.create(null);constructor(e,t,r){this.children=r||Object.create(null);this.methods=[];this.name="";if(e&&t){const r=Object.create(null);r[e]={handler:t,possibleKeys:[],score:0,name:this.name};this.methods=[r]}this.patterns=[]}insert(e,t,r){this.name=`${e} ${t}`;this.order=++this.order;let n=this;const s=splitRoutingPath(t);const o=[];for(let e=0,t=s.length;er.indexOf(e)===t)),name:this.name,score:this.order};i[e]=a;n.methods.push(i);return n}gHSets(e,t,r,n){const s=[];for(let o=0,i=e.methods.length;o{const t=c[a.name];a.params[e]=n[e]&&!t?n[e]:r[e]??n[e];c[a.name]=true}));s.push(a)}}return s}search(e,t){const r=[];this.params=Object.create(null);const n=this;let s=[n];const o=splitPath(t);for(let t=0,n=o.length;te.score-t.score));return[i.map((({handler:e,params:t})=>[e,t]))]}};var Qe=class{name="TrieRouter";node;constructor(){this.node=new Be}add(e,t,r){const n=checkOptionalParameter(t);if(n){for(const t of n){this.node.insert(e,t,r)}return}this.node.insert(e,t,r)}match(e,t){return this.node.search(e,t)}};var Te=class extends Ae{constructor(e={}){super(e);this.router=e.router??new be({routers:[new Ce,new Qe]})}};var ve=class extends Error{res;status;constructor(e=500,t){super(t?.message,{cause:t?.cause});this.res=t?.res;this.status=e}getResponse(){if(this.res){const e=new Response(this.res.body,{status:this.status,headers:this.res.headers});return e}return new Response(this.message,{status:this.status})}};var we=__nccwpck_require__(38815);function awaited_FromRest(e){return e.map((e=>AwaitedResolve(e)))}function awaited_FromIntersect(e){return intersect_Intersect(awaited_FromRest(e))}function awaited_FromUnion(e){return union_Union(awaited_FromRest(e))}function awaited_FromPromise(e){return AwaitedResolve(e)}function AwaitedResolve(e){return IsIntersect(e)?awaited_FromIntersect(e.allOf):IsUnion(e)?awaited_FromUnion(e.anyOf):kind_IsPromise(e)?awaited_FromPromise(e.item):e}function awaited_Awaited(e,t={}){return CloneType(AwaitedResolve(e),t)}function CompositeKeys(e){const t=[];for(const r of e)t.push(...KeyOfPropertyKeys(r));return SetDistinct(t)}function FilterNever(e){return e.filter((e=>!IsNever(e)))}function CompositeProperty(e,t){const r=[];for(const n of e)r.push(...IndexFromPropertyKeys(n,[t]));return FilterNever(r)}function CompositeProperties(e,t){const r={};for(const n of t){r[n]=IntersectEvaluated(CompositeProperty(e,n))}return r}function composite_Composite(e,t={}){const r=CompositeKeys(e);const n=CompositeProperties(e,r);const s=O(n,t);return s}function date_Date(e={}){return{...e,[y]:"Date",type:"Date"}}function null_Null(e={}){return{...e,[y]:"Null",type:"null"}}function symbol_Symbol(e){return{...e,[y]:"Symbol",type:"symbol"}}function undefined_Undefined(e={}){return{...e,[y]:"Undefined",type:"undefined"}}function uint8array_Uint8Array(e={}){return{...e,[y]:"Uint8Array",type:"Uint8Array"}}function const_FromArray(e){return e.map((e=>FromValue(e,false)))}function const_FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=readonly_Readonly(FromValue(e[r],false));return t}function ConditionalReadonly(e,t){return t===true?e:readonly_Readonly(e)}function FromValue(e,t){return value_IsAsyncIterator(e)?ConditionalReadonly(any_Any(),t):value_IsIterator(e)?ConditionalReadonly(any_Any(),t):value_IsArray(e)?readonly_Readonly(tuple_Tuple(const_FromArray(e))):value_IsUint8Array(e)?uint8array_Uint8Array():value_IsDate(e)?date_Date():value_IsObject(e)?ConditionalReadonly(O(const_FromProperties(e)),t):value_IsFunction(e)?ConditionalReadonly(function_Function([],unknown_Unknown()),t):value_IsUndefined(e)?undefined_Undefined():value_IsNull(e)?null_Null():value_IsSymbol(e)?symbol_Symbol():value_IsBigInt(e)?bigint_BigInt():value_IsNumber(e)?literal_Literal(e):value_IsBoolean(e)?literal_Literal(e):value_IsString(e)?literal_Literal(e):O({})}function const_Const(e,t={}){return CloneType(FromValue(e,true),t)}function constructor_parameters_ConstructorParameters(e,t={}){return tuple_Tuple(CloneRest(e.parameters),{...t})}function deref_FromRest(e,t){return e.map((e=>deref_deref_Deref(e,t)))}function deref_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e)){r[n]=deref_deref_Deref(e[n],t)}return r}function deref_FromConstructor(e,t){e.parameters=deref_FromRest(e.parameters,t);e.returns=deref_deref_Deref(e.returns,t);return e}function deref_FromFunction(e,t){e.parameters=deref_FromRest(e.parameters,t);e.returns=deref_deref_Deref(e.returns,t);return e}function deref_FromIntersect(e,t){e.allOf=deref_FromRest(e.allOf,t);return e}function deref_FromUnion(e,t){e.anyOf=deref_FromRest(e.anyOf,t);return e}function deref_FromTuple(e,t){if(value_IsUndefined(e.items))return e;e.items=deref_FromRest(e.items,t);return e}function deref_FromArray(e,t){e.items=deref_deref_Deref(e.items,t);return e}function deref_FromObject(e,t){e.properties=deref_FromProperties(e.properties,t);return e}function deref_FromPromise(e,t){e.item=deref_deref_Deref(e.item,t);return e}function deref_FromAsyncIterator(e,t){e.items=deref_deref_Deref(e.items,t);return e}function deref_FromIterator(e,t){e.items=deref_deref_Deref(e.items,t);return e}function deref_FromRef(e,t){const r=t.find((t=>t.$id===e.$ref));if(r===undefined)throw Error(`Unable to dereference schema with $id ${e.$ref}`);const n=Discard(r,["$id"]);return deref_deref_Deref(n,t)}function DerefResolve(e,t){return IsConstructor(e)?deref_FromConstructor(e,t):kind_IsFunction(e)?deref_FromFunction(e,t):IsIntersect(e)?deref_FromIntersect(e,t):IsUnion(e)?deref_FromUnion(e,t):IsTuple(e)?deref_FromTuple(e,t):kind_IsArray(e)?deref_FromArray(e,t):kind_IsObject(e)?deref_FromObject(e,t):kind_IsPromise(e)?deref_FromPromise(e,t):kind_IsAsyncIterator(e)?deref_FromAsyncIterator(e,t):kind_IsIterator(e)?deref_FromIterator(e,t):IsRef(e)?deref_FromRef(e,t):e}function deref_deref_Deref(e,t){return DerefResolve(CloneType(e),CloneRest(t))}function enum_Enum(e,t={}){if(value_IsUndefined(e))throw new Error("Enum undefined or empty");const r=globalThis.Object.getOwnPropertyNames(e).filter((e=>isNaN(e))).map((t=>e[t]));const n=[...new Set(r)];const s=n.map((e=>literal_Literal(e)));return union_Union(s,{...t,[E]:"Enum"})}function ExcludeFromTemplateLiteral(e,t){return exclude_Exclude(TemplateLiteralToUnion(e),t)}function ExcludeRest(e,t){const r=e.filter((e=>ExtendsCheck(e,t)===j.False));return r.length===1?r[0]:union_Union(r)}function exclude_Exclude(e,t,r={}){if(IsTemplateLiteral(e))return CloneType(ExcludeFromTemplateLiteral(e,t),r);if(IsMappedResult(e))return CloneType(ExcludeFromMappedResult(e,t),r);return CloneType(IsUnion(e)?ExcludeRest(e.anyOf,t):ExtendsCheck(e,t)!==j.False?never_Never():e,r)}function exclude_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=exclude_Exclude(e[n],t);return r}function exclude_from_mapped_result_FromMappedResult(e,t){return exclude_from_mapped_result_FromProperties(e.properties,t)}function ExcludeFromMappedResult(e,t){const r=exclude_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function ExtractFromTemplateLiteral(e,t){return extract_Extract(TemplateLiteralToUnion(e),t)}function ExtractRest(e,t){const r=e.filter((e=>ExtendsCheck(e,t)!==j.False));return r.length===1?r[0]:union_Union(r)}function extract_Extract(e,t,r={}){if(IsTemplateLiteral(e))return CloneType(ExtractFromTemplateLiteral(e,t),r);if(IsMappedResult(e))return CloneType(ExtractFromMappedResult(e,t),r);return CloneType(IsUnion(e)?ExtractRest(e.anyOf,t):ExtendsCheck(e,t)!==j.False?e:never_Never(),r)}function extract_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=extract_Extract(e[n],t);return r}function extract_from_mapped_result_FromMappedResult(e,t){return extract_from_mapped_result_FromProperties(e.properties,t)}function ExtractFromMappedResult(e,t){const r=extract_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function integer_Integer(e={}){return{...e,[y]:"Integer",type:"integer"}}function MappedIntrinsicPropertyKey(e,t,r){return{[e]:Intrinsic(literal_Literal(e),t,r)}}function MappedIntrinsicPropertyKeys(e,t,r){return e.reduce(((e,n)=>({...e,...MappedIntrinsicPropertyKey(n,t,r)})),{})}function MappedIntrinsicProperties(e,t,r){return MappedIntrinsicPropertyKeys(e["keys"],t,r)}function IntrinsicFromMappedKey(e,t,r){const n=MappedIntrinsicProperties(e,t,r);return MappedResult(n)}function ApplyUncapitalize(e){const[t,r]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),r].join("")}function ApplyCapitalize(e){const[t,r]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),r].join("")}function ApplyUppercase(e){return e.toUpperCase()}function ApplyLowercase(e){return e.toLowerCase()}function intrinsic_FromTemplateLiteral(e,t,r){const n=TemplateLiteralParseExact(e.pattern);const s=IsTemplateLiteralExpressionFinite(n);if(!s)return{...e,pattern:FromLiteralValue(e.pattern,t)};const o=[...TemplateLiteralExpressionGenerate(n)];const i=o.map((e=>literal_Literal(e)));const a=intrinsic_FromRest(i,t);const c=union_Union(a);return template_literal_TemplateLiteral([c],r)}function FromLiteralValue(e,t){return typeof e==="string"?t==="Uncapitalize"?ApplyUncapitalize(e):t==="Capitalize"?ApplyCapitalize(e):t==="Uppercase"?ApplyUppercase(e):t==="Lowercase"?ApplyLowercase(e):e:e.toString()}function intrinsic_FromRest(e,t){return e.map((e=>Intrinsic(e,t)))}function Intrinsic(e,t,r={}){return IsMappedKey(e)?IntrinsicFromMappedKey(e,t,r):IsTemplateLiteral(e)?intrinsic_FromTemplateLiteral(e,t,e):IsUnion(e)?union_Union(intrinsic_FromRest(e.anyOf,t),r):IsLiteral(e)?literal_Literal(FromLiteralValue(e.const,t),r):e}function capitalize_Capitalize(e,t={}){return Intrinsic(e,"Capitalize",t)}function lowercase_Lowercase(e,t={}){return Intrinsic(e,"Lowercase",t)}function uncapitalize_Uncapitalize(e,t={}){return Intrinsic(e,"Uncapitalize",t)}function uppercase_Uppercase(e,t={}){return Intrinsic(e,"Uppercase",t)}function not_Not(e,t){return{...t,[y]:"Not",not:CloneType(e)}}function omit_from_mapped_result_FromProperties(e,t,r){const n={};for(const s of globalThis.Object.getOwnPropertyNames(e))n[s]=omit_Omit(e[s],t,r);return n}function omit_from_mapped_result_FromMappedResult(e,t,r){return omit_from_mapped_result_FromProperties(e.properties,t,r)}function OmitFromMappedResult(e,t,r){const n=omit_from_mapped_result_FromMappedResult(e,t,r);return MappedResult(n)}function omit_FromIntersect(e,t){return e.map((e=>OmitResolve(e,t)))}function omit_FromUnion(e,t){return e.map((e=>OmitResolve(e,t)))}function omit_FromProperty(e,t){const{[t]:r,...n}=e;return n}function omit_FromProperties(e,t){return t.reduce(((e,t)=>omit_FromProperty(e,t)),e)}function OmitResolve(e,t){return IsIntersect(e)?intersect_Intersect(omit_FromIntersect(e.allOf,t)):IsUnion(e)?union_Union(omit_FromUnion(e.anyOf,t)):kind_IsObject(e)?O(omit_FromProperties(e.properties,t)):O({})}function omit_Omit(e,t,r={}){if(IsMappedKey(t))return OmitFromMappedKey(e,t,r);if(IsMappedResult(e))return OmitFromMappedResult(e,t,r);const n=IsSchema(t)?IndexPropertyKeys(t):t;const s=Discard(e,[g,"$id","required"]);const o=CloneType(OmitResolve(e,n),r);return{...s,...o}}function omit_from_mapped_key_FromPropertyKey(e,t,r){return{[t]:omit_Omit(e,[t],r)}}function omit_from_mapped_key_FromPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...omit_from_mapped_key_FromPropertyKey(e,n,r)})),{})}function omit_from_mapped_key_FromMappedKey(e,t,r){return omit_from_mapped_key_FromPropertyKeys(e,t.keys,r)}function OmitFromMappedKey(e,t,r){const n=omit_from_mapped_key_FromMappedKey(e,t,r);return MappedResult(n)}function parameters_Parameters(e,t={}){return tuple_Tuple(CloneRest(e.parameters),{...t})}function partial_FromRest(e){return e.map((e=>PartialResolve(e)))}function partial_FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=optional_Optional(e[r]);return t}function PartialResolve(e){return IsIntersect(e)?intersect_Intersect(partial_FromRest(e.allOf)):IsUnion(e)?union_Union(partial_FromRest(e.anyOf)):kind_IsObject(e)?O(partial_FromProperties(e.properties)):O({})}function partial_Partial(e,t={}){if(IsMappedResult(e))return PartialFromMappedResult(e,t);const r=Discard(e,[g,"$id","required"]);const n=CloneType(PartialResolve(e),t);return{...r,...n}}function partial_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=partial_Partial(e[n],t);return r}function partial_from_mapped_result_FromMappedResult(e,t){return partial_from_mapped_result_FromProperties(e.properties,t)}function PartialFromMappedResult(e,t){const r=partial_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function pick_from_mapped_result_FromProperties(e,t,r){const n={};for(const s of globalThis.Object.getOwnPropertyNames(e))n[s]=pick_Pick(e[s],t,r);return n}function pick_from_mapped_result_FromMappedResult(e,t,r){return pick_from_mapped_result_FromProperties(e.properties,t,r)}function PickFromMappedResult(e,t,r){const n=pick_from_mapped_result_FromMappedResult(e,t,r);return MappedResult(n)}function pick_FromIntersect(e,t){return e.map((e=>PickResolve(e,t)))}function pick_FromUnion(e,t){return e.map((e=>PickResolve(e,t)))}function pick_FromProperties(e,t){const r={};for(const n of t)if(n in e)r[n]=e[n];return r}function PickResolve(e,t){return IsIntersect(e)?intersect_Intersect(pick_FromIntersect(e.allOf,t)):IsUnion(e)?union_Union(pick_FromUnion(e.anyOf,t)):kind_IsObject(e)?O(pick_FromProperties(e.properties,t)):O({})}function pick_Pick(e,t,r={}){if(IsMappedKey(t))return PickFromMappedKey(e,t,r);if(IsMappedResult(e))return PickFromMappedResult(e,t,r);const n=IsSchema(t)?IndexPropertyKeys(t):t;const s=Discard(e,[g,"$id","required"]);const o=CloneType(PickResolve(e,n),r);return{...s,...o}}function pick_from_mapped_key_FromPropertyKey(e,t,r){return{[t]:pick_Pick(e,[t],r)}}function pick_from_mapped_key_FromPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...pick_from_mapped_key_FromPropertyKey(e,n,r)})),{})}function pick_from_mapped_key_FromMappedKey(e,t,r){return pick_from_mapped_key_FromPropertyKeys(e,t.keys,r)}function PickFromMappedKey(e,t,r){const n=pick_from_mapped_key_FromMappedKey(e,t,r);return MappedResult(n)}function readonly_optional_ReadonlyOptional(e){return readonly_Readonly(optional_Optional(e))}function RecordCreateFromPattern(e,t,r){return{...r,[y]:"Record",type:"object",patternProperties:{[e]:CloneType(t)}}}function RecordCreateFromKeys(e,t,r){const n={};for(const r of e)n[r]=CloneType(t);return O(n,{...r,[E]:"Record"})}function FromTemplateLiteralKey(e,t,r){return IsTemplateLiteralFinite(e)?RecordCreateFromKeys(IndexPropertyKeys(e),t,r):RecordCreateFromPattern(e.pattern,t,r)}function FromUnionKey(e,t,r){return RecordCreateFromKeys(IndexPropertyKeys(union_Union(e)),t,r)}function FromLiteralKey(e,t,r){return RecordCreateFromKeys([e.toString()],t,r)}function FromRegExpKey(e,t,r){return RecordCreateFromPattern(e.source,t,r)}function FromStringKey(e,t,r){const n=value_IsUndefined(e.pattern)?w:e.pattern;return RecordCreateFromPattern(n,t,r)}function FromAnyKey(e,t,r){return RecordCreateFromPattern(w,t,r)}function FromNeverKey(e,t,r){return RecordCreateFromPattern(_,t,r)}function FromIntegerKey(e,t,r){return RecordCreateFromPattern(v,t,r)}function FromNumberKey(e,t,r){return RecordCreateFromPattern(v,t,r)}function record_Record(e,t,r={}){return IsUnion(e)?FromUnionKey(e.anyOf,t,r):IsTemplateLiteral(e)?FromTemplateLiteralKey(e,t,r):IsLiteral(e)?FromLiteralKey(e.const,t,r):kind_IsInteger(e)?FromIntegerKey(e,t,r):kind_IsNumber(e)?FromNumberKey(e,t,r):kind_IsRegExp(e)?FromRegExpKey(e,t,r):kind_IsString(e)?FromStringKey(e,t,r):IsAny(e)?FromAnyKey(e,t,r):IsNever(e)?FromNeverKey(e,t,r):never_Never(r)}let _e=0;function recursive_Recursive(e,t={}){if(value_IsUndefined(t.$id))t.$id=`T${_e++}`;const r=e({[y]:"This",$ref:`${t.$id}`});r.$id=t.$id;return CloneType({...t,[E]:"Recursive",...r})}function ref_Ref(e,t={}){if(value_IsString(e))return{...t,[y]:"Ref",$ref:e};if(value_IsUndefined(e.$id))throw new Error("Reference target type must specify an $id");return{...t,[y]:"Ref",$ref:e.$id}}function regexp_RegExp(e,t={}){const r=value_IsString(e)?new globalThis.RegExp(e):e;return{...t,[y]:"RegExp",type:"RegExp",source:r.source,flags:r.flags}}function required_FromRest(e){return e.map((e=>RequiredResolve(e)))}function required_FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=Discard(e[r],[m]);return t}function RequiredResolve(e){return IsIntersect(e)?intersect_Intersect(required_FromRest(e.allOf)):IsUnion(e)?union_Union(required_FromRest(e.anyOf)):kind_IsObject(e)?O(required_FromProperties(e.properties)):O({})}function required_Required(e,t={}){if(IsMappedResult(e)){return RequiredFromMappedResult(e,t)}else{const r=Discard(e,[g,"$id","required"]);const n=CloneType(RequiredResolve(e),t);return{...r,...n}}}function required_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=required_Required(e[n],t);return r}function required_from_mapped_result_FromMappedResult(e,t){return required_from_mapped_result_FromProperties(e.properties,t)}function RequiredFromMappedResult(e,t){const r=required_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function RestResolve(e){return IsIntersect(e)?CloneRest(e.allOf):IsUnion(e)?CloneRest(e.anyOf):IsTuple(e)?CloneRest(e.items??[]):[]}function rest_Rest(e){return CloneRest(RestResolve(e))}class TransformDecodeBuilder{constructor(e){this.schema=e}Decode(e){return new TransformEncodeBuilder(this.schema,e)}}class TransformEncodeBuilder{constructor(e,t){this.schema=e;this.decode=t}EncodeTransform(e,t){const Encode=r=>t[g].Encode(e(r));const Decode=e=>this.decode(t[g].Decode(e));const r={Encode:Encode,Decode:Decode};return{...t,[g]:r}}EncodeSchema(e,t){const r={Decode:this.decode,Encode:e};return{...t,[g]:r}}Encode(e){const t=CloneType(this.schema);return IsTransform(t)?this.EncodeTransform(e,t):this.EncodeSchema(e,t)}}function transform_Transform(e){return new TransformDecodeBuilder(e)}function void_Void(e={}){return{...e,[y]:"Void",type:"void"}}class json_JsonTypeBuilder{Strict(e){return Strict(e)}ReadonlyOptional(e){return ReadonlyOptional(e)}Readonly(e,t){return Readonly(e,t??true)}Optional(e,t){return Optional(e,t??true)}Any(e={}){return Any(e)}Array(e,t={}){return Array(e,t)}Boolean(e={}){return Boolean(e)}Capitalize(e,t={}){return Capitalize(e,t)}Composite(e,t){return Composite(e,t)}Const(e,t={}){return Const(e,t)}Deref(e,t){return Deref(e,t)}Enum(e,t={}){return Enum(e,t)}Exclude(e,t,r={}){return Exclude(e,t,r)}Extends(e,t,r,n,s={}){return Extends(e,t,r,n,s)}Extract(e,t,r={}){return Extract(e,t,r)}Index(e,t,r={}){return Index(e,t,r)}Integer(e={}){return Integer(e)}Intersect(e,t={}){return Intersect(e,t)}KeyOf(e,t={}){return KeyOf(e,t)}Literal(e,t={}){return Literal(e,t)}Lowercase(e,t={}){return Lowercase(e,t)}Mapped(e,t,r={}){return Mapped(e,t,r)}Never(e={}){return Never(e)}Not(e,t){return Not(e,t)}Null(e={}){return Null(e)}Number(e={}){return Number(e)}Object(e,t={}){return Object(e,t)}Omit(e,t,r={}){return Omit(e,t,r)}Partial(e,t={}){return Partial(e,t)}Pick(e,t,r={}){return Pick(e,t,r)}Record(e,t,r={}){return Record(e,t,r)}Recursive(e,t={}){return Recursive(e,t)}Ref(e,t={}){return Ref(e,t)}Required(e,t={}){return Required(e,t)}Rest(e){return Rest(e)}String(e={}){return String(e)}TemplateLiteral(e,t={}){return TemplateLiteral(e,t)}Transform(e){return Transform(e)}Tuple(e,t={}){return Tuple(e,t)}Uncapitalize(e,t={}){return Uncapitalize(e,t)}Union(e,t={}){return Union(e,t)}Unknown(e={}){return Unknown(e)}Unsafe(e={}){return Unsafe(e)}Uppercase(e,t={}){return Uppercase(e,t)}}function instance_type_InstanceType(e,t={}){return CloneType(e.returns,t)}function return_type_ReturnType(e,t={}){return CloneType(e.returns,t)}function strict_Strict(e){return JSON.parse(JSON.stringify(e))}class JavaScriptTypeBuilder extends(null&&JsonTypeBuilder){AsyncIterator(e,t={}){return AsyncIterator(e,t)}Awaited(e,t={}){return Awaited(e,t)}BigInt(e={}){return BigInt(e)}ConstructorParameters(e,t={}){return ConstructorParameters(e,t)}Constructor(e,t,r){return Constructor(e,t,r)}Date(e={}){return Date(e)}Function(e,t,r){return FunctionType(e,t,r)}InstanceType(e,t={}){return InstanceType(e,t)}Iterator(e,t={}){return Iterator(e,t)}Parameters(e,t={}){return Parameters(e,t)}Promise(e,t={}){return Promise(e,t)}RegExp(e,t={}){return RegExp(e,t)}ReturnType(e,t={}){return ReturnType(e,t)}Symbol(e){return Symbol(e)}Undefined(e={}){return Undefined(e)}Uint8Array(e={}){return Uint8Array(e)}Void(e={}){return Void(e)}}const Oe=s;var ke=__nccwpck_require__(80619);var createLogger=e=>({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console),...e});var Re=["branch_protection_configuration","branch_protection_configuration.disabled","branch_protection_configuration.enabled","branch_protection_rule","branch_protection_rule.created","branch_protection_rule.deleted","branch_protection_rule.edited","check_run","check_run.completed","check_run.created","check_run.requested_action","check_run.rerequested","check_suite","check_suite.completed","check_suite.requested","check_suite.rerequested","code_scanning_alert","code_scanning_alert.appeared_in_branch","code_scanning_alert.closed_by_user","code_scanning_alert.created","code_scanning_alert.fixed","code_scanning_alert.reopened","code_scanning_alert.reopened_by_user","commit_comment","commit_comment.created","create","custom_property","custom_property.created","custom_property.deleted","custom_property.updated","custom_property_values","custom_property_values.updated","delete","dependabot_alert","dependabot_alert.auto_dismissed","dependabot_alert.auto_reopened","dependabot_alert.created","dependabot_alert.dismissed","dependabot_alert.fixed","dependabot_alert.reintroduced","dependabot_alert.reopened","deploy_key","deploy_key.created","deploy_key.deleted","deployment","deployment.created","deployment_protection_rule","deployment_protection_rule.requested","deployment_review","deployment_review.approved","deployment_review.rejected","deployment_review.requested","deployment_status","deployment_status.created","discussion","discussion.answered","discussion.category_changed","discussion.closed","discussion.created","discussion.deleted","discussion.edited","discussion.labeled","discussion.locked","discussion.pinned","discussion.reopened","discussion.transferred","discussion.unanswered","discussion.unlabeled","discussion.unlocked","discussion.unpinned","discussion_comment","discussion_comment.created","discussion_comment.deleted","discussion_comment.edited","fork","github_app_authorization","github_app_authorization.revoked","gollum","installation","installation.created","installation.deleted","installation.new_permissions_accepted","installation.suspend","installation.unsuspend","installation_repositories","installation_repositories.added","installation_repositories.removed","installation_target","installation_target.renamed","issue_comment","issue_comment.created","issue_comment.deleted","issue_comment.edited","issues","issues.assigned","issues.closed","issues.deleted","issues.demilestoned","issues.edited","issues.labeled","issues.locked","issues.milestoned","issues.opened","issues.pinned","issues.reopened","issues.transferred","issues.unassigned","issues.unlabeled","issues.unlocked","issues.unpinned","label","label.created","label.deleted","label.edited","marketplace_purchase","marketplace_purchase.cancelled","marketplace_purchase.changed","marketplace_purchase.pending_change","marketplace_purchase.pending_change_cancelled","marketplace_purchase.purchased","member","member.added","member.edited","member.removed","membership","membership.added","membership.removed","merge_group","merge_group.checks_requested","merge_group.destroyed","meta","meta.deleted","milestone","milestone.closed","milestone.created","milestone.deleted","milestone.edited","milestone.opened","org_block","org_block.blocked","org_block.unblocked","organization","organization.deleted","organization.member_added","organization.member_invited","organization.member_removed","organization.renamed","package","package.published","package.updated","page_build","personal_access_token_request","personal_access_token_request.approved","personal_access_token_request.cancelled","personal_access_token_request.created","personal_access_token_request.denied","ping","project","project.closed","project.created","project.deleted","project.edited","project.reopened","project_card","project_card.converted","project_card.created","project_card.deleted","project_card.edited","project_card.moved","project_column","project_column.created","project_column.deleted","project_column.edited","project_column.moved","projects_v2","projects_v2.closed","projects_v2.created","projects_v2.deleted","projects_v2.edited","projects_v2.reopened","projects_v2_item","projects_v2_item.archived","projects_v2_item.converted","projects_v2_item.created","projects_v2_item.deleted","projects_v2_item.edited","projects_v2_item.reordered","projects_v2_item.restored","public","pull_request","pull_request.assigned","pull_request.auto_merge_disabled","pull_request.auto_merge_enabled","pull_request.closed","pull_request.converted_to_draft","pull_request.demilestoned","pull_request.dequeued","pull_request.edited","pull_request.enqueued","pull_request.labeled","pull_request.locked","pull_request.milestoned","pull_request.opened","pull_request.ready_for_review","pull_request.reopened","pull_request.review_request_removed","pull_request.review_requested","pull_request.synchronize","pull_request.unassigned","pull_request.unlabeled","pull_request.unlocked","pull_request_review","pull_request_review.dismissed","pull_request_review.edited","pull_request_review.submitted","pull_request_review_comment","pull_request_review_comment.created","pull_request_review_comment.deleted","pull_request_review_comment.edited","pull_request_review_thread","pull_request_review_thread.resolved","pull_request_review_thread.unresolved","push","registry_package","registry_package.published","registry_package.updated","release","release.created","release.deleted","release.edited","release.prereleased","release.published","release.released","release.unpublished","repository","repository.archived","repository.created","repository.deleted","repository.edited","repository.privatized","repository.publicized","repository.renamed","repository.transferred","repository.unarchived","repository_advisory","repository_advisory.published","repository_advisory.reported","repository_dispatch","repository_dispatch.sample.collected","repository_import","repository_ruleset","repository_ruleset.created","repository_ruleset.deleted","repository_ruleset.edited","repository_vulnerability_alert","repository_vulnerability_alert.create","repository_vulnerability_alert.dismiss","repository_vulnerability_alert.reopen","repository_vulnerability_alert.resolve","secret_scanning_alert","secret_scanning_alert.created","secret_scanning_alert.reopened","secret_scanning_alert.resolved","secret_scanning_alert.revoked","secret_scanning_alert.validated","secret_scanning_alert_location","secret_scanning_alert_location.created","security_advisory","security_advisory.published","security_advisory.updated","security_advisory.withdrawn","security_and_analysis","sponsorship","sponsorship.cancelled","sponsorship.created","sponsorship.edited","sponsorship.pending_cancellation","sponsorship.pending_tier_change","sponsorship.tier_changed","star","star.created","star.deleted","status","team","team.added_to_repository","team.created","team.deleted","team.edited","team.removed_from_repository","team_add","watch","watch.started","workflow_dispatch","workflow_job","workflow_job.completed","workflow_job.in_progress","workflow_job.queued","workflow_job.waiting","workflow_run","workflow_run.completed","workflow_run.in_progress","workflow_run.requested"];function handleEventHandlers(e,t,r){if(!e.hooks[t]){e.hooks[t]=[]}e.hooks[t].push(r)}function receiverOn(e,t,r){if(Array.isArray(t)){t.forEach((t=>receiverOn(e,t,r)));return}if(["*","error"].includes(t)){const e=t==="*"?"any":t;const r=`Using the "${t}" event with the regular Webhooks.on() function is not supported. Please use the Webhooks.on${e.charAt(0).toUpperCase()+e.slice(1)}() method instead`;throw new Error(r)}if(!Re.includes(t)){e.log.warn(`"${t}" is not a known webhook name (https://developer.github.com/v3/activity/events/types/)`)}handleEventHandlers(e,t,r)}function receiverOnAny(e,t){handleEventHandlers(e,"*",t)}function receiverOnError(e,t){handleEventHandlers(e,"error",t)}function wrapErrorHandler(e,t){let r;try{r=e(t)}catch(e){console.log('FATAL: Error occurred in "error" event handler');console.log(e)}if(r&&r.catch){r.catch((e=>{console.log('FATAL: Error occurred in "error" event handler');console.log(e)}))}}function getHooks(e,t,r){const n=[e.hooks[r],e.hooks["*"]];if(t){n.unshift(e.hooks[`${r}.${t}`])}return[].concat(...n.filter(Boolean))}function receiverHandle(e,t){const r=e.hooks.error||[];if(t instanceof Error){const e=Object.assign(new AggregateError([t],t.message),{event:t});r.forEach((t=>wrapErrorHandler(t,e)));return Promise.reject(e)}if(!t||!t.name){const e=new Error("Event name not passed");throw new AggregateError([e],e.message)}if(!t.payload){const e=new Error("Event name not passed");throw new AggregateError([e],e.message)}const n=getHooks(e,"action"in t.payload?t.payload.action:null,t.name);if(n.length===0){return Promise.resolve()}const s=[];const o=n.map((r=>{let n=Promise.resolve(t);if(e.transform){n=n.then(e.transform)}return n.then((e=>r(e))).catch((e=>s.push(Object.assign(e,{event:t}))))}));return Promise.all(o).then((()=>{if(s.length===0){return}const e=new AggregateError(s,s.map((e=>e.message)).join("\n"));Object.assign(e,{event:t});r.forEach((t=>wrapErrorHandler(t,e)));throw e}))}function removeListener(e,t,r){if(Array.isArray(t)){t.forEach((t=>removeListener(e,t,r)));return}if(!e.hooks[t]){return}for(let n=e.hooks[t].length-1;n>=0;n--){if(e.hooks[t][n]===r){e.hooks[t].splice(n,1);return}}}function createEventHandler(e){const t={hooks:{},log:createLogger(e&&e.log)};if(e&&e.transform){t.transform=e.transform}return{on:receiverOn.bind(null,t),onAny:receiverOnAny.bind(null,t),onError:receiverOnError.bind(null,t),removeListener:removeListener.bind(null,t),receive:receiverHandle.bind(null,t)}}async function verifyAndReceive(e,t){const r=await verify(e.secret,t.payload,t.signature).catch((()=>false));if(!r){const r=new Error("[@octokit/webhooks] signature does not match event payload and secret");return e.eventHandler.receive(Object.assign(r,{event:t,status:400}))}let n;try{n=JSON.parse(t.payload)}catch(e){e.message="Invalid JSON";e.status=400;throw new AggregateError([e],e.message)}return e.eventHandler.receive({id:t.id,name:t.name,payload:n})}var Se=null&&["x-github-event","x-hub-signature-256","x-github-delivery"];function getMissingHeaders(e){return Se.filter((t=>!(t in e.headers)))}function getPayload(e){if(typeof e.body==="object"&&"rawBody"in e&&e.rawBody instanceof Buffer){return Promise.resolve(e.rawBody.toString("utf8"))}else if(typeof e.body==="string"){return Promise.resolve(e.body)}return new Promise(((t,r)=>{let n=[];e.on("error",(e=>r(new AggregateError([e],e.message))));e.on("data",(e=>n.push(e)));e.on("end",(()=>setImmediate(t,n.length===1?n[0].toString("utf8"):Buffer.concat(n).toString("utf8"))))}))}function onUnhandledRequestDefault(e,t){t.writeHead(404,{"content-type":"application/json"});t.end(JSON.stringify({error:`Unknown route: ${e.method} ${e.url}`}))}async function middleware(e,t,r,n,s){let o;try{o=new URL(r.url,"http://localhost").pathname}catch(e){n.writeHead(422,{"content-type":"application/json"});n.end(JSON.stringify({error:`Request URL could not be parsed: ${r.url}`}));return true}if(o!==t.path){s?.();return false}else if(r.method!=="POST"){onUnhandledRequestDefault(r,n);return true}if(!r.headers["content-type"]||!r.headers["content-type"].startsWith("application/json")){n.writeHead(415,{"content-type":"application/json",accept:"application/json"});n.end(JSON.stringify({error:`Unsupported "Content-Type" header value. Must be "application/json"`}));return true}const i=getMissingHeaders(r).join(", ");if(i){n.writeHead(400,{"content-type":"application/json"});n.end(JSON.stringify({error:`Required headers missing: ${i}`}));return true}const a=r.headers["x-github-event"];const c=r.headers["x-hub-signature-256"];const u=r.headers["x-github-delivery"];t.log.debug(`${a} event received (id: ${u})`);let A=false;const l=setTimeout((()=>{A=true;n.statusCode=202;n.end("still processing\n")}),9e3).unref();try{const t=await getPayload(r);await e.verifyAndReceive({id:u,name:a,payload:t,signature:c});clearTimeout(l);if(A)return true;n.end("ok\n");return true}catch(e){clearTimeout(l);if(A)return true;const r=Array.from(e.errors)[0];const s=r.message?`${r.name}: ${r.message}`:"Error: An Unspecified error occurred";n.statusCode=typeof r.status!=="undefined"?r.status:500;t.log.error(e);n.end(JSON.stringify({error:s}));return true}}function createNodeMiddleware(e,{path:t="/api/github/webhooks",log:r=createLogger()}={}){return middleware.bind(null,e,{path:t,log:r})}var Fe=class{sign;verify;on;onAny;onError;removeListener;receive;verifyAndReceive;constructor(e){if(!e||!e.secret){throw new Error("[@octokit/webhooks] options.secret required")}const t={eventHandler:createEventHandler(e),secret:e.secret,hooks:{},log:createLogger(e.log)};this.sign=sign.bind(null,e.secret);this.verify=verify2.bind(null,e.secret);this.on=t.eventHandler.on;this.onAny=t.eventHandler.onAny;this.onError=t.eventHandler.onError;this.removeListener=t.eventHandler.removeListener;this.receive=t.eventHandler.receive;this.verifyAndReceive=verifyAndReceive.bind(null,t)}};function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&process.version!==undefined){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}function register(e,t,r,n){if(typeof r!=="function"){throw new Error("method for before hook must be a function")}if(!n){n={}}if(Array.isArray(t)){return t.reverse().reduce(((t,r)=>register.bind(null,e,r,t,n)),r)()}return Promise.resolve().then((()=>{if(!e.registry[t]){return r(n)}return e.registry[t].reduce(((e,t)=>t.hook.bind(null,e,n)),r)()}))}function addHook(e,t,r,n){const s=n;if(!e.registry[r]){e.registry[r]=[]}if(t==="before"){n=(e,t)=>Promise.resolve().then(s.bind(null,t)).then(e.bind(null,t))}if(t==="after"){n=(e,t)=>{let r;return Promise.resolve().then(e.bind(null,t)).then((e=>{r=e;return s(r,t)})).then((()=>r))}}if(t==="error"){n=(e,t)=>Promise.resolve().then(e.bind(null,t)).catch((e=>s(e,t)))}e.registry[r].push({hook:n,orig:s})}function removeHook(e,t,r){if(!e.registry[t]){return}const n=e.registry[t].map((e=>e.orig)).indexOf(r);if(n===-1){return}e.registry[t].splice(n,1)}const De=Function.bind;const Ne=De.bind(De);function bindApi(e,t,r){const n=Ne(removeHook,null).apply(null,r?[t,r]:[t]);e.api={remove:n};e.remove=n;["before","error","after","wrap"].forEach((n=>{const s=r?[t,n,r]:[t,n];e[n]=e.api[n]=Ne(addHook,null).apply(null,s)}))}function Singular(){const e=Symbol("Singular");const t={registry:{}};const r=register.bind(null,t,e);bindApi(r,t,e);return r}function Collection(){const e={registry:{}};const t=register.bind(null,e);bindApi(t,e);return t}const Pe={Singular:Singular,Collection:Collection};var Le="0.0.0-development";var Ue=`octokit-endpoint.js/${Le} ${getUserAgent()}`;var Me={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Ue},mediaType:{format:""}};function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce(((t,r)=>{t[r.toLowerCase()]=e[r];return t}),{})}function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function mergeDeep(e,t){const r=Object.assign({},e);Object.keys(t).forEach((n=>{if(isPlainObject(t[n])){if(!(n in e))Object.assign(r,{[n]:t[n]});else r[n]=mergeDeep(e[n],t[n])}else{Object.assign(r,{[n]:t[n]})}}));return r}function removeUndefinedProperties(e){for(const t in e){if(e[t]===void 0){delete e[t]}}return e}function merge(e,t,r){if(typeof t==="string"){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else{r=Object.assign({},t)}r.headers=lowercaseKeys(r.headers);removeUndefinedProperties(r);removeUndefinedProperties(r.headers);const n=mergeDeep(e||{},r);if(r.url==="/graphql"){if(e&&e.mediaType.previews?.length){n.mediaType.previews=e.mediaType.previews.filter((e=>!n.mediaType.previews.includes(e))).concat(n.mediaType.previews)}n.mediaType.previews=(n.mediaType.previews||[]).map((e=>e.replace(/-preview/,"")))}return n}function addQueryParameters(e,t){const r=/\?/.test(e)?"&":"?";const n=Object.keys(t);if(n.length===0){return e}return e+r+n.map((e=>{if(e==="q"){return"q="+t.q.split("+").map(encodeURIComponent).join("+")}return`${e}=${encodeURIComponent(t[e])}`})).join("&")}var xe=/\{[^}]+\}/g;function removeNonChars(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function extractUrlVariableNames(e){const t=e.match(xe);if(!t){return[]}return t.map(removeNonChars).reduce(((e,t)=>e.concat(t)),[])}function omit(e,t){const r={__proto__:null};for(const n of Object.keys(e)){if(t.indexOf(n)===-1){r[n]=e[n]}}return r}function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){if(!/%[0-9A-Fa-f]/.test(e)){e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")}return e})).join("")}function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(e,t,r){t=e==="+"||e==="#"?encodeReserved(t):encodeUnreserved(t);if(r){return encodeUnreserved(r)+"="+t}else{return t}}function isDefined(e){return e!==void 0&&e!==null}function isKeyOperator(e){return e===";"||e==="&"||e==="?"}function getValues(e,t,r,n){var s=e[r],o=[];if(isDefined(s)&&s!==""){if(typeof s==="string"||typeof s==="number"||typeof s==="boolean"){s=s.toString();if(n&&n!=="*"){s=s.substring(0,parseInt(n,10))}o.push(encodeValue(t,s,isKeyOperator(t)?r:""))}else{if(n==="*"){if(Array.isArray(s)){s.filter(isDefined).forEach((function(e){o.push(encodeValue(t,e,isKeyOperator(t)?r:""))}))}else{Object.keys(s).forEach((function(e){if(isDefined(s[e])){o.push(encodeValue(t,s[e],e))}}))}}else{const e=[];if(Array.isArray(s)){s.filter(isDefined).forEach((function(r){e.push(encodeValue(t,r))}))}else{Object.keys(s).forEach((function(r){if(isDefined(s[r])){e.push(encodeUnreserved(r));e.push(encodeValue(t,s[r].toString()))}}))}if(isKeyOperator(t)){o.push(encodeUnreserved(r)+"="+e.join(","))}else if(e.length!==0){o.push(e.join(","))}}}}else{if(t===";"){if(isDefined(s)){o.push(encodeUnreserved(r))}}else if(s===""&&(t==="&"||t==="?")){o.push(encodeUnreserved(r)+"=")}else if(s===""){o.push("")}}return o}function parseUrl(e){return{expand:expand.bind(null,e)}}function expand(e,t){var r=["+","#",".","/",";","?","&"];e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,n,s){if(n){let e="";const s=[];if(r.indexOf(n.charAt(0))!==-1){e=n.charAt(0);n=n.substr(1)}n.split(/,/g).forEach((function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);s.push(getValues(t,e,n[1],n[2]||n[3]))}));if(e&&e!=="+"){var o=",";if(e==="?"){o="&"}else if(e!=="#"){o=e}return(s.length!==0?e:"")+s.join(o)}else{return s.join(",")}}else{return encodeReserved(s)}}));if(e==="/"){return e}else{return e.replace(/\/$/,"")}}function parse(e){let t=e.method.toUpperCase();let r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let n=Object.assign({},e.headers);let s;let o=omit(e,["method","baseUrl","url","headers","request","mediaType"]);const i=extractUrlVariableNames(r);r=parseUrl(r).expand(o);if(!/^http/.test(r)){r=e.baseUrl+r}const a=Object.keys(e).filter((e=>i.includes(e))).concat("baseUrl");const c=omit(o,a);const u=/application\/octet-stream/i.test(n.accept);if(!u){if(e.mediaType.format){n.accept=n.accept.split(/,/).map((t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")}if(r.endsWith("/graphql")){if(e.mediaType.previews?.length){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map((t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`})).join(",")}}}if(["GET","HEAD"].includes(t)){r=addQueryParameters(r,c)}else{if("data"in c){s=c.data}else{if(Object.keys(c).length){s=c}}}if(!n["content-type"]&&typeof s!=="undefined"){n["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(t)&&typeof s==="undefined"){s=""}return Object.assign({method:t,url:r,headers:n},typeof s!=="undefined"?{body:s}:null,e.request?{request:e.request}:null)}function endpointWithDefaults(e,t,r){return parse(merge(e,t,r))}function withDefaults(e,t){const r=merge(e,t);const n=endpointWithDefaults.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:withDefaults.bind(null,r),merge:merge.bind(null,r),parse:parse})}var Ge=withDefaults(null,Me);class RequestError extends Error{name;status;request;response;constructor(e,t,r){super(e);this.name="HttpError";this.status=Number.parseInt(t);if(Number.isNaN(this.status)){this.status=0}if("response"in r){this.response=r.response}const n=Object.assign({},r.request);if(r.request.headers.authorization){n.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})}n.url=n.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]");this.request=n}}var je="0.0.0-development";var Ve={headers:{"user-agent":`octokit-request.js/${je} ${getUserAgent()}`}};function dist_bundle_isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function fetchWrapper(e){const t=e.request?.fetch||globalThis.fetch;if(!t){throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing")}const r=e.request?.log||console;const n=e.request?.parseSuccessResponseBody!==false;const s=dist_bundle_isPlainObject(e.body)||Array.isArray(e.body)?JSON.stringify(e.body):e.body;const o=Object.fromEntries(Object.entries(e.headers).map((([e,t])=>[e,String(t)])));let i;try{i=await t(e.url,{method:e.method,body:s,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(t){let r="Unknown Error";if(t instanceof Error){if(t.name==="AbortError"){t.status=500;throw t}r=t.message;if(t.name==="TypeError"&&"cause"in t){if(t.cause instanceof Error){r=t.cause.message}else if(typeof t.cause==="string"){r=t.cause}}}const n=new RequestError(r,500,{request:e});n.cause=t;throw n}const a=i.status;const c=i.url;const u={};for(const[e,t]of i.headers){u[e]=t}const A={url:c,status:a,headers:u,data:""};if("deprecation"in u){const t=u.link&&u.link.match(/<([^>]+)>; rel="deprecation"/);const n=t&&t.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${u.sunset}${n?`. See ${n}`:""}`)}if(a===204||a===205){return A}if(e.method==="HEAD"){if(a<400){return A}throw new RequestError(i.statusText,a,{response:A,request:e})}if(a===304){A.data=await getResponseData(i);throw new RequestError("Not modified",a,{response:A,request:e})}if(a>=400){A.data=await getResponseData(i);throw new RequestError(toErrorMessage(A.data),a,{response:A,request:e})}A.data=n?await getResponseData(i):i.body;return A}async function getResponseData(e){const t=e.headers.get("content-type");if(/application\/json/.test(t)){return e.json().catch((()=>e.text())).catch((()=>""))}if(!t||/^text\/|charset=utf-8$/.test(t)){return e.text()}return e.arrayBuffer()}function toErrorMessage(e){if(typeof e==="string"){return e}if(e instanceof ArrayBuffer){return"Unknown error"}if("message"in e){const t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map((e=>JSON.stringify(e))).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function dist_bundle_withDefaults(e,t){const r=e.defaults(t);const newApi=function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook){return fetchWrapper(r.parse(n))}const request2=(e,t)=>fetchWrapper(r.parse(r.merge(e,t)));Object.assign(request2,{endpoint:r,defaults:dist_bundle_withDefaults.bind(null,r)});return n.request.hook(request2,n)};return Object.assign(newApi,{endpoint:r,defaults:dist_bundle_withDefaults.bind(null,r)})}var He=dist_bundle_withDefaults(Ge,Ve);var qe="0.0.0-development";function _buildMessageForResponseErrors(e){return`Request failed due to following response errors:\n`+e.errors.map((e=>` - ${e.message}`)).join("\n")}var Ye=class extends Error{constructor(e,t,r){super(_buildMessageForResponseErrors(r));this.request=e;this.headers=t;this.response=r;this.errors=r.errors;this.data=r.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}name="GraphqlResponseError";errors;data};var Ke=["method","baseUrl","url","headers","request","query","mediaType"];var Je=["query","method","url"];var $e=/\/api\/v3\/?$/;function graphql(e,t,r){if(r){if(typeof t==="string"&&"query"in r){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const e in r){if(!Je.includes(e))continue;return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}}const n=typeof t==="string"?Object.assign({query:t},r):t;const s=Object.keys(n).reduce(((e,t)=>{if(Ke.includes(t)){e[t]=n[t];return e}if(!e.variables){e.variables={}}e.variables[t]=n[t];return e}),{});const o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;if($e.test(o)){s.url=o.replace($e,"/api/graphql")}return e(s).then((e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers)){t[r]=e.headers[r]}throw new Ye(s,t,e.data)}return e.data.data}))}function graphql_dist_bundle_withDefaults(e,t){const r=e.defaults(t);const newApi=(e,t)=>graphql(r,e,t);return Object.assign(newApi,{defaults:graphql_dist_bundle_withDefaults.bind(null,r),endpoint:r.endpoint})}var We=graphql_dist_bundle_withDefaults(He,{headers:{"user-agent":`octokit-graphql.js/${qe} ${getUserAgent()}`},method:"POST",url:"/graphql"});function withCustomRequest(e){return graphql_dist_bundle_withDefaults(e,{method:"POST",url:"/graphql"})}var ze=/^v1\./;var Ze=/^ghs_/;var Xe=/^ghu_/;async function auth(e){const t=e.split(/\./).length===3;const r=ze.test(e)||Ze.test(e);const n=Xe.test(e);const s=t?"app":r?"installation":n?"user-to-server":"oauth";return{type:"token",token:e,tokenType:s}}function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`bearer ${e}`}return`token ${e}`}async function hook(e,t,r,n){const s=t.endpoint.merge(r,n);s.headers.authorization=withAuthorizationPrefix(e);return t(s)}var et=function createTokenAuth2(e){if(!e){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof e!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}e=e.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,e),{hook:hook.bind(null,e)})};const tt="6.1.2";const noop=()=>{};const rt=console.warn.bind(console);const nt=console.error.bind(console);const st=`octokit-core.js/${tt} ${getUserAgent()}`;class Octokit{static VERSION=tt;static defaults(e){const t=class extends(this){constructor(...t){const r=t[0]||{};if(typeof e==="function"){super(e(r));return}super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugins=[];static plugin(...e){const t=this.plugins;const r=class extends(this){static plugins=t.concat(e.filter((e=>!t.includes(e))))};return r}constructor(e={}){const t=new Pe.Collection;const r={baseUrl:He.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${st}`:st;if(e.baseUrl){r.baseUrl=e.baseUrl}if(e.previews){r.mediaType.previews=e.previews}if(e.timeZone){r.headers["time-zone"]=e.timeZone}this.request=He.defaults(r);this.graphql=withCustomRequest(this.request).defaults(r);this.log=Object.assign({debug:noop,info:noop,warn:rt,error:nt},e.log);this.hook=t;if(!e.authStrategy){if(!e.auth){this.auth=async()=>({type:"unauthenticated"})}else{const r=et(e.auth);t.wrap("request",r.hook);this.auth=r}}else{const{authStrategy:r,...n}=e;const s=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",s.hook);this.auth=s}const n=this.constructor;for(let t=0;t({async next(){if(!a)return{done:true};try{const e=await s({method:o,url:a,headers:i});const t=normalizePaginatedListResponse(e);a=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1];return{value:t}}catch(e){if(e.status!==409)throw e;a="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(e,t,r,n){if(typeof r==="function"){n=r;r=void 0}return gather(e,[],iterator(e,t,r)[Symbol.asyncIterator](),n)}function gather(e,t,r,n){return r.next().then((s=>{if(s.done){return t}let o=false;function done(){o=true}t=t.concat(n?n(s.value,done):s.value.data);if(o){return t}return gather(e,t,r,n)}))}var it=Object.assign(paginate,{iterator:iterator});var at=null&&["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/copilot/usage","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/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}/copilot/billing/seats","GET /orgs/{org}/copilot/usage","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}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/team/{team_slug}/copilot/usage","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/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","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}/activity","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}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/environments/{environment_name}/secrets","GET /repos/{owner}/{repo}/environments/{environment_name}/variables","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}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","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 /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/social_accounts","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}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(e){if(typeof e==="string"){return at.includes(e)}else{return false}}function paginateRest(e){return{paginate:Object.assign(paginate.bind(null,e),{iterator:iterator.bind(null,e)})}}paginateRest.VERSION=ot;const ct="13.2.4";const ut={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"],usageMetricsForEnterprise:["GET /enterprises/{enterprise}/copilot/usage"],usageMetricsForOrg:["GET /orgs/{org}/copilot/usage"],usageMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/usage"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};var At=ut;const lt=new Map;for(const[e,t]of Object.entries(At)){for(const[r,n]of Object.entries(t)){const[t,s,o]=n;const[i,a]=t.split(/ /);const c=Object.assign({method:i,url:a},s);if(!lt.has(e)){lt.set(e,new Map)}lt.get(e).set(r,{scope:e,methodName:r,endpointDefaults:c,decorations:o})}}const dt={has({scope:e},t){return lt.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:true,writable:true,enumerable:true}},defineProperty(e,t,r){Object.defineProperty(e.cache,t,r);return true},deleteProperty(e,t){delete e.cache[t];return true},ownKeys({scope:e}){return[...lt.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n]){return r[n]}const s=lt.get(t).get(n);if(!s){return void 0}const{endpointDefaults:o,decorations:i}=s;if(i){r[n]=decorate(e,t,n,o,i)}else{r[n]=e.request.defaults(o)}return r[n]}};function endpointsToMethods(e){const t={};for(const r of lt.keys()){t[r]=new Proxy({octokit:e,scope:r,cache:{}},dt)}return t}function decorate(e,t,r,n,s){const o=e.request.defaults(n);function withDecorations(...n){let i=o.endpoint.merge(...n);if(s.mapToData){i=Object.assign({},i,{data:i[s.mapToData],[s.mapToData]:void 0});return o(i)}if(s.renamed){const[n,o]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(s.deprecated){e.log.warn(s.deprecated)}if(s.renamedParameters){const i=o.endpoint.merge(...n);for(const[n,o]of Object.entries(s.renamedParameters)){if(n in i){e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${o}" instead`);if(!(o in i)){i[o]=i[n]}delete i[n]}}return o(i)}return o(...n)}return Object.assign(withDecorations,o)}function restEndpointMethods(e){const t=endpointsToMethods(e);return{rest:t}}restEndpointMethods.VERSION=ct;function legacyRestEndpointMethods(e){const t=endpointsToMethods(e);return{...t,rest:t}}legacyRestEndpointMethods.VERSION=ct;var pt=__nccwpck_require__(63251);async function errorRequest(e,t,r,n){if(!r.request||!r.request.request){throw r}if(r.status>=400&&!e.doNotRetry.includes(r.status)){const s=n.request.retries!=null?n.request.retries:e.retries;const o=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,s,o)}throw r}async function wrapRequest(e,t,r,n){const s=new pt;s.on("failed",(function(t,r){const s=~~t.request.request.retries;const o=~~t.request.request.retryAfter;n.request.retryCount=r.retryCount+1;if(s>r.retryCount){return o*e.retryAfterBaseValue}}));return s.schedule(requestWithGraphqlErrorHandling.bind(null,e,t,r),n)}async function requestWithGraphqlErrorHandling(e,t,r,n){const s=await r(r,n);if(s.data&&s.data.errors&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){const r=new RequestError(s.data.errors[0].message,500,{request:n,response:s});return errorRequest(e,t,r,n)}return s}var ft="0.0.0-development";function retry(e,t){const r=Object.assign({enabled:true,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,422,451],retries:3},t.retry);if(r.enabled){e.hook.error("request",errorRequest.bind(null,r,e));e.hook.wrap("request",wrapRequest.bind(null,r,e))}return{retry:{retryRequest:(e,t,r)=>{e.request.request=Object.assign({},e.request.request,{retries:t,retryAfter:r});return e}}}}retry.VERSION=ft;var gt="0.0.0-development";var dist_bundle_noop=()=>Promise.resolve();function dist_bundle_wrapRequest(e,t,r){return e.retryLimiter.schedule(doRequest,e,t,r)}async function doRequest(e,t,r){const n=r.method!=="GET"&&r.method!=="HEAD";const{pathname:s}=new URL(r.url,"http://github.test");const o=r.method==="GET"&&s.startsWith("/search/");const i=s.startsWith("/graphql");const a=~~t.retryCount;const c=a>0?{priority:0,weight:0}:{};if(e.clustering){c.expiration=1e3*60}if(n||i){await e.write.key(e.id).schedule(c,dist_bundle_noop)}if(n&&e.triggersNotification(s)){await e.notifications.key(e.id).schedule(c,dist_bundle_noop)}if(o){await e.search.key(e.id).schedule(c,dist_bundle_noop)}const u=e.global.key(e.id).schedule(c,t,r);if(i){const e=await u;if(e.data.errors!=null&&e.data.errors.some((e=>e.type==="RATE_LIMITED"))){const t=Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:e,data:e.data});throw t}}return u}var ht=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];function routeMatcher(e){const t=e.map((e=>e.split("/").map((e=>e.startsWith("{")?"(?:.+?)":e)).join("/")));const r=`^(?:${t.map((e=>`(?:${e})`)).join("|")})[^/]*$`;return new RegExp(r,"i")}var mt=routeMatcher(ht);var Et=mt.test.bind(mt);var yt={};var createGroups=function(e,t){yt.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t});yt.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t});yt.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t});yt.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function throttling(e,t){const{enabled:r=true,Bottleneck:n=pt,id:s="no-id",timeout:o=1e3*60*2,connection:i}=t.throttle||{};if(!r){return{}}const a={connection:i,timeout:o};if(yt.global==null){createGroups(n,a)}const c=Object.assign({clustering:i!=null,triggersNotification:Et,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,retryLimiter:new n,id:s,...yt},t.throttle);if(typeof c.onSecondaryRateLimit!=="function"||typeof c.onRateLimit!=="function"){throw new Error(`octokit/plugin-throttling error:\n You must pass the onSecondaryRateLimit and onRateLimit error handlers.\n See https://octokit.github.io/rest.js/#throttling\n\n const octokit = new Octokit({\n throttle: {\n onSecondaryRateLimit: (retryAfter, options) => {/* ... */},\n onRateLimit: (retryAfter, options) => {/* ... */}\n }\n })\n `)}const u={};const A=new n.Events(u);u.on("secondary-limit",c.onSecondaryRateLimit);u.on("rate-limit",c.onRateLimit);u.on("error",(t=>e.log.warn("Error in throttling-plugin limit handler",t)));c.retryLimiter.on("failed",(async function(t,r){const[n,s,o]=r.args;const{pathname:i}=new URL(o.url,"http://github.test");const a=i.startsWith("/graphql")&&t.status!==401;if(!(a||t.status===403)){return}const c=~~s.retryCount;s.retryCount=c;o.request.retryCount=c;const{wantRetry:u,retryAfter:l=0}=await async function(){if(/\bsecondary rate\b/i.test(t.message)){const r=Number(t.response.headers["retry-after"])||n.fallbackSecondaryRateRetryAfter;const s=await A.trigger("secondary-limit",r,o,e,c);return{wantRetry:s,retryAfter:r}}if(t.response.headers!=null&&t.response.headers["x-ratelimit-remaining"]==="0"||(t.response.data?.errors??[]).some((e=>e.type==="RATE_LIMITED"))){const r=new Date(~~t.response.headers["x-ratelimit-reset"]*1e3).getTime();const n=Math.max(Math.ceil((r-Date.now())/1e3)+1,0);const s=await A.trigger("rate-limit",n,o,e,c);return{wantRetry:s,retryAfter:n}}return{}}();if(u){s.retryCount++;return l*n.retryAfterBaseValue}}));e.hook.wrap("request",dist_bundle_wrapRequest.bind(null,c));return{}}throttling.VERSION=gt;throttling.triggersNotification=Et;var It=__nccwpck_require__(37484);var Ct=__nccwpck_require__(93228);var bt=__nccwpck_require__(18889);function jsonString(){return Oe.Transform(Oe.String()).Decode((e=>JSON.parse(e))).Encode((e=>JSON.stringify(e)))}var Bt=Oe.Object({state_id:Oe.String(),output:jsonString()});var Qt=new RegExp("^([0-9a-zA-Z-._]+)\\/([0-9a-zA-Z-._]+)(?::([0-9a-zA-Z-._]+))?(?:@([0-9a-zA-Z-._]+(?:\\/[0-9a-zA-Z-._]+)*))?$");var Tt=/^https?:\/\/\S+?$/;function githubPluginType(){return Oe.Transform(Oe.String()).Decode((e=>{if(Tt.test(e)){return e}const t=e.match(Qt);if(!t){throw new Error(`Invalid plugin name: ${e}`)}return{owner:t[1],repo:t[2],workflowId:t[3]||"compute.yml",ref:t[4]||void 0}})).Encode((e=>{if(typeof e==="string"){return e}return`${e.owner}/${e.repo}${e.workflowId?":"+e.workflowId:""}${e.ref?"@"+e.ref:""}`}))}function stringLiteralUnion(e){const t=e.map((e=>Oe.Literal(e)));return Oe.Union(t)}var vt=stringLiteralUnion(Re);var wt=Oe.Array(Oe.Object({id:Oe.Optional(Oe.String()),plugin:githubPluginType(),with:Oe.Record(Oe.String(),Oe.Unknown(),{default:{}}),runsOn:Oe.Array(vt,{default:[]})}),{minItems:1,default:[]});var _t=Oe.Array(Oe.Object({name:Oe.Optional(Oe.String()),uses:wt,skipBotEvents:Oe.Boolean({default:true})}),{default:[]});var Ot=Oe.Object({plugins:_t},{additionalProperties:false});var kt=new ke.StandardValidator(Ot);var Rt=Oe.Union(Re.map((e=>Oe.Literal(e))));var St=Oe.Object({description:Oe.String({minLength:1}),"ubiquity:example":Oe.String({minLength:1})});var Ft=Oe.Object({name:Oe.String({minLength:1}),description:Oe.Optional(Oe.String({default:""})),commands:Oe.Optional(Oe.Record(Oe.String(),St,{default:{}})),"ubiquity:listeners":Oe.Optional(Oe.Array(Rt,{default:[]})),configuration:Oe.Optional(Oe.Record(Oe.String(),Oe.Any(),{default:{}}))});var Dt=new ke.StandardValidator(Ft);var Nt=".github/.ubiquity-os.config.yml";var Pt=".github/.ubiquity-os.config.dev.yml";var Lt=".ubiquity-os";var Ut=`-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs96DOU+JqM8SyNXOB6u3\nuBKIFiyrcST/LZTYN6y7LeJlyCuGPqSDrWCfjU9Ph5PLf9TWiNmeM8DGaOpwEFC7\nU3NRxOSglo4plnQ5zRwIHHXvxyK400sQP2oISXymISuBQWjEIqkC9DybQrKwNzf+\nI0JHWPqmwMIw26UvVOtXGOOWBqTkk+N2+/9f8eDIJP5QQVwwszc8s1rXOsLMlVIf\nwShw7GO4E2jyK8TSJKpyjV8eb1JJMDwFhPiRrtZfQJUtDf2mV/67shQww61BH2Y/\nPlnalo58kWIbkqZoq1yJrL5sFb73osM5+vADTXVn79bkvea7W19nSkdMiarYt4Hq\nJQIDAQAB\n-----END PUBLIC KEY-----\n`;var Mt=975031;var xt=178941584;var Gt={throttle:{onAbuseLimit:(e,t,r)=>{r.log.warn(`Abuse limit hit with "${t.method} ${t.url}", retrying in ${e} seconds.`);return true},onRateLimit:(e,t,r)=>{r.log.warn(`Rate limit hit with "${t.method} ${t.url}", retrying in ${e} seconds.`);return true},onSecondaryRateLimit:(e,t,r)=>{r.log.warn(`Secondary rate limit hit with "${t.method} ${t.url}", retrying in ${e} seconds.`);return true}}};var jt=Octokit.plugin(throttling,retry,paginateRest,restEndpointMethods).defaults((e=>Object.assign({},Gt,e)));async function verifySignature(e,t,r){try{const n={stateId:t.stateId,eventName:t.eventName,eventPayload:t.eventPayload,settings:t.settings,authToken:t.authToken,ref:t.ref};console.log(JSON.stringify(t));const s=e.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").trim();const o=Uint8Array.from(atob(s),(e=>e.charCodeAt(0)));const i=await crypto.subtle.importKey("spki",o,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},true,["verify"]);const a=Uint8Array.from(atob(r),(e=>e.charCodeAt(0)));const c=(new TextEncoder).encode(JSON.stringify(n));return await crypto.subtle.verify("RSASSA-PKCS1-v1_5",i,a,c)}catch(e){console.error(e);return false}}function sanitizeMetadata(e){return JSON.stringify(e,null,2).replace(//g,">").replace(/--/g,"--")}var Vt=Oe.Object({stateId:Oe.String(),eventName:Oe.String(),eventPayload:Oe.Record(Oe.String(),Oe.Any()),authToken:Oe.String(),settings:Oe.Record(Oe.String(),Oe.Any()),ref:Oe.String(),signature:Oe.String()});function createPlugin(e,t,r){const n={kernelPublicKey:r?.kernelPublicKey||Ut,logLevel:r?.logLevel||LOG_LEVEL.INFO,postCommentOnError:r?.postCommentOnError||true,settingsSchema:r?.settingsSchema,envSchema:r?.envSchema};const s=new Hono;s.get("/manifest.json",(e=>e.json(t)));s.post("/",(async t=>{if(t.req.header("content-type")!=="application/json"){throw new HTTPException(400,{message:"Content-Type must be application/json"})}const r=Value3.Decode(Vt,await t.req.json());const s=r.signature;if(!await verifySignature(n.kernelPublicKey,r,s)){throw new HTTPException(400,{message:"Invalid signature"})}let o;if(n.settingsSchema){o=Value3.Decode(n.settingsSchema,Value3.Default(n.settingsSchema,r.settings))}else{o=r.settings}let i;if(n.envSchema){i=Value3.Decode(n.envSchema,Value3.Default(n.envSchema,t.env))}else{i=t.env}const a={eventName:r.eventName,payload:r.eventPayload,octokit:new jt({auth:r.authToken}),config:o,env:i,logger:new Logs(n.logLevel)};try{const n=await e(a);return t.json({stateId:r.stateId,output:n})}catch(e){console.error(e);let t;if(e instanceof Error){t=a.logger.error(`Error: ${e}`,{error:e})}else if(e instanceof LogReturn){t=e}else{t=a.logger.error(`Error: ${e}`)}if(n.postCommentOnError&&t){await postComment(a,t)}throw new HTTPException(500,{message:"Unexpected error"})}}));return s}async function postComment(e,t){if("issue"in e.payload&&e.payload.repository?.owner?.login){await e.octokit.rest.issues.createComment({owner:e.payload.repository.owner.login,repo:e.payload.repository.name,issue_number:e.payload.issue.number,body:`${t.logMessage.diff}\n\x3c!--\n${sanitizeMetadata(t.metadata)}\n--\x3e`})}else{e.logger.info("Cannot post comment because issue is not found in the payload")}}(0,bt.config)();var Ht=Oe.Object({stateId:Oe.String(),eventName:Oe.String(),eventPayload:Oe.String(),authToken:Oe.String(),settings:Oe.String(),ref:Oe.String(),signature:Oe.String()});async function createActionsPlugin(e,t){const r={logLevel:t?.logLevel||i.INFO,postCommentOnError:t?.postCommentOnError||true,settingsSchema:t?.settingsSchema,envSchema:t?.envSchema,kernelPublicKey:t?.kernelPublicKey||Ut};const n=process.env.PLUGIN_GITHUB_TOKEN;if(!n){It.setFailed("Error: PLUGIN_GITHUB_TOKEN env is not set");return}const s=Decode(Ht,Ct.context.payload.inputs);const o=s.signature;if(!await verifySignature(r.kernelPublicKey,s,o)){It.setFailed(`Error: Invalid signature`);return}let a;if(r.settingsSchema){a=Decode(r.settingsSchema,value_Default(r.settingsSchema,JSON.parse(s.settings)))}else{a=JSON.parse(s.settings)}let A;if(r.envSchema){A=Decode(r.envSchema,value_Default(r.envSchema,process.env))}else{A=process.env}const l={eventName:s.eventName,payload:JSON.parse(s.eventPayload),octokit:new jt({auth:s.authToken}),config:a,env:A,logger:new u(r.logLevel)};try{const t=await e(l);It.setOutput("result",t);await returnDataToKernel(n,s.stateId,t)}catch(e){console.error(e);let t;if(e instanceof Error){It.setFailed(e);t=l.logger.error(`Error: ${e}`,{error:e})}else if(e instanceof c){It.setFailed(e.logMessage.raw);t=e}else{It.setFailed(`Error: ${e}`);t=l.logger.error(`Error: ${e}`)}if(r.postCommentOnError&&t){await postComment2(l,t)}}}async function postComment2(e,t){if("issue"in e.payload&&e.payload.repository?.owner?.login){await e.octokit.rest.issues.createComment({owner:e.payload.repository.owner.login,repo:e.payload.repository.name,issue_number:e.payload.issue.number,body:`${t.logMessage.diff}\n\x3c!--\n${getGithubWorkflowRunUrl()}\n${sanitizeMetadata(t.metadata)}\n--\x3e`})}else{e.logger.info("Cannot post comment because issue is not found in the payload")}}function getGithubWorkflowRunUrl(){return`${Ct.context.payload.repository?.html_url}/actions/runs/${Ct.context.runId}`}async function returnDataToKernel(e,t,r){const n=new jt({auth:e});await n.rest.repos.createDispatchEvent({owner:Ct.context.repo.owner,repo:Ct.context.repo.repo,event_type:"return-data-to-ubiquity-os-kernel",client_payload:{state_id:t,output:r?JSON.stringify(r):null}})}async function getWatchedRepos(e){const{config:{watch:{optOut:t}}}=e;const r=new Set;const n=e.payload.repository.owner?.login;if(!n){throw new Error("No owner found in the payload")}const s=await getReposForOrg(e,n);s.forEach((e=>r.add(e.name.toLowerCase())));for(const e of t){r.forEach((t=>t.includes(e)?r.delete(t):null))}return Array.from(r).map((e=>s.find((t=>t.name.toLowerCase()===e)))).filter((e=>e!==undefined))}async function getReposForOrg(e,t){const{octokit:r}=e;try{return await r.paginate(r.rest.repos.listForOrg,{org:t,per_page:100})}catch(e){throw new Error(`Error getting repositories for org ${t}: `+JSON.stringify(e))}}class LuxonError extends Error{}class InvalidDateTimeError extends LuxonError{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class InvalidIntervalError extends LuxonError{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class InvalidDurationError extends LuxonError{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class ConflictingSpecificationError extends LuxonError{}class InvalidUnitError extends LuxonError{constructor(e){super(`Invalid unit ${e}`)}}class InvalidArgumentError extends LuxonError{}class ZoneIsAbstractError extends LuxonError{constructor(){super("Zone is an abstract class")}}const qt="numeric",Yt="short",Kt="long";const Jt={year:qt,month:qt,day:qt};const $t={year:qt,month:Yt,day:qt};const Wt={year:qt,month:Yt,day:qt,weekday:Yt};const zt={year:qt,month:Kt,day:qt};const Zt={year:qt,month:Kt,day:qt,weekday:Kt};const Xt={hour:qt,minute:qt};const er={hour:qt,minute:qt,second:qt};const tr={hour:qt,minute:qt,second:qt,timeZoneName:Yt};const rr={hour:qt,minute:qt,second:qt,timeZoneName:Kt};const nr={hour:qt,minute:qt,hourCycle:"h23"};const sr={hour:qt,minute:qt,second:qt,hourCycle:"h23"};const or={hour:qt,minute:qt,second:qt,hourCycle:"h23",timeZoneName:Yt};const ir={hour:qt,minute:qt,second:qt,hourCycle:"h23",timeZoneName:Kt};const ar={year:qt,month:qt,day:qt,hour:qt,minute:qt};const cr={year:qt,month:qt,day:qt,hour:qt,minute:qt,second:qt};const ur={year:qt,month:Yt,day:qt,hour:qt,minute:qt};const Ar={year:qt,month:Yt,day:qt,hour:qt,minute:qt,second:qt};const lr={year:qt,month:Yt,day:qt,weekday:Yt,hour:qt,minute:qt};const dr={year:qt,month:Kt,day:qt,hour:qt,minute:qt,timeZoneName:Yt};const pr={year:qt,month:Kt,day:qt,hour:qt,minute:qt,second:qt,timeZoneName:Yt};const fr={year:qt,month:Kt,day:qt,weekday:Kt,hour:qt,minute:qt,timeZoneName:Kt};const gr={year:qt,month:Kt,day:qt,weekday:Kt,hour:qt,minute:qt,second:qt,timeZoneName:Kt};class Zone{get type(){throw new ZoneIsAbstractError}get name(){throw new ZoneIsAbstractError}get ianaName(){return this.name}get isUniversal(){throw new ZoneIsAbstractError}offsetName(e,t){throw new ZoneIsAbstractError}formatOffset(e,t){throw new ZoneIsAbstractError}offset(e){throw new ZoneIsAbstractError}equals(e){throw new ZoneIsAbstractError}get isValid(){throw new ZoneIsAbstractError}}let hr=null;class SystemZone extends Zone{static get instance(){if(hr===null){hr=new SystemZone}return hr}get type(){return"system"}get name(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}get isUniversal(){return false}offsetName(e,{format:t,locale:r}){return parseZoneInfo(e,t,r)}formatOffset(e,t){return formatOffset(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return true}}let mr={};function makeDTF(e){if(!mr[e]){mr[e]=new Intl.DateTimeFormat("en-US",{hour12:false,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})}return mr[e]}const Er={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function hackyOffset(e,t){const r=e.format(t).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,s,o,i,a,c,u,A]=n;return[i,s,o,a,c,u,A]}function partsOffset(e,t){const r=e.formatToParts(t);const n=[];for(let e=0;e=0?p:1e3+p;return(l-d)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let Ir={};function getCachedLF(e,t={}){const r=JSON.stringify([e,t]);let n=Ir[r];if(!n){n=new Intl.ListFormat(e,t);Ir[r]=n}return n}let Cr={};function getCachedDTF(e,t={}){const r=JSON.stringify([e,t]);let n=Cr[r];if(!n){n=new Intl.DateTimeFormat(e,t);Cr[r]=n}return n}let br={};function getCachedINF(e,t={}){const r=JSON.stringify([e,t]);let n=br[r];if(!n){n=new Intl.NumberFormat(e,t);br[r]=n}return n}let Br={};function getCachedRTF(e,t={}){const{base:r,...n}=t;const s=JSON.stringify([e,n]);let o=Br[s];if(!o){o=new Intl.RelativeTimeFormat(e,t);Br[s]=o}return o}let Qr=null;function systemLocale(){if(Qr){return Qr}else{Qr=(new Intl.DateTimeFormat).resolvedOptions().locale;return Qr}}let Tr={};function getCachedWeekInfo(e){let t=Tr[e];if(!t){const r=new Intl.Locale(e);t="getWeekInfo"in r?r.getWeekInfo():r.weekInfo;Tr[e]=t}return t}function parseLocaleString(e){const t=e.indexOf("-x-");if(t!==-1){e=e.substring(0,t)}const r=e.indexOf("-u-");if(r===-1){return[e]}else{let t;let n;try{t=getCachedDTF(e).resolvedOptions();n=e}catch(s){const o=e.substring(0,r);t=getCachedDTF(o).resolvedOptions();n=o}const{numberingSystem:s,calendar:o}=t;return[n,s,o]}}function intlConfigString(e,t,r){if(r||t){if(!e.includes("-u-")){e+="-u"}if(r){e+=`-ca-${r}`}if(t){e+=`-nu-${t}`}return e}else{return e}}function mapMonths(e){const t=[];for(let r=1;r<=12;r++){const n=DateTime.utc(2009,r,1);t.push(e(n))}return t}function mapWeekdays(e){const t=[];for(let r=1;r<=7;r++){const n=DateTime.utc(2016,11,13+r);t.push(e(n))}return t}function listStuff(e,t,r,n){const s=e.listingMode();if(s==="error"){return null}else if(s==="en"){return r(t)}else{return n(t)}}function supportsFastNumbers(e){if(e.numberingSystem&&e.numberingSystem!=="latn"){return false}else{return e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem==="latn"}}class PolyNumberFormatter{constructor(e,t,r){this.padTo=r.padTo||0;this.floor=r.floor||false;const{padTo:n,floor:s,...o}=r;if(!t||Object.keys(o).length>0){const t={useGrouping:false,...r};if(r.padTo>0)t.minimumIntegerDigits=r.padTo;this.inf=getCachedINF(e,t)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{const t=this.floor?Math.floor(e):roundTo(e,3);return padStart(t,this.padTo)}}}class PolyDateFormatter{constructor(e,t,r){this.opts=r;this.originalZone=undefined;let n=undefined;if(this.opts.timeZone){this.dt=e}else if(e.zone.type==="fixed"){const t=-1*(e.offset/60);const r=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;if(e.offset!==0&&IANAZone.create(r).valid){n=r;this.dt=e}else{n="UTC";this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset});this.originalZone=e.zone}}else if(e.zone.type==="system"){this.dt=e}else if(e.zone.type==="iana"){this.dt=e;n=e.zone.name}else{n="UTC";this.dt=e.setZone("UTC").plus({minutes:e.offset});this.originalZone=e.zone}const s={...this.opts};s.timeZone=s.timeZone||n;this.dtf=getCachedDTF(t,s)}format(){if(this.originalZone){return this.formatToParts().map((({value:e})=>e)).join("")}return this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());if(this.originalZone){return e.map((e=>{if(e.type==="timeZoneName"){const t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else{return e}}))}return e}resolvedOptions(){return this.dtf.resolvedOptions()}}class PolyRelFormatter{constructor(e,t,r){this.opts={style:"long",...r};if(!t&&hasRelative()){this.rtf=getCachedRTF(e,r)}}format(e,t){if(this.rtf){return this.rtf.format(e,t)}else{return formatRelativeTime(t,e,this.opts.numeric,this.opts.style!=="long")}}formatToParts(e,t){if(this.rtf){return this.rtf.formatToParts(e,t)}else{return[]}}}const vr={firstDay:1,minimalDays:4,weekend:[6,7]};class Locale{static fromOpts(e){return Locale.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,r,n,s=false){const o=e||Settings.defaultLocale;const i=o||(s?"en-US":systemLocale());const a=t||Settings.defaultNumberingSystem;const c=r||Settings.defaultOutputCalendar;const u=validateWeekSettings(n)||Settings.defaultWeekSettings;return new Locale(i,a,c,u,o)}static resetCache(){Qr=null;Cr={};br={};Br={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:r,weekSettings:n}={}){return Locale.create(e,t,r,n)}constructor(e,t,r,n,s){const[o,i,a]=parseLocaleString(e);this.locale=o;this.numberingSystem=t||i||null;this.outputCalendar=r||a||null;this.weekSettings=n;this.intl=intlConfigString(this.locale,this.numberingSystem,this.outputCalendar);this.weekdaysCache={format:{},standalone:{}};this.monthsCache={format:{},standalone:{}};this.meridiemCache=null;this.eraCache={};this.specifiedLocale=s;this.fastNumbersCached=null}get fastNumbers(){if(this.fastNumbersCached==null){this.fastNumbersCached=supportsFastNumbers(this)}return this.fastNumbersCached}listingMode(){const e=this.isEnglish();const t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){if(!e||Object.getOwnPropertyNames(e).length===0){return this}else{return Locale.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,validateWeekSettings(e.weekSettings)||this.weekSettings,e.defaultToEN||false)}}redefaultToEN(e={}){return this.clone({...e,defaultToEN:true})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:false})}months(e,t=false){return listStuff(this,e,months,(()=>{const r=t?{month:e,day:"numeric"}:{month:e},n=t?"format":"standalone";if(!this.monthsCache[n][e]){this.monthsCache[n][e]=mapMonths((e=>this.extract(e,r,"month")))}return this.monthsCache[n][e]}))}weekdays(e,t=false){return listStuff(this,e,weekdays,(()=>{const r=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},n=t?"format":"standalone";if(!this.weekdaysCache[n][e]){this.weekdaysCache[n][e]=mapWeekdays((e=>this.extract(e,r,"weekday")))}return this.weekdaysCache[n][e]}))}meridiems(){return listStuff(this,undefined,(()=>Hr),(()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[DateTime.utc(2016,11,13,9),DateTime.utc(2016,11,13,19)].map((t=>this.extract(t,e,"dayperiod")))}return this.meridiemCache}))}eras(e){return listStuff(this,e,eras,(()=>{const t={era:e};if(!this.eraCache[e]){this.eraCache[e]=[DateTime.utc(-40,1,1),DateTime.utc(2017,1,1)].map((e=>this.extract(e,t,"era")))}return this.eraCache[e]}))}extract(e,t,r){const n=this.dtFormatter(e,t),s=n.formatToParts(),o=s.find((e=>e.type.toLowerCase()===r));return o?o.value:null}numberFormatter(e={}){return new PolyNumberFormatter(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new PolyDateFormatter(e,this.intl,t)}relFormatter(e={}){return new PolyRelFormatter(this.intl,this.isEnglish(),e)}listFormatter(e={}){return getCachedLF(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings){return this.weekSettings}else if(!hasLocaleWeekInfo()){return vr}else{return getCachedWeekInfo(this.locale)}}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}}let wr=null;class FixedOffsetZone extends Zone{static get utcInstance(){if(wr===null){wr=new FixedOffsetZone(0)}return wr}static instance(e){return e===0?FixedOffsetZone.utcInstance:new FixedOffsetZone(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t){return new FixedOffsetZone(signedOffset(t[1],t[2]))}}return null}constructor(e){super();this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${formatOffset(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0){return"Etc/UTC"}else{return`Etc/GMT${formatOffset(-this.fixed,"narrow")}`}}offsetName(){return this.name}formatOffset(e,t){return formatOffset(this.fixed,t)}get isUniversal(){return true}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return true}}class InvalidZone extends Zone{constructor(e){super();this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return false}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return false}get isValid(){return false}}function normalizeZone(e,t){let r;if(isUndefined(e)||e===null){return t}else if(e instanceof Zone){return e}else if(isString(e)){const r=e.toLowerCase();if(r==="default")return t;else if(r==="local"||r==="system")return SystemZone.instance;else if(r==="utc"||r==="gmt")return FixedOffsetZone.utcInstance;else return FixedOffsetZone.parseSpecifier(r)||IANAZone.create(e)}else if(isNumber(e)){return FixedOffsetZone.instance(e)}else if(typeof e==="object"&&"offset"in e&&typeof e.offset==="function"){return e}else{return new InvalidZone(e)}}let now=()=>Date.now(),_r="system",kr=null,Rr=null,Sr=null,Fr=60,Dr,Nr=null;class Settings{static get now(){return now}static set now(e){now=e}static set defaultZone(e){_r=e}static get defaultZone(){return normalizeZone(_r,SystemZone.instance)}static get defaultLocale(){return kr}static set defaultLocale(e){kr=e}static get defaultNumberingSystem(){return Rr}static set defaultNumberingSystem(e){Rr=e}static get defaultOutputCalendar(){return Sr}static set defaultOutputCalendar(e){Sr=e}static get defaultWeekSettings(){return Nr}static set defaultWeekSettings(e){Nr=validateWeekSettings(e)}static get twoDigitCutoffYear(){return Fr}static set twoDigitCutoffYear(e){Fr=e%100}static get throwOnInvalid(){return Dr}static set throwOnInvalid(e){Dr=e}static resetCaches(){Locale.resetCache();IANAZone.resetCache()}}class Invalid{constructor(e,t){this.reason=e;this.explanation=t}toMessage(){if(this.explanation){return`${this.reason}: ${this.explanation}`}else{return this.reason}}}const Pr=[0,31,59,90,120,151,181,212,243,273,304,334],Lr=[0,31,60,91,121,152,182,213,244,274,305,335];function unitOutOfRange(e,t){return new Invalid("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function dayOfWeek(e,t,r){const n=new Date(Date.UTC(e,t-1,r));if(e<100&&e>=0){n.setUTCFullYear(n.getUTCFullYear()-1900)}const s=n.getUTCDay();return s===0?7:s}function computeOrdinal(e,t,r){return r+(isLeapYear(e)?Lr:Pr)[t-1]}function uncomputeOrdinal(e,t){const r=isLeapYear(e)?Lr:Pr,n=r.findIndex((e=>eweeksInWeekYear(n,t,r)){u=n+1;c=1}else{u=n}return{weekYear:u,weekNumber:c,weekday:a,...timeObject(e)}}function weekToGregorian(e,t=4,r=1){const{weekYear:n,weekNumber:s,weekday:o}=e,i=isoWeekdayToLocal(dayOfWeek(n,1,t),r),a=daysInYear(n);let c=s*7+o-i-7+t,u;if(c<1){u=n-1;c+=daysInYear(u)}else if(c>a){u=n+1;c-=daysInYear(n)}else{u=n}const{month:A,day:l}=uncomputeOrdinal(u,c);return{year:u,month:A,day:l,...timeObject(e)}}function gregorianToOrdinal(e){const{year:t,month:r,day:n}=e;const s=computeOrdinal(t,r,n);return{year:t,ordinal:s,...timeObject(e)}}function ordinalToGregorian(e){const{year:t,ordinal:r}=e;const{month:n,day:s}=uncomputeOrdinal(t,r);return{year:t,month:n,day:s,...timeObject(e)}}function usesLocalWeekValues(e,t){const r=!isUndefined(e.localWeekday)||!isUndefined(e.localWeekNumber)||!isUndefined(e.localWeekYear);if(r){const r=!isUndefined(e.weekday)||!isUndefined(e.weekNumber)||!isUndefined(e.weekYear);if(r){throw new ConflictingSpecificationError("Cannot mix locale-based week fields with ISO-based week fields")}if(!isUndefined(e.localWeekday))e.weekday=e.localWeekday;if(!isUndefined(e.localWeekNumber))e.weekNumber=e.localWeekNumber;if(!isUndefined(e.localWeekYear))e.weekYear=e.localWeekYear;delete e.localWeekday;delete e.localWeekNumber;delete e.localWeekYear;return{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else{return{minDaysInFirstWeek:4,startOfWeek:1}}}function hasInvalidWeekData(e,t=4,r=1){const n=isInteger(e.weekYear),s=integerBetween(e.weekNumber,1,weeksInWeekYear(e.weekYear,t,r)),o=integerBetween(e.weekday,1,7);if(!n){return unitOutOfRange("weekYear",e.weekYear)}else if(!s){return unitOutOfRange("week",e.weekNumber)}else if(!o){return unitOutOfRange("weekday",e.weekday)}else return false}function hasInvalidOrdinalData(e){const t=isInteger(e.year),r=integerBetween(e.ordinal,1,daysInYear(e.year));if(!t){return unitOutOfRange("year",e.year)}else if(!r){return unitOutOfRange("ordinal",e.ordinal)}else return false}function hasInvalidGregorianData(e){const t=isInteger(e.year),r=integerBetween(e.month,1,12),n=integerBetween(e.day,1,daysInMonth(e.year,e.month));if(!t){return unitOutOfRange("year",e.year)}else if(!r){return unitOutOfRange("month",e.month)}else if(!n){return unitOutOfRange("day",e.day)}else return false}function hasInvalidTimeData(e){const{hour:t,minute:r,second:n,millisecond:s}=e;const o=integerBetween(t,0,23)||t===24&&r===0&&n===0&&s===0,i=integerBetween(r,0,59),a=integerBetween(n,0,59),c=integerBetween(s,0,999);if(!o){return unitOutOfRange("hour",t)}else if(!i){return unitOutOfRange("minute",r)}else if(!a){return unitOutOfRange("second",n)}else if(!c){return unitOutOfRange("millisecond",s)}else return false}function isUndefined(e){return typeof e==="undefined"}function isNumber(e){return typeof e==="number"}function isInteger(e){return typeof e==="number"&&e%1===0}function isString(e){return typeof e==="string"}function isDate(e){return Object.prototype.toString.call(e)==="[object Date]"}function hasRelative(){try{return typeof Intl!=="undefined"&&!!Intl.RelativeTimeFormat}catch(e){return false}}function hasLocaleWeekInfo(){try{return typeof Intl!=="undefined"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch(e){return false}}function maybeArray(e){return Array.isArray(e)?e:[e]}function bestBy(e,t,r){if(e.length===0){return undefined}return e.reduce(((e,n)=>{const s=[t(n),n];if(!e){return s}else if(r(e[0],s[0])===e[0]){return e}else{return s}}),null)[1]}function util_pick(e,t){return t.reduce(((t,r)=>{t[r]=e[r];return t}),{})}function util_hasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function validateWeekSettings(e){if(e==null){return null}else if(typeof e!=="object"){throw new InvalidArgumentError("Week settings must be an object")}else{if(!integerBetween(e.firstDay,1,7)||!integerBetween(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some((e=>!integerBetween(e,1,7)))){throw new InvalidArgumentError("Invalid week settings")}return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}}function integerBetween(e,t,r){return isInteger(e)&&e>=t&&e<=r}function floorMod(e,t){return e-t*Math.floor(e/t)}function padStart(e,t=2){const r=e<0;let n;if(r){n="-"+(""+-e).padStart(t,"0")}else{n=(""+e).padStart(t,"0")}return n}function parseInteger(e){if(isUndefined(e)||e===null||e===""){return undefined}else{return parseInt(e,10)}}function parseFloating(e){if(isUndefined(e)||e===null||e===""){return undefined}else{return parseFloat(e)}}function parseMillis(e){if(isUndefined(e)||e===null||e===""){return undefined}else{const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function roundTo(e,t,r=false){const n=10**t,s=r?Math.trunc:Math.round;return s(e*n)/n}function isLeapYear(e){return e%4===0&&(e%100!==0||e%400===0)}function daysInYear(e){return isLeapYear(e)?366:365}function daysInMonth(e,t){const r=floorMod(t-1,12)+1,n=e+(t-r)/12;if(r===2){return isLeapYear(n)?29:28}else{return[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}}function objToLocalTS(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);if(e.year<100&&e.year>=0){t=new Date(t);t.setUTCFullYear(e.year,e.month-1,e.day)}return+t}function firstWeekOffset(e,t,r){const n=isoWeekdayToLocal(dayOfWeek(e,1,t),r);return-n+t-1}function weeksInWeekYear(e,t=4,r=1){const n=firstWeekOffset(e,t,r);const s=firstWeekOffset(e+1,t,r);return(daysInYear(e)-n+s)/7}function untruncateYear(e){if(e>99){return e}else return e>Settings.twoDigitCutoffYear?1900+e:2e3+e}function parseZoneInfo(e,t,r,n=null){const s=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(n){o.timeZone=n}const i={timeZoneName:t,...o};const a=new Intl.DateTimeFormat(r,i).formatToParts(s).find((e=>e.type.toLowerCase()==="timezonename"));return a?a.value:null}function signedOffset(e,t){let r=parseInt(e,10);if(Number.isNaN(r)){r=0}const n=parseInt(t,10)||0,s=r<0||Object.is(r,-0)?-n:n;return r*60+s}function asNumber(e){const t=Number(e);if(typeof e==="boolean"||e===""||Number.isNaN(t))throw new InvalidArgumentError(`Invalid unit value ${e}`);return t}function normalizeObject(e,t){const r={};for(const n in e){if(util_hasOwnProperty(e,n)){const s=e[n];if(s===undefined||s===null)continue;r[t(n)]=asNumber(s)}}return r}function formatOffset(e,t){const r=Math.trunc(Math.abs(e/60)),n=Math.trunc(Math.abs(e%60)),s=e>=0?"+":"-";switch(t){case"short":return`${s}${padStart(r,2)}:${padStart(n,2)}`;case"narrow":return`${s}${r}${n>0?`:${n}`:""}`;case"techie":return`${s}${padStart(r,2)}${padStart(n,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function timeObject(e){return util_pick(e,["hour","minute","second","millisecond"])}function stringify(e){return JSON.stringify(e,Object.keys(e).sort())}const Ur=["January","February","March","April","May","June","July","August","September","October","November","December"];const Mr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const xr=["J","F","M","A","M","J","J","A","S","O","N","D"];function months(e){switch(e){case"narrow":return[...xr];case"short":return[...Mr];case"long":return[...Ur];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const Gr=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];const jr=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];const Vr=["M","T","W","T","F","S","S"];function weekdays(e){switch(e){case"narrow":return[...Vr];case"short":return[...jr];case"long":return[...Gr];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const Hr=["AM","PM"];const qr=["Before Christ","Anno Domini"];const Yr=["BC","AD"];const Kr=["B","A"];function eras(e){switch(e){case"narrow":return[...Kr];case"short":return[...Yr];case"long":return[...qr];default:return null}}function meridiemForDateTime(e){return Hr[e.hour<12?0:1]}function weekdayForDateTime(e,t){return weekdays(t)[e.weekday-1]}function monthForDateTime(e,t){return months(t)[e.month-1]}function eraForDateTime(e,t){return eras(t)[e.year<0?0:1]}function formatRelativeTime(e,t,r="always",n=false){const s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]};const o=["hours","minutes","seconds"].indexOf(e)===-1;if(r==="auto"&&o){const r=e==="days";switch(t){case 1:return r?"tomorrow":`next ${s[e][0]}`;case-1:return r?"yesterday":`last ${s[e][0]}`;case 0:return r?"today":`this ${s[e][0]}`;default:}}const i=Object.is(t,-0)||t<0,a=Math.abs(t),c=a===1,u=s[e],A=n?c?u[1]:u[2]||u[1]:c?s[e][0]:e;return i?`${a} ${A} ago`:`in ${a} ${A}`}function formatString(e){const t=pick(e,["weekday","era","year","month","day","hour","minute","second","timeZoneName","hourCycle"]),r=stringify(t),n="EEEE, LLLL d, yyyy, h:mm a";switch(r){case stringify(Formats.DATE_SHORT):return"M/d/yyyy";case stringify(Formats.DATE_MED):return"LLL d, yyyy";case stringify(Formats.DATE_MED_WITH_WEEKDAY):return"EEE, LLL d, yyyy";case stringify(Formats.DATE_FULL):return"LLLL d, yyyy";case stringify(Formats.DATE_HUGE):return"EEEE, LLLL d, yyyy";case stringify(Formats.TIME_SIMPLE):return"h:mm a";case stringify(Formats.TIME_WITH_SECONDS):return"h:mm:ss a";case stringify(Formats.TIME_WITH_SHORT_OFFSET):return"h:mm a";case stringify(Formats.TIME_WITH_LONG_OFFSET):return"h:mm a";case stringify(Formats.TIME_24_SIMPLE):return"HH:mm";case stringify(Formats.TIME_24_WITH_SECONDS):return"HH:mm:ss";case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):return"HH:mm";case stringify(Formats.TIME_24_WITH_LONG_OFFSET):return"HH:mm";case stringify(Formats.DATETIME_SHORT):return"M/d/yyyy, h:mm a";case stringify(Formats.DATETIME_MED):return"LLL d, yyyy, h:mm a";case stringify(Formats.DATETIME_FULL):return"LLLL d, yyyy, h:mm a";case stringify(Formats.DATETIME_HUGE):return n;case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):return"M/d/yyyy, h:mm:ss a";case stringify(Formats.DATETIME_MED_WITH_SECONDS):return"LLL d, yyyy, h:mm:ss a";case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):return"EEE, d LLL yyyy, h:mm a";case stringify(Formats.DATETIME_FULL_WITH_SECONDS):return"LLLL d, yyyy, h:mm:ss a";case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):return"EEEE, LLLL d, yyyy, h:mm:ss a";default:return n}}function stringifyTokens(e,t){let r="";for(const n of e){if(n.literal){r+=n.val}else{r+=t(n.val)}}return r}const Jr={D:Jt,DD:$t,DDD:zt,DDDD:Zt,t:Xt,tt:er,ttt:tr,tttt:rr,T:nr,TT:sr,TTT:or,TTTT:ir,f:ar,ff:ur,fff:dr,ffff:fr,F:cr,FF:Ar,FFF:pr,FFFF:gr};class Formatter{static create(e,t={}){return new Formatter(e,t)}static parseFormat(e){let t=null,r="",n=false;const s=[];for(let o=0;o0){s.push({literal:n||/^\s+$/.test(r),val:r})}t=null;r="";n=!n}else if(n){r+=i}else if(i===t){r+=i}else{if(r.length>0){s.push({literal:/^\s+$/.test(r),val:r})}r=i;t=i}}if(r.length>0){s.push({literal:n||/^\s+$/.test(r),val:r})}return s}static macroTokenToFormatOpts(e){return Jr[e]}constructor(e,t){this.opts=t;this.loc=e;this.systemLoc=null}formatWithSystemDefault(e,t){if(this.systemLoc===null){this.systemLoc=this.loc.redefaultToSystem()}const r=this.systemLoc.dtFormatter(e,{...this.opts,...t});return r.format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){const r=this.dtFormatter(e.start,t);return r.dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple){return padStart(e,t)}const r={...this.opts};if(t>0){r.padTo=t}return this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,t){const r=this.loc.listingMode()==="en",n=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",string=(t,r)=>this.loc.extract(e,t,r),formatOffset=t=>{if(e.isOffsetFixed&&e.offset===0&&t.allowZ){return"Z"}return e.isValid?e.zone.formatOffset(e.ts,t.format):""},meridiem=()=>r?meridiemForDateTime(e):string({hour:"numeric",hourCycle:"h12"},"dayperiod"),month=(t,n)=>r?monthForDateTime(e,t):string(n?{month:t}:{month:t,day:"numeric"},"month"),weekday=(t,n)=>r?weekdayForDateTime(e,t):string(n?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday"),maybeMacro=t=>{const r=Formatter.macroTokenToFormatOpts(t);if(r){return this.formatWithSystemDefault(e,r)}else{return t}},era=t=>r?eraForDateTime(e,t):string({era:t},"era"),tokenToString=t=>{switch(t){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return formatOffset({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return formatOffset({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return formatOffset({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return meridiem();case"d":return n?string({day:"numeric"},"day"):this.num(e.day);case"dd":return n?string({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return weekday("short",true);case"cccc":return weekday("long",true);case"ccccc":return weekday("narrow",true);case"E":return this.num(e.weekday);case"EEE":return weekday("short",false);case"EEEE":return weekday("long",false);case"EEEEE":return weekday("narrow",false);case"L":return n?string({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return n?string({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return month("short",true);case"LLLL":return month("long",true);case"LLLLL":return month("narrow",true);case"M":return n?string({month:"numeric"},"month"):this.num(e.month);case"MM":return n?string({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return month("short",false);case"MMMM":return month("long",false);case"MMMMM":return month("narrow",false);case"y":return n?string({year:"numeric"},"year"):this.num(e.year);case"yy":return n?string({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return n?string({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return n?string({year:"numeric"},"year"):this.num(e.year,6);case"G":return era("short");case"GG":return era("long");case"GGGGG":return era("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return maybeMacro(t)}};return stringifyTokens(Formatter.parseFormat(t),tokenToString)}formatDurationFromString(e,t){const tokenToField=e=>{switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},tokenToString=e=>t=>{const r=tokenToField(t);if(r){return this.num(e.get(r),t.length)}else{return t}},r=Formatter.parseFormat(t),n=r.reduce(((e,{literal:t,val:r})=>t?e:e.concat(r)),[]),s=e.shiftTo(...n.map(tokenToField).filter((e=>e)));return stringifyTokens(r,tokenToString(s))}}const $r=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function combineRegexes(...e){const t=e.reduce(((e,t)=>e+t.source),"");return RegExp(`^${t}$`)}function combineExtractors(...e){return t=>e.reduce((([e,r,n],s)=>{const[o,i,a]=s(t,n);return[{...e,...o},i||r,a]}),[{},null,1]).slice(0,2)}function regexParser_parse(e,...t){if(e==null){return[null,null]}for(const[r,n]of t){const t=r.exec(e);if(t){return n(t)}}return[null,null]}function simpleParse(...e){return(t,r)=>{const n={};let s;for(s=0;se!==undefined&&(t||e&&A)?-e:e;return[{years:maybeNegate(parseFloating(r)),months:maybeNegate(parseFloating(n)),weeks:maybeNegate(parseFloating(s)),days:maybeNegate(parseFloating(o)),hours:maybeNegate(parseFloating(i)),minutes:maybeNegate(parseFloating(a)),seconds:maybeNegate(parseFloating(c),c==="-0"),milliseconds:maybeNegate(parseMillis(u),l)}]}const dn={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function fromStrings(e,t,r,n,s,o,i){const a={year:t.length===2?untruncateYear(parseInteger(t)):parseInteger(t),month:Mr.indexOf(r)+1,day:parseInteger(n),hour:parseInteger(s),minute:parseInteger(o)};if(i)a.second=parseInteger(i);if(e){a.weekday=e.length>3?Gr.indexOf(e)+1:jr.indexOf(e)+1}return a}const pn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function extractRFC2822(e){const[,t,r,n,s,o,i,a,c,u,A,l]=e,d=fromStrings(t,s,n,r,o,i,a);let p;if(c){p=dn[c]}else if(u){p=0}else{p=signedOffset(A,l)}return[d,new FixedOffsetZone(p)]}function preprocessRFC2822(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const fn=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,gn=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,hn=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function extractRFC1123Or850(e){const[,t,r,n,s,o,i,a]=e,c=fromStrings(t,s,n,r,o,i,a);return[c,FixedOffsetZone.utcInstance]}function extractASCII(e){const[,t,r,n,s,o,i,a]=e,c=fromStrings(t,a,r,n,s,o,i);return[c,FixedOffsetZone.utcInstance]}const mn=combineRegexes(tn,en);const En=combineRegexes(rn,en);const yn=combineRegexes(nn,en);const In=combineRegexes(Xr);const Cn=combineExtractors(extractISOYmd,extractISOTime,extractISOOffset,extractIANAZone);const bn=combineExtractors(sn,extractISOTime,extractISOOffset,extractIANAZone);const Bn=combineExtractors(on,extractISOTime,extractISOOffset,extractIANAZone);const Qn=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseISODate(e){return regexParser_parse(e,[mn,Cn],[En,bn],[yn,Bn],[In,Qn])}function parseRFC2822Date(e){return regexParser_parse(preprocessRFC2822(e),[pn,extractRFC2822])}function parseHTTPDate(e){return regexParser_parse(e,[fn,extractRFC1123Or850],[gn,extractRFC1123Or850],[hn,extractASCII])}function parseISODuration(e){return regexParser_parse(e,[ln,extractISODuration])}const Tn=combineExtractors(extractISOTime);function parseISOTimeOnly(e){return regexParser_parse(e,[An,Tn])}const vn=combineRegexes(an,un);const wn=combineRegexes(cn);const _n=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseSQL(e){return regexParser_parse(e,[vn,Cn],[wn,_n])}const On="Invalid Duration";const kn={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Rn={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...kn},Sn=146097/400,Fn=146097/4800,Dn={years:{quarters:4,months:12,weeks:Sn/7,days:Sn,hours:Sn*24,minutes:Sn*24*60,seconds:Sn*24*60*60,milliseconds:Sn*24*60*60*1e3},quarters:{months:3,weeks:Sn/28,days:Sn/4,hours:Sn*24/4,minutes:Sn*24*60/4,seconds:Sn*24*60*60/4,milliseconds:Sn*24*60*60*1e3/4},months:{weeks:Fn/7,days:Fn,hours:Fn*24,minutes:Fn*24*60,seconds:Fn*24*60*60,milliseconds:Fn*24*60*60*1e3},...kn};const Nn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"];const Pn=Nn.slice(0).reverse();function clone(e,t,r=false){const n={values:r?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new Duration(n)}function durationToMillis(e,t){let r=t.milliseconds??0;for(const n of Pn.slice(1)){if(t[n]){r+=t[n]*e[n]["milliseconds"]}}return r}function normalizeValues(e,t){const r=durationToMillis(e,t)<0?-1:1;Nn.reduceRight(((n,s)=>{if(!isUndefined(t[s])){if(n){const o=t[n]*r;const i=e[s][n];const a=Math.floor(o/i);t[s]+=a*r;t[n]-=a*i*r}return s}else{return n}}),null);Nn.reduce(((r,n)=>{if(!isUndefined(t[n])){if(r){const s=t[r]%1;t[r]-=s;t[n]+=s*e[r][n]}return n}else{return r}}),null)}function removeZeroes(e){const t={};for(const[r,n]of Object.entries(e)){if(n!==0){t[r]=n}}return t}class Duration{constructor(e){const t=e.conversionAccuracy==="longterm"||false;let r=t?Dn:Rn;if(e.matrix){r=e.matrix}this.values=e.values;this.loc=e.loc||Locale.create();this.conversionAccuracy=t?"longterm":"casual";this.invalid=e.invalid||null;this.matrix=r;this.isLuxonDuration=true}static fromMillis(e,t){return Duration.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!=="object"){throw new InvalidArgumentError(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`)}return new Duration({values:normalizeObject(e,Duration.normalizeUnit),loc:Locale.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(isNumber(e)){return Duration.fromMillis(e)}else if(Duration.isDuration(e)){return e}else if(typeof e==="object"){return Duration.fromObject(e)}else{throw new InvalidArgumentError(`Unknown duration argument ${e} of type ${typeof e}`)}}static fromISO(e,t){const[r]=parseISODuration(e);if(r){return Duration.fromObject(r,t)}else{return Duration.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}}static fromISOTime(e,t){const[r]=parseISOTimeOnly(e);if(r){return Duration.fromObject(r,t)}else{return Duration.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}}static invalid(e,t=null){if(!e){throw new InvalidArgumentError("need to specify a reason the Duration is invalid")}const r=e instanceof Invalid?e:new Invalid(e,t);if(Settings.throwOnInvalid){throw new InvalidDurationError(r)}else{return new Duration({invalid:r})}}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new InvalidUnitError(e);return t}static isDuration(e){return e&&e.isLuxonDuration||false}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){const r={...t,floor:t.round!==false&&t.floor!==false};return this.isValid?Formatter.create(this.loc,r).formatDurationFromString(this,e):On}toHuman(e={}){if(!this.isValid)return On;const t=Nn.map((t=>{const r=this.values[t];if(isUndefined(r)){return null}return this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:t.slice(0,-1)}).format(r)})).filter((e=>e));return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){if(!this.isValid)return{};return{...this.values}}toISO(){if(!this.isValid)return null;let e="P";if(this.years!==0)e+=this.years+"Y";if(this.months!==0||this.quarters!==0)e+=this.months+this.quarters*3+"M";if(this.weeks!==0)e+=this.weeks+"W";if(this.days!==0)e+=this.days+"D";if(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)e+="T";if(this.hours!==0)e+=this.hours+"H";if(this.minutes!==0)e+=this.minutes+"M";if(this.seconds!==0||this.milliseconds!==0)e+=roundTo(this.seconds+this.milliseconds/1e3,3)+"S";if(e==="P")e+="T0S";return e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();if(t<0||t>=864e5)return null;e={suppressMilliseconds:false,suppressSeconds:false,includePrefix:false,format:"extended",...e,includeOffset:false};const r=DateTime.fromMillis(t,{zone:"UTC"});return r.toISOTime(e)}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid){return`Duration { values: ${JSON.stringify(this.values)} }`}else{return`Duration { Invalid, reason: ${this.invalidReason} }`}}toMillis(){if(!this.isValid)return NaN;return durationToMillis(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e),r={};for(const e of Nn){if(util_hasOwnProperty(t.values,e)||util_hasOwnProperty(this.values,e)){r[e]=t.get(e)+this.get(e)}}return clone(this,{values:r},true)}minus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const r of Object.keys(this.values)){t[r]=asNumber(e(this.values[r],r))}return clone(this,{values:t},true)}get(e){return this[Duration.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const t={...this.values,...normalizeObject(e,Duration.normalizeUnit)};return clone(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:r,matrix:n}={}){const s=this.loc.clone({locale:e,numberingSystem:t});const o={loc:s,matrix:n,conversionAccuracy:r};return clone(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();normalizeValues(this.matrix,e);return clone(this,{values:e},true)}rescale(){if(!this.isValid)return this;const e=removeZeroes(this.normalize().shiftToAll().toObject());return clone(this,{values:e},true)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0){return this}e=e.map((e=>Duration.normalizeUnit(e)));const t={},r={},n=this.toObject();let s;for(const o of Nn){if(e.indexOf(o)>=0){s=o;let e=0;for(const t in r){e+=this.matrix[t][o]*r[t];r[t]=0}if(isNumber(n[o])){e+=n[o]}const i=Math.trunc(e);t[o]=i;r[o]=(e*1e3-i*1e3)/1e3}else if(isNumber(n[o])){r[o]=n[o]}}for(const e in r){if(r[e]!==0){t[s]+=e===s?r[e]:r[e]/this.matrix[s][e]}}normalizeValues(this.matrix,t);return clone(this,{values:t},true)}shiftToAll(){if(!this.isValid)return this;return this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds")}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values)){e[t]=this.values[t]===0?0:-this.values[t]}return clone(this,{values:e},true)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid){return false}if(!this.loc.equals(e.loc)){return false}function eq(e,t){if(e===undefined||e===0)return t===undefined||t===0;return e===t}for(const t of Nn){if(!eq(this.values[t],e.values[t])){return false}}return true}}const Ln="Invalid Interval";function validateStartEnd(e,t){if(!e||!e.isValid){return Interval.invalid("missing or invalid start")}else if(!t||!t.isValid){return Interval.invalid("missing or invalid end")}else if(te}isBefore(e){if(!this.isValid)return false;return this.e<=e}contains(e){if(!this.isValid)return false;return this.s<=e&&this.e>e}set({start:e,end:t}={}){if(!this.isValid)return this;return Interval.fromDateTimes(e||this.s,t||this.e)}splitAt(...e){if(!this.isValid)return[];const t=e.map(friendlyDateTime).filter((e=>this.contains(e))).sort(((e,t)=>e.toMillis()-t.toMillis())),r=[];let{s:n}=this,s=0;while(n+this.e?this.e:e;r.push(Interval.fromDateTimes(n,o));n=o;s+=1}return r}splitBy(e){const t=Duration.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0){return[]}let{s:r}=this,n=1,s;const o=[];while(re*n)));s=+e>+this.e?this.e:e;o.push(Interval.fromDateTimes(r,s));r=s;n+=1}return o}divideEqually(e){if(!this.isValid)return[];return this.splitBy(this.length()/e).slice(0,e)}overlaps(e){return this.e>e.s&&this.s=e.e}equals(e){if(!this.isValid||!e.isValid){return false}return this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,r=this.e=r){return null}else{return Interval.fromDateTimes(t,r)}}union(e){if(!this.isValid)return this;const t=this.se.e?this.e:e.e;return Interval.fromDateTimes(t,r)}static merge(e){const[t,r]=e.sort(((e,t)=>e.s-t.s)).reduce((([e,t],r)=>{if(!t){return[e,r]}else if(t.overlaps(r)||t.abutsStart(r)){return[e,t.union(r)]}else{return[e.concat([t]),r]}}),[[],null]);if(r){t.push(r)}return t}static xor(e){let t=null,r=0;const n=[],s=e.map((e=>[{time:e.s,type:"s"},{time:e.e,type:"e"}])),o=Array.prototype.concat(...s),i=o.sort(((e,t)=>e.time-t.time));for(const e of i){r+=e.type==="s"?1:-1;if(r===1){t=e.time}else{if(t&&+t!==+e.time){n.push(Interval.fromDateTimes(t,e.time))}t=null}}return Interval.merge(n)}difference(...e){return Interval.xor([this].concat(e)).map((e=>this.intersection(e))).filter((e=>e&&!e.isEmpty()))}toString(){if(!this.isValid)return Ln;return`[${this.s.toISO()} – ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid){return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`}else{return`Interval { Invalid, reason: ${this.invalidReason} }`}}toLocaleString(e=Jt,t={}){return this.isValid?Formatter.create(this.s.loc.clone(t),e).formatInterval(this):Ln}toISO(e){if(!this.isValid)return Ln;return`${this.s.toISO(e)}/${this.e.toISO(e)}`}toISODate(){if(!this.isValid)return Ln;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(e){if(!this.isValid)return Ln;return`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`}toFormat(e,{separator:t=" – "}={}){if(!this.isValid)return Ln;return`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`}toDuration(e,t){if(!this.isValid){return Duration.invalid(this.invalidReason)}return this.e.diff(this.s,e,t)}mapEndpoints(e){return Interval.fromDateTimes(e(this.s),e(this.e))}}class Info{static hasDST(e=Settings.defaultZone){const t=DateTime.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return IANAZone.isValidZone(e)}static normalizeZone(e){return normalizeZone(e,Settings.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||Locale.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||Locale.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||Locale.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null,outputCalendar:s="gregory"}={}){return(n||Locale.create(t,r,s)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null,outputCalendar:s="gregory"}={}){return(n||Locale.create(t,r,s)).months(e,true)}static weekdays(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null}={}){return(n||Locale.create(t,r,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null}={}){return(n||Locale.create(t,r,null)).weekdays(e,true)}static meridiems({locale:e=null}={}){return Locale.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return Locale.create(t,null,"gregory").eras(e)}static features(){return{relative:hasRelative(),localeWeek:hasLocaleWeekInfo()}}}function dayDiff(e,t){const utcDayStart=e=>e.toUTC(0,{keepLocalTime:true}).startOf("day").valueOf(),r=utcDayStart(t)-utcDayStart(e);return Math.floor(Duration.fromMillis(r).as("days"))}function highOrderDiffs(e,t,r){const n=[["years",(e,t)=>t.year-e.year],["quarters",(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],["months",(e,t)=>t.month-e.month+(t.year-e.year)*12],["weeks",(e,t)=>{const r=dayDiff(e,t);return(r-r%7)/7}],["days",dayDiff]];const s={};const o=e;let i,a;for(const[c,u]of n){if(r.indexOf(c)>=0){i=c;s[c]=u(e,t);a=o.plus(s);if(a>t){s[c]--;e=o.plus(s);if(e>t){a=e;s[c]--;e=o.plus(s)}}else{e=a}}}return[e,s,a,i]}function diff(e,t,r,n){let[s,o,i,a]=highOrderDiffs(e,t,r);const c=t-s;const u=r.filter((e=>["hours","minutes","seconds","milliseconds"].indexOf(e)>=0));if(u.length===0){if(i0){return Duration.fromMillis(c,n).shiftTo(...u).plus(A)}else{return A}}const Un={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"};const Mn={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]};const xn=Un.hanidec.replace(/[\[|\]]/g,"").split("");function parseDigits(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let r=0;r=r&&n<=s){t+=n-r}}}}return parseInt(t,10)}else{return t}}function digitRegex({numberingSystem:e},t=""){return new RegExp(`${Un[e||"latn"]}${t}`)}const Gn="missing Intl.DateTimeFormat.formatToParts support";function intUnit(e,t=e=>e){return{regex:e,deser:([e])=>t(parseDigits(e))}}const jn=String.fromCharCode(160);const Vn=`[ ${jn}]`;const Hn=new RegExp(Vn,"g");function fixListRegex(e){return e.replace(/\./g,"\\.?").replace(Hn,Vn)}function stripInsensitivities(e){return e.replace(/\./g,"").replace(Hn," ").toLowerCase()}function oneOf(e,t){if(e===null){return null}else{return{regex:RegExp(e.map(fixListRegex).join("|")),deser:([r])=>e.findIndex((e=>stripInsensitivities(r)===stripInsensitivities(e)))+t}}}function offset(e,t){return{regex:e,deser:([,e,t])=>signedOffset(e,t),groups:t}}function simple(e){return{regex:e,deser:([e])=>e}}function escapeToken(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function unitForToken(e,t){const r=digitRegex(t),n=digitRegex(t,"{2}"),s=digitRegex(t,"{3}"),o=digitRegex(t,"{4}"),i=digitRegex(t,"{6}"),a=digitRegex(t,"{1,2}"),c=digitRegex(t,"{1,3}"),u=digitRegex(t,"{1,6}"),A=digitRegex(t,"{1,9}"),l=digitRegex(t,"{2,4}"),d=digitRegex(t,"{4,6}"),literal=e=>({regex:RegExp(escapeToken(e.val)),deser:([e])=>e,literal:true}),unitate=p=>{if(e.literal){return literal(p)}switch(p.val){case"G":return oneOf(t.eras("short"),0);case"GG":return oneOf(t.eras("long"),0);case"y":return intUnit(u);case"yy":return intUnit(l,untruncateYear);case"yyyy":return intUnit(o);case"yyyyy":return intUnit(d);case"yyyyyy":return intUnit(i);case"M":return intUnit(a);case"MM":return intUnit(n);case"MMM":return oneOf(t.months("short",true),1);case"MMMM":return oneOf(t.months("long",true),1);case"L":return intUnit(a);case"LL":return intUnit(n);case"LLL":return oneOf(t.months("short",false),1);case"LLLL":return oneOf(t.months("long",false),1);case"d":return intUnit(a);case"dd":return intUnit(n);case"o":return intUnit(c);case"ooo":return intUnit(s);case"HH":return intUnit(n);case"H":return intUnit(a);case"hh":return intUnit(n);case"h":return intUnit(a);case"mm":return intUnit(n);case"m":return intUnit(a);case"q":return intUnit(a);case"qq":return intUnit(n);case"s":return intUnit(a);case"ss":return intUnit(n);case"S":return intUnit(c);case"SSS":return intUnit(s);case"u":return simple(A);case"uu":return simple(a);case"uuu":return intUnit(r);case"a":return oneOf(t.meridiems(),0);case"kkkk":return intUnit(o);case"kk":return intUnit(l,untruncateYear);case"W":return intUnit(a);case"WW":return intUnit(n);case"E":case"c":return intUnit(r);case"EEE":return oneOf(t.weekdays("short",false),1);case"EEEE":return oneOf(t.weekdays("long",false),1);case"ccc":return oneOf(t.weekdays("short",true),1);case"cccc":return oneOf(t.weekdays("long",true),1);case"Z":case"ZZ":return offset(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return offset(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return simple(/[a-z_+-/]{1,256}?/i);case" ":return simple(/[^\S\n\r]/);default:return literal(p)}};const p=unitate(e)||{invalidReason:Gn};p.token=e;return p}const qn={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function tokenForPart(e,t,r){const{type:n,value:s}=e;if(n==="literal"){const e=/^\s+$/.test(s);return{literal:!e,val:e?" ":s}}const o=t[n];let i=n;if(n==="hour"){if(t.hour12!=null){i=t.hour12?"hour12":"hour24"}else if(t.hourCycle!=null){if(t.hourCycle==="h11"||t.hourCycle==="h12"){i="hour12"}else{i="hour24"}}else{i=r.hour12?"hour12":"hour24"}}let a=qn[i];if(typeof a==="object"){a=a[o]}if(a){return{literal:false,val:a}}return undefined}function buildRegex(e){const t=e.map((e=>e.regex)).reduce(((e,t)=>`${e}(${t.source})`),"");return[`^${t}$`,e]}function match(e,t,r){const n=e.match(t);if(n){const e={};let t=1;for(const s in r){if(util_hasOwnProperty(r,s)){const o=r[s],i=o.groups?o.groups+1:1;if(!o.literal&&o.token){e[o.token.val[0]]=o.deser(n.slice(t,t+i))}t+=i}}return[n,e]}else{return[n,{}]}}function dateTimeFromMatches(e){const toField=e=>{switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let t=null;let r;if(!isUndefined(e.z)){t=IANAZone.create(e.z)}if(!isUndefined(e.Z)){if(!t){t=new FixedOffsetZone(e.Z)}r=e.Z}if(!isUndefined(e.q)){e.M=(e.q-1)*3+1}if(!isUndefined(e.h)){if(e.h<12&&e.a===1){e.h+=12}else if(e.h===12&&e.a===0){e.h=0}}if(e.G===0&&e.y){e.y=-e.y}if(!isUndefined(e.u)){e.S=parseMillis(e.u)}const n=Object.keys(e).reduce(((t,r)=>{const n=toField(r);if(n){t[n]=e[r]}return t}),{});return[n,t,r]}let Yn=null;function getDummyDateTime(){if(!Yn){Yn=DateTime.fromMillis(1555555555555)}return Yn}function maybeExpandMacroToken(e,t){if(e.literal){return e}const r=Formatter.macroTokenToFormatOpts(e.val);const n=formatOptsToTokens(r,t);if(n==null||n.includes(undefined)){return e}return n}function expandMacroTokens(e,t){return Array.prototype.concat(...e.map((e=>maybeExpandMacroToken(e,t))))}function explainFromTokens(e,t,r){const n=expandMacroTokens(Formatter.parseFormat(r),e),s=n.map((t=>unitForToken(t,e))),o=s.find((e=>e.invalidReason));if(o){return{input:t,tokens:n,invalidReason:o.invalidReason}}else{const[e,r]=buildRegex(s),o=RegExp(e,"i"),[i,a]=match(t,o,r),[c,u,A]=a?dateTimeFromMatches(a):[null,null,undefined];if(util_hasOwnProperty(a,"a")&&util_hasOwnProperty(a,"H")){throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format")}return{input:t,tokens:n,regex:o,rawMatches:i,matches:a,result:c,zone:u,specificOffset:A}}}function parseFromTokens(e,t,r){const{result:n,zone:s,specificOffset:o,invalidReason:i}=explainFromTokens(e,t,r);return[n,s,o,i]}function formatOptsToTokens(e,t){if(!e){return null}const r=Formatter.create(t,e);const n=r.dtFormatter(getDummyDateTime());const s=n.formatToParts();const o=n.resolvedOptions();return s.map((t=>tokenForPart(t,e,o)))}const Kn="Invalid DateTime";const Jn=864e13;function unsupportedZone(e){return new Invalid("unsupported zone",`the zone "${e.name}" is not supported`)}function possiblyCachedWeekData(e){if(e.weekData===null){e.weekData=gregorianToWeek(e.c)}return e.weekData}function possiblyCachedLocalWeekData(e){if(e.localWeekData===null){e.localWeekData=gregorianToWeek(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())}return e.localWeekData}function datetime_clone(e,t){const r={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new DateTime({...r,...t,old:r})}function fixOffset(e,t,r){let n=e-t*60*1e3;const s=r.offset(n);if(t===s){return[n,t]}n-=(s-t)*60*1e3;const o=r.offset(n);if(s===o){return[n,s]}return[e-Math.min(s,o)*60*1e3,Math.max(s,o)]}function tsToObj(e,t){e+=t*60*1e3;const r=new Date(e);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function objToTS(e,t,r){return fixOffset(objToLocalTS(e),t,r)}function adjustTime(e,t){const r=e.o,n=e.c.year+Math.trunc(t.years),s=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:n,month:s,day:Math.min(e.c.day,daysInMonth(n,s))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},i=Duration.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),a=objToLocalTS(o);let[c,u]=fixOffset(a,r,e.zone);if(i!==0){c+=i;u=e.zone.offset(c)}return{ts:c,o:u}}function parseDataToDateTime(e,t,r,n,s,o){const{setZone:i,zone:a}=r;if(e&&Object.keys(e).length!==0||t){const n=t||a,s=DateTime.fromObject(e,{...r,zone:n,specificOffset:o});return i?s:s.setZone(a)}else{return DateTime.invalid(new Invalid("unparsable",`the input "${s}" can't be parsed as ${n}`))}}function toTechFormat(e,t,r=true){return e.isValid?Formatter.create(Locale.create("en-US"),{allowZ:r,forceSimple:true}).formatDateTimeFromString(e,t):null}function toISODate(e,t){const r=e.c.year>9999||e.c.year<0;let n="";if(r&&e.c.year>=0)n+="+";n+=padStart(e.c.year,r?6:4);if(t){n+="-";n+=padStart(e.c.month);n+="-";n+=padStart(e.c.day)}else{n+=padStart(e.c.month);n+=padStart(e.c.day)}return n}function toISOTime(e,t,r,n,s,o){let i=padStart(e.c.hour);if(t){i+=":";i+=padStart(e.c.minute);if(e.c.millisecond!==0||e.c.second!==0||!r){i+=":"}}else{i+=padStart(e.c.minute)}if(e.c.millisecond!==0||e.c.second!==0||!r){i+=padStart(e.c.second);if(e.c.millisecond!==0||!n){i+=".";i+=padStart(e.c.millisecond,3)}}if(s){if(e.isOffsetFixed&&e.offset===0&&!o){i+="Z"}else if(e.o<0){i+="-";i+=padStart(Math.trunc(-e.o/60));i+=":";i+=padStart(Math.trunc(-e.o%60))}else{i+="+";i+=padStart(Math.trunc(e.o/60));i+=":";i+=padStart(Math.trunc(e.o%60))}}if(o){i+="["+e.zone.ianaName+"]"}return i}const $n={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Wn={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},zn={ordinal:1,hour:0,minute:0,second:0,millisecond:0};const Zn=["year","month","day","hour","minute","second","millisecond"],Xn=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],es=["year","ordinal","hour","minute","second","millisecond"];function normalizeUnit(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new InvalidUnitError(e);return t}function normalizeUnitWithLocalWeeks(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return normalizeUnit(e)}}function quickDT(e,t){const r=normalizeZone(t.zone,Settings.defaultZone),n=Locale.fromObject(t),s=Settings.now();let o,i;if(!isUndefined(e.year)){for(const t of Zn){if(isUndefined(e[t])){e[t]=$n[t]}}const t=hasInvalidGregorianData(e)||hasInvalidTimeData(e);if(t){return DateTime.invalid(t)}const n=r.offset(s);[o,i]=objToTS(e,n,r)}else{o=s}return new DateTime({ts:o,zone:r,loc:n,o:i})}function diffRelative(e,t,r){const n=isUndefined(r.round)?true:r.round,format=(e,s)=>{e=roundTo(e,n||r.calendary?0:2,true);const o=t.loc.clone(r).relFormatter(r);return o.format(e,s)},differ=n=>{if(r.calendary){if(!t.hasSame(e,n)){return t.startOf(n).diff(e.startOf(n),n).get(n)}else return 0}else{return t.diff(e,n).get(n)}};if(r.unit){return format(differ(r.unit),r.unit)}for(const e of r.units){const t=differ(e);if(Math.abs(t)>=1){return format(t,e)}}return format(e>t?-0:0,r.units[r.units.length-1])}function lastOpts(e){let t={},r;if(e.length>0&&typeof e[e.length-1]==="object"){t=e[e.length-1];r=Array.from(e).slice(0,e.length-1)}else{r=Array.from(e)}return[t,r]}class DateTime{constructor(e){const t=e.zone||Settings.defaultZone;let r=e.invalid||(Number.isNaN(e.ts)?new Invalid("invalid input"):null)||(!t.isValid?unsupportedZone(t):null);this.ts=isUndefined(e.ts)?Settings.now():e.ts;let n=null,s=null;if(!r){const o=e.old&&e.old.ts===this.ts&&e.old.zone.equals(t);if(o){[n,s]=[e.old.c,e.old.o]}else{const e=t.offset(this.ts);n=tsToObj(this.ts,e);r=Number.isNaN(n.year)?new Invalid("invalid input"):null;n=r?null:n;s=r?null:e}}this._zone=t;this.loc=e.loc||Locale.create();this.invalid=r;this.weekData=null;this.localWeekData=null;this.c=n;this.o=s;this.isLuxonDateTime=true}static now(){return new DateTime({})}static local(){const[e,t]=lastOpts(arguments),[r,n,s,o,i,a,c]=t;return quickDT({year:r,month:n,day:s,hour:o,minute:i,second:a,millisecond:c},e)}static utc(){const[e,t]=lastOpts(arguments),[r,n,s,o,i,a,c]=t;e.zone=FixedOffsetZone.utcInstance;return quickDT({year:r,month:n,day:s,hour:o,minute:i,second:a,millisecond:c},e)}static fromJSDate(e,t={}){const r=isDate(e)?e.valueOf():NaN;if(Number.isNaN(r)){return DateTime.invalid("invalid input")}const n=normalizeZone(t.zone,Settings.defaultZone);if(!n.isValid){return DateTime.invalid(unsupportedZone(n))}return new DateTime({ts:r,zone:n,loc:Locale.fromObject(t)})}static fromMillis(e,t={}){if(!isNumber(e)){throw new InvalidArgumentError(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}else if(e<-Jn||e>Jn){return DateTime.invalid("Timestamp out of range")}else{return new DateTime({ts:e,zone:normalizeZone(t.zone,Settings.defaultZone),loc:Locale.fromObject(t)})}}static fromSeconds(e,t={}){if(!isNumber(e)){throw new InvalidArgumentError("fromSeconds requires a numerical input")}else{return new DateTime({ts:e*1e3,zone:normalizeZone(t.zone,Settings.defaultZone),loc:Locale.fromObject(t)})}}static fromObject(e,t={}){e=e||{};const r=normalizeZone(t.zone,Settings.defaultZone);if(!r.isValid){return DateTime.invalid(unsupportedZone(r))}const n=Locale.fromObject(t);const s=normalizeObject(e,normalizeUnitWithLocalWeeks);const{minDaysInFirstWeek:o,startOfWeek:i}=usesLocalWeekValues(s,n);const a=Settings.now(),c=!isUndefined(t.specificOffset)?t.specificOffset:r.offset(a),u=!isUndefined(s.ordinal),A=!isUndefined(s.year),l=!isUndefined(s.month)||!isUndefined(s.day),d=A||l,p=s.weekYear||s.weekNumber;if((d||u)&&p){throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals")}if(l&&u){throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day")}const g=p||s.weekday&&!d;let h,m,E=tsToObj(a,c);if(g){h=Xn;m=Wn;E=gregorianToWeek(E,o,i)}else if(u){h=es;m=zn;E=gregorianToOrdinal(E)}else{h=Zn;m=$n}let y=false;for(const e of h){const t=s[e];if(!isUndefined(t)){y=true}else if(y){s[e]=m[e]}else{s[e]=E[e]}}const I=g?hasInvalidWeekData(s,o,i):u?hasInvalidOrdinalData(s):hasInvalidGregorianData(s),C=I||hasInvalidTimeData(s);if(C){return DateTime.invalid(C)}const b=g?weekToGregorian(s,o,i):u?ordinalToGregorian(s):s,[B,Q]=objToTS(b,c,r),T=new DateTime({ts:B,zone:r,o:Q,loc:n});if(s.weekday&&d&&e.weekday!==T.weekday){return DateTime.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${T.toISO()}`)}return T}static fromISO(e,t={}){const[r,n]=parseISODate(e);return parseDataToDateTime(r,n,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[r,n]=parseRFC2822Date(e);return parseDataToDateTime(r,n,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[r,n]=parseHTTPDate(e);return parseDataToDateTime(r,n,t,"HTTP",t)}static fromFormat(e,t,r={}){if(isUndefined(e)||isUndefined(t)){throw new InvalidArgumentError("fromFormat requires an input string and a format")}const{locale:n=null,numberingSystem:s=null}=r,o=Locale.fromOpts({locale:n,numberingSystem:s,defaultToEN:true}),[i,a,c,u]=parseFromTokens(o,e,t);if(u){return DateTime.invalid(u)}else{return parseDataToDateTime(i,a,r,`format ${t}`,e,c)}}static fromString(e,t,r={}){return DateTime.fromFormat(e,t,r)}static fromSQL(e,t={}){const[r,n]=parseSQL(e);return parseDataToDateTime(r,n,t,"SQL",e)}static invalid(e,t=null){if(!e){throw new InvalidArgumentError("need to specify a reason the DateTime is invalid")}const r=e instanceof Invalid?e:new Invalid(e,t);if(Settings.throwOnInvalid){throw new InvalidDateTimeError(r)}else{return new DateTime({invalid:r})}}static isDateTime(e){return e&&e.isLuxonDateTime||false}static parseFormatForOpts(e,t={}){const r=formatOptsToTokens(e,Locale.fromObject(t));return!r?null:r.map((e=>e?e.val:null)).join("")}static expandFormat(e,t={}){const r=expandMacroTokens(Formatter.parseFormat(e),Locale.fromObject(t));return r.map((e=>e.val)).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?possiblyCachedWeekData(this).weekYear:NaN}get weekNumber(){return this.isValid?possiblyCachedWeekData(this).weekNumber:NaN}get weekday(){return this.isValid?possiblyCachedWeekData(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?possiblyCachedLocalWeekData(this).weekday:NaN}get localWeekNumber(){return this.isValid?possiblyCachedLocalWeekData(this).weekNumber:NaN}get localWeekYear(){return this.isValid?possiblyCachedLocalWeekData(this).weekYear:NaN}get ordinal(){return this.isValid?gregorianToOrdinal(this.c).ordinal:NaN}get monthShort(){return this.isValid?Info.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Info.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Info.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Info.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){if(this.isValid){return this.zone.offsetName(this.ts,{format:"short",locale:this.locale})}else{return null}}get offsetNameLong(){if(this.isValid){return this.zone.offsetName(this.ts,{format:"long",locale:this.locale})}else{return null}}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){if(this.isOffsetFixed){return false}else{return this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed){return[this]}const e=864e5;const t=6e4;const r=objToLocalTS(this.c);const n=this.zone.offset(r-e);const s=this.zone.offset(r+e);const o=this.zone.offset(r-n*t);const i=this.zone.offset(r-s*t);if(o===i){return[this]}const a=r-o*t;const c=r-i*t;const u=tsToObj(a,o);const A=tsToObj(c,i);if(u.hour===A.hour&&u.minute===A.minute&&u.second===A.second&&u.millisecond===A.millisecond){return[datetime_clone(this,{ts:a}),datetime_clone(this,{ts:c})]}return[this]}get isInLeapYear(){return isLeapYear(this.year)}get daysInMonth(){return daysInMonth(this.year,this.month)}get daysInYear(){return this.isValid?daysInYear(this.year):NaN}get weeksInWeekYear(){return this.isValid?weeksInWeekYear(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?weeksInWeekYear(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:r,calendar:n}=Formatter.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:r,outputCalendar:n}}toUTC(e=0,t={}){return this.setZone(FixedOffsetZone.instance(e),t)}toLocal(){return this.setZone(Settings.defaultZone)}setZone(e,{keepLocalTime:t=false,keepCalendarTime:r=false}={}){e=normalizeZone(e,Settings.defaultZone);if(e.equals(this.zone)){return this}else if(!e.isValid){return DateTime.invalid(unsupportedZone(e))}else{let n=this.ts;if(t||r){const t=e.offset(this.ts);const r=this.toObject();[n]=objToTS(r,t,e)}return datetime_clone(this,{ts:n,zone:e})}}reconfigure({locale:e,numberingSystem:t,outputCalendar:r}={}){const n=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:r});return datetime_clone(this,{loc:n})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=normalizeObject(e,normalizeUnitWithLocalWeeks);const{minDaysInFirstWeek:r,startOfWeek:n}=usesLocalWeekValues(t,this.loc);const s=!isUndefined(t.weekYear)||!isUndefined(t.weekNumber)||!isUndefined(t.weekday),o=!isUndefined(t.ordinal),i=!isUndefined(t.year),a=!isUndefined(t.month)||!isUndefined(t.day),c=i||a,u=t.weekYear||t.weekNumber;if((c||o)&&u){throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals")}if(a&&o){throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day")}let A;if(s){A=weekToGregorian({...gregorianToWeek(this.c,r,n),...t},r,n)}else if(!isUndefined(t.ordinal)){A=ordinalToGregorian({...gregorianToOrdinal(this.c),...t})}else{A={...this.toObject(),...t};if(isUndefined(t.day)){A.day=Math.min(daysInMonth(A.year,A.month),A.day)}}const[l,d]=objToTS(A,this.o,this.zone);return datetime_clone(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e);return datetime_clone(this,adjustTime(this,t))}minus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e).negate();return datetime_clone(this,adjustTime(this,t))}startOf(e,{useLocaleWeeks:t=false}={}){if(!this.isValid)return this;const r={},n=Duration.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break;case"milliseconds":break}if(n==="weeks"){if(t){const e=this.loc.getStartOfWeek();const{weekday:t}=this;if(tthis.valueOf(),i=o?this:e,a=o?e:this,c=diff(i,a,s,n);return o?c.negate():c}diffNow(e="milliseconds",t={}){return this.diff(DateTime.now(),e,t)}until(e){return this.isValid?Interval.fromDateTimes(this,e):this}hasSame(e,t,r){if(!this.isValid)return false;const n=e.valueOf();const s=this.setZone(e.zone,{keepLocalTime:true});return s.startOf(t,r)<=n&&n<=s.endOf(t,r)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const t=e.base||DateTime.fromObject({},{zone:this.zone}),r=e.padding?thise.valueOf()),Math.min)}static max(...e){if(!e.every(DateTime.isDateTime)){throw new InvalidArgumentError("max requires all arguments be DateTimes")}return bestBy(e,(e=>e.valueOf()),Math.max)}static fromFormatExplain(e,t,r={}){const{locale:n=null,numberingSystem:s=null}=r,o=Locale.fromOpts({locale:n,numberingSystem:s,defaultToEN:true});return explainFromTokens(o,e,t)}static fromStringExplain(e,t,r={}){return DateTime.fromFormatExplain(e,t,r)}static get DATE_SHORT(){return Jt}static get DATE_MED(){return $t}static get DATE_MED_WITH_WEEKDAY(){return Wt}static get DATE_FULL(){return zt}static get DATE_HUGE(){return Zt}static get TIME_SIMPLE(){return Xt}static get TIME_WITH_SECONDS(){return er}static get TIME_WITH_SHORT_OFFSET(){return tr}static get TIME_WITH_LONG_OFFSET(){return rr}static get TIME_24_SIMPLE(){return nr}static get TIME_24_WITH_SECONDS(){return sr}static get TIME_24_WITH_SHORT_OFFSET(){return or}static get TIME_24_WITH_LONG_OFFSET(){return ir}static get DATETIME_SHORT(){return ar}static get DATETIME_SHORT_WITH_SECONDS(){return cr}static get DATETIME_MED(){return ur}static get DATETIME_MED_WITH_SECONDS(){return Ar}static get DATETIME_MED_WITH_WEEKDAY(){return lr}static get DATETIME_FULL(){return dr}static get DATETIME_FULL_WITH_SECONDS(){return pr}static get DATETIME_HUGE(){return fr}static get DATETIME_HUGE_WITH_SECONDS(){return gr}}function friendlyDateTime(e){if(DateTime.isDateTime(e)){return e}else if(e&&e.valueOf&&isNumber(e.valueOf())){return DateTime.fromJSDate(e)}else if(e&&typeof e==="object"){return DateTime.fromObject(e)}else{throw new InvalidArgumentError(`Unknown datetime argument: ${e}, of type ${typeof e}`)}}const ts="3.4.4";const rs="Followup";const ns="Unassign";const ss=e(import.meta.url)("node:fs");var os=__nccwpck_require__(17645);var is=__nccwpck_require__(90423);const as=validateQuery;const cs=(0,os.buildClientSchema)(JSON.parse((0,ss.readFileSync)(__nccwpck_require__.ab+"schema.json","utf8")));function validateQuery(e){return(0,os.validate)(cs,is(e))}const us=`\n query collectLinkedPullRequests($owner: String!, $repo: String!, $issue_number: Int!) {\n repository(owner: $owner, name: $repo) {\n issue(number: $issue_number) {\n closedByPullRequestsReferences(first: 100, includeClosedPrs: false) {\n edges {\n node {\n url\n title\n body\n state\n number\n author {\n login\n ... on User {\n id: databaseId\n }\n }\n }\n }\n }\n }\n }\n }\n`;const As=as(us);if(As.length>1){throw new Error(`Invalid query: ${As.join(", ")}`)}async function collectLinkedPullRequests(e,t){const{owner:r,repo:n,issue_number:s}=t;const o=await e.octokit.graphql(us,{owner:r,repo:n,issue_number:s});return o.repository.issue.closedByPullRequestsReferences.edges.map((e=>e.node))}function parseIssueUrl(e){const t=new URL(e).pathname.split("/");if(t.length!==5){throw new Error(`[parseGitHubUrl] Invalid url: [${e}]`)}return{owner:t[1],repo:t[2],issue_number:Number(t[4])}}async function getAssigneesActivityForIssue(e,t,r){const n=parseIssueUrl(t.html_url);const s=await e.octokit.paginate(e.octokit.rest.issues.listEventsForTimeline,{owner:n.owner,repo:n.repo,issue_number:n.issue_number,per_page:100});const o=await collectLinkedPullRequests(e,n);for(const t of o){const{owner:r,repo:n,issue_number:o}=parseIssueUrl(t.url||"");const i=await e.octokit.paginate(e.octokit.rest.issues.listEventsForTimeline,{owner:r,repo:n,issue_number:o,per_page:100});s.push(...i)}return filterEvents(s,r)}function filterEvents(e,t){const r=new Map;let n=[];for(const s of e){let e=null;let o=null;let i=null;let a=s.event;if("actor"in s&&s.actor){o=s.actor.login.toLowerCase();if(!r.has(o)){r.set(o,s.actor.id)}e=r.get(o);i=s.created_at}else if((s.event==="committed"||s.event==="commented")&&"author"in s){const e="author"in s?s.author:null;const t="committer"in s?s.committer:null;if(e||t){n.push({event:a,created_at:s.author.date,author:s.author.email});continue}}if(e&&t.includes(e)){n.push({event:a,created_at:i,author:o})}}return n.sort(((e,t)=>{if(!e.created_at||!t.created_at){return 0}return DateTime.fromISO(t.created_at).toMillis()-DateTime.fromISO(e.created_at).toMillis()}))}const ls="Ubiquity";function createStructuredMetadata(e,t){let r,n;if(t){r=t.logMessage;n=t.metadata}const s=JSON.stringify(n,null,2);const o=(new Error).stack?.split("\n")[2]??"";const i=o.match(/at (\S+)/)?.[1]??"";const a=`\x3c!-- ${ls} - ${e} - ${i} - ${n?.revision}`;let c;const u=["```json",s,"```"].join("\n");const A=[a,s,"--\x3e"].join("\n");if(r?.type==="fatal"){c=[u,A].join("\n")}else{c=A}return c}async function getCommentsFromMetadata(e,t,r,n,s){const{octokit:o}=e;const i=new RegExp(`\x3c!-- ${ls} - ${s} - \\S+ - [\\s\\S]*?--\x3e`);return await o.paginate(o.rest.issues.listComments,{owner:r,repo:n,issue_number:t},(e=>e.data.filter((e=>e.performed_via_github_app&&e.body&&e.user?.type==="Bot"&&i.test(e.body)))))}async function unassignUserFromIssue(e,t){const{logger:r,config:n}=e;if(n.disqualification<=0){r.info("The unassign threshold is <= 0, won't unassign users.")}else{await removeAllAssignees(e,t)}}async function remindAssigneesForIssue(e,t){const{logger:r,config:n}=e;const s=parseIssueUrl(t.html_url);const o=!!(await collectLinkedPullRequests(e,s)).length;if(n.warning<=0){r.info("The reminder threshold is <= 0, won't send any reminder.")}else if(n.pullRequestRequired&&!o){await unassignUserFromIssue(e,t)}else{r.info(`Passed the reminder threshold on ${t.html_url} sending a reminder.`);await remindAssignees(e,t)}}async function remindAssignees(e,t){const{octokit:r,logger:n,config:s}=e;const{repo:o,owner:i,issue_number:a}=parseIssueUrl(t.html_url);if(!t?.assignees?.length){n.error(`Missing Assignees from ${t.html_url}`);return false}const c=t.assignees.map((e=>e?.login)).filter((e=>!!e)).join(", @");const u=n.info(`@${c}, this task has been idle for a while. Please provide an update.\n\n`,{taskAssignees:t.assignees.map((e=>e?.id))});const A=createStructuredMetadata(rs,u);if(!s.pullRequestRequired){await r.rest.issues.createComment({owner:i,repo:o,issue_number:a,body:[u.logMessage.raw,A].join("\n")})}else{const t=await collectLinkedPullRequests(e,{repo:o,owner:i,issue_number:a});let s=false;for(const e of t){const{owner:t,repo:o,issue_number:i}=parseIssueUrl(e.url);try{await r.rest.issues.createComment({owner:t,repo:o,issue_number:i,body:[u.logMessage.raw,A].join("\n")})}catch(t){n.error(`Could not post to ${e.url} will post to the issue instead.`,{e:t});s=true}}if(s){await r.rest.issues.createComment({owner:i,repo:o,issue_number:a,body:[u.logMessage.raw,A].join("\n")})}}return true}async function removeAllAssignees(e,t){const{octokit:r,logger:n}=e;const{repo:s,owner:o,issue_number:i}=parseIssueUrl(t.html_url);if(!t?.assignees?.length){n.error(`Missing Assignees from ${t.html_url}`);return false}const a=t.assignees.map((e=>e?.login)).filter((e=>!!e));const c=n.info(`Passed the deadline and no activity is detected, removing assignees: ${a.map((e=>`@${e}`)).join(", ")}.`,{issue:t.html_url});const u=createStructuredMetadata(ns,c);await r.rest.issues.createComment({owner:o,repo:s,issue_number:i,body:[c.logMessage.raw,u].join("\n")});await r.rest.issues.removeAssignees({owner:o,repo:s,issue_number:i,assignees:a});return true}var ds=__nccwpck_require__(70744);var ps=__nccwpck_require__.n(ds);async function getTaskAssignmentDetails(e,t,r){const{logger:n,octokit:s}=e;const o=await s.paginate(s.rest.issues.listEvents,{owner:t.owner.login,repo:t.name,issue_number:r.number});const i=o.filter((e=>e.event==="assigned")).sort(((e,t)=>DateTime.fromISO(t.created_at).toMillis()-DateTime.fromISO(e.created_at).toMillis()));const a=i.find((e=>e.actor?.type==="User"));const c=i.find((e=>e.actor?.type==="Bot"));let u=a||c;if(a&&c&&DateTime.fromISO(a.created_at)>DateTime.fromISO(c.created_at)){u=a}else{u=c}const A={startPlusLabelDuration:DateTime.fromISO(r.created_at).toISO()||"",taskAssignees:r.assignees?r.assignees.map((e=>e.id)):r.assignee?[r.assignee.id]:[]};if(!A.taskAssignees?.length){n.error(`Missing Assignees from ${r.html_url}`);return false}const l=parseTimeLabel(r.labels);if(l===0){}else if(l<0||!l){n.error(`Invalid deadline found on ${r.html_url}`);return false}A.startPlusLabelDuration=DateTime.fromISO(u?.created_at||r.created_at).plus({milliseconds:l}).toISO()||"";return A}function parseTimeLabel(e){let t=0;for(const r of e){let e="";if(typeof r==="string"){e=r}else{e=r.name||""}if(e.startsWith("Time:")){const r=e.match(/Time: <(\d+) (\w+)/i);if(!r){return 0}const[n,s,o]=r;t=ps()(`${s} ${o}`)}if(t){break}}return t}function parsePriorityLabel(e){for(const t of e){let e="";if(typeof t==="string"){e=t}else{e=t.name||""}if(e.startsWith("Priority:")){const t=e.match(/Priority: (\d+)/i);if(!t){return 1}return Number(t[1])}}return 1}const getMostRecentActivityDate=(e,t)=>t&&t>e?t:e;async function updateTaskReminder(e,t,r){const{octokit:n,logger:s,config:{eventWhitelist:o,warning:i,disqualification:a,prioritySpeed:c}}=e;const u=await getTaskAssignmentDetails(e,t,r);const A=DateTime.local();if(!u)return;const l=await n.paginate(n.rest.issues.listEvents,{owner:t.owner.login,repo:t.name,issue_number:r.number});const d=l.filter((e=>e.event==="assigned"&&u.taskAssignees.includes(e.actor.id))).sort(((e,t)=>DateTime.fromISO(t.created_at).toMillis()-DateTime.fromISO(e.created_at).toMillis())).shift();if(!d){s.error(`Failed to update activity for ${r.html_url}, there is no assigned event.`);return}const p=(await getAssigneesActivityForIssue(e,r,u.taskAssignees)).filter((e=>o.includes(e.event))).shift();const g=DateTime.fromISO(d.created_at);const h=parsePriorityLabel(r.labels);const m=Math.max(1,h);const E=p?.created_at?DateTime.fromISO(p.created_at):undefined;let y=getMostRecentActivityDate(g,E);const I=(await collectLinkedPullRequests(e,{issue_number:r.number,repo:t.name,owner:t.owner.login})).map((e=>e.url));I.push(r.html_url);const C=await Promise.all(I.map((async t=>{const{issue_number:r,owner:n,repo:s}=parseIssueUrl(t);const o=await getCommentsFromMetadata(e,r,n,s,rs);return o.filter((e=>DateTime.fromISO(e.created_at)>y))})));const b=C.flat().shift();s.debug(`Handling metadata and deadline for ${r.html_url}`,{now:A.toLocaleString(DateTime.DATETIME_MED),assignedDate:DateTime.fromISO(d.created_at).toLocaleString(DateTime.DATETIME_MED),lastReminderComment:b?DateTime.fromISO(b.created_at).toLocaleString(DateTime.DATETIME_MED):"none",mostRecentActivityDate:y.toLocaleString(DateTime.DATETIME_MED)});const B=a-i;if(b){const t=DateTime.fromISO(b.created_at);y=t>y?t:y;if(y.plus({milliseconds:c?B/m:B})<=A){await unassignUserFromIssue(e,r)}else{s.info(`Reminder was sent for ${r.html_url} already, not beyond disqualification deadline yet.`,{now:A.toLocaleString(DateTime.DATETIME_MED),assignedDate:DateTime.fromISO(d.created_at).toLocaleString(DateTime.DATETIME_MED),lastReminderComment:b?DateTime.fromISO(b.created_at).toLocaleString(DateTime.DATETIME_MED):"none",mostRecentActivityDate:y.toLocaleString(DateTime.DATETIME_MED)})}}else{if(y.plus({milliseconds:c?i/m:i})<=A){await remindAssigneesForIssue(e,r)}else{s.info(`Nothing to do for ${r.html_url} still within due-time.`,{now:A.toLocaleString(DateTime.DATETIME_MED),assignedDate:DateTime.fromISO(d.created_at).toLocaleString(DateTime.DATETIME_MED),lastReminderComment:"none",mostRecentActivityDate:y.toLocaleString(DateTime.DATETIME_MED)})}}}async function watchUserActivity(e){const{logger:t}=e;const r=await getWatchedRepos(e);if(!r?.length){return{message:t.info("No watched repos have been found, no work to do.").logMessage.raw}}await Promise.all(r.map((async r=>{t.debug(`> Watching user activity for repo: ${r.name} (${r.html_url})`);await updateReminders(e,r)})));return{message:"OK"}}async function updateReminders(e,t){const{logger:r,octokit:n,payload:s}=e;const o=s.repository.owner?.login;if(!o){throw new Error("No owner found in the payload")}const i=await n.paginate(n.rest.issues.listForRepo,{owner:o,repo:t.name,per_page:100,state:"open"});await Promise.all(i.map((async n=>{if(n.draft||n.pull_request||n.locked||n.state!=="open"){r.debug(`Skipping issue ${n.html_url} due to the issue not meeting the right criteria.`,{draft:n.draft,pullRequest:!!n.pull_request,locked:n.locked,state:n.state});return}if(n.assignees?.length||n.assignee){r.debug(`Checking assigned issue: ${n.html_url}`);await updateTaskReminder(e,t,n)}else{r.info(`Skipping issue ${n.html_url} because no user is assigned.`)}})))}async function run(e){e.logger.debug("Will run with the following configuration:",{configuration:e.config});return watchUserActivity(e)}function thresholdType(e){return Oe.Transform(Oe.String(e)).Decode((e=>{const t=ps()(e);if(t===undefined){throw new TypeBoxError(`Invalid threshold value: [${e}]`)}return t})).Encode((e=>{const t=ps()(e,{long:true});if(t===undefined){throw new TypeBoxError(`Invalid threshold value: [${e}]`)}return t}))}const fs=["pull_request.review_requested","pull_request.ready_for_review","pull_request_review_comment.created","issue_comment.created","push"];function mapWebhookToEvent(e){const t=new Map([["pull_request.review_requested","review_requested"],["pull_request.ready_for_review","ready_for_review"],["pull_request_review_comment.created","commented"],["issue_comment.created","commented"],["push","committed"]]);return t.get(e)}const gs=Oe.Union(fs.map((e=>Oe.Literal(e))));const hs=Oe.Object({warning:thresholdType({default:"3.5 days"}),watch:Oe.Object({optOut:Oe.Array(Oe.String(),{default:[]})},{default:{}}),prioritySpeed:Oe.Boolean({default:true}),disqualification:thresholdType({default:"7 days"}),pullRequestRequired:Oe.Boolean({default:true}),eventWhitelist:Oe.Transform(Oe.Array(Oe.String(),{default:fs})).Decode((e=>{const t=Object.values(fs);let r=[];for(const n of e){if(!t.includes(n)){throw new TypeBoxError(`Invalid event [${n}] (unknown event)`)}const e=mapWebhookToEvent(n);if(!e){throw new TypeBoxError(`Invalid event [${n}] (unmapped event)`)}if(!r.includes(e)){r.push(e)}}return r})).Encode((e=>e.map((e=>{const t=new Map([["review_requested","pull_request.review_requested"],["ready_for_review","pull_request.ready_for_review"],["commented","pull_request_review_comment.created"],["commented","issue_comment.created"],["committed","push"]]);return t.get(e)}))))},{default:{}});const ms=Oe.Object({});createActionsPlugin((e=>run(e)),{envSchema:ms,settingsSchema:hs,logLevel:process.env.LOG_LEVEL||i.INFO,postCommentOnError:false,...process.env.KERNEL_PUBLIC_KEY&&{kernelPublicKey:process.env.KERNEL_PUBLIC_KEY}}).catch(console.error); \ No newline at end of file +import { createRequire as __WEBPACK_EXTERNAL_createRequire } from "module"; +/******/ var __webpack_modules__ = ({ + +/***/ 8612: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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.issue = exports.issueCommand = void 0; +const os = __importStar(__nccwpck_require__(857)); +const utils_1 = __nccwpck_require__(6088); +/** + * 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 += ' '; + 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)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +function escapeData(s) { + return (0, utils_1.toCommandValue)(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return (0, 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 + +/***/ }), + +/***/ 2738: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.platform = exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = exports.markdownSummary = exports.summary = 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__(8612); +const file_command_1 = __nccwpck_require__(35); +const utils_1 = __nccwpck_require__(6088); +const os = __importStar(__nccwpck_require__(857)); +const path = __importStar(__nccwpck_require__(6928)); +const oidc_utils_1 = __nccwpck_require__(9528); +/** + * 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 = 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 = (0, utils_1.toCommandValue)(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + return (0, file_command_1.issueFileCommand)('ENV', (0, file_command_1.prepareKeyValueMessage)(name, val)); + } + (0, 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) { + (0, 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) { + (0, file_command_1.issueFileCommand)('PATH', inputPath); + } + else { + (0, 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 (0, file_command_1.issueFileCommand)('OUTPUT', (0, file_command_1.prepareKeyValueMessage)(name, value)); + } + process.stdout.write(os.EOL); + (0, command_1.issueCommand)('set-output', { name }, (0, 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) { + (0, 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) { + (0, 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 = {}) { + (0, command_1.issueCommand)('error', (0, 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 = {}) { + (0, command_1.issueCommand)('warning', (0, 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 = {}) { + (0, command_1.issueCommand)('notice', (0, 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) { + (0, command_1.issue)('group', name); +} +exports.startGroup = startGroup; +/** + * End an output group. + */ +function endGroup() { + (0, 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 (0, file_command_1.issueFileCommand)('STATE', (0, file_command_1.prepareKeyValueMessage)(name, value)); + } + (0, command_1.issueCommand)('save-state', { name }, (0, 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__(101); +Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); +/** + * @deprecated use core.summary + */ +var summary_2 = __nccwpck_require__(101); +Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); +/** + * Path exports + */ +var path_utils_1 = __nccwpck_require__(2102); +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; } })); +/** + * Platform utilities exports + */ +exports.platform = __importStar(__nccwpck_require__(4385)); +//# sourceMappingURL=core.js.map + +/***/ }), + +/***/ 35: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +// For internal use, subject to change. +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.prepareKeyValueMessage = exports.issueFileCommand = void 0; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +const crypto = __importStar(__nccwpck_require__(6982)); +const fs = __importStar(__nccwpck_require__(9896)); +const os = __importStar(__nccwpck_require__(857)); +const utils_1 = __nccwpck_require__(6088); +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, `${(0, utils_1.toCommandValue)(message)}${os.EOL}`, { + encoding: 'utf8' + }); +} +exports.issueFileCommand = issueFileCommand; +function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${crypto.randomUUID()}`; + const convertedValue = (0, 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 + +/***/ }), + +/***/ 9528: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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__(8278); +const auth_1 = __nccwpck_require__(66); +const core_1 = __nccwpck_require__(2738); +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 => { + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.message}`); + }); + 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'); + } + return id_token; + }); + } + 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}`; + } + (0, core_1.debug)(`ID token url is ${id_token_url}`); + const id_token = yield OidcClient.getCall(id_token_url); + (0, core_1.setSecret)(id_token); + return id_token; + } + catch (error) { + throw new Error(`Error message: ${error.message}`); + } + }); + } +} +exports.OidcClient = OidcClient; +//# sourceMappingURL=oidc-utils.js.map + +/***/ }), + +/***/ 2102: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; +const path = __importStar(__nccwpck_require__(6928)); +/** + * 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 + +/***/ }), + +/***/ 4385: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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 })); +exports.getDetails = exports.isLinux = exports.isMacOS = exports.isWindows = exports.arch = exports.platform = void 0; +const os_1 = __importDefault(__nccwpck_require__(857)); +const exec = __importStar(__nccwpck_require__(6610)); +const getWindowsInfo = () => __awaiter(void 0, void 0, void 0, function* () { + const { stdout: version } = yield exec.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"', undefined, { + silent: true + }); + const { stdout: name } = yield exec.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"', undefined, { + silent: true + }); + return { + name: name.trim(), + version: version.trim() + }; +}); +const getMacOsInfo = () => __awaiter(void 0, void 0, void 0, function* () { + var _a, _b, _c, _d; + const { stdout } = yield exec.getExecOutput('sw_vers', undefined, { + silent: true + }); + const version = (_b = (_a = stdout.match(/ProductVersion:\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : ''; + const name = (_d = (_c = stdout.match(/ProductName:\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : ''; + return { + name, + version + }; +}); +const getLinuxInfo = () => __awaiter(void 0, void 0, void 0, function* () { + const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], { + silent: true + }); + const [name, version] = stdout.trim().split('\n'); + return { + name, + version + }; +}); +exports.platform = os_1.default.platform(); +exports.arch = os_1.default.arch(); +exports.isWindows = exports.platform === 'win32'; +exports.isMacOS = exports.platform === 'darwin'; +exports.isLinux = exports.platform === 'linux'; +function getDetails() { + return __awaiter(this, void 0, void 0, function* () { + return Object.assign(Object.assign({}, (yield (exports.isWindows + ? getWindowsInfo() + : exports.isMacOS + ? getMacOsInfo() + : getLinuxInfo()))), { platform: exports.platform, + arch: exports.arch, + isWindows: exports.isWindows, + isMacOS: exports.isMacOS, + isLinux: exports.isLinux }); + }); +} +exports.getDetails = getDetails; +//# sourceMappingURL=platform.js.map + +/***/ }), + +/***/ 101: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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__(857); +const fs_1 = __nccwpck_require__(9896); +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; + } + 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.`); + } + 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.`); + } + 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); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + 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* () { + 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); + }) + .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) + ? 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 + +/***/ }), + +/***/ 6088: +/***/ ((__unused_webpack_module, exports) => { + + +// 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 + +/***/ }), + +/***/ 6610: +/***/ (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 __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.getExecOutput = exports.exec = void 0; +const string_decoder_1 = __nccwpck_require__(3193); +const tr = __importStar(__nccwpck_require__(7387)); +/** + * Exec a command. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param commandLine command to execute (can include additional args). Must be correctly escaped. + * @param args optional arguments for tool. Escaping is handled by the lib. + * @param options optional exec options. See ExecOptions + * @returns Promise exit code + */ +function exec(commandLine, args, options) { + return __awaiter(this, void 0, void 0, function* () { + const commandArgs = tr.argStringToArray(commandLine); + if (commandArgs.length === 0) { + throw new Error(`Parameter 'commandLine' cannot be null or empty.`); + } + // Path to tool to execute should be first arg + const toolPath = commandArgs[0]; + args = commandArgs.slice(1).concat(args || []); + const runner = new tr.ToolRunner(toolPath, args, options); + return runner.exec(); + }); +} +exports.exec = exec; +/** + * Exec a command and get the output. + * Output will be streamed to the live console. + * Returns promise with the exit code and collected stdout and stderr + * + * @param commandLine command to execute (can include additional args). Must be correctly escaped. + * @param args optional arguments for tool. Escaping is handled by the lib. + * @param options optional exec options. See ExecOptions + * @returns Promise exit code, stdout, and stderr + */ +function getExecOutput(commandLine, args, options) { + var _a, _b; + return __awaiter(this, void 0, void 0, function* () { + let stdout = ''; + let stderr = ''; + //Using string decoder covers the case where a mult-byte character is split + const stdoutDecoder = new string_decoder_1.StringDecoder('utf8'); + const stderrDecoder = new string_decoder_1.StringDecoder('utf8'); + const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout; + const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr; + const stdErrListener = (data) => { + stderr += stderrDecoder.write(data); + if (originalStdErrListener) { + originalStdErrListener(data); + } + }; + const stdOutListener = (data) => { + stdout += stdoutDecoder.write(data); + if (originalStdoutListener) { + originalStdoutListener(data); + } + }; + const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener }); + const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners })); + //flush any remaining characters + stdout += stdoutDecoder.end(); + stderr += stderrDecoder.end(); + return { + exitCode, + stdout, + stderr + }; + }); +} +exports.getExecOutput = getExecOutput; +//# sourceMappingURL=exec.js.map + +/***/ }), + +/***/ 7387: +/***/ (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 __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.argStringToArray = exports.ToolRunner = void 0; +const os = __importStar(__nccwpck_require__(857)); +const events = __importStar(__nccwpck_require__(4434)); +const child = __importStar(__nccwpck_require__(5317)); +const path = __importStar(__nccwpck_require__(6928)); +const io = __importStar(__nccwpck_require__(1136)); +const ioUtil = __importStar(__nccwpck_require__(2553)); +const timers_1 = __nccwpck_require__(3557); +/* eslint-disable @typescript-eslint/unbound-method */ +const IS_WINDOWS = process.platform === 'win32'; +/* + * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way. + */ +class ToolRunner extends events.EventEmitter { + constructor(toolPath, args, options) { + super(); + if (!toolPath) { + throw new Error("Parameter 'toolPath' cannot be null or empty."); + } + this.toolPath = toolPath; + this.args = args || []; + this.options = options || {}; + } + _debug(message) { + if (this.options.listeners && this.options.listeners.debug) { + this.options.listeners.debug(message); + } + } + _getCommandString(options, noPrefix) { + const toolPath = this._getSpawnFileName(); + const args = this._getSpawnArgs(options); + let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool + if (IS_WINDOWS) { + // Windows + cmd file + if (this._isCmdFile()) { + cmd += toolPath; + for (const a of args) { + cmd += ` ${a}`; + } + } + // Windows + verbatim + else if (options.windowsVerbatimArguments) { + cmd += `"${toolPath}"`; + for (const a of args) { + cmd += ` ${a}`; + } + } + // Windows (regular) + else { + cmd += this._windowsQuoteCmdArg(toolPath); + for (const a of args) { + cmd += ` ${this._windowsQuoteCmdArg(a)}`; + } + } + } + else { + // OSX/Linux - this can likely be improved with some form of quoting. + // creating processes on Unix is fundamentally different than Windows. + // on Unix, execvp() takes an arg array. + cmd += toolPath; + for (const a of args) { + cmd += ` ${a}`; + } + } + return cmd; + } + _processLineBuffer(data, strBuffer, onLine) { + try { + let s = strBuffer + data.toString(); + let n = s.indexOf(os.EOL); + while (n > -1) { + const line = s.substring(0, n); + onLine(line); + // the rest of the string ... + s = s.substring(n + os.EOL.length); + n = s.indexOf(os.EOL); + } + return s; + } + catch (err) { + // streaming lines to console is best effort. Don't fail a build. + this._debug(`error processing line. Failed with error ${err}`); + return ''; + } + } + _getSpawnFileName() { + if (IS_WINDOWS) { + if (this._isCmdFile()) { + return process.env['COMSPEC'] || 'cmd.exe'; + } + } + return this.toolPath; + } + _getSpawnArgs(options) { + if (IS_WINDOWS) { + if (this._isCmdFile()) { + let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; + for (const a of this.args) { + argline += ' '; + argline += options.windowsVerbatimArguments + ? a + : this._windowsQuoteCmdArg(a); + } + argline += '"'; + return [argline]; + } + } + return this.args; + } + _endsWith(str, end) { + return str.endsWith(end); + } + _isCmdFile() { + const upperToolPath = this.toolPath.toUpperCase(); + return (this._endsWith(upperToolPath, '.CMD') || + this._endsWith(upperToolPath, '.BAT')); + } + _windowsQuoteCmdArg(arg) { + // for .exe, apply the normal quoting rules that libuv applies + if (!this._isCmdFile()) { + return this._uvQuoteCmdArg(arg); + } + // otherwise apply quoting rules specific to the cmd.exe command line parser. + // the libuv rules are generic and are not designed specifically for cmd.exe + // command line parser. + // + // for a detailed description of the cmd.exe command line parser, refer to + // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912 + // need quotes for empty arg + if (!arg) { + return '""'; + } + // determine whether the arg needs to be quoted + const cmdSpecialChars = [ + ' ', + '\t', + '&', + '(', + ')', + '[', + ']', + '{', + '}', + '^', + '=', + ';', + '!', + "'", + '+', + ',', + '`', + '~', + '|', + '<', + '>', + '"' + ]; + let needsQuotes = false; + for (const char of arg) { + if (cmdSpecialChars.some(x => x === char)) { + needsQuotes = true; + break; + } + } + // short-circuit if quotes not needed + if (!needsQuotes) { + return arg; + } + // the following quoting rules are very similar to the rules that by libuv applies. + // + // 1) wrap the string in quotes + // + // 2) double-up quotes - i.e. " => "" + // + // this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately + // doesn't work well with a cmd.exe command line. + // + // note, replacing " with "" also works well if the arg is passed to a downstream .NET console app. + // for example, the command line: + // foo.exe "myarg:""my val""" + // is parsed by a .NET console app into an arg array: + // [ "myarg:\"my val\"" ] + // which is the same end result when applying libuv quoting rules. although the actual + // command line from libuv quoting rules would look like: + // foo.exe "myarg:\"my val\"" + // + // 3) double-up slashes that precede a quote, + // e.g. hello \world => "hello \world" + // hello\"world => "hello\\""world" + // hello\\"world => "hello\\\\""world" + // hello world\ => "hello world\\" + // + // technically this is not required for a cmd.exe command line, or the batch argument parser. + // the reasons for including this as a .cmd quoting rule are: + // + // a) this is optimized for the scenario where the argument is passed from the .cmd file to an + // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule. + // + // b) it's what we've been doing previously (by deferring to node default behavior) and we + // haven't heard any complaints about that aspect. + // + // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be + // escaped when used on the command line directly - even though within a .cmd file % can be escaped + // by using %%. + // + // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts + // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing. + // + // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would + // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the + // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args + // to an external program. + // + // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file. + // % can be escaped within a .cmd file. + let reverse = '"'; + let quoteHit = true; + for (let i = arg.length; i > 0; i--) { + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === '\\') { + reverse += '\\'; // double the slash + } + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += '"'; // double the quote + } + else { + quoteHit = false; + } + } + reverse += '"'; + return reverse + .split('') + .reverse() + .join(''); + } + _uvQuoteCmdArg(arg) { + // Tool runner wraps child_process.spawn() and needs to apply the same quoting as + // Node in certain cases where the undocumented spawn option windowsVerbatimArguments + // is used. + // + // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV, + // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details), + // pasting copyright notice from Node within this function: + // + // Copyright Joyent, Inc. and other Node contributors. All rights reserved. + // + // Permission is hereby granted, free of charge, to any person obtaining a copy + // of this software and associated documentation files (the "Software"), to + // deal in the Software without restriction, including without limitation the + // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + // sell copies of the Software, and to permit persons to whom the Software is + // furnished to do so, subject to the following conditions: + // + // The above copyright notice and this permission notice shall be included in + // all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + // IN THE SOFTWARE. + if (!arg) { + // Need double quotation for empty argument + return '""'; + } + if (!arg.includes(' ') && !arg.includes('\t') && !arg.includes('"')) { + // No quotation needed + return arg; + } + if (!arg.includes('"') && !arg.includes('\\')) { + // No embedded double quotes or backslashes, so I can just wrap + // quote marks around the whole thing. + return `"${arg}"`; + } + // Expected input/output: + // input : hello"world + // output: "hello\"world" + // input : hello""world + // output: "hello\"\"world" + // input : hello\world + // output: hello\world + // input : hello\\world + // output: hello\\world + // input : hello\"world + // output: "hello\\\"world" + // input : hello\\"world + // output: "hello\\\\\"world" + // input : hello world\ + // output: "hello world\\" - note the comment in libuv actually reads "hello world\" + // but it appears the comment is wrong, it should be "hello world\\" + let reverse = '"'; + let quoteHit = true; + for (let i = arg.length; i > 0; i--) { + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === '\\') { + reverse += '\\'; + } + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += '\\'; + } + else { + quoteHit = false; + } + } + reverse += '"'; + return reverse + .split('') + .reverse() + .join(''); + } + _cloneExecOptions(options) { + options = options || {}; + const result = { + cwd: options.cwd || process.cwd(), + env: options.env || process.env, + silent: options.silent || false, + windowsVerbatimArguments: options.windowsVerbatimArguments || false, + failOnStdErr: options.failOnStdErr || false, + ignoreReturnCode: options.ignoreReturnCode || false, + delay: options.delay || 10000 + }; + result.outStream = options.outStream || process.stdout; + result.errStream = options.errStream || process.stderr; + return result; + } + _getSpawnOptions(options, toolPath) { + options = options || {}; + const result = {}; + result.cwd = options.cwd; + result.env = options.env; + result['windowsVerbatimArguments'] = + options.windowsVerbatimArguments || this._isCmdFile(); + if (options.windowsVerbatimArguments) { + result.argv0 = `"${toolPath}"`; + } + return result; + } + /** + * Exec a tool. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param tool path to tool to exec + * @param options optional exec options. See ExecOptions + * @returns number + */ + exec() { + return __awaiter(this, void 0, void 0, function* () { + // root the tool path if it is unrooted and contains relative pathing + if (!ioUtil.isRooted(this.toolPath) && + (this.toolPath.includes('/') || + (IS_WINDOWS && this.toolPath.includes('\\')))) { + // prefer options.cwd if it is specified, however options.cwd may also need to be rooted + this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); + } + // if the tool is only a file name, then resolve it from the PATH + // otherwise verify it exists (add extension on Windows if necessary) + this.toolPath = yield io.which(this.toolPath, true); + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + this._debug(`exec tool: ${this.toolPath}`); + this._debug('arguments:'); + for (const arg of this.args) { + this._debug(` ${arg}`); + } + const optionsNonNull = this._cloneExecOptions(this.options); + if (!optionsNonNull.silent && optionsNonNull.outStream) { + optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL); + } + const state = new ExecState(optionsNonNull, this.toolPath); + state.on('debug', (message) => { + this._debug(message); + }); + if (this.options.cwd && !(yield ioUtil.exists(this.options.cwd))) { + return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`)); + } + const fileName = this._getSpawnFileName(); + const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)); + let stdbuffer = ''; + if (cp.stdout) { + cp.stdout.on('data', (data) => { + if (this.options.listeners && this.options.listeners.stdout) { + this.options.listeners.stdout(data); + } + if (!optionsNonNull.silent && optionsNonNull.outStream) { + optionsNonNull.outStream.write(data); + } + stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => { + if (this.options.listeners && this.options.listeners.stdline) { + this.options.listeners.stdline(line); + } + }); + }); + } + let errbuffer = ''; + if (cp.stderr) { + cp.stderr.on('data', (data) => { + state.processStderr = true; + if (this.options.listeners && this.options.listeners.stderr) { + this.options.listeners.stderr(data); + } + if (!optionsNonNull.silent && + optionsNonNull.errStream && + optionsNonNull.outStream) { + const s = optionsNonNull.failOnStdErr + ? optionsNonNull.errStream + : optionsNonNull.outStream; + s.write(data); + } + errbuffer = this._processLineBuffer(data, errbuffer, (line) => { + if (this.options.listeners && this.options.listeners.errline) { + this.options.listeners.errline(line); + } + }); + }); + } + cp.on('error', (err) => { + state.processError = err.message; + state.processExited = true; + state.processClosed = true; + state.CheckComplete(); + }); + cp.on('exit', (code) => { + state.processExitCode = code; + state.processExited = true; + this._debug(`Exit code ${code} received from tool '${this.toolPath}'`); + state.CheckComplete(); + }); + cp.on('close', (code) => { + state.processExitCode = code; + state.processExited = true; + state.processClosed = true; + this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); + state.CheckComplete(); + }); + state.on('done', (error, exitCode) => { + if (stdbuffer.length > 0) { + this.emit('stdline', stdbuffer); + } + if (errbuffer.length > 0) { + this.emit('errline', errbuffer); + } + cp.removeAllListeners(); + if (error) { + reject(error); + } + else { + resolve(exitCode); + } + }); + if (this.options.input) { + if (!cp.stdin) { + throw new Error('child process missing stdin'); + } + cp.stdin.end(this.options.input); + } + })); + }); + } +} +exports.ToolRunner = ToolRunner; +/** + * Convert an arg string to an array of args. Handles escaping + * + * @param argString string of arguments + * @returns string[] array of arguments + */ +function argStringToArray(argString) { + const args = []; + let inQuotes = false; + let escaped = false; + let arg = ''; + function append(c) { + // we only escape double quotes. + if (escaped && c !== '"') { + arg += '\\'; + } + arg += c; + escaped = false; + } + for (let i = 0; i < argString.length; i++) { + const c = argString.charAt(i); + if (c === '"') { + if (!escaped) { + inQuotes = !inQuotes; + } + else { + append(c); + } + continue; + } + if (c === '\\' && escaped) { + append(c); + continue; + } + if (c === '\\' && inQuotes) { + escaped = true; + continue; + } + if (c === ' ' && !inQuotes) { + if (arg.length > 0) { + args.push(arg); + arg = ''; + } + continue; + } + append(c); + } + if (arg.length > 0) { + args.push(arg.trim()); + } + return args; +} +exports.argStringToArray = argStringToArray; +class ExecState extends events.EventEmitter { + constructor(options, toolPath) { + super(); + this.processClosed = false; // tracks whether the process has exited and stdio is closed + this.processError = ''; + this.processExitCode = 0; + this.processExited = false; // tracks whether the process has exited + this.processStderr = false; // tracks whether stderr was written to + this.delay = 10000; // 10 seconds + this.done = false; + this.timeout = null; + if (!toolPath) { + throw new Error('toolPath must not be empty'); + } + this.options = options; + this.toolPath = toolPath; + if (options.delay) { + this.delay = options.delay; + } + } + CheckComplete() { + if (this.done) { + return; + } + if (this.processClosed) { + this._setResult(); + } + else if (this.processExited) { + this.timeout = timers_1.setTimeout(ExecState.HandleTimeout, this.delay, this); + } + } + _debug(message) { + this.emit('debug', message); + } + _setResult() { + // determine whether there is an error + let error; + if (this.processExited) { + if (this.processError) { + error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`); + } + else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) { + error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`); + } + else if (this.processStderr && this.options.failOnStdErr) { + error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`); + } + } + // clear the timeout + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = null; + } + this.done = true; + this.emit('done', error, this.processExitCode); + } + static HandleTimeout(state) { + if (state.done) { + return; + } + if (!state.processClosed && state.processExited) { + const message = `The STDIO streams did not close within ${state.delay / + 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; + state._debug(message); + } + state._setResult(); + } +} +//# sourceMappingURL=toolrunner.js.map + +/***/ }), + +/***/ 2222: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Context = void 0; +const fs_1 = __nccwpck_require__(9896); +const os_1 = __nccwpck_require__(857); +class Context { + /** + * Hydrate the context from the environment + */ + constructor() { + var _a, _b, _c; + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) { + if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) { + this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); + } + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); + } + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + this.job = process.env.GITHUB_JOB; + this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); + this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); + this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`; + this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`; + this.graphqlUrl = + (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`; + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { owner, repo }; + } + if (this.payload.repository) { + return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name + }; + } + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } +} +exports.Context = Context; +//# sourceMappingURL=context.js.map + +/***/ }), + +/***/ 3098: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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.getOctokit = exports.context = void 0; +const Context = __importStar(__nccwpck_require__(2222)); +const utils_1 = __nccwpck_require__(6684); +exports.context = new Context.Context(); +/** + * Returns a hydrated octokit ready to use for GitHub Actions + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokit(token, options, ...additionalPlugins) { + const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); + return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options)); +} +exports.getOctokit = getOctokit; +//# sourceMappingURL=github.js.map + +/***/ }), + +/***/ 6422: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getApiBaseUrl = exports.getProxyFetch = exports.getProxyAgentDispatcher = exports.getProxyAgent = exports.getAuthString = void 0; +const httpClient = __importStar(__nccwpck_require__(8278)); +const undici_1 = __nccwpck_require__(6630); +function getAuthString(token, options) { + if (!token && !options.auth) { + throw new Error('Parameter token or opts.auth is required'); + } + else if (token && options.auth) { + throw new Error('Parameters token and opts.auth may not both be specified'); + } + return typeof options.auth === 'string' ? options.auth : `token ${token}`; +} +exports.getAuthString = getAuthString; +function getProxyAgent(destinationUrl) { + const hc = new httpClient.HttpClient(); + return hc.getAgent(destinationUrl); +} +exports.getProxyAgent = getProxyAgent; +function getProxyAgentDispatcher(destinationUrl) { + const hc = new httpClient.HttpClient(); + return hc.getAgentDispatcher(destinationUrl); +} +exports.getProxyAgentDispatcher = getProxyAgentDispatcher; +function getProxyFetch(destinationUrl) { + const httpDispatcher = getProxyAgentDispatcher(destinationUrl); + const proxyFetch = (url, opts) => __awaiter(this, void 0, void 0, function* () { + return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { dispatcher: httpDispatcher })); + }); + return proxyFetch; +} +exports.getProxyFetch = getProxyFetch; +function getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; +} +exports.getApiBaseUrl = getApiBaseUrl; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 6684: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +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.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0; +const Context = __importStar(__nccwpck_require__(2222)); +const Utils = __importStar(__nccwpck_require__(6422)); +// octokit + plugins +const core_1 = __nccwpck_require__(1258); +const plugin_rest_endpoint_methods_1 = __nccwpck_require__(4988); +const plugin_paginate_rest_1 = __nccwpck_require__(157); +exports.context = new Context.Context(); +const baseUrl = Utils.getApiBaseUrl(); +exports.defaults = { + baseUrl, + request: { + agent: Utils.getProxyAgent(baseUrl), + fetch: Utils.getProxyFetch(baseUrl) + } +}; +exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults); +/** + * Convience function to correctly format Octokit Options to pass into the constructor. + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokitOptions(token, options) { + const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller + // Auth + const auth = Utils.getAuthString(token, opts); + if (auth) { + opts.auth = auth; + } + return opts; +} +exports.getOctokitOptions = getOctokitOptions; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 1258: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + Octokit: () => Octokit +}); +module.exports = __toCommonJS(dist_src_exports); +var import_universal_user_agent = __nccwpck_require__(2609); +var import_before_after_hook = __nccwpck_require__(1466); +var import_request = __nccwpck_require__(7985); +var import_graphql = __nccwpck_require__(937); +var import_auth_token = __nccwpck_require__(2658); + +// pkg/dist-src/version.js +var VERSION = "5.2.0"; + +// pkg/dist-src/index.js +var noop = () => { +}; +var consoleWarn = console.warn.bind(console); +var consoleError = console.error.bind(console); +var userAgentTrail = `octokit-core.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; +var Octokit = class { + static { + this.VERSION = VERSION; + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null + ) + ); + } + }; + return OctokitWithDefaults; + } + static { + this.plugins = []; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static { + this.plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + ); + } + }; + return NewOctokit; + } + constructor(options = {}) { + const hook = new import_before_after_hook.Collection(); + const requestDefaults = { + baseUrl: import_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: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = import_request.request.defaults(requestDefaults); + this.graphql = (0, import_graphql.withCustomRequest)(this.request).defaults(requestDefaults); + this.log = Object.assign( + { + debug: noop, + info: noop, + warn: consoleWarn, + error: consoleError + }, + options.log + ); + this.hook = hook; + if (!options.authStrategy) { + if (!options.auth) { + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + const auth = (0, import_auth_token.createTokenAuth)(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, + options.auth + ) + ); + hook.wrap("request", auth.hook); + this.auth = auth; + } + const classConstructor = this.constructor; + for (let i = 0; i < classConstructor.plugins.length; ++i) { + Object.assign(this, classConstructor.plugins[i](this, options)); + } + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 2658: +/***/ ((module) => { + + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + createTokenAuth: () => createTokenAuth +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/auth.js +var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +var REGEX_IS_INSTALLATION = /^ghs_/; +var 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, + tokenType + }; +} + +// pkg/dist-src/with-authorization-prefix.js +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +// pkg/dist-src/hook.js +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge( + route, + parameters + ); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +// pkg/dist-src/index.js +var createTokenAuth = function createTokenAuth2(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 937: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + GraphqlResponseError: () => GraphqlResponseError, + graphql: () => graphql2, + withCustomRequest: () => withCustomRequest +}); +module.exports = __toCommonJS(dist_src_exports); +var import_request3 = __nccwpck_require__(7985); +var import_universal_user_agent = __nccwpck_require__(2609); + +// pkg/dist-src/version.js +var VERSION = "7.1.0"; + +// pkg/dist-src/with-defaults.js +var import_request2 = __nccwpck_require__(7985); + +// pkg/dist-src/graphql.js +var import_request = __nccwpck_require__(7985); + +// pkg/dist-src/error.js +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e) => ` - ${e.message}`).join("\n"); +} +var GraphqlResponseError = class extends Error { + constructor(request2, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +}; + +// pkg/dist-src/graphql.js +var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType" +]; +var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request2, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error(`[@octokit/graphql] "query" cannot be used as variable name`) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) + continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys( + parsedOptions + ).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request2(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError( + requestOptions, + headers, + response.data + ); + } + return response.data.data; + }); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); +} + +// pkg/dist-src/index.js +var graphql2 = withDefaults(import_request3.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 9302: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + RequestError: () => RequestError +}); +module.exports = __toCommonJS(dist_src_exports); +var import_deprecation = __nccwpck_require__(1160); +var import_once = __toESM(__nccwpck_require__(5574)); +var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); +var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); +var RequestError = class extends Error { + constructor(message, statusCode, options) { + super(message); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + let headers; + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + / .*$/, + " [REDACTED]" + ) + }); + } + requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + Object.defineProperty(this, "code", { + get() { + logOnceCode( + new import_deprecation.Deprecation( + "[@octokit/request-error] `error.code` is deprecated, use `error.status`." + ) + ); + return statusCode; + } + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders( + new import_deprecation.Deprecation( + "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." + ) + ); + return headers || {}; + } + }); + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 7985: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + request: () => request +}); +module.exports = __toCommonJS(dist_src_exports); +var import_endpoint = __nccwpck_require__(7572); +var import_universal_user_agent = __nccwpck_require__(2609); + +// pkg/dist-src/version.js +var VERSION = "8.4.0"; + +// pkg/dist-src/is-plain-object.js +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); +} + +// pkg/dist-src/fetch-wrapper.js +var import_request_error = __nccwpck_require__(9302); + +// pkg/dist-src/get-buffer-response.js +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +// pkg/dist-src/fetch-wrapper.js +function fetchWrapper(requestOptions) { + var _a, _b, _c, _d; + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + const parseSuccessResponseBody = ((_a = requestOptions.request) == null ? void 0 : _a.parseSuccessResponseBody) !== false; + if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + let { fetch } = globalThis; + if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) { + fetch = requestOptions.request.fetch; + } + if (!fetch) { + throw new Error( + "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" + ); + } + return fetch(requestOptions.url, { + method: requestOptions.method, + body: requestOptions.body, + redirect: (_c = requestOptions.request) == null ? void 0 : _c.redirect, + headers: requestOptions.headers, + signal: (_d = requestOptions.request) == null ? void 0 : _d.signal, + // duplex must be set if request.body is ReadableStream or Async Iterables. + // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. + ...requestOptions.body && { duplex: "half" } + }).then(async (response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return; + } + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new import_request_error.RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: void 0 + }, + request: requestOptions + }); + } + if (status === 304) { + throw new import_request_error.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 import_request_error.RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + return parseSuccessResponseBody ? await getResponseData(response) : response.body; + }).then((data) => { + return { + status, + url, + headers, + data + }; + }).catch((error) => { + if (error instanceof import_request_error.RequestError) + throw error; + else if (error.name === "AbortError") + throw error; + let message = error.message; + if (error.name === "TypeError" && "cause" in error) { + if (error.cause instanceof Error) { + message = error.cause.message; + } else if (typeof error.cause === "string") { + message = error.cause; + } + } + throw new import_request_error.RequestError(message, 500, { + request: requestOptions + }); + }); +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json().catch(() => response.text()).catch(() => ""); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBufferResponse(response); +} +function toErrorMessage(data) { + if (typeof data === "string") + return data; + let suffix; + if ("documentation_url" in data) { + suffix = ` - ${data.documentation_url}`; + } else { + suffix = ""; + } + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; + } + return `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; +} + +// pkg/dist-src/with-defaults.js +function withDefaults(oldEndpoint, newDefaults) { + const endpoint2 = oldEndpoint.defaults(newDefaults); + const newApi = function(route, parameters) { + const endpointOptions = endpoint2.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint2.parse(endpointOptions)); + } + const request2 = (route2, parameters2) => { + return fetchWrapper( + endpoint2.parse(endpoint2.merge(route2, parameters2)) + ); + }; + Object.assign(request2, { + endpoint: endpoint2, + defaults: withDefaults.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: withDefaults.bind(null, endpoint2) + }); +} + +// pkg/dist-src/index.js +var request = withDefaults(import_endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` + } +}); +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 7572: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + endpoint: () => endpoint +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/defaults.js +var import_universal_user_agent = __nccwpck_require__(2609); + +// pkg/dist-src/version.js +var VERSION = "9.0.5"; + +// pkg/dist-src/defaults.js +var userAgent = `octokit-endpoint.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; +var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "" + } +}; + +// pkg/dist-src/util/lowercase-keys.js +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +// pkg/dist-src/util/is-plain-object.js +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/util/merge-deep.js +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +// pkg/dist-src/util/remove-undefined-properties.js +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === void 0) { + delete obj[key]; + } + } + return obj; +} + +// pkg/dist-src/merge.js +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } else { + options = Object.assign({}, route); + } + options.headers = lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if (options.url === "/graphql") { + if (defaults && defaults.mediaType.previews?.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( + (preview) => !mergedOptions.mediaType.previews.includes(preview) + ).concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); + } + return mergedOptions; +} + +// pkg/dist-src/util/add-query-parameters.js +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return url + separator + names.map((name) => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +// pkg/dist-src/util/extract-url-variable-names.js +var urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +// pkg/dist-src/util/omit.js +function omit(object, keysToOmit) { + const result = { __proto__: null }; + for (const key of Object.keys(object)) { + if (keysToOmit.indexOf(key) === -1) { + result[key] = object[key]; + } + } + return result; +} + +// pkg/dist-src/util/url-template.js +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }).join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} +function isDefined(value) { + return value !== void 0 && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + result.push( + encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + ); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + tmp.push(encodeValue(operator, value2)); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + template = template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function(_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function(variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + if (template === "/") { + return template; + } else { + return template.replace(/\/$/, ""); + } +} + +// pkg/dist-src/parse.js +function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + headers.accept = headers.accept.split(/,/).map( + (format) => format.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ).join(","); + } + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + } + } + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + return Object.assign( + { method, url, headers }, + typeof body !== "undefined" ? { body } : null, + options.request ? { request: options.request } : null + ); +} + +// pkg/dist-src/endpoint-with-defaults.js +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS2 = merge(oldDefaults, newDefaults); + const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); + return Object.assign(endpoint2, { + DEFAULTS: DEFAULTS2, + defaults: withDefaults.bind(null, DEFAULTS2), + merge: merge.bind(null, DEFAULTS2), + parse + }); +} + +// pkg/dist-src/index.js +var endpoint = withDefaults(null, DEFAULTS); +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 1466: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var register = __nccwpck_require__(2765); +var addHook = __nccwpck_require__(6749); +var removeHook = __nccwpck_require__(8712); + +// 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; + + +/***/ }), + +/***/ 6749: +/***/ ((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, + }); +} + + +/***/ }), + +/***/ 2765: +/***/ ((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)(); + }); +} + + +/***/ }), + +/***/ 8712: +/***/ ((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); +} + + +/***/ }), + +/***/ 2609: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && process.version !== undefined) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + + return ""; +} + +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 157: +/***/ ((module) => { + + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + composePaginateRest: () => composePaginateRest, + isPaginatingEndpoint: () => isPaginatingEndpoint, + paginateRest: () => paginateRest, + paginatingEndpoints: () => paginatingEndpoints +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/version.js +var VERSION = "9.2.1"; + +// pkg/dist-src/normalize-paginated-list-response.js +function normalizePaginatedListResponse(response) { + if (!response.data) { + return { + ...response, + data: [] + }; + } + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} + +// pkg/dist-src/iterator.js +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + try { + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + url = ((normalizedResponse.headers.link || "").match( + /<([^>]+)>;\s*rel="next"/ + ) || [])[1]; + return { value: normalizedResponse }; + } catch (error) { + if (error.status !== 409) + throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + }) + }; +} + +// pkg/dist-src/paginate.js +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = void 0; + } + return gather( + octokit, + [], + iterator(octokit, route, parameters)[Symbol.asyncIterator](), + mapFn + ); +} +function gather(octokit, results, iterator2, mapFn) { + return iterator2.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat( + mapFn ? mapFn(result.value, done) : result.value.data + ); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator2, mapFn); + }); +} + +// pkg/dist-src/compose-paginate.js +var composePaginateRest = Object.assign(paginate, { + iterator +}); + +// pkg/dist-src/generated/paginating-endpoints.js +var paginatingEndpoints = [ + "GET /advisories", + "GET /app/hook/deliveries", + "GET /app/installation-requests", + "GET /app/installations", + "GET /assignments/{assignment_id}/accepted_assignments", + "GET /classrooms", + "GET /classrooms/{classroom_id}/assignments", + "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/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}/copilot/billing/seats", + "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}/organization-roles/{role_id}/teams", + "GET /orgs/{org}/organization-roles/{role_id}/users", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/personal-access-token-requests", + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", + "GET /orgs/{org}/personal-access-tokens", + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/properties/values", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/rulesets", + "GET /orgs/{org}/rulesets/rule-suites", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/security-advisories", + "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/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/organization-secrets", + "GET /repos/{owner}/{repo}/actions/organization-variables", + "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}/activity", + "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}/environments/{environment_name}/deployment_protection_rules/apps", + "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}/rules/branches/{branch}", + "GET /repos/{owner}/{repo}/rulesets", + "GET /repos/{owner}/{repo}/rulesets/rule-suites", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/security-advisories", + "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/social_accounts", + "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}/social_accounts", + "GET /users/{username}/ssh_signing_keys", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions" +]; + +// pkg/dist-src/paginating-endpoints.js +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +// pkg/dist-src/index.js +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 4988: +/***/ ((module) => { + + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// pkg/dist-src/index.js +var dist_src_exports = {}; +__export(dist_src_exports, { + legacyRestEndpointMethods: () => legacyRestEndpointMethods, + restEndpointMethods: () => restEndpointMethods +}); +module.exports = __toCommonJS(dist_src_exports); + +// pkg/dist-src/version.js +var VERSION = "10.4.1"; + +// pkg/dist-src/generated/endpoints.js +var Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/runners/{runner_id}/labels" + ], + addCustomLabelsToSelfHostedRunnerForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + approveWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" + ], + createEnvironmentVariable: [ + "POST /repositories/{repository_id}/environments/{environment_name}/variables" + ], + createOrUpdateEnvironmentSecret: [ + "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + createOrgVariable: ["POST /orgs/{org}/actions/variables"], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token" + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token" + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token" + ], + createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" + ], + deleteActionsCacheById: [ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" + ], + deleteActionsCacheByKey: [ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" + ], + deleteEnvironmentSecret: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + deleteEnvironmentVariable: [ + "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + deleteRepoVariable: [ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}" + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}" + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" + ], + downloadWorkflowRunAttemptLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" + ], + forceCancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" + ], + generateRunnerJitconfigForOrg: [ + "POST /orgs/{org}/actions/runners/generate-jitconfig" + ], + generateRunnerJitconfigForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" + ], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: [ + "GET /orgs/{org}/actions/cache/usage-by-repository" + ], + getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions" + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getCustomOidcSubClaimForRepo: [ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + getEnvironmentPublicKey: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" + ], + getEnvironmentSecret: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" + ], + getEnvironmentVariable: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + getGithubActionsDefaultWorkflowPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions/workflow" + ], + getGithubActionsDefaultWorkflowPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/workflow" + ], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions" + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions" + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], + getPendingDeploymentsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] } + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], + getReviewsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" + ], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowAccessToRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/access" + ], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" + ], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: [ + "GET /repositories/{repository_id}/environments/{environment_name}/secrets" + ], + listEnvironmentVariables: [ + "GET /repositories/{repository_id}/environments/{environment_name}/variables" + ], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" + ], + listJobsForWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" + ], + listLabelsForSelfHostedRunnerForOrg: [ + "GET /orgs/{org}/actions/runners/{runner_id}/labels" + ], + listLabelsForSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listOrgVariables: ["GET /orgs/{org}/actions/variables"], + listRepoOrganizationSecrets: [ + "GET /repos/{owner}/{repo}/actions/organization-secrets" + ], + listRepoOrganizationVariables: [ + "GET /repos/{owner}/{repo}/actions/organization-variables" + ], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads" + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + listSelectedReposForOrgVariable: [ + "GET /orgs/{org}/actions/variables/{name}/repositories" + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories" + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunJobForWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" + ], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + reRunWorkflowFailedJobs: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" + ], + removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" + ], + removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + removeCustomLabelFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" + ], + removeCustomLabelFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgVariable: [ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + reviewCustomGatesForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" + ], + reviewPendingDeploymentsForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions" + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + setCustomLabelsForSelfHostedRunnerForOrg: [ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels" + ], + setCustomLabelsForSelfHostedRunnerForRepo: [ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + setCustomOidcSubClaimForRepo: [ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + setGithubActionsDefaultWorkflowPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/workflow" + ], + setGithubActionsDefaultWorkflowPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow" + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions" + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories" + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories" + ], + setWorkflowAccessToRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/access" + ], + updateEnvironmentVariable: [ + "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" + ], + updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], + updateRepoVariable: [ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}" + ] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription" + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription" + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}" + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public" + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications" + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription" + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } + ], + addRepoToInstallationForAuthenticatedUser: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}" + ], + checkToken: ["POST /applications/{client_id}/token"], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens" + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}" + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}" + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories" + ], + listInstallationRequestsForAuthenticatedApp: [ + "GET /app/installation-requests" + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed" + ], + listWebhookDeliveries: ["GET /app/hook/deliveries"], + redeliverWebhookDelivery: [ + "POST /app/hook/deliveries/{delivery_id}/attempts" + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } + ], + removeRepoFromInstallationForAuthenticatedUser: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}" + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended" + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions" + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages" + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage" + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage" + ] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestRun: [ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" + ], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences" + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" + ], + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } } + ], + getAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" + ], + getCodeqlDatabase: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" + ], + getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" + ], + listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + {}, + { renamed: ["codeScanning", "listAlertInstances"] } + ], + listCodeqlDatabases: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" + ], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" + ], + updateDefaultSetup: [ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + checkPermissionsForDevcontainer: [ + "GET /repos/{owner}/{repo}/codespaces/permissions_check" + ], + codespaceMachinesForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/machines" + ], + createForAuthenticatedUser: ["POST /user/codespaces"], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + createOrUpdateSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}" + ], + createWithPrForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" + ], + createWithRepoForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/codespaces" + ], + deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], + deleteFromOrganization: [ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + deleteSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}" + ], + exportForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/exports" + ], + getCodespacesForUserInOrg: [ + "GET /orgs/{org}/members/{username}/codespaces" + ], + getExportDetailsForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/exports/{export_id}" + ], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], + getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], + getPublicKeyForAuthenticatedUser: [ + "GET /user/codespaces/secrets/public-key" + ], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + getSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}" + ], + listDevcontainersInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/devcontainers" + ], + listForAuthenticatedUser: ["GET /user/codespaces"], + listInOrganization: [ + "GET /orgs/{org}/codespaces", + {}, + { renamedParameters: { org_id: "org" } } + ], + listInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces" + ], + listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}/repositories" + ], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + preFlightWithRepoForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/new" + ], + publishForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/publish" + ], + removeRepositoryForSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + repoMachinesForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/machines" + ], + setRepositoriesForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], + stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], + stopInOrganization: [ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" + ], + updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] + }, + copilot: { + addCopilotSeatsForTeams: [ + "POST /orgs/{org}/copilot/billing/selected_teams" + ], + addCopilotSeatsForUsers: [ + "POST /orgs/{org}/copilot/billing/selected_users" + ], + cancelCopilotSeatAssignmentForTeams: [ + "DELETE /orgs/{org}/copilot/billing/selected_teams" + ], + cancelCopilotSeatAssignmentForUsers: [ + "DELETE /orgs/{org}/copilot/billing/selected_users" + ], + getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], + getCopilotSeatDetailsForUser: [ + "GET /orgs/{org}/members/{username}/copilot" + ], + listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] + }, + dependabot: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], + getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/dependabot/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], + listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" + ] + }, + dependencyGraph: { + createRepositorySnapshot: [ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots" + ], + diffRange: [ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" + ], + exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] + }, + emojis: { get: ["GET /emojis"] }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: [ + "GET /user/interaction-limits", + {}, + { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } + ], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits" + ], + removeRestrictionsForYourPublicRepos: [ + "DELETE /user/interaction-limits", + {}, + { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } + ], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: [ + "PUT /user/interaction-limits", + {}, + { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } + ] + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + checkUserCanBeAssignedToIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" + ], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" + ] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } } + ] + }, + meta: { + get: ["GET /meta"], + getAllVersions: ["GET /versions"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: [ + "DELETE /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" + } + ], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive" + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive" + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive" + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive" + ], + getCommitAuthors: [ + "GET /repos/{owner}/{repo}/import/authors", + {}, + { + deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" + } + ], + getImportStatus: [ + "GET /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" + } + ], + getLargeFiles: [ + "GET /repos/{owner}/{repo}/import/large_files", + {}, + { + deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" + } + ], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], + listForAuthenticatedUser: ["GET /user/migrations"], + listForOrg: ["GET /orgs/{org}/migrations"], + listReposForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/repositories" + ], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + {}, + { renamed: ["migrations", "listReposForAuthenticatedUser"] } + ], + mapCommitAuthor: [ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", + {}, + { + deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" + } + ], + setLfsPreference: [ + "PATCH /repos/{owner}/{repo}/import/lfs", + {}, + { + deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" + } + ], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: [ + "PUT /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" + } + ], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" + ], + updateImport: [ + "PATCH /repos/{owner}/{repo}/import", + {}, + { + deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" + } + ] + }, + oidc: { + getOidcCustomSubTemplateForOrg: [ + "GET /orgs/{org}/actions/oidc/customization/sub" + ], + updateOidcCustomSubTemplateForOrg: [ + "PUT /orgs/{org}/actions/oidc/customization/sub" + ] + }, + orgs: { + addSecurityManagerTeam: [ + "PUT /orgs/{org}/security-managers/teams/{team_slug}" + ], + assignTeamToOrgRole: [ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + assignUserToOrgRole: [ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}" + ], + createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], + createInvitation: ["POST /orgs/{org}/invitations"], + createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], + createOrUpdateCustomPropertiesValuesForRepos: [ + "PATCH /orgs/{org}/properties/values" + ], + createOrUpdateCustomProperty: [ + "PUT /orgs/{org}/properties/schema/{custom_property_name}" + ], + createWebhook: ["POST /orgs/{org}/hooks"], + delete: ["DELETE /orgs/{org}"], + deleteCustomOrganizationRole: [ + "DELETE /orgs/{org}/organization-roles/{role_id}" + ], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + enableOrDisableSecurityProductOnAllOrgRepos: [ + "POST /orgs/{org}/{security_product}/{enablement}" + ], + get: ["GET /orgs/{org}"], + getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], + getCustomProperty: [ + "GET /orgs/{org}/properties/schema/{custom_property_name}" + ], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + getWebhookDelivery: [ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], + listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], + listOrgRoles: ["GET /orgs/{org}/organization-roles"], + listOrganizationFineGrainedPermissions: [ + "GET /orgs/{org}/organization-fine-grained-permissions" + ], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPatGrantRepositories: [ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" + ], + listPatGrantRequestRepositories: [ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" + ], + listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], + listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], + listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /orgs/{org}/hooks"], + patchCustomOrganizationRole: [ + "PATCH /orgs/{org}/organization-roles/{role_id}" + ], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeCustomProperty: [ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}" + ], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}" + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}" + ], + removeSecurityManagerTeam: [ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}" + ], + reviewPatGrantRequest: [ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" + ], + reviewPatGrantRequestsInBulk: [ + "POST /orgs/{org}/personal-access-token-requests" + ], + revokeAllOrgRolesTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" + ], + revokeAllOrgRolesUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}" + ], + revokeOrgRoleTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + revokeOrgRoleUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}" + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}" + ], + updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], + updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}" + ], + deletePackageForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}" + ], + deletePackageForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}" + ], + deletePackageVersionForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getAllPackageVersionsForAPackageOwnedByAnOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + {}, + { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } + ], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + {}, + { + renamed: [ + "packages", + "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" + ] + } + ], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions" + ], + getPackageForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}" + ], + getPackageForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}" + ], + getPackageForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}" + ], + getPackageVersionForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + listDockerMigrationConflictingPackagesForAuthenticatedUser: [ + "GET /user/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForOrganization: [ + "GET /orgs/{org}/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForUser: [ + "GET /users/{username}/docker/conflicts" + ], + listPackagesForAuthenticatedUser: ["GET /user/packages"], + listPackagesForOrganization: ["GET /orgs/{org}/packages"], + listPackagesForUser: ["GET /users/{username}/packages"], + restorePackageForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageVersionForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], + createCard: ["POST /projects/columns/{column_id}/cards"], + createColumn: ["POST /projects/{project_id}/columns"], + createForAuthenticatedUser: ["POST /user/projects"], + createForOrg: ["POST /orgs/{org}/projects"], + createForRepo: ["POST /repos/{owner}/{repo}/projects"], + delete: ["DELETE /projects/{project_id}"], + deleteCard: ["DELETE /projects/columns/cards/{card_id}"], + deleteColumn: ["DELETE /projects/columns/{column_id}"], + get: ["GET /projects/{project_id}"], + getCard: ["GET /projects/columns/cards/{card_id}"], + getColumn: ["GET /projects/columns/{column_id}"], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission" + ], + listCards: ["GET /projects/columns/{column_id}/cards"], + listCollaborators: ["GET /projects/{project_id}/collaborators"], + listColumns: ["GET /projects/{project_id}/columns"], + listForOrg: ["GET /orgs/{org}/projects"], + listForRepo: ["GET /repos/{owner}/{repo}/projects"], + listForUser: ["GET /users/{username}/projects"], + moveCard: ["POST /projects/columns/cards/{card_id}/moves"], + moveColumn: ["POST /projects/columns/{column_id}/moves"], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}" + ], + update: ["PATCH /projects/{project_id}"], + updateCard: ["PATCH /projects/columns/cards/{card_id}"], + updateColumn: ["PATCH /projects/columns/{column_id}"] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ] + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + createForRelease: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForRelease: [ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + listForRelease: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ] + }, + repos: { + acceptInvitation: [ + "PATCH /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } + ], + acceptInvitationForAuthenticatedUser: [ + "PATCH /user/repository_invitations/{invitation_id}" + ], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + cancelPagesDeployment: [ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" + ], + checkAutomatedSecurityFixes: [ + "GET /repos/{owner}/{repo}/automated-security-fixes" + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts" + ], + codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + compareCommitsWithBasehead: [ + "GET /repos/{owner}/{repo}/compare/{basehead}" + ], + createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentBranchPolicy: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + createDeploymentProtectionRule: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateCustomPropertiesValues: [ + "PATCH /repos/{owner}/{repo}/properties/values" + ], + createOrUpdateEnvironment: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}" + ], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createOrgRuleset: ["POST /orgs/{org}/rulesets"], + createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], + createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate" + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: [ + "DELETE /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } + ], + declineInvitationForAuthenticatedUser: [ + "DELETE /user/repository_invitations/{invitation_id}" + ], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + deleteAnEnvironment: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}" + ], + deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" + ], + deleteDeploymentBranchPolicy: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + deleteTagProtection: [ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes" + ], + disableDeploymentProtectionRule: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + disablePrivateVulnerabilityReporting: [ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts" + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] } + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes" + ], + enablePrivateVulnerabilityReporting: [ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts" + ], + generateReleaseNotes: [ + "POST /repos/{owner}/{repo}/releases/generate-notes" + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + getAllDeploymentProtectionRules: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" + ], + getAllTopics: ["GET /repos/{owner}/{repo}/topics"], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" + ], + getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection" + ], + getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission" + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getCustomDeploymentProtectionRule: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentBranchPolicy: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" + ], + getEnvironment: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}" + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], + getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], + getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], + getOrgRulesets: ["GET /orgs/{org}/rulesets"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getPagesDeployment: [ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" + ], + getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getRepoRuleSuite: [ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" + ], + getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], + getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + getWebhookDelivery: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + listActivities: ["GET /repos/{owner}/{repo}/activity"], + listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses" + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listCustomDeploymentRuleIntegrations: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" + ], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentBranchPolicies: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets" + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhookDeliveries: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" + ], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}" + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection" + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateDeploymentBranchPolicy: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] } + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" } + ] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits"], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/secret-scanning/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + listLocationsForAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ] + }, + securityAdvisories: { + createFork: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" + ], + createPrivateVulnerabilityReport: [ + "POST /repos/{owner}/{repo}/security-advisories/reports" + ], + createRepositoryAdvisory: [ + "POST /repos/{owner}/{repo}/security-advisories" + ], + createRepositoryAdvisoryCveRequest: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" + ], + getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], + getRepositoryAdvisory: [ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ], + listGlobalAdvisories: ["GET /advisories"], + listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], + listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], + updateRepositoryAdvisory: [ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ] + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations" + ], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: [ + "POST /user/emails", + {}, + { renamed: ["users", "addEmailForAuthenticatedUser"] } + ], + addEmailForAuthenticatedUser: ["POST /user/emails"], + addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: [ + "POST /user/gpg_keys", + {}, + { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } + ], + createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: [ + "POST /user/keys", + {}, + { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } + ], + createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], + createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], + deleteEmailForAuthenticated: [ + "DELETE /user/emails", + {}, + { renamed: ["users", "deleteEmailForAuthenticatedUser"] } + ], + deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: [ + "DELETE /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } + ], + deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: [ + "DELETE /user/keys/{key_id}", + {}, + { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } + ], + deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], + deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], + deleteSshSigningKeyForAuthenticatedUser: [ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: [ + "GET /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } + ], + getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: [ + "GET /user/keys/{key_id}", + {}, + { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } + ], + getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], + getSshSigningKeyForAuthenticatedUser: [ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + list: ["GET /users"], + listBlockedByAuthenticated: [ + "GET /user/blocks", + {}, + { renamed: ["users", "listBlockedByAuthenticatedUser"] } + ], + listBlockedByAuthenticatedUser: ["GET /user/blocks"], + listEmailsForAuthenticated: [ + "GET /user/emails", + {}, + { renamed: ["users", "listEmailsForAuthenticatedUser"] } + ], + listEmailsForAuthenticatedUser: ["GET /user/emails"], + listFollowedByAuthenticated: [ + "GET /user/following", + {}, + { renamed: ["users", "listFollowedByAuthenticatedUser"] } + ], + listFollowedByAuthenticatedUser: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: [ + "GET /user/gpg_keys", + {}, + { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } + ], + listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: [ + "GET /user/public_emails", + {}, + { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } + ], + listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: [ + "GET /user/keys", + {}, + { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } + ], + listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], + listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], + listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], + listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], + listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], + setPrimaryEmailVisibilityForAuthenticated: [ + "PATCH /user/email/visibility", + {}, + { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } + ], + setPrimaryEmailVisibilityForAuthenticatedUser: [ + "PATCH /user/email/visibility" + ], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; +var endpoints_default = Endpoints; + +// pkg/dist-src/endpoints-to-methods.js +var endpointMethodsMap = /* @__PURE__ */ new Map(); +for (const [scope, endpoints] of Object.entries(endpoints_default)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign( + { + method, + url + }, + defaults + ); + if (!endpointMethodsMap.has(scope)) { + endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); + } + endpointMethodsMap.get(scope).set(methodName, { + scope, + methodName, + endpointDefaults, + decorations + }); + } +} +var handler = { + has({ scope }, methodName) { + return endpointMethodsMap.get(scope).has(methodName); + }, + getOwnPropertyDescriptor(target, methodName) { + return { + value: this.get(target, methodName), + // ensures method is in the cache + configurable: true, + writable: true, + enumerable: true + }; + }, + defineProperty(target, methodName, descriptor) { + Object.defineProperty(target.cache, methodName, descriptor); + return true; + }, + deleteProperty(target, methodName) { + delete target.cache[methodName]; + return true; + }, + ownKeys({ scope }) { + return [...endpointMethodsMap.get(scope).keys()]; + }, + set(target, methodName, value) { + return target.cache[methodName] = value; + }, + get({ octokit, scope, cache }, methodName) { + if (cache[methodName]) { + return cache[methodName]; + } + const method = endpointMethodsMap.get(scope).get(methodName); + if (!method) { + return void 0; + } + const { endpointDefaults, decorations } = method; + if (decorations) { + cache[methodName] = decorate( + octokit, + scope, + methodName, + endpointDefaults, + decorations + ); + } else { + cache[methodName] = octokit.request.defaults(endpointDefaults); + } + return cache[methodName]; + } +}; +function endpointsToMethods(octokit) { + const newMethods = {}; + for (const scope of endpointMethodsMap.keys()) { + newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + function withDecorations(...args) { + let options = requestWithDefaults.endpoint.merge(...args); + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: void 0 + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn( + `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` + ); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + const options2 = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries( + decorations.renamedParameters + )) { + if (name in options2) { + octokit.log.warn( + `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` + ); + if (!(alias in options2)) { + options2[alias] = options2[name]; + } + delete options2[name]; + } + } + return requestWithDefaults(options2); + } + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} + +// pkg/dist-src/index.js +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + rest: api + }; +} +restEndpointMethods.VERSION = VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + ...api, + rest: api + }; +} +legacyRestEndpointMethods.VERSION = VERSION; +// Annotate the CommonJS export names for ESM import in node: +0 && (0); + + +/***/ }), + +/***/ 66: +/***/ (function(__unused_webpack_module, exports) { + + +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 + +/***/ }), + +/***/ 8278: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +/* eslint-disable @typescript-eslint/no-explicit-any */ +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()); + }); +}; +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__(8611)); +const https = __importStar(__nccwpck_require__(5692)); +const pm = __importStar(__nccwpck_require__(1202)); +const tunnel = __importStar(__nccwpck_require__(4112)); +const undici_1 = __nccwpck_require__(6630); +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 = HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers || (exports.Headers = Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes || (exports.MediaTypes = 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('end', () => { + resolve(output.toString()); + }); + })); + }); + } + readBodyBuffer() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + const chunks = []; + this.message.on('data', (chunk) => { + chunks.push(chunk); + }); + this.message.on('end', () => { + resolve(Buffer.concat(chunks)); + }); + })); + }); + } +} +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._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + 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* () { + 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); + 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* () { + 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); + 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* () { + 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); + 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* () { + 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); + 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* () { + if (this._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) + ? 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); + 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) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * 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); + } + } + this.requestRawWithCallback(info, data, callbackForResult); + }); + }); + } + /** + * 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['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info.httpModule.request(info.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(undefined, res); + }); + 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 (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + 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(); + }); + data.pipe(req); + } + 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); + } + getAgentDispatcher(serverUrl) { + const parsedUrl = new URL(serverUrl); + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (!useProxy) { + return; + } + return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); + } + _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) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options); + } + } + return info; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (!useProxy) { + agent = this._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 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 }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if tunneling agent isn't assigned create a new agent + if (!agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + 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 + }); + } + return agent; + } + _getProxyAgentDispatcher(parsedUrl, proxyUrl) { + let proxyAgent; + if (this._keepAlive) { + proxyAgent = this._proxyAgentDispatcher; + } + // if agent is already assigned use that agent. + if (proxyAgent) { + return proxyAgent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && { + token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}` + }))); + this._proxyAgentDispatcher = proxyAgent; + 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 + proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { + rejectUnauthorized: false + }); + } + return proxyAgent; + } + _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* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + 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; + } + } + 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; + } + 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); + } + 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 + +/***/ }), + +/***/ 1202: +/***/ ((__unused_webpack_module, exports) => { + + +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']; + } + })(); + if (proxyVar) { + try { + return new DecodedURL(proxyVar); + } + catch (_a) { + if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) + return new DecodedURL(`http://${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}`)))) { + 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]')); +} +class DecodedURL extends URL { + constructor(url, base) { + super(url, base); + this._decodedUsername = decodeURIComponent(super.username); + this._decodedPassword = decodeURIComponent(super.password); + } + get username() { + return this._decodedUsername; + } + get password() { + return this._decodedPassword; + } +} +//# sourceMappingURL=proxy.js.map + +/***/ }), + +/***/ 2553: +/***/ (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 __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()); + }); +}; +var _a; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0; +const fs = __importStar(__nccwpck_require__(9896)); +const path = __importStar(__nccwpck_require__(6928)); +_a = fs.promises +// export const {open} = 'fs' +, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink; +// export const {open} = 'fs' +exports.IS_WINDOWS = process.platform === 'win32'; +// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691 +exports.UV_FS_O_EXLOCK = 0x10000000; +exports.READONLY = fs.constants.O_RDONLY; +function exists(fsPath) { + return __awaiter(this, void 0, void 0, function* () { + try { + yield exports.stat(fsPath); + } + catch (err) { + if (err.code === 'ENOENT') { + return false; + } + throw err; + } + return true; + }); +} +exports.exists = exists; +function isDirectory(fsPath, useStat = false) { + return __awaiter(this, void 0, void 0, function* () { + const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath); + return stats.isDirectory(); + }); +} +exports.isDirectory = isDirectory; +/** + * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: + * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). + */ +function isRooted(p) { + p = normalizeSeparators(p); + if (!p) { + throw new Error('isRooted() parameter "p" cannot be empty'); + } + if (exports.IS_WINDOWS) { + return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello + ); // e.g. C: or C:\hello + } + return p.startsWith('/'); +} +exports.isRooted = isRooted; +/** + * Best effort attempt to determine whether a file exists and is executable. + * @param filePath file path to check + * @param extensions additional file extensions to try + * @return if file exists and is executable, returns the file path. otherwise empty string. + */ +function tryGetExecutablePath(filePath, extensions) { + return __awaiter(this, void 0, void 0, function* () { + let stats = undefined; + try { + // test file exists + stats = yield exports.stat(filePath); + } + catch (err) { + if (err.code !== 'ENOENT') { + + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + } + if (stats && stats.isFile()) { + if (exports.IS_WINDOWS) { + // on Windows, test for valid extension + const upperExt = path.extname(filePath).toUpperCase(); + if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) { + return filePath; + } + } + else { + if (isUnixExecutable(stats)) { + return filePath; + } + } + } + // try each extension + const originalFilePath = filePath; + for (const extension of extensions) { + filePath = originalFilePath + extension; + stats = undefined; + try { + stats = yield exports.stat(filePath); + } + catch (err) { + if (err.code !== 'ENOENT') { + + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + } + if (stats && stats.isFile()) { + if (exports.IS_WINDOWS) { + // preserve the case of the actual file (since an extension was appended) + try { + const directory = path.dirname(filePath); + const upperName = path.basename(filePath).toUpperCase(); + for (const actualName of yield exports.readdir(directory)) { + if (upperName === actualName.toUpperCase()) { + filePath = path.join(directory, actualName); + break; + } + } + } + catch (err) { + + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); + } + return filePath; + } + else { + if (isUnixExecutable(stats)) { + return filePath; + } + } + } + } + return ''; + }); +} +exports.tryGetExecutablePath = tryGetExecutablePath; +function normalizeSeparators(p) { + p = p || ''; + if (exports.IS_WINDOWS) { + // convert slashes on Windows + p = p.replace(/\//g, '\\'); + // remove redundant slashes + return p.replace(/\\\\+/g, '\\'); + } + // remove redundant slashes + return p.replace(/\/\/+/g, '/'); +} +// on Mac/Linux, test the execute bit +// R W X R W X R W X +// 256 128 64 32 16 8 4 2 1 +function isUnixExecutable(stats) { + return ((stats.mode & 1) > 0 || + ((stats.mode & 8) > 0 && stats.gid === process.getgid()) || + ((stats.mode & 64) > 0 && stats.uid === process.getuid())); +} +// Get the path of cmd.exe in windows +function getCmdPath() { + var _a; + return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`; +} +exports.getCmdPath = getCmdPath; +//# sourceMappingURL=io-util.js.map + +/***/ }), + +/***/ 1136: +/***/ (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 __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.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0; +const assert_1 = __nccwpck_require__(2613); +const path = __importStar(__nccwpck_require__(6928)); +const ioUtil = __importStar(__nccwpck_require__(2553)); +/** + * Copies a file or folder. + * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js + * + * @param source source path + * @param dest destination path + * @param options optional. See CopyOptions. + */ +function cp(source, dest, options = {}) { + return __awaiter(this, void 0, void 0, function* () { + const { force, recursive, copySourceDirectory } = readCopyOptions(options); + const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null; + // Dest is an existing file, but not forcing + if (destStat && destStat.isFile() && !force) { + return; + } + // If dest is an existing directory, should copy inside. + const newDest = destStat && destStat.isDirectory() && copySourceDirectory + ? path.join(dest, path.basename(source)) + : dest; + if (!(yield ioUtil.exists(source))) { + throw new Error(`no such file or directory: ${source}`); + } + const sourceStat = yield ioUtil.stat(source); + if (sourceStat.isDirectory()) { + if (!recursive) { + throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); + } + else { + yield cpDirRecursive(source, newDest, 0, force); + } + } + else { + if (path.relative(source, newDest) === '') { + // a file cannot be copied to itself + throw new Error(`'${newDest}' and '${source}' are the same file`); + } + yield copyFile(source, newDest, force); + } + }); +} +exports.cp = cp; +/** + * Moves a path. + * + * @param source source path + * @param dest destination path + * @param options optional. See MoveOptions. + */ +function mv(source, dest, options = {}) { + return __awaiter(this, void 0, void 0, function* () { + if (yield ioUtil.exists(dest)) { + let destExists = true; + if (yield ioUtil.isDirectory(dest)) { + // If dest is directory copy src into dest + dest = path.join(dest, path.basename(source)); + destExists = yield ioUtil.exists(dest); + } + if (destExists) { + if (options.force == null || options.force) { + yield rmRF(dest); + } + else { + throw new Error('Destination already exists'); + } + } + } + yield mkdirP(path.dirname(dest)); + yield ioUtil.rename(source, dest); + }); +} +exports.mv = mv; +/** + * Remove a path recursively with force + * + * @param inputPath path to remove + */ +function rmRF(inputPath) { + return __awaiter(this, void 0, void 0, function* () { + if (ioUtil.IS_WINDOWS) { + // Check for invalid characters + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + if (/[*"<>|]/.test(inputPath)) { + throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows'); + } + } + try { + // note if path does not exist, error is silent + yield ioUtil.rm(inputPath, { + force: true, + maxRetries: 3, + recursive: true, + retryDelay: 300 + }); + } + catch (err) { + throw new Error(`File was unable to be removed ${err}`); + } + }); +} +exports.rmRF = rmRF; +/** + * Make a directory. Creates the full path with folders in between + * Will throw if it fails + * + * @param fsPath path to create + * @returns Promise + */ +function mkdirP(fsPath) { + return __awaiter(this, void 0, void 0, function* () { + assert_1.ok(fsPath, 'a path argument must be provided'); + yield ioUtil.mkdir(fsPath, { recursive: true }); + }); +} +exports.mkdirP = mkdirP; +/** + * Returns path of a tool had the tool actually been invoked. Resolves via paths. + * If you check and the tool does not exist, it will throw. + * + * @param tool name of the tool + * @param check whether to check if tool exists + * @returns Promise path to tool + */ +function which(tool, check) { + return __awaiter(this, void 0, void 0, function* () { + if (!tool) { + throw new Error("parameter 'tool' is required"); + } + // recursive when check=true + if (check) { + const result = yield which(tool, false); + if (!result) { + if (ioUtil.IS_WINDOWS) { + throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); + } + else { + throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); + } + } + return result; + } + const matches = yield findInPath(tool); + if (matches && matches.length > 0) { + return matches[0]; + } + return ''; + }); +} +exports.which = which; +/** + * Returns a list of all occurrences of the given tool on the system path. + * + * @returns Promise the paths of the tool + */ +function findInPath(tool) { + return __awaiter(this, void 0, void 0, function* () { + if (!tool) { + throw new Error("parameter 'tool' is required"); + } + // build the list of extensions to try + const extensions = []; + if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) { + for (const extension of process.env['PATHEXT'].split(path.delimiter)) { + if (extension) { + extensions.push(extension); + } + } + } + // if it's rooted, return it if exists. otherwise return empty. + if (ioUtil.isRooted(tool)) { + const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions); + if (filePath) { + return [filePath]; + } + return []; + } + // if any path separators, return empty + if (tool.includes(path.sep)) { + return []; + } + // build the list of directories + // + // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, + // it feels like we should not do this. Checking the current directory seems like more of a use + // case of a shell, and the which() function exposed by the toolkit should strive for consistency + // across platforms. + const directories = []; + if (process.env.PATH) { + for (const p of process.env.PATH.split(path.delimiter)) { + if (p) { + directories.push(p); + } + } + } + // find all matches + const matches = []; + for (const directory of directories) { + const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions); + if (filePath) { + matches.push(filePath); + } + } + return matches; + }); +} +exports.findInPath = findInPath; +function readCopyOptions(options) { + const force = options.force == null ? true : options.force; + const recursive = Boolean(options.recursive); + const copySourceDirectory = options.copySourceDirectory == null + ? true + : Boolean(options.copySourceDirectory); + return { force, recursive, copySourceDirectory }; +} +function cpDirRecursive(sourceDir, destDir, currentDepth, force) { + return __awaiter(this, void 0, void 0, function* () { + // Ensure there is not a run away recursive copy + if (currentDepth >= 255) + return; + currentDepth++; + yield mkdirP(destDir); + const files = yield ioUtil.readdir(sourceDir); + for (const fileName of files) { + const srcFile = `${sourceDir}/${fileName}`; + const destFile = `${destDir}/${fileName}`; + const srcFileStat = yield ioUtil.lstat(srcFile); + if (srcFileStat.isDirectory()) { + // Recurse + yield cpDirRecursive(srcFile, destFile, currentDepth, force); + } + else { + yield copyFile(srcFile, destFile, force); + } + } + // Change the mode for the newly created directory + yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode); + }); +} +// Buffered file copy +function copyFile(srcFile, destFile, force) { + return __awaiter(this, void 0, void 0, function* () { + if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) { + // unlink/re-link it + try { + yield ioUtil.lstat(destFile); + yield ioUtil.unlink(destFile); + } + catch (e) { + // Try to override file permission + if (e.code === 'EPERM') { + yield ioUtil.chmod(destFile, '0666'); + yield ioUtil.unlink(destFile); + } + // other errors = it doesn't exist, no work to do + } + // Copy over symlink + const symlinkFull = yield ioUtil.readlink(srcFile); + yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null); + } + else if (!(yield ioUtil.exists(destFile)) || force) { + yield ioUtil.copyFile(srcFile, destFile); + } + }); +} +//# sourceMappingURL=io.js.map + +/***/ }), + +/***/ 2029: +/***/ (function(module) { + +/** + * This file contains the Bottleneck library (MIT), compiled to ES2017, and without Clustering support. + * https://github.com/SGrondin/bottleneck + */ +(function (global, factory) { + true ? module.exports = factory() : + 0; +}(this, (function () { 'use strict'; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getCjsExportFromNamespace (n) { + return n && n['default'] || n; + } + + var load = function(received, defaults, onto = {}) { + var k, ref, v; + for (k in defaults) { + v = defaults[k]; + onto[k] = (ref = received[k]) != null ? ref : v; + } + return onto; + }; + + var overwrite = function(received, defaults, onto = {}) { + var k, v; + for (k in received) { + v = received[k]; + if (defaults[k] !== void 0) { + onto[k] = v; + } + } + return onto; + }; + + var parser = { + load: load, + overwrite: overwrite + }; + + var DLList; + + DLList = class DLList { + constructor(incr, decr) { + this.incr = incr; + this.decr = decr; + this._first = null; + this._last = null; + this.length = 0; + } + + push(value) { + var node; + this.length++; + if (typeof this.incr === "function") { + this.incr(); + } + node = { + value, + prev: this._last, + next: null + }; + if (this._last != null) { + this._last.next = node; + this._last = node; + } else { + this._first = this._last = node; + } + return void 0; + } + + shift() { + var value; + if (this._first == null) { + return; + } else { + this.length--; + if (typeof this.decr === "function") { + this.decr(); + } + } + value = this._first.value; + if ((this._first = this._first.next) != null) { + this._first.prev = null; + } else { + this._last = null; + } + return value; + } + + first() { + if (this._first != null) { + return this._first.value; + } + } + + getArray() { + var node, ref, results; + node = this._first; + results = []; + while (node != null) { + results.push((ref = node, node = node.next, ref.value)); + } + return results; + } + + forEachShift(cb) { + var node; + node = this.shift(); + while (node != null) { + (cb(node), node = this.shift()); + } + return void 0; + } + + debug() { + var node, ref, ref1, ref2, results; + node = this._first; + results = []; + while (node != null) { + results.push((ref = node, node = node.next, { + value: ref.value, + prev: (ref1 = ref.prev) != null ? ref1.value : void 0, + next: (ref2 = ref.next) != null ? ref2.value : void 0 + })); + } + return results; + } + + }; + + var DLList_1 = DLList; + + var Events; + + Events = class Events { + constructor(instance) { + this.instance = instance; + this._events = {}; + if ((this.instance.on != null) || (this.instance.once != null) || (this.instance.removeAllListeners != null)) { + throw new Error("An Emitter already exists for this object"); + } + this.instance.on = (name, cb) => { + return this._addListener(name, "many", cb); + }; + this.instance.once = (name, cb) => { + return this._addListener(name, "once", cb); + }; + this.instance.removeAllListeners = (name = null) => { + if (name != null) { + return delete this._events[name]; + } else { + return this._events = {}; + } + }; + } + + _addListener(name, status, cb) { + var base; + if ((base = this._events)[name] == null) { + base[name] = []; + } + this._events[name].push({cb, status}); + return this.instance; + } + + listenerCount(name) { + if (this._events[name] != null) { + return this._events[name].length; + } else { + return 0; + } + } + + async trigger(name, ...args) { + var e, promises; + try { + if (name !== "debug") { + this.trigger("debug", `Event triggered: ${name}`, args); + } + if (this._events[name] == null) { + return; + } + this._events[name] = this._events[name].filter(function(listener) { + return listener.status !== "none"; + }); + promises = this._events[name].map(async(listener) => { + var e, returned; + if (listener.status === "none") { + return; + } + if (listener.status === "once") { + listener.status = "none"; + } + try { + returned = typeof listener.cb === "function" ? listener.cb(...args) : void 0; + if (typeof (returned != null ? returned.then : void 0) === "function") { + return (await returned); + } else { + return returned; + } + } catch (error) { + e = error; + { + this.trigger("error", e); + } + return null; + } + }); + return ((await Promise.all(promises))).find(function(x) { + return x != null; + }); + } catch (error) { + e = error; + { + this.trigger("error", e); + } + return null; + } + } + + }; + + var Events_1 = Events; + + var DLList$1, Events$1, Queues; + + DLList$1 = DLList_1; + + Events$1 = Events_1; + + Queues = class Queues { + constructor(num_priorities) { + var i; + this.Events = new Events$1(this); + this._length = 0; + this._lists = (function() { + var j, ref, results; + results = []; + for (i = j = 1, ref = num_priorities; (1 <= ref ? j <= ref : j >= ref); i = 1 <= ref ? ++j : --j) { + results.push(new DLList$1((() => { + return this.incr(); + }), (() => { + return this.decr(); + }))); + } + return results; + }).call(this); + } + + incr() { + if (this._length++ === 0) { + return this.Events.trigger("leftzero"); + } + } + + decr() { + if (--this._length === 0) { + return this.Events.trigger("zero"); + } + } + + push(job) { + return this._lists[job.options.priority].push(job); + } + + queued(priority) { + if (priority != null) { + return this._lists[priority].length; + } else { + return this._length; + } + } + + shiftAll(fn) { + return this._lists.forEach(function(list) { + return list.forEachShift(fn); + }); + } + + getFirst(arr = this._lists) { + var j, len, list; + for (j = 0, len = arr.length; j < len; j++) { + list = arr[j]; + if (list.length > 0) { + return list; + } + } + return []; + } + + shiftLastFrom(priority) { + return this.getFirst(this._lists.slice(priority).reverse()).shift(); + } + + }; + + var Queues_1 = Queues; + + var BottleneckError; + + BottleneckError = class BottleneckError extends Error {}; + + var BottleneckError_1 = BottleneckError; + + var BottleneckError$1, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser$1; + + NUM_PRIORITIES = 10; + + DEFAULT_PRIORITY = 5; + + parser$1 = parser; + + BottleneckError$1 = BottleneckError_1; + + Job = class Job { + constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) { + this.task = task; + this.args = args; + this.rejectOnDrop = rejectOnDrop; + this.Events = Events; + this._states = _states; + this.Promise = Promise; + this.options = parser$1.load(options, jobDefaults); + this.options.priority = this._sanitizePriority(this.options.priority); + if (this.options.id === jobDefaults.id) { + this.options.id = `${this.options.id}-${this._randomIndex()}`; + } + this.promise = new this.Promise((_resolve, _reject) => { + this._resolve = _resolve; + this._reject = _reject; + }); + this.retryCount = 0; + } + + _sanitizePriority(priority) { + var sProperty; + sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority; + if (sProperty < 0) { + return 0; + } else if (sProperty > NUM_PRIORITIES - 1) { + return NUM_PRIORITIES - 1; + } else { + return sProperty; + } + } + + _randomIndex() { + return Math.random().toString(36).slice(2); + } + + doDrop({error, message = "This job has been dropped by Bottleneck"} = {}) { + if (this._states.remove(this.options.id)) { + if (this.rejectOnDrop) { + this._reject(error != null ? error : new BottleneckError$1(message)); + } + this.Events.trigger("dropped", {args: this.args, options: this.options, task: this.task, promise: this.promise}); + return true; + } else { + return false; + } + } + + _assertStatus(expected) { + var status; + status = this._states.jobStatus(this.options.id); + if (!(status === expected || (expected === "DONE" && status === null))) { + throw new BottleneckError$1(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`); + } + } + + doReceive() { + this._states.start(this.options.id); + return this.Events.trigger("received", {args: this.args, options: this.options}); + } + + doQueue(reachedHWM, blocked) { + this._assertStatus("RECEIVED"); + this._states.next(this.options.id); + return this.Events.trigger("queued", {args: this.args, options: this.options, reachedHWM, blocked}); + } + + doRun() { + if (this.retryCount === 0) { + this._assertStatus("QUEUED"); + this._states.next(this.options.id); + } else { + this._assertStatus("EXECUTING"); + } + return this.Events.trigger("scheduled", {args: this.args, options: this.options}); + } + + async doExecute(chained, clearGlobalState, run, free) { + var error, eventInfo, passed; + if (this.retryCount === 0) { + this._assertStatus("RUNNING"); + this._states.next(this.options.id); + } else { + this._assertStatus("EXECUTING"); + } + eventInfo = {args: this.args, options: this.options, retryCount: this.retryCount}; + this.Events.trigger("executing", eventInfo); + try { + passed = (await (chained != null ? chained.schedule(this.options, this.task, ...this.args) : this.task(...this.args))); + if (clearGlobalState()) { + this.doDone(eventInfo); + await free(this.options, eventInfo); + this._assertStatus("DONE"); + return this._resolve(passed); + } + } catch (error1) { + error = error1; + return this._onFailure(error, eventInfo, clearGlobalState, run, free); + } + } + + doExpire(clearGlobalState, run, free) { + var error, eventInfo; + if (this._states.jobStatus(this.options.id === "RUNNING")) { + this._states.next(this.options.id); + } + this._assertStatus("EXECUTING"); + eventInfo = {args: this.args, options: this.options, retryCount: this.retryCount}; + error = new BottleneckError$1(`This job timed out after ${this.options.expiration} ms.`); + return this._onFailure(error, eventInfo, clearGlobalState, run, free); + } + + async _onFailure(error, eventInfo, clearGlobalState, run, free) { + var retry, retryAfter; + if (clearGlobalState()) { + retry = (await this.Events.trigger("failed", error, eventInfo)); + if (retry != null) { + retryAfter = ~~retry; + this.Events.trigger("retry", `Retrying ${this.options.id} after ${retryAfter} ms`, eventInfo); + this.retryCount++; + return run(retryAfter); + } else { + this.doDone(eventInfo); + await free(this.options, eventInfo); + this._assertStatus("DONE"); + return this._reject(error); + } + } + } + + doDone(eventInfo) { + this._assertStatus("EXECUTING"); + this._states.next(this.options.id); + return this.Events.trigger("done", eventInfo); + } + + }; + + var Job_1 = Job; + + var BottleneckError$2, LocalDatastore, parser$2; + + parser$2 = parser; + + BottleneckError$2 = BottleneckError_1; + + LocalDatastore = class LocalDatastore { + constructor(instance, storeOptions, storeInstanceOptions) { + this.instance = instance; + this.storeOptions = storeOptions; + this.clientId = this.instance._randomIndex(); + parser$2.load(storeInstanceOptions, storeInstanceOptions, this); + this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now(); + this._running = 0; + this._done = 0; + this._unblockTime = 0; + this.ready = this.Promise.resolve(); + this.clients = {}; + this._startHeartbeat(); + } + + _startHeartbeat() { + var base; + if ((this.heartbeat == null) && (((this.storeOptions.reservoirRefreshInterval != null) && (this.storeOptions.reservoirRefreshAmount != null)) || ((this.storeOptions.reservoirIncreaseInterval != null) && (this.storeOptions.reservoirIncreaseAmount != null)))) { + return typeof (base = (this.heartbeat = setInterval(() => { + var amount, incr, maximum, now, reservoir; + now = Date.now(); + if ((this.storeOptions.reservoirRefreshInterval != null) && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) { + this._lastReservoirRefresh = now; + this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount; + this.instance._drainAll(this.computeCapacity()); + } + if ((this.storeOptions.reservoirIncreaseInterval != null) && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) { + ({ + reservoirIncreaseAmount: amount, + reservoirIncreaseMaximum: maximum, + reservoir + } = this.storeOptions); + this._lastReservoirIncrease = now; + incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount; + if (incr > 0) { + this.storeOptions.reservoir += incr; + return this.instance._drainAll(this.computeCapacity()); + } + } + }, this.heartbeatInterval))).unref === "function" ? base.unref() : void 0; + } else { + return clearInterval(this.heartbeat); + } + } + + async __publish__(message) { + await this.yieldLoop(); + return this.instance.Events.trigger("message", message.toString()); + } + + async __disconnect__(flush) { + await this.yieldLoop(); + clearInterval(this.heartbeat); + return this.Promise.resolve(); + } + + yieldLoop(t = 0) { + return new this.Promise(function(resolve, reject) { + return setTimeout(resolve, t); + }); + } + + computePenalty() { + var ref; + return (ref = this.storeOptions.penalty) != null ? ref : (15 * this.storeOptions.minTime) || 5000; + } + + async __updateSettings__(options) { + await this.yieldLoop(); + parser$2.overwrite(options, options, this.storeOptions); + this._startHeartbeat(); + this.instance._drainAll(this.computeCapacity()); + return true; + } + + async __running__() { + await this.yieldLoop(); + return this._running; + } + + async __queued__() { + await this.yieldLoop(); + return this.instance.queued(); + } + + async __done__() { + await this.yieldLoop(); + return this._done; + } + + async __groupCheck__(time) { + await this.yieldLoop(); + return (this._nextRequest + this.timeout) < time; + } + + computeCapacity() { + var maxConcurrent, reservoir; + ({maxConcurrent, reservoir} = this.storeOptions); + if ((maxConcurrent != null) && (reservoir != null)) { + return Math.min(maxConcurrent - this._running, reservoir); + } else if (maxConcurrent != null) { + return maxConcurrent - this._running; + } else if (reservoir != null) { + return reservoir; + } else { + return null; + } + } + + conditionsCheck(weight) { + var capacity; + capacity = this.computeCapacity(); + return (capacity == null) || weight <= capacity; + } + + async __incrementReservoir__(incr) { + var reservoir; + await this.yieldLoop(); + reservoir = this.storeOptions.reservoir += incr; + this.instance._drainAll(this.computeCapacity()); + return reservoir; + } + + async __currentReservoir__() { + await this.yieldLoop(); + return this.storeOptions.reservoir; + } + + isBlocked(now) { + return this._unblockTime >= now; + } + + check(weight, now) { + return this.conditionsCheck(weight) && (this._nextRequest - now) <= 0; + } + + async __check__(weight) { + var now; + await this.yieldLoop(); + now = Date.now(); + return this.check(weight, now); + } + + async __register__(index, weight, expiration) { + var now, wait; + await this.yieldLoop(); + now = Date.now(); + if (this.conditionsCheck(weight)) { + this._running += weight; + if (this.storeOptions.reservoir != null) { + this.storeOptions.reservoir -= weight; + } + wait = Math.max(this._nextRequest - now, 0); + this._nextRequest = now + wait + this.storeOptions.minTime; + return { + success: true, + wait, + reservoir: this.storeOptions.reservoir + }; + } else { + return { + success: false + }; + } + } + + strategyIsBlock() { + return this.storeOptions.strategy === 3; + } + + async __submit__(queueLength, weight) { + var blocked, now, reachedHWM; + await this.yieldLoop(); + if ((this.storeOptions.maxConcurrent != null) && weight > this.storeOptions.maxConcurrent) { + throw new BottleneckError$2(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`); + } + now = Date.now(); + reachedHWM = (this.storeOptions.highWater != null) && queueLength === this.storeOptions.highWater && !this.check(weight, now); + blocked = this.strategyIsBlock() && (reachedHWM || this.isBlocked(now)); + if (blocked) { + this._unblockTime = now + this.computePenalty(); + this._nextRequest = this._unblockTime + this.storeOptions.minTime; + this.instance._dropAllQueued(); + } + return { + reachedHWM, + blocked, + strategy: this.storeOptions.strategy + }; + } + + async __free__(index, weight) { + await this.yieldLoop(); + this._running -= weight; + this._done += weight; + this.instance._drainAll(this.computeCapacity()); + return { + running: this._running + }; + } + + }; + + var LocalDatastore_1 = LocalDatastore; + + var BottleneckError$3, States; + + BottleneckError$3 = BottleneckError_1; + + States = class States { + constructor(status1) { + this.status = status1; + this._jobs = {}; + this.counts = this.status.map(function() { + return 0; + }); + } + + next(id) { + var current, next; + current = this._jobs[id]; + next = current + 1; + if ((current != null) && next < this.status.length) { + this.counts[current]--; + this.counts[next]++; + return this._jobs[id]++; + } else if (current != null) { + this.counts[current]--; + return delete this._jobs[id]; + } + } + + start(id) { + var initial; + initial = 0; + this._jobs[id] = initial; + return this.counts[initial]++; + } + + remove(id) { + var current; + current = this._jobs[id]; + if (current != null) { + this.counts[current]--; + delete this._jobs[id]; + } + return current != null; + } + + jobStatus(id) { + var ref; + return (ref = this.status[this._jobs[id]]) != null ? ref : null; + } + + statusJobs(status) { + var k, pos, ref, results, v; + if (status != null) { + pos = this.status.indexOf(status); + if (pos < 0) { + throw new BottleneckError$3(`status must be one of ${this.status.join(', ')}`); + } + ref = this._jobs; + results = []; + for (k in ref) { + v = ref[k]; + if (v === pos) { + results.push(k); + } + } + return results; + } else { + return Object.keys(this._jobs); + } + } + + statusCounts() { + return this.counts.reduce(((acc, v, i) => { + acc[this.status[i]] = v; + return acc; + }), {}); + } + + }; + + var States_1 = States; + + var DLList$2, Sync; + + DLList$2 = DLList_1; + + Sync = class Sync { + constructor(name, Promise) { + this.schedule = this.schedule.bind(this); + this.name = name; + this.Promise = Promise; + this._running = 0; + this._queue = new DLList$2(); + } + + isEmpty() { + return this._queue.length === 0; + } + + async _tryToRun() { + var args, cb, error, reject, resolve, returned, task; + if ((this._running < 1) && this._queue.length > 0) { + this._running++; + ({task, args, resolve, reject} = this._queue.shift()); + cb = (await (async function() { + try { + returned = (await task(...args)); + return function() { + return resolve(returned); + }; + } catch (error1) { + error = error1; + return function() { + return reject(error); + }; + } + })()); + this._running--; + this._tryToRun(); + return cb(); + } + } + + schedule(task, ...args) { + var promise, reject, resolve; + resolve = reject = null; + promise = new this.Promise(function(_resolve, _reject) { + resolve = _resolve; + return reject = _reject; + }); + this._queue.push({task, args, resolve, reject}); + this._tryToRun(); + return promise; + } + + }; + + var Sync_1 = Sync; + + var version = "2.19.5"; + var version$1 = { + version: version + }; + + var version$2 = /*#__PURE__*/Object.freeze({ + version: version, + default: version$1 + }); + + var require$$2 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var require$$3 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var require$$4 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var Events$2, Group, IORedisConnection$1, RedisConnection$1, Scripts$1, parser$3; + + parser$3 = parser; + + Events$2 = Events_1; + + RedisConnection$1 = require$$2; + + IORedisConnection$1 = require$$3; + + Scripts$1 = require$$4; + + Group = (function() { + class Group { + constructor(limiterOptions = {}) { + this.deleteKey = this.deleteKey.bind(this); + this.limiterOptions = limiterOptions; + parser$3.load(this.limiterOptions, this.defaults, this); + this.Events = new Events$2(this); + this.instances = {}; + this.Bottleneck = Bottleneck_1; + this._startAutoCleanup(); + this.sharedConnection = this.connection != null; + if (this.connection == null) { + if (this.limiterOptions.datastore === "redis") { + this.connection = new RedisConnection$1(Object.assign({}, this.limiterOptions, {Events: this.Events})); + } else if (this.limiterOptions.datastore === "ioredis") { + this.connection = new IORedisConnection$1(Object.assign({}, this.limiterOptions, {Events: this.Events})); + } + } + } + + key(key = "") { + var ref; + return (ref = this.instances[key]) != null ? ref : (() => { + var limiter; + limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, { + id: `${this.id}-${key}`, + timeout: this.timeout, + connection: this.connection + })); + this.Events.trigger("created", limiter, key); + return limiter; + })(); + } + + async deleteKey(key = "") { + var deleted, instance; + instance = this.instances[key]; + if (this.connection) { + deleted = (await this.connection.__runCommand__(['del', ...Scripts$1.allKeys(`${this.id}-${key}`)])); + } + if (instance != null) { + delete this.instances[key]; + await instance.disconnect(); + } + return (instance != null) || deleted > 0; + } + + limiters() { + var k, ref, results, v; + ref = this.instances; + results = []; + for (k in ref) { + v = ref[k]; + results.push({ + key: k, + limiter: v + }); + } + return results; + } + + keys() { + return Object.keys(this.instances); + } + + async clusterKeys() { + var cursor, end, found, i, k, keys, len, next, start; + if (this.connection == null) { + return this.Promise.resolve(this.keys()); + } + keys = []; + cursor = null; + start = `b_${this.id}-`.length; + end = "_settings".length; + while (cursor !== 0) { + [next, found] = (await this.connection.__runCommand__(["scan", cursor != null ? cursor : 0, "match", `b_${this.id}-*_settings`, "count", 10000])); + cursor = ~~next; + for (i = 0, len = found.length; i < len; i++) { + k = found[i]; + keys.push(k.slice(start, -end)); + } + } + return keys; + } + + _startAutoCleanup() { + var base; + clearInterval(this.interval); + return typeof (base = (this.interval = setInterval(async() => { + var e, k, ref, results, time, v; + time = Date.now(); + ref = this.instances; + results = []; + for (k in ref) { + v = ref[k]; + try { + if ((await v._store.__groupCheck__(time))) { + results.push(this.deleteKey(k)); + } else { + results.push(void 0); + } + } catch (error) { + e = error; + results.push(v.Events.trigger("error", e)); + } + } + return results; + }, this.timeout / 2))).unref === "function" ? base.unref() : void 0; + } + + updateSettings(options = {}) { + parser$3.overwrite(options, this.defaults, this); + parser$3.overwrite(options, options, this.limiterOptions); + if (options.timeout != null) { + return this._startAutoCleanup(); + } + } + + disconnect(flush = true) { + var ref; + if (!this.sharedConnection) { + return (ref = this.connection) != null ? ref.disconnect(flush) : void 0; + } + } + + } + Group.prototype.defaults = { + timeout: 1000 * 60 * 5, + connection: null, + Promise: Promise, + id: "group-key" + }; + + return Group; + + }).call(commonjsGlobal); + + var Group_1 = Group; + + var Batcher, Events$3, parser$4; + + parser$4 = parser; + + Events$3 = Events_1; + + Batcher = (function() { + class Batcher { + constructor(options = {}) { + this.options = options; + parser$4.load(this.options, this.defaults, this); + this.Events = new Events$3(this); + this._arr = []; + this._resetPromise(); + this._lastFlush = Date.now(); + } + + _resetPromise() { + return this._promise = new this.Promise((res, rej) => { + return this._resolve = res; + }); + } + + _flush() { + clearTimeout(this._timeout); + this._lastFlush = Date.now(); + this._resolve(); + this.Events.trigger("batch", this._arr); + this._arr = []; + return this._resetPromise(); + } + + add(data) { + var ret; + this._arr.push(data); + ret = this._promise; + if (this._arr.length === this.maxSize) { + this._flush(); + } else if ((this.maxTime != null) && this._arr.length === 1) { + this._timeout = setTimeout(() => { + return this._flush(); + }, this.maxTime); + } + return ret; + } + + } + Batcher.prototype.defaults = { + maxTime: null, + maxSize: null, + Promise: Promise + }; + + return Batcher; + + }).call(commonjsGlobal); + + var Batcher_1 = Batcher; + + var require$$4$1 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var require$$8 = getCjsExportFromNamespace(version$2); + + var Bottleneck, DEFAULT_PRIORITY$1, Events$4, Job$1, LocalDatastore$1, NUM_PRIORITIES$1, Queues$1, RedisDatastore$1, States$1, Sync$1, parser$5, + splice = [].splice; + + NUM_PRIORITIES$1 = 10; + + DEFAULT_PRIORITY$1 = 5; + + parser$5 = parser; + + Queues$1 = Queues_1; + + Job$1 = Job_1; + + LocalDatastore$1 = LocalDatastore_1; + + RedisDatastore$1 = require$$4$1; + + Events$4 = Events_1; + + States$1 = States_1; + + Sync$1 = Sync_1; + + Bottleneck = (function() { + class Bottleneck { + constructor(options = {}, ...invalid) { + var storeInstanceOptions, storeOptions; + this._addToQueue = this._addToQueue.bind(this); + this._validateOptions(options, invalid); + parser$5.load(options, this.instanceDefaults, this); + this._queues = new Queues$1(NUM_PRIORITIES$1); + this._scheduled = {}; + this._states = new States$1(["RECEIVED", "QUEUED", "RUNNING", "EXECUTING"].concat(this.trackDoneStatus ? ["DONE"] : [])); + this._limiter = null; + this.Events = new Events$4(this); + this._submitLock = new Sync$1("submit", this.Promise); + this._registerLock = new Sync$1("register", this.Promise); + storeOptions = parser$5.load(options, this.storeDefaults, {}); + this._store = (function() { + if (this.datastore === "redis" || this.datastore === "ioredis" || (this.connection != null)) { + storeInstanceOptions = parser$5.load(options, this.redisStoreDefaults, {}); + return new RedisDatastore$1(this, storeOptions, storeInstanceOptions); + } else if (this.datastore === "local") { + storeInstanceOptions = parser$5.load(options, this.localStoreDefaults, {}); + return new LocalDatastore$1(this, storeOptions, storeInstanceOptions); + } else { + throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`); + } + }).call(this); + this._queues.on("leftzero", () => { + var ref; + return (ref = this._store.heartbeat) != null ? typeof ref.ref === "function" ? ref.ref() : void 0 : void 0; + }); + this._queues.on("zero", () => { + var ref; + return (ref = this._store.heartbeat) != null ? typeof ref.unref === "function" ? ref.unref() : void 0 : void 0; + }); + } + + _validateOptions(options, invalid) { + if (!((options != null) && typeof options === "object" && invalid.length === 0)) { + throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1."); + } + } + + ready() { + return this._store.ready; + } + + clients() { + return this._store.clients; + } + + channel() { + return `b_${this.id}`; + } + + channel_client() { + return `b_${this.id}_${this._store.clientId}`; + } + + publish(message) { + return this._store.__publish__(message); + } + + disconnect(flush = true) { + return this._store.__disconnect__(flush); + } + + chain(_limiter) { + this._limiter = _limiter; + return this; + } + + queued(priority) { + return this._queues.queued(priority); + } + + clusterQueued() { + return this._store.__queued__(); + } + + empty() { + return this.queued() === 0 && this._submitLock.isEmpty(); + } + + running() { + return this._store.__running__(); + } + + done() { + return this._store.__done__(); + } + + jobStatus(id) { + return this._states.jobStatus(id); + } + + jobs(status) { + return this._states.statusJobs(status); + } + + counts() { + return this._states.statusCounts(); + } + + _randomIndex() { + return Math.random().toString(36).slice(2); + } + + check(weight = 1) { + return this._store.__check__(weight); + } + + _clearGlobalState(index) { + if (this._scheduled[index] != null) { + clearTimeout(this._scheduled[index].expiration); + delete this._scheduled[index]; + return true; + } else { + return false; + } + } + + async _free(index, job, options, eventInfo) { + var e, running; + try { + ({running} = (await this._store.__free__(index, options.weight))); + this.Events.trigger("debug", `Freed ${options.id}`, eventInfo); + if (running === 0 && this.empty()) { + return this.Events.trigger("idle"); + } + } catch (error1) { + e = error1; + return this.Events.trigger("error", e); + } + } + + _run(index, job, wait) { + var clearGlobalState, free, run; + job.doRun(); + clearGlobalState = this._clearGlobalState.bind(this, index); + run = this._run.bind(this, index, job); + free = this._free.bind(this, index, job); + return this._scheduled[index] = { + timeout: setTimeout(() => { + return job.doExecute(this._limiter, clearGlobalState, run, free); + }, wait), + expiration: job.options.expiration != null ? setTimeout(function() { + return job.doExpire(clearGlobalState, run, free); + }, wait + job.options.expiration) : void 0, + job: job + }; + } + + _drainOne(capacity) { + return this._registerLock.schedule(() => { + var args, index, next, options, queue; + if (this.queued() === 0) { + return this.Promise.resolve(null); + } + queue = this._queues.getFirst(); + ({options, args} = next = queue.first()); + if ((capacity != null) && options.weight > capacity) { + return this.Promise.resolve(null); + } + this.Events.trigger("debug", `Draining ${options.id}`, {args, options}); + index = this._randomIndex(); + return this._store.__register__(index, options.weight, options.expiration).then(({success, wait, reservoir}) => { + var empty; + this.Events.trigger("debug", `Drained ${options.id}`, {success, args, options}); + if (success) { + queue.shift(); + empty = this.empty(); + if (empty) { + this.Events.trigger("empty"); + } + if (reservoir === 0) { + this.Events.trigger("depleted", empty); + } + this._run(index, next, wait); + return this.Promise.resolve(options.weight); + } else { + return this.Promise.resolve(null); + } + }); + }); + } + + _drainAll(capacity, total = 0) { + return this._drainOne(capacity).then((drained) => { + var newCapacity; + if (drained != null) { + newCapacity = capacity != null ? capacity - drained : capacity; + return this._drainAll(newCapacity, total + drained); + } else { + return this.Promise.resolve(total); + } + }).catch((e) => { + return this.Events.trigger("error", e); + }); + } + + _dropAllQueued(message) { + return this._queues.shiftAll(function(job) { + return job.doDrop({message}); + }); + } + + stop(options = {}) { + var done, waitForExecuting; + options = parser$5.load(options, this.stopDefaults); + waitForExecuting = (at) => { + var finished; + finished = () => { + var counts; + counts = this._states.counts; + return (counts[0] + counts[1] + counts[2] + counts[3]) === at; + }; + return new this.Promise((resolve, reject) => { + if (finished()) { + return resolve(); + } else { + return this.on("done", () => { + if (finished()) { + this.removeAllListeners("done"); + return resolve(); + } + }); + } + }); + }; + done = options.dropWaitingJobs ? (this._run = function(index, next) { + return next.doDrop({ + message: options.dropErrorMessage + }); + }, this._drainOne = () => { + return this.Promise.resolve(null); + }, this._registerLock.schedule(() => { + return this._submitLock.schedule(() => { + var k, ref, v; + ref = this._scheduled; + for (k in ref) { + v = ref[k]; + if (this.jobStatus(v.job.options.id) === "RUNNING") { + clearTimeout(v.timeout); + clearTimeout(v.expiration); + v.job.doDrop({ + message: options.dropErrorMessage + }); + } + } + this._dropAllQueued(options.dropErrorMessage); + return waitForExecuting(0); + }); + })) : this.schedule({ + priority: NUM_PRIORITIES$1 - 1, + weight: 0 + }, () => { + return waitForExecuting(1); + }); + this._receive = function(job) { + return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage)); + }; + this.stop = () => { + return this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called")); + }; + return done; + } + + async _addToQueue(job) { + var args, blocked, error, options, reachedHWM, shifted, strategy; + ({args, options} = job); + try { + ({reachedHWM, blocked, strategy} = (await this._store.__submit__(this.queued(), options.weight))); + } catch (error1) { + error = error1; + this.Events.trigger("debug", `Could not queue ${options.id}`, {args, options, error}); + job.doDrop({error}); + return false; + } + if (blocked) { + job.doDrop(); + return true; + } else if (reachedHWM) { + shifted = strategy === Bottleneck.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0; + if (shifted != null) { + shifted.doDrop(); + } + if ((shifted == null) || strategy === Bottleneck.prototype.strategy.OVERFLOW) { + if (shifted == null) { + job.doDrop(); + } + return reachedHWM; + } + } + job.doQueue(reachedHWM, blocked); + this._queues.push(job); + await this._drainAll(); + return reachedHWM; + } + + _receive(job) { + if (this._states.jobStatus(job.options.id) != null) { + job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`)); + return false; + } else { + job.doReceive(); + return this._submitLock.schedule(this._addToQueue, job); + } + } + + submit(...args) { + var cb, fn, job, options, ref, ref1, task; + if (typeof args[0] === "function") { + ref = args, [fn, ...args] = ref, [cb] = splice.call(args, -1); + options = parser$5.load({}, this.jobDefaults); + } else { + ref1 = args, [options, fn, ...args] = ref1, [cb] = splice.call(args, -1); + options = parser$5.load(options, this.jobDefaults); + } + task = (...args) => { + return new this.Promise(function(resolve, reject) { + return fn(...args, function(...args) { + return (args[0] != null ? reject : resolve)(args); + }); + }); + }; + job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + job.promise.then(function(args) { + return typeof cb === "function" ? cb(...args) : void 0; + }).catch(function(args) { + if (Array.isArray(args)) { + return typeof cb === "function" ? cb(...args) : void 0; + } else { + return typeof cb === "function" ? cb(args) : void 0; + } + }); + return this._receive(job); + } + + schedule(...args) { + var job, options, task; + if (typeof args[0] === "function") { + [task, ...args] = args; + options = {}; + } else { + [options, task, ...args] = args; + } + job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + this._receive(job); + return job.promise; + } + + wrap(fn) { + var schedule, wrapped; + schedule = this.schedule.bind(this); + wrapped = function(...args) { + return schedule(fn.bind(this), ...args); + }; + wrapped.withOptions = function(options, ...args) { + return schedule(options, fn, ...args); + }; + return wrapped; + } + + async updateSettings(options = {}) { + await this._store.__updateSettings__(parser$5.overwrite(options, this.storeDefaults)); + parser$5.overwrite(options, this.instanceDefaults, this); + return this; + } + + currentReservoir() { + return this._store.__currentReservoir__(); + } + + incrementReservoir(incr = 0) { + return this._store.__incrementReservoir__(incr); + } + + } + Bottleneck.default = Bottleneck; + + Bottleneck.Events = Events$4; + + Bottleneck.version = Bottleneck.prototype.version = require$$8.version; + + Bottleneck.strategy = Bottleneck.prototype.strategy = { + LEAK: 1, + OVERFLOW: 2, + OVERFLOW_PRIORITY: 4, + BLOCK: 3 + }; + + Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = BottleneckError_1; + + Bottleneck.Group = Bottleneck.prototype.Group = Group_1; + + Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require$$2; + + Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require$$3; + + Bottleneck.Batcher = Bottleneck.prototype.Batcher = Batcher_1; + + Bottleneck.prototype.jobDefaults = { + priority: DEFAULT_PRIORITY$1, + weight: 1, + expiration: null, + id: "" + }; + + Bottleneck.prototype.storeDefaults = { + maxConcurrent: null, + minTime: 0, + highWater: null, + strategy: Bottleneck.prototype.strategy.LEAK, + penalty: null, + reservoir: null, + reservoirRefreshInterval: null, + reservoirRefreshAmount: null, + reservoirIncreaseInterval: null, + reservoirIncreaseAmount: null, + reservoirIncreaseMaximum: null + }; + + Bottleneck.prototype.localStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 250 + }; + + Bottleneck.prototype.redisStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 5000, + clientTimeout: 10000, + Redis: null, + clientOptions: {}, + clusterNodes: null, + clearDatastore: false, + connection: null + }; + + Bottleneck.prototype.instanceDefaults = { + datastore: "local", + connection: null, + id: "", + rejectOnDrop: true, + trackDoneStatus: false, + Promise: Promise + }; + + Bottleneck.prototype.stopDefaults = { + enqueueErrorMessage: "This limiter has been stopped and cannot accept new jobs.", + dropWaitingJobs: true, + dropErrorMessage: "This limiter has been stopped." + }; + + return Bottleneck; + + }).call(commonjsGlobal); + + var Bottleneck_1 = Bottleneck; + + var lib = Bottleneck_1; + + return lib; + +}))); + + +/***/ }), + +/***/ 1160: +/***/ ((__unused_webpack_module, exports) => { + + + +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; + + +/***/ }), + +/***/ 7159: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const fs = __nccwpck_require__(9896) +const path = __nccwpck_require__(6928) +const os = __nccwpck_require__(857) +const crypto = __nccwpck_require__(6982) +const packageJson = __nccwpck_require__(56) + +const version = packageJson.version + +const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg + +// Parse src into an Object +function parse (src) { + const obj = {} + + // Convert buffer to string + let lines = src.toString() + + // Convert line breaks to same format + lines = lines.replace(/\r\n?/mg, '\n') + + let match + while ((match = LINE.exec(lines)) != null) { + const key = match[1] + + // Default undefined or null to empty string + let value = (match[2] || '') + + // Remove whitespace + value = value.trim() + + // Check if double quoted + const maybeQuote = value[0] + + // Remove surrounding quotes + value = value.replace(/^(['"`])([\s\S]*)\1$/mg, '$2') + + // Expand newlines if double quoted + if (maybeQuote === '"') { + value = value.replace(/\\n/g, '\n') + value = value.replace(/\\r/g, '\r') + } + + // Add to object + obj[key] = value + } + + return obj +} + +function _parseVault (options) { + const vaultPath = _vaultPath(options) + + // Parse .env.vault + const result = DotenvModule.configDotenv({ path: vaultPath }) + if (!result.parsed) { + const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`) + err.code = 'MISSING_DATA' + throw err + } + + // handle scenario for comma separated keys - for use with key rotation + // example: DOTENV_KEY="dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod" + const keys = _dotenvKey(options).split(',') + const length = keys.length + + let decrypted + for (let i = 0; i < length; i++) { + try { + // Get full key + const key = keys[i].trim() + + // Get instructions for decrypt + const attrs = _instructions(result, key) + + // Decrypt + decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key) + + break + } catch (error) { + // last key + if (i + 1 >= length) { + throw error + } + // try next key + } + } + + // Parse decrypted .env string + return DotenvModule.parse(decrypted) +} + +function _log (message) { + console.log(`[dotenv@${version}][INFO] ${message}`) +} + +function _warn (message) { + console.log(`[dotenv@${version}][WARN] ${message}`) +} + +function _debug (message) { + console.log(`[dotenv@${version}][DEBUG] ${message}`) +} + +function _dotenvKey (options) { + // prioritize developer directly setting options.DOTENV_KEY + if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) { + return options.DOTENV_KEY + } + + // secondary infra already contains a DOTENV_KEY environment variable + if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) { + return process.env.DOTENV_KEY + } + + // fallback to empty string + return '' +} + +function _instructions (result, dotenvKey) { + // Parse DOTENV_KEY. Format is a URI + let uri + try { + uri = new URL(dotenvKey) + } catch (error) { + if (error.code === 'ERR_INVALID_URL') { + const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development') + err.code = 'INVALID_DOTENV_KEY' + throw err + } + + throw error + } + + // Get decrypt key + const key = uri.password + if (!key) { + const err = new Error('INVALID_DOTENV_KEY: Missing key part') + err.code = 'INVALID_DOTENV_KEY' + throw err + } + + // Get environment + const environment = uri.searchParams.get('environment') + if (!environment) { + const err = new Error('INVALID_DOTENV_KEY: Missing environment part') + err.code = 'INVALID_DOTENV_KEY' + throw err + } + + // Get ciphertext payload + const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}` + const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION + if (!ciphertext) { + const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`) + err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT' + throw err + } + + return { ciphertext, key } +} + +function _vaultPath (options) { + let possibleVaultPath = null + + if (options && options.path && options.path.length > 0) { + if (Array.isArray(options.path)) { + for (const filepath of options.path) { + if (fs.existsSync(filepath)) { + possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault` + } + } + } else { + possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault` + } + } else { + possibleVaultPath = path.resolve(process.cwd(), '.env.vault') + } + + if (fs.existsSync(possibleVaultPath)) { + return possibleVaultPath + } + + return null +} + +function _resolveHome (envPath) { + return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath +} + +function _configVault (options) { + _log('Loading env from encrypted .env.vault') + + const parsed = DotenvModule._parseVault(options) + + let processEnv = process.env + if (options && options.processEnv != null) { + processEnv = options.processEnv + } + + DotenvModule.populate(processEnv, parsed, options) + + return { parsed } +} + +function configDotenv (options) { + const dotenvPath = path.resolve(process.cwd(), '.env') + let encoding = 'utf8' + const debug = Boolean(options && options.debug) + + if (options && options.encoding) { + encoding = options.encoding + } else { + if (debug) { + _debug('No encoding is specified. UTF-8 is used by default') + } + } + + let optionPaths = [dotenvPath] // default, look for .env + if (options && options.path) { + if (!Array.isArray(options.path)) { + optionPaths = [_resolveHome(options.path)] + } else { + optionPaths = [] // reset default + for (const filepath of options.path) { + optionPaths.push(_resolveHome(filepath)) + } + } + } + + // Build the parsed data in a temporary object (because we need to return it). Once we have the final + // parsed data, we will combine it with process.env (or options.processEnv if provided). + let lastError + const parsedAll = {} + for (const path of optionPaths) { + try { + // Specifying an encoding returns a string instead of a buffer + const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding })) + + DotenvModule.populate(parsedAll, parsed, options) + } catch (e) { + if (debug) { + _debug(`Failed to load ${path} ${e.message}`) + } + lastError = e + } + } + + let processEnv = process.env + if (options && options.processEnv != null) { + processEnv = options.processEnv + } + + DotenvModule.populate(processEnv, parsedAll, options) + + if (lastError) { + return { parsed: parsedAll, error: lastError } + } else { + return { parsed: parsedAll } + } +} + +// Populates process.env from .env file +function config (options) { + // fallback to original dotenv if DOTENV_KEY is not set + if (_dotenvKey(options).length === 0) { + return DotenvModule.configDotenv(options) + } + + const vaultPath = _vaultPath(options) + + // dotenvKey exists but .env.vault file does not exist + if (!vaultPath) { + _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`) + + return DotenvModule.configDotenv(options) + } + + return DotenvModule._configVault(options) +} + +function decrypt (encrypted, keyStr) { + const key = Buffer.from(keyStr.slice(-64), 'hex') + let ciphertext = Buffer.from(encrypted, 'base64') + + const nonce = ciphertext.subarray(0, 12) + const authTag = ciphertext.subarray(-16) + ciphertext = ciphertext.subarray(12, -16) + + try { + const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce) + aesgcm.setAuthTag(authTag) + return `${aesgcm.update(ciphertext)}${aesgcm.final()}` + } catch (error) { + const isRange = error instanceof RangeError + const invalidKeyLength = error.message === 'Invalid key length' + const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data' + + if (isRange || invalidKeyLength) { + const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)') + err.code = 'INVALID_DOTENV_KEY' + throw err + } else if (decryptionFailed) { + const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY') + err.code = 'DECRYPTION_FAILED' + throw err + } else { + throw error + } + } +} + +// Populate process.env with parsed values +function populate (processEnv, parsed, options = {}) { + const debug = Boolean(options && options.debug) + const override = Boolean(options && options.override) + + if (typeof parsed !== 'object') { + const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate') + err.code = 'OBJECT_REQUIRED' + throw err + } + + // Set process.env + for (const key of Object.keys(parsed)) { + if (Object.prototype.hasOwnProperty.call(processEnv, key)) { + if (override === true) { + processEnv[key] = parsed[key] + } + + if (debug) { + if (override === true) { + _debug(`"${key}" is already defined and WAS overwritten`) + } else { + _debug(`"${key}" is already defined and was NOT overwritten`) + } + } + } else { + processEnv[key] = parsed[key] + } + } +} + +const DotenvModule = { + configDotenv, + _configVault, + _parseVault, + config, + decrypt, + parse, + populate +} + +module.exports.configDotenv = DotenvModule.configDotenv +module.exports._configVault = DotenvModule._configVault +module.exports._parseVault = DotenvModule._parseVault +module.exports.config = DotenvModule.config +module.exports.decrypt = DotenvModule.decrypt +module.exports.parse = DotenvModule.parse +module.exports.populate = DotenvModule.populate + +module.exports = DotenvModule + + +/***/ }), + +/***/ 9898: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +(function (global, factory) { + true ? factory(exports, __nccwpck_require__(3514), __nccwpck_require__(9727)) : + 0; +}(this, (function (exports, tslib, graphql) { 'use strict'; + + var docCache = new Map(); + var fragmentSourceMap = new Map(); + var printFragmentWarnings = true; + var experimentalFragmentVariables = false; + function normalize(string) { + return string.replace(/[\s,]+/g, ' ').trim(); + } + function cacheKeyFromLoc(loc) { + return normalize(loc.source.body.substring(loc.start, loc.end)); + } + function processFragments(ast) { + var seenKeys = new Set(); + var definitions = []; + ast.definitions.forEach(function (fragmentDefinition) { + if (fragmentDefinition.kind === 'FragmentDefinition') { + var fragmentName = fragmentDefinition.name.value; + var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc); + var sourceKeySet = fragmentSourceMap.get(fragmentName); + if (sourceKeySet && !sourceKeySet.has(sourceKey)) { + if (printFragmentWarnings) { + console.warn("Warning: fragment with name " + fragmentName + " already exists.\n" + + "graphql-tag enforces all fragment names across your application to be unique; read more about\n" + + "this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"); + } + } + else if (!sourceKeySet) { + fragmentSourceMap.set(fragmentName, sourceKeySet = new Set); + } + sourceKeySet.add(sourceKey); + if (!seenKeys.has(sourceKey)) { + seenKeys.add(sourceKey); + definitions.push(fragmentDefinition); + } + } + else { + definitions.push(fragmentDefinition); + } + }); + return tslib.__assign(tslib.__assign({}, ast), { definitions: definitions }); + } + function stripLoc(doc) { + var workSet = new Set(doc.definitions); + workSet.forEach(function (node) { + if (node.loc) + delete node.loc; + Object.keys(node).forEach(function (key) { + var value = node[key]; + if (value && typeof value === 'object') { + workSet.add(value); + } + }); + }); + var loc = doc.loc; + if (loc) { + delete loc.startToken; + delete loc.endToken; + } + return doc; + } + function parseDocument(source) { + var cacheKey = normalize(source); + if (!docCache.has(cacheKey)) { + var parsed = graphql.parse(source, { + experimentalFragmentVariables: experimentalFragmentVariables, + allowLegacyFragmentVariables: experimentalFragmentVariables + }); + if (!parsed || parsed.kind !== 'Document') { + throw new Error('Not a valid GraphQL document.'); + } + docCache.set(cacheKey, stripLoc(processFragments(parsed))); + } + return docCache.get(cacheKey); + } + function gql(literals) { + var args = []; + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i]; + } + if (typeof literals === 'string') { + literals = [literals]; + } + var result = literals[0]; + args.forEach(function (arg, i) { + if (arg && arg.kind === 'Document') { + result += arg.loc.source.body; + } + else { + result += arg; + } + result += literals[i + 1]; + }); + return parseDocument(result); + } + function resetCaches() { + docCache.clear(); + fragmentSourceMap.clear(); + } + function disableFragmentWarnings() { + printFragmentWarnings = false; + } + function enableExperimentalFragmentVariables() { + experimentalFragmentVariables = true; + } + function disableExperimentalFragmentVariables() { + experimentalFragmentVariables = false; + } + var extras = { + gql: gql, + resetCaches: resetCaches, + disableFragmentWarnings: disableFragmentWarnings, + enableExperimentalFragmentVariables: enableExperimentalFragmentVariables, + disableExperimentalFragmentVariables: disableExperimentalFragmentVariables + }; + (function (gql_1) { + gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables; + })(gql || (gql = {})); + gql["default"] = gql; + var gql$1 = gql; + + exports.default = gql$1; + exports.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables; + exports.disableFragmentWarnings = disableFragmentWarnings; + exports.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables; + exports.gql = gql; + exports.resetCaches = resetCaches; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=graphql-tag.umd.js.map + + +/***/ }), + +/***/ 7593: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// For backwards compatibility, make sure require("graphql-tag") returns +// the gql function, rather than an exports object. +module.exports = __nccwpck_require__(9898).gql; + + +/***/ }), + +/***/ 1753: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.GraphQLError = void 0; +exports.formatError = formatError; +exports.printError = printError; + +var _isObjectLike = __nccwpck_require__(7502); + +var _location = __nccwpck_require__(1955); + +var _printLocation = __nccwpck_require__(7098); + +function toNormalizedOptions(args) { + const firstArg = args[0]; + + if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) { + return { + nodes: firstArg, + source: args[1], + positions: args[2], + path: args[3], + originalError: args[4], + extensions: args[5], + }; + } + + return firstArg; +} +/** + * A GraphQLError describes an Error found during the parse, validate, or + * execute phases of performing a GraphQL operation. In addition to a message + * and stack trace, it also includes information about the locations in a + * GraphQL document and/or execution result that correspond to the Error. + */ + +class GraphQLError extends Error { + /** + * An array of `{ line, column }` locations within the source GraphQL document + * which correspond to this error. + * + * Errors during validation often contain multiple locations, for example to + * point out two things with the same name. Errors during execution include a + * single location, the field which produced the error. + * + * Enumerable, and appears in the result of JSON.stringify(). + */ + + /** + * An array describing the JSON-path into the execution response which + * corresponds to this error. Only included for errors during execution. + * + * Enumerable, and appears in the result of JSON.stringify(). + */ + + /** + * An array of GraphQL AST Nodes corresponding to this error. + */ + + /** + * The source GraphQL document for the first location of this error. + * + * Note that if this Error represents more than one node, the source may not + * represent nodes after the first node. + */ + + /** + * An array of character offsets within the source GraphQL document + * which correspond to this error. + */ + + /** + * The original error thrown from a field resolver during execution. + */ + + /** + * Extension fields to add to the formatted error. + */ + + /** + * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead. + */ + constructor(message, ...rawArgs) { + var _this$nodes, _nodeLocations$, _ref; + + const { nodes, source, positions, path, originalError, extensions } = + toNormalizedOptions(rawArgs); + super(message); + this.name = 'GraphQLError'; + this.path = path !== null && path !== void 0 ? path : undefined; + this.originalError = + originalError !== null && originalError !== void 0 + ? originalError + : undefined; // Compute list of blame nodes. + + this.nodes = undefinedIfEmpty( + Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined, + ); + const nodeLocations = undefinedIfEmpty( + (_this$nodes = this.nodes) === null || _this$nodes === void 0 + ? void 0 + : _this$nodes.map((node) => node.loc).filter((loc) => loc != null), + ); // Compute locations in the source for the given nodes/positions. + + this.source = + source !== null && source !== void 0 + ? source + : nodeLocations === null || nodeLocations === void 0 + ? void 0 + : (_nodeLocations$ = nodeLocations[0]) === null || + _nodeLocations$ === void 0 + ? void 0 + : _nodeLocations$.source; + this.positions = + positions !== null && positions !== void 0 + ? positions + : nodeLocations === null || nodeLocations === void 0 + ? void 0 + : nodeLocations.map((loc) => loc.start); + this.locations = + positions && source + ? positions.map((pos) => (0, _location.getLocation)(source, pos)) + : nodeLocations === null || nodeLocations === void 0 + ? void 0 + : nodeLocations.map((loc) => + (0, _location.getLocation)(loc.source, loc.start), + ); + const originalExtensions = (0, _isObjectLike.isObjectLike)( + originalError === null || originalError === void 0 + ? void 0 + : originalError.extensions, + ) + ? originalError === null || originalError === void 0 + ? void 0 + : originalError.extensions + : undefined; + this.extensions = + (_ref = + extensions !== null && extensions !== void 0 + ? extensions + : originalExtensions) !== null && _ref !== void 0 + ? _ref + : Object.create(null); // Only properties prescribed by the spec should be enumerable. + // Keep the rest as non-enumerable. + + Object.defineProperties(this, { + message: { + writable: true, + enumerable: true, + }, + name: { + enumerable: false, + }, + nodes: { + enumerable: false, + }, + source: { + enumerable: false, + }, + positions: { + enumerable: false, + }, + originalError: { + enumerable: false, + }, + }); // Include (non-enumerable) stack trace. + + /* c8 ignore start */ + // FIXME: https://github.com/graphql/graphql-js/issues/2317 + + if ( + originalError !== null && + originalError !== void 0 && + originalError.stack + ) { + Object.defineProperty(this, 'stack', { + value: originalError.stack, + writable: true, + configurable: true, + }); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, GraphQLError); + } else { + Object.defineProperty(this, 'stack', { + value: Error().stack, + writable: true, + configurable: true, + }); + } + /* c8 ignore stop */ + } + + get [Symbol.toStringTag]() { + return 'GraphQLError'; + } + + toString() { + let output = this.message; + + if (this.nodes) { + for (const node of this.nodes) { + if (node.loc) { + output += '\n\n' + (0, _printLocation.printLocation)(node.loc); + } + } + } else if (this.source && this.locations) { + for (const location of this.locations) { + output += + '\n\n' + + (0, _printLocation.printSourceLocation)(this.source, location); + } + } + + return output; + } + + toJSON() { + const formattedError = { + message: this.message, + }; + + if (this.locations != null) { + formattedError.locations = this.locations; + } + + if (this.path != null) { + formattedError.path = this.path; + } + + if (this.extensions != null && Object.keys(this.extensions).length > 0) { + formattedError.extensions = this.extensions; + } + + return formattedError; + } +} + +exports.GraphQLError = GraphQLError; + +function undefinedIfEmpty(array) { + return array === undefined || array.length === 0 ? undefined : array; +} +/** + * See: https://spec.graphql.org/draft/#sec-Errors + */ + +/** + * Prints a GraphQLError to a string, representing useful location information + * about the error's position in the source. + * + * @deprecated Please use `error.toString` instead. Will be removed in v17 + */ +function printError(error) { + return error.toString(); +} +/** + * Given a GraphQLError, format it according to the rules described by the + * Response Format, Errors section of the GraphQL Specification. + * + * @deprecated Please use `error.toJSON` instead. Will be removed in v17 + */ + +function formatError(error) { + return error.toJSON(); +} + + +/***/ }), + +/***/ 774: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +Object.defineProperty(exports, "GraphQLError", ({ + enumerable: true, + get: function () { + return _GraphQLError.GraphQLError; + }, +})); +Object.defineProperty(exports, "formatError", ({ + enumerable: true, + get: function () { + return _GraphQLError.formatError; + }, +})); +Object.defineProperty(exports, "locatedError", ({ + enumerable: true, + get: function () { + return _locatedError.locatedError; + }, +})); +Object.defineProperty(exports, "printError", ({ + enumerable: true, + get: function () { + return _GraphQLError.printError; + }, +})); +Object.defineProperty(exports, "syntaxError", ({ + enumerable: true, + get: function () { + return _syntaxError.syntaxError; + }, +})); + +var _GraphQLError = __nccwpck_require__(1753); + +var _syntaxError = __nccwpck_require__(4141); + +var _locatedError = __nccwpck_require__(2012); + + +/***/ }), + +/***/ 2012: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.locatedError = locatedError; + +var _toError = __nccwpck_require__(1609); + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Given an arbitrary value, presumably thrown while attempting to execute a + * GraphQL operation, produce a new GraphQLError aware of the location in the + * document responsible for the original Error. + */ +function locatedError(rawOriginalError, nodes, path) { + var _nodes; + + const originalError = (0, _toError.toError)(rawOriginalError); // Note: this uses a brand-check to support GraphQL errors originating from other contexts. + + if (isLocatedGraphQLError(originalError)) { + return originalError; + } + + return new _GraphQLError.GraphQLError(originalError.message, { + nodes: + (_nodes = originalError.nodes) !== null && _nodes !== void 0 + ? _nodes + : nodes, + source: originalError.source, + positions: originalError.positions, + path, + originalError, + }); +} + +function isLocatedGraphQLError(error) { + return Array.isArray(error.path); +} + + +/***/ }), + +/***/ 4141: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.syntaxError = syntaxError; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Produces a GraphQLError representing a syntax error, containing useful + * descriptive information about the syntax error's position in the source. + */ +function syntaxError(source, position, description) { + return new _GraphQLError.GraphQLError(`Syntax Error: ${description}`, { + source, + positions: [position], + }); +} + + +/***/ }), + +/***/ 3685: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.collectFields = collectFields; +exports.collectSubfields = collectSubfields; + +var _kinds = __nccwpck_require__(2881); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _typeFromAST = __nccwpck_require__(2136); + +var _values = __nccwpck_require__(8198); + +/** + * Given a selectionSet, collects all of the fields and returns them. + * + * CollectFields requires the "runtime type" of an object. For a field that + * returns an Interface or Union type, the "runtime type" will be the actual + * object type returned by that field. + * + * @internal + */ +function collectFields( + schema, + fragments, + variableValues, + runtimeType, + selectionSet, +) { + const fields = new Map(); + collectFieldsImpl( + schema, + fragments, + variableValues, + runtimeType, + selectionSet, + fields, + new Set(), + ); + return fields; +} +/** + * Given an array of field nodes, collects all of the subfields of the passed + * in fields, and returns them at the end. + * + * CollectSubFields requires the "return type" of an object. For a field that + * returns an Interface or Union type, the "return type" will be the actual + * object type returned by that field. + * + * @internal + */ + +function collectSubfields( + schema, + fragments, + variableValues, + returnType, + fieldNodes, +) { + const subFieldNodes = new Map(); + const visitedFragmentNames = new Set(); + + for (const node of fieldNodes) { + if (node.selectionSet) { + collectFieldsImpl( + schema, + fragments, + variableValues, + returnType, + node.selectionSet, + subFieldNodes, + visitedFragmentNames, + ); + } + } + + return subFieldNodes; +} + +function collectFieldsImpl( + schema, + fragments, + variableValues, + runtimeType, + selectionSet, + fields, + visitedFragmentNames, +) { + for (const selection of selectionSet.selections) { + switch (selection.kind) { + case _kinds.Kind.FIELD: { + if (!shouldIncludeNode(variableValues, selection)) { + continue; + } + + const name = getFieldEntryKey(selection); + const fieldList = fields.get(name); + + if (fieldList !== undefined) { + fieldList.push(selection); + } else { + fields.set(name, [selection]); + } + + break; + } + + case _kinds.Kind.INLINE_FRAGMENT: { + if ( + !shouldIncludeNode(variableValues, selection) || + !doesFragmentConditionMatch(schema, selection, runtimeType) + ) { + continue; + } + + collectFieldsImpl( + schema, + fragments, + variableValues, + runtimeType, + selection.selectionSet, + fields, + visitedFragmentNames, + ); + break; + } + + case _kinds.Kind.FRAGMENT_SPREAD: { + const fragName = selection.name.value; + + if ( + visitedFragmentNames.has(fragName) || + !shouldIncludeNode(variableValues, selection) + ) { + continue; + } + + visitedFragmentNames.add(fragName); + const fragment = fragments[fragName]; + + if ( + !fragment || + !doesFragmentConditionMatch(schema, fragment, runtimeType) + ) { + continue; + } + + collectFieldsImpl( + schema, + fragments, + variableValues, + runtimeType, + fragment.selectionSet, + fields, + visitedFragmentNames, + ); + break; + } + } + } +} +/** + * Determines if a field should be included based on the `@include` and `@skip` + * directives, where `@skip` has higher precedence than `@include`. + */ + +function shouldIncludeNode(variableValues, node) { + const skip = (0, _values.getDirectiveValues)( + _directives.GraphQLSkipDirective, + node, + variableValues, + ); + + if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) { + return false; + } + + const include = (0, _values.getDirectiveValues)( + _directives.GraphQLIncludeDirective, + node, + variableValues, + ); + + if ( + (include === null || include === void 0 ? void 0 : include.if) === false + ) { + return false; + } + + return true; +} +/** + * Determines if a fragment is applicable to the given type. + */ + +function doesFragmentConditionMatch(schema, fragment, type) { + const typeConditionNode = fragment.typeCondition; + + if (!typeConditionNode) { + return true; + } + + const conditionalType = (0, _typeFromAST.typeFromAST)( + schema, + typeConditionNode, + ); + + if (conditionalType === type) { + return true; + } + + if ((0, _definition.isAbstractType)(conditionalType)) { + return schema.isSubType(conditionalType, type); + } + + return false; +} +/** + * Implements the logic to compute the key of a given field's entry + */ + +function getFieldEntryKey(node) { + return node.alias ? node.alias.value : node.name.value; +} + + +/***/ }), + +/***/ 7093: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.assertValidExecutionArguments = assertValidExecutionArguments; +exports.buildExecutionContext = buildExecutionContext; +exports.buildResolveInfo = buildResolveInfo; +exports.defaultTypeResolver = exports.defaultFieldResolver = void 0; +exports.execute = execute; +exports.executeSync = executeSync; +exports.getFieldDef = getFieldDef; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _isIterableObject = __nccwpck_require__(4507); + +var _isObjectLike = __nccwpck_require__(7502); + +var _isPromise = __nccwpck_require__(1273); + +var _memoize = __nccwpck_require__(1243); + +var _Path = __nccwpck_require__(2373); + +var _promiseForObject = __nccwpck_require__(2125); + +var _promiseReduce = __nccwpck_require__(3080); + +var _GraphQLError = __nccwpck_require__(1753); + +var _locatedError = __nccwpck_require__(2012); + +var _ast = __nccwpck_require__(906); + +var _kinds = __nccwpck_require__(2881); + +var _definition = __nccwpck_require__(699); + +var _introspection = __nccwpck_require__(2239); + +var _validate = __nccwpck_require__(3756); + +var _collectFields = __nccwpck_require__(3685); + +var _values = __nccwpck_require__(8198); + +/** + * A memoized collection of relevant subfields with regard to the return + * type. Memoizing ensures the subfields are not repeatedly calculated, which + * saves overhead when resolving lists of values. + */ +const collectSubfields = (0, _memoize.memoize3)( + (exeContext, returnType, fieldNodes) => + (0, _collectFields.collectSubfields)( + exeContext.schema, + exeContext.fragments, + exeContext.variableValues, + returnType, + fieldNodes, + ), +); +/** + * Terminology + * + * "Definitions" are the generic name for top-level statements in the document. + * Examples of this include: + * 1) Operations (such as a query) + * 2) Fragments + * + * "Operations" are a generic name for requests in the document. + * Examples of this include: + * 1) query, + * 2) mutation + * + * "Selections" are the definitions that can appear legally and at + * single level of the query. These include: + * 1) field references e.g `a` + * 2) fragment "spreads" e.g. `...c` + * 3) inline fragment "spreads" e.g. `...on Type { a }` + */ + +/** + * Data that must be available at all points during query execution. + * + * Namely, schema of the type system that is currently executing, + * and the fragments defined in the query document + */ + +/** + * Implements the "Executing requests" section of the GraphQL specification. + * + * Returns either a synchronous ExecutionResult (if all encountered resolvers + * are synchronous), or a Promise of an ExecutionResult that will eventually be + * resolved and never rejected. + * + * If the arguments to this function do not result in a legal execution context, + * a GraphQLError will be thrown immediately explaining the invalid input. + */ +function execute(args) { + // Temporary for v15 to v16 migration. Remove in v17 + arguments.length < 2 || + (0, _devAssert.devAssert)( + false, + 'graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.', + ); + const { schema, document, variableValues, rootValue } = args; // If arguments are missing or incorrect, throw an error. + + assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments, + // a "Response" with only errors is returned. + + const exeContext = buildExecutionContext(args); // Return early errors if execution context failed. + + if (!('schema' in exeContext)) { + return { + errors: exeContext, + }; + } // Return a Promise that will eventually resolve to the data described by + // The "Response" section of the GraphQL specification. + // + // If errors are encountered while executing a GraphQL field, only that + // field and its descendants will be omitted, and sibling fields will still + // be executed. An execution which encounters errors will still result in a + // resolved Promise. + // + // Errors from sub-fields of a NonNull type may propagate to the top level, + // at which point we still log the error and null the parent field, which + // in this case is the entire response. + + try { + const { operation } = exeContext; + const result = executeOperation(exeContext, operation, rootValue); + + if ((0, _isPromise.isPromise)(result)) { + return result.then( + (data) => buildResponse(data, exeContext.errors), + (error) => { + exeContext.errors.push(error); + return buildResponse(null, exeContext.errors); + }, + ); + } + + return buildResponse(result, exeContext.errors); + } catch (error) { + exeContext.errors.push(error); + return buildResponse(null, exeContext.errors); + } +} +/** + * Also implements the "Executing requests" section of the GraphQL specification. + * However, it guarantees to complete synchronously (or throw an error) assuming + * that all field resolvers are also synchronous. + */ + +function executeSync(args) { + const result = execute(args); // Assert that the execution was synchronous. + + if ((0, _isPromise.isPromise)(result)) { + throw new Error('GraphQL execution failed to complete synchronously.'); + } + + return result; +} +/** + * Given a completed execution context and data, build the `{ errors, data }` + * response defined by the "Response" section of the GraphQL specification. + */ + +function buildResponse(data, errors) { + return errors.length === 0 + ? { + data, + } + : { + errors, + data, + }; +} +/** + * Essential assertions before executing to provide developer feedback for + * improper use of the GraphQL library. + * + * @internal + */ + +function assertValidExecutionArguments(schema, document, rawVariableValues) { + document || (0, _devAssert.devAssert)(false, 'Must provide document.'); // If the schema used for execution is invalid, throw an error. + + (0, _validate.assertValidSchema)(schema); // Variables, if provided, must be an object. + + rawVariableValues == null || + (0, _isObjectLike.isObjectLike)(rawVariableValues) || + (0, _devAssert.devAssert)( + false, + 'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.', + ); +} +/** + * Constructs a ExecutionContext object from the arguments passed to + * execute, which we will pass throughout the other execution methods. + * + * Throws a GraphQLError if a valid execution context cannot be created. + * + * @internal + */ + +function buildExecutionContext(args) { + var _definition$name, _operation$variableDe; + + const { + schema, + document, + rootValue, + contextValue, + variableValues: rawVariableValues, + operationName, + fieldResolver, + typeResolver, + subscribeFieldResolver, + } = args; + let operation; + const fragments = Object.create(null); + + for (const definition of document.definitions) { + switch (definition.kind) { + case _kinds.Kind.OPERATION_DEFINITION: + if (operationName == null) { + if (operation !== undefined) { + return [ + new _GraphQLError.GraphQLError( + 'Must provide operation name if query contains multiple operations.', + ), + ]; + } + + operation = definition; + } else if ( + ((_definition$name = definition.name) === null || + _definition$name === void 0 + ? void 0 + : _definition$name.value) === operationName + ) { + operation = definition; + } + + break; + + case _kinds.Kind.FRAGMENT_DEFINITION: + fragments[definition.name.value] = definition; + break; + + default: // ignore non-executable definitions + } + } + + if (!operation) { + if (operationName != null) { + return [ + new _GraphQLError.GraphQLError( + `Unknown operation named "${operationName}".`, + ), + ]; + } + + return [new _GraphQLError.GraphQLError('Must provide an operation.')]; + } // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + + const variableDefinitions = + (_operation$variableDe = operation.variableDefinitions) !== null && + _operation$variableDe !== void 0 + ? _operation$variableDe + : []; + const coercedVariableValues = (0, _values.getVariableValues)( + schema, + variableDefinitions, + rawVariableValues !== null && rawVariableValues !== void 0 + ? rawVariableValues + : {}, + { + maxErrors: 50, + }, + ); + + if (coercedVariableValues.errors) { + return coercedVariableValues.errors; + } + + return { + schema, + fragments, + rootValue, + contextValue, + operation, + variableValues: coercedVariableValues.coerced, + fieldResolver: + fieldResolver !== null && fieldResolver !== void 0 + ? fieldResolver + : defaultFieldResolver, + typeResolver: + typeResolver !== null && typeResolver !== void 0 + ? typeResolver + : defaultTypeResolver, + subscribeFieldResolver: + subscribeFieldResolver !== null && subscribeFieldResolver !== void 0 + ? subscribeFieldResolver + : defaultFieldResolver, + errors: [], + }; +} +/** + * Implements the "Executing operations" section of the spec. + */ + +function executeOperation(exeContext, operation, rootValue) { + const rootType = exeContext.schema.getRootType(operation.operation); + + if (rootType == null) { + throw new _GraphQLError.GraphQLError( + `Schema is not configured to execute ${operation.operation} operation.`, + { + nodes: operation, + }, + ); + } + + const rootFields = (0, _collectFields.collectFields)( + exeContext.schema, + exeContext.fragments, + exeContext.variableValues, + rootType, + operation.selectionSet, + ); + const path = undefined; + + switch (operation.operation) { + case _ast.OperationTypeNode.QUERY: + return executeFields(exeContext, rootType, rootValue, path, rootFields); + + case _ast.OperationTypeNode.MUTATION: + return executeFieldsSerially( + exeContext, + rootType, + rootValue, + path, + rootFields, + ); + + case _ast.OperationTypeNode.SUBSCRIPTION: + // TODO: deprecate `subscribe` and move all logic here + // Temporary solution until we finish merging execute and subscribe together + return executeFields(exeContext, rootType, rootValue, path, rootFields); + } +} +/** + * Implements the "Executing selection sets" section of the spec + * for fields that must be executed serially. + */ + +function executeFieldsSerially( + exeContext, + parentType, + sourceValue, + path, + fields, +) { + return (0, _promiseReduce.promiseReduce)( + fields.entries(), + (results, [responseName, fieldNodes]) => { + const fieldPath = (0, _Path.addPath)(path, responseName, parentType.name); + const result = executeField( + exeContext, + parentType, + sourceValue, + fieldNodes, + fieldPath, + ); + + if (result === undefined) { + return results; + } + + if ((0, _isPromise.isPromise)(result)) { + return result.then((resolvedResult) => { + results[responseName] = resolvedResult; + return results; + }); + } + + results[responseName] = result; + return results; + }, + Object.create(null), + ); +} +/** + * Implements the "Executing selection sets" section of the spec + * for fields that may be executed in parallel. + */ + +function executeFields(exeContext, parentType, sourceValue, path, fields) { + const results = Object.create(null); + let containsPromise = false; + + try { + for (const [responseName, fieldNodes] of fields.entries()) { + const fieldPath = (0, _Path.addPath)(path, responseName, parentType.name); + const result = executeField( + exeContext, + parentType, + sourceValue, + fieldNodes, + fieldPath, + ); + + if (result !== undefined) { + results[responseName] = result; + + if ((0, _isPromise.isPromise)(result)) { + containsPromise = true; + } + } + } + } catch (error) { + if (containsPromise) { + // Ensure that any promises returned by other fields are handled, as they may also reject. + return (0, _promiseForObject.promiseForObject)(results).finally(() => { + throw error; + }); + } + + throw error; + } // If there are no promises, we can just return the object + + if (!containsPromise) { + return results; + } // Otherwise, results is a map from field name to the result of resolving that + // field, which is possibly a promise. Return a promise that will return this + // same map, but with any promises replaced with the values they resolved to. + + return (0, _promiseForObject.promiseForObject)(results); +} +/** + * Implements the "Executing fields" section of the spec + * In particular, this function figures out the value that the field returns by + * calling its resolve function, then calls completeValue to complete promises, + * serialize scalars, or execute the sub-selection-set for objects. + */ + +function executeField(exeContext, parentType, source, fieldNodes, path) { + var _fieldDef$resolve; + + const fieldDef = getFieldDef(exeContext.schema, parentType, fieldNodes[0]); + + if (!fieldDef) { + return; + } + + const returnType = fieldDef.type; + const resolveFn = + (_fieldDef$resolve = fieldDef.resolve) !== null && + _fieldDef$resolve !== void 0 + ? _fieldDef$resolve + : exeContext.fieldResolver; + const info = buildResolveInfo( + exeContext, + fieldDef, + fieldNodes, + parentType, + path, + ); // Get the resolve function, regardless of if its result is normal or abrupt (error). + + try { + // Build a JS object of arguments from the field.arguments AST, using the + // variables scope to fulfill any variable references. + // TODO: find a way to memoize, in case this field is within a List type. + const args = (0, _values.getArgumentValues)( + fieldDef, + fieldNodes[0], + exeContext.variableValues, + ); // The resolve function's optional third argument is a context value that + // is provided to every resolve function within an execution. It is commonly + // used to represent an authenticated user, or request-specific caches. + + const contextValue = exeContext.contextValue; + const result = resolveFn(source, args, contextValue, info); + let completed; + + if ((0, _isPromise.isPromise)(result)) { + completed = result.then((resolved) => + completeValue(exeContext, returnType, fieldNodes, info, path, resolved), + ); + } else { + completed = completeValue( + exeContext, + returnType, + fieldNodes, + info, + path, + result, + ); + } + + if ((0, _isPromise.isPromise)(completed)) { + // Note: we don't rely on a `catch` method, but we do expect "thenable" + // to take a second callback for the error case. + return completed.then(undefined, (rawError) => { + const error = (0, _locatedError.locatedError)( + rawError, + fieldNodes, + (0, _Path.pathToArray)(path), + ); + return handleFieldError(error, returnType, exeContext); + }); + } + + return completed; + } catch (rawError) { + const error = (0, _locatedError.locatedError)( + rawError, + fieldNodes, + (0, _Path.pathToArray)(path), + ); + return handleFieldError(error, returnType, exeContext); + } +} +/** + * @internal + */ + +function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) { + // The resolve function's optional fourth argument is a collection of + // information about the current execution state. + return { + fieldName: fieldDef.name, + fieldNodes, + returnType: fieldDef.type, + parentType, + path, + schema: exeContext.schema, + fragments: exeContext.fragments, + rootValue: exeContext.rootValue, + operation: exeContext.operation, + variableValues: exeContext.variableValues, + }; +} + +function handleFieldError(error, returnType, exeContext) { + // If the field type is non-nullable, then it is resolved without any + // protection from errors, however it still properly locates the error. + if ((0, _definition.isNonNullType)(returnType)) { + throw error; + } // Otherwise, error protection is applied, logging the error and resolving + // a null value for this field if one is encountered. + + exeContext.errors.push(error); + return null; +} +/** + * Implements the instructions for completeValue as defined in the + * "Value Completion" section of the spec. + * + * If the field type is Non-Null, then this recursively completes the value + * for the inner type. It throws a field error if that completion returns null, + * as per the "Nullability" section of the spec. + * + * If the field type is a List, then this recursively completes the value + * for the inner type on each item in the list. + * + * If the field type is a Scalar or Enum, ensures the completed value is a legal + * value of the type by calling the `serialize` method of GraphQL type + * definition. + * + * If the field is an abstract type, determine the runtime type of the value + * and then complete based on that type + * + * Otherwise, the field type expects a sub-selection set, and will complete the + * value by executing all sub-selections. + */ + +function completeValue(exeContext, returnType, fieldNodes, info, path, result) { + // If result is an Error, throw a located error. + if (result instanceof Error) { + throw result; + } // If field type is NonNull, complete for inner type, and throw field error + // if result is null. + + if ((0, _definition.isNonNullType)(returnType)) { + const completed = completeValue( + exeContext, + returnType.ofType, + fieldNodes, + info, + path, + result, + ); + + if (completed === null) { + throw new Error( + `Cannot return null for non-nullable field ${info.parentType.name}.${info.fieldName}.`, + ); + } + + return completed; + } // If result value is null or undefined then return null. + + if (result == null) { + return null; + } // If field type is List, complete each item in the list with the inner type + + if ((0, _definition.isListType)(returnType)) { + return completeListValue( + exeContext, + returnType, + fieldNodes, + info, + path, + result, + ); + } // If field type is a leaf type, Scalar or Enum, serialize to a valid value, + // returning null if serialization is not possible. + + if ((0, _definition.isLeafType)(returnType)) { + return completeLeafValue(returnType, result); + } // If field type is an abstract type, Interface or Union, determine the + // runtime Object type and complete for that type. + + if ((0, _definition.isAbstractType)(returnType)) { + return completeAbstractValue( + exeContext, + returnType, + fieldNodes, + info, + path, + result, + ); + } // If field type is Object, execute and complete all sub-selections. + + if ((0, _definition.isObjectType)(returnType)) { + return completeObjectValue( + exeContext, + returnType, + fieldNodes, + info, + path, + result, + ); + } + /* c8 ignore next 6 */ + // Not reachable, all possible output types have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Cannot complete value of unexpected output type: ' + + (0, _inspect.inspect)(returnType), + ); +} +/** + * Complete a list value by completing each item in the list with the + * inner type + */ + +function completeListValue( + exeContext, + returnType, + fieldNodes, + info, + path, + result, +) { + if (!(0, _isIterableObject.isIterableObject)(result)) { + throw new _GraphQLError.GraphQLError( + `Expected Iterable, but did not find one for field "${info.parentType.name}.${info.fieldName}".`, + ); + } // This is specified as a simple map, however we're optimizing the path + // where the list contains no Promises by avoiding creating another Promise. + + const itemType = returnType.ofType; + let containsPromise = false; + const completedResults = Array.from(result, (item, index) => { + // No need to modify the info object containing the path, + // since from here on it is not ever accessed by resolver functions. + const itemPath = (0, _Path.addPath)(path, index, undefined); + + try { + let completedItem; + + if ((0, _isPromise.isPromise)(item)) { + completedItem = item.then((resolved) => + completeValue( + exeContext, + itemType, + fieldNodes, + info, + itemPath, + resolved, + ), + ); + } else { + completedItem = completeValue( + exeContext, + itemType, + fieldNodes, + info, + itemPath, + item, + ); + } + + if ((0, _isPromise.isPromise)(completedItem)) { + containsPromise = true; // Note: we don't rely on a `catch` method, but we do expect "thenable" + // to take a second callback for the error case. + + return completedItem.then(undefined, (rawError) => { + const error = (0, _locatedError.locatedError)( + rawError, + fieldNodes, + (0, _Path.pathToArray)(itemPath), + ); + return handleFieldError(error, itemType, exeContext); + }); + } + + return completedItem; + } catch (rawError) { + const error = (0, _locatedError.locatedError)( + rawError, + fieldNodes, + (0, _Path.pathToArray)(itemPath), + ); + return handleFieldError(error, itemType, exeContext); + } + }); + return containsPromise ? Promise.all(completedResults) : completedResults; +} +/** + * Complete a Scalar or Enum by serializing to a valid value, returning + * null if serialization is not possible. + */ + +function completeLeafValue(returnType, result) { + const serializedResult = returnType.serialize(result); + + if (serializedResult == null) { + throw new Error( + `Expected \`${(0, _inspect.inspect)(returnType)}.serialize(${(0, + _inspect.inspect)(result)})\` to ` + + `return non-nullable value, returned: ${(0, _inspect.inspect)( + serializedResult, + )}`, + ); + } + + return serializedResult; +} +/** + * Complete a value of an abstract type by determining the runtime object type + * of that value, then complete the value for that type. + */ + +function completeAbstractValue( + exeContext, + returnType, + fieldNodes, + info, + path, + result, +) { + var _returnType$resolveTy; + + const resolveTypeFn = + (_returnType$resolveTy = returnType.resolveType) !== null && + _returnType$resolveTy !== void 0 + ? _returnType$resolveTy + : exeContext.typeResolver; + const contextValue = exeContext.contextValue; + const runtimeType = resolveTypeFn(result, contextValue, info, returnType); + + if ((0, _isPromise.isPromise)(runtimeType)) { + return runtimeType.then((resolvedRuntimeType) => + completeObjectValue( + exeContext, + ensureValidRuntimeType( + resolvedRuntimeType, + exeContext, + returnType, + fieldNodes, + info, + result, + ), + fieldNodes, + info, + path, + result, + ), + ); + } + + return completeObjectValue( + exeContext, + ensureValidRuntimeType( + runtimeType, + exeContext, + returnType, + fieldNodes, + info, + result, + ), + fieldNodes, + info, + path, + result, + ); +} + +function ensureValidRuntimeType( + runtimeTypeName, + exeContext, + returnType, + fieldNodes, + info, + result, +) { + if (runtimeTypeName == null) { + throw new _GraphQLError.GraphQLError( + `Abstract type "${returnType.name}" must resolve to an Object type at runtime for field "${info.parentType.name}.${info.fieldName}". Either the "${returnType.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`, + fieldNodes, + ); + } // releases before 16.0.0 supported returning `GraphQLObjectType` from `resolveType` + // TODO: remove in 17.0.0 release + + if ((0, _definition.isObjectType)(runtimeTypeName)) { + throw new _GraphQLError.GraphQLError( + 'Support for returning GraphQLObjectType from resolveType was removed in graphql-js@16.0.0 please return type name instead.', + ); + } + + if (typeof runtimeTypeName !== 'string') { + throw new _GraphQLError.GraphQLError( + `Abstract type "${returnType.name}" must resolve to an Object type at runtime for field "${info.parentType.name}.${info.fieldName}" with ` + + `value ${(0, _inspect.inspect)(result)}, received "${(0, + _inspect.inspect)(runtimeTypeName)}".`, + ); + } + + const runtimeType = exeContext.schema.getType(runtimeTypeName); + + if (runtimeType == null) { + throw new _GraphQLError.GraphQLError( + `Abstract type "${returnType.name}" was resolved to a type "${runtimeTypeName}" that does not exist inside the schema.`, + { + nodes: fieldNodes, + }, + ); + } + + if (!(0, _definition.isObjectType)(runtimeType)) { + throw new _GraphQLError.GraphQLError( + `Abstract type "${returnType.name}" was resolved to a non-object type "${runtimeTypeName}".`, + { + nodes: fieldNodes, + }, + ); + } + + if (!exeContext.schema.isSubType(returnType, runtimeType)) { + throw new _GraphQLError.GraphQLError( + `Runtime Object type "${runtimeType.name}" is not a possible type for "${returnType.name}".`, + { + nodes: fieldNodes, + }, + ); + } + + return runtimeType; +} +/** + * Complete an Object value by executing all sub-selections. + */ + +function completeObjectValue( + exeContext, + returnType, + fieldNodes, + info, + path, + result, +) { + // Collect sub-fields to execute to complete this value. + const subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes); // If there is an isTypeOf predicate function, call it with the + // current result. If isTypeOf returns false, then raise an error rather + // than continuing execution. + + if (returnType.isTypeOf) { + const isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info); + + if ((0, _isPromise.isPromise)(isTypeOf)) { + return isTypeOf.then((resolvedIsTypeOf) => { + if (!resolvedIsTypeOf) { + throw invalidReturnTypeError(returnType, result, fieldNodes); + } + + return executeFields( + exeContext, + returnType, + result, + path, + subFieldNodes, + ); + }); + } + + if (!isTypeOf) { + throw invalidReturnTypeError(returnType, result, fieldNodes); + } + } + + return executeFields(exeContext, returnType, result, path, subFieldNodes); +} + +function invalidReturnTypeError(returnType, result, fieldNodes) { + return new _GraphQLError.GraphQLError( + `Expected value of type "${returnType.name}" but got: ${(0, + _inspect.inspect)(result)}.`, + { + nodes: fieldNodes, + }, + ); +} +/** + * If a resolveType function is not given, then a default resolve behavior is + * used which attempts two strategies: + * + * First, See if the provided value has a `__typename` field defined, if so, use + * that value as name of the resolved type. + * + * Otherwise, test each possible type for the abstract type by calling + * isTypeOf for the object being coerced, returning the first type that matches. + */ + +const defaultTypeResolver = function (value, contextValue, info, abstractType) { + // First, look for `__typename`. + if ( + (0, _isObjectLike.isObjectLike)(value) && + typeof value.__typename === 'string' + ) { + return value.__typename; + } // Otherwise, test each possible type. + + const possibleTypes = info.schema.getPossibleTypes(abstractType); + const promisedIsTypeOfResults = []; + + for (let i = 0; i < possibleTypes.length; i++) { + const type = possibleTypes[i]; + + if (type.isTypeOf) { + const isTypeOfResult = type.isTypeOf(value, contextValue, info); + + if ((0, _isPromise.isPromise)(isTypeOfResult)) { + promisedIsTypeOfResults[i] = isTypeOfResult; + } else if (isTypeOfResult) { + return type.name; + } + } + } + + if (promisedIsTypeOfResults.length) { + return Promise.all(promisedIsTypeOfResults).then((isTypeOfResults) => { + for (let i = 0; i < isTypeOfResults.length; i++) { + if (isTypeOfResults[i]) { + return possibleTypes[i].name; + } + } + }); + } +}; +/** + * If a resolve function is not given, then a default resolve behavior is used + * which takes the property of the source object of the same name as the field + * and returns it as the result, or if it's a function, returns the result + * of calling that function while passing along args and context value. + */ + +exports.defaultTypeResolver = defaultTypeResolver; + +const defaultFieldResolver = function (source, args, contextValue, info) { + // ensure source is a value for which property access is acceptable. + if ((0, _isObjectLike.isObjectLike)(source) || typeof source === 'function') { + const property = source[info.fieldName]; + + if (typeof property === 'function') { + return source[info.fieldName](args, contextValue, info); + } + + return property; + } +}; +/** + * This method looks up the field on the given type definition. + * It has special casing for the three introspection fields, + * __schema, __type and __typename. __typename is special because + * it can always be queried as a field, even in situations where no + * other fields are allowed, like on a Union. __schema and __type + * could get automatically added to the query type, but that would + * require mutating type definitions, which would cause issues. + * + * @internal + */ + +exports.defaultFieldResolver = defaultFieldResolver; + +function getFieldDef(schema, parentType, fieldNode) { + const fieldName = fieldNode.name.value; + + if ( + fieldName === _introspection.SchemaMetaFieldDef.name && + schema.getQueryType() === parentType + ) { + return _introspection.SchemaMetaFieldDef; + } else if ( + fieldName === _introspection.TypeMetaFieldDef.name && + schema.getQueryType() === parentType + ) { + return _introspection.TypeMetaFieldDef; + } else if (fieldName === _introspection.TypeNameMetaFieldDef.name) { + return _introspection.TypeNameMetaFieldDef; + } + + return parentType.getFields()[fieldName]; +} + + +/***/ }), + +/***/ 502: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +Object.defineProperty(exports, "createSourceEventStream", ({ + enumerable: true, + get: function () { + return _subscribe.createSourceEventStream; + }, +})); +Object.defineProperty(exports, "defaultFieldResolver", ({ + enumerable: true, + get: function () { + return _execute.defaultFieldResolver; + }, +})); +Object.defineProperty(exports, "defaultTypeResolver", ({ + enumerable: true, + get: function () { + return _execute.defaultTypeResolver; + }, +})); +Object.defineProperty(exports, "execute", ({ + enumerable: true, + get: function () { + return _execute.execute; + }, +})); +Object.defineProperty(exports, "executeSync", ({ + enumerable: true, + get: function () { + return _execute.executeSync; + }, +})); +Object.defineProperty(exports, "getArgumentValues", ({ + enumerable: true, + get: function () { + return _values.getArgumentValues; + }, +})); +Object.defineProperty(exports, "getDirectiveValues", ({ + enumerable: true, + get: function () { + return _values.getDirectiveValues; + }, +})); +Object.defineProperty(exports, "getVariableValues", ({ + enumerable: true, + get: function () { + return _values.getVariableValues; + }, +})); +Object.defineProperty(exports, "responsePathAsArray", ({ + enumerable: true, + get: function () { + return _Path.pathToArray; + }, +})); +Object.defineProperty(exports, "subscribe", ({ + enumerable: true, + get: function () { + return _subscribe.subscribe; + }, +})); + +var _Path = __nccwpck_require__(2373); + +var _execute = __nccwpck_require__(7093); + +var _subscribe = __nccwpck_require__(3762); + +var _values = __nccwpck_require__(8198); + + +/***/ }), + +/***/ 2928: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.mapAsyncIterator = mapAsyncIterator; + +/** + * Given an AsyncIterable and a callback function, return an AsyncIterator + * which produces values mapped via calling the callback function. + */ +function mapAsyncIterator(iterable, callback) { + const iterator = iterable[Symbol.asyncIterator](); + + async function mapResult(result) { + if (result.done) { + return result; + } + + try { + return { + value: await callback(result.value), + done: false, + }; + } catch (error) { + /* c8 ignore start */ + // FIXME: add test case + if (typeof iterator.return === 'function') { + try { + await iterator.return(); + } catch (_e) { + /* ignore error */ + } + } + + throw error; + /* c8 ignore stop */ + } + } + + return { + async next() { + return mapResult(await iterator.next()); + }, + + async return() { + // If iterator.return() does not exist, then type R must be undefined. + return typeof iterator.return === 'function' + ? mapResult(await iterator.return()) + : { + value: undefined, + done: true, + }; + }, + + async throw(error) { + if (typeof iterator.throw === 'function') { + return mapResult(await iterator.throw(error)); + } + + throw error; + }, + + [Symbol.asyncIterator]() { + return this; + }, + }; +} + + +/***/ }), + +/***/ 3762: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.createSourceEventStream = createSourceEventStream; +exports.subscribe = subscribe; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _isAsyncIterable = __nccwpck_require__(618); + +var _Path = __nccwpck_require__(2373); + +var _GraphQLError = __nccwpck_require__(1753); + +var _locatedError = __nccwpck_require__(2012); + +var _collectFields = __nccwpck_require__(3685); + +var _execute = __nccwpck_require__(7093); + +var _mapAsyncIterator = __nccwpck_require__(2928); + +var _values = __nccwpck_require__(8198); + +/** + * Implements the "Subscribe" algorithm described in the GraphQL specification. + * + * Returns a Promise which resolves to either an AsyncIterator (if successful) + * or an ExecutionResult (error). The promise will be rejected if the schema or + * other arguments to this function are invalid, or if the resolved event stream + * is not an async iterable. + * + * If the client-provided arguments to this function do not result in a + * compliant subscription, a GraphQL Response (ExecutionResult) with + * descriptive errors and no data will be returned. + * + * If the source stream could not be created due to faulty subscription + * resolver logic or underlying systems, the promise will resolve to a single + * ExecutionResult containing `errors` and no `data`. + * + * If the operation succeeded, the promise resolves to an AsyncIterator, which + * yields a stream of ExecutionResults representing the response stream. + * + * Accepts either an object with named arguments, or individual arguments. + */ +async function subscribe(args) { + // Temporary for v15 to v16 migration. Remove in v17 + arguments.length < 2 || + (0, _devAssert.devAssert)( + false, + 'graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.', + ); + const resultOrStream = await createSourceEventStream(args); + + if (!(0, _isAsyncIterable.isAsyncIterable)(resultOrStream)) { + return resultOrStream; + } // For each payload yielded from a subscription, map it over the normal + // GraphQL `execute` function, with `payload` as the rootValue. + // This implements the "MapSourceToResponseEvent" algorithm described in + // the GraphQL specification. The `execute` function provides the + // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the + // "ExecuteQuery" algorithm, for which `execute` is also used. + + const mapSourceToResponse = (payload) => + (0, _execute.execute)({ ...args, rootValue: payload }); // Map every source value to a ExecutionResult value as described above. + + return (0, _mapAsyncIterator.mapAsyncIterator)( + resultOrStream, + mapSourceToResponse, + ); +} + +function toNormalizedArgs(args) { + const firstArg = args[0]; + + if (firstArg && 'document' in firstArg) { + return firstArg; + } + + return { + schema: firstArg, + // FIXME: when underlying TS bug fixed, see https://github.com/microsoft/TypeScript/issues/31613 + document: args[1], + rootValue: args[2], + contextValue: args[3], + variableValues: args[4], + operationName: args[5], + subscribeFieldResolver: args[6], + }; +} +/** + * Implements the "CreateSourceEventStream" algorithm described in the + * GraphQL specification, resolving the subscription source event stream. + * + * Returns a Promise which resolves to either an AsyncIterable (if successful) + * or an ExecutionResult (error). The promise will be rejected if the schema or + * other arguments to this function are invalid, or if the resolved event stream + * is not an async iterable. + * + * If the client-provided arguments to this function do not result in a + * compliant subscription, a GraphQL Response (ExecutionResult) with + * descriptive errors and no data will be returned. + * + * If the the source stream could not be created due to faulty subscription + * resolver logic or underlying systems, the promise will resolve to a single + * ExecutionResult containing `errors` and no `data`. + * + * If the operation succeeded, the promise resolves to the AsyncIterable for the + * event stream returned by the resolver. + * + * A Source Event Stream represents a sequence of events, each of which triggers + * a GraphQL execution for that event. + * + * This may be useful when hosting the stateful subscription service in a + * different process or machine than the stateless GraphQL execution engine, + * or otherwise separating these two steps. For more on this, see the + * "Supporting Subscriptions at Scale" information in the GraphQL specification. + */ + +async function createSourceEventStream(...rawArgs) { + const args = toNormalizedArgs(rawArgs); + const { schema, document, variableValues } = args; // If arguments are missing or incorrectly typed, this is an internal + // developer mistake which should throw an early error. + + (0, _execute.assertValidExecutionArguments)(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments, + // a "Response" with only errors is returned. + + const exeContext = (0, _execute.buildExecutionContext)(args); // Return early errors if execution context failed. + + if (!('schema' in exeContext)) { + return { + errors: exeContext, + }; + } + + try { + const eventStream = await executeSubscription(exeContext); // Assert field returned an event stream, otherwise yield an error. + + if (!(0, _isAsyncIterable.isAsyncIterable)(eventStream)) { + throw new Error( + 'Subscription field must return Async Iterable. ' + + `Received: ${(0, _inspect.inspect)(eventStream)}.`, + ); + } + + return eventStream; + } catch (error) { + // If it GraphQLError, report it as an ExecutionResult, containing only errors and no data. + // Otherwise treat the error as a system-class error and re-throw it. + if (error instanceof _GraphQLError.GraphQLError) { + return { + errors: [error], + }; + } + + throw error; + } +} + +async function executeSubscription(exeContext) { + const { schema, fragments, operation, variableValues, rootValue } = + exeContext; + const rootType = schema.getSubscriptionType(); + + if (rootType == null) { + throw new _GraphQLError.GraphQLError( + 'Schema is not configured to execute subscription operation.', + { + nodes: operation, + }, + ); + } + + const rootFields = (0, _collectFields.collectFields)( + schema, + fragments, + variableValues, + rootType, + operation.selectionSet, + ); + const [responseName, fieldNodes] = [...rootFields.entries()][0]; + const fieldDef = (0, _execute.getFieldDef)(schema, rootType, fieldNodes[0]); + + if (!fieldDef) { + const fieldName = fieldNodes[0].name.value; + throw new _GraphQLError.GraphQLError( + `The subscription field "${fieldName}" is not defined.`, + { + nodes: fieldNodes, + }, + ); + } + + const path = (0, _Path.addPath)(undefined, responseName, rootType.name); + const info = (0, _execute.buildResolveInfo)( + exeContext, + fieldDef, + fieldNodes, + rootType, + path, + ); + + try { + var _fieldDef$subscribe; + + // Implements the "ResolveFieldEventStream" algorithm from GraphQL specification. + // It differs from "ResolveFieldValue" due to providing a different `resolveFn`. + // Build a JS object of arguments from the field.arguments AST, using the + // variables scope to fulfill any variable references. + const args = (0, _values.getArgumentValues)( + fieldDef, + fieldNodes[0], + variableValues, + ); // The resolve function's optional third argument is a context value that + // is provided to every resolve function within an execution. It is commonly + // used to represent an authenticated user, or request-specific caches. + + const contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an + // AsyncIterable yielding raw payloads. + + const resolveFn = + (_fieldDef$subscribe = fieldDef.subscribe) !== null && + _fieldDef$subscribe !== void 0 + ? _fieldDef$subscribe + : exeContext.subscribeFieldResolver; + const eventStream = await resolveFn(rootValue, args, contextValue, info); + + if (eventStream instanceof Error) { + throw eventStream; + } + + return eventStream; + } catch (error) { + throw (0, _locatedError.locatedError)( + error, + fieldNodes, + (0, _Path.pathToArray)(path), + ); + } +} + + +/***/ }), + +/***/ 8198: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.getArgumentValues = getArgumentValues; +exports.getDirectiveValues = getDirectiveValues; +exports.getVariableValues = getVariableValues; + +var _inspect = __nccwpck_require__(3707); + +var _keyMap = __nccwpck_require__(1529); + +var _printPathArray = __nccwpck_require__(548); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +var _coerceInputValue = __nccwpck_require__(894); + +var _typeFromAST = __nccwpck_require__(2136); + +var _valueFromAST = __nccwpck_require__(21); + +/** + * Prepares an object map of variableValues of the correct type based on the + * provided variable definitions and arbitrary input. If the input cannot be + * parsed to match the variable definitions, a GraphQLError will be thrown. + * + * Note: The returned value is a plain Object with a prototype, since it is + * exposed to user code. Care should be taken to not pull values from the + * Object prototype. + */ +function getVariableValues(schema, varDefNodes, inputs, options) { + const errors = []; + const maxErrors = + options === null || options === void 0 ? void 0 : options.maxErrors; + + try { + const coerced = coerceVariableValues( + schema, + varDefNodes, + inputs, + (error) => { + if (maxErrors != null && errors.length >= maxErrors) { + throw new _GraphQLError.GraphQLError( + 'Too many errors processing variables, error limit reached. Execution aborted.', + ); + } + + errors.push(error); + }, + ); + + if (errors.length === 0) { + return { + coerced, + }; + } + } catch (error) { + errors.push(error); + } + + return { + errors, + }; +} + +function coerceVariableValues(schema, varDefNodes, inputs, onError) { + const coercedValues = {}; + + for (const varDefNode of varDefNodes) { + const varName = varDefNode.variable.name.value; + const varType = (0, _typeFromAST.typeFromAST)(schema, varDefNode.type); + + if (!(0, _definition.isInputType)(varType)) { + // Must use input types for variables. This should be caught during + // validation, however is checked again here for safety. + const varTypeStr = (0, _printer.print)(varDefNode.type); + onError( + new _GraphQLError.GraphQLError( + `Variable "$${varName}" expected value of type "${varTypeStr}" which cannot be used as an input type.`, + { + nodes: varDefNode.type, + }, + ), + ); + continue; + } + + if (!hasOwnProperty(inputs, varName)) { + if (varDefNode.defaultValue) { + coercedValues[varName] = (0, _valueFromAST.valueFromAST)( + varDefNode.defaultValue, + varType, + ); + } else if ((0, _definition.isNonNullType)(varType)) { + const varTypeStr = (0, _inspect.inspect)(varType); + onError( + new _GraphQLError.GraphQLError( + `Variable "$${varName}" of required type "${varTypeStr}" was not provided.`, + { + nodes: varDefNode, + }, + ), + ); + } + + continue; + } + + const value = inputs[varName]; + + if (value === null && (0, _definition.isNonNullType)(varType)) { + const varTypeStr = (0, _inspect.inspect)(varType); + onError( + new _GraphQLError.GraphQLError( + `Variable "$${varName}" of non-null type "${varTypeStr}" must not be null.`, + { + nodes: varDefNode, + }, + ), + ); + continue; + } + + coercedValues[varName] = (0, _coerceInputValue.coerceInputValue)( + value, + varType, + (path, invalidValue, error) => { + let prefix = + `Variable "$${varName}" got invalid value ` + + (0, _inspect.inspect)(invalidValue); + + if (path.length > 0) { + prefix += ` at "${varName}${(0, _printPathArray.printPathArray)( + path, + )}"`; + } + + onError( + new _GraphQLError.GraphQLError(prefix + '; ' + error.message, { + nodes: varDefNode, + originalError: error, + }), + ); + }, + ); + } + + return coercedValues; +} +/** + * Prepares an object map of argument values given a list of argument + * definitions and list of argument AST nodes. + * + * Note: The returned value is a plain Object with a prototype, since it is + * exposed to user code. Care should be taken to not pull values from the + * Object prototype. + */ + +function getArgumentValues(def, node, variableValues) { + var _node$arguments; + + const coercedValues = {}; // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + + const argumentNodes = + (_node$arguments = node.arguments) !== null && _node$arguments !== void 0 + ? _node$arguments + : []; + const argNodeMap = (0, _keyMap.keyMap)( + argumentNodes, + (arg) => arg.name.value, + ); + + for (const argDef of def.args) { + const name = argDef.name; + const argType = argDef.type; + const argumentNode = argNodeMap[name]; + + if (!argumentNode) { + if (argDef.defaultValue !== undefined) { + coercedValues[name] = argDef.defaultValue; + } else if ((0, _definition.isNonNullType)(argType)) { + throw new _GraphQLError.GraphQLError( + `Argument "${name}" of required type "${(0, _inspect.inspect)( + argType, + )}" ` + 'was not provided.', + { + nodes: node, + }, + ); + } + + continue; + } + + const valueNode = argumentNode.value; + let isNull = valueNode.kind === _kinds.Kind.NULL; + + if (valueNode.kind === _kinds.Kind.VARIABLE) { + const variableName = valueNode.name.value; + + if ( + variableValues == null || + !hasOwnProperty(variableValues, variableName) + ) { + if (argDef.defaultValue !== undefined) { + coercedValues[name] = argDef.defaultValue; + } else if ((0, _definition.isNonNullType)(argType)) { + throw new _GraphQLError.GraphQLError( + `Argument "${name}" of required type "${(0, _inspect.inspect)( + argType, + )}" ` + + `was provided the variable "$${variableName}" which was not provided a runtime value.`, + { + nodes: valueNode, + }, + ); + } + + continue; + } + + isNull = variableValues[variableName] == null; + } + + if (isNull && (0, _definition.isNonNullType)(argType)) { + throw new _GraphQLError.GraphQLError( + `Argument "${name}" of non-null type "${(0, _inspect.inspect)( + argType, + )}" ` + 'must not be null.', + { + nodes: valueNode, + }, + ); + } + + const coercedValue = (0, _valueFromAST.valueFromAST)( + valueNode, + argType, + variableValues, + ); + + if (coercedValue === undefined) { + // Note: ValuesOfCorrectTypeRule validation should catch this before + // execution. This is a runtime check to ensure execution does not + // continue with an invalid argument value. + throw new _GraphQLError.GraphQLError( + `Argument "${name}" has invalid value ${(0, _printer.print)( + valueNode, + )}.`, + { + nodes: valueNode, + }, + ); + } + + coercedValues[name] = coercedValue; + } + + return coercedValues; +} +/** + * Prepares an object map of argument values given a directive definition + * and a AST node which may contain directives. Optionally also accepts a map + * of variable values. + * + * If the directive does not exist on the node, returns undefined. + * + * Note: The returned value is a plain Object with a prototype, since it is + * exposed to user code. Care should be taken to not pull values from the + * Object prototype. + */ + +function getDirectiveValues(directiveDef, node, variableValues) { + var _node$directives; + + const directiveNode = + (_node$directives = node.directives) === null || _node$directives === void 0 + ? void 0 + : _node$directives.find( + (directive) => directive.name.value === directiveDef.name, + ); + + if (directiveNode) { + return getArgumentValues(directiveDef, directiveNode, variableValues); + } +} + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + + +/***/ }), + +/***/ 366: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.graphql = graphql; +exports.graphqlSync = graphqlSync; + +var _devAssert = __nccwpck_require__(7437); + +var _isPromise = __nccwpck_require__(1273); + +var _parser = __nccwpck_require__(8443); + +var _validate = __nccwpck_require__(3756); + +var _validate2 = __nccwpck_require__(5105); + +var _execute = __nccwpck_require__(7093); + +function graphql(args) { + // Always return a Promise for a consistent API. + return new Promise((resolve) => resolve(graphqlImpl(args))); +} +/** + * The graphqlSync function also fulfills GraphQL operations by parsing, + * validating, and executing a GraphQL document along side a GraphQL schema. + * However, it guarantees to complete synchronously (or throw an error) assuming + * that all field resolvers are also synchronous. + */ + +function graphqlSync(args) { + const result = graphqlImpl(args); // Assert that the execution was synchronous. + + if ((0, _isPromise.isPromise)(result)) { + throw new Error('GraphQL execution failed to complete synchronously.'); + } + + return result; +} + +function graphqlImpl(args) { + // Temporary for v15 to v16 migration. Remove in v17 + arguments.length < 2 || + (0, _devAssert.devAssert)( + false, + 'graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.', + ); + const { + schema, + source, + rootValue, + contextValue, + variableValues, + operationName, + fieldResolver, + typeResolver, + } = args; // Validate Schema + + const schemaValidationErrors = (0, _validate.validateSchema)(schema); + + if (schemaValidationErrors.length > 0) { + return { + errors: schemaValidationErrors, + }; + } // Parse + + let document; + + try { + document = (0, _parser.parse)(source); + } catch (syntaxError) { + return { + errors: [syntaxError], + }; + } // Validate + + const validationErrors = (0, _validate2.validate)(schema, document); + + if (validationErrors.length > 0) { + return { + errors: validationErrors, + }; + } // Execute + + return (0, _execute.execute)({ + schema, + document, + rootValue, + contextValue, + variableValues, + operationName, + fieldResolver, + typeResolver, + }); +} + + +/***/ }), + +/***/ 9727: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +Object.defineProperty(exports, "BREAK", ({ + enumerable: true, + get: function () { + return _index2.BREAK; + }, +})); +Object.defineProperty(exports, "BreakingChangeType", ({ + enumerable: true, + get: function () { + return _index6.BreakingChangeType; + }, +})); +Object.defineProperty(exports, "DEFAULT_DEPRECATION_REASON", ({ + enumerable: true, + get: function () { + return _index.DEFAULT_DEPRECATION_REASON; + }, +})); +Object.defineProperty(exports, "DangerousChangeType", ({ + enumerable: true, + get: function () { + return _index6.DangerousChangeType; + }, +})); +Object.defineProperty(exports, "DirectiveLocation", ({ + enumerable: true, + get: function () { + return _index2.DirectiveLocation; + }, +})); +Object.defineProperty(exports, "ExecutableDefinitionsRule", ({ + enumerable: true, + get: function () { + return _index4.ExecutableDefinitionsRule; + }, +})); +Object.defineProperty(exports, "FieldsOnCorrectTypeRule", ({ + enumerable: true, + get: function () { + return _index4.FieldsOnCorrectTypeRule; + }, +})); +Object.defineProperty(exports, "FragmentsOnCompositeTypesRule", ({ + enumerable: true, + get: function () { + return _index4.FragmentsOnCompositeTypesRule; + }, +})); +Object.defineProperty(exports, "GRAPHQL_MAX_INT", ({ + enumerable: true, + get: function () { + return _index.GRAPHQL_MAX_INT; + }, +})); +Object.defineProperty(exports, "GRAPHQL_MIN_INT", ({ + enumerable: true, + get: function () { + return _index.GRAPHQL_MIN_INT; + }, +})); +Object.defineProperty(exports, "GraphQLBoolean", ({ + enumerable: true, + get: function () { + return _index.GraphQLBoolean; + }, +})); +Object.defineProperty(exports, "GraphQLDeprecatedDirective", ({ + enumerable: true, + get: function () { + return _index.GraphQLDeprecatedDirective; + }, +})); +Object.defineProperty(exports, "GraphQLDirective", ({ + enumerable: true, + get: function () { + return _index.GraphQLDirective; + }, +})); +Object.defineProperty(exports, "GraphQLEnumType", ({ + enumerable: true, + get: function () { + return _index.GraphQLEnumType; + }, +})); +Object.defineProperty(exports, "GraphQLError", ({ + enumerable: true, + get: function () { + return _index5.GraphQLError; + }, +})); +Object.defineProperty(exports, "GraphQLFloat", ({ + enumerable: true, + get: function () { + return _index.GraphQLFloat; + }, +})); +Object.defineProperty(exports, "GraphQLID", ({ + enumerable: true, + get: function () { + return _index.GraphQLID; + }, +})); +Object.defineProperty(exports, "GraphQLIncludeDirective", ({ + enumerable: true, + get: function () { + return _index.GraphQLIncludeDirective; + }, +})); +Object.defineProperty(exports, "GraphQLInputObjectType", ({ + enumerable: true, + get: function () { + return _index.GraphQLInputObjectType; + }, +})); +Object.defineProperty(exports, "GraphQLInt", ({ + enumerable: true, + get: function () { + return _index.GraphQLInt; + }, +})); +Object.defineProperty(exports, "GraphQLInterfaceType", ({ + enumerable: true, + get: function () { + return _index.GraphQLInterfaceType; + }, +})); +Object.defineProperty(exports, "GraphQLList", ({ + enumerable: true, + get: function () { + return _index.GraphQLList; + }, +})); +Object.defineProperty(exports, "GraphQLNonNull", ({ + enumerable: true, + get: function () { + return _index.GraphQLNonNull; + }, +})); +Object.defineProperty(exports, "GraphQLObjectType", ({ + enumerable: true, + get: function () { + return _index.GraphQLObjectType; + }, +})); +Object.defineProperty(exports, "GraphQLOneOfDirective", ({ + enumerable: true, + get: function () { + return _index.GraphQLOneOfDirective; + }, +})); +Object.defineProperty(exports, "GraphQLScalarType", ({ + enumerable: true, + get: function () { + return _index.GraphQLScalarType; + }, +})); +Object.defineProperty(exports, "GraphQLSchema", ({ + enumerable: true, + get: function () { + return _index.GraphQLSchema; + }, +})); +Object.defineProperty(exports, "GraphQLSkipDirective", ({ + enumerable: true, + get: function () { + return _index.GraphQLSkipDirective; + }, +})); +Object.defineProperty(exports, "GraphQLSpecifiedByDirective", ({ + enumerable: true, + get: function () { + return _index.GraphQLSpecifiedByDirective; + }, +})); +Object.defineProperty(exports, "GraphQLString", ({ + enumerable: true, + get: function () { + return _index.GraphQLString; + }, +})); +Object.defineProperty(exports, "GraphQLUnionType", ({ + enumerable: true, + get: function () { + return _index.GraphQLUnionType; + }, +})); +Object.defineProperty(exports, "Kind", ({ + enumerable: true, + get: function () { + return _index2.Kind; + }, +})); +Object.defineProperty(exports, "KnownArgumentNamesRule", ({ + enumerable: true, + get: function () { + return _index4.KnownArgumentNamesRule; + }, +})); +Object.defineProperty(exports, "KnownDirectivesRule", ({ + enumerable: true, + get: function () { + return _index4.KnownDirectivesRule; + }, +})); +Object.defineProperty(exports, "KnownFragmentNamesRule", ({ + enumerable: true, + get: function () { + return _index4.KnownFragmentNamesRule; + }, +})); +Object.defineProperty(exports, "KnownTypeNamesRule", ({ + enumerable: true, + get: function () { + return _index4.KnownTypeNamesRule; + }, +})); +Object.defineProperty(exports, "Lexer", ({ + enumerable: true, + get: function () { + return _index2.Lexer; + }, +})); +Object.defineProperty(exports, "Location", ({ + enumerable: true, + get: function () { + return _index2.Location; + }, +})); +Object.defineProperty(exports, "LoneAnonymousOperationRule", ({ + enumerable: true, + get: function () { + return _index4.LoneAnonymousOperationRule; + }, +})); +Object.defineProperty(exports, "LoneSchemaDefinitionRule", ({ + enumerable: true, + get: function () { + return _index4.LoneSchemaDefinitionRule; + }, +})); +Object.defineProperty(exports, "MaxIntrospectionDepthRule", ({ + enumerable: true, + get: function () { + return _index4.MaxIntrospectionDepthRule; + }, +})); +Object.defineProperty(exports, "NoDeprecatedCustomRule", ({ + enumerable: true, + get: function () { + return _index4.NoDeprecatedCustomRule; + }, +})); +Object.defineProperty(exports, "NoFragmentCyclesRule", ({ + enumerable: true, + get: function () { + return _index4.NoFragmentCyclesRule; + }, +})); +Object.defineProperty(exports, "NoSchemaIntrospectionCustomRule", ({ + enumerable: true, + get: function () { + return _index4.NoSchemaIntrospectionCustomRule; + }, +})); +Object.defineProperty(exports, "NoUndefinedVariablesRule", ({ + enumerable: true, + get: function () { + return _index4.NoUndefinedVariablesRule; + }, +})); +Object.defineProperty(exports, "NoUnusedFragmentsRule", ({ + enumerable: true, + get: function () { + return _index4.NoUnusedFragmentsRule; + }, +})); +Object.defineProperty(exports, "NoUnusedVariablesRule", ({ + enumerable: true, + get: function () { + return _index4.NoUnusedVariablesRule; + }, +})); +Object.defineProperty(exports, "OperationTypeNode", ({ + enumerable: true, + get: function () { + return _index2.OperationTypeNode; + }, +})); +Object.defineProperty(exports, "OverlappingFieldsCanBeMergedRule", ({ + enumerable: true, + get: function () { + return _index4.OverlappingFieldsCanBeMergedRule; + }, +})); +Object.defineProperty(exports, "PossibleFragmentSpreadsRule", ({ + enumerable: true, + get: function () { + return _index4.PossibleFragmentSpreadsRule; + }, +})); +Object.defineProperty(exports, "PossibleTypeExtensionsRule", ({ + enumerable: true, + get: function () { + return _index4.PossibleTypeExtensionsRule; + }, +})); +Object.defineProperty(exports, "ProvidedRequiredArgumentsRule", ({ + enumerable: true, + get: function () { + return _index4.ProvidedRequiredArgumentsRule; + }, +})); +Object.defineProperty(exports, "ScalarLeafsRule", ({ + enumerable: true, + get: function () { + return _index4.ScalarLeafsRule; + }, +})); +Object.defineProperty(exports, "SchemaMetaFieldDef", ({ + enumerable: true, + get: function () { + return _index.SchemaMetaFieldDef; + }, +})); +Object.defineProperty(exports, "SingleFieldSubscriptionsRule", ({ + enumerable: true, + get: function () { + return _index4.SingleFieldSubscriptionsRule; + }, +})); +Object.defineProperty(exports, "Source", ({ + enumerable: true, + get: function () { + return _index2.Source; + }, +})); +Object.defineProperty(exports, "Token", ({ + enumerable: true, + get: function () { + return _index2.Token; + }, +})); +Object.defineProperty(exports, "TokenKind", ({ + enumerable: true, + get: function () { + return _index2.TokenKind; + }, +})); +Object.defineProperty(exports, "TypeInfo", ({ + enumerable: true, + get: function () { + return _index6.TypeInfo; + }, +})); +Object.defineProperty(exports, "TypeKind", ({ + enumerable: true, + get: function () { + return _index.TypeKind; + }, +})); +Object.defineProperty(exports, "TypeMetaFieldDef", ({ + enumerable: true, + get: function () { + return _index.TypeMetaFieldDef; + }, +})); +Object.defineProperty(exports, "TypeNameMetaFieldDef", ({ + enumerable: true, + get: function () { + return _index.TypeNameMetaFieldDef; + }, +})); +Object.defineProperty(exports, "UniqueArgumentDefinitionNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueArgumentDefinitionNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueArgumentNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueArgumentNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueDirectiveNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueDirectiveNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueDirectivesPerLocationRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueDirectivesPerLocationRule; + }, +})); +Object.defineProperty(exports, "UniqueEnumValueNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueEnumValueNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueFieldDefinitionNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueFieldDefinitionNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueFragmentNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueFragmentNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueInputFieldNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueInputFieldNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueOperationNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueOperationNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueOperationTypesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueOperationTypesRule; + }, +})); +Object.defineProperty(exports, "UniqueTypeNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueTypeNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueVariableNamesRule", ({ + enumerable: true, + get: function () { + return _index4.UniqueVariableNamesRule; + }, +})); +Object.defineProperty(exports, "ValidationContext", ({ + enumerable: true, + get: function () { + return _index4.ValidationContext; + }, +})); +Object.defineProperty(exports, "ValuesOfCorrectTypeRule", ({ + enumerable: true, + get: function () { + return _index4.ValuesOfCorrectTypeRule; + }, +})); +Object.defineProperty(exports, "VariablesAreInputTypesRule", ({ + enumerable: true, + get: function () { + return _index4.VariablesAreInputTypesRule; + }, +})); +Object.defineProperty(exports, "VariablesInAllowedPositionRule", ({ + enumerable: true, + get: function () { + return _index4.VariablesInAllowedPositionRule; + }, +})); +Object.defineProperty(exports, "__Directive", ({ + enumerable: true, + get: function () { + return _index.__Directive; + }, +})); +Object.defineProperty(exports, "__DirectiveLocation", ({ + enumerable: true, + get: function () { + return _index.__DirectiveLocation; + }, +})); +Object.defineProperty(exports, "__EnumValue", ({ + enumerable: true, + get: function () { + return _index.__EnumValue; + }, +})); +Object.defineProperty(exports, "__Field", ({ + enumerable: true, + get: function () { + return _index.__Field; + }, +})); +Object.defineProperty(exports, "__InputValue", ({ + enumerable: true, + get: function () { + return _index.__InputValue; + }, +})); +Object.defineProperty(exports, "__Schema", ({ + enumerable: true, + get: function () { + return _index.__Schema; + }, +})); +Object.defineProperty(exports, "__Type", ({ + enumerable: true, + get: function () { + return _index.__Type; + }, +})); +Object.defineProperty(exports, "__TypeKind", ({ + enumerable: true, + get: function () { + return _index.__TypeKind; + }, +})); +Object.defineProperty(exports, "assertAbstractType", ({ + enumerable: true, + get: function () { + return _index.assertAbstractType; + }, +})); +Object.defineProperty(exports, "assertCompositeType", ({ + enumerable: true, + get: function () { + return _index.assertCompositeType; + }, +})); +Object.defineProperty(exports, "assertDirective", ({ + enumerable: true, + get: function () { + return _index.assertDirective; + }, +})); +Object.defineProperty(exports, "assertEnumType", ({ + enumerable: true, + get: function () { + return _index.assertEnumType; + }, +})); +Object.defineProperty(exports, "assertEnumValueName", ({ + enumerable: true, + get: function () { + return _index.assertEnumValueName; + }, +})); +Object.defineProperty(exports, "assertInputObjectType", ({ + enumerable: true, + get: function () { + return _index.assertInputObjectType; + }, +})); +Object.defineProperty(exports, "assertInputType", ({ + enumerable: true, + get: function () { + return _index.assertInputType; + }, +})); +Object.defineProperty(exports, "assertInterfaceType", ({ + enumerable: true, + get: function () { + return _index.assertInterfaceType; + }, +})); +Object.defineProperty(exports, "assertLeafType", ({ + enumerable: true, + get: function () { + return _index.assertLeafType; + }, +})); +Object.defineProperty(exports, "assertListType", ({ + enumerable: true, + get: function () { + return _index.assertListType; + }, +})); +Object.defineProperty(exports, "assertName", ({ + enumerable: true, + get: function () { + return _index.assertName; + }, +})); +Object.defineProperty(exports, "assertNamedType", ({ + enumerable: true, + get: function () { + return _index.assertNamedType; + }, +})); +Object.defineProperty(exports, "assertNonNullType", ({ + enumerable: true, + get: function () { + return _index.assertNonNullType; + }, +})); +Object.defineProperty(exports, "assertNullableType", ({ + enumerable: true, + get: function () { + return _index.assertNullableType; + }, +})); +Object.defineProperty(exports, "assertObjectType", ({ + enumerable: true, + get: function () { + return _index.assertObjectType; + }, +})); +Object.defineProperty(exports, "assertOutputType", ({ + enumerable: true, + get: function () { + return _index.assertOutputType; + }, +})); +Object.defineProperty(exports, "assertScalarType", ({ + enumerable: true, + get: function () { + return _index.assertScalarType; + }, +})); +Object.defineProperty(exports, "assertSchema", ({ + enumerable: true, + get: function () { + return _index.assertSchema; + }, +})); +Object.defineProperty(exports, "assertType", ({ + enumerable: true, + get: function () { + return _index.assertType; + }, +})); +Object.defineProperty(exports, "assertUnionType", ({ + enumerable: true, + get: function () { + return _index.assertUnionType; + }, +})); +Object.defineProperty(exports, "assertValidName", ({ + enumerable: true, + get: function () { + return _index6.assertValidName; + }, +})); +Object.defineProperty(exports, "assertValidSchema", ({ + enumerable: true, + get: function () { + return _index.assertValidSchema; + }, +})); +Object.defineProperty(exports, "assertWrappingType", ({ + enumerable: true, + get: function () { + return _index.assertWrappingType; + }, +})); +Object.defineProperty(exports, "astFromValue", ({ + enumerable: true, + get: function () { + return _index6.astFromValue; + }, +})); +Object.defineProperty(exports, "buildASTSchema", ({ + enumerable: true, + get: function () { + return _index6.buildASTSchema; + }, +})); +Object.defineProperty(exports, "buildClientSchema", ({ + enumerable: true, + get: function () { + return _index6.buildClientSchema; + }, +})); +Object.defineProperty(exports, "buildSchema", ({ + enumerable: true, + get: function () { + return _index6.buildSchema; + }, +})); +Object.defineProperty(exports, "coerceInputValue", ({ + enumerable: true, + get: function () { + return _index6.coerceInputValue; + }, +})); +Object.defineProperty(exports, "concatAST", ({ + enumerable: true, + get: function () { + return _index6.concatAST; + }, +})); +Object.defineProperty(exports, "createSourceEventStream", ({ + enumerable: true, + get: function () { + return _index3.createSourceEventStream; + }, +})); +Object.defineProperty(exports, "defaultFieldResolver", ({ + enumerable: true, + get: function () { + return _index3.defaultFieldResolver; + }, +})); +Object.defineProperty(exports, "defaultTypeResolver", ({ + enumerable: true, + get: function () { + return _index3.defaultTypeResolver; + }, +})); +Object.defineProperty(exports, "doTypesOverlap", ({ + enumerable: true, + get: function () { + return _index6.doTypesOverlap; + }, +})); +Object.defineProperty(exports, "execute", ({ + enumerable: true, + get: function () { + return _index3.execute; + }, +})); +Object.defineProperty(exports, "executeSync", ({ + enumerable: true, + get: function () { + return _index3.executeSync; + }, +})); +Object.defineProperty(exports, "extendSchema", ({ + enumerable: true, + get: function () { + return _index6.extendSchema; + }, +})); +Object.defineProperty(exports, "findBreakingChanges", ({ + enumerable: true, + get: function () { + return _index6.findBreakingChanges; + }, +})); +Object.defineProperty(exports, "findDangerousChanges", ({ + enumerable: true, + get: function () { + return _index6.findDangerousChanges; + }, +})); +Object.defineProperty(exports, "formatError", ({ + enumerable: true, + get: function () { + return _index5.formatError; + }, +})); +Object.defineProperty(exports, "getArgumentValues", ({ + enumerable: true, + get: function () { + return _index3.getArgumentValues; + }, +})); +Object.defineProperty(exports, "getDirectiveValues", ({ + enumerable: true, + get: function () { + return _index3.getDirectiveValues; + }, +})); +Object.defineProperty(exports, "getEnterLeaveForKind", ({ + enumerable: true, + get: function () { + return _index2.getEnterLeaveForKind; + }, +})); +Object.defineProperty(exports, "getIntrospectionQuery", ({ + enumerable: true, + get: function () { + return _index6.getIntrospectionQuery; + }, +})); +Object.defineProperty(exports, "getLocation", ({ + enumerable: true, + get: function () { + return _index2.getLocation; + }, +})); +Object.defineProperty(exports, "getNamedType", ({ + enumerable: true, + get: function () { + return _index.getNamedType; + }, +})); +Object.defineProperty(exports, "getNullableType", ({ + enumerable: true, + get: function () { + return _index.getNullableType; + }, +})); +Object.defineProperty(exports, "getOperationAST", ({ + enumerable: true, + get: function () { + return _index6.getOperationAST; + }, +})); +Object.defineProperty(exports, "getOperationRootType", ({ + enumerable: true, + get: function () { + return _index6.getOperationRootType; + }, +})); +Object.defineProperty(exports, "getVariableValues", ({ + enumerable: true, + get: function () { + return _index3.getVariableValues; + }, +})); +Object.defineProperty(exports, "getVisitFn", ({ + enumerable: true, + get: function () { + return _index2.getVisitFn; + }, +})); +Object.defineProperty(exports, "graphql", ({ + enumerable: true, + get: function () { + return _graphql.graphql; + }, +})); +Object.defineProperty(exports, "graphqlSync", ({ + enumerable: true, + get: function () { + return _graphql.graphqlSync; + }, +})); +Object.defineProperty(exports, "introspectionFromSchema", ({ + enumerable: true, + get: function () { + return _index6.introspectionFromSchema; + }, +})); +Object.defineProperty(exports, "introspectionTypes", ({ + enumerable: true, + get: function () { + return _index.introspectionTypes; + }, +})); +Object.defineProperty(exports, "isAbstractType", ({ + enumerable: true, + get: function () { + return _index.isAbstractType; + }, +})); +Object.defineProperty(exports, "isCompositeType", ({ + enumerable: true, + get: function () { + return _index.isCompositeType; + }, +})); +Object.defineProperty(exports, "isConstValueNode", ({ + enumerable: true, + get: function () { + return _index2.isConstValueNode; + }, +})); +Object.defineProperty(exports, "isDefinitionNode", ({ + enumerable: true, + get: function () { + return _index2.isDefinitionNode; + }, +})); +Object.defineProperty(exports, "isDirective", ({ + enumerable: true, + get: function () { + return _index.isDirective; + }, +})); +Object.defineProperty(exports, "isEnumType", ({ + enumerable: true, + get: function () { + return _index.isEnumType; + }, +})); +Object.defineProperty(exports, "isEqualType", ({ + enumerable: true, + get: function () { + return _index6.isEqualType; + }, +})); +Object.defineProperty(exports, "isExecutableDefinitionNode", ({ + enumerable: true, + get: function () { + return _index2.isExecutableDefinitionNode; + }, +})); +Object.defineProperty(exports, "isInputObjectType", ({ + enumerable: true, + get: function () { + return _index.isInputObjectType; + }, +})); +Object.defineProperty(exports, "isInputType", ({ + enumerable: true, + get: function () { + return _index.isInputType; + }, +})); +Object.defineProperty(exports, "isInterfaceType", ({ + enumerable: true, + get: function () { + return _index.isInterfaceType; + }, +})); +Object.defineProperty(exports, "isIntrospectionType", ({ + enumerable: true, + get: function () { + return _index.isIntrospectionType; + }, +})); +Object.defineProperty(exports, "isLeafType", ({ + enumerable: true, + get: function () { + return _index.isLeafType; + }, +})); +Object.defineProperty(exports, "isListType", ({ + enumerable: true, + get: function () { + return _index.isListType; + }, +})); +Object.defineProperty(exports, "isNamedType", ({ + enumerable: true, + get: function () { + return _index.isNamedType; + }, +})); +Object.defineProperty(exports, "isNonNullType", ({ + enumerable: true, + get: function () { + return _index.isNonNullType; + }, +})); +Object.defineProperty(exports, "isNullableType", ({ + enumerable: true, + get: function () { + return _index.isNullableType; + }, +})); +Object.defineProperty(exports, "isObjectType", ({ + enumerable: true, + get: function () { + return _index.isObjectType; + }, +})); +Object.defineProperty(exports, "isOutputType", ({ + enumerable: true, + get: function () { + return _index.isOutputType; + }, +})); +Object.defineProperty(exports, "isRequiredArgument", ({ + enumerable: true, + get: function () { + return _index.isRequiredArgument; + }, +})); +Object.defineProperty(exports, "isRequiredInputField", ({ + enumerable: true, + get: function () { + return _index.isRequiredInputField; + }, +})); +Object.defineProperty(exports, "isScalarType", ({ + enumerable: true, + get: function () { + return _index.isScalarType; + }, +})); +Object.defineProperty(exports, "isSchema", ({ + enumerable: true, + get: function () { + return _index.isSchema; + }, +})); +Object.defineProperty(exports, "isSelectionNode", ({ + enumerable: true, + get: function () { + return _index2.isSelectionNode; + }, +})); +Object.defineProperty(exports, "isSpecifiedDirective", ({ + enumerable: true, + get: function () { + return _index.isSpecifiedDirective; + }, +})); +Object.defineProperty(exports, "isSpecifiedScalarType", ({ + enumerable: true, + get: function () { + return _index.isSpecifiedScalarType; + }, +})); +Object.defineProperty(exports, "isType", ({ + enumerable: true, + get: function () { + return _index.isType; + }, +})); +Object.defineProperty(exports, "isTypeDefinitionNode", ({ + enumerable: true, + get: function () { + return _index2.isTypeDefinitionNode; + }, +})); +Object.defineProperty(exports, "isTypeExtensionNode", ({ + enumerable: true, + get: function () { + return _index2.isTypeExtensionNode; + }, +})); +Object.defineProperty(exports, "isTypeNode", ({ + enumerable: true, + get: function () { + return _index2.isTypeNode; + }, +})); +Object.defineProperty(exports, "isTypeSubTypeOf", ({ + enumerable: true, + get: function () { + return _index6.isTypeSubTypeOf; + }, +})); +Object.defineProperty(exports, "isTypeSystemDefinitionNode", ({ + enumerable: true, + get: function () { + return _index2.isTypeSystemDefinitionNode; + }, +})); +Object.defineProperty(exports, "isTypeSystemExtensionNode", ({ + enumerable: true, + get: function () { + return _index2.isTypeSystemExtensionNode; + }, +})); +Object.defineProperty(exports, "isUnionType", ({ + enumerable: true, + get: function () { + return _index.isUnionType; + }, +})); +Object.defineProperty(exports, "isValidNameError", ({ + enumerable: true, + get: function () { + return _index6.isValidNameError; + }, +})); +Object.defineProperty(exports, "isValueNode", ({ + enumerable: true, + get: function () { + return _index2.isValueNode; + }, +})); +Object.defineProperty(exports, "isWrappingType", ({ + enumerable: true, + get: function () { + return _index.isWrappingType; + }, +})); +Object.defineProperty(exports, "lexicographicSortSchema", ({ + enumerable: true, + get: function () { + return _index6.lexicographicSortSchema; + }, +})); +Object.defineProperty(exports, "locatedError", ({ + enumerable: true, + get: function () { + return _index5.locatedError; + }, +})); +Object.defineProperty(exports, "parse", ({ + enumerable: true, + get: function () { + return _index2.parse; + }, +})); +Object.defineProperty(exports, "parseConstValue", ({ + enumerable: true, + get: function () { + return _index2.parseConstValue; + }, +})); +Object.defineProperty(exports, "parseType", ({ + enumerable: true, + get: function () { + return _index2.parseType; + }, +})); +Object.defineProperty(exports, "parseValue", ({ + enumerable: true, + get: function () { + return _index2.parseValue; + }, +})); +Object.defineProperty(exports, "print", ({ + enumerable: true, + get: function () { + return _index2.print; + }, +})); +Object.defineProperty(exports, "printError", ({ + enumerable: true, + get: function () { + return _index5.printError; + }, +})); +Object.defineProperty(exports, "printIntrospectionSchema", ({ + enumerable: true, + get: function () { + return _index6.printIntrospectionSchema; + }, +})); +Object.defineProperty(exports, "printLocation", ({ + enumerable: true, + get: function () { + return _index2.printLocation; + }, +})); +Object.defineProperty(exports, "printSchema", ({ + enumerable: true, + get: function () { + return _index6.printSchema; + }, +})); +Object.defineProperty(exports, "printSourceLocation", ({ + enumerable: true, + get: function () { + return _index2.printSourceLocation; + }, +})); +Object.defineProperty(exports, "printType", ({ + enumerable: true, + get: function () { + return _index6.printType; + }, +})); +Object.defineProperty(exports, "recommendedRules", ({ + enumerable: true, + get: function () { + return _index4.recommendedRules; + }, +})); +Object.defineProperty(exports, "resolveObjMapThunk", ({ + enumerable: true, + get: function () { + return _index.resolveObjMapThunk; + }, +})); +Object.defineProperty(exports, "resolveReadonlyArrayThunk", ({ + enumerable: true, + get: function () { + return _index.resolveReadonlyArrayThunk; + }, +})); +Object.defineProperty(exports, "responsePathAsArray", ({ + enumerable: true, + get: function () { + return _index3.responsePathAsArray; + }, +})); +Object.defineProperty(exports, "separateOperations", ({ + enumerable: true, + get: function () { + return _index6.separateOperations; + }, +})); +Object.defineProperty(exports, "specifiedDirectives", ({ + enumerable: true, + get: function () { + return _index.specifiedDirectives; + }, +})); +Object.defineProperty(exports, "specifiedRules", ({ + enumerable: true, + get: function () { + return _index4.specifiedRules; + }, +})); +Object.defineProperty(exports, "specifiedScalarTypes", ({ + enumerable: true, + get: function () { + return _index.specifiedScalarTypes; + }, +})); +Object.defineProperty(exports, "stripIgnoredCharacters", ({ + enumerable: true, + get: function () { + return _index6.stripIgnoredCharacters; + }, +})); +Object.defineProperty(exports, "subscribe", ({ + enumerable: true, + get: function () { + return _index3.subscribe; + }, +})); +Object.defineProperty(exports, "syntaxError", ({ + enumerable: true, + get: function () { + return _index5.syntaxError; + }, +})); +Object.defineProperty(exports, "typeFromAST", ({ + enumerable: true, + get: function () { + return _index6.typeFromAST; + }, +})); +Object.defineProperty(exports, "validate", ({ + enumerable: true, + get: function () { + return _index4.validate; + }, +})); +Object.defineProperty(exports, "validateSchema", ({ + enumerable: true, + get: function () { + return _index.validateSchema; + }, +})); +Object.defineProperty(exports, "valueFromAST", ({ + enumerable: true, + get: function () { + return _index6.valueFromAST; + }, +})); +Object.defineProperty(exports, "valueFromASTUntyped", ({ + enumerable: true, + get: function () { + return _index6.valueFromASTUntyped; + }, +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _version.version; + }, +})); +Object.defineProperty(exports, "versionInfo", ({ + enumerable: true, + get: function () { + return _version.versionInfo; + }, +})); +Object.defineProperty(exports, "visit", ({ + enumerable: true, + get: function () { + return _index2.visit; + }, +})); +Object.defineProperty(exports, "visitInParallel", ({ + enumerable: true, + get: function () { + return _index2.visitInParallel; + }, +})); +Object.defineProperty(exports, "visitWithTypeInfo", ({ + enumerable: true, + get: function () { + return _index6.visitWithTypeInfo; + }, +})); + +var _version = __nccwpck_require__(831); + +var _graphql = __nccwpck_require__(366); + +var _index = __nccwpck_require__(3788); + +var _index2 = __nccwpck_require__(3506); + +var _index3 = __nccwpck_require__(502); + +var _index4 = __nccwpck_require__(456); + +var _index5 = __nccwpck_require__(774); + +var _index6 = __nccwpck_require__(1000); + + +/***/ }), + +/***/ 2373: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.addPath = addPath; +exports.pathToArray = pathToArray; + +/** + * Given a Path and a key, return a new Path containing the new key. + */ +function addPath(prev, key, typename) { + return { + prev, + key, + typename, + }; +} +/** + * Given a Path, return an Array of the path keys. + */ + +function pathToArray(path) { + const flattened = []; + let curr = path; + + while (curr) { + flattened.push(curr.key); + curr = curr.prev; + } + + return flattened.reverse(); +} + + +/***/ }), + +/***/ 7437: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.devAssert = devAssert; + +function devAssert(condition, message) { + const booleanCondition = Boolean(condition); + + if (!booleanCondition) { + throw new Error(message); + } +} + + +/***/ }), + +/***/ 1627: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.didYouMean = didYouMean; +const MAX_SUGGESTIONS = 5; +/** + * Given [ A, B, C ] return ' Did you mean A, B, or C?'. + */ + +function didYouMean(firstArg, secondArg) { + const [subMessage, suggestionsArg] = secondArg + ? [firstArg, secondArg] + : [undefined, firstArg]; + let message = ' Did you mean '; + + if (subMessage) { + message += subMessage + ' '; + } + + const suggestions = suggestionsArg.map((x) => `"${x}"`); + + switch (suggestions.length) { + case 0: + return ''; + + case 1: + return message + suggestions[0] + '?'; + + case 2: + return message + suggestions[0] + ' or ' + suggestions[1] + '?'; + } + + const selected = suggestions.slice(0, MAX_SUGGESTIONS); + const lastItem = selected.pop(); + return message + selected.join(', ') + ', or ' + lastItem + '?'; +} + + +/***/ }), + +/***/ 8982: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.groupBy = groupBy; + +/** + * Groups array items into a Map, given a function to produce grouping key. + */ +function groupBy(list, keyFn) { + const result = new Map(); + + for (const item of list) { + const key = keyFn(item); + const group = result.get(key); + + if (group === undefined) { + result.set(key, [item]); + } else { + group.push(item); + } + } + + return result; +} + + +/***/ }), + +/***/ 3374: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.identityFunc = identityFunc; + +/** + * Returns the first argument it receives. + */ +function identityFunc(x) { + return x; +} + + +/***/ }), + +/***/ 3707: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.inspect = inspect; +const MAX_ARRAY_LENGTH = 10; +const MAX_RECURSIVE_DEPTH = 2; +/** + * Used to print values in error messages. + */ + +function inspect(value) { + return formatValue(value, []); +} + +function formatValue(value, seenValues) { + switch (typeof value) { + case 'string': + return JSON.stringify(value); + + case 'function': + return value.name ? `[function ${value.name}]` : '[function]'; + + case 'object': + return formatObjectValue(value, seenValues); + + default: + return String(value); + } +} + +function formatObjectValue(value, previouslySeenValues) { + if (value === null) { + return 'null'; + } + + if (previouslySeenValues.includes(value)) { + return '[Circular]'; + } + + const seenValues = [...previouslySeenValues, value]; + + if (isJSONable(value)) { + const jsonValue = value.toJSON(); // check for infinite recursion + + if (jsonValue !== value) { + return typeof jsonValue === 'string' + ? jsonValue + : formatValue(jsonValue, seenValues); + } + } else if (Array.isArray(value)) { + return formatArray(value, seenValues); + } + + return formatObject(value, seenValues); +} + +function isJSONable(value) { + return typeof value.toJSON === 'function'; +} + +function formatObject(object, seenValues) { + const entries = Object.entries(object); + + if (entries.length === 0) { + return '{}'; + } + + if (seenValues.length > MAX_RECURSIVE_DEPTH) { + return '[' + getObjectTag(object) + ']'; + } + + const properties = entries.map( + ([key, value]) => key + ': ' + formatValue(value, seenValues), + ); + return '{ ' + properties.join(', ') + ' }'; +} + +function formatArray(array, seenValues) { + if (array.length === 0) { + return '[]'; + } + + if (seenValues.length > MAX_RECURSIVE_DEPTH) { + return '[Array]'; + } + + const len = Math.min(MAX_ARRAY_LENGTH, array.length); + const remaining = array.length - len; + const items = []; + + for (let i = 0; i < len; ++i) { + items.push(formatValue(array[i], seenValues)); + } + + if (remaining === 1) { + items.push('... 1 more item'); + } else if (remaining > 1) { + items.push(`... ${remaining} more items`); + } + + return '[' + items.join(', ') + ']'; +} + +function getObjectTag(object) { + const tag = Object.prototype.toString + .call(object) + .replace(/^\[object /, '') + .replace(/]$/, ''); + + if (tag === 'Object' && typeof object.constructor === 'function') { + const name = object.constructor.name; + + if (typeof name === 'string' && name !== '') { + return name; + } + } + + return tag; +} + + +/***/ }), + +/***/ 6524: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.instanceOf = void 0; + +var _inspect = __nccwpck_require__(3707); + +/* c8 ignore next 3 */ +const isProduction = + globalThis.process && + process.env.NODE_ENV === 'production'; +/** + * A replacement for instanceof which includes an error warning when multi-realm + * constructors are detected. + * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production + * See: https://webpack.js.org/guides/production/ + */ + +const instanceOf = + /* c8 ignore next 6 */ + // FIXME: https://github.com/graphql/graphql-js/issues/2317 + isProduction + ? function instanceOf(value, constructor) { + return value instanceof constructor; + } + : function instanceOf(value, constructor) { + if (value instanceof constructor) { + return true; + } + + if (typeof value === 'object' && value !== null) { + var _value$constructor; + + // Prefer Symbol.toStringTag since it is immune to minification. + const className = constructor.prototype[Symbol.toStringTag]; + const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library. + Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009 + ? value[Symbol.toStringTag] + : (_value$constructor = value.constructor) === null || + _value$constructor === void 0 + ? void 0 + : _value$constructor.name; + + if (className === valueClassName) { + const stringifiedValue = (0, _inspect.inspect)(value); + throw new Error(`Cannot use ${className} "${stringifiedValue}" from another module or realm. + +Ensure that there is only one instance of "graphql" in the node_modules +directory. If different versions of "graphql" are the dependencies of other +relied on modules, use "resolutions" to ensure only one version is installed. + +https://yarnpkg.com/en/docs/selective-version-resolutions + +Duplicate "graphql" modules cannot be used at the same time since different +versions may have different capabilities and behavior. The data from one +version used in the function from another could produce confusing and +spurious results.`); + } + } + + return false; + }; +exports.instanceOf = instanceOf; + + +/***/ }), + +/***/ 9952: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.invariant = invariant; + +function invariant(condition, message) { + const booleanCondition = Boolean(condition); + + if (!booleanCondition) { + throw new Error( + message != null ? message : 'Unexpected invariant triggered.', + ); + } +} + + +/***/ }), + +/***/ 618: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.isAsyncIterable = isAsyncIterable; + +/** + * Returns true if the provided object implements the AsyncIterator protocol via + * implementing a `Symbol.asyncIterator` method. + */ +function isAsyncIterable(maybeAsyncIterable) { + return ( + typeof (maybeAsyncIterable === null || maybeAsyncIterable === void 0 + ? void 0 + : maybeAsyncIterable[Symbol.asyncIterator]) === 'function' + ); +} + + +/***/ }), + +/***/ 4507: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.isIterableObject = isIterableObject; + +/** + * Returns true if the provided object is an Object (i.e. not a string literal) + * and implements the Iterator protocol. + * + * This may be used in place of [Array.isArray()][isArray] to determine if + * an object should be iterated-over e.g. Array, Map, Set, Int8Array, + * TypedArray, etc. but excludes string literals. + * + * @example + * ```ts + * isIterableObject([ 1, 2, 3 ]) // true + * isIterableObject(new Map()) // true + * isIterableObject('ABC') // false + * isIterableObject({ key: 'value' }) // false + * isIterableObject({ length: 1, 0: 'Alpha' }) // false + * ``` + */ +function isIterableObject(maybeIterable) { + return ( + typeof maybeIterable === 'object' && + typeof (maybeIterable === null || maybeIterable === void 0 + ? void 0 + : maybeIterable[Symbol.iterator]) === 'function' + ); +} + + +/***/ }), + +/***/ 7502: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.isObjectLike = isObjectLike; + +/** + * Return true if `value` is object-like. A value is object-like if it's not + * `null` and has a `typeof` result of "object". + */ +function isObjectLike(value) { + return typeof value == 'object' && value !== null; +} + + +/***/ }), + +/***/ 1273: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.isPromise = isPromise; + +/** + * Returns true if the value acts like a Promise, i.e. has a "then" function, + * otherwise returns false. + */ +function isPromise(value) { + return ( + typeof (value === null || value === void 0 ? void 0 : value.then) === + 'function' + ); +} + + +/***/ }), + +/***/ 1529: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.keyMap = keyMap; + +/** + * Creates a keyed JS object from an array, given a function to produce the keys + * for each value in the array. + * + * This provides a convenient lookup for the array items if the key function + * produces unique results. + * ```ts + * const phoneBook = [ + * { name: 'Jon', num: '555-1234' }, + * { name: 'Jenny', num: '867-5309' } + * ] + * + * const entriesByName = keyMap( + * phoneBook, + * entry => entry.name + * ) + * + * // { + * // Jon: { name: 'Jon', num: '555-1234' }, + * // Jenny: { name: 'Jenny', num: '867-5309' } + * // } + * + * const jennyEntry = entriesByName['Jenny'] + * + * // { name: 'Jenny', num: '857-6309' } + * ``` + */ +function keyMap(list, keyFn) { + const result = Object.create(null); + + for (const item of list) { + result[keyFn(item)] = item; + } + + return result; +} + + +/***/ }), + +/***/ 4876: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.keyValMap = keyValMap; + +/** + * Creates a keyed JS object from an array, given a function to produce the keys + * and a function to produce the values from each item in the array. + * ```ts + * const phoneBook = [ + * { name: 'Jon', num: '555-1234' }, + * { name: 'Jenny', num: '867-5309' } + * ] + * + * // { Jon: '555-1234', Jenny: '867-5309' } + * const phonesByName = keyValMap( + * phoneBook, + * entry => entry.name, + * entry => entry.num + * ) + * ``` + */ +function keyValMap(list, keyFn, valFn) { + const result = Object.create(null); + + for (const item of list) { + result[keyFn(item)] = valFn(item); + } + + return result; +} + + +/***/ }), + +/***/ 9261: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.mapValue = mapValue; + +/** + * Creates an object map with the same keys as `map` and values generated by + * running each value of `map` thru `fn`. + */ +function mapValue(map, fn) { + const result = Object.create(null); + + for (const key of Object.keys(map)) { + result[key] = fn(map[key], key); + } + + return result; +} + + +/***/ }), + +/***/ 1243: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.memoize3 = memoize3; + +/** + * Memoizes the provided three-argument function. + */ +function memoize3(fn) { + let cache0; + return function memoized(a1, a2, a3) { + if (cache0 === undefined) { + cache0 = new WeakMap(); + } + + let cache1 = cache0.get(a1); + + if (cache1 === undefined) { + cache1 = new WeakMap(); + cache0.set(a1, cache1); + } + + let cache2 = cache1.get(a2); + + if (cache2 === undefined) { + cache2 = new WeakMap(); + cache1.set(a2, cache2); + } + + let fnResult = cache2.get(a3); + + if (fnResult === undefined) { + fnResult = fn(a1, a2, a3); + cache2.set(a3, fnResult); + } + + return fnResult; + }; +} + + +/***/ }), + +/***/ 4834: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.naturalCompare = naturalCompare; + +/** + * Returns a number indicating whether a reference string comes before, or after, + * or is the same as the given string in natural sort order. + * + * See: https://en.wikipedia.org/wiki/Natural_sort_order + * + */ +function naturalCompare(aStr, bStr) { + let aIndex = 0; + let bIndex = 0; + + while (aIndex < aStr.length && bIndex < bStr.length) { + let aChar = aStr.charCodeAt(aIndex); + let bChar = bStr.charCodeAt(bIndex); + + if (isDigit(aChar) && isDigit(bChar)) { + let aNum = 0; + + do { + ++aIndex; + aNum = aNum * 10 + aChar - DIGIT_0; + aChar = aStr.charCodeAt(aIndex); + } while (isDigit(aChar) && aNum > 0); + + let bNum = 0; + + do { + ++bIndex; + bNum = bNum * 10 + bChar - DIGIT_0; + bChar = bStr.charCodeAt(bIndex); + } while (isDigit(bChar) && bNum > 0); + + if (aNum < bNum) { + return -1; + } + + if (aNum > bNum) { + return 1; + } + } else { + if (aChar < bChar) { + return -1; + } + + if (aChar > bChar) { + return 1; + } + + ++aIndex; + ++bIndex; + } + } + + return aStr.length - bStr.length; +} + +const DIGIT_0 = 48; +const DIGIT_9 = 57; + +function isDigit(code) { + return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9; +} + + +/***/ }), + +/***/ 548: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.printPathArray = printPathArray; + +/** + * Build a string describing the path. + */ +function printPathArray(path) { + return path + .map((key) => + typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key, + ) + .join(''); +} + + +/***/ }), + +/***/ 2125: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.promiseForObject = promiseForObject; + +/** + * This function transforms a JS object `ObjMap>` into + * a `Promise>` + * + * This is akin to bluebird's `Promise.props`, but implemented only using + * `Promise.all` so it will work with any implementation of ES6 promises. + */ +function promiseForObject(object) { + return Promise.all(Object.values(object)).then((resolvedValues) => { + const resolvedObject = Object.create(null); + + for (const [i, key] of Object.keys(object).entries()) { + resolvedObject[key] = resolvedValues[i]; + } + + return resolvedObject; + }); +} + + +/***/ }), + +/***/ 3080: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.promiseReduce = promiseReduce; + +var _isPromise = __nccwpck_require__(1273); + +/** + * Similar to Array.prototype.reduce(), however the reducing callback may return + * a Promise, in which case reduction will continue after each promise resolves. + * + * If the callback does not return a Promise, then this function will also not + * return a Promise. + */ +function promiseReduce(values, callbackFn, initialValue) { + let accumulator = initialValue; + + for (const value of values) { + accumulator = (0, _isPromise.isPromise)(accumulator) + ? accumulator.then((resolved) => callbackFn(resolved, value)) + : callbackFn(accumulator, value); + } + + return accumulator; +} + + +/***/ }), + +/***/ 3046: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.suggestionList = suggestionList; + +var _naturalCompare = __nccwpck_require__(4834); + +/** + * Given an invalid input string and a list of valid options, returns a filtered + * list of valid options sorted based on their similarity with the input. + */ +function suggestionList(input, options) { + const optionsByDistance = Object.create(null); + const lexicalDistance = new LexicalDistance(input); + const threshold = Math.floor(input.length * 0.4) + 1; + + for (const option of options) { + const distance = lexicalDistance.measure(option, threshold); + + if (distance !== undefined) { + optionsByDistance[option] = distance; + } + } + + return Object.keys(optionsByDistance).sort((a, b) => { + const distanceDiff = optionsByDistance[a] - optionsByDistance[b]; + return distanceDiff !== 0 + ? distanceDiff + : (0, _naturalCompare.naturalCompare)(a, b); + }); +} +/** + * Computes the lexical distance between strings A and B. + * + * The "distance" between two strings is given by counting the minimum number + * of edits needed to transform string A into string B. An edit can be an + * insertion, deletion, or substitution of a single character, or a swap of two + * adjacent characters. + * + * Includes a custom alteration from Damerau-Levenshtein to treat case changes + * as a single edit which helps identify mis-cased values with an edit distance + * of 1. + * + * This distance can be useful for detecting typos in input or sorting + */ + +class LexicalDistance { + constructor(input) { + this._input = input; + this._inputLowerCase = input.toLowerCase(); + this._inputArray = stringToArray(this._inputLowerCase); + this._rows = [ + new Array(input.length + 1).fill(0), + new Array(input.length + 1).fill(0), + new Array(input.length + 1).fill(0), + ]; + } + + measure(option, threshold) { + if (this._input === option) { + return 0; + } + + const optionLowerCase = option.toLowerCase(); // Any case change counts as a single edit + + if (this._inputLowerCase === optionLowerCase) { + return 1; + } + + let a = stringToArray(optionLowerCase); + let b = this._inputArray; + + if (a.length < b.length) { + const tmp = a; + a = b; + b = tmp; + } + + const aLength = a.length; + const bLength = b.length; + + if (aLength - bLength > threshold) { + return undefined; + } + + const rows = this._rows; + + for (let j = 0; j <= bLength; j++) { + rows[0][j] = j; + } + + for (let i = 1; i <= aLength; i++) { + const upRow = rows[(i - 1) % 3]; + const currentRow = rows[i % 3]; + let smallestCell = (currentRow[0] = i); + + for (let j = 1; j <= bLength; j++) { + const cost = a[i - 1] === b[j - 1] ? 0 : 1; + let currentCell = Math.min( + upRow[j] + 1, // delete + currentRow[j - 1] + 1, // insert + upRow[j - 1] + cost, // substitute + ); + + if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) { + // transposition + const doubleDiagonalCell = rows[(i - 2) % 3][j - 2]; + currentCell = Math.min(currentCell, doubleDiagonalCell + 1); + } + + if (currentCell < smallestCell) { + smallestCell = currentCell; + } + + currentRow[j] = currentCell; + } // Early exit, since distance can't go smaller than smallest element of the previous row. + + if (smallestCell > threshold) { + return undefined; + } + } + + const distance = rows[aLength % 3][bLength]; + return distance <= threshold ? distance : undefined; + } +} + +function stringToArray(str) { + const strLength = str.length; + const array = new Array(strLength); + + for (let i = 0; i < strLength; ++i) { + array[i] = str.charCodeAt(i); + } + + return array; +} + + +/***/ }), + +/***/ 1609: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.toError = toError; + +var _inspect = __nccwpck_require__(3707); + +/** + * Sometimes a non-error is thrown, wrap it as an Error instance to ensure a consistent Error interface. + */ +function toError(thrownValue) { + return thrownValue instanceof Error + ? thrownValue + : new NonErrorThrown(thrownValue); +} + +class NonErrorThrown extends Error { + constructor(thrownValue) { + super('Unexpected error value: ' + (0, _inspect.inspect)(thrownValue)); + this.name = 'NonErrorThrown'; + this.thrownValue = thrownValue; + } +} + + +/***/ }), + +/***/ 1594: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.toObjMap = toObjMap; + +function toObjMap(obj) { + if (obj == null) { + return Object.create(null); + } + + if (Object.getPrototypeOf(obj) === null) { + return obj; + } + + const map = Object.create(null); + + for (const [key, value] of Object.entries(obj)) { + map[key] = value; + } + + return map; +} + + +/***/ }), + +/***/ 906: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.Token = + exports.QueryDocumentKeys = + exports.OperationTypeNode = + exports.Location = + void 0; +exports.isNode = isNode; + +/** + * Contains a range of UTF-8 character offsets and token references that + * identify the region of the source from which the AST derived. + */ +class Location { + /** + * The character offset at which this Node begins. + */ + + /** + * The character offset at which this Node ends. + */ + + /** + * The Token at which this Node begins. + */ + + /** + * The Token at which this Node ends. + */ + + /** + * The Source document the AST represents. + */ + constructor(startToken, endToken, source) { + this.start = startToken.start; + this.end = endToken.end; + this.startToken = startToken; + this.endToken = endToken; + this.source = source; + } + + get [Symbol.toStringTag]() { + return 'Location'; + } + + toJSON() { + return { + start: this.start, + end: this.end, + }; + } +} +/** + * Represents a range of characters represented by a lexical token + * within a Source. + */ + +exports.Location = Location; + +class Token { + /** + * The kind of Token. + */ + + /** + * The character offset at which this Node begins. + */ + + /** + * The character offset at which this Node ends. + */ + + /** + * The 1-indexed line number on which this Token appears. + */ + + /** + * The 1-indexed column number at which this Token begins. + */ + + /** + * For non-punctuation tokens, represents the interpreted value of the token. + * + * Note: is undefined for punctuation tokens, but typed as string for + * convenience in the parser. + */ + + /** + * Tokens exist as nodes in a double-linked-list amongst all tokens + * including ignored tokens. is always the first node and + * the last. + */ + constructor(kind, start, end, line, column, value) { + this.kind = kind; + this.start = start; + this.end = end; + this.line = line; + this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + + this.value = value; + this.prev = null; + this.next = null; + } + + get [Symbol.toStringTag]() { + return 'Token'; + } + + toJSON() { + return { + kind: this.kind, + value: this.value, + line: this.line, + column: this.column, + }; + } +} +/** + * The list of all possible AST node types. + */ + +exports.Token = Token; + +/** + * @internal + */ +const QueryDocumentKeys = { + Name: [], + Document: ['definitions'], + OperationDefinition: [ + 'name', + 'variableDefinitions', + 'directives', + 'selectionSet', + ], + VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'], + Variable: ['name'], + SelectionSet: ['selections'], + Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'], + Argument: ['name', 'value'], + FragmentSpread: ['name', 'directives'], + InlineFragment: ['typeCondition', 'directives', 'selectionSet'], + FragmentDefinition: [ + 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0 + 'variableDefinitions', + 'typeCondition', + 'directives', + 'selectionSet', + ], + IntValue: [], + FloatValue: [], + StringValue: [], + BooleanValue: [], + NullValue: [], + EnumValue: [], + ListValue: ['values'], + ObjectValue: ['fields'], + ObjectField: ['name', 'value'], + Directive: ['name', 'arguments'], + NamedType: ['name'], + ListType: ['type'], + NonNullType: ['type'], + SchemaDefinition: ['description', 'directives', 'operationTypes'], + OperationTypeDefinition: ['type'], + ScalarTypeDefinition: ['description', 'name', 'directives'], + ObjectTypeDefinition: [ + 'description', + 'name', + 'interfaces', + 'directives', + 'fields', + ], + FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'], + InputValueDefinition: [ + 'description', + 'name', + 'type', + 'defaultValue', + 'directives', + ], + InterfaceTypeDefinition: [ + 'description', + 'name', + 'interfaces', + 'directives', + 'fields', + ], + UnionTypeDefinition: ['description', 'name', 'directives', 'types'], + EnumTypeDefinition: ['description', 'name', 'directives', 'values'], + EnumValueDefinition: ['description', 'name', 'directives'], + InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'], + DirectiveDefinition: ['description', 'name', 'arguments', 'locations'], + SchemaExtension: ['directives', 'operationTypes'], + ScalarTypeExtension: ['name', 'directives'], + ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'], + InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'], + UnionTypeExtension: ['name', 'directives', 'types'], + EnumTypeExtension: ['name', 'directives', 'values'], + InputObjectTypeExtension: ['name', 'directives', 'fields'], +}; +exports.QueryDocumentKeys = QueryDocumentKeys; +const kindValues = new Set(Object.keys(QueryDocumentKeys)); +/** + * @internal + */ + +function isNode(maybeNode) { + const maybeKind = + maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind; + return typeof maybeKind === 'string' && kindValues.has(maybeKind); +} +/** Name */ + +var OperationTypeNode; +exports.OperationTypeNode = OperationTypeNode; + +(function (OperationTypeNode) { + OperationTypeNode['QUERY'] = 'query'; + OperationTypeNode['MUTATION'] = 'mutation'; + OperationTypeNode['SUBSCRIPTION'] = 'subscription'; +})(OperationTypeNode || (exports.OperationTypeNode = OperationTypeNode = {})); + + +/***/ }), + +/***/ 510: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.dedentBlockStringLines = dedentBlockStringLines; +exports.isPrintableAsBlockString = isPrintableAsBlockString; +exports.printBlockString = printBlockString; + +var _characterClasses = __nccwpck_require__(4709); + +/** + * Produces the value of a block string from its parsed raw value, similar to + * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc. + * + * This implements the GraphQL spec's BlockStringValue() static algorithm. + * + * @internal + */ +function dedentBlockStringLines(lines) { + var _firstNonEmptyLine2; + + let commonIndent = Number.MAX_SAFE_INTEGER; + let firstNonEmptyLine = null; + let lastNonEmptyLine = -1; + + for (let i = 0; i < lines.length; ++i) { + var _firstNonEmptyLine; + + const line = lines[i]; + const indent = leadingWhitespace(line); + + if (indent === line.length) { + continue; // skip empty lines + } + + firstNonEmptyLine = + (_firstNonEmptyLine = firstNonEmptyLine) !== null && + _firstNonEmptyLine !== void 0 + ? _firstNonEmptyLine + : i; + lastNonEmptyLine = i; + + if (i !== 0 && indent < commonIndent) { + commonIndent = indent; + } + } + + return lines // Remove common indentation from all lines but first. + .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines. + .slice( + (_firstNonEmptyLine2 = firstNonEmptyLine) !== null && + _firstNonEmptyLine2 !== void 0 + ? _firstNonEmptyLine2 + : 0, + lastNonEmptyLine + 1, + ); +} + +function leadingWhitespace(str) { + let i = 0; + + while ( + i < str.length && + (0, _characterClasses.isWhiteSpace)(str.charCodeAt(i)) + ) { + ++i; + } + + return i; +} +/** + * @internal + */ + +function isPrintableAsBlockString(value) { + if (value === '') { + return true; // empty string is printable + } + + let isEmptyLine = true; + let hasIndent = false; + let hasCommonIndent = true; + let seenNonEmptyLine = false; + + for (let i = 0; i < value.length; ++i) { + switch (value.codePointAt(i)) { + case 0x0000: + case 0x0001: + case 0x0002: + case 0x0003: + case 0x0004: + case 0x0005: + case 0x0006: + case 0x0007: + case 0x0008: + case 0x000b: + case 0x000c: + case 0x000e: + case 0x000f: + return false; + // Has non-printable characters + + case 0x000d: + // \r + return false; + // Has \r or \r\n which will be replaced as \n + + case 10: + // \n + if (isEmptyLine && !seenNonEmptyLine) { + return false; // Has leading new line + } + + seenNonEmptyLine = true; + isEmptyLine = true; + hasIndent = false; + break; + + case 9: // \t + + case 32: + // + hasIndent || (hasIndent = isEmptyLine); + break; + + default: + hasCommonIndent && (hasCommonIndent = hasIndent); + isEmptyLine = false; + } + } + + if (isEmptyLine) { + return false; // Has trailing empty lines + } + + if (hasCommonIndent && seenNonEmptyLine) { + return false; // Has internal indent + } + + return true; +} +/** + * Print a block string in the indented block form by adding a leading and + * trailing blank line. However, if a block string starts with whitespace and is + * a single-line, adding a leading blank line would strip that whitespace. + * + * @internal + */ + +function printBlockString(value, options) { + const escapedValue = value.replace(/"""/g, '\\"""'); // Expand a block string's raw value into independent lines. + + const lines = escapedValue.split(/\r\n|[\n\r]/g); + const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line + + const forceLeadingNewLine = + lines.length > 1 && + lines + .slice(1) + .every( + (line) => + line.length === 0 || + (0, _characterClasses.isWhiteSpace)(line.charCodeAt(0)), + ); // Trailing triple quotes just looks confusing but doesn't force trailing new line + + const hasTrailingTripleQuotes = escapedValue.endsWith('\\"""'); // Trailing quote (single or double) or slash forces trailing new line + + const hasTrailingQuote = value.endsWith('"') && !hasTrailingTripleQuotes; + const hasTrailingSlash = value.endsWith('\\'); + const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash; + const printAsMultipleLines = + !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability + (!isSingleLine || + value.length > 70 || + forceTrailingNewline || + forceLeadingNewLine || + hasTrailingTripleQuotes); + let result = ''; // Format a multi-line block quote to account for leading space. + + const skipLeadingNewLine = + isSingleLine && (0, _characterClasses.isWhiteSpace)(value.charCodeAt(0)); + + if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) { + result += '\n'; + } + + result += escapedValue; + + if (printAsMultipleLines || forceTrailingNewline) { + result += '\n'; + } + + return '"""' + result + '"""'; +} + + +/***/ }), + +/***/ 4709: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.isDigit = isDigit; +exports.isLetter = isLetter; +exports.isNameContinue = isNameContinue; +exports.isNameStart = isNameStart; +exports.isWhiteSpace = isWhiteSpace; + +/** + * ``` + * WhiteSpace :: + * - "Horizontal Tab (U+0009)" + * - "Space (U+0020)" + * ``` + * @internal + */ +function isWhiteSpace(code) { + return code === 0x0009 || code === 0x0020; +} +/** + * ``` + * Digit :: one of + * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9` + * ``` + * @internal + */ + +function isDigit(code) { + return code >= 0x0030 && code <= 0x0039; +} +/** + * ``` + * Letter :: one of + * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M` + * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z` + * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m` + * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z` + * ``` + * @internal + */ + +function isLetter(code) { + return ( + (code >= 0x0061 && code <= 0x007a) || // A-Z + (code >= 0x0041 && code <= 0x005a) // a-z + ); +} +/** + * ``` + * NameStart :: + * - Letter + * - `_` + * ``` + * @internal + */ + +function isNameStart(code) { + return isLetter(code) || code === 0x005f; +} +/** + * ``` + * NameContinue :: + * - Letter + * - Digit + * - `_` + * ``` + * @internal + */ + +function isNameContinue(code) { + return isLetter(code) || isDigit(code) || code === 0x005f; +} + + +/***/ }), + +/***/ 3180: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.DirectiveLocation = void 0; + +/** + * The set of allowed directive location values. + */ +var DirectiveLocation; +exports.DirectiveLocation = DirectiveLocation; + +(function (DirectiveLocation) { + DirectiveLocation['QUERY'] = 'QUERY'; + DirectiveLocation['MUTATION'] = 'MUTATION'; + DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION'; + DirectiveLocation['FIELD'] = 'FIELD'; + DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION'; + DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD'; + DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT'; + DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION'; + DirectiveLocation['SCHEMA'] = 'SCHEMA'; + DirectiveLocation['SCALAR'] = 'SCALAR'; + DirectiveLocation['OBJECT'] = 'OBJECT'; + DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION'; + DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION'; + DirectiveLocation['INTERFACE'] = 'INTERFACE'; + DirectiveLocation['UNION'] = 'UNION'; + DirectiveLocation['ENUM'] = 'ENUM'; + DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE'; + DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT'; + DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION'; +})(DirectiveLocation || (exports.DirectiveLocation = DirectiveLocation = {})); +/** + * The enum type representing the directive location values. + * + * @deprecated Please use `DirectiveLocation`. Will be remove in v17. + */ + + +/***/ }), + +/***/ 3506: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +Object.defineProperty(exports, "BREAK", ({ + enumerable: true, + get: function () { + return _visitor.BREAK; + }, +})); +Object.defineProperty(exports, "DirectiveLocation", ({ + enumerable: true, + get: function () { + return _directiveLocation.DirectiveLocation; + }, +})); +Object.defineProperty(exports, "Kind", ({ + enumerable: true, + get: function () { + return _kinds.Kind; + }, +})); +Object.defineProperty(exports, "Lexer", ({ + enumerable: true, + get: function () { + return _lexer.Lexer; + }, +})); +Object.defineProperty(exports, "Location", ({ + enumerable: true, + get: function () { + return _ast.Location; + }, +})); +Object.defineProperty(exports, "OperationTypeNode", ({ + enumerable: true, + get: function () { + return _ast.OperationTypeNode; + }, +})); +Object.defineProperty(exports, "Source", ({ + enumerable: true, + get: function () { + return _source.Source; + }, +})); +Object.defineProperty(exports, "Token", ({ + enumerable: true, + get: function () { + return _ast.Token; + }, +})); +Object.defineProperty(exports, "TokenKind", ({ + enumerable: true, + get: function () { + return _tokenKind.TokenKind; + }, +})); +Object.defineProperty(exports, "getEnterLeaveForKind", ({ + enumerable: true, + get: function () { + return _visitor.getEnterLeaveForKind; + }, +})); +Object.defineProperty(exports, "getLocation", ({ + enumerable: true, + get: function () { + return _location.getLocation; + }, +})); +Object.defineProperty(exports, "getVisitFn", ({ + enumerable: true, + get: function () { + return _visitor.getVisitFn; + }, +})); +Object.defineProperty(exports, "isConstValueNode", ({ + enumerable: true, + get: function () { + return _predicates.isConstValueNode; + }, +})); +Object.defineProperty(exports, "isDefinitionNode", ({ + enumerable: true, + get: function () { + return _predicates.isDefinitionNode; + }, +})); +Object.defineProperty(exports, "isExecutableDefinitionNode", ({ + enumerable: true, + get: function () { + return _predicates.isExecutableDefinitionNode; + }, +})); +Object.defineProperty(exports, "isSelectionNode", ({ + enumerable: true, + get: function () { + return _predicates.isSelectionNode; + }, +})); +Object.defineProperty(exports, "isTypeDefinitionNode", ({ + enumerable: true, + get: function () { + return _predicates.isTypeDefinitionNode; + }, +})); +Object.defineProperty(exports, "isTypeExtensionNode", ({ + enumerable: true, + get: function () { + return _predicates.isTypeExtensionNode; + }, +})); +Object.defineProperty(exports, "isTypeNode", ({ + enumerable: true, + get: function () { + return _predicates.isTypeNode; + }, +})); +Object.defineProperty(exports, "isTypeSystemDefinitionNode", ({ + enumerable: true, + get: function () { + return _predicates.isTypeSystemDefinitionNode; + }, +})); +Object.defineProperty(exports, "isTypeSystemExtensionNode", ({ + enumerable: true, + get: function () { + return _predicates.isTypeSystemExtensionNode; + }, +})); +Object.defineProperty(exports, "isValueNode", ({ + enumerable: true, + get: function () { + return _predicates.isValueNode; + }, +})); +Object.defineProperty(exports, "parse", ({ + enumerable: true, + get: function () { + return _parser.parse; + }, +})); +Object.defineProperty(exports, "parseConstValue", ({ + enumerable: true, + get: function () { + return _parser.parseConstValue; + }, +})); +Object.defineProperty(exports, "parseType", ({ + enumerable: true, + get: function () { + return _parser.parseType; + }, +})); +Object.defineProperty(exports, "parseValue", ({ + enumerable: true, + get: function () { + return _parser.parseValue; + }, +})); +Object.defineProperty(exports, "print", ({ + enumerable: true, + get: function () { + return _printer.print; + }, +})); +Object.defineProperty(exports, "printLocation", ({ + enumerable: true, + get: function () { + return _printLocation.printLocation; + }, +})); +Object.defineProperty(exports, "printSourceLocation", ({ + enumerable: true, + get: function () { + return _printLocation.printSourceLocation; + }, +})); +Object.defineProperty(exports, "visit", ({ + enumerable: true, + get: function () { + return _visitor.visit; + }, +})); +Object.defineProperty(exports, "visitInParallel", ({ + enumerable: true, + get: function () { + return _visitor.visitInParallel; + }, +})); + +var _source = __nccwpck_require__(4934); + +var _location = __nccwpck_require__(1955); + +var _printLocation = __nccwpck_require__(7098); + +var _kinds = __nccwpck_require__(2881); + +var _tokenKind = __nccwpck_require__(9229); + +var _lexer = __nccwpck_require__(3604); + +var _parser = __nccwpck_require__(8443); + +var _printer = __nccwpck_require__(4758); + +var _visitor = __nccwpck_require__(7848); + +var _ast = __nccwpck_require__(906); + +var _predicates = __nccwpck_require__(418); + +var _directiveLocation = __nccwpck_require__(3180); + + +/***/ }), + +/***/ 2881: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.Kind = void 0; + +/** + * The set of allowed kind values for AST nodes. + */ +var Kind; +exports.Kind = Kind; + +(function (Kind) { + Kind['NAME'] = 'Name'; + Kind['DOCUMENT'] = 'Document'; + Kind['OPERATION_DEFINITION'] = 'OperationDefinition'; + Kind['VARIABLE_DEFINITION'] = 'VariableDefinition'; + Kind['SELECTION_SET'] = 'SelectionSet'; + Kind['FIELD'] = 'Field'; + Kind['ARGUMENT'] = 'Argument'; + Kind['FRAGMENT_SPREAD'] = 'FragmentSpread'; + Kind['INLINE_FRAGMENT'] = 'InlineFragment'; + Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition'; + Kind['VARIABLE'] = 'Variable'; + Kind['INT'] = 'IntValue'; + Kind['FLOAT'] = 'FloatValue'; + Kind['STRING'] = 'StringValue'; + Kind['BOOLEAN'] = 'BooleanValue'; + Kind['NULL'] = 'NullValue'; + Kind['ENUM'] = 'EnumValue'; + Kind['LIST'] = 'ListValue'; + Kind['OBJECT'] = 'ObjectValue'; + Kind['OBJECT_FIELD'] = 'ObjectField'; + Kind['DIRECTIVE'] = 'Directive'; + Kind['NAMED_TYPE'] = 'NamedType'; + Kind['LIST_TYPE'] = 'ListType'; + Kind['NON_NULL_TYPE'] = 'NonNullType'; + Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition'; + Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition'; + Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition'; + Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition'; + Kind['FIELD_DEFINITION'] = 'FieldDefinition'; + Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition'; + Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition'; + Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition'; + Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition'; + Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition'; + Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition'; + Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition'; + Kind['SCHEMA_EXTENSION'] = 'SchemaExtension'; + Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension'; + Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension'; + Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension'; + Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension'; + Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension'; + Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension'; +})(Kind || (exports.Kind = Kind = {})); +/** + * The enum type representing the possible kind values of AST nodes. + * + * @deprecated Please use `Kind`. Will be remove in v17. + */ + + +/***/ }), + +/***/ 3604: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.Lexer = void 0; +exports.isPunctuatorTokenKind = isPunctuatorTokenKind; + +var _syntaxError = __nccwpck_require__(4141); + +var _ast = __nccwpck_require__(906); + +var _blockString = __nccwpck_require__(510); + +var _characterClasses = __nccwpck_require__(4709); + +var _tokenKind = __nccwpck_require__(9229); + +/** + * Given a Source object, creates a Lexer for that source. + * A Lexer is a stateful stream generator in that every time + * it is advanced, it returns the next token in the Source. Assuming the + * source lexes, the final Token emitted by the lexer will be of kind + * EOF, after which the lexer will repeatedly return the same EOF token + * whenever called. + */ +class Lexer { + /** + * The previously focused non-ignored token. + */ + + /** + * The currently focused non-ignored token. + */ + + /** + * The (1-indexed) line containing the current token. + */ + + /** + * The character offset at which the current line begins. + */ + constructor(source) { + const startOfFileToken = new _ast.Token( + _tokenKind.TokenKind.SOF, + 0, + 0, + 0, + 0, + ); + this.source = source; + this.lastToken = startOfFileToken; + this.token = startOfFileToken; + this.line = 1; + this.lineStart = 0; + } + + get [Symbol.toStringTag]() { + return 'Lexer'; + } + /** + * Advances the token stream to the next non-ignored token. + */ + + advance() { + this.lastToken = this.token; + const token = (this.token = this.lookahead()); + return token; + } + /** + * Looks ahead and returns the next non-ignored token, but does not change + * the state of Lexer. + */ + + lookahead() { + let token = this.token; + + if (token.kind !== _tokenKind.TokenKind.EOF) { + do { + if (token.next) { + token = token.next; + } else { + // Read the next token and form a link in the token linked-list. + const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing. + + token.next = nextToken; // @ts-expect-error prev is only mutable during parsing. + + nextToken.prev = token; + token = nextToken; + } + } while (token.kind === _tokenKind.TokenKind.COMMENT); + } + + return token; + } +} +/** + * @internal + */ + +exports.Lexer = Lexer; + +function isPunctuatorTokenKind(kind) { + return ( + kind === _tokenKind.TokenKind.BANG || + kind === _tokenKind.TokenKind.DOLLAR || + kind === _tokenKind.TokenKind.AMP || + kind === _tokenKind.TokenKind.PAREN_L || + kind === _tokenKind.TokenKind.PAREN_R || + kind === _tokenKind.TokenKind.SPREAD || + kind === _tokenKind.TokenKind.COLON || + kind === _tokenKind.TokenKind.EQUALS || + kind === _tokenKind.TokenKind.AT || + kind === _tokenKind.TokenKind.BRACKET_L || + kind === _tokenKind.TokenKind.BRACKET_R || + kind === _tokenKind.TokenKind.BRACE_L || + kind === _tokenKind.TokenKind.PIPE || + kind === _tokenKind.TokenKind.BRACE_R + ); +} +/** + * A Unicode scalar value is any Unicode code point except surrogate code + * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and + * 0xE000 to 0x10FFFF. + * + * SourceCharacter :: + * - "Any Unicode scalar value" + */ + +function isUnicodeScalarValue(code) { + return ( + (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff) + ); +} +/** + * The GraphQL specification defines source text as a sequence of unicode scalar + * values (which Unicode defines to exclude surrogate code points). However + * JavaScript defines strings as a sequence of UTF-16 code units which may + * include surrogates. A surrogate pair is a valid source character as it + * encodes a supplementary code point (above U+FFFF), but unpaired surrogate + * code points are not valid source characters. + */ + +function isSupplementaryCodePoint(body, location) { + return ( + isLeadingSurrogate(body.charCodeAt(location)) && + isTrailingSurrogate(body.charCodeAt(location + 1)) + ); +} + +function isLeadingSurrogate(code) { + return code >= 0xd800 && code <= 0xdbff; +} + +function isTrailingSurrogate(code) { + return code >= 0xdc00 && code <= 0xdfff; +} +/** + * Prints the code point (or end of file reference) at a given location in a + * source for use in error messages. + * + * Printable ASCII is printed quoted, while other points are printed in Unicode + * code point form (ie. U+1234). + */ + +function printCodePointAt(lexer, location) { + const code = lexer.source.body.codePointAt(location); + + if (code === undefined) { + return _tokenKind.TokenKind.EOF; + } else if (code >= 0x0020 && code <= 0x007e) { + // Printable ASCII + const char = String.fromCodePoint(code); + return char === '"' ? "'\"'" : `"${char}"`; + } // Unicode code point + + return 'U+' + code.toString(16).toUpperCase().padStart(4, '0'); +} +/** + * Create a token with line and column location information. + */ + +function createToken(lexer, kind, start, end, value) { + const line = lexer.line; + const col = 1 + start - lexer.lineStart; + return new _ast.Token(kind, start, end, line, col, value); +} +/** + * Gets the next token from the source starting at the given position. + * + * This skips over whitespace until it finds the next lexable token, then lexes + * punctuators immediately or calls the appropriate helper function for more + * complicated tokens. + */ + +function readNextToken(lexer, start) { + const body = lexer.source.body; + const bodyLength = body.length; + let position = start; + + while (position < bodyLength) { + const code = body.charCodeAt(position); // SourceCharacter + + switch (code) { + // Ignored :: + // - UnicodeBOM + // - WhiteSpace + // - LineTerminator + // - Comment + // - Comma + // + // UnicodeBOM :: "Byte Order Mark (U+FEFF)" + // + // WhiteSpace :: + // - "Horizontal Tab (U+0009)" + // - "Space (U+0020)" + // + // Comma :: , + case 0xfeff: // + + case 0x0009: // \t + + case 0x0020: // + + case 0x002c: + // , + ++position; + continue; + // LineTerminator :: + // - "New Line (U+000A)" + // - "Carriage Return (U+000D)" [lookahead != "New Line (U+000A)"] + // - "Carriage Return (U+000D)" "New Line (U+000A)" + + case 0x000a: + // \n + ++position; + ++lexer.line; + lexer.lineStart = position; + continue; + + case 0x000d: + // \r + if (body.charCodeAt(position + 1) === 0x000a) { + position += 2; + } else { + ++position; + } + + ++lexer.line; + lexer.lineStart = position; + continue; + // Comment + + case 0x0023: + // # + return readComment(lexer, position); + // Token :: + // - Punctuator + // - Name + // - IntValue + // - FloatValue + // - StringValue + // + // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | } + + case 0x0021: + // ! + return createToken( + lexer, + _tokenKind.TokenKind.BANG, + position, + position + 1, + ); + + case 0x0024: + // $ + return createToken( + lexer, + _tokenKind.TokenKind.DOLLAR, + position, + position + 1, + ); + + case 0x0026: + // & + return createToken( + lexer, + _tokenKind.TokenKind.AMP, + position, + position + 1, + ); + + case 0x0028: + // ( + return createToken( + lexer, + _tokenKind.TokenKind.PAREN_L, + position, + position + 1, + ); + + case 0x0029: + // ) + return createToken( + lexer, + _tokenKind.TokenKind.PAREN_R, + position, + position + 1, + ); + + case 0x002e: + // . + if ( + body.charCodeAt(position + 1) === 0x002e && + body.charCodeAt(position + 2) === 0x002e + ) { + return createToken( + lexer, + _tokenKind.TokenKind.SPREAD, + position, + position + 3, + ); + } + + break; + + case 0x003a: + // : + return createToken( + lexer, + _tokenKind.TokenKind.COLON, + position, + position + 1, + ); + + case 0x003d: + // = + return createToken( + lexer, + _tokenKind.TokenKind.EQUALS, + position, + position + 1, + ); + + case 0x0040: + // @ + return createToken( + lexer, + _tokenKind.TokenKind.AT, + position, + position + 1, + ); + + case 0x005b: + // [ + return createToken( + lexer, + _tokenKind.TokenKind.BRACKET_L, + position, + position + 1, + ); + + case 0x005d: + // ] + return createToken( + lexer, + _tokenKind.TokenKind.BRACKET_R, + position, + position + 1, + ); + + case 0x007b: + // { + return createToken( + lexer, + _tokenKind.TokenKind.BRACE_L, + position, + position + 1, + ); + + case 0x007c: + // | + return createToken( + lexer, + _tokenKind.TokenKind.PIPE, + position, + position + 1, + ); + + case 0x007d: + // } + return createToken( + lexer, + _tokenKind.TokenKind.BRACE_R, + position, + position + 1, + ); + // StringValue + + case 0x0022: + // " + if ( + body.charCodeAt(position + 1) === 0x0022 && + body.charCodeAt(position + 2) === 0x0022 + ) { + return readBlockString(lexer, position); + } + + return readString(lexer, position); + } // IntValue | FloatValue (Digit | -) + + if ((0, _characterClasses.isDigit)(code) || code === 0x002d) { + return readNumber(lexer, position, code); + } // Name + + if ((0, _characterClasses.isNameStart)(code)) { + return readName(lexer, position); + } + + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + code === 0x0027 + ? 'Unexpected single quote character (\'), did you mean to use a double quote (")?' + : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position) + ? `Unexpected character: ${printCodePointAt(lexer, position)}.` + : `Invalid character: ${printCodePointAt(lexer, position)}.`, + ); + } + + return createToken(lexer, _tokenKind.TokenKind.EOF, bodyLength, bodyLength); +} +/** + * Reads a comment token from the source file. + * + * ``` + * Comment :: # CommentChar* [lookahead != CommentChar] + * + * CommentChar :: SourceCharacter but not LineTerminator + * ``` + */ + +function readComment(lexer, start) { + const body = lexer.source.body; + const bodyLength = body.length; + let position = start + 1; + + while (position < bodyLength) { + const code = body.charCodeAt(position); // LineTerminator (\n | \r) + + if (code === 0x000a || code === 0x000d) { + break; + } // SourceCharacter + + if (isUnicodeScalarValue(code)) { + ++position; + } else if (isSupplementaryCodePoint(body, position)) { + position += 2; + } else { + break; + } + } + + return createToken( + lexer, + _tokenKind.TokenKind.COMMENT, + start, + position, + body.slice(start + 1, position), + ); +} +/** + * Reads a number token from the source file, either a FloatValue or an IntValue + * depending on whether a FractionalPart or ExponentPart is encountered. + * + * ``` + * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}] + * + * IntegerPart :: + * - NegativeSign? 0 + * - NegativeSign? NonZeroDigit Digit* + * + * NegativeSign :: - + * + * NonZeroDigit :: Digit but not `0` + * + * FloatValue :: + * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}] + * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}] + * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}] + * + * FractionalPart :: . Digit+ + * + * ExponentPart :: ExponentIndicator Sign? Digit+ + * + * ExponentIndicator :: one of `e` `E` + * + * Sign :: one of + - + * ``` + */ + +function readNumber(lexer, start, firstCode) { + const body = lexer.source.body; + let position = start; + let code = firstCode; + let isFloat = false; // NegativeSign (-) + + if (code === 0x002d) { + code = body.charCodeAt(++position); + } // Zero (0) + + if (code === 0x0030) { + code = body.charCodeAt(++position); + + if ((0, _characterClasses.isDigit)(code)) { + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + `Invalid number, unexpected digit after 0: ${printCodePointAt( + lexer, + position, + )}.`, + ); + } + } else { + position = readDigits(lexer, position, code); + code = body.charCodeAt(position); + } // Full stop (.) + + if (code === 0x002e) { + isFloat = true; + code = body.charCodeAt(++position); + position = readDigits(lexer, position, code); + code = body.charCodeAt(position); + } // E e + + if (code === 0x0045 || code === 0x0065) { + isFloat = true; + code = body.charCodeAt(++position); // + - + + if (code === 0x002b || code === 0x002d) { + code = body.charCodeAt(++position); + } + + position = readDigits(lexer, position, code); + code = body.charCodeAt(position); + } // Numbers cannot be followed by . or NameStart + + if (code === 0x002e || (0, _characterClasses.isNameStart)(code)) { + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + `Invalid number, expected digit but got: ${printCodePointAt( + lexer, + position, + )}.`, + ); + } + + return createToken( + lexer, + isFloat ? _tokenKind.TokenKind.FLOAT : _tokenKind.TokenKind.INT, + start, + position, + body.slice(start, position), + ); +} +/** + * Returns the new position in the source after reading one or more digits. + */ + +function readDigits(lexer, start, firstCode) { + if (!(0, _characterClasses.isDigit)(firstCode)) { + throw (0, _syntaxError.syntaxError)( + lexer.source, + start, + `Invalid number, expected digit but got: ${printCodePointAt( + lexer, + start, + )}.`, + ); + } + + const body = lexer.source.body; + let position = start + 1; // +1 to skip first firstCode + + while ((0, _characterClasses.isDigit)(body.charCodeAt(position))) { + ++position; + } + + return position; +} +/** + * Reads a single-quote string token from the source file. + * + * ``` + * StringValue :: + * - `""` [lookahead != `"`] + * - `"` StringCharacter+ `"` + * + * StringCharacter :: + * - SourceCharacter but not `"` or `\` or LineTerminator + * - `\u` EscapedUnicode + * - `\` EscapedCharacter + * + * EscapedUnicode :: + * - `{` HexDigit+ `}` + * - HexDigit HexDigit HexDigit HexDigit + * + * EscapedCharacter :: one of `"` `\` `/` `b` `f` `n` `r` `t` + * ``` + */ + +function readString(lexer, start) { + const body = lexer.source.body; + const bodyLength = body.length; + let position = start + 1; + let chunkStart = position; + let value = ''; + + while (position < bodyLength) { + const code = body.charCodeAt(position); // Closing Quote (") + + if (code === 0x0022) { + value += body.slice(chunkStart, position); + return createToken( + lexer, + _tokenKind.TokenKind.STRING, + start, + position + 1, + value, + ); + } // Escape Sequence (\) + + if (code === 0x005c) { + value += body.slice(chunkStart, position); + const escape = + body.charCodeAt(position + 1) === 0x0075 // u + ? body.charCodeAt(position + 2) === 0x007b // { + ? readEscapedUnicodeVariableWidth(lexer, position) + : readEscapedUnicodeFixedWidth(lexer, position) + : readEscapedCharacter(lexer, position); + value += escape.value; + position += escape.size; + chunkStart = position; + continue; + } // LineTerminator (\n | \r) + + if (code === 0x000a || code === 0x000d) { + break; + } // SourceCharacter + + if (isUnicodeScalarValue(code)) { + ++position; + } else if (isSupplementaryCodePoint(body, position)) { + position += 2; + } else { + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + `Invalid character within String: ${printCodePointAt( + lexer, + position, + )}.`, + ); + } + } + + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + 'Unterminated string.', + ); +} // The string value and lexed size of an escape sequence. + +function readEscapedUnicodeVariableWidth(lexer, position) { + const body = lexer.source.body; + let point = 0; + let size = 3; // Cannot be larger than 12 chars (\u{00000000}). + + while (size < 12) { + const code = body.charCodeAt(position + size++); // Closing Brace (}) + + if (code === 0x007d) { + // Must be at least 5 chars (\u{0}) and encode a Unicode scalar value. + if (size < 5 || !isUnicodeScalarValue(point)) { + break; + } + + return { + value: String.fromCodePoint(point), + size, + }; + } // Append this hex digit to the code point. + + point = (point << 4) | readHexDigit(code); + + if (point < 0) { + break; + } + } + + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + `Invalid Unicode escape sequence: "${body.slice( + position, + position + size, + )}".`, + ); +} + +function readEscapedUnicodeFixedWidth(lexer, position) { + const body = lexer.source.body; + const code = read16BitHexCode(body, position + 2); + + if (isUnicodeScalarValue(code)) { + return { + value: String.fromCodePoint(code), + size: 6, + }; + } // GraphQL allows JSON-style surrogate pair escape sequences, but only when + // a valid pair is formed. + + if (isLeadingSurrogate(code)) { + // \u + if ( + body.charCodeAt(position + 6) === 0x005c && + body.charCodeAt(position + 7) === 0x0075 + ) { + const trailingCode = read16BitHexCode(body, position + 8); + + if (isTrailingSurrogate(trailingCode)) { + // JavaScript defines strings as a sequence of UTF-16 code units and + // encodes Unicode code points above U+FFFF using a surrogate pair of + // code units. Since this is a surrogate pair escape sequence, just + // include both codes into the JavaScript string value. Had JavaScript + // not been internally based on UTF-16, then this surrogate pair would + // be decoded to retrieve the supplementary code point. + return { + value: String.fromCodePoint(code, trailingCode), + size: 12, + }; + } + } + } + + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + `Invalid Unicode escape sequence: "${body.slice(position, position + 6)}".`, + ); +} +/** + * Reads four hexadecimal characters and returns the positive integer that 16bit + * hexadecimal string represents. For example, "000f" will return 15, and "dead" + * will return 57005. + * + * Returns a negative number if any char was not a valid hexadecimal digit. + */ + +function read16BitHexCode(body, position) { + // readHexDigit() returns -1 on error. ORing a negative value with any other + // value always produces a negative value. + return ( + (readHexDigit(body.charCodeAt(position)) << 12) | + (readHexDigit(body.charCodeAt(position + 1)) << 8) | + (readHexDigit(body.charCodeAt(position + 2)) << 4) | + readHexDigit(body.charCodeAt(position + 3)) + ); +} +/** + * Reads a hexadecimal character and returns its positive integer value (0-15). + * + * '0' becomes 0, '9' becomes 9 + * 'A' becomes 10, 'F' becomes 15 + * 'a' becomes 10, 'f' becomes 15 + * + * Returns -1 if the provided character code was not a valid hexadecimal digit. + * + * HexDigit :: one of + * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9` + * - `A` `B` `C` `D` `E` `F` + * - `a` `b` `c` `d` `e` `f` + */ + +function readHexDigit(code) { + return code >= 0x0030 && code <= 0x0039 // 0-9 + ? code - 0x0030 + : code >= 0x0041 && code <= 0x0046 // A-F + ? code - 0x0037 + : code >= 0x0061 && code <= 0x0066 // a-f + ? code - 0x0057 + : -1; +} +/** + * | Escaped Character | Code Point | Character Name | + * | ----------------- | ---------- | ---------------------------- | + * | `"` | U+0022 | double quote | + * | `\` | U+005C | reverse solidus (back slash) | + * | `/` | U+002F | solidus (forward slash) | + * | `b` | U+0008 | backspace | + * | `f` | U+000C | form feed | + * | `n` | U+000A | line feed (new line) | + * | `r` | U+000D | carriage return | + * | `t` | U+0009 | horizontal tab | + */ + +function readEscapedCharacter(lexer, position) { + const body = lexer.source.body; + const code = body.charCodeAt(position + 1); + + switch (code) { + case 0x0022: + // " + return { + value: '\u0022', + size: 2, + }; + + case 0x005c: + // \ + return { + value: '\u005c', + size: 2, + }; + + case 0x002f: + // / + return { + value: '\u002f', + size: 2, + }; + + case 0x0062: + // b + return { + value: '\u0008', + size: 2, + }; + + case 0x0066: + // f + return { + value: '\u000c', + size: 2, + }; + + case 0x006e: + // n + return { + value: '\u000a', + size: 2, + }; + + case 0x0072: + // r + return { + value: '\u000d', + size: 2, + }; + + case 0x0074: + // t + return { + value: '\u0009', + size: 2, + }; + } + + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + `Invalid character escape sequence: "${body.slice( + position, + position + 2, + )}".`, + ); +} +/** + * Reads a block string token from the source file. + * + * ``` + * StringValue :: + * - `"""` BlockStringCharacter* `"""` + * + * BlockStringCharacter :: + * - SourceCharacter but not `"""` or `\"""` + * - `\"""` + * ``` + */ + +function readBlockString(lexer, start) { + const body = lexer.source.body; + const bodyLength = body.length; + let lineStart = lexer.lineStart; + let position = start + 3; + let chunkStart = position; + let currentLine = ''; + const blockLines = []; + + while (position < bodyLength) { + const code = body.charCodeAt(position); // Closing Triple-Quote (""") + + if ( + code === 0x0022 && + body.charCodeAt(position + 1) === 0x0022 && + body.charCodeAt(position + 2) === 0x0022 + ) { + currentLine += body.slice(chunkStart, position); + blockLines.push(currentLine); + const token = createToken( + lexer, + _tokenKind.TokenKind.BLOCK_STRING, + start, + position + 3, // Return a string of the lines joined with U+000A. + (0, _blockString.dedentBlockStringLines)(blockLines).join('\n'), + ); + lexer.line += blockLines.length - 1; + lexer.lineStart = lineStart; + return token; + } // Escaped Triple-Quote (\""") + + if ( + code === 0x005c && + body.charCodeAt(position + 1) === 0x0022 && + body.charCodeAt(position + 2) === 0x0022 && + body.charCodeAt(position + 3) === 0x0022 + ) { + currentLine += body.slice(chunkStart, position); + chunkStart = position + 1; // skip only slash + + position += 4; + continue; + } // LineTerminator + + if (code === 0x000a || code === 0x000d) { + currentLine += body.slice(chunkStart, position); + blockLines.push(currentLine); + + if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) { + position += 2; + } else { + ++position; + } + + currentLine = ''; + chunkStart = position; + lineStart = position; + continue; + } // SourceCharacter + + if (isUnicodeScalarValue(code)) { + ++position; + } else if (isSupplementaryCodePoint(body, position)) { + position += 2; + } else { + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + `Invalid character within String: ${printCodePointAt( + lexer, + position, + )}.`, + ); + } + } + + throw (0, _syntaxError.syntaxError)( + lexer.source, + position, + 'Unterminated string.', + ); +} +/** + * Reads an alphanumeric + underscore name from the source. + * + * ``` + * Name :: + * - NameStart NameContinue* [lookahead != NameContinue] + * ``` + */ + +function readName(lexer, start) { + const body = lexer.source.body; + const bodyLength = body.length; + let position = start + 1; + + while (position < bodyLength) { + const code = body.charCodeAt(position); + + if ((0, _characterClasses.isNameContinue)(code)) { + ++position; + } else { + break; + } + } + + return createToken( + lexer, + _tokenKind.TokenKind.NAME, + start, + position, + body.slice(start, position), + ); +} + + +/***/ }), + +/***/ 1955: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.getLocation = getLocation; + +var _invariant = __nccwpck_require__(9952); + +const LineRegExp = /\r\n|[\n\r]/g; +/** + * Represents a location in a Source. + */ + +/** + * Takes a Source and a UTF-8 character offset, and returns the corresponding + * line and column as a SourceLocation. + */ +function getLocation(source, position) { + let lastLineStart = 0; + let line = 1; + + for (const match of source.body.matchAll(LineRegExp)) { + typeof match.index === 'number' || (0, _invariant.invariant)(false); + + if (match.index >= position) { + break; + } + + lastLineStart = match.index + match[0].length; + line += 1; + } + + return { + line, + column: position + 1 - lastLineStart, + }; +} + + +/***/ }), + +/***/ 8443: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.Parser = void 0; +exports.parse = parse; +exports.parseConstValue = parseConstValue; +exports.parseType = parseType; +exports.parseValue = parseValue; + +var _syntaxError = __nccwpck_require__(4141); + +var _ast = __nccwpck_require__(906); + +var _directiveLocation = __nccwpck_require__(3180); + +var _kinds = __nccwpck_require__(2881); + +var _lexer = __nccwpck_require__(3604); + +var _source = __nccwpck_require__(4934); + +var _tokenKind = __nccwpck_require__(9229); + +/** + * Given a GraphQL source, parses it into a Document. + * Throws GraphQLError if a syntax error is encountered. + */ +function parse(source, options) { + const parser = new Parser(source, options); + return parser.parseDocument(); +} +/** + * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for + * that value. + * Throws GraphQLError if a syntax error is encountered. + * + * This is useful within tools that operate upon GraphQL Values directly and + * in isolation of complete GraphQL documents. + * + * Consider providing the results to the utility function: valueFromAST(). + */ + +function parseValue(source, options) { + const parser = new Parser(source, options); + parser.expectToken(_tokenKind.TokenKind.SOF); + const value = parser.parseValueLiteral(false); + parser.expectToken(_tokenKind.TokenKind.EOF); + return value; +} +/** + * Similar to parseValue(), but raises a parse error if it encounters a + * variable. The return type will be a constant value. + */ + +function parseConstValue(source, options) { + const parser = new Parser(source, options); + parser.expectToken(_tokenKind.TokenKind.SOF); + const value = parser.parseConstValueLiteral(); + parser.expectToken(_tokenKind.TokenKind.EOF); + return value; +} +/** + * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for + * that type. + * Throws GraphQLError if a syntax error is encountered. + * + * This is useful within tools that operate upon GraphQL Types directly and + * in isolation of complete GraphQL documents. + * + * Consider providing the results to the utility function: typeFromAST(). + */ + +function parseType(source, options) { + const parser = new Parser(source, options); + parser.expectToken(_tokenKind.TokenKind.SOF); + const type = parser.parseTypeReference(); + parser.expectToken(_tokenKind.TokenKind.EOF); + return type; +} +/** + * This class is exported only to assist people in implementing their own parsers + * without duplicating too much code and should be used only as last resort for cases + * such as experimental syntax or if certain features could not be contributed upstream. + * + * It is still part of the internal API and is versioned, so any changes to it are never + * considered breaking changes. If you still need to support multiple versions of the + * library, please use the `versionInfo` variable for version detection. + * + * @internal + */ + +class Parser { + constructor(source, options = {}) { + const sourceObj = (0, _source.isSource)(source) + ? source + : new _source.Source(source); + this._lexer = new _lexer.Lexer(sourceObj); + this._options = options; + this._tokenCounter = 0; + } + /** + * Converts a name lex token into a name parse node. + */ + + parseName() { + const token = this.expectToken(_tokenKind.TokenKind.NAME); + return this.node(token, { + kind: _kinds.Kind.NAME, + value: token.value, + }); + } // Implements the parsing rules in the Document section. + + /** + * Document : Definition+ + */ + + parseDocument() { + return this.node(this._lexer.token, { + kind: _kinds.Kind.DOCUMENT, + definitions: this.many( + _tokenKind.TokenKind.SOF, + this.parseDefinition, + _tokenKind.TokenKind.EOF, + ), + }); + } + /** + * Definition : + * - ExecutableDefinition + * - TypeSystemDefinition + * - TypeSystemExtension + * + * ExecutableDefinition : + * - OperationDefinition + * - FragmentDefinition + * + * TypeSystemDefinition : + * - SchemaDefinition + * - TypeDefinition + * - DirectiveDefinition + * + * TypeDefinition : + * - ScalarTypeDefinition + * - ObjectTypeDefinition + * - InterfaceTypeDefinition + * - UnionTypeDefinition + * - EnumTypeDefinition + * - InputObjectTypeDefinition + */ + + parseDefinition() { + if (this.peek(_tokenKind.TokenKind.BRACE_L)) { + return this.parseOperationDefinition(); + } // Many definitions begin with a description and require a lookahead. + + const hasDescription = this.peekDescription(); + const keywordToken = hasDescription + ? this._lexer.lookahead() + : this._lexer.token; + + if (keywordToken.kind === _tokenKind.TokenKind.NAME) { + switch (keywordToken.value) { + case 'schema': + return this.parseSchemaDefinition(); + + case 'scalar': + return this.parseScalarTypeDefinition(); + + case 'type': + return this.parseObjectTypeDefinition(); + + case 'interface': + return this.parseInterfaceTypeDefinition(); + + case 'union': + return this.parseUnionTypeDefinition(); + + case 'enum': + return this.parseEnumTypeDefinition(); + + case 'input': + return this.parseInputObjectTypeDefinition(); + + case 'directive': + return this.parseDirectiveDefinition(); + } + + if (hasDescription) { + throw (0, _syntaxError.syntaxError)( + this._lexer.source, + this._lexer.token.start, + 'Unexpected description, descriptions are supported only on type definitions.', + ); + } + + switch (keywordToken.value) { + case 'query': + case 'mutation': + case 'subscription': + return this.parseOperationDefinition(); + + case 'fragment': + return this.parseFragmentDefinition(); + + case 'extend': + return this.parseTypeSystemExtension(); + } + } + + throw this.unexpected(keywordToken); + } // Implements the parsing rules in the Operations section. + + /** + * OperationDefinition : + * - SelectionSet + * - OperationType Name? VariableDefinitions? Directives? SelectionSet + */ + + parseOperationDefinition() { + const start = this._lexer.token; + + if (this.peek(_tokenKind.TokenKind.BRACE_L)) { + return this.node(start, { + kind: _kinds.Kind.OPERATION_DEFINITION, + operation: _ast.OperationTypeNode.QUERY, + name: undefined, + variableDefinitions: [], + directives: [], + selectionSet: this.parseSelectionSet(), + }); + } + + const operation = this.parseOperationType(); + let name; + + if (this.peek(_tokenKind.TokenKind.NAME)) { + name = this.parseName(); + } + + return this.node(start, { + kind: _kinds.Kind.OPERATION_DEFINITION, + operation, + name, + variableDefinitions: this.parseVariableDefinitions(), + directives: this.parseDirectives(false), + selectionSet: this.parseSelectionSet(), + }); + } + /** + * OperationType : one of query mutation subscription + */ + + parseOperationType() { + const operationToken = this.expectToken(_tokenKind.TokenKind.NAME); + + switch (operationToken.value) { + case 'query': + return _ast.OperationTypeNode.QUERY; + + case 'mutation': + return _ast.OperationTypeNode.MUTATION; + + case 'subscription': + return _ast.OperationTypeNode.SUBSCRIPTION; + } + + throw this.unexpected(operationToken); + } + /** + * VariableDefinitions : ( VariableDefinition+ ) + */ + + parseVariableDefinitions() { + return this.optionalMany( + _tokenKind.TokenKind.PAREN_L, + this.parseVariableDefinition, + _tokenKind.TokenKind.PAREN_R, + ); + } + /** + * VariableDefinition : Variable : Type DefaultValue? Directives[Const]? + */ + + parseVariableDefinition() { + return this.node(this._lexer.token, { + kind: _kinds.Kind.VARIABLE_DEFINITION, + variable: this.parseVariable(), + type: + (this.expectToken(_tokenKind.TokenKind.COLON), + this.parseTypeReference()), + defaultValue: this.expectOptionalToken(_tokenKind.TokenKind.EQUALS) + ? this.parseConstValueLiteral() + : undefined, + directives: this.parseConstDirectives(), + }); + } + /** + * Variable : $ Name + */ + + parseVariable() { + const start = this._lexer.token; + this.expectToken(_tokenKind.TokenKind.DOLLAR); + return this.node(start, { + kind: _kinds.Kind.VARIABLE, + name: this.parseName(), + }); + } + /** + * ``` + * SelectionSet : { Selection+ } + * ``` + */ + + parseSelectionSet() { + return this.node(this._lexer.token, { + kind: _kinds.Kind.SELECTION_SET, + selections: this.many( + _tokenKind.TokenKind.BRACE_L, + this.parseSelection, + _tokenKind.TokenKind.BRACE_R, + ), + }); + } + /** + * Selection : + * - Field + * - FragmentSpread + * - InlineFragment + */ + + parseSelection() { + return this.peek(_tokenKind.TokenKind.SPREAD) + ? this.parseFragment() + : this.parseField(); + } + /** + * Field : Alias? Name Arguments? Directives? SelectionSet? + * + * Alias : Name : + */ + + parseField() { + const start = this._lexer.token; + const nameOrAlias = this.parseName(); + let alias; + let name; + + if (this.expectOptionalToken(_tokenKind.TokenKind.COLON)) { + alias = nameOrAlias; + name = this.parseName(); + } else { + name = nameOrAlias; + } + + return this.node(start, { + kind: _kinds.Kind.FIELD, + alias, + name, + arguments: this.parseArguments(false), + directives: this.parseDirectives(false), + selectionSet: this.peek(_tokenKind.TokenKind.BRACE_L) + ? this.parseSelectionSet() + : undefined, + }); + } + /** + * Arguments[Const] : ( Argument[?Const]+ ) + */ + + parseArguments(isConst) { + const item = isConst ? this.parseConstArgument : this.parseArgument; + return this.optionalMany( + _tokenKind.TokenKind.PAREN_L, + item, + _tokenKind.TokenKind.PAREN_R, + ); + } + /** + * Argument[Const] : Name : Value[?Const] + */ + + parseArgument(isConst = false) { + const start = this._lexer.token; + const name = this.parseName(); + this.expectToken(_tokenKind.TokenKind.COLON); + return this.node(start, { + kind: _kinds.Kind.ARGUMENT, + name, + value: this.parseValueLiteral(isConst), + }); + } + + parseConstArgument() { + return this.parseArgument(true); + } // Implements the parsing rules in the Fragments section. + + /** + * Corresponds to both FragmentSpread and InlineFragment in the spec. + * + * FragmentSpread : ... FragmentName Directives? + * + * InlineFragment : ... TypeCondition? Directives? SelectionSet + */ + + parseFragment() { + const start = this._lexer.token; + this.expectToken(_tokenKind.TokenKind.SPREAD); + const hasTypeCondition = this.expectOptionalKeyword('on'); + + if (!hasTypeCondition && this.peek(_tokenKind.TokenKind.NAME)) { + return this.node(start, { + kind: _kinds.Kind.FRAGMENT_SPREAD, + name: this.parseFragmentName(), + directives: this.parseDirectives(false), + }); + } + + return this.node(start, { + kind: _kinds.Kind.INLINE_FRAGMENT, + typeCondition: hasTypeCondition ? this.parseNamedType() : undefined, + directives: this.parseDirectives(false), + selectionSet: this.parseSelectionSet(), + }); + } + /** + * FragmentDefinition : + * - fragment FragmentName on TypeCondition Directives? SelectionSet + * + * TypeCondition : NamedType + */ + + parseFragmentDefinition() { + const start = this._lexer.token; + this.expectKeyword('fragment'); // Legacy support for defining variables within fragments changes + // the grammar of FragmentDefinition: + // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet + + if (this._options.allowLegacyFragmentVariables === true) { + return this.node(start, { + kind: _kinds.Kind.FRAGMENT_DEFINITION, + name: this.parseFragmentName(), + variableDefinitions: this.parseVariableDefinitions(), + typeCondition: (this.expectKeyword('on'), this.parseNamedType()), + directives: this.parseDirectives(false), + selectionSet: this.parseSelectionSet(), + }); + } + + return this.node(start, { + kind: _kinds.Kind.FRAGMENT_DEFINITION, + name: this.parseFragmentName(), + typeCondition: (this.expectKeyword('on'), this.parseNamedType()), + directives: this.parseDirectives(false), + selectionSet: this.parseSelectionSet(), + }); + } + /** + * FragmentName : Name but not `on` + */ + + parseFragmentName() { + if (this._lexer.token.value === 'on') { + throw this.unexpected(); + } + + return this.parseName(); + } // Implements the parsing rules in the Values section. + + /** + * Value[Const] : + * - [~Const] Variable + * - IntValue + * - FloatValue + * - StringValue + * - BooleanValue + * - NullValue + * - EnumValue + * - ListValue[?Const] + * - ObjectValue[?Const] + * + * BooleanValue : one of `true` `false` + * + * NullValue : `null` + * + * EnumValue : Name but not `true`, `false` or `null` + */ + + parseValueLiteral(isConst) { + const token = this._lexer.token; + + switch (token.kind) { + case _tokenKind.TokenKind.BRACKET_L: + return this.parseList(isConst); + + case _tokenKind.TokenKind.BRACE_L: + return this.parseObject(isConst); + + case _tokenKind.TokenKind.INT: + this.advanceLexer(); + return this.node(token, { + kind: _kinds.Kind.INT, + value: token.value, + }); + + case _tokenKind.TokenKind.FLOAT: + this.advanceLexer(); + return this.node(token, { + kind: _kinds.Kind.FLOAT, + value: token.value, + }); + + case _tokenKind.TokenKind.STRING: + case _tokenKind.TokenKind.BLOCK_STRING: + return this.parseStringLiteral(); + + case _tokenKind.TokenKind.NAME: + this.advanceLexer(); + + switch (token.value) { + case 'true': + return this.node(token, { + kind: _kinds.Kind.BOOLEAN, + value: true, + }); + + case 'false': + return this.node(token, { + kind: _kinds.Kind.BOOLEAN, + value: false, + }); + + case 'null': + return this.node(token, { + kind: _kinds.Kind.NULL, + }); + + default: + return this.node(token, { + kind: _kinds.Kind.ENUM, + value: token.value, + }); + } + + case _tokenKind.TokenKind.DOLLAR: + if (isConst) { + this.expectToken(_tokenKind.TokenKind.DOLLAR); + + if (this._lexer.token.kind === _tokenKind.TokenKind.NAME) { + const varName = this._lexer.token.value; + throw (0, _syntaxError.syntaxError)( + this._lexer.source, + token.start, + `Unexpected variable "$${varName}" in constant value.`, + ); + } else { + throw this.unexpected(token); + } + } + + return this.parseVariable(); + + default: + throw this.unexpected(); + } + } + + parseConstValueLiteral() { + return this.parseValueLiteral(true); + } + + parseStringLiteral() { + const token = this._lexer.token; + this.advanceLexer(); + return this.node(token, { + kind: _kinds.Kind.STRING, + value: token.value, + block: token.kind === _tokenKind.TokenKind.BLOCK_STRING, + }); + } + /** + * ListValue[Const] : + * - [ ] + * - [ Value[?Const]+ ] + */ + + parseList(isConst) { + const item = () => this.parseValueLiteral(isConst); + + return this.node(this._lexer.token, { + kind: _kinds.Kind.LIST, + values: this.any( + _tokenKind.TokenKind.BRACKET_L, + item, + _tokenKind.TokenKind.BRACKET_R, + ), + }); + } + /** + * ``` + * ObjectValue[Const] : + * - { } + * - { ObjectField[?Const]+ } + * ``` + */ + + parseObject(isConst) { + const item = () => this.parseObjectField(isConst); + + return this.node(this._lexer.token, { + kind: _kinds.Kind.OBJECT, + fields: this.any( + _tokenKind.TokenKind.BRACE_L, + item, + _tokenKind.TokenKind.BRACE_R, + ), + }); + } + /** + * ObjectField[Const] : Name : Value[?Const] + */ + + parseObjectField(isConst) { + const start = this._lexer.token; + const name = this.parseName(); + this.expectToken(_tokenKind.TokenKind.COLON); + return this.node(start, { + kind: _kinds.Kind.OBJECT_FIELD, + name, + value: this.parseValueLiteral(isConst), + }); + } // Implements the parsing rules in the Directives section. + + /** + * Directives[Const] : Directive[?Const]+ + */ + + parseDirectives(isConst) { + const directives = []; + + while (this.peek(_tokenKind.TokenKind.AT)) { + directives.push(this.parseDirective(isConst)); + } + + return directives; + } + + parseConstDirectives() { + return this.parseDirectives(true); + } + /** + * ``` + * Directive[Const] : @ Name Arguments[?Const]? + * ``` + */ + + parseDirective(isConst) { + const start = this._lexer.token; + this.expectToken(_tokenKind.TokenKind.AT); + return this.node(start, { + kind: _kinds.Kind.DIRECTIVE, + name: this.parseName(), + arguments: this.parseArguments(isConst), + }); + } // Implements the parsing rules in the Types section. + + /** + * Type : + * - NamedType + * - ListType + * - NonNullType + */ + + parseTypeReference() { + const start = this._lexer.token; + let type; + + if (this.expectOptionalToken(_tokenKind.TokenKind.BRACKET_L)) { + const innerType = this.parseTypeReference(); + this.expectToken(_tokenKind.TokenKind.BRACKET_R); + type = this.node(start, { + kind: _kinds.Kind.LIST_TYPE, + type: innerType, + }); + } else { + type = this.parseNamedType(); + } + + if (this.expectOptionalToken(_tokenKind.TokenKind.BANG)) { + return this.node(start, { + kind: _kinds.Kind.NON_NULL_TYPE, + type, + }); + } + + return type; + } + /** + * NamedType : Name + */ + + parseNamedType() { + return this.node(this._lexer.token, { + kind: _kinds.Kind.NAMED_TYPE, + name: this.parseName(), + }); + } // Implements the parsing rules in the Type Definition section. + + peekDescription() { + return ( + this.peek(_tokenKind.TokenKind.STRING) || + this.peek(_tokenKind.TokenKind.BLOCK_STRING) + ); + } + /** + * Description : StringValue + */ + + parseDescription() { + if (this.peekDescription()) { + return this.parseStringLiteral(); + } + } + /** + * ``` + * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ } + * ``` + */ + + parseSchemaDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('schema'); + const directives = this.parseConstDirectives(); + const operationTypes = this.many( + _tokenKind.TokenKind.BRACE_L, + this.parseOperationTypeDefinition, + _tokenKind.TokenKind.BRACE_R, + ); + return this.node(start, { + kind: _kinds.Kind.SCHEMA_DEFINITION, + description, + directives, + operationTypes, + }); + } + /** + * OperationTypeDefinition : OperationType : NamedType + */ + + parseOperationTypeDefinition() { + const start = this._lexer.token; + const operation = this.parseOperationType(); + this.expectToken(_tokenKind.TokenKind.COLON); + const type = this.parseNamedType(); + return this.node(start, { + kind: _kinds.Kind.OPERATION_TYPE_DEFINITION, + operation, + type, + }); + } + /** + * ScalarTypeDefinition : Description? scalar Name Directives[Const]? + */ + + parseScalarTypeDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('scalar'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + return this.node(start, { + kind: _kinds.Kind.SCALAR_TYPE_DEFINITION, + description, + name, + directives, + }); + } + /** + * ObjectTypeDefinition : + * Description? + * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition? + */ + + parseObjectTypeDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('type'); + const name = this.parseName(); + const interfaces = this.parseImplementsInterfaces(); + const directives = this.parseConstDirectives(); + const fields = this.parseFieldsDefinition(); + return this.node(start, { + kind: _kinds.Kind.OBJECT_TYPE_DEFINITION, + description, + name, + interfaces, + directives, + fields, + }); + } + /** + * ImplementsInterfaces : + * - implements `&`? NamedType + * - ImplementsInterfaces & NamedType + */ + + parseImplementsInterfaces() { + return this.expectOptionalKeyword('implements') + ? this.delimitedMany(_tokenKind.TokenKind.AMP, this.parseNamedType) + : []; + } + /** + * ``` + * FieldsDefinition : { FieldDefinition+ } + * ``` + */ + + parseFieldsDefinition() { + return this.optionalMany( + _tokenKind.TokenKind.BRACE_L, + this.parseFieldDefinition, + _tokenKind.TokenKind.BRACE_R, + ); + } + /** + * FieldDefinition : + * - Description? Name ArgumentsDefinition? : Type Directives[Const]? + */ + + parseFieldDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + const name = this.parseName(); + const args = this.parseArgumentDefs(); + this.expectToken(_tokenKind.TokenKind.COLON); + const type = this.parseTypeReference(); + const directives = this.parseConstDirectives(); + return this.node(start, { + kind: _kinds.Kind.FIELD_DEFINITION, + description, + name, + arguments: args, + type, + directives, + }); + } + /** + * ArgumentsDefinition : ( InputValueDefinition+ ) + */ + + parseArgumentDefs() { + return this.optionalMany( + _tokenKind.TokenKind.PAREN_L, + this.parseInputValueDef, + _tokenKind.TokenKind.PAREN_R, + ); + } + /** + * InputValueDefinition : + * - Description? Name : Type DefaultValue? Directives[Const]? + */ + + parseInputValueDef() { + const start = this._lexer.token; + const description = this.parseDescription(); + const name = this.parseName(); + this.expectToken(_tokenKind.TokenKind.COLON); + const type = this.parseTypeReference(); + let defaultValue; + + if (this.expectOptionalToken(_tokenKind.TokenKind.EQUALS)) { + defaultValue = this.parseConstValueLiteral(); + } + + const directives = this.parseConstDirectives(); + return this.node(start, { + kind: _kinds.Kind.INPUT_VALUE_DEFINITION, + description, + name, + type, + defaultValue, + directives, + }); + } + /** + * InterfaceTypeDefinition : + * - Description? interface Name Directives[Const]? FieldsDefinition? + */ + + parseInterfaceTypeDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('interface'); + const name = this.parseName(); + const interfaces = this.parseImplementsInterfaces(); + const directives = this.parseConstDirectives(); + const fields = this.parseFieldsDefinition(); + return this.node(start, { + kind: _kinds.Kind.INTERFACE_TYPE_DEFINITION, + description, + name, + interfaces, + directives, + fields, + }); + } + /** + * UnionTypeDefinition : + * - Description? union Name Directives[Const]? UnionMemberTypes? + */ + + parseUnionTypeDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('union'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + const types = this.parseUnionMemberTypes(); + return this.node(start, { + kind: _kinds.Kind.UNION_TYPE_DEFINITION, + description, + name, + directives, + types, + }); + } + /** + * UnionMemberTypes : + * - = `|`? NamedType + * - UnionMemberTypes | NamedType + */ + + parseUnionMemberTypes() { + return this.expectOptionalToken(_tokenKind.TokenKind.EQUALS) + ? this.delimitedMany(_tokenKind.TokenKind.PIPE, this.parseNamedType) + : []; + } + /** + * EnumTypeDefinition : + * - Description? enum Name Directives[Const]? EnumValuesDefinition? + */ + + parseEnumTypeDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('enum'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + const values = this.parseEnumValuesDefinition(); + return this.node(start, { + kind: _kinds.Kind.ENUM_TYPE_DEFINITION, + description, + name, + directives, + values, + }); + } + /** + * ``` + * EnumValuesDefinition : { EnumValueDefinition+ } + * ``` + */ + + parseEnumValuesDefinition() { + return this.optionalMany( + _tokenKind.TokenKind.BRACE_L, + this.parseEnumValueDefinition, + _tokenKind.TokenKind.BRACE_R, + ); + } + /** + * EnumValueDefinition : Description? EnumValue Directives[Const]? + */ + + parseEnumValueDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + const name = this.parseEnumValueName(); + const directives = this.parseConstDirectives(); + return this.node(start, { + kind: _kinds.Kind.ENUM_VALUE_DEFINITION, + description, + name, + directives, + }); + } + /** + * EnumValue : Name but not `true`, `false` or `null` + */ + + parseEnumValueName() { + if ( + this._lexer.token.value === 'true' || + this._lexer.token.value === 'false' || + this._lexer.token.value === 'null' + ) { + throw (0, _syntaxError.syntaxError)( + this._lexer.source, + this._lexer.token.start, + `${getTokenDesc( + this._lexer.token, + )} is reserved and cannot be used for an enum value.`, + ); + } + + return this.parseName(); + } + /** + * InputObjectTypeDefinition : + * - Description? input Name Directives[Const]? InputFieldsDefinition? + */ + + parseInputObjectTypeDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('input'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + const fields = this.parseInputFieldsDefinition(); + return this.node(start, { + kind: _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION, + description, + name, + directives, + fields, + }); + } + /** + * ``` + * InputFieldsDefinition : { InputValueDefinition+ } + * ``` + */ + + parseInputFieldsDefinition() { + return this.optionalMany( + _tokenKind.TokenKind.BRACE_L, + this.parseInputValueDef, + _tokenKind.TokenKind.BRACE_R, + ); + } + /** + * TypeSystemExtension : + * - SchemaExtension + * - TypeExtension + * + * TypeExtension : + * - ScalarTypeExtension + * - ObjectTypeExtension + * - InterfaceTypeExtension + * - UnionTypeExtension + * - EnumTypeExtension + * - InputObjectTypeDefinition + */ + + parseTypeSystemExtension() { + const keywordToken = this._lexer.lookahead(); + + if (keywordToken.kind === _tokenKind.TokenKind.NAME) { + switch (keywordToken.value) { + case 'schema': + return this.parseSchemaExtension(); + + case 'scalar': + return this.parseScalarTypeExtension(); + + case 'type': + return this.parseObjectTypeExtension(); + + case 'interface': + return this.parseInterfaceTypeExtension(); + + case 'union': + return this.parseUnionTypeExtension(); + + case 'enum': + return this.parseEnumTypeExtension(); + + case 'input': + return this.parseInputObjectTypeExtension(); + } + } + + throw this.unexpected(keywordToken); + } + /** + * ``` + * SchemaExtension : + * - extend schema Directives[Const]? { OperationTypeDefinition+ } + * - extend schema Directives[Const] + * ``` + */ + + parseSchemaExtension() { + const start = this._lexer.token; + this.expectKeyword('extend'); + this.expectKeyword('schema'); + const directives = this.parseConstDirectives(); + const operationTypes = this.optionalMany( + _tokenKind.TokenKind.BRACE_L, + this.parseOperationTypeDefinition, + _tokenKind.TokenKind.BRACE_R, + ); + + if (directives.length === 0 && operationTypes.length === 0) { + throw this.unexpected(); + } + + return this.node(start, { + kind: _kinds.Kind.SCHEMA_EXTENSION, + directives, + operationTypes, + }); + } + /** + * ScalarTypeExtension : + * - extend scalar Name Directives[Const] + */ + + parseScalarTypeExtension() { + const start = this._lexer.token; + this.expectKeyword('extend'); + this.expectKeyword('scalar'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + + if (directives.length === 0) { + throw this.unexpected(); + } + + return this.node(start, { + kind: _kinds.Kind.SCALAR_TYPE_EXTENSION, + name, + directives, + }); + } + /** + * ObjectTypeExtension : + * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition + * - extend type Name ImplementsInterfaces? Directives[Const] + * - extend type Name ImplementsInterfaces + */ + + parseObjectTypeExtension() { + const start = this._lexer.token; + this.expectKeyword('extend'); + this.expectKeyword('type'); + const name = this.parseName(); + const interfaces = this.parseImplementsInterfaces(); + const directives = this.parseConstDirectives(); + const fields = this.parseFieldsDefinition(); + + if ( + interfaces.length === 0 && + directives.length === 0 && + fields.length === 0 + ) { + throw this.unexpected(); + } + + return this.node(start, { + kind: _kinds.Kind.OBJECT_TYPE_EXTENSION, + name, + interfaces, + directives, + fields, + }); + } + /** + * InterfaceTypeExtension : + * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition + * - extend interface Name ImplementsInterfaces? Directives[Const] + * - extend interface Name ImplementsInterfaces + */ + + parseInterfaceTypeExtension() { + const start = this._lexer.token; + this.expectKeyword('extend'); + this.expectKeyword('interface'); + const name = this.parseName(); + const interfaces = this.parseImplementsInterfaces(); + const directives = this.parseConstDirectives(); + const fields = this.parseFieldsDefinition(); + + if ( + interfaces.length === 0 && + directives.length === 0 && + fields.length === 0 + ) { + throw this.unexpected(); + } + + return this.node(start, { + kind: _kinds.Kind.INTERFACE_TYPE_EXTENSION, + name, + interfaces, + directives, + fields, + }); + } + /** + * UnionTypeExtension : + * - extend union Name Directives[Const]? UnionMemberTypes + * - extend union Name Directives[Const] + */ + + parseUnionTypeExtension() { + const start = this._lexer.token; + this.expectKeyword('extend'); + this.expectKeyword('union'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + const types = this.parseUnionMemberTypes(); + + if (directives.length === 0 && types.length === 0) { + throw this.unexpected(); + } + + return this.node(start, { + kind: _kinds.Kind.UNION_TYPE_EXTENSION, + name, + directives, + types, + }); + } + /** + * EnumTypeExtension : + * - extend enum Name Directives[Const]? EnumValuesDefinition + * - extend enum Name Directives[Const] + */ + + parseEnumTypeExtension() { + const start = this._lexer.token; + this.expectKeyword('extend'); + this.expectKeyword('enum'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + const values = this.parseEnumValuesDefinition(); + + if (directives.length === 0 && values.length === 0) { + throw this.unexpected(); + } + + return this.node(start, { + kind: _kinds.Kind.ENUM_TYPE_EXTENSION, + name, + directives, + values, + }); + } + /** + * InputObjectTypeExtension : + * - extend input Name Directives[Const]? InputFieldsDefinition + * - extend input Name Directives[Const] + */ + + parseInputObjectTypeExtension() { + const start = this._lexer.token; + this.expectKeyword('extend'); + this.expectKeyword('input'); + const name = this.parseName(); + const directives = this.parseConstDirectives(); + const fields = this.parseInputFieldsDefinition(); + + if (directives.length === 0 && fields.length === 0) { + throw this.unexpected(); + } + + return this.node(start, { + kind: _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION, + name, + directives, + fields, + }); + } + /** + * ``` + * DirectiveDefinition : + * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations + * ``` + */ + + parseDirectiveDefinition() { + const start = this._lexer.token; + const description = this.parseDescription(); + this.expectKeyword('directive'); + this.expectToken(_tokenKind.TokenKind.AT); + const name = this.parseName(); + const args = this.parseArgumentDefs(); + const repeatable = this.expectOptionalKeyword('repeatable'); + this.expectKeyword('on'); + const locations = this.parseDirectiveLocations(); + return this.node(start, { + kind: _kinds.Kind.DIRECTIVE_DEFINITION, + description, + name, + arguments: args, + repeatable, + locations, + }); + } + /** + * DirectiveLocations : + * - `|`? DirectiveLocation + * - DirectiveLocations | DirectiveLocation + */ + + parseDirectiveLocations() { + return this.delimitedMany( + _tokenKind.TokenKind.PIPE, + this.parseDirectiveLocation, + ); + } + /* + * DirectiveLocation : + * - ExecutableDirectiveLocation + * - TypeSystemDirectiveLocation + * + * ExecutableDirectiveLocation : one of + * `QUERY` + * `MUTATION` + * `SUBSCRIPTION` + * `FIELD` + * `FRAGMENT_DEFINITION` + * `FRAGMENT_SPREAD` + * `INLINE_FRAGMENT` + * + * TypeSystemDirectiveLocation : one of + * `SCHEMA` + * `SCALAR` + * `OBJECT` + * `FIELD_DEFINITION` + * `ARGUMENT_DEFINITION` + * `INTERFACE` + * `UNION` + * `ENUM` + * `ENUM_VALUE` + * `INPUT_OBJECT` + * `INPUT_FIELD_DEFINITION` + */ + + parseDirectiveLocation() { + const start = this._lexer.token; + const name = this.parseName(); + + if ( + Object.prototype.hasOwnProperty.call( + _directiveLocation.DirectiveLocation, + name.value, + ) + ) { + return name; + } + + throw this.unexpected(start); + } // Core parsing utility functions + + /** + * Returns a node that, if configured to do so, sets a "loc" field as a + * location object, used to identify the place in the source that created a + * given parsed object. + */ + + node(startToken, node) { + if (this._options.noLocation !== true) { + node.loc = new _ast.Location( + startToken, + this._lexer.lastToken, + this._lexer.source, + ); + } + + return node; + } + /** + * Determines if the next token is of a given kind + */ + + peek(kind) { + return this._lexer.token.kind === kind; + } + /** + * If the next token is of the given kind, return that token after advancing the lexer. + * Otherwise, do not change the parser state and throw an error. + */ + + expectToken(kind) { + const token = this._lexer.token; + + if (token.kind === kind) { + this.advanceLexer(); + return token; + } + + throw (0, _syntaxError.syntaxError)( + this._lexer.source, + token.start, + `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`, + ); + } + /** + * If the next token is of the given kind, return "true" after advancing the lexer. + * Otherwise, do not change the parser state and return "false". + */ + + expectOptionalToken(kind) { + const token = this._lexer.token; + + if (token.kind === kind) { + this.advanceLexer(); + return true; + } + + return false; + } + /** + * If the next token is a given keyword, advance the lexer. + * Otherwise, do not change the parser state and throw an error. + */ + + expectKeyword(value) { + const token = this._lexer.token; + + if (token.kind === _tokenKind.TokenKind.NAME && token.value === value) { + this.advanceLexer(); + } else { + throw (0, _syntaxError.syntaxError)( + this._lexer.source, + token.start, + `Expected "${value}", found ${getTokenDesc(token)}.`, + ); + } + } + /** + * If the next token is a given keyword, return "true" after advancing the lexer. + * Otherwise, do not change the parser state and return "false". + */ + + expectOptionalKeyword(value) { + const token = this._lexer.token; + + if (token.kind === _tokenKind.TokenKind.NAME && token.value === value) { + this.advanceLexer(); + return true; + } + + return false; + } + /** + * Helper function for creating an error when an unexpected lexed token is encountered. + */ + + unexpected(atToken) { + const token = + atToken !== null && atToken !== void 0 ? atToken : this._lexer.token; + return (0, _syntaxError.syntaxError)( + this._lexer.source, + token.start, + `Unexpected ${getTokenDesc(token)}.`, + ); + } + /** + * Returns a possibly empty list of parse nodes, determined by the parseFn. + * This list begins with a lex token of openKind and ends with a lex token of closeKind. + * Advances the parser to the next lex token after the closing token. + */ + + any(openKind, parseFn, closeKind) { + this.expectToken(openKind); + const nodes = []; + + while (!this.expectOptionalToken(closeKind)) { + nodes.push(parseFn.call(this)); + } + + return nodes; + } + /** + * Returns a list of parse nodes, determined by the parseFn. + * It can be empty only if open token is missing otherwise it will always return non-empty list + * that begins with a lex token of openKind and ends with a lex token of closeKind. + * Advances the parser to the next lex token after the closing token. + */ + + optionalMany(openKind, parseFn, closeKind) { + if (this.expectOptionalToken(openKind)) { + const nodes = []; + + do { + nodes.push(parseFn.call(this)); + } while (!this.expectOptionalToken(closeKind)); + + return nodes; + } + + return []; + } + /** + * Returns a non-empty list of parse nodes, determined by the parseFn. + * This list begins with a lex token of openKind and ends with a lex token of closeKind. + * Advances the parser to the next lex token after the closing token. + */ + + many(openKind, parseFn, closeKind) { + this.expectToken(openKind); + const nodes = []; + + do { + nodes.push(parseFn.call(this)); + } while (!this.expectOptionalToken(closeKind)); + + return nodes; + } + /** + * Returns a non-empty list of parse nodes, determined by the parseFn. + * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind. + * Advances the parser to the next lex token after last item in the list. + */ + + delimitedMany(delimiterKind, parseFn) { + this.expectOptionalToken(delimiterKind); + const nodes = []; + + do { + nodes.push(parseFn.call(this)); + } while (this.expectOptionalToken(delimiterKind)); + + return nodes; + } + + advanceLexer() { + const { maxTokens } = this._options; + + const token = this._lexer.advance(); + + if (maxTokens !== undefined && token.kind !== _tokenKind.TokenKind.EOF) { + ++this._tokenCounter; + + if (this._tokenCounter > maxTokens) { + throw (0, _syntaxError.syntaxError)( + this._lexer.source, + token.start, + `Document contains more that ${maxTokens} tokens. Parsing aborted.`, + ); + } + } + } +} +/** + * A helper function to describe a token as a string for debugging. + */ + +exports.Parser = Parser; + +function getTokenDesc(token) { + const value = token.value; + return getTokenKindDesc(token.kind) + (value != null ? ` "${value}"` : ''); +} +/** + * A helper function to describe a token kind as a string for debugging. + */ + +function getTokenKindDesc(kind) { + return (0, _lexer.isPunctuatorTokenKind)(kind) ? `"${kind}"` : kind; +} + + +/***/ }), + +/***/ 418: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.isConstValueNode = isConstValueNode; +exports.isDefinitionNode = isDefinitionNode; +exports.isExecutableDefinitionNode = isExecutableDefinitionNode; +exports.isSelectionNode = isSelectionNode; +exports.isTypeDefinitionNode = isTypeDefinitionNode; +exports.isTypeExtensionNode = isTypeExtensionNode; +exports.isTypeNode = isTypeNode; +exports.isTypeSystemDefinitionNode = isTypeSystemDefinitionNode; +exports.isTypeSystemExtensionNode = isTypeSystemExtensionNode; +exports.isValueNode = isValueNode; + +var _kinds = __nccwpck_require__(2881); + +function isDefinitionNode(node) { + return ( + isExecutableDefinitionNode(node) || + isTypeSystemDefinitionNode(node) || + isTypeSystemExtensionNode(node) + ); +} + +function isExecutableDefinitionNode(node) { + return ( + node.kind === _kinds.Kind.OPERATION_DEFINITION || + node.kind === _kinds.Kind.FRAGMENT_DEFINITION + ); +} + +function isSelectionNode(node) { + return ( + node.kind === _kinds.Kind.FIELD || + node.kind === _kinds.Kind.FRAGMENT_SPREAD || + node.kind === _kinds.Kind.INLINE_FRAGMENT + ); +} + +function isValueNode(node) { + return ( + node.kind === _kinds.Kind.VARIABLE || + node.kind === _kinds.Kind.INT || + node.kind === _kinds.Kind.FLOAT || + node.kind === _kinds.Kind.STRING || + node.kind === _kinds.Kind.BOOLEAN || + node.kind === _kinds.Kind.NULL || + node.kind === _kinds.Kind.ENUM || + node.kind === _kinds.Kind.LIST || + node.kind === _kinds.Kind.OBJECT + ); +} + +function isConstValueNode(node) { + return ( + isValueNode(node) && + (node.kind === _kinds.Kind.LIST + ? node.values.some(isConstValueNode) + : node.kind === _kinds.Kind.OBJECT + ? node.fields.some((field) => isConstValueNode(field.value)) + : node.kind !== _kinds.Kind.VARIABLE) + ); +} + +function isTypeNode(node) { + return ( + node.kind === _kinds.Kind.NAMED_TYPE || + node.kind === _kinds.Kind.LIST_TYPE || + node.kind === _kinds.Kind.NON_NULL_TYPE + ); +} + +function isTypeSystemDefinitionNode(node) { + return ( + node.kind === _kinds.Kind.SCHEMA_DEFINITION || + isTypeDefinitionNode(node) || + node.kind === _kinds.Kind.DIRECTIVE_DEFINITION + ); +} + +function isTypeDefinitionNode(node) { + return ( + node.kind === _kinds.Kind.SCALAR_TYPE_DEFINITION || + node.kind === _kinds.Kind.OBJECT_TYPE_DEFINITION || + node.kind === _kinds.Kind.INTERFACE_TYPE_DEFINITION || + node.kind === _kinds.Kind.UNION_TYPE_DEFINITION || + node.kind === _kinds.Kind.ENUM_TYPE_DEFINITION || + node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION + ); +} + +function isTypeSystemExtensionNode(node) { + return ( + node.kind === _kinds.Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node) + ); +} + +function isTypeExtensionNode(node) { + return ( + node.kind === _kinds.Kind.SCALAR_TYPE_EXTENSION || + node.kind === _kinds.Kind.OBJECT_TYPE_EXTENSION || + node.kind === _kinds.Kind.INTERFACE_TYPE_EXTENSION || + node.kind === _kinds.Kind.UNION_TYPE_EXTENSION || + node.kind === _kinds.Kind.ENUM_TYPE_EXTENSION || + node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION + ); +} + + +/***/ }), + +/***/ 7098: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.printLocation = printLocation; +exports.printSourceLocation = printSourceLocation; + +var _location = __nccwpck_require__(1955); + +/** + * Render a helpful description of the location in the GraphQL Source document. + */ +function printLocation(location) { + return printSourceLocation( + location.source, + (0, _location.getLocation)(location.source, location.start), + ); +} +/** + * Render a helpful description of the location in the GraphQL Source document. + */ + +function printSourceLocation(source, sourceLocation) { + const firstLineColumnOffset = source.locationOffset.column - 1; + const body = ''.padStart(firstLineColumnOffset) + source.body; + const lineIndex = sourceLocation.line - 1; + const lineOffset = source.locationOffset.line - 1; + const lineNum = sourceLocation.line + lineOffset; + const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0; + const columnNum = sourceLocation.column + columnOffset; + const locationStr = `${source.name}:${lineNum}:${columnNum}\n`; + const lines = body.split(/\r\n|[\n\r]/g); + const locationLine = lines[lineIndex]; // Special case for minified documents + + if (locationLine.length > 120) { + const subLineIndex = Math.floor(columnNum / 80); + const subLineColumnNum = columnNum % 80; + const subLines = []; + + for (let i = 0; i < locationLine.length; i += 80) { + subLines.push(locationLine.slice(i, i + 80)); + } + + return ( + locationStr + + printPrefixedLines([ + [`${lineNum} |`, subLines[0]], + ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]), + ['|', '^'.padStart(subLineColumnNum)], + ['|', subLines[subLineIndex + 1]], + ]) + ); + } + + return ( + locationStr + + printPrefixedLines([ + // Lines specified like this: ["prefix", "string"], + [`${lineNum - 1} |`, lines[lineIndex - 1]], + [`${lineNum} |`, locationLine], + ['|', '^'.padStart(columnNum)], + [`${lineNum + 1} |`, lines[lineIndex + 1]], + ]) + ); +} + +function printPrefixedLines(lines) { + const existingLines = lines.filter(([_, line]) => line !== undefined); + const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length)); + return existingLines + .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : '')) + .join('\n'); +} + + +/***/ }), + +/***/ 8112: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.printString = printString; + +/** + * Prints a string as a GraphQL StringValue literal. Replaces control characters + * and excluded characters (" U+0022 and \\ U+005C) with escape sequences. + */ +function printString(str) { + return `"${str.replace(escapedRegExp, escapedReplacer)}"`; +} + +const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g; + +function escapedReplacer(str) { + return escapeSequences[str.charCodeAt(0)]; +} // prettier-ignore + +const escapeSequences = [ + '\\u0000', + '\\u0001', + '\\u0002', + '\\u0003', + '\\u0004', + '\\u0005', + '\\u0006', + '\\u0007', + '\\b', + '\\t', + '\\n', + '\\u000B', + '\\f', + '\\r', + '\\u000E', + '\\u000F', + '\\u0010', + '\\u0011', + '\\u0012', + '\\u0013', + '\\u0014', + '\\u0015', + '\\u0016', + '\\u0017', + '\\u0018', + '\\u0019', + '\\u001A', + '\\u001B', + '\\u001C', + '\\u001D', + '\\u001E', + '\\u001F', + '', + '', + '\\"', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', // 2F + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', // 3F + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', // 4F + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '\\\\', + '', + '', + '', // 5F + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', // 6F + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '\\u007F', + '\\u0080', + '\\u0081', + '\\u0082', + '\\u0083', + '\\u0084', + '\\u0085', + '\\u0086', + '\\u0087', + '\\u0088', + '\\u0089', + '\\u008A', + '\\u008B', + '\\u008C', + '\\u008D', + '\\u008E', + '\\u008F', + '\\u0090', + '\\u0091', + '\\u0092', + '\\u0093', + '\\u0094', + '\\u0095', + '\\u0096', + '\\u0097', + '\\u0098', + '\\u0099', + '\\u009A', + '\\u009B', + '\\u009C', + '\\u009D', + '\\u009E', + '\\u009F', +]; + + +/***/ }), + +/***/ 4758: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.print = print; + +var _blockString = __nccwpck_require__(510); + +var _printString = __nccwpck_require__(8112); + +var _visitor = __nccwpck_require__(7848); + +/** + * Converts an AST into a string, using one set of reasonable + * formatting rules. + */ +function print(ast) { + return (0, _visitor.visit)(ast, printDocASTReducer); +} + +const MAX_LINE_LENGTH = 80; +const printDocASTReducer = { + Name: { + leave: (node) => node.value, + }, + Variable: { + leave: (node) => '$' + node.name, + }, + // Document + Document: { + leave: (node) => join(node.definitions, '\n\n'), + }, + OperationDefinition: { + leave(node) { + const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')'); + const prefix = join( + [ + node.operation, + join([node.name, varDefs]), + join(node.directives, ' '), + ], + ' ', + ); // Anonymous queries with no directives or variable definitions can use + // the query short form. + + return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet; + }, + }, + VariableDefinition: { + leave: ({ variable, type, defaultValue, directives }) => + variable + + ': ' + + type + + wrap(' = ', defaultValue) + + wrap(' ', join(directives, ' ')), + }, + SelectionSet: { + leave: ({ selections }) => block(selections), + }, + Field: { + leave({ alias, name, arguments: args, directives, selectionSet }) { + const prefix = wrap('', alias, ': ') + name; + let argsLine = prefix + wrap('(', join(args, ', '), ')'); + + if (argsLine.length > MAX_LINE_LENGTH) { + argsLine = prefix + wrap('(\n', indent(join(args, '\n')), '\n)'); + } + + return join([argsLine, join(directives, ' '), selectionSet], ' '); + }, + }, + Argument: { + leave: ({ name, value }) => name + ': ' + value, + }, + // Fragments + FragmentSpread: { + leave: ({ name, directives }) => + '...' + name + wrap(' ', join(directives, ' ')), + }, + InlineFragment: { + leave: ({ typeCondition, directives, selectionSet }) => + join( + [ + '...', + wrap('on ', typeCondition), + join(directives, ' '), + selectionSet, + ], + ' ', + ), + }, + FragmentDefinition: { + leave: ( + { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed + ) => + // or removed in the future. + `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` + + `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` + + selectionSet, + }, + // Value + IntValue: { + leave: ({ value }) => value, + }, + FloatValue: { + leave: ({ value }) => value, + }, + StringValue: { + leave: ({ value, block: isBlockString }) => + isBlockString + ? (0, _blockString.printBlockString)(value) + : (0, _printString.printString)(value), + }, + BooleanValue: { + leave: ({ value }) => (value ? 'true' : 'false'), + }, + NullValue: { + leave: () => 'null', + }, + EnumValue: { + leave: ({ value }) => value, + }, + ListValue: { + leave: ({ values }) => '[' + join(values, ', ') + ']', + }, + ObjectValue: { + leave: ({ fields }) => '{' + join(fields, ', ') + '}', + }, + ObjectField: { + leave: ({ name, value }) => name + ': ' + value, + }, + // Directive + Directive: { + leave: ({ name, arguments: args }) => + '@' + name + wrap('(', join(args, ', '), ')'), + }, + // Type + NamedType: { + leave: ({ name }) => name, + }, + ListType: { + leave: ({ type }) => '[' + type + ']', + }, + NonNullType: { + leave: ({ type }) => type + '!', + }, + // Type System Definitions + SchemaDefinition: { + leave: ({ description, directives, operationTypes }) => + wrap('', description, '\n') + + join(['schema', join(directives, ' '), block(operationTypes)], ' '), + }, + OperationTypeDefinition: { + leave: ({ operation, type }) => operation + ': ' + type, + }, + ScalarTypeDefinition: { + leave: ({ description, name, directives }) => + wrap('', description, '\n') + + join(['scalar', name, join(directives, ' ')], ' '), + }, + ObjectTypeDefinition: { + leave: ({ description, name, interfaces, directives, fields }) => + wrap('', description, '\n') + + join( + [ + 'type', + name, + wrap('implements ', join(interfaces, ' & ')), + join(directives, ' '), + block(fields), + ], + ' ', + ), + }, + FieldDefinition: { + leave: ({ description, name, arguments: args, type, directives }) => + wrap('', description, '\n') + + name + + (hasMultilineItems(args) + ? wrap('(\n', indent(join(args, '\n')), '\n)') + : wrap('(', join(args, ', '), ')')) + + ': ' + + type + + wrap(' ', join(directives, ' ')), + }, + InputValueDefinition: { + leave: ({ description, name, type, defaultValue, directives }) => + wrap('', description, '\n') + + join( + [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], + ' ', + ), + }, + InterfaceTypeDefinition: { + leave: ({ description, name, interfaces, directives, fields }) => + wrap('', description, '\n') + + join( + [ + 'interface', + name, + wrap('implements ', join(interfaces, ' & ')), + join(directives, ' '), + block(fields), + ], + ' ', + ), + }, + UnionTypeDefinition: { + leave: ({ description, name, directives, types }) => + wrap('', description, '\n') + + join( + ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))], + ' ', + ), + }, + EnumTypeDefinition: { + leave: ({ description, name, directives, values }) => + wrap('', description, '\n') + + join(['enum', name, join(directives, ' '), block(values)], ' '), + }, + EnumValueDefinition: { + leave: ({ description, name, directives }) => + wrap('', description, '\n') + join([name, join(directives, ' ')], ' '), + }, + InputObjectTypeDefinition: { + leave: ({ description, name, directives, fields }) => + wrap('', description, '\n') + + join(['input', name, join(directives, ' '), block(fields)], ' '), + }, + DirectiveDefinition: { + leave: ({ description, name, arguments: args, repeatable, locations }) => + wrap('', description, '\n') + + 'directive @' + + name + + (hasMultilineItems(args) + ? wrap('(\n', indent(join(args, '\n')), '\n)') + : wrap('(', join(args, ', '), ')')) + + (repeatable ? ' repeatable' : '') + + ' on ' + + join(locations, ' | '), + }, + SchemaExtension: { + leave: ({ directives, operationTypes }) => + join( + ['extend schema', join(directives, ' '), block(operationTypes)], + ' ', + ), + }, + ScalarTypeExtension: { + leave: ({ name, directives }) => + join(['extend scalar', name, join(directives, ' ')], ' '), + }, + ObjectTypeExtension: { + leave: ({ name, interfaces, directives, fields }) => + join( + [ + 'extend type', + name, + wrap('implements ', join(interfaces, ' & ')), + join(directives, ' '), + block(fields), + ], + ' ', + ), + }, + InterfaceTypeExtension: { + leave: ({ name, interfaces, directives, fields }) => + join( + [ + 'extend interface', + name, + wrap('implements ', join(interfaces, ' & ')), + join(directives, ' '), + block(fields), + ], + ' ', + ), + }, + UnionTypeExtension: { + leave: ({ name, directives, types }) => + join( + [ + 'extend union', + name, + join(directives, ' '), + wrap('= ', join(types, ' | ')), + ], + ' ', + ), + }, + EnumTypeExtension: { + leave: ({ name, directives, values }) => + join(['extend enum', name, join(directives, ' '), block(values)], ' '), + }, + InputObjectTypeExtension: { + leave: ({ name, directives, fields }) => + join(['extend input', name, join(directives, ' '), block(fields)], ' '), + }, +}; +/** + * Given maybeArray, print an empty string if it is null or empty, otherwise + * print all items together separated by separator if provided + */ + +function join(maybeArray, separator = '') { + var _maybeArray$filter$jo; + + return (_maybeArray$filter$jo = + maybeArray === null || maybeArray === void 0 + ? void 0 + : maybeArray.filter((x) => x).join(separator)) !== null && + _maybeArray$filter$jo !== void 0 + ? _maybeArray$filter$jo + : ''; +} +/** + * Given array, print each item on its own line, wrapped in an indented `{ }` block. + */ + +function block(array) { + return wrap('{\n', indent(join(array, '\n')), '\n}'); +} +/** + * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string. + */ + +function wrap(start, maybeString, end = '') { + return maybeString != null && maybeString !== '' + ? start + maybeString + end + : ''; +} + +function indent(str) { + return wrap(' ', str.replace(/\n/g, '\n ')); +} + +function hasMultilineItems(maybeArray) { + var _maybeArray$some; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + return (_maybeArray$some = + maybeArray === null || maybeArray === void 0 + ? void 0 + : maybeArray.some((str) => str.includes('\n'))) !== null && + _maybeArray$some !== void 0 + ? _maybeArray$some + : false; +} + + +/***/ }), + +/***/ 4934: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.Source = void 0; +exports.isSource = isSource; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _instanceOf = __nccwpck_require__(6524); + +/** + * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are + * optional, but they are useful for clients who store GraphQL documents in source files. + * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might + * be useful for `name` to be `"Foo.graphql"` and location to be `{ line: 40, column: 1 }`. + * The `line` and `column` properties in `locationOffset` are 1-indexed. + */ +class Source { + constructor( + body, + name = 'GraphQL request', + locationOffset = { + line: 1, + column: 1, + }, + ) { + typeof body === 'string' || + (0, _devAssert.devAssert)( + false, + `Body must be a string. Received: ${(0, _inspect.inspect)(body)}.`, + ); + this.body = body; + this.name = name; + this.locationOffset = locationOffset; + this.locationOffset.line > 0 || + (0, _devAssert.devAssert)( + false, + 'line in locationOffset is 1-indexed and must be positive.', + ); + this.locationOffset.column > 0 || + (0, _devAssert.devAssert)( + false, + 'column in locationOffset is 1-indexed and must be positive.', + ); + } + + get [Symbol.toStringTag]() { + return 'Source'; + } +} +/** + * Test if the given value is a Source object. + * + * @internal + */ + +exports.Source = Source; + +function isSource(source) { + return (0, _instanceOf.instanceOf)(source, Source); +} + + +/***/ }), + +/***/ 9229: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.TokenKind = void 0; + +/** + * An exported enum describing the different kinds of tokens that the + * lexer emits. + */ +var TokenKind; +exports.TokenKind = TokenKind; + +(function (TokenKind) { + TokenKind['SOF'] = ''; + TokenKind['EOF'] = ''; + TokenKind['BANG'] = '!'; + TokenKind['DOLLAR'] = '$'; + TokenKind['AMP'] = '&'; + TokenKind['PAREN_L'] = '('; + TokenKind['PAREN_R'] = ')'; + TokenKind['SPREAD'] = '...'; + TokenKind['COLON'] = ':'; + TokenKind['EQUALS'] = '='; + TokenKind['AT'] = '@'; + TokenKind['BRACKET_L'] = '['; + TokenKind['BRACKET_R'] = ']'; + TokenKind['BRACE_L'] = '{'; + TokenKind['PIPE'] = '|'; + TokenKind['BRACE_R'] = '}'; + TokenKind['NAME'] = 'Name'; + TokenKind['INT'] = 'Int'; + TokenKind['FLOAT'] = 'Float'; + TokenKind['STRING'] = 'String'; + TokenKind['BLOCK_STRING'] = 'BlockString'; + TokenKind['COMMENT'] = 'Comment'; +})(TokenKind || (exports.TokenKind = TokenKind = {})); +/** + * The enum type representing the token kinds values. + * + * @deprecated Please use `TokenKind`. Will be remove in v17. + */ + + +/***/ }), + +/***/ 7848: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.BREAK = void 0; +exports.getEnterLeaveForKind = getEnterLeaveForKind; +exports.getVisitFn = getVisitFn; +exports.visit = visit; +exports.visitInParallel = visitInParallel; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _ast = __nccwpck_require__(906); + +var _kinds = __nccwpck_require__(2881); + +const BREAK = Object.freeze({}); +/** + * visit() will walk through an AST using a depth-first traversal, calling + * the visitor's enter function at each node in the traversal, and calling the + * leave function after visiting that node and all of its child nodes. + * + * By returning different values from the enter and leave functions, the + * behavior of the visitor can be altered, including skipping over a sub-tree of + * the AST (by returning false), editing the AST by returning a value or null + * to remove the value, or to stop the whole traversal by returning BREAK. + * + * When using visit() to edit an AST, the original AST will not be modified, and + * a new version of the AST with the changes applied will be returned from the + * visit function. + * + * ```ts + * const editedAST = visit(ast, { + * enter(node, key, parent, path, ancestors) { + * // @return + * // undefined: no action + * // false: skip visiting this node + * // visitor.BREAK: stop visiting altogether + * // null: delete this node + * // any value: replace this node with the returned value + * }, + * leave(node, key, parent, path, ancestors) { + * // @return + * // undefined: no action + * // false: no action + * // visitor.BREAK: stop visiting altogether + * // null: delete this node + * // any value: replace this node with the returned value + * } + * }); + * ``` + * + * Alternatively to providing enter() and leave() functions, a visitor can + * instead provide functions named the same as the kinds of AST nodes, or + * enter/leave visitors at a named key, leading to three permutations of the + * visitor API: + * + * 1) Named visitors triggered when entering a node of a specific kind. + * + * ```ts + * visit(ast, { + * Kind(node) { + * // enter the "Kind" node + * } + * }) + * ``` + * + * 2) Named visitors that trigger upon entering and leaving a node of a specific kind. + * + * ```ts + * visit(ast, { + * Kind: { + * enter(node) { + * // enter the "Kind" node + * } + * leave(node) { + * // leave the "Kind" node + * } + * } + * }) + * ``` + * + * 3) Generic visitors that trigger upon entering and leaving any node. + * + * ```ts + * visit(ast, { + * enter(node) { + * // enter any node + * }, + * leave(node) { + * // leave any node + * } + * }) + * ``` + */ + +exports.BREAK = BREAK; + +function visit(root, visitor, visitorKeys = _ast.QueryDocumentKeys) { + const enterLeaveMap = new Map(); + + for (const kind of Object.values(_kinds.Kind)) { + enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind)); + } + + + let stack = undefined; + let inArray = Array.isArray(root); + let keys = [root]; + let index = -1; + let edits = []; + let node = root; + let key = undefined; + let parent = undefined; + const path = []; + const ancestors = []; + + + do { + index++; + const isLeaving = index === keys.length; + const isEdited = isLeaving && edits.length !== 0; + + if (isLeaving) { + key = ancestors.length === 0 ? undefined : path[path.length - 1]; + node = parent; + parent = ancestors.pop(); + + if (isEdited) { + if (inArray) { + node = node.slice(); + let editOffset = 0; + + for (const [editKey, editValue] of edits) { + const arrayKey = editKey - editOffset; + + if (editValue === null) { + node.splice(arrayKey, 1); + editOffset++; + } else { + node[arrayKey] = editValue; + } + } + } else { + node = Object.defineProperties( + {}, + Object.getOwnPropertyDescriptors(node), + ); + + for (const [editKey, editValue] of edits) { + node[editKey] = editValue; + } + } + } + + index = stack.index; + keys = stack.keys; + edits = stack.edits; + inArray = stack.inArray; + stack = stack.prev; + } else if (parent) { + key = inArray ? index : keys[index]; + node = parent[key]; + + if (node === null || node === undefined) { + continue; + } + + path.push(key); + } + + let result; + + if (!Array.isArray(node)) { + var _enterLeaveMap$get, _enterLeaveMap$get2; + + (0, _ast.isNode)(node) || + (0, _devAssert.devAssert)( + false, + `Invalid AST Node: ${(0, _inspect.inspect)(node)}.`, + ); + const visitFn = isLeaving + ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null || + _enterLeaveMap$get === void 0 + ? void 0 + : _enterLeaveMap$get.leave + : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null || + _enterLeaveMap$get2 === void 0 + ? void 0 + : _enterLeaveMap$get2.enter; + result = + visitFn === null || visitFn === void 0 + ? void 0 + : visitFn.call(visitor, node, key, parent, path, ancestors); + + if (result === BREAK) { + break; + } + + if (result === false) { + if (!isLeaving) { + path.pop(); + continue; + } + } else if (result !== undefined) { + edits.push([key, result]); + + if (!isLeaving) { + if ((0, _ast.isNode)(result)) { + node = result; + } else { + path.pop(); + continue; + } + } + } + } + + if (result === undefined && isEdited) { + edits.push([key, node]); + } + + if (isLeaving) { + path.pop(); + } else { + var _node$kind; + + stack = { + inArray, + index, + keys, + edits, + prev: stack, + }; + inArray = Array.isArray(node); + keys = inArray + ? node + : (_node$kind = visitorKeys[node.kind]) !== null && + _node$kind !== void 0 + ? _node$kind + : []; + index = -1; + edits = []; + + if (parent) { + ancestors.push(parent); + } + + parent = node; + } + } while (stack !== undefined); + + if (edits.length !== 0) { + // New root + return edits[edits.length - 1][1]; + } + + return root; +} +/** + * Creates a new visitor instance which delegates to many visitors to run in + * parallel. Each visitor will be visited for each node before moving on. + * + * If a prior visitor edits a node, no following visitors will see that node. + */ + +function visitInParallel(visitors) { + const skipping = new Array(visitors.length).fill(null); + const mergedVisitor = Object.create(null); + + for (const kind of Object.values(_kinds.Kind)) { + let hasVisitor = false; + const enterList = new Array(visitors.length).fill(undefined); + const leaveList = new Array(visitors.length).fill(undefined); + + for (let i = 0; i < visitors.length; ++i) { + const { enter, leave } = getEnterLeaveForKind(visitors[i], kind); + hasVisitor || (hasVisitor = enter != null || leave != null); + enterList[i] = enter; + leaveList[i] = leave; + } + + if (!hasVisitor) { + continue; + } + + const mergedEnterLeave = { + enter(...args) { + const node = args[0]; + + for (let i = 0; i < visitors.length; i++) { + if (skipping[i] === null) { + var _enterList$i; + + const result = + (_enterList$i = enterList[i]) === null || _enterList$i === void 0 + ? void 0 + : _enterList$i.apply(visitors[i], args); + + if (result === false) { + skipping[i] = node; + } else if (result === BREAK) { + skipping[i] = BREAK; + } else if (result !== undefined) { + return result; + } + } + } + }, + + leave(...args) { + const node = args[0]; + + for (let i = 0; i < visitors.length; i++) { + if (skipping[i] === null) { + var _leaveList$i; + + const result = + (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0 + ? void 0 + : _leaveList$i.apply(visitors[i], args); + + if (result === BREAK) { + skipping[i] = BREAK; + } else if (result !== undefined && result !== false) { + return result; + } + } else if (skipping[i] === node) { + skipping[i] = null; + } + } + }, + }; + mergedVisitor[kind] = mergedEnterLeave; + } + + return mergedVisitor; +} +/** + * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind. + */ + +function getEnterLeaveForKind(visitor, kind) { + const kindVisitor = visitor[kind]; + + if (typeof kindVisitor === 'object') { + // { Kind: { enter() {}, leave() {} } } + return kindVisitor; + } else if (typeof kindVisitor === 'function') { + // { Kind() {} } + return { + enter: kindVisitor, + leave: undefined, + }; + } // { enter() {}, leave() {} } + + return { + enter: visitor.enter, + leave: visitor.leave, + }; +} +/** + * Given a visitor instance, if it is leaving or not, and a node kind, return + * the function the visitor runtime should call. + * + * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17 + */ + +/* c8 ignore next 8 */ + +function getVisitFn(visitor, kind, isLeaving) { + const { enter, leave } = getEnterLeaveForKind(visitor, kind); + return isLeaving ? leave : enter; +} + + +/***/ }), + +/***/ 5275: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.assertEnumValueName = assertEnumValueName; +exports.assertName = assertName; + +var _devAssert = __nccwpck_require__(7437); + +var _GraphQLError = __nccwpck_require__(1753); + +var _characterClasses = __nccwpck_require__(4709); + +/** + * Upholds the spec rules about naming. + */ +function assertName(name) { + name != null || (0, _devAssert.devAssert)(false, 'Must provide name.'); + typeof name === 'string' || + (0, _devAssert.devAssert)(false, 'Expected name to be a string.'); + + if (name.length === 0) { + throw new _GraphQLError.GraphQLError( + 'Expected name to be a non-empty string.', + ); + } + + for (let i = 1; i < name.length; ++i) { + if (!(0, _characterClasses.isNameContinue)(name.charCodeAt(i))) { + throw new _GraphQLError.GraphQLError( + `Names must only contain [_a-zA-Z0-9] but "${name}" does not.`, + ); + } + } + + if (!(0, _characterClasses.isNameStart)(name.charCodeAt(0))) { + throw new _GraphQLError.GraphQLError( + `Names must start with [_a-zA-Z] but "${name}" does not.`, + ); + } + + return name; +} +/** + * Upholds the spec rules about naming enum values. + * + * @internal + */ + +function assertEnumValueName(name) { + if (name === 'true' || name === 'false' || name === 'null') { + throw new _GraphQLError.GraphQLError( + `Enum values cannot be named: ${name}`, + ); + } + + return assertName(name); +} + + +/***/ }), + +/***/ 699: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.GraphQLUnionType = + exports.GraphQLScalarType = + exports.GraphQLObjectType = + exports.GraphQLNonNull = + exports.GraphQLList = + exports.GraphQLInterfaceType = + exports.GraphQLInputObjectType = + exports.GraphQLEnumType = + void 0; +exports.argsToArgsConfig = argsToArgsConfig; +exports.assertAbstractType = assertAbstractType; +exports.assertCompositeType = assertCompositeType; +exports.assertEnumType = assertEnumType; +exports.assertInputObjectType = assertInputObjectType; +exports.assertInputType = assertInputType; +exports.assertInterfaceType = assertInterfaceType; +exports.assertLeafType = assertLeafType; +exports.assertListType = assertListType; +exports.assertNamedType = assertNamedType; +exports.assertNonNullType = assertNonNullType; +exports.assertNullableType = assertNullableType; +exports.assertObjectType = assertObjectType; +exports.assertOutputType = assertOutputType; +exports.assertScalarType = assertScalarType; +exports.assertType = assertType; +exports.assertUnionType = assertUnionType; +exports.assertWrappingType = assertWrappingType; +exports.defineArguments = defineArguments; +exports.getNamedType = getNamedType; +exports.getNullableType = getNullableType; +exports.isAbstractType = isAbstractType; +exports.isCompositeType = isCompositeType; +exports.isEnumType = isEnumType; +exports.isInputObjectType = isInputObjectType; +exports.isInputType = isInputType; +exports.isInterfaceType = isInterfaceType; +exports.isLeafType = isLeafType; +exports.isListType = isListType; +exports.isNamedType = isNamedType; +exports.isNonNullType = isNonNullType; +exports.isNullableType = isNullableType; +exports.isObjectType = isObjectType; +exports.isOutputType = isOutputType; +exports.isRequiredArgument = isRequiredArgument; +exports.isRequiredInputField = isRequiredInputField; +exports.isScalarType = isScalarType; +exports.isType = isType; +exports.isUnionType = isUnionType; +exports.isWrappingType = isWrappingType; +exports.resolveObjMapThunk = resolveObjMapThunk; +exports.resolveReadonlyArrayThunk = resolveReadonlyArrayThunk; + +var _devAssert = __nccwpck_require__(7437); + +var _didYouMean = __nccwpck_require__(1627); + +var _identityFunc = __nccwpck_require__(3374); + +var _inspect = __nccwpck_require__(3707); + +var _instanceOf = __nccwpck_require__(6524); + +var _isObjectLike = __nccwpck_require__(7502); + +var _keyMap = __nccwpck_require__(1529); + +var _keyValMap = __nccwpck_require__(4876); + +var _mapValue = __nccwpck_require__(9261); + +var _suggestionList = __nccwpck_require__(3046); + +var _toObjMap = __nccwpck_require__(1594); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _printer = __nccwpck_require__(4758); + +var _valueFromASTUntyped = __nccwpck_require__(7252); + +var _assertName = __nccwpck_require__(5275); + +function isType(type) { + return ( + isScalarType(type) || + isObjectType(type) || + isInterfaceType(type) || + isUnionType(type) || + isEnumType(type) || + isInputObjectType(type) || + isListType(type) || + isNonNullType(type) + ); +} + +function assertType(type) { + if (!isType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL type.`, + ); + } + + return type; +} +/** + * There are predicates for each kind of GraphQL type. + */ + +function isScalarType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLScalarType); +} + +function assertScalarType(type) { + if (!isScalarType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Scalar type.`, + ); + } + + return type; +} + +function isObjectType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLObjectType); +} + +function assertObjectType(type) { + if (!isObjectType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Object type.`, + ); + } + + return type; +} + +function isInterfaceType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLInterfaceType); +} + +function assertInterfaceType(type) { + if (!isInterfaceType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Interface type.`, + ); + } + + return type; +} + +function isUnionType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLUnionType); +} + +function assertUnionType(type) { + if (!isUnionType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Union type.`, + ); + } + + return type; +} + +function isEnumType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLEnumType); +} + +function assertEnumType(type) { + if (!isEnumType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Enum type.`, + ); + } + + return type; +} + +function isInputObjectType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLInputObjectType); +} + +function assertInputObjectType(type) { + if (!isInputObjectType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)( + type, + )} to be a GraphQL Input Object type.`, + ); + } + + return type; +} + +function isListType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLList); +} + +function assertListType(type) { + if (!isListType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL List type.`, + ); + } + + return type; +} + +function isNonNullType(type) { + return (0, _instanceOf.instanceOf)(type, GraphQLNonNull); +} + +function assertNonNullType(type) { + if (!isNonNullType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Non-Null type.`, + ); + } + + return type; +} +/** + * These types may be used as input types for arguments and directives. + */ + +function isInputType(type) { + return ( + isScalarType(type) || + isEnumType(type) || + isInputObjectType(type) || + (isWrappingType(type) && isInputType(type.ofType)) + ); +} + +function assertInputType(type) { + if (!isInputType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL input type.`, + ); + } + + return type; +} +/** + * These types may be used as output types as the result of fields. + */ + +function isOutputType(type) { + return ( + isScalarType(type) || + isObjectType(type) || + isInterfaceType(type) || + isUnionType(type) || + isEnumType(type) || + (isWrappingType(type) && isOutputType(type.ofType)) + ); +} + +function assertOutputType(type) { + if (!isOutputType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL output type.`, + ); + } + + return type; +} +/** + * These types may describe types which may be leaf values. + */ + +function isLeafType(type) { + return isScalarType(type) || isEnumType(type); +} + +function assertLeafType(type) { + if (!isLeafType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL leaf type.`, + ); + } + + return type; +} +/** + * These types may describe the parent context of a selection set. + */ + +function isCompositeType(type) { + return isObjectType(type) || isInterfaceType(type) || isUnionType(type); +} + +function assertCompositeType(type) { + if (!isCompositeType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL composite type.`, + ); + } + + return type; +} +/** + * These types may describe the parent context of a selection set. + */ + +function isAbstractType(type) { + return isInterfaceType(type) || isUnionType(type); +} + +function assertAbstractType(type) { + if (!isAbstractType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL abstract type.`, + ); + } + + return type; +} +/** + * List Type Wrapper + * + * A list is a wrapping type which points to another type. + * Lists are often created within the context of defining the fields of + * an object type. + * + * Example: + * + * ```ts + * const PersonType = new GraphQLObjectType({ + * name: 'Person', + * fields: () => ({ + * parents: { type: new GraphQLList(PersonType) }, + * children: { type: new GraphQLList(PersonType) }, + * }) + * }) + * ``` + */ + +class GraphQLList { + constructor(ofType) { + isType(ofType) || + (0, _devAssert.devAssert)( + false, + `Expected ${(0, _inspect.inspect)(ofType)} to be a GraphQL type.`, + ); + this.ofType = ofType; + } + + get [Symbol.toStringTag]() { + return 'GraphQLList'; + } + + toString() { + return '[' + String(this.ofType) + ']'; + } + + toJSON() { + return this.toString(); + } +} +/** + * Non-Null Type Wrapper + * + * A non-null is a wrapping type which points to another type. + * Non-null types enforce that their values are never null and can ensure + * an error is raised if this ever occurs during a request. It is useful for + * fields which you can make a strong guarantee on non-nullability, for example + * usually the id field of a database row will never be null. + * + * Example: + * + * ```ts + * const RowType = new GraphQLObjectType({ + * name: 'Row', + * fields: () => ({ + * id: { type: new GraphQLNonNull(GraphQLString) }, + * }) + * }) + * ``` + * Note: the enforcement of non-nullability occurs within the executor. + */ + +exports.GraphQLList = GraphQLList; + +class GraphQLNonNull { + constructor(ofType) { + isNullableType(ofType) || + (0, _devAssert.devAssert)( + false, + `Expected ${(0, _inspect.inspect)( + ofType, + )} to be a GraphQL nullable type.`, + ); + this.ofType = ofType; + } + + get [Symbol.toStringTag]() { + return 'GraphQLNonNull'; + } + + toString() { + return String(this.ofType) + '!'; + } + + toJSON() { + return this.toString(); + } +} +/** + * These types wrap and modify other types + */ + +exports.GraphQLNonNull = GraphQLNonNull; + +function isWrappingType(type) { + return isListType(type) || isNonNullType(type); +} + +function assertWrappingType(type) { + if (!isWrappingType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL wrapping type.`, + ); + } + + return type; +} +/** + * These types can all accept null as a value. + */ + +function isNullableType(type) { + return isType(type) && !isNonNullType(type); +} + +function assertNullableType(type) { + if (!isNullableType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL nullable type.`, + ); + } + + return type; +} + +function getNullableType(type) { + if (type) { + return isNonNullType(type) ? type.ofType : type; + } +} +/** + * These named types do not include modifiers like List or NonNull. + */ + +function isNamedType(type) { + return ( + isScalarType(type) || + isObjectType(type) || + isInterfaceType(type) || + isUnionType(type) || + isEnumType(type) || + isInputObjectType(type) + ); +} + +function assertNamedType(type) { + if (!isNamedType(type)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL named type.`, + ); + } + + return type; +} + +function getNamedType(type) { + if (type) { + let unwrappedType = type; + + while (isWrappingType(unwrappedType)) { + unwrappedType = unwrappedType.ofType; + } + + return unwrappedType; + } +} +/** + * Used while defining GraphQL types to allow for circular references in + * otherwise immutable type definitions. + */ + +function resolveReadonlyArrayThunk(thunk) { + return typeof thunk === 'function' ? thunk() : thunk; +} + +function resolveObjMapThunk(thunk) { + return typeof thunk === 'function' ? thunk() : thunk; +} +/** + * Custom extensions + * + * @remarks + * Use a unique identifier name for your extension, for example the name of + * your library or project. Do not use a shortened identifier as this increases + * the risk of conflicts. We recommend you add at most one extension field, + * an object which can contain all the values you need. + */ + +/** + * Scalar Type Definition + * + * The leaf values of any request and input values to arguments are + * Scalars (or Enums) and are defined with a name and a series of functions + * used to parse input from ast or variables and to ensure validity. + * + * If a type's serialize function returns `null` or does not return a value + * (i.e. it returns `undefined`) then an error will be raised and a `null` + * value will be returned in the response. It is always better to validate + * + * Example: + * + * ```ts + * const OddType = new GraphQLScalarType({ + * name: 'Odd', + * serialize(value) { + * if (!Number.isFinite(value)) { + * throw new Error( + * `Scalar "Odd" cannot represent "${value}" since it is not a finite number.`, + * ); + * } + * + * if (value % 2 === 0) { + * throw new Error(`Scalar "Odd" cannot represent "${value}" since it is even.`); + * } + * return value; + * } + * }); + * ``` + */ +class GraphQLScalarType { + constructor(config) { + var _config$parseValue, + _config$serialize, + _config$parseLiteral, + _config$extensionASTN; + + const parseValue = + (_config$parseValue = config.parseValue) !== null && + _config$parseValue !== void 0 + ? _config$parseValue + : _identityFunc.identityFunc; + this.name = (0, _assertName.assertName)(config.name); + this.description = config.description; + this.specifiedByURL = config.specifiedByURL; + this.serialize = + (_config$serialize = config.serialize) !== null && + _config$serialize !== void 0 + ? _config$serialize + : _identityFunc.identityFunc; + this.parseValue = parseValue; + this.parseLiteral = + (_config$parseLiteral = config.parseLiteral) !== null && + _config$parseLiteral !== void 0 + ? _config$parseLiteral + : (node, variables) => + parseValue( + (0, _valueFromASTUntyped.valueFromASTUntyped)(node, variables), + ); + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + this.extensionASTNodes = + (_config$extensionASTN = config.extensionASTNodes) !== null && + _config$extensionASTN !== void 0 + ? _config$extensionASTN + : []; + config.specifiedByURL == null || + typeof config.specifiedByURL === 'string' || + (0, _devAssert.devAssert)( + false, + `${this.name} must provide "specifiedByURL" as a string, ` + + `but got: ${(0, _inspect.inspect)(config.specifiedByURL)}.`, + ); + config.serialize == null || + typeof config.serialize === 'function' || + (0, _devAssert.devAssert)( + false, + `${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`, + ); + + if (config.parseLiteral) { + (typeof config.parseValue === 'function' && + typeof config.parseLiteral === 'function') || + (0, _devAssert.devAssert)( + false, + `${this.name} must provide both "parseValue" and "parseLiteral" functions.`, + ); + } + } + + get [Symbol.toStringTag]() { + return 'GraphQLScalarType'; + } + + toConfig() { + return { + name: this.name, + description: this.description, + specifiedByURL: this.specifiedByURL, + serialize: this.serialize, + parseValue: this.parseValue, + parseLiteral: this.parseLiteral, + extensions: this.extensions, + astNode: this.astNode, + extensionASTNodes: this.extensionASTNodes, + }; + } + + toString() { + return this.name; + } + + toJSON() { + return this.toString(); + } +} + +exports.GraphQLScalarType = GraphQLScalarType; + +/** + * Object Type Definition + * + * Almost all of the GraphQL types you define will be object types. Object types + * have a name, but most importantly describe their fields. + * + * Example: + * + * ```ts + * const AddressType = new GraphQLObjectType({ + * name: 'Address', + * fields: { + * street: { type: GraphQLString }, + * number: { type: GraphQLInt }, + * formatted: { + * type: GraphQLString, + * resolve(obj) { + * return obj.number + ' ' + obj.street + * } + * } + * } + * }); + * ``` + * + * When two types need to refer to each other, or a type needs to refer to + * itself in a field, you can use a function expression (aka a closure or a + * thunk) to supply the fields lazily. + * + * Example: + * + * ```ts + * const PersonType = new GraphQLObjectType({ + * name: 'Person', + * fields: () => ({ + * name: { type: GraphQLString }, + * bestFriend: { type: PersonType }, + * }) + * }); + * ``` + */ +class GraphQLObjectType { + constructor(config) { + var _config$extensionASTN2; + + this.name = (0, _assertName.assertName)(config.name); + this.description = config.description; + this.isTypeOf = config.isTypeOf; + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + this.extensionASTNodes = + (_config$extensionASTN2 = config.extensionASTNodes) !== null && + _config$extensionASTN2 !== void 0 + ? _config$extensionASTN2 + : []; + + this._fields = () => defineFieldMap(config); + + this._interfaces = () => defineInterfaces(config); + + config.isTypeOf == null || + typeof config.isTypeOf === 'function' || + (0, _devAssert.devAssert)( + false, + `${this.name} must provide "isTypeOf" as a function, ` + + `but got: ${(0, _inspect.inspect)(config.isTypeOf)}.`, + ); + } + + get [Symbol.toStringTag]() { + return 'GraphQLObjectType'; + } + + getFields() { + if (typeof this._fields === 'function') { + this._fields = this._fields(); + } + + return this._fields; + } + + getInterfaces() { + if (typeof this._interfaces === 'function') { + this._interfaces = this._interfaces(); + } + + return this._interfaces; + } + + toConfig() { + return { + name: this.name, + description: this.description, + interfaces: this.getInterfaces(), + fields: fieldsToFieldsConfig(this.getFields()), + isTypeOf: this.isTypeOf, + extensions: this.extensions, + astNode: this.astNode, + extensionASTNodes: this.extensionASTNodes, + }; + } + + toString() { + return this.name; + } + + toJSON() { + return this.toString(); + } +} + +exports.GraphQLObjectType = GraphQLObjectType; + +function defineInterfaces(config) { + var _config$interfaces; + + const interfaces = resolveReadonlyArrayThunk( + (_config$interfaces = config.interfaces) !== null && + _config$interfaces !== void 0 + ? _config$interfaces + : [], + ); + Array.isArray(interfaces) || + (0, _devAssert.devAssert)( + false, + `${config.name} interfaces must be an Array or a function which returns an Array.`, + ); + return interfaces; +} + +function defineFieldMap(config) { + const fieldMap = resolveObjMapThunk(config.fields); + isPlainObj(fieldMap) || + (0, _devAssert.devAssert)( + false, + `${config.name} fields must be an object with field names as keys or a function which returns such an object.`, + ); + return (0, _mapValue.mapValue)(fieldMap, (fieldConfig, fieldName) => { + var _fieldConfig$args; + + isPlainObj(fieldConfig) || + (0, _devAssert.devAssert)( + false, + `${config.name}.${fieldName} field config must be an object.`, + ); + fieldConfig.resolve == null || + typeof fieldConfig.resolve === 'function' || + (0, _devAssert.devAssert)( + false, + `${config.name}.${fieldName} field resolver must be a function if ` + + `provided, but got: ${(0, _inspect.inspect)(fieldConfig.resolve)}.`, + ); + const argsConfig = + (_fieldConfig$args = fieldConfig.args) !== null && + _fieldConfig$args !== void 0 + ? _fieldConfig$args + : {}; + isPlainObj(argsConfig) || + (0, _devAssert.devAssert)( + false, + `${config.name}.${fieldName} args must be an object with argument names as keys.`, + ); + return { + name: (0, _assertName.assertName)(fieldName), + description: fieldConfig.description, + type: fieldConfig.type, + args: defineArguments(argsConfig), + resolve: fieldConfig.resolve, + subscribe: fieldConfig.subscribe, + deprecationReason: fieldConfig.deprecationReason, + extensions: (0, _toObjMap.toObjMap)(fieldConfig.extensions), + astNode: fieldConfig.astNode, + }; + }); +} + +function defineArguments(config) { + return Object.entries(config).map(([argName, argConfig]) => ({ + name: (0, _assertName.assertName)(argName), + description: argConfig.description, + type: argConfig.type, + defaultValue: argConfig.defaultValue, + deprecationReason: argConfig.deprecationReason, + extensions: (0, _toObjMap.toObjMap)(argConfig.extensions), + astNode: argConfig.astNode, + })); +} + +function isPlainObj(obj) { + return (0, _isObjectLike.isObjectLike)(obj) && !Array.isArray(obj); +} + +function fieldsToFieldsConfig(fields) { + return (0, _mapValue.mapValue)(fields, (field) => ({ + description: field.description, + type: field.type, + args: argsToArgsConfig(field.args), + resolve: field.resolve, + subscribe: field.subscribe, + deprecationReason: field.deprecationReason, + extensions: field.extensions, + astNode: field.astNode, + })); +} +/** + * @internal + */ + +function argsToArgsConfig(args) { + return (0, _keyValMap.keyValMap)( + args, + (arg) => arg.name, + (arg) => ({ + description: arg.description, + type: arg.type, + defaultValue: arg.defaultValue, + deprecationReason: arg.deprecationReason, + extensions: arg.extensions, + astNode: arg.astNode, + }), + ); +} + +function isRequiredArgument(arg) { + return isNonNullType(arg.type) && arg.defaultValue === undefined; +} + +/** + * Interface Type Definition + * + * When a field can return one of a heterogeneous set of types, a Interface type + * is used to describe what types are possible, what fields are in common across + * all types, as well as a function to determine which type is actually used + * when the field is resolved. + * + * Example: + * + * ```ts + * const EntityType = new GraphQLInterfaceType({ + * name: 'Entity', + * fields: { + * name: { type: GraphQLString } + * } + * }); + * ``` + */ +class GraphQLInterfaceType { + constructor(config) { + var _config$extensionASTN3; + + this.name = (0, _assertName.assertName)(config.name); + this.description = config.description; + this.resolveType = config.resolveType; + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + this.extensionASTNodes = + (_config$extensionASTN3 = config.extensionASTNodes) !== null && + _config$extensionASTN3 !== void 0 + ? _config$extensionASTN3 + : []; + this._fields = defineFieldMap.bind(undefined, config); + this._interfaces = defineInterfaces.bind(undefined, config); + config.resolveType == null || + typeof config.resolveType === 'function' || + (0, _devAssert.devAssert)( + false, + `${this.name} must provide "resolveType" as a function, ` + + `but got: ${(0, _inspect.inspect)(config.resolveType)}.`, + ); + } + + get [Symbol.toStringTag]() { + return 'GraphQLInterfaceType'; + } + + getFields() { + if (typeof this._fields === 'function') { + this._fields = this._fields(); + } + + return this._fields; + } + + getInterfaces() { + if (typeof this._interfaces === 'function') { + this._interfaces = this._interfaces(); + } + + return this._interfaces; + } + + toConfig() { + return { + name: this.name, + description: this.description, + interfaces: this.getInterfaces(), + fields: fieldsToFieldsConfig(this.getFields()), + resolveType: this.resolveType, + extensions: this.extensions, + astNode: this.astNode, + extensionASTNodes: this.extensionASTNodes, + }; + } + + toString() { + return this.name; + } + + toJSON() { + return this.toString(); + } +} + +exports.GraphQLInterfaceType = GraphQLInterfaceType; + +/** + * Union Type Definition + * + * When a field can return one of a heterogeneous set of types, a Union type + * is used to describe what types are possible as well as providing a function + * to determine which type is actually used when the field is resolved. + * + * Example: + * + * ```ts + * const PetType = new GraphQLUnionType({ + * name: 'Pet', + * types: [ DogType, CatType ], + * resolveType(value) { + * if (value instanceof Dog) { + * return DogType; + * } + * if (value instanceof Cat) { + * return CatType; + * } + * } + * }); + * ``` + */ +class GraphQLUnionType { + constructor(config) { + var _config$extensionASTN4; + + this.name = (0, _assertName.assertName)(config.name); + this.description = config.description; + this.resolveType = config.resolveType; + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + this.extensionASTNodes = + (_config$extensionASTN4 = config.extensionASTNodes) !== null && + _config$extensionASTN4 !== void 0 + ? _config$extensionASTN4 + : []; + this._types = defineTypes.bind(undefined, config); + config.resolveType == null || + typeof config.resolveType === 'function' || + (0, _devAssert.devAssert)( + false, + `${this.name} must provide "resolveType" as a function, ` + + `but got: ${(0, _inspect.inspect)(config.resolveType)}.`, + ); + } + + get [Symbol.toStringTag]() { + return 'GraphQLUnionType'; + } + + getTypes() { + if (typeof this._types === 'function') { + this._types = this._types(); + } + + return this._types; + } + + toConfig() { + return { + name: this.name, + description: this.description, + types: this.getTypes(), + resolveType: this.resolveType, + extensions: this.extensions, + astNode: this.astNode, + extensionASTNodes: this.extensionASTNodes, + }; + } + + toString() { + return this.name; + } + + toJSON() { + return this.toString(); + } +} + +exports.GraphQLUnionType = GraphQLUnionType; + +function defineTypes(config) { + const types = resolveReadonlyArrayThunk(config.types); + Array.isArray(types) || + (0, _devAssert.devAssert)( + false, + `Must provide Array of types or a function which returns such an array for Union ${config.name}.`, + ); + return types; +} + +/** + * Enum Type Definition + * + * Some leaf values of requests and input values are Enums. GraphQL serializes + * Enum values as strings, however internally Enums can be represented by any + * kind of type, often integers. + * + * Example: + * + * ```ts + * const RGBType = new GraphQLEnumType({ + * name: 'RGB', + * values: { + * RED: { value: 0 }, + * GREEN: { value: 1 }, + * BLUE: { value: 2 } + * } + * }); + * ``` + * + * Note: If a value is not provided in a definition, the name of the enum value + * will be used as its internal value. + */ +class GraphQLEnumType { + /* */ + constructor(config) { + var _config$extensionASTN5; + + this.name = (0, _assertName.assertName)(config.name); + this.description = config.description; + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + this.extensionASTNodes = + (_config$extensionASTN5 = config.extensionASTNodes) !== null && + _config$extensionASTN5 !== void 0 + ? _config$extensionASTN5 + : []; + this._values = + typeof config.values === 'function' + ? config.values + : defineEnumValues(this.name, config.values); + this._valueLookup = null; + this._nameLookup = null; + } + + get [Symbol.toStringTag]() { + return 'GraphQLEnumType'; + } + + getValues() { + if (typeof this._values === 'function') { + this._values = defineEnumValues(this.name, this._values()); + } + + return this._values; + } + + getValue(name) { + if (this._nameLookup === null) { + this._nameLookup = (0, _keyMap.keyMap)( + this.getValues(), + (value) => value.name, + ); + } + + return this._nameLookup[name]; + } + + serialize(outputValue) { + if (this._valueLookup === null) { + this._valueLookup = new Map( + this.getValues().map((enumValue) => [enumValue.value, enumValue]), + ); + } + + const enumValue = this._valueLookup.get(outputValue); + + if (enumValue === undefined) { + throw new _GraphQLError.GraphQLError( + `Enum "${this.name}" cannot represent value: ${(0, _inspect.inspect)( + outputValue, + )}`, + ); + } + + return enumValue.name; + } + + parseValue(inputValue) /* T */ + { + if (typeof inputValue !== 'string') { + const valueStr = (0, _inspect.inspect)(inputValue); + throw new _GraphQLError.GraphQLError( + `Enum "${this.name}" cannot represent non-string value: ${valueStr}.` + + didYouMeanEnumValue(this, valueStr), + ); + } + + const enumValue = this.getValue(inputValue); + + if (enumValue == null) { + throw new _GraphQLError.GraphQLError( + `Value "${inputValue}" does not exist in "${this.name}" enum.` + + didYouMeanEnumValue(this, inputValue), + ); + } + + return enumValue.value; + } + + parseLiteral(valueNode, _variables) /* T */ + { + // Note: variables will be resolved to a value before calling this function. + if (valueNode.kind !== _kinds.Kind.ENUM) { + const valueStr = (0, _printer.print)(valueNode); + throw new _GraphQLError.GraphQLError( + `Enum "${this.name}" cannot represent non-enum value: ${valueStr}.` + + didYouMeanEnumValue(this, valueStr), + { + nodes: valueNode, + }, + ); + } + + const enumValue = this.getValue(valueNode.value); + + if (enumValue == null) { + const valueStr = (0, _printer.print)(valueNode); + throw new _GraphQLError.GraphQLError( + `Value "${valueStr}" does not exist in "${this.name}" enum.` + + didYouMeanEnumValue(this, valueStr), + { + nodes: valueNode, + }, + ); + } + + return enumValue.value; + } + + toConfig() { + const values = (0, _keyValMap.keyValMap)( + this.getValues(), + (value) => value.name, + (value) => ({ + description: value.description, + value: value.value, + deprecationReason: value.deprecationReason, + extensions: value.extensions, + astNode: value.astNode, + }), + ); + return { + name: this.name, + description: this.description, + values, + extensions: this.extensions, + astNode: this.astNode, + extensionASTNodes: this.extensionASTNodes, + }; + } + + toString() { + return this.name; + } + + toJSON() { + return this.toString(); + } +} + +exports.GraphQLEnumType = GraphQLEnumType; + +function didYouMeanEnumValue(enumType, unknownValueStr) { + const allNames = enumType.getValues().map((value) => value.name); + const suggestedValues = (0, _suggestionList.suggestionList)( + unknownValueStr, + allNames, + ); + return (0, _didYouMean.didYouMean)('the enum value', suggestedValues); +} + +function defineEnumValues(typeName, valueMap) { + isPlainObj(valueMap) || + (0, _devAssert.devAssert)( + false, + `${typeName} values must be an object with value names as keys.`, + ); + return Object.entries(valueMap).map(([valueName, valueConfig]) => { + isPlainObj(valueConfig) || + (0, _devAssert.devAssert)( + false, + `${typeName}.${valueName} must refer to an object with a "value" key ` + + `representing an internal value but got: ${(0, _inspect.inspect)( + valueConfig, + )}.`, + ); + return { + name: (0, _assertName.assertEnumValueName)(valueName), + description: valueConfig.description, + value: valueConfig.value !== undefined ? valueConfig.value : valueName, + deprecationReason: valueConfig.deprecationReason, + extensions: (0, _toObjMap.toObjMap)(valueConfig.extensions), + astNode: valueConfig.astNode, + }; + }); +} + +/** + * Input Object Type Definition + * + * An input object defines a structured collection of fields which may be + * supplied to a field argument. + * + * Using `NonNull` will ensure that a value must be provided by the query + * + * Example: + * + * ```ts + * const GeoPoint = new GraphQLInputObjectType({ + * name: 'GeoPoint', + * fields: { + * lat: { type: new GraphQLNonNull(GraphQLFloat) }, + * lon: { type: new GraphQLNonNull(GraphQLFloat) }, + * alt: { type: GraphQLFloat, defaultValue: 0 }, + * } + * }); + * ``` + */ +class GraphQLInputObjectType { + constructor(config) { + var _config$extensionASTN6, _config$isOneOf; + + this.name = (0, _assertName.assertName)(config.name); + this.description = config.description; + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + this.extensionASTNodes = + (_config$extensionASTN6 = config.extensionASTNodes) !== null && + _config$extensionASTN6 !== void 0 + ? _config$extensionASTN6 + : []; + this.isOneOf = + (_config$isOneOf = config.isOneOf) !== null && _config$isOneOf !== void 0 + ? _config$isOneOf + : false; + this._fields = defineInputFieldMap.bind(undefined, config); + } + + get [Symbol.toStringTag]() { + return 'GraphQLInputObjectType'; + } + + getFields() { + if (typeof this._fields === 'function') { + this._fields = this._fields(); + } + + return this._fields; + } + + toConfig() { + const fields = (0, _mapValue.mapValue)(this.getFields(), (field) => ({ + description: field.description, + type: field.type, + defaultValue: field.defaultValue, + deprecationReason: field.deprecationReason, + extensions: field.extensions, + astNode: field.astNode, + })); + return { + name: this.name, + description: this.description, + fields, + extensions: this.extensions, + astNode: this.astNode, + extensionASTNodes: this.extensionASTNodes, + isOneOf: this.isOneOf, + }; + } + + toString() { + return this.name; + } + + toJSON() { + return this.toString(); + } +} + +exports.GraphQLInputObjectType = GraphQLInputObjectType; + +function defineInputFieldMap(config) { + const fieldMap = resolveObjMapThunk(config.fields); + isPlainObj(fieldMap) || + (0, _devAssert.devAssert)( + false, + `${config.name} fields must be an object with field names as keys or a function which returns such an object.`, + ); + return (0, _mapValue.mapValue)(fieldMap, (fieldConfig, fieldName) => { + !('resolve' in fieldConfig) || + (0, _devAssert.devAssert)( + false, + `${config.name}.${fieldName} field has a resolve property, but Input Types cannot define resolvers.`, + ); + return { + name: (0, _assertName.assertName)(fieldName), + description: fieldConfig.description, + type: fieldConfig.type, + defaultValue: fieldConfig.defaultValue, + deprecationReason: fieldConfig.deprecationReason, + extensions: (0, _toObjMap.toObjMap)(fieldConfig.extensions), + astNode: fieldConfig.astNode, + }; + }); +} + +function isRequiredInputField(field) { + return isNonNullType(field.type) && field.defaultValue === undefined; +} + + +/***/ }), + +/***/ 2572: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.GraphQLSpecifiedByDirective = + exports.GraphQLSkipDirective = + exports.GraphQLOneOfDirective = + exports.GraphQLIncludeDirective = + exports.GraphQLDirective = + exports.GraphQLDeprecatedDirective = + exports.DEFAULT_DEPRECATION_REASON = + void 0; +exports.assertDirective = assertDirective; +exports.isDirective = isDirective; +exports.isSpecifiedDirective = isSpecifiedDirective; +exports.specifiedDirectives = void 0; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _instanceOf = __nccwpck_require__(6524); + +var _isObjectLike = __nccwpck_require__(7502); + +var _toObjMap = __nccwpck_require__(1594); + +var _directiveLocation = __nccwpck_require__(3180); + +var _assertName = __nccwpck_require__(5275); + +var _definition = __nccwpck_require__(699); + +var _scalars = __nccwpck_require__(8633); + +/** + * Test if the given value is a GraphQL directive. + */ +function isDirective(directive) { + return (0, _instanceOf.instanceOf)(directive, GraphQLDirective); +} + +function assertDirective(directive) { + if (!isDirective(directive)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(directive)} to be a GraphQL directive.`, + ); + } + + return directive; +} +/** + * Custom extensions + * + * @remarks + * Use a unique identifier name for your extension, for example the name of + * your library or project. Do not use a shortened identifier as this increases + * the risk of conflicts. We recommend you add at most one extension field, + * an object which can contain all the values you need. + */ + +/** + * Directives are used by the GraphQL runtime as a way of modifying execution + * behavior. Type system creators will usually not create these directly. + */ +class GraphQLDirective { + constructor(config) { + var _config$isRepeatable, _config$args; + + this.name = (0, _assertName.assertName)(config.name); + this.description = config.description; + this.locations = config.locations; + this.isRepeatable = + (_config$isRepeatable = config.isRepeatable) !== null && + _config$isRepeatable !== void 0 + ? _config$isRepeatable + : false; + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + Array.isArray(config.locations) || + (0, _devAssert.devAssert)( + false, + `@${config.name} locations must be an Array.`, + ); + const args = + (_config$args = config.args) !== null && _config$args !== void 0 + ? _config$args + : {}; + ((0, _isObjectLike.isObjectLike)(args) && !Array.isArray(args)) || + (0, _devAssert.devAssert)( + false, + `@${config.name} args must be an object with argument names as keys.`, + ); + this.args = (0, _definition.defineArguments)(args); + } + + get [Symbol.toStringTag]() { + return 'GraphQLDirective'; + } + + toConfig() { + return { + name: this.name, + description: this.description, + locations: this.locations, + args: (0, _definition.argsToArgsConfig)(this.args), + isRepeatable: this.isRepeatable, + extensions: this.extensions, + astNode: this.astNode, + }; + } + + toString() { + return '@' + this.name; + } + + toJSON() { + return this.toString(); + } +} + +exports.GraphQLDirective = GraphQLDirective; + +/** + * Used to conditionally include fields or fragments. + */ +const GraphQLIncludeDirective = new GraphQLDirective({ + name: 'include', + description: + 'Directs the executor to include this field or fragment only when the `if` argument is true.', + locations: [ + _directiveLocation.DirectiveLocation.FIELD, + _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, + _directiveLocation.DirectiveLocation.INLINE_FRAGMENT, + ], + args: { + if: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), + description: 'Included when true.', + }, + }, +}); +/** + * Used to conditionally skip (exclude) fields or fragments. + */ + +exports.GraphQLIncludeDirective = GraphQLIncludeDirective; +const GraphQLSkipDirective = new GraphQLDirective({ + name: 'skip', + description: + 'Directs the executor to skip this field or fragment when the `if` argument is true.', + locations: [ + _directiveLocation.DirectiveLocation.FIELD, + _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, + _directiveLocation.DirectiveLocation.INLINE_FRAGMENT, + ], + args: { + if: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), + description: 'Skipped when true.', + }, + }, +}); +/** + * Constant string used for default reason for a deprecation. + */ + +exports.GraphQLSkipDirective = GraphQLSkipDirective; +const DEFAULT_DEPRECATION_REASON = 'No longer supported'; +/** + * Used to declare element of a GraphQL schema as deprecated. + */ + +exports.DEFAULT_DEPRECATION_REASON = DEFAULT_DEPRECATION_REASON; +const GraphQLDeprecatedDirective = new GraphQLDirective({ + name: 'deprecated', + description: 'Marks an element of a GraphQL schema as no longer supported.', + locations: [ + _directiveLocation.DirectiveLocation.FIELD_DEFINITION, + _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION, + _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION, + _directiveLocation.DirectiveLocation.ENUM_VALUE, + ], + args: { + reason: { + type: _scalars.GraphQLString, + description: + 'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).', + defaultValue: DEFAULT_DEPRECATION_REASON, + }, + }, +}); +/** + * Used to provide a URL for specifying the behavior of custom scalar definitions. + */ + +exports.GraphQLDeprecatedDirective = GraphQLDeprecatedDirective; +const GraphQLSpecifiedByDirective = new GraphQLDirective({ + name: 'specifiedBy', + description: 'Exposes a URL that specifies the behavior of this scalar.', + locations: [_directiveLocation.DirectiveLocation.SCALAR], + args: { + url: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLString), + description: 'The URL that specifies the behavior of this scalar.', + }, + }, +}); +/** + * Used to indicate an Input Object is a OneOf Input Object. + */ + +exports.GraphQLSpecifiedByDirective = GraphQLSpecifiedByDirective; +const GraphQLOneOfDirective = new GraphQLDirective({ + name: 'oneOf', + description: + 'Indicates exactly one field must be supplied and this field must not be `null`.', + locations: [_directiveLocation.DirectiveLocation.INPUT_OBJECT], + args: {}, +}); +/** + * The full list of specified directives. + */ + +exports.GraphQLOneOfDirective = GraphQLOneOfDirective; +const specifiedDirectives = Object.freeze([ + GraphQLIncludeDirective, + GraphQLSkipDirective, + GraphQLDeprecatedDirective, + GraphQLSpecifiedByDirective, + GraphQLOneOfDirective, +]); +exports.specifiedDirectives = specifiedDirectives; + +function isSpecifiedDirective(directive) { + return specifiedDirectives.some(({ name }) => name === directive.name); +} + + +/***/ }), + +/***/ 3788: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +Object.defineProperty(exports, "DEFAULT_DEPRECATION_REASON", ({ + enumerable: true, + get: function () { + return _directives.DEFAULT_DEPRECATION_REASON; + }, +})); +Object.defineProperty(exports, "GRAPHQL_MAX_INT", ({ + enumerable: true, + get: function () { + return _scalars.GRAPHQL_MAX_INT; + }, +})); +Object.defineProperty(exports, "GRAPHQL_MIN_INT", ({ + enumerable: true, + get: function () { + return _scalars.GRAPHQL_MIN_INT; + }, +})); +Object.defineProperty(exports, "GraphQLBoolean", ({ + enumerable: true, + get: function () { + return _scalars.GraphQLBoolean; + }, +})); +Object.defineProperty(exports, "GraphQLDeprecatedDirective", ({ + enumerable: true, + get: function () { + return _directives.GraphQLDeprecatedDirective; + }, +})); +Object.defineProperty(exports, "GraphQLDirective", ({ + enumerable: true, + get: function () { + return _directives.GraphQLDirective; + }, +})); +Object.defineProperty(exports, "GraphQLEnumType", ({ + enumerable: true, + get: function () { + return _definition.GraphQLEnumType; + }, +})); +Object.defineProperty(exports, "GraphQLFloat", ({ + enumerable: true, + get: function () { + return _scalars.GraphQLFloat; + }, +})); +Object.defineProperty(exports, "GraphQLID", ({ + enumerable: true, + get: function () { + return _scalars.GraphQLID; + }, +})); +Object.defineProperty(exports, "GraphQLIncludeDirective", ({ + enumerable: true, + get: function () { + return _directives.GraphQLIncludeDirective; + }, +})); +Object.defineProperty(exports, "GraphQLInputObjectType", ({ + enumerable: true, + get: function () { + return _definition.GraphQLInputObjectType; + }, +})); +Object.defineProperty(exports, "GraphQLInt", ({ + enumerable: true, + get: function () { + return _scalars.GraphQLInt; + }, +})); +Object.defineProperty(exports, "GraphQLInterfaceType", ({ + enumerable: true, + get: function () { + return _definition.GraphQLInterfaceType; + }, +})); +Object.defineProperty(exports, "GraphQLList", ({ + enumerable: true, + get: function () { + return _definition.GraphQLList; + }, +})); +Object.defineProperty(exports, "GraphQLNonNull", ({ + enumerable: true, + get: function () { + return _definition.GraphQLNonNull; + }, +})); +Object.defineProperty(exports, "GraphQLObjectType", ({ + enumerable: true, + get: function () { + return _definition.GraphQLObjectType; + }, +})); +Object.defineProperty(exports, "GraphQLOneOfDirective", ({ + enumerable: true, + get: function () { + return _directives.GraphQLOneOfDirective; + }, +})); +Object.defineProperty(exports, "GraphQLScalarType", ({ + enumerable: true, + get: function () { + return _definition.GraphQLScalarType; + }, +})); +Object.defineProperty(exports, "GraphQLSchema", ({ + enumerable: true, + get: function () { + return _schema.GraphQLSchema; + }, +})); +Object.defineProperty(exports, "GraphQLSkipDirective", ({ + enumerable: true, + get: function () { + return _directives.GraphQLSkipDirective; + }, +})); +Object.defineProperty(exports, "GraphQLSpecifiedByDirective", ({ + enumerable: true, + get: function () { + return _directives.GraphQLSpecifiedByDirective; + }, +})); +Object.defineProperty(exports, "GraphQLString", ({ + enumerable: true, + get: function () { + return _scalars.GraphQLString; + }, +})); +Object.defineProperty(exports, "GraphQLUnionType", ({ + enumerable: true, + get: function () { + return _definition.GraphQLUnionType; + }, +})); +Object.defineProperty(exports, "SchemaMetaFieldDef", ({ + enumerable: true, + get: function () { + return _introspection.SchemaMetaFieldDef; + }, +})); +Object.defineProperty(exports, "TypeKind", ({ + enumerable: true, + get: function () { + return _introspection.TypeKind; + }, +})); +Object.defineProperty(exports, "TypeMetaFieldDef", ({ + enumerable: true, + get: function () { + return _introspection.TypeMetaFieldDef; + }, +})); +Object.defineProperty(exports, "TypeNameMetaFieldDef", ({ + enumerable: true, + get: function () { + return _introspection.TypeNameMetaFieldDef; + }, +})); +Object.defineProperty(exports, "__Directive", ({ + enumerable: true, + get: function () { + return _introspection.__Directive; + }, +})); +Object.defineProperty(exports, "__DirectiveLocation", ({ + enumerable: true, + get: function () { + return _introspection.__DirectiveLocation; + }, +})); +Object.defineProperty(exports, "__EnumValue", ({ + enumerable: true, + get: function () { + return _introspection.__EnumValue; + }, +})); +Object.defineProperty(exports, "__Field", ({ + enumerable: true, + get: function () { + return _introspection.__Field; + }, +})); +Object.defineProperty(exports, "__InputValue", ({ + enumerable: true, + get: function () { + return _introspection.__InputValue; + }, +})); +Object.defineProperty(exports, "__Schema", ({ + enumerable: true, + get: function () { + return _introspection.__Schema; + }, +})); +Object.defineProperty(exports, "__Type", ({ + enumerable: true, + get: function () { + return _introspection.__Type; + }, +})); +Object.defineProperty(exports, "__TypeKind", ({ + enumerable: true, + get: function () { + return _introspection.__TypeKind; + }, +})); +Object.defineProperty(exports, "assertAbstractType", ({ + enumerable: true, + get: function () { + return _definition.assertAbstractType; + }, +})); +Object.defineProperty(exports, "assertCompositeType", ({ + enumerable: true, + get: function () { + return _definition.assertCompositeType; + }, +})); +Object.defineProperty(exports, "assertDirective", ({ + enumerable: true, + get: function () { + return _directives.assertDirective; + }, +})); +Object.defineProperty(exports, "assertEnumType", ({ + enumerable: true, + get: function () { + return _definition.assertEnumType; + }, +})); +Object.defineProperty(exports, "assertEnumValueName", ({ + enumerable: true, + get: function () { + return _assertName.assertEnumValueName; + }, +})); +Object.defineProperty(exports, "assertInputObjectType", ({ + enumerable: true, + get: function () { + return _definition.assertInputObjectType; + }, +})); +Object.defineProperty(exports, "assertInputType", ({ + enumerable: true, + get: function () { + return _definition.assertInputType; + }, +})); +Object.defineProperty(exports, "assertInterfaceType", ({ + enumerable: true, + get: function () { + return _definition.assertInterfaceType; + }, +})); +Object.defineProperty(exports, "assertLeafType", ({ + enumerable: true, + get: function () { + return _definition.assertLeafType; + }, +})); +Object.defineProperty(exports, "assertListType", ({ + enumerable: true, + get: function () { + return _definition.assertListType; + }, +})); +Object.defineProperty(exports, "assertName", ({ + enumerable: true, + get: function () { + return _assertName.assertName; + }, +})); +Object.defineProperty(exports, "assertNamedType", ({ + enumerable: true, + get: function () { + return _definition.assertNamedType; + }, +})); +Object.defineProperty(exports, "assertNonNullType", ({ + enumerable: true, + get: function () { + return _definition.assertNonNullType; + }, +})); +Object.defineProperty(exports, "assertNullableType", ({ + enumerable: true, + get: function () { + return _definition.assertNullableType; + }, +})); +Object.defineProperty(exports, "assertObjectType", ({ + enumerable: true, + get: function () { + return _definition.assertObjectType; + }, +})); +Object.defineProperty(exports, "assertOutputType", ({ + enumerable: true, + get: function () { + return _definition.assertOutputType; + }, +})); +Object.defineProperty(exports, "assertScalarType", ({ + enumerable: true, + get: function () { + return _definition.assertScalarType; + }, +})); +Object.defineProperty(exports, "assertSchema", ({ + enumerable: true, + get: function () { + return _schema.assertSchema; + }, +})); +Object.defineProperty(exports, "assertType", ({ + enumerable: true, + get: function () { + return _definition.assertType; + }, +})); +Object.defineProperty(exports, "assertUnionType", ({ + enumerable: true, + get: function () { + return _definition.assertUnionType; + }, +})); +Object.defineProperty(exports, "assertValidSchema", ({ + enumerable: true, + get: function () { + return _validate.assertValidSchema; + }, +})); +Object.defineProperty(exports, "assertWrappingType", ({ + enumerable: true, + get: function () { + return _definition.assertWrappingType; + }, +})); +Object.defineProperty(exports, "getNamedType", ({ + enumerable: true, + get: function () { + return _definition.getNamedType; + }, +})); +Object.defineProperty(exports, "getNullableType", ({ + enumerable: true, + get: function () { + return _definition.getNullableType; + }, +})); +Object.defineProperty(exports, "introspectionTypes", ({ + enumerable: true, + get: function () { + return _introspection.introspectionTypes; + }, +})); +Object.defineProperty(exports, "isAbstractType", ({ + enumerable: true, + get: function () { + return _definition.isAbstractType; + }, +})); +Object.defineProperty(exports, "isCompositeType", ({ + enumerable: true, + get: function () { + return _definition.isCompositeType; + }, +})); +Object.defineProperty(exports, "isDirective", ({ + enumerable: true, + get: function () { + return _directives.isDirective; + }, +})); +Object.defineProperty(exports, "isEnumType", ({ + enumerable: true, + get: function () { + return _definition.isEnumType; + }, +})); +Object.defineProperty(exports, "isInputObjectType", ({ + enumerable: true, + get: function () { + return _definition.isInputObjectType; + }, +})); +Object.defineProperty(exports, "isInputType", ({ + enumerable: true, + get: function () { + return _definition.isInputType; + }, +})); +Object.defineProperty(exports, "isInterfaceType", ({ + enumerable: true, + get: function () { + return _definition.isInterfaceType; + }, +})); +Object.defineProperty(exports, "isIntrospectionType", ({ + enumerable: true, + get: function () { + return _introspection.isIntrospectionType; + }, +})); +Object.defineProperty(exports, "isLeafType", ({ + enumerable: true, + get: function () { + return _definition.isLeafType; + }, +})); +Object.defineProperty(exports, "isListType", ({ + enumerable: true, + get: function () { + return _definition.isListType; + }, +})); +Object.defineProperty(exports, "isNamedType", ({ + enumerable: true, + get: function () { + return _definition.isNamedType; + }, +})); +Object.defineProperty(exports, "isNonNullType", ({ + enumerable: true, + get: function () { + return _definition.isNonNullType; + }, +})); +Object.defineProperty(exports, "isNullableType", ({ + enumerable: true, + get: function () { + return _definition.isNullableType; + }, +})); +Object.defineProperty(exports, "isObjectType", ({ + enumerable: true, + get: function () { + return _definition.isObjectType; + }, +})); +Object.defineProperty(exports, "isOutputType", ({ + enumerable: true, + get: function () { + return _definition.isOutputType; + }, +})); +Object.defineProperty(exports, "isRequiredArgument", ({ + enumerable: true, + get: function () { + return _definition.isRequiredArgument; + }, +})); +Object.defineProperty(exports, "isRequiredInputField", ({ + enumerable: true, + get: function () { + return _definition.isRequiredInputField; + }, +})); +Object.defineProperty(exports, "isScalarType", ({ + enumerable: true, + get: function () { + return _definition.isScalarType; + }, +})); +Object.defineProperty(exports, "isSchema", ({ + enumerable: true, + get: function () { + return _schema.isSchema; + }, +})); +Object.defineProperty(exports, "isSpecifiedDirective", ({ + enumerable: true, + get: function () { + return _directives.isSpecifiedDirective; + }, +})); +Object.defineProperty(exports, "isSpecifiedScalarType", ({ + enumerable: true, + get: function () { + return _scalars.isSpecifiedScalarType; + }, +})); +Object.defineProperty(exports, "isType", ({ + enumerable: true, + get: function () { + return _definition.isType; + }, +})); +Object.defineProperty(exports, "isUnionType", ({ + enumerable: true, + get: function () { + return _definition.isUnionType; + }, +})); +Object.defineProperty(exports, "isWrappingType", ({ + enumerable: true, + get: function () { + return _definition.isWrappingType; + }, +})); +Object.defineProperty(exports, "resolveObjMapThunk", ({ + enumerable: true, + get: function () { + return _definition.resolveObjMapThunk; + }, +})); +Object.defineProperty(exports, "resolveReadonlyArrayThunk", ({ + enumerable: true, + get: function () { + return _definition.resolveReadonlyArrayThunk; + }, +})); +Object.defineProperty(exports, "specifiedDirectives", ({ + enumerable: true, + get: function () { + return _directives.specifiedDirectives; + }, +})); +Object.defineProperty(exports, "specifiedScalarTypes", ({ + enumerable: true, + get: function () { + return _scalars.specifiedScalarTypes; + }, +})); +Object.defineProperty(exports, "validateSchema", ({ + enumerable: true, + get: function () { + return _validate.validateSchema; + }, +})); + +var _schema = __nccwpck_require__(3933); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _scalars = __nccwpck_require__(8633); + +var _introspection = __nccwpck_require__(2239); + +var _validate = __nccwpck_require__(3756); + +var _assertName = __nccwpck_require__(5275); + + +/***/ }), + +/***/ 2239: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.introspectionTypes = + exports.__TypeKind = + exports.__Type = + exports.__Schema = + exports.__InputValue = + exports.__Field = + exports.__EnumValue = + exports.__DirectiveLocation = + exports.__Directive = + exports.TypeNameMetaFieldDef = + exports.TypeMetaFieldDef = + exports.TypeKind = + exports.SchemaMetaFieldDef = + void 0; +exports.isIntrospectionType = isIntrospectionType; + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _directiveLocation = __nccwpck_require__(3180); + +var _printer = __nccwpck_require__(4758); + +var _astFromValue = __nccwpck_require__(8539); + +var _definition = __nccwpck_require__(699); + +var _scalars = __nccwpck_require__(8633); + +const __Schema = new _definition.GraphQLObjectType({ + name: '__Schema', + description: + 'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.', + fields: () => ({ + description: { + type: _scalars.GraphQLString, + resolve: (schema) => schema.description, + }, + types: { + description: 'A list of all types supported by this server.', + type: new _definition.GraphQLNonNull( + new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)), + ), + + resolve(schema) { + return Object.values(schema.getTypeMap()); + }, + }, + queryType: { + description: 'The type that query operations will be rooted at.', + type: new _definition.GraphQLNonNull(__Type), + resolve: (schema) => schema.getQueryType(), + }, + mutationType: { + description: + 'If this server supports mutation, the type that mutation operations will be rooted at.', + type: __Type, + resolve: (schema) => schema.getMutationType(), + }, + subscriptionType: { + description: + 'If this server support subscription, the type that subscription operations will be rooted at.', + type: __Type, + resolve: (schema) => schema.getSubscriptionType(), + }, + directives: { + description: 'A list of all directives supported by this server.', + type: new _definition.GraphQLNonNull( + new _definition.GraphQLList( + new _definition.GraphQLNonNull(__Directive), + ), + ), + resolve: (schema) => schema.getDirectives(), + }, + }), +}); + +exports.__Schema = __Schema; + +const __Directive = new _definition.GraphQLObjectType({ + name: '__Directive', + description: + "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", + fields: () => ({ + name: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLString), + resolve: (directive) => directive.name, + }, + description: { + type: _scalars.GraphQLString, + resolve: (directive) => directive.description, + }, + isRepeatable: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), + resolve: (directive) => directive.isRepeatable, + }, + locations: { + type: new _definition.GraphQLNonNull( + new _definition.GraphQLList( + new _definition.GraphQLNonNull(__DirectiveLocation), + ), + ), + resolve: (directive) => directive.locations, + }, + args: { + type: new _definition.GraphQLNonNull( + new _definition.GraphQLList( + new _definition.GraphQLNonNull(__InputValue), + ), + ), + args: { + includeDeprecated: { + type: _scalars.GraphQLBoolean, + defaultValue: false, + }, + }, + + resolve(field, { includeDeprecated }) { + return includeDeprecated + ? field.args + : field.args.filter((arg) => arg.deprecationReason == null); + }, + }, + }), +}); + +exports.__Directive = __Directive; + +const __DirectiveLocation = new _definition.GraphQLEnumType({ + name: '__DirectiveLocation', + description: + 'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.', + values: { + QUERY: { + value: _directiveLocation.DirectiveLocation.QUERY, + description: 'Location adjacent to a query operation.', + }, + MUTATION: { + value: _directiveLocation.DirectiveLocation.MUTATION, + description: 'Location adjacent to a mutation operation.', + }, + SUBSCRIPTION: { + value: _directiveLocation.DirectiveLocation.SUBSCRIPTION, + description: 'Location adjacent to a subscription operation.', + }, + FIELD: { + value: _directiveLocation.DirectiveLocation.FIELD, + description: 'Location adjacent to a field.', + }, + FRAGMENT_DEFINITION: { + value: _directiveLocation.DirectiveLocation.FRAGMENT_DEFINITION, + description: 'Location adjacent to a fragment definition.', + }, + FRAGMENT_SPREAD: { + value: _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, + description: 'Location adjacent to a fragment spread.', + }, + INLINE_FRAGMENT: { + value: _directiveLocation.DirectiveLocation.INLINE_FRAGMENT, + description: 'Location adjacent to an inline fragment.', + }, + VARIABLE_DEFINITION: { + value: _directiveLocation.DirectiveLocation.VARIABLE_DEFINITION, + description: 'Location adjacent to a variable definition.', + }, + SCHEMA: { + value: _directiveLocation.DirectiveLocation.SCHEMA, + description: 'Location adjacent to a schema definition.', + }, + SCALAR: { + value: _directiveLocation.DirectiveLocation.SCALAR, + description: 'Location adjacent to a scalar definition.', + }, + OBJECT: { + value: _directiveLocation.DirectiveLocation.OBJECT, + description: 'Location adjacent to an object type definition.', + }, + FIELD_DEFINITION: { + value: _directiveLocation.DirectiveLocation.FIELD_DEFINITION, + description: 'Location adjacent to a field definition.', + }, + ARGUMENT_DEFINITION: { + value: _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION, + description: 'Location adjacent to an argument definition.', + }, + INTERFACE: { + value: _directiveLocation.DirectiveLocation.INTERFACE, + description: 'Location adjacent to an interface definition.', + }, + UNION: { + value: _directiveLocation.DirectiveLocation.UNION, + description: 'Location adjacent to a union definition.', + }, + ENUM: { + value: _directiveLocation.DirectiveLocation.ENUM, + description: 'Location adjacent to an enum definition.', + }, + ENUM_VALUE: { + value: _directiveLocation.DirectiveLocation.ENUM_VALUE, + description: 'Location adjacent to an enum value definition.', + }, + INPUT_OBJECT: { + value: _directiveLocation.DirectiveLocation.INPUT_OBJECT, + description: 'Location adjacent to an input object type definition.', + }, + INPUT_FIELD_DEFINITION: { + value: _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION, + description: 'Location adjacent to an input object field definition.', + }, + }, +}); + +exports.__DirectiveLocation = __DirectiveLocation; + +const __Type = new _definition.GraphQLObjectType({ + name: '__Type', + description: + 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.', + fields: () => ({ + kind: { + type: new _definition.GraphQLNonNull(__TypeKind), + + resolve(type) { + if ((0, _definition.isScalarType)(type)) { + return TypeKind.SCALAR; + } + + if ((0, _definition.isObjectType)(type)) { + return TypeKind.OBJECT; + } + + if ((0, _definition.isInterfaceType)(type)) { + return TypeKind.INTERFACE; + } + + if ((0, _definition.isUnionType)(type)) { + return TypeKind.UNION; + } + + if ((0, _definition.isEnumType)(type)) { + return TypeKind.ENUM; + } + + if ((0, _definition.isInputObjectType)(type)) { + return TypeKind.INPUT_OBJECT; + } + + if ((0, _definition.isListType)(type)) { + return TypeKind.LIST; + } + + if ((0, _definition.isNonNullType)(type)) { + return TypeKind.NON_NULL; + } + /* c8 ignore next 3 */ + // Not reachable, all possible types have been considered) + + false || + (0, _invariant.invariant)( + false, + `Unexpected type: "${(0, _inspect.inspect)(type)}".`, + ); + }, + }, + name: { + type: _scalars.GraphQLString, + resolve: (type) => ('name' in type ? type.name : undefined), + }, + description: { + type: _scalars.GraphQLString, + resolve: ( + type, // FIXME: add test case + ) => + /* c8 ignore next */ + 'description' in type ? type.description : undefined, + }, + specifiedByURL: { + type: _scalars.GraphQLString, + resolve: (obj) => + 'specifiedByURL' in obj ? obj.specifiedByURL : undefined, + }, + fields: { + type: new _definition.GraphQLList( + new _definition.GraphQLNonNull(__Field), + ), + args: { + includeDeprecated: { + type: _scalars.GraphQLBoolean, + defaultValue: false, + }, + }, + + resolve(type, { includeDeprecated }) { + if ( + (0, _definition.isObjectType)(type) || + (0, _definition.isInterfaceType)(type) + ) { + const fields = Object.values(type.getFields()); + return includeDeprecated + ? fields + : fields.filter((field) => field.deprecationReason == null); + } + }, + }, + interfaces: { + type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)), + + resolve(type) { + if ( + (0, _definition.isObjectType)(type) || + (0, _definition.isInterfaceType)(type) + ) { + return type.getInterfaces(); + } + }, + }, + possibleTypes: { + type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)), + + resolve(type, _args, _context, { schema }) { + if ((0, _definition.isAbstractType)(type)) { + return schema.getPossibleTypes(type); + } + }, + }, + enumValues: { + type: new _definition.GraphQLList( + new _definition.GraphQLNonNull(__EnumValue), + ), + args: { + includeDeprecated: { + type: _scalars.GraphQLBoolean, + defaultValue: false, + }, + }, + + resolve(type, { includeDeprecated }) { + if ((0, _definition.isEnumType)(type)) { + const values = type.getValues(); + return includeDeprecated + ? values + : values.filter((field) => field.deprecationReason == null); + } + }, + }, + inputFields: { + type: new _definition.GraphQLList( + new _definition.GraphQLNonNull(__InputValue), + ), + args: { + includeDeprecated: { + type: _scalars.GraphQLBoolean, + defaultValue: false, + }, + }, + + resolve(type, { includeDeprecated }) { + if ((0, _definition.isInputObjectType)(type)) { + const values = Object.values(type.getFields()); + return includeDeprecated + ? values + : values.filter((field) => field.deprecationReason == null); + } + }, + }, + ofType: { + type: __Type, + resolve: (type) => ('ofType' in type ? type.ofType : undefined), + }, + isOneOf: { + type: _scalars.GraphQLBoolean, + resolve: (type) => { + if ((0, _definition.isInputObjectType)(type)) { + return type.isOneOf; + } + }, + }, + }), +}); + +exports.__Type = __Type; + +const __Field = new _definition.GraphQLObjectType({ + name: '__Field', + description: + 'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.', + fields: () => ({ + name: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLString), + resolve: (field) => field.name, + }, + description: { + type: _scalars.GraphQLString, + resolve: (field) => field.description, + }, + args: { + type: new _definition.GraphQLNonNull( + new _definition.GraphQLList( + new _definition.GraphQLNonNull(__InputValue), + ), + ), + args: { + includeDeprecated: { + type: _scalars.GraphQLBoolean, + defaultValue: false, + }, + }, + + resolve(field, { includeDeprecated }) { + return includeDeprecated + ? field.args + : field.args.filter((arg) => arg.deprecationReason == null); + }, + }, + type: { + type: new _definition.GraphQLNonNull(__Type), + resolve: (field) => field.type, + }, + isDeprecated: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), + resolve: (field) => field.deprecationReason != null, + }, + deprecationReason: { + type: _scalars.GraphQLString, + resolve: (field) => field.deprecationReason, + }, + }), +}); + +exports.__Field = __Field; + +const __InputValue = new _definition.GraphQLObjectType({ + name: '__InputValue', + description: + 'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.', + fields: () => ({ + name: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLString), + resolve: (inputValue) => inputValue.name, + }, + description: { + type: _scalars.GraphQLString, + resolve: (inputValue) => inputValue.description, + }, + type: { + type: new _definition.GraphQLNonNull(__Type), + resolve: (inputValue) => inputValue.type, + }, + defaultValue: { + type: _scalars.GraphQLString, + description: + 'A GraphQL-formatted string representing the default value for this input value.', + + resolve(inputValue) { + const { type, defaultValue } = inputValue; + const valueAST = (0, _astFromValue.astFromValue)(defaultValue, type); + return valueAST ? (0, _printer.print)(valueAST) : null; + }, + }, + isDeprecated: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), + resolve: (field) => field.deprecationReason != null, + }, + deprecationReason: { + type: _scalars.GraphQLString, + resolve: (obj) => obj.deprecationReason, + }, + }), +}); + +exports.__InputValue = __InputValue; + +const __EnumValue = new _definition.GraphQLObjectType({ + name: '__EnumValue', + description: + 'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.', + fields: () => ({ + name: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLString), + resolve: (enumValue) => enumValue.name, + }, + description: { + type: _scalars.GraphQLString, + resolve: (enumValue) => enumValue.description, + }, + isDeprecated: { + type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), + resolve: (enumValue) => enumValue.deprecationReason != null, + }, + deprecationReason: { + type: _scalars.GraphQLString, + resolve: (enumValue) => enumValue.deprecationReason, + }, + }), +}); + +exports.__EnumValue = __EnumValue; +var TypeKind; +exports.TypeKind = TypeKind; + +(function (TypeKind) { + TypeKind['SCALAR'] = 'SCALAR'; + TypeKind['OBJECT'] = 'OBJECT'; + TypeKind['INTERFACE'] = 'INTERFACE'; + TypeKind['UNION'] = 'UNION'; + TypeKind['ENUM'] = 'ENUM'; + TypeKind['INPUT_OBJECT'] = 'INPUT_OBJECT'; + TypeKind['LIST'] = 'LIST'; + TypeKind['NON_NULL'] = 'NON_NULL'; +})(TypeKind || (exports.TypeKind = TypeKind = {})); + +const __TypeKind = new _definition.GraphQLEnumType({ + name: '__TypeKind', + description: 'An enum describing what kind of type a given `__Type` is.', + values: { + SCALAR: { + value: TypeKind.SCALAR, + description: 'Indicates this type is a scalar.', + }, + OBJECT: { + value: TypeKind.OBJECT, + description: + 'Indicates this type is an object. `fields` and `interfaces` are valid fields.', + }, + INTERFACE: { + value: TypeKind.INTERFACE, + description: + 'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.', + }, + UNION: { + value: TypeKind.UNION, + description: + 'Indicates this type is a union. `possibleTypes` is a valid field.', + }, + ENUM: { + value: TypeKind.ENUM, + description: + 'Indicates this type is an enum. `enumValues` is a valid field.', + }, + INPUT_OBJECT: { + value: TypeKind.INPUT_OBJECT, + description: + 'Indicates this type is an input object. `inputFields` is a valid field.', + }, + LIST: { + value: TypeKind.LIST, + description: 'Indicates this type is a list. `ofType` is a valid field.', + }, + NON_NULL: { + value: TypeKind.NON_NULL, + description: + 'Indicates this type is a non-null. `ofType` is a valid field.', + }, + }, +}); +/** + * Note that these are GraphQLField and not GraphQLFieldConfig, + * so the format for args is different. + */ + +exports.__TypeKind = __TypeKind; +const SchemaMetaFieldDef = { + name: '__schema', + type: new _definition.GraphQLNonNull(__Schema), + description: 'Access the current type schema of this server.', + args: [], + resolve: (_source, _args, _context, { schema }) => schema, + deprecationReason: undefined, + extensions: Object.create(null), + astNode: undefined, +}; +exports.SchemaMetaFieldDef = SchemaMetaFieldDef; +const TypeMetaFieldDef = { + name: '__type', + type: __Type, + description: 'Request the type information of a single type.', + args: [ + { + name: 'name', + description: undefined, + type: new _definition.GraphQLNonNull(_scalars.GraphQLString), + defaultValue: undefined, + deprecationReason: undefined, + extensions: Object.create(null), + astNode: undefined, + }, + ], + resolve: (_source, { name }, _context, { schema }) => schema.getType(name), + deprecationReason: undefined, + extensions: Object.create(null), + astNode: undefined, +}; +exports.TypeMetaFieldDef = TypeMetaFieldDef; +const TypeNameMetaFieldDef = { + name: '__typename', + type: new _definition.GraphQLNonNull(_scalars.GraphQLString), + description: 'The name of the current Object type at runtime.', + args: [], + resolve: (_source, _args, _context, { parentType }) => parentType.name, + deprecationReason: undefined, + extensions: Object.create(null), + astNode: undefined, +}; +exports.TypeNameMetaFieldDef = TypeNameMetaFieldDef; +const introspectionTypes = Object.freeze([ + __Schema, + __Directive, + __DirectiveLocation, + __Type, + __Field, + __InputValue, + __EnumValue, + __TypeKind, +]); +exports.introspectionTypes = introspectionTypes; + +function isIntrospectionType(type) { + return introspectionTypes.some(({ name }) => type.name === name); +} + + +/***/ }), + +/***/ 8633: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.GraphQLString = + exports.GraphQLInt = + exports.GraphQLID = + exports.GraphQLFloat = + exports.GraphQLBoolean = + exports.GRAPHQL_MIN_INT = + exports.GRAPHQL_MAX_INT = + void 0; +exports.isSpecifiedScalarType = isSpecifiedScalarType; +exports.specifiedScalarTypes = void 0; + +var _inspect = __nccwpck_require__(3707); + +var _isObjectLike = __nccwpck_require__(7502); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +/** + * Maximum possible Int value as per GraphQL Spec (32-bit signed integer). + * n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe up-to 2^53 - 1 + * */ +const GRAPHQL_MAX_INT = 2147483647; +/** + * Minimum possible Int value as per GraphQL Spec (32-bit signed integer). + * n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe starting at -(2^53 - 1) + * */ + +exports.GRAPHQL_MAX_INT = GRAPHQL_MAX_INT; +const GRAPHQL_MIN_INT = -2147483648; +exports.GRAPHQL_MIN_INT = GRAPHQL_MIN_INT; +const GraphQLInt = new _definition.GraphQLScalarType({ + name: 'Int', + description: + 'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.', + + serialize(outputValue) { + const coercedValue = serializeObject(outputValue); + + if (typeof coercedValue === 'boolean') { + return coercedValue ? 1 : 0; + } + + let num = coercedValue; + + if (typeof coercedValue === 'string' && coercedValue !== '') { + num = Number(coercedValue); + } + + if (typeof num !== 'number' || !Number.isInteger(num)) { + throw new _GraphQLError.GraphQLError( + `Int cannot represent non-integer value: ${(0, _inspect.inspect)( + coercedValue, + )}`, + ); + } + + if (num > GRAPHQL_MAX_INT || num < GRAPHQL_MIN_INT) { + throw new _GraphQLError.GraphQLError( + 'Int cannot represent non 32-bit signed integer value: ' + + (0, _inspect.inspect)(coercedValue), + ); + } + + return num; + }, + + parseValue(inputValue) { + if (typeof inputValue !== 'number' || !Number.isInteger(inputValue)) { + throw new _GraphQLError.GraphQLError( + `Int cannot represent non-integer value: ${(0, _inspect.inspect)( + inputValue, + )}`, + ); + } + + if (inputValue > GRAPHQL_MAX_INT || inputValue < GRAPHQL_MIN_INT) { + throw new _GraphQLError.GraphQLError( + `Int cannot represent non 32-bit signed integer value: ${inputValue}`, + ); + } + + return inputValue; + }, + + parseLiteral(valueNode) { + if (valueNode.kind !== _kinds.Kind.INT) { + throw new _GraphQLError.GraphQLError( + `Int cannot represent non-integer value: ${(0, _printer.print)( + valueNode, + )}`, + { + nodes: valueNode, + }, + ); + } + + const num = parseInt(valueNode.value, 10); + + if (num > GRAPHQL_MAX_INT || num < GRAPHQL_MIN_INT) { + throw new _GraphQLError.GraphQLError( + `Int cannot represent non 32-bit signed integer value: ${valueNode.value}`, + { + nodes: valueNode, + }, + ); + } + + return num; + }, +}); +exports.GraphQLInt = GraphQLInt; +const GraphQLFloat = new _definition.GraphQLScalarType({ + name: 'Float', + description: + 'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).', + + serialize(outputValue) { + const coercedValue = serializeObject(outputValue); + + if (typeof coercedValue === 'boolean') { + return coercedValue ? 1 : 0; + } + + let num = coercedValue; + + if (typeof coercedValue === 'string' && coercedValue !== '') { + num = Number(coercedValue); + } + + if (typeof num !== 'number' || !Number.isFinite(num)) { + throw new _GraphQLError.GraphQLError( + `Float cannot represent non numeric value: ${(0, _inspect.inspect)( + coercedValue, + )}`, + ); + } + + return num; + }, + + parseValue(inputValue) { + if (typeof inputValue !== 'number' || !Number.isFinite(inputValue)) { + throw new _GraphQLError.GraphQLError( + `Float cannot represent non numeric value: ${(0, _inspect.inspect)( + inputValue, + )}`, + ); + } + + return inputValue; + }, + + parseLiteral(valueNode) { + if ( + valueNode.kind !== _kinds.Kind.FLOAT && + valueNode.kind !== _kinds.Kind.INT + ) { + throw new _GraphQLError.GraphQLError( + `Float cannot represent non numeric value: ${(0, _printer.print)( + valueNode, + )}`, + valueNode, + ); + } + + return parseFloat(valueNode.value); + }, +}); +exports.GraphQLFloat = GraphQLFloat; +const GraphQLString = new _definition.GraphQLScalarType({ + name: 'String', + description: + 'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.', + + serialize(outputValue) { + const coercedValue = serializeObject(outputValue); // Serialize string, boolean and number values to a string, but do not + // attempt to coerce object, function, symbol, or other types as strings. + + if (typeof coercedValue === 'string') { + return coercedValue; + } + + if (typeof coercedValue === 'boolean') { + return coercedValue ? 'true' : 'false'; + } + + if (typeof coercedValue === 'number' && Number.isFinite(coercedValue)) { + return coercedValue.toString(); + } + + throw new _GraphQLError.GraphQLError( + `String cannot represent value: ${(0, _inspect.inspect)(outputValue)}`, + ); + }, + + parseValue(inputValue) { + if (typeof inputValue !== 'string') { + throw new _GraphQLError.GraphQLError( + `String cannot represent a non string value: ${(0, _inspect.inspect)( + inputValue, + )}`, + ); + } + + return inputValue; + }, + + parseLiteral(valueNode) { + if (valueNode.kind !== _kinds.Kind.STRING) { + throw new _GraphQLError.GraphQLError( + `String cannot represent a non string value: ${(0, _printer.print)( + valueNode, + )}`, + { + nodes: valueNode, + }, + ); + } + + return valueNode.value; + }, +}); +exports.GraphQLString = GraphQLString; +const GraphQLBoolean = new _definition.GraphQLScalarType({ + name: 'Boolean', + description: 'The `Boolean` scalar type represents `true` or `false`.', + + serialize(outputValue) { + const coercedValue = serializeObject(outputValue); + + if (typeof coercedValue === 'boolean') { + return coercedValue; + } + + if (Number.isFinite(coercedValue)) { + return coercedValue !== 0; + } + + throw new _GraphQLError.GraphQLError( + `Boolean cannot represent a non boolean value: ${(0, _inspect.inspect)( + coercedValue, + )}`, + ); + }, + + parseValue(inputValue) { + if (typeof inputValue !== 'boolean') { + throw new _GraphQLError.GraphQLError( + `Boolean cannot represent a non boolean value: ${(0, _inspect.inspect)( + inputValue, + )}`, + ); + } + + return inputValue; + }, + + parseLiteral(valueNode) { + if (valueNode.kind !== _kinds.Kind.BOOLEAN) { + throw new _GraphQLError.GraphQLError( + `Boolean cannot represent a non boolean value: ${(0, _printer.print)( + valueNode, + )}`, + { + nodes: valueNode, + }, + ); + } + + return valueNode.value; + }, +}); +exports.GraphQLBoolean = GraphQLBoolean; +const GraphQLID = new _definition.GraphQLScalarType({ + name: 'ID', + description: + 'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.', + + serialize(outputValue) { + const coercedValue = serializeObject(outputValue); + + if (typeof coercedValue === 'string') { + return coercedValue; + } + + if (Number.isInteger(coercedValue)) { + return String(coercedValue); + } + + throw new _GraphQLError.GraphQLError( + `ID cannot represent value: ${(0, _inspect.inspect)(outputValue)}`, + ); + }, + + parseValue(inputValue) { + if (typeof inputValue === 'string') { + return inputValue; + } + + if (typeof inputValue === 'number' && Number.isInteger(inputValue)) { + return inputValue.toString(); + } + + throw new _GraphQLError.GraphQLError( + `ID cannot represent value: ${(0, _inspect.inspect)(inputValue)}`, + ); + }, + + parseLiteral(valueNode) { + if ( + valueNode.kind !== _kinds.Kind.STRING && + valueNode.kind !== _kinds.Kind.INT + ) { + throw new _GraphQLError.GraphQLError( + 'ID cannot represent a non-string and non-integer value: ' + + (0, _printer.print)(valueNode), + { + nodes: valueNode, + }, + ); + } + + return valueNode.value; + }, +}); +exports.GraphQLID = GraphQLID; +const specifiedScalarTypes = Object.freeze([ + GraphQLString, + GraphQLInt, + GraphQLFloat, + GraphQLBoolean, + GraphQLID, +]); +exports.specifiedScalarTypes = specifiedScalarTypes; + +function isSpecifiedScalarType(type) { + return specifiedScalarTypes.some(({ name }) => type.name === name); +} // Support serializing objects with custom valueOf() or toJSON() functions - +// a common way to represent a complex value which can be represented as +// a string (ex: MongoDB id objects). + +function serializeObject(outputValue) { + if ((0, _isObjectLike.isObjectLike)(outputValue)) { + if (typeof outputValue.valueOf === 'function') { + const valueOfResult = outputValue.valueOf(); + + if (!(0, _isObjectLike.isObjectLike)(valueOfResult)) { + return valueOfResult; + } + } + + if (typeof outputValue.toJSON === 'function') { + return outputValue.toJSON(); + } + } + + return outputValue; +} + + +/***/ }), + +/***/ 3933: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.GraphQLSchema = void 0; +exports.assertSchema = assertSchema; +exports.isSchema = isSchema; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _instanceOf = __nccwpck_require__(6524); + +var _isObjectLike = __nccwpck_require__(7502); + +var _toObjMap = __nccwpck_require__(1594); + +var _ast = __nccwpck_require__(906); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _introspection = __nccwpck_require__(2239); + +/** + * Test if the given value is a GraphQL schema. + */ +function isSchema(schema) { + return (0, _instanceOf.instanceOf)(schema, GraphQLSchema); +} + +function assertSchema(schema) { + if (!isSchema(schema)) { + throw new Error( + `Expected ${(0, _inspect.inspect)(schema)} to be a GraphQL schema.`, + ); + } + + return schema; +} +/** + * Custom extensions + * + * @remarks + * Use a unique identifier name for your extension, for example the name of + * your library or project. Do not use a shortened identifier as this increases + * the risk of conflicts. We recommend you add at most one extension field, + * an object which can contain all the values you need. + */ + +/** + * Schema Definition + * + * A Schema is created by supplying the root types of each type of operation, + * query and mutation (optional). A schema definition is then supplied to the + * validator and executor. + * + * Example: + * + * ```ts + * const MyAppSchema = new GraphQLSchema({ + * query: MyAppQueryRootType, + * mutation: MyAppMutationRootType, + * }) + * ``` + * + * Note: When the schema is constructed, by default only the types that are + * reachable by traversing the root types are included, other types must be + * explicitly referenced. + * + * Example: + * + * ```ts + * const characterInterface = new GraphQLInterfaceType({ + * name: 'Character', + * ... + * }); + * + * const humanType = new GraphQLObjectType({ + * name: 'Human', + * interfaces: [characterInterface], + * ... + * }); + * + * const droidType = new GraphQLObjectType({ + * name: 'Droid', + * interfaces: [characterInterface], + * ... + * }); + * + * const schema = new GraphQLSchema({ + * query: new GraphQLObjectType({ + * name: 'Query', + * fields: { + * hero: { type: characterInterface, ... }, + * } + * }), + * ... + * // Since this schema references only the `Character` interface it's + * // necessary to explicitly list the types that implement it if + * // you want them to be included in the final schema. + * types: [humanType, droidType], + * }) + * ``` + * + * Note: If an array of `directives` are provided to GraphQLSchema, that will be + * the exact list of directives represented and allowed. If `directives` is not + * provided then a default set of the specified directives (e.g. `@include` and + * `@skip`) will be used. If you wish to provide *additional* directives to these + * specified directives, you must explicitly declare them. Example: + * + * ```ts + * const MyAppSchema = new GraphQLSchema({ + * ... + * directives: specifiedDirectives.concat([ myCustomDirective ]), + * }) + * ``` + */ +class GraphQLSchema { + // Used as a cache for validateSchema(). + constructor(config) { + var _config$extensionASTN, _config$directives; + + // If this schema was built from a source known to be valid, then it may be + // marked with assumeValid to avoid an additional type system validation. + this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors. + + (0, _isObjectLike.isObjectLike)(config) || + (0, _devAssert.devAssert)(false, 'Must provide configuration object.'); + !config.types || + Array.isArray(config.types) || + (0, _devAssert.devAssert)( + false, + `"types" must be Array if provided but got: ${(0, _inspect.inspect)( + config.types, + )}.`, + ); + !config.directives || + Array.isArray(config.directives) || + (0, _devAssert.devAssert)( + false, + '"directives" must be Array if provided but got: ' + + `${(0, _inspect.inspect)(config.directives)}.`, + ); + this.description = config.description; + this.extensions = (0, _toObjMap.toObjMap)(config.extensions); + this.astNode = config.astNode; + this.extensionASTNodes = + (_config$extensionASTN = config.extensionASTNodes) !== null && + _config$extensionASTN !== void 0 + ? _config$extensionASTN + : []; + this._queryType = config.query; + this._mutationType = config.mutation; + this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default. + + this._directives = + (_config$directives = config.directives) !== null && + _config$directives !== void 0 + ? _config$directives + : _directives.specifiedDirectives; // To preserve order of user-provided types, we add first to add them to + // the set of "collected" types, so `collectReferencedTypes` ignore them. + + const allReferencedTypes = new Set(config.types); + + if (config.types != null) { + for (const type of config.types) { + // When we ready to process this type, we remove it from "collected" types + // and then add it together with all dependent types in the correct position. + allReferencedTypes.delete(type); + collectReferencedTypes(type, allReferencedTypes); + } + } + + if (this._queryType != null) { + collectReferencedTypes(this._queryType, allReferencedTypes); + } + + if (this._mutationType != null) { + collectReferencedTypes(this._mutationType, allReferencedTypes); + } + + if (this._subscriptionType != null) { + collectReferencedTypes(this._subscriptionType, allReferencedTypes); + } + + for (const directive of this._directives) { + // Directives are not validated until validateSchema() is called. + if ((0, _directives.isDirective)(directive)) { + for (const arg of directive.args) { + collectReferencedTypes(arg.type, allReferencedTypes); + } + } + } + + collectReferencedTypes(_introspection.__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema. + + this._typeMap = Object.create(null); + this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name. + + this._implementationsMap = Object.create(null); + + for (const namedType of allReferencedTypes) { + if (namedType == null) { + continue; + } + + const typeName = namedType.name; + typeName || + (0, _devAssert.devAssert)( + false, + 'One of the provided types for building the Schema is missing a name.', + ); + + if (this._typeMap[typeName] !== undefined) { + throw new Error( + `Schema must contain uniquely named types but contains multiple types named "${typeName}".`, + ); + } + + this._typeMap[typeName] = namedType; + + if ((0, _definition.isInterfaceType)(namedType)) { + // Store implementations by interface. + for (const iface of namedType.getInterfaces()) { + if ((0, _definition.isInterfaceType)(iface)) { + let implementations = this._implementationsMap[iface.name]; + + if (implementations === undefined) { + implementations = this._implementationsMap[iface.name] = { + objects: [], + interfaces: [], + }; + } + + implementations.interfaces.push(namedType); + } + } + } else if ((0, _definition.isObjectType)(namedType)) { + // Store implementations by objects. + for (const iface of namedType.getInterfaces()) { + if ((0, _definition.isInterfaceType)(iface)) { + let implementations = this._implementationsMap[iface.name]; + + if (implementations === undefined) { + implementations = this._implementationsMap[iface.name] = { + objects: [], + interfaces: [], + }; + } + + implementations.objects.push(namedType); + } + } + } + } + } + + get [Symbol.toStringTag]() { + return 'GraphQLSchema'; + } + + getQueryType() { + return this._queryType; + } + + getMutationType() { + return this._mutationType; + } + + getSubscriptionType() { + return this._subscriptionType; + } + + getRootType(operation) { + switch (operation) { + case _ast.OperationTypeNode.QUERY: + return this.getQueryType(); + + case _ast.OperationTypeNode.MUTATION: + return this.getMutationType(); + + case _ast.OperationTypeNode.SUBSCRIPTION: + return this.getSubscriptionType(); + } + } + + getTypeMap() { + return this._typeMap; + } + + getType(name) { + return this.getTypeMap()[name]; + } + + getPossibleTypes(abstractType) { + return (0, _definition.isUnionType)(abstractType) + ? abstractType.getTypes() + : this.getImplementations(abstractType).objects; + } + + getImplementations(interfaceType) { + const implementations = this._implementationsMap[interfaceType.name]; + return implementations !== null && implementations !== void 0 + ? implementations + : { + objects: [], + interfaces: [], + }; + } + + isSubType(abstractType, maybeSubType) { + let map = this._subTypeMap[abstractType.name]; + + if (map === undefined) { + map = Object.create(null); + + if ((0, _definition.isUnionType)(abstractType)) { + for (const type of abstractType.getTypes()) { + map[type.name] = true; + } + } else { + const implementations = this.getImplementations(abstractType); + + for (const type of implementations.objects) { + map[type.name] = true; + } + + for (const type of implementations.interfaces) { + map[type.name] = true; + } + } + + this._subTypeMap[abstractType.name] = map; + } + + return map[maybeSubType.name] !== undefined; + } + + getDirectives() { + return this._directives; + } + + getDirective(name) { + return this.getDirectives().find((directive) => directive.name === name); + } + + toConfig() { + return { + description: this.description, + query: this.getQueryType(), + mutation: this.getMutationType(), + subscription: this.getSubscriptionType(), + types: Object.values(this.getTypeMap()), + directives: this.getDirectives(), + extensions: this.extensions, + astNode: this.astNode, + extensionASTNodes: this.extensionASTNodes, + assumeValid: this.__validationErrors !== undefined, + }; + } +} + +exports.GraphQLSchema = GraphQLSchema; + +function collectReferencedTypes(type, typeSet) { + const namedType = (0, _definition.getNamedType)(type); + + if (!typeSet.has(namedType)) { + typeSet.add(namedType); + + if ((0, _definition.isUnionType)(namedType)) { + for (const memberType of namedType.getTypes()) { + collectReferencedTypes(memberType, typeSet); + } + } else if ( + (0, _definition.isObjectType)(namedType) || + (0, _definition.isInterfaceType)(namedType) + ) { + for (const interfaceType of namedType.getInterfaces()) { + collectReferencedTypes(interfaceType, typeSet); + } + + for (const field of Object.values(namedType.getFields())) { + collectReferencedTypes(field.type, typeSet); + + for (const arg of field.args) { + collectReferencedTypes(arg.type, typeSet); + } + } + } else if ((0, _definition.isInputObjectType)(namedType)) { + for (const field of Object.values(namedType.getFields())) { + collectReferencedTypes(field.type, typeSet); + } + } + } + + return typeSet; +} + + +/***/ }), + +/***/ 3756: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.assertValidSchema = assertValidSchema; +exports.validateSchema = validateSchema; + +var _inspect = __nccwpck_require__(3707); + +var _GraphQLError = __nccwpck_require__(1753); + +var _ast = __nccwpck_require__(906); + +var _typeComparators = __nccwpck_require__(961); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _introspection = __nccwpck_require__(2239); + +var _schema = __nccwpck_require__(3933); + +/** + * Implements the "Type Validation" sub-sections of the specification's + * "Type System" section. + * + * Validation runs synchronously, returning an array of encountered errors, or + * an empty array if no errors were encountered and the Schema is valid. + */ +function validateSchema(schema) { + // First check to ensure the provided value is in fact a GraphQLSchema. + (0, _schema.assertSchema)(schema); // If this Schema has already been validated, return the previous results. + + if (schema.__validationErrors) { + return schema.__validationErrors; + } // Validate the schema, producing a list of errors. + + const context = new SchemaValidationContext(schema); + validateRootTypes(context); + validateDirectives(context); + validateTypes(context); // Persist the results of validation before returning to ensure validation + // does not run multiple times for this schema. + + const errors = context.getErrors(); + schema.__validationErrors = errors; + return errors; +} +/** + * Utility function which asserts a schema is valid by throwing an error if + * it is invalid. + */ + +function assertValidSchema(schema) { + const errors = validateSchema(schema); + + if (errors.length !== 0) { + throw new Error(errors.map((error) => error.message).join('\n\n')); + } +} + +class SchemaValidationContext { + constructor(schema) { + this._errors = []; + this.schema = schema; + } + + reportError(message, nodes) { + const _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes; + + this._errors.push( + new _GraphQLError.GraphQLError(message, { + nodes: _nodes, + }), + ); + } + + getErrors() { + return this._errors; + } +} + +function validateRootTypes(context) { + const schema = context.schema; + const queryType = schema.getQueryType(); + + if (!queryType) { + context.reportError('Query root type must be provided.', schema.astNode); + } else if (!(0, _definition.isObjectType)(queryType)) { + var _getOperationTypeNode; + + context.reportError( + `Query root type must be Object type, it cannot be ${(0, + _inspect.inspect)(queryType)}.`, + (_getOperationTypeNode = getOperationTypeNode( + schema, + _ast.OperationTypeNode.QUERY, + )) !== null && _getOperationTypeNode !== void 0 + ? _getOperationTypeNode + : queryType.astNode, + ); + } + + const mutationType = schema.getMutationType(); + + if (mutationType && !(0, _definition.isObjectType)(mutationType)) { + var _getOperationTypeNode2; + + context.reportError( + 'Mutation root type must be Object type if provided, it cannot be ' + + `${(0, _inspect.inspect)(mutationType)}.`, + (_getOperationTypeNode2 = getOperationTypeNode( + schema, + _ast.OperationTypeNode.MUTATION, + )) !== null && _getOperationTypeNode2 !== void 0 + ? _getOperationTypeNode2 + : mutationType.astNode, + ); + } + + const subscriptionType = schema.getSubscriptionType(); + + if (subscriptionType && !(0, _definition.isObjectType)(subscriptionType)) { + var _getOperationTypeNode3; + + context.reportError( + 'Subscription root type must be Object type if provided, it cannot be ' + + `${(0, _inspect.inspect)(subscriptionType)}.`, + (_getOperationTypeNode3 = getOperationTypeNode( + schema, + _ast.OperationTypeNode.SUBSCRIPTION, + )) !== null && _getOperationTypeNode3 !== void 0 + ? _getOperationTypeNode3 + : subscriptionType.astNode, + ); + } +} + +function getOperationTypeNode(schema, operation) { + var _flatMap$find; + + return (_flatMap$find = [schema.astNode, ...schema.extensionASTNodes] + .flatMap( + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + (schemaNode) => { + var _schemaNode$operation; + + return ( + /* c8 ignore next */ + (_schemaNode$operation = + schemaNode === null || schemaNode === void 0 + ? void 0 + : schemaNode.operationTypes) !== null && + _schemaNode$operation !== void 0 + ? _schemaNode$operation + : [] + ); + }, + ) + .find((operationNode) => operationNode.operation === operation)) === null || + _flatMap$find === void 0 + ? void 0 + : _flatMap$find.type; +} + +function validateDirectives(context) { + for (const directive of context.schema.getDirectives()) { + // Ensure all directives are in fact GraphQL directives. + if (!(0, _directives.isDirective)(directive)) { + context.reportError( + `Expected directive but got: ${(0, _inspect.inspect)(directive)}.`, + directive === null || directive === void 0 ? void 0 : directive.astNode, + ); + continue; + } // Ensure they are named correctly. + + validateName(context, directive); // TODO: Ensure proper locations. + // Ensure the arguments are valid. + + for (const arg of directive.args) { + // Ensure they are named correctly. + validateName(context, arg); // Ensure the type is an input type. + + if (!(0, _definition.isInputType)(arg.type)) { + context.reportError( + `The type of @${directive.name}(${arg.name}:) must be Input Type ` + + `but got: ${(0, _inspect.inspect)(arg.type)}.`, + arg.astNode, + ); + } + + if ( + (0, _definition.isRequiredArgument)(arg) && + arg.deprecationReason != null + ) { + var _arg$astNode; + + context.reportError( + `Required argument @${directive.name}(${arg.name}:) cannot be deprecated.`, + [ + getDeprecatedDirectiveNode(arg.astNode), + (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 + ? void 0 + : _arg$astNode.type, + ], + ); + } + } + } +} + +function validateName(context, node) { + // Ensure names are valid, however introspection types opt out. + if (node.name.startsWith('__')) { + context.reportError( + `Name "${node.name}" must not begin with "__", which is reserved by GraphQL introspection.`, + node.astNode, + ); + } +} + +function validateTypes(context) { + const validateInputObjectCircularRefs = + createInputObjectCircularRefsValidator(context); + const typeMap = context.schema.getTypeMap(); + + for (const type of Object.values(typeMap)) { + // Ensure all provided types are in fact GraphQL type. + if (!(0, _definition.isNamedType)(type)) { + context.reportError( + `Expected GraphQL named type but got: ${(0, _inspect.inspect)(type)}.`, + type.astNode, + ); + continue; + } // Ensure it is named correctly (excluding introspection types). + + if (!(0, _introspection.isIntrospectionType)(type)) { + validateName(context, type); + } + + if ((0, _definition.isObjectType)(type)) { + // Ensure fields are valid + validateFields(context, type); // Ensure objects implement the interfaces they claim to. + + validateInterfaces(context, type); + } else if ((0, _definition.isInterfaceType)(type)) { + // Ensure fields are valid. + validateFields(context, type); // Ensure interfaces implement the interfaces they claim to. + + validateInterfaces(context, type); + } else if ((0, _definition.isUnionType)(type)) { + // Ensure Unions include valid member types. + validateUnionMembers(context, type); + } else if ((0, _definition.isEnumType)(type)) { + // Ensure Enums have valid values. + validateEnumValues(context, type); + } else if ((0, _definition.isInputObjectType)(type)) { + // Ensure Input Object fields are valid. + validateInputFields(context, type); // Ensure Input Objects do not contain non-nullable circular references + + validateInputObjectCircularRefs(type); + } + } +} + +function validateFields(context, type) { + const fields = Object.values(type.getFields()); // Objects and Interfaces both must define one or more fields. + + if (fields.length === 0) { + context.reportError(`Type ${type.name} must define one or more fields.`, [ + type.astNode, + ...type.extensionASTNodes, + ]); + } + + for (const field of fields) { + // Ensure they are named correctly. + validateName(context, field); // Ensure the type is an output type + + if (!(0, _definition.isOutputType)(field.type)) { + var _field$astNode; + + context.reportError( + `The type of ${type.name}.${field.name} must be Output Type ` + + `but got: ${(0, _inspect.inspect)(field.type)}.`, + (_field$astNode = field.astNode) === null || _field$astNode === void 0 + ? void 0 + : _field$astNode.type, + ); + } // Ensure the arguments are valid + + for (const arg of field.args) { + const argName = arg.name; // Ensure they are named correctly. + + validateName(context, arg); // Ensure the type is an input type + + if (!(0, _definition.isInputType)(arg.type)) { + var _arg$astNode2; + + context.reportError( + `The type of ${type.name}.${field.name}(${argName}:) must be Input ` + + `Type but got: ${(0, _inspect.inspect)(arg.type)}.`, + (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 + ? void 0 + : _arg$astNode2.type, + ); + } + + if ( + (0, _definition.isRequiredArgument)(arg) && + arg.deprecationReason != null + ) { + var _arg$astNode3; + + context.reportError( + `Required argument ${type.name}.${field.name}(${argName}:) cannot be deprecated.`, + [ + getDeprecatedDirectiveNode(arg.astNode), + (_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 + ? void 0 + : _arg$astNode3.type, + ], + ); + } + } + } +} + +function validateInterfaces(context, type) { + const ifaceTypeNames = Object.create(null); + + for (const iface of type.getInterfaces()) { + if (!(0, _definition.isInterfaceType)(iface)) { + context.reportError( + `Type ${(0, _inspect.inspect)( + type, + )} must only implement Interface types, ` + + `it cannot implement ${(0, _inspect.inspect)(iface)}.`, + getAllImplementsInterfaceNodes(type, iface), + ); + continue; + } + + if (type === iface) { + context.reportError( + `Type ${type.name} cannot implement itself because it would create a circular reference.`, + getAllImplementsInterfaceNodes(type, iface), + ); + continue; + } + + if (ifaceTypeNames[iface.name]) { + context.reportError( + `Type ${type.name} can only implement ${iface.name} once.`, + getAllImplementsInterfaceNodes(type, iface), + ); + continue; + } + + ifaceTypeNames[iface.name] = true; + validateTypeImplementsAncestors(context, type, iface); + validateTypeImplementsInterface(context, type, iface); + } +} + +function validateTypeImplementsInterface(context, type, iface) { + const typeFieldMap = type.getFields(); // Assert each interface field is implemented. + + for (const ifaceField of Object.values(iface.getFields())) { + const fieldName = ifaceField.name; + const typeField = typeFieldMap[fieldName]; // Assert interface field exists on type. + + if (!typeField) { + context.reportError( + `Interface field ${iface.name}.${fieldName} expected but ${type.name} does not provide it.`, + [ifaceField.astNode, type.astNode, ...type.extensionASTNodes], + ); + continue; + } // Assert interface field type is satisfied by type field type, by being + // a valid subtype. (covariant) + + if ( + !(0, _typeComparators.isTypeSubTypeOf)( + context.schema, + typeField.type, + ifaceField.type, + ) + ) { + var _ifaceField$astNode, _typeField$astNode; + + context.reportError( + `Interface field ${iface.name}.${fieldName} expects type ` + + `${(0, _inspect.inspect)(ifaceField.type)} but ${ + type.name + }.${fieldName} ` + + `is type ${(0, _inspect.inspect)(typeField.type)}.`, + [ + (_ifaceField$astNode = ifaceField.astNode) === null || + _ifaceField$astNode === void 0 + ? void 0 + : _ifaceField$astNode.type, + (_typeField$astNode = typeField.astNode) === null || + _typeField$astNode === void 0 + ? void 0 + : _typeField$astNode.type, + ], + ); + } // Assert each interface field arg is implemented. + + for (const ifaceArg of ifaceField.args) { + const argName = ifaceArg.name; + const typeArg = typeField.args.find((arg) => arg.name === argName); // Assert interface field arg exists on object field. + + if (!typeArg) { + context.reportError( + `Interface field argument ${iface.name}.${fieldName}(${argName}:) expected but ${type.name}.${fieldName} does not provide it.`, + [ifaceArg.astNode, typeField.astNode], + ); + continue; + } // Assert interface field arg type matches object field arg type. + // (invariant) + // TODO: change to contravariant? + + if (!(0, _typeComparators.isEqualType)(ifaceArg.type, typeArg.type)) { + var _ifaceArg$astNode, _typeArg$astNode; + + context.reportError( + `Interface field argument ${iface.name}.${fieldName}(${argName}:) ` + + `expects type ${(0, _inspect.inspect)(ifaceArg.type)} but ` + + `${type.name}.${fieldName}(${argName}:) is type ` + + `${(0, _inspect.inspect)(typeArg.type)}.`, + [ + (_ifaceArg$astNode = ifaceArg.astNode) === null || + _ifaceArg$astNode === void 0 + ? void 0 + : _ifaceArg$astNode.type, + (_typeArg$astNode = typeArg.astNode) === null || + _typeArg$astNode === void 0 + ? void 0 + : _typeArg$astNode.type, + ], + ); + } // TODO: validate default values? + } // Assert additional arguments must not be required. + + for (const typeArg of typeField.args) { + const argName = typeArg.name; + const ifaceArg = ifaceField.args.find((arg) => arg.name === argName); + + if (!ifaceArg && (0, _definition.isRequiredArgument)(typeArg)) { + context.reportError( + `Object field ${type.name}.${fieldName} includes required argument ${argName} that is missing from the Interface field ${iface.name}.${fieldName}.`, + [typeArg.astNode, ifaceField.astNode], + ); + } + } + } +} + +function validateTypeImplementsAncestors(context, type, iface) { + const ifaceInterfaces = type.getInterfaces(); + + for (const transitive of iface.getInterfaces()) { + if (!ifaceInterfaces.includes(transitive)) { + context.reportError( + transitive === type + ? `Type ${type.name} cannot implement ${iface.name} because it would create a circular reference.` + : `Type ${type.name} must implement ${transitive.name} because it is implemented by ${iface.name}.`, + [ + ...getAllImplementsInterfaceNodes(iface, transitive), + ...getAllImplementsInterfaceNodes(type, iface), + ], + ); + } + } +} + +function validateUnionMembers(context, union) { + const memberTypes = union.getTypes(); + + if (memberTypes.length === 0) { + context.reportError( + `Union type ${union.name} must define one or more member types.`, + [union.astNode, ...union.extensionASTNodes], + ); + } + + const includedTypeNames = Object.create(null); + + for (const memberType of memberTypes) { + if (includedTypeNames[memberType.name]) { + context.reportError( + `Union type ${union.name} can only include type ${memberType.name} once.`, + getUnionMemberTypeNodes(union, memberType.name), + ); + continue; + } + + includedTypeNames[memberType.name] = true; + + if (!(0, _definition.isObjectType)(memberType)) { + context.reportError( + `Union type ${union.name} can only include Object types, ` + + `it cannot include ${(0, _inspect.inspect)(memberType)}.`, + getUnionMemberTypeNodes(union, String(memberType)), + ); + } + } +} + +function validateEnumValues(context, enumType) { + const enumValues = enumType.getValues(); + + if (enumValues.length === 0) { + context.reportError( + `Enum type ${enumType.name} must define one or more values.`, + [enumType.astNode, ...enumType.extensionASTNodes], + ); + } + + for (const enumValue of enumValues) { + // Ensure valid name. + validateName(context, enumValue); + } +} + +function validateInputFields(context, inputObj) { + const fields = Object.values(inputObj.getFields()); + + if (fields.length === 0) { + context.reportError( + `Input Object type ${inputObj.name} must define one or more fields.`, + [inputObj.astNode, ...inputObj.extensionASTNodes], + ); + } // Ensure the arguments are valid + + for (const field of fields) { + // Ensure they are named correctly. + validateName(context, field); // Ensure the type is an input type + + if (!(0, _definition.isInputType)(field.type)) { + var _field$astNode2; + + context.reportError( + `The type of ${inputObj.name}.${field.name} must be Input Type ` + + `but got: ${(0, _inspect.inspect)(field.type)}.`, + (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 + ? void 0 + : _field$astNode2.type, + ); + } + + if ( + (0, _definition.isRequiredInputField)(field) && + field.deprecationReason != null + ) { + var _field$astNode3; + + context.reportError( + `Required input field ${inputObj.name}.${field.name} cannot be deprecated.`, + [ + getDeprecatedDirectiveNode(field.astNode), + (_field$astNode3 = field.astNode) === null || + _field$astNode3 === void 0 + ? void 0 + : _field$astNode3.type, + ], + ); + } + + if (inputObj.isOneOf) { + validateOneOfInputObjectField(inputObj, field, context); + } + } +} + +function validateOneOfInputObjectField(type, field, context) { + if ((0, _definition.isNonNullType)(field.type)) { + var _field$astNode4; + + context.reportError( + `OneOf input field ${type.name}.${field.name} must be nullable.`, + (_field$astNode4 = field.astNode) === null || _field$astNode4 === void 0 + ? void 0 + : _field$astNode4.type, + ); + } + + if (field.defaultValue !== undefined) { + context.reportError( + `OneOf input field ${type.name}.${field.name} cannot have a default value.`, + field.astNode, + ); + } +} + +function createInputObjectCircularRefsValidator(context) { + // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'. + // Tracks already visited types to maintain O(N) and to ensure that cycles + // are not redundantly reported. + const visitedTypes = Object.create(null); // Array of types nodes used to produce meaningful errors + + const fieldPath = []; // Position in the type path + + const fieldPathIndexByTypeName = Object.create(null); + return detectCycleRecursive; // This does a straight-forward DFS to find cycles. + // It does not terminate when a cycle was found but continues to explore + // the graph to find all possible cycles. + + function detectCycleRecursive(inputObj) { + if (visitedTypes[inputObj.name]) { + return; + } + + visitedTypes[inputObj.name] = true; + fieldPathIndexByTypeName[inputObj.name] = fieldPath.length; + const fields = Object.values(inputObj.getFields()); + + for (const field of fields) { + if ( + (0, _definition.isNonNullType)(field.type) && + (0, _definition.isInputObjectType)(field.type.ofType) + ) { + const fieldType = field.type.ofType; + const cycleIndex = fieldPathIndexByTypeName[fieldType.name]; + fieldPath.push(field); + + if (cycleIndex === undefined) { + detectCycleRecursive(fieldType); + } else { + const cyclePath = fieldPath.slice(cycleIndex); + const pathStr = cyclePath.map((fieldObj) => fieldObj.name).join('.'); + context.reportError( + `Cannot reference Input Object "${fieldType.name}" within itself through a series of non-null fields: "${pathStr}".`, + cyclePath.map((fieldObj) => fieldObj.astNode), + ); + } + + fieldPath.pop(); + } + } + + fieldPathIndexByTypeName[inputObj.name] = undefined; + } +} + +function getAllImplementsInterfaceNodes(type, iface) { + const { astNode, extensionASTNodes } = type; + const nodes = + astNode != null ? [astNode, ...extensionASTNodes] : extensionASTNodes; // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + return nodes + .flatMap((typeNode) => { + var _typeNode$interfaces; + + return ( + /* c8 ignore next */ + (_typeNode$interfaces = typeNode.interfaces) !== null && + _typeNode$interfaces !== void 0 + ? _typeNode$interfaces + : [] + ); + }) + .filter((ifaceNode) => ifaceNode.name.value === iface.name); +} + +function getUnionMemberTypeNodes(union, typeName) { + const { astNode, extensionASTNodes } = union; + const nodes = + astNode != null ? [astNode, ...extensionASTNodes] : extensionASTNodes; // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + return nodes + .flatMap((unionNode) => { + var _unionNode$types; + + return ( + /* c8 ignore next */ + (_unionNode$types = unionNode.types) !== null && + _unionNode$types !== void 0 + ? _unionNode$types + : [] + ); + }) + .filter((typeNode) => typeNode.name.value === typeName); +} + +function getDeprecatedDirectiveNode(definitionNode) { + var _definitionNode$direc; + + return definitionNode === null || definitionNode === void 0 + ? void 0 + : (_definitionNode$direc = definitionNode.directives) === null || + _definitionNode$direc === void 0 + ? void 0 + : _definitionNode$direc.find( + (node) => + node.name.value === _directives.GraphQLDeprecatedDirective.name, + ); +} + + +/***/ }), + +/***/ 3502: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.TypeInfo = void 0; +exports.visitWithTypeInfo = visitWithTypeInfo; + +var _ast = __nccwpck_require__(906); + +var _kinds = __nccwpck_require__(2881); + +var _visitor = __nccwpck_require__(7848); + +var _definition = __nccwpck_require__(699); + +var _introspection = __nccwpck_require__(2239); + +var _typeFromAST = __nccwpck_require__(2136); + +/** + * TypeInfo is a utility class which, given a GraphQL schema, can keep track + * of the current field and type definitions at any point in a GraphQL document + * AST during a recursive descent by calling `enter(node)` and `leave(node)`. + */ +class TypeInfo { + constructor( + schema, + /** + * Initial type may be provided in rare cases to facilitate traversals + * beginning somewhere other than documents. + */ + initialType, + /** @deprecated will be removed in 17.0.0 */ + getFieldDefFn, + ) { + this._schema = schema; + this._typeStack = []; + this._parentTypeStack = []; + this._inputTypeStack = []; + this._fieldDefStack = []; + this._defaultValueStack = []; + this._directive = null; + this._argument = null; + this._enumValue = null; + this._getFieldDef = + getFieldDefFn !== null && getFieldDefFn !== void 0 + ? getFieldDefFn + : getFieldDef; + + if (initialType) { + if ((0, _definition.isInputType)(initialType)) { + this._inputTypeStack.push(initialType); + } + + if ((0, _definition.isCompositeType)(initialType)) { + this._parentTypeStack.push(initialType); + } + + if ((0, _definition.isOutputType)(initialType)) { + this._typeStack.push(initialType); + } + } + } + + get [Symbol.toStringTag]() { + return 'TypeInfo'; + } + + getType() { + if (this._typeStack.length > 0) { + return this._typeStack[this._typeStack.length - 1]; + } + } + + getParentType() { + if (this._parentTypeStack.length > 0) { + return this._parentTypeStack[this._parentTypeStack.length - 1]; + } + } + + getInputType() { + if (this._inputTypeStack.length > 0) { + return this._inputTypeStack[this._inputTypeStack.length - 1]; + } + } + + getParentInputType() { + if (this._inputTypeStack.length > 1) { + return this._inputTypeStack[this._inputTypeStack.length - 2]; + } + } + + getFieldDef() { + if (this._fieldDefStack.length > 0) { + return this._fieldDefStack[this._fieldDefStack.length - 1]; + } + } + + getDefaultValue() { + if (this._defaultValueStack.length > 0) { + return this._defaultValueStack[this._defaultValueStack.length - 1]; + } + } + + getDirective() { + return this._directive; + } + + getArgument() { + return this._argument; + } + + getEnumValue() { + return this._enumValue; + } + + enter(node) { + const schema = this._schema; // Note: many of the types below are explicitly typed as "unknown" to drop + // any assumptions of a valid schema to ensure runtime types are properly + // checked before continuing since TypeInfo is used as part of validation + // which occurs before guarantees of schema and document validity. + + switch (node.kind) { + case _kinds.Kind.SELECTION_SET: { + const namedType = (0, _definition.getNamedType)(this.getType()); + + this._parentTypeStack.push( + (0, _definition.isCompositeType)(namedType) ? namedType : undefined, + ); + + break; + } + + case _kinds.Kind.FIELD: { + const parentType = this.getParentType(); + let fieldDef; + let fieldType; + + if (parentType) { + fieldDef = this._getFieldDef(schema, parentType, node); + + if (fieldDef) { + fieldType = fieldDef.type; + } + } + + this._fieldDefStack.push(fieldDef); + + this._typeStack.push( + (0, _definition.isOutputType)(fieldType) ? fieldType : undefined, + ); + + break; + } + + case _kinds.Kind.DIRECTIVE: + this._directive = schema.getDirective(node.name.value); + break; + + case _kinds.Kind.OPERATION_DEFINITION: { + const rootType = schema.getRootType(node.operation); + + this._typeStack.push( + (0, _definition.isObjectType)(rootType) ? rootType : undefined, + ); + + break; + } + + case _kinds.Kind.INLINE_FRAGMENT: + case _kinds.Kind.FRAGMENT_DEFINITION: { + const typeConditionAST = node.typeCondition; + const outputType = typeConditionAST + ? (0, _typeFromAST.typeFromAST)(schema, typeConditionAST) + : (0, _definition.getNamedType)(this.getType()); + + this._typeStack.push( + (0, _definition.isOutputType)(outputType) ? outputType : undefined, + ); + + break; + } + + case _kinds.Kind.VARIABLE_DEFINITION: { + const inputType = (0, _typeFromAST.typeFromAST)(schema, node.type); + + this._inputTypeStack.push( + (0, _definition.isInputType)(inputType) ? inputType : undefined, + ); + + break; + } + + case _kinds.Kind.ARGUMENT: { + var _this$getDirective; + + let argDef; + let argType; + const fieldOrDirective = + (_this$getDirective = this.getDirective()) !== null && + _this$getDirective !== void 0 + ? _this$getDirective + : this.getFieldDef(); + + if (fieldOrDirective) { + argDef = fieldOrDirective.args.find( + (arg) => arg.name === node.name.value, + ); + + if (argDef) { + argType = argDef.type; + } + } + + this._argument = argDef; + + this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined); + + this._inputTypeStack.push( + (0, _definition.isInputType)(argType) ? argType : undefined, + ); + + break; + } + + case _kinds.Kind.LIST: { + const listType = (0, _definition.getNullableType)(this.getInputType()); + const itemType = (0, _definition.isListType)(listType) + ? listType.ofType + : listType; // List positions never have a default value. + + this._defaultValueStack.push(undefined); + + this._inputTypeStack.push( + (0, _definition.isInputType)(itemType) ? itemType : undefined, + ); + + break; + } + + case _kinds.Kind.OBJECT_FIELD: { + const objectType = (0, _definition.getNamedType)(this.getInputType()); + let inputFieldType; + let inputField; + + if ((0, _definition.isInputObjectType)(objectType)) { + inputField = objectType.getFields()[node.name.value]; + + if (inputField) { + inputFieldType = inputField.type; + } + } + + this._defaultValueStack.push( + inputField ? inputField.defaultValue : undefined, + ); + + this._inputTypeStack.push( + (0, _definition.isInputType)(inputFieldType) + ? inputFieldType + : undefined, + ); + + break; + } + + case _kinds.Kind.ENUM: { + const enumType = (0, _definition.getNamedType)(this.getInputType()); + let enumValue; + + if ((0, _definition.isEnumType)(enumType)) { + enumValue = enumType.getValue(node.value); + } + + this._enumValue = enumValue; + break; + } + + default: // Ignore other nodes + } + } + + leave(node) { + switch (node.kind) { + case _kinds.Kind.SELECTION_SET: + this._parentTypeStack.pop(); + + break; + + case _kinds.Kind.FIELD: + this._fieldDefStack.pop(); + + this._typeStack.pop(); + + break; + + case _kinds.Kind.DIRECTIVE: + this._directive = null; + break; + + case _kinds.Kind.OPERATION_DEFINITION: + case _kinds.Kind.INLINE_FRAGMENT: + case _kinds.Kind.FRAGMENT_DEFINITION: + this._typeStack.pop(); + + break; + + case _kinds.Kind.VARIABLE_DEFINITION: + this._inputTypeStack.pop(); + + break; + + case _kinds.Kind.ARGUMENT: + this._argument = null; + + this._defaultValueStack.pop(); + + this._inputTypeStack.pop(); + + break; + + case _kinds.Kind.LIST: + case _kinds.Kind.OBJECT_FIELD: + this._defaultValueStack.pop(); + + this._inputTypeStack.pop(); + + break; + + case _kinds.Kind.ENUM: + this._enumValue = null; + break; + + default: // Ignore other nodes + } + } +} + +exports.TypeInfo = TypeInfo; + +/** + * Not exactly the same as the executor's definition of getFieldDef, in this + * statically evaluated environment we do not always have an Object type, + * and need to handle Interface and Union types. + */ +function getFieldDef(schema, parentType, fieldNode) { + const name = fieldNode.name.value; + + if ( + name === _introspection.SchemaMetaFieldDef.name && + schema.getQueryType() === parentType + ) { + return _introspection.SchemaMetaFieldDef; + } + + if ( + name === _introspection.TypeMetaFieldDef.name && + schema.getQueryType() === parentType + ) { + return _introspection.TypeMetaFieldDef; + } + + if ( + name === _introspection.TypeNameMetaFieldDef.name && + (0, _definition.isCompositeType)(parentType) + ) { + return _introspection.TypeNameMetaFieldDef; + } + + if ( + (0, _definition.isObjectType)(parentType) || + (0, _definition.isInterfaceType)(parentType) + ) { + return parentType.getFields()[name]; + } +} +/** + * Creates a new visitor instance which maintains a provided TypeInfo instance + * along with visiting visitor. + */ + +function visitWithTypeInfo(typeInfo, visitor) { + return { + enter(...args) { + const node = args[0]; + typeInfo.enter(node); + const fn = (0, _visitor.getEnterLeaveForKind)(visitor, node.kind).enter; + + if (fn) { + const result = fn.apply(visitor, args); + + if (result !== undefined) { + typeInfo.leave(node); + + if ((0, _ast.isNode)(result)) { + typeInfo.enter(result); + } + } + + return result; + } + }, + + leave(...args) { + const node = args[0]; + const fn = (0, _visitor.getEnterLeaveForKind)(visitor, node.kind).leave; + let result; + + if (fn) { + result = fn.apply(visitor, args); + } + + typeInfo.leave(node); + return result; + }, + }; +} + + +/***/ }), + +/***/ 7963: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.assertValidName = assertValidName; +exports.isValidNameError = isValidNameError; + +var _devAssert = __nccwpck_require__(7437); + +var _GraphQLError = __nccwpck_require__(1753); + +var _assertName = __nccwpck_require__(5275); + +/* c8 ignore start */ + +/** + * Upholds the spec rules about naming. + * @deprecated Please use `assertName` instead. Will be removed in v17 + */ +function assertValidName(name) { + const error = isValidNameError(name); + + if (error) { + throw error; + } + + return name; +} +/** + * Returns an Error if a name is invalid. + * @deprecated Please use `assertName` instead. Will be removed in v17 + */ + +function isValidNameError(name) { + typeof name === 'string' || + (0, _devAssert.devAssert)(false, 'Expected name to be a string.'); + + if (name.startsWith('__')) { + return new _GraphQLError.GraphQLError( + `Name "${name}" must not begin with "__", which is reserved by GraphQL introspection.`, + ); + } + + try { + (0, _assertName.assertName)(name); + } catch (error) { + return error; + } +} +/* c8 ignore stop */ + + +/***/ }), + +/***/ 8539: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.astFromValue = astFromValue; + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _isIterableObject = __nccwpck_require__(4507); + +var _isObjectLike = __nccwpck_require__(7502); + +var _kinds = __nccwpck_require__(2881); + +var _definition = __nccwpck_require__(699); + +var _scalars = __nccwpck_require__(8633); + +/** + * Produces a GraphQL Value AST given a JavaScript object. + * Function will match JavaScript/JSON values to GraphQL AST schema format + * by using suggested GraphQLInputType. For example: + * + * astFromValue("value", GraphQLString) + * + * A GraphQL type must be provided, which will be used to interpret different + * JavaScript values. + * + * | JSON Value | GraphQL Value | + * | ------------- | -------------------- | + * | Object | Input Object | + * | Array | List | + * | Boolean | Boolean | + * | String | String / Enum Value | + * | Number | Int / Float | + * | Unknown | Enum Value | + * | null | NullValue | + * + */ +function astFromValue(value, type) { + if ((0, _definition.isNonNullType)(type)) { + const astValue = astFromValue(value, type.ofType); + + if ( + (astValue === null || astValue === void 0 ? void 0 : astValue.kind) === + _kinds.Kind.NULL + ) { + return null; + } + + return astValue; + } // only explicit null, not undefined, NaN + + if (value === null) { + return { + kind: _kinds.Kind.NULL, + }; + } // undefined + + if (value === undefined) { + return null; + } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but + // the value is not an array, convert the value using the list's item type. + + if ((0, _definition.isListType)(type)) { + const itemType = type.ofType; + + if ((0, _isIterableObject.isIterableObject)(value)) { + const valuesNodes = []; + + for (const item of value) { + const itemNode = astFromValue(item, itemType); + + if (itemNode != null) { + valuesNodes.push(itemNode); + } + } + + return { + kind: _kinds.Kind.LIST, + values: valuesNodes, + }; + } + + return astFromValue(value, itemType); + } // Populate the fields of the input object by creating ASTs from each value + // in the JavaScript object according to the fields in the input type. + + if ((0, _definition.isInputObjectType)(type)) { + if (!(0, _isObjectLike.isObjectLike)(value)) { + return null; + } + + const fieldNodes = []; + + for (const field of Object.values(type.getFields())) { + const fieldValue = astFromValue(value[field.name], field.type); + + if (fieldValue) { + fieldNodes.push({ + kind: _kinds.Kind.OBJECT_FIELD, + name: { + kind: _kinds.Kind.NAME, + value: field.name, + }, + value: fieldValue, + }); + } + } + + return { + kind: _kinds.Kind.OBJECT, + fields: fieldNodes, + }; + } + + if ((0, _definition.isLeafType)(type)) { + // Since value is an internally represented value, it must be serialized + // to an externally represented value before converting into an AST. + const serialized = type.serialize(value); + + if (serialized == null) { + return null; + } // Others serialize based on their corresponding JavaScript scalar types. + + if (typeof serialized === 'boolean') { + return { + kind: _kinds.Kind.BOOLEAN, + value: serialized, + }; + } // JavaScript numbers can be Int or Float values. + + if (typeof serialized === 'number' && Number.isFinite(serialized)) { + const stringNum = String(serialized); + return integerStringRegExp.test(stringNum) + ? { + kind: _kinds.Kind.INT, + value: stringNum, + } + : { + kind: _kinds.Kind.FLOAT, + value: stringNum, + }; + } + + if (typeof serialized === 'string') { + // Enum types use Enum literals. + if ((0, _definition.isEnumType)(type)) { + return { + kind: _kinds.Kind.ENUM, + value: serialized, + }; + } // ID types can use Int literals. + + if (type === _scalars.GraphQLID && integerStringRegExp.test(serialized)) { + return { + kind: _kinds.Kind.INT, + value: serialized, + }; + } + + return { + kind: _kinds.Kind.STRING, + value: serialized, + }; + } + + throw new TypeError( + `Cannot convert value to AST: ${(0, _inspect.inspect)(serialized)}.`, + ); + } + /* c8 ignore next 3 */ + // Not reachable, all possible types have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Unexpected input type: ' + (0, _inspect.inspect)(type), + ); +} +/** + * IntValue: + * - NegativeSign? 0 + * - NegativeSign? NonZeroDigit ( Digit+ )? + */ + +const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/; + + +/***/ }), + +/***/ 2957: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.buildASTSchema = buildASTSchema; +exports.buildSchema = buildSchema; + +var _devAssert = __nccwpck_require__(7437); + +var _kinds = __nccwpck_require__(2881); + +var _parser = __nccwpck_require__(8443); + +var _directives = __nccwpck_require__(2572); + +var _schema = __nccwpck_require__(3933); + +var _validate = __nccwpck_require__(5105); + +var _extendSchema = __nccwpck_require__(4445); + +/** + * This takes the ast of a schema document produced by the parse function in + * src/language/parser.js. + * + * If no schema definition is provided, then it will look for types named Query, + * Mutation and Subscription. + * + * Given that AST it constructs a GraphQLSchema. The resulting schema + * has no resolve methods, so execution will use default resolvers. + */ +function buildASTSchema(documentAST, options) { + (documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) || + (0, _devAssert.devAssert)(false, 'Must provide valid Document AST.'); + + if ( + (options === null || options === void 0 ? void 0 : options.assumeValid) !== + true && + (options === null || options === void 0 + ? void 0 + : options.assumeValidSDL) !== true + ) { + (0, _validate.assertValidSDL)(documentAST); + } + + const emptySchemaConfig = { + description: undefined, + types: [], + directives: [], + extensions: Object.create(null), + extensionASTNodes: [], + assumeValid: false, + }; + const config = (0, _extendSchema.extendSchemaImpl)( + emptySchemaConfig, + documentAST, + options, + ); + + if (config.astNode == null) { + for (const type of config.types) { + switch (type.name) { + // Note: While this could make early assertions to get the correctly + // typed values below, that would throw immediately while type system + // validation with validateSchema() will produce more actionable results. + case 'Query': + // @ts-expect-error validated in `validateSchema` + config.query = type; + break; + + case 'Mutation': + // @ts-expect-error validated in `validateSchema` + config.mutation = type; + break; + + case 'Subscription': + // @ts-expect-error validated in `validateSchema` + config.subscription = type; + break; + } + } + } + + const directives = [ + ...config.directives, // If specified directives were not explicitly declared, add them. + ..._directives.specifiedDirectives.filter((stdDirective) => + config.directives.every( + (directive) => directive.name !== stdDirective.name, + ), + ), + ]; + return new _schema.GraphQLSchema({ ...config, directives }); +} +/** + * A helper function to build a GraphQLSchema directly from a source + * document. + */ + +function buildSchema(source, options) { + const document = (0, _parser.parse)(source, { + noLocation: + options === null || options === void 0 ? void 0 : options.noLocation, + allowLegacyFragmentVariables: + options === null || options === void 0 + ? void 0 + : options.allowLegacyFragmentVariables, + }); + return buildASTSchema(document, { + assumeValidSDL: + options === null || options === void 0 ? void 0 : options.assumeValidSDL, + assumeValid: + options === null || options === void 0 ? void 0 : options.assumeValid, + }); +} + + +/***/ }), + +/***/ 9460: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.buildClientSchema = buildClientSchema; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _isObjectLike = __nccwpck_require__(7502); + +var _keyValMap = __nccwpck_require__(4876); + +var _parser = __nccwpck_require__(8443); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _introspection = __nccwpck_require__(2239); + +var _scalars = __nccwpck_require__(8633); + +var _schema = __nccwpck_require__(3933); + +var _valueFromAST = __nccwpck_require__(21); + +/** + * Build a GraphQLSchema for use by client tools. + * + * Given the result of a client running the introspection query, creates and + * returns a GraphQLSchema instance which can be then used with all graphql-js + * tools, but cannot be used to execute a query, as introspection does not + * represent the "resolver", "parse" or "serialize" functions or any other + * server-internal mechanisms. + * + * This function expects a complete introspection result. Don't forget to check + * the "errors" field of a server response before calling this function. + */ +function buildClientSchema(introspection, options) { + ((0, _isObjectLike.isObjectLike)(introspection) && + (0, _isObjectLike.isObjectLike)(introspection.__schema)) || + (0, _devAssert.devAssert)( + false, + `Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0, + _inspect.inspect)(introspection)}.`, + ); // Get the schema from the introspection result. + + const schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each. + + const typeMap = (0, _keyValMap.keyValMap)( + schemaIntrospection.types, + (typeIntrospection) => typeIntrospection.name, + (typeIntrospection) => buildType(typeIntrospection), + ); // Include standard types only if they are used. + + for (const stdType of [ + ..._scalars.specifiedScalarTypes, + ..._introspection.introspectionTypes, + ]) { + if (typeMap[stdType.name]) { + typeMap[stdType.name] = stdType; + } + } // Get the root Query, Mutation, and Subscription types. + + const queryType = schemaIntrospection.queryType + ? getObjectType(schemaIntrospection.queryType) + : null; + const mutationType = schemaIntrospection.mutationType + ? getObjectType(schemaIntrospection.mutationType) + : null; + const subscriptionType = schemaIntrospection.subscriptionType + ? getObjectType(schemaIntrospection.subscriptionType) + : null; // Get the directives supported by Introspection, assuming empty-set if + // directives were not queried for. + + const directives = schemaIntrospection.directives + ? schemaIntrospection.directives.map(buildDirective) + : []; // Then produce and return a Schema with these types. + + return new _schema.GraphQLSchema({ + description: schemaIntrospection.description, + query: queryType, + mutation: mutationType, + subscription: subscriptionType, + types: Object.values(typeMap), + directives, + assumeValid: + options === null || options === void 0 ? void 0 : options.assumeValid, + }); // Given a type reference in introspection, return the GraphQLType instance. + // preferring cached instances before building new instances. + + function getType(typeRef) { + if (typeRef.kind === _introspection.TypeKind.LIST) { + const itemRef = typeRef.ofType; + + if (!itemRef) { + throw new Error('Decorated type deeper than introspection query.'); + } + + return new _definition.GraphQLList(getType(itemRef)); + } + + if (typeRef.kind === _introspection.TypeKind.NON_NULL) { + const nullableRef = typeRef.ofType; + + if (!nullableRef) { + throw new Error('Decorated type deeper than introspection query.'); + } + + const nullableType = getType(nullableRef); + return new _definition.GraphQLNonNull( + (0, _definition.assertNullableType)(nullableType), + ); + } + + return getNamedType(typeRef); + } + + function getNamedType(typeRef) { + const typeName = typeRef.name; + + if (!typeName) { + throw new Error( + `Unknown type reference: ${(0, _inspect.inspect)(typeRef)}.`, + ); + } + + const type = typeMap[typeName]; + + if (!type) { + throw new Error( + `Invalid or incomplete schema, unknown type: ${typeName}. Ensure that a full introspection query is used in order to build a client schema.`, + ); + } + + return type; + } + + function getObjectType(typeRef) { + return (0, _definition.assertObjectType)(getNamedType(typeRef)); + } + + function getInterfaceType(typeRef) { + return (0, _definition.assertInterfaceType)(getNamedType(typeRef)); + } // Given a type's introspection result, construct the correct + // GraphQLType instance. + + function buildType(type) { + // eslint-disable-next-line @typescript-eslint/prefer-optional-chain + if (type != null && type.name != null && type.kind != null) { + // FIXME: Properly type IntrospectionType, it's a breaking change so fix in v17 + // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check + switch (type.kind) { + case _introspection.TypeKind.SCALAR: + return buildScalarDef(type); + + case _introspection.TypeKind.OBJECT: + return buildObjectDef(type); + + case _introspection.TypeKind.INTERFACE: + return buildInterfaceDef(type); + + case _introspection.TypeKind.UNION: + return buildUnionDef(type); + + case _introspection.TypeKind.ENUM: + return buildEnumDef(type); + + case _introspection.TypeKind.INPUT_OBJECT: + return buildInputObjectDef(type); + } + } + + const typeStr = (0, _inspect.inspect)(type); + throw new Error( + `Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${typeStr}.`, + ); + } + + function buildScalarDef(scalarIntrospection) { + return new _definition.GraphQLScalarType({ + name: scalarIntrospection.name, + description: scalarIntrospection.description, + specifiedByURL: scalarIntrospection.specifiedByURL, + }); + } + + function buildImplementationsList(implementingIntrospection) { + // TODO: Temporary workaround until GraphQL ecosystem will fully support + // 'interfaces' on interface types. + if ( + implementingIntrospection.interfaces === null && + implementingIntrospection.kind === _introspection.TypeKind.INTERFACE + ) { + return []; + } + + if (!implementingIntrospection.interfaces) { + const implementingIntrospectionStr = (0, _inspect.inspect)( + implementingIntrospection, + ); + throw new Error( + `Introspection result missing interfaces: ${implementingIntrospectionStr}.`, + ); + } + + return implementingIntrospection.interfaces.map(getInterfaceType); + } + + function buildObjectDef(objectIntrospection) { + return new _definition.GraphQLObjectType({ + name: objectIntrospection.name, + description: objectIntrospection.description, + interfaces: () => buildImplementationsList(objectIntrospection), + fields: () => buildFieldDefMap(objectIntrospection), + }); + } + + function buildInterfaceDef(interfaceIntrospection) { + return new _definition.GraphQLInterfaceType({ + name: interfaceIntrospection.name, + description: interfaceIntrospection.description, + interfaces: () => buildImplementationsList(interfaceIntrospection), + fields: () => buildFieldDefMap(interfaceIntrospection), + }); + } + + function buildUnionDef(unionIntrospection) { + if (!unionIntrospection.possibleTypes) { + const unionIntrospectionStr = (0, _inspect.inspect)(unionIntrospection); + throw new Error( + `Introspection result missing possibleTypes: ${unionIntrospectionStr}.`, + ); + } + + return new _definition.GraphQLUnionType({ + name: unionIntrospection.name, + description: unionIntrospection.description, + types: () => unionIntrospection.possibleTypes.map(getObjectType), + }); + } + + function buildEnumDef(enumIntrospection) { + if (!enumIntrospection.enumValues) { + const enumIntrospectionStr = (0, _inspect.inspect)(enumIntrospection); + throw new Error( + `Introspection result missing enumValues: ${enumIntrospectionStr}.`, + ); + } + + return new _definition.GraphQLEnumType({ + name: enumIntrospection.name, + description: enumIntrospection.description, + values: (0, _keyValMap.keyValMap)( + enumIntrospection.enumValues, + (valueIntrospection) => valueIntrospection.name, + (valueIntrospection) => ({ + description: valueIntrospection.description, + deprecationReason: valueIntrospection.deprecationReason, + }), + ), + }); + } + + function buildInputObjectDef(inputObjectIntrospection) { + if (!inputObjectIntrospection.inputFields) { + const inputObjectIntrospectionStr = (0, _inspect.inspect)( + inputObjectIntrospection, + ); + throw new Error( + `Introspection result missing inputFields: ${inputObjectIntrospectionStr}.`, + ); + } + + return new _definition.GraphQLInputObjectType({ + name: inputObjectIntrospection.name, + description: inputObjectIntrospection.description, + fields: () => buildInputValueDefMap(inputObjectIntrospection.inputFields), + isOneOf: inputObjectIntrospection.isOneOf, + }); + } + + function buildFieldDefMap(typeIntrospection) { + if (!typeIntrospection.fields) { + throw new Error( + `Introspection result missing fields: ${(0, _inspect.inspect)( + typeIntrospection, + )}.`, + ); + } + + return (0, _keyValMap.keyValMap)( + typeIntrospection.fields, + (fieldIntrospection) => fieldIntrospection.name, + buildField, + ); + } + + function buildField(fieldIntrospection) { + const type = getType(fieldIntrospection.type); + + if (!(0, _definition.isOutputType)(type)) { + const typeStr = (0, _inspect.inspect)(type); + throw new Error( + `Introspection must provide output type for fields, but received: ${typeStr}.`, + ); + } + + if (!fieldIntrospection.args) { + const fieldIntrospectionStr = (0, _inspect.inspect)(fieldIntrospection); + throw new Error( + `Introspection result missing field args: ${fieldIntrospectionStr}.`, + ); + } + + return { + description: fieldIntrospection.description, + deprecationReason: fieldIntrospection.deprecationReason, + type, + args: buildInputValueDefMap(fieldIntrospection.args), + }; + } + + function buildInputValueDefMap(inputValueIntrospections) { + return (0, _keyValMap.keyValMap)( + inputValueIntrospections, + (inputValue) => inputValue.name, + buildInputValue, + ); + } + + function buildInputValue(inputValueIntrospection) { + const type = getType(inputValueIntrospection.type); + + if (!(0, _definition.isInputType)(type)) { + const typeStr = (0, _inspect.inspect)(type); + throw new Error( + `Introspection must provide input type for arguments, but received: ${typeStr}.`, + ); + } + + const defaultValue = + inputValueIntrospection.defaultValue != null + ? (0, _valueFromAST.valueFromAST)( + (0, _parser.parseValue)(inputValueIntrospection.defaultValue), + type, + ) + : undefined; + return { + description: inputValueIntrospection.description, + type, + defaultValue, + deprecationReason: inputValueIntrospection.deprecationReason, + }; + } + + function buildDirective(directiveIntrospection) { + if (!directiveIntrospection.args) { + const directiveIntrospectionStr = (0, _inspect.inspect)( + directiveIntrospection, + ); + throw new Error( + `Introspection result missing directive args: ${directiveIntrospectionStr}.`, + ); + } + + if (!directiveIntrospection.locations) { + const directiveIntrospectionStr = (0, _inspect.inspect)( + directiveIntrospection, + ); + throw new Error( + `Introspection result missing directive locations: ${directiveIntrospectionStr}.`, + ); + } + + return new _directives.GraphQLDirective({ + name: directiveIntrospection.name, + description: directiveIntrospection.description, + isRepeatable: directiveIntrospection.isRepeatable, + locations: directiveIntrospection.locations.slice(), + args: buildInputValueDefMap(directiveIntrospection.args), + }); + } +} + + +/***/ }), + +/***/ 894: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.coerceInputValue = coerceInputValue; + +var _didYouMean = __nccwpck_require__(1627); + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _isIterableObject = __nccwpck_require__(4507); + +var _isObjectLike = __nccwpck_require__(7502); + +var _Path = __nccwpck_require__(2373); + +var _printPathArray = __nccwpck_require__(548); + +var _suggestionList = __nccwpck_require__(3046); + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +/** + * Coerces a JavaScript value given a GraphQL Input Type. + */ +function coerceInputValue(inputValue, type, onError = defaultOnError) { + return coerceInputValueImpl(inputValue, type, onError, undefined); +} + +function defaultOnError(path, invalidValue, error) { + let errorPrefix = 'Invalid value ' + (0, _inspect.inspect)(invalidValue); + + if (path.length > 0) { + errorPrefix += ` at "value${(0, _printPathArray.printPathArray)(path)}"`; + } + + error.message = errorPrefix + ': ' + error.message; + throw error; +} + +function coerceInputValueImpl(inputValue, type, onError, path) { + if ((0, _definition.isNonNullType)(type)) { + if (inputValue != null) { + return coerceInputValueImpl(inputValue, type.ofType, onError, path); + } + + onError( + (0, _Path.pathToArray)(path), + inputValue, + new _GraphQLError.GraphQLError( + `Expected non-nullable type "${(0, _inspect.inspect)( + type, + )}" not to be null.`, + ), + ); + return; + } + + if (inputValue == null) { + // Explicitly return the value null. + return null; + } + + if ((0, _definition.isListType)(type)) { + const itemType = type.ofType; + + if ((0, _isIterableObject.isIterableObject)(inputValue)) { + return Array.from(inputValue, (itemValue, index) => { + const itemPath = (0, _Path.addPath)(path, index, undefined); + return coerceInputValueImpl(itemValue, itemType, onError, itemPath); + }); + } // Lists accept a non-list value as a list of one. + + return [coerceInputValueImpl(inputValue, itemType, onError, path)]; + } + + if ((0, _definition.isInputObjectType)(type)) { + if (!(0, _isObjectLike.isObjectLike)(inputValue)) { + onError( + (0, _Path.pathToArray)(path), + inputValue, + new _GraphQLError.GraphQLError( + `Expected type "${type.name}" to be an object.`, + ), + ); + return; + } + + const coercedValue = {}; + const fieldDefs = type.getFields(); + + for (const field of Object.values(fieldDefs)) { + const fieldValue = inputValue[field.name]; + + if (fieldValue === undefined) { + if (field.defaultValue !== undefined) { + coercedValue[field.name] = field.defaultValue; + } else if ((0, _definition.isNonNullType)(field.type)) { + const typeStr = (0, _inspect.inspect)(field.type); + onError( + (0, _Path.pathToArray)(path), + inputValue, + new _GraphQLError.GraphQLError( + `Field "${field.name}" of required type "${typeStr}" was not provided.`, + ), + ); + } + + continue; + } + + coercedValue[field.name] = coerceInputValueImpl( + fieldValue, + field.type, + onError, + (0, _Path.addPath)(path, field.name, type.name), + ); + } // Ensure every provided field is defined. + + for (const fieldName of Object.keys(inputValue)) { + if (!fieldDefs[fieldName]) { + const suggestions = (0, _suggestionList.suggestionList)( + fieldName, + Object.keys(type.getFields()), + ); + onError( + (0, _Path.pathToArray)(path), + inputValue, + new _GraphQLError.GraphQLError( + `Field "${fieldName}" is not defined by type "${type.name}".` + + (0, _didYouMean.didYouMean)(suggestions), + ), + ); + } + } + + if (type.isOneOf) { + const keys = Object.keys(coercedValue); + + if (keys.length !== 1) { + onError( + (0, _Path.pathToArray)(path), + inputValue, + new _GraphQLError.GraphQLError( + `Exactly one key must be specified for OneOf type "${type.name}".`, + ), + ); + } + + const key = keys[0]; + const value = coercedValue[key]; + + if (value === null) { + onError( + (0, _Path.pathToArray)(path).concat(key), + value, + new _GraphQLError.GraphQLError(`Field "${key}" must be non-null.`), + ); + } + } + + return coercedValue; + } + + if ((0, _definition.isLeafType)(type)) { + let parseResult; // Scalars and Enums determine if a input value is valid via parseValue(), + // which can throw to indicate failure. If it throws, maintain a reference + // to the original error. + + try { + parseResult = type.parseValue(inputValue); + } catch (error) { + if (error instanceof _GraphQLError.GraphQLError) { + onError((0, _Path.pathToArray)(path), inputValue, error); + } else { + onError( + (0, _Path.pathToArray)(path), + inputValue, + new _GraphQLError.GraphQLError( + `Expected type "${type.name}". ` + error.message, + { + originalError: error, + }, + ), + ); + } + + return; + } + + if (parseResult === undefined) { + onError( + (0, _Path.pathToArray)(path), + inputValue, + new _GraphQLError.GraphQLError(`Expected type "${type.name}".`), + ); + } + + return parseResult; + } + /* c8 ignore next 3 */ + // Not reachable, all possible types have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Unexpected input type: ' + (0, _inspect.inspect)(type), + ); +} + + +/***/ }), + +/***/ 3640: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.concatAST = concatAST; + +var _kinds = __nccwpck_require__(2881); + +/** + * Provided a collection of ASTs, presumably each from different files, + * concatenate the ASTs together into batched AST, useful for validating many + * GraphQL source files which together represent one conceptual application. + */ +function concatAST(documents) { + const definitions = []; + + for (const doc of documents) { + definitions.push(...doc.definitions); + } + + return { + kind: _kinds.Kind.DOCUMENT, + definitions, + }; +} + + +/***/ }), + +/***/ 4445: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.extendSchema = extendSchema; +exports.extendSchemaImpl = extendSchemaImpl; + +var _devAssert = __nccwpck_require__(7437); + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _keyMap = __nccwpck_require__(1529); + +var _mapValue = __nccwpck_require__(9261); + +var _kinds = __nccwpck_require__(2881); + +var _predicates = __nccwpck_require__(418); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _introspection = __nccwpck_require__(2239); + +var _scalars = __nccwpck_require__(8633); + +var _schema = __nccwpck_require__(3933); + +var _validate = __nccwpck_require__(5105); + +var _values = __nccwpck_require__(8198); + +var _valueFromAST = __nccwpck_require__(21); + +/** + * Produces a new schema given an existing schema and a document which may + * contain GraphQL type extensions and definitions. The original schema will + * remain unaltered. + * + * Because a schema represents a graph of references, a schema cannot be + * extended without effectively making an entire copy. We do not know until it's + * too late if subgraphs remain unchanged. + * + * This algorithm copies the provided schema, applying extensions while + * producing the copy. The original schema remains unaltered. + */ +function extendSchema(schema, documentAST, options) { + (0, _schema.assertSchema)(schema); + (documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) || + (0, _devAssert.devAssert)(false, 'Must provide valid Document AST.'); + + if ( + (options === null || options === void 0 ? void 0 : options.assumeValid) !== + true && + (options === null || options === void 0 + ? void 0 + : options.assumeValidSDL) !== true + ) { + (0, _validate.assertValidSDLExtension)(documentAST, schema); + } + + const schemaConfig = schema.toConfig(); + const extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options); + return schemaConfig === extendedConfig + ? schema + : new _schema.GraphQLSchema(extendedConfig); +} +/** + * @internal + */ + +function extendSchemaImpl(schemaConfig, documentAST, options) { + var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid; + + // Collect the type definitions and extensions found in the document. + const typeDefs = []; + const typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can + // have the same name. For example, a type named "skip". + + const directiveDefs = []; + let schemaDef; // Schema extensions are collected which may add additional operation types. + + const schemaExtensions = []; + + for (const def of documentAST.definitions) { + if (def.kind === _kinds.Kind.SCHEMA_DEFINITION) { + schemaDef = def; + } else if (def.kind === _kinds.Kind.SCHEMA_EXTENSION) { + schemaExtensions.push(def); + } else if ((0, _predicates.isTypeDefinitionNode)(def)) { + typeDefs.push(def); + } else if ((0, _predicates.isTypeExtensionNode)(def)) { + const extendedTypeName = def.name.value; + const existingTypeExtensions = typeExtensionsMap[extendedTypeName]; + typeExtensionsMap[extendedTypeName] = existingTypeExtensions + ? existingTypeExtensions.concat([def]) + : [def]; + } else if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { + directiveDefs.push(def); + } + } // If this document contains no new types, extensions, or directives then + // return the same unmodified GraphQLSchema instance. + + if ( + Object.keys(typeExtensionsMap).length === 0 && + typeDefs.length === 0 && + directiveDefs.length === 0 && + schemaExtensions.length === 0 && + schemaDef == null + ) { + return schemaConfig; + } + + const typeMap = Object.create(null); + + for (const existingType of schemaConfig.types) { + typeMap[existingType.name] = extendNamedType(existingType); + } + + for (const typeNode of typeDefs) { + var _stdTypeMap$name; + + const name = typeNode.name.value; + typeMap[name] = + (_stdTypeMap$name = stdTypeMap[name]) !== null && + _stdTypeMap$name !== void 0 + ? _stdTypeMap$name + : buildType(typeNode); + } + + const operationTypes = { + // Get the extended root operation types. + query: schemaConfig.query && replaceNamedType(schemaConfig.query), + mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation), + subscription: + schemaConfig.subscription && replaceNamedType(schemaConfig.subscription), + // Then, incorporate schema definition and all schema extensions. + ...(schemaDef && getOperationTypes([schemaDef])), + ...getOperationTypes(schemaExtensions), + }; // Then produce and return a Schema config with these types. + + return { + description: + (_schemaDef = schemaDef) === null || _schemaDef === void 0 + ? void 0 + : (_schemaDef$descriptio = _schemaDef.description) === null || + _schemaDef$descriptio === void 0 + ? void 0 + : _schemaDef$descriptio.value, + ...operationTypes, + types: Object.values(typeMap), + directives: [ + ...schemaConfig.directives.map(replaceDirective), + ...directiveDefs.map(buildDirective), + ], + extensions: Object.create(null), + astNode: + (_schemaDef2 = schemaDef) !== null && _schemaDef2 !== void 0 + ? _schemaDef2 + : schemaConfig.astNode, + extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions), + assumeValid: + (_options$assumeValid = + options === null || options === void 0 + ? void 0 + : options.assumeValid) !== null && _options$assumeValid !== void 0 + ? _options$assumeValid + : false, + }; // Below are functions used for producing this schema that have closed over + // this scope and have access to the schema, cache, and newly defined types. + + function replaceType(type) { + if ((0, _definition.isListType)(type)) { + // @ts-expect-error + return new _definition.GraphQLList(replaceType(type.ofType)); + } + + if ((0, _definition.isNonNullType)(type)) { + // @ts-expect-error + return new _definition.GraphQLNonNull(replaceType(type.ofType)); + } // @ts-expect-error FIXME + + return replaceNamedType(type); + } + + function replaceNamedType(type) { + // Note: While this could make early assertions to get the correctly + // typed values, that would throw immediately while type system + // validation with validateSchema() will produce more actionable results. + return typeMap[type.name]; + } + + function replaceDirective(directive) { + const config = directive.toConfig(); + return new _directives.GraphQLDirective({ + ...config, + args: (0, _mapValue.mapValue)(config.args, extendArg), + }); + } + + function extendNamedType(type) { + if ( + (0, _introspection.isIntrospectionType)(type) || + (0, _scalars.isSpecifiedScalarType)(type) + ) { + // Builtin types are not extended. + return type; + } + + if ((0, _definition.isScalarType)(type)) { + return extendScalarType(type); + } + + if ((0, _definition.isObjectType)(type)) { + return extendObjectType(type); + } + + if ((0, _definition.isInterfaceType)(type)) { + return extendInterfaceType(type); + } + + if ((0, _definition.isUnionType)(type)) { + return extendUnionType(type); + } + + if ((0, _definition.isEnumType)(type)) { + return extendEnumType(type); + } + + if ((0, _definition.isInputObjectType)(type)) { + return extendInputObjectType(type); + } + /* c8 ignore next 3 */ + // Not reachable, all possible type definition nodes have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Unexpected type: ' + (0, _inspect.inspect)(type), + ); + } + + function extendInputObjectType(type) { + var _typeExtensionsMap$co; + + const config = type.toConfig(); + const extensions = + (_typeExtensionsMap$co = typeExtensionsMap[config.name]) !== null && + _typeExtensionsMap$co !== void 0 + ? _typeExtensionsMap$co + : []; + return new _definition.GraphQLInputObjectType({ + ...config, + fields: () => ({ + ...(0, _mapValue.mapValue)(config.fields, (field) => ({ + ...field, + type: replaceType(field.type), + })), + ...buildInputFieldMap(extensions), + }), + extensionASTNodes: config.extensionASTNodes.concat(extensions), + }); + } + + function extendEnumType(type) { + var _typeExtensionsMap$ty; + + const config = type.toConfig(); + const extensions = + (_typeExtensionsMap$ty = typeExtensionsMap[type.name]) !== null && + _typeExtensionsMap$ty !== void 0 + ? _typeExtensionsMap$ty + : []; + return new _definition.GraphQLEnumType({ + ...config, + values: { ...config.values, ...buildEnumValueMap(extensions) }, + extensionASTNodes: config.extensionASTNodes.concat(extensions), + }); + } + + function extendScalarType(type) { + var _typeExtensionsMap$co2; + + const config = type.toConfig(); + const extensions = + (_typeExtensionsMap$co2 = typeExtensionsMap[config.name]) !== null && + _typeExtensionsMap$co2 !== void 0 + ? _typeExtensionsMap$co2 + : []; + let specifiedByURL = config.specifiedByURL; + + for (const extensionNode of extensions) { + var _getSpecifiedByURL; + + specifiedByURL = + (_getSpecifiedByURL = getSpecifiedByURL(extensionNode)) !== null && + _getSpecifiedByURL !== void 0 + ? _getSpecifiedByURL + : specifiedByURL; + } + + return new _definition.GraphQLScalarType({ + ...config, + specifiedByURL, + extensionASTNodes: config.extensionASTNodes.concat(extensions), + }); + } + + function extendObjectType(type) { + var _typeExtensionsMap$co3; + + const config = type.toConfig(); + const extensions = + (_typeExtensionsMap$co3 = typeExtensionsMap[config.name]) !== null && + _typeExtensionsMap$co3 !== void 0 + ? _typeExtensionsMap$co3 + : []; + return new _definition.GraphQLObjectType({ + ...config, + interfaces: () => [ + ...type.getInterfaces().map(replaceNamedType), + ...buildInterfaces(extensions), + ], + fields: () => ({ + ...(0, _mapValue.mapValue)(config.fields, extendField), + ...buildFieldMap(extensions), + }), + extensionASTNodes: config.extensionASTNodes.concat(extensions), + }); + } + + function extendInterfaceType(type) { + var _typeExtensionsMap$co4; + + const config = type.toConfig(); + const extensions = + (_typeExtensionsMap$co4 = typeExtensionsMap[config.name]) !== null && + _typeExtensionsMap$co4 !== void 0 + ? _typeExtensionsMap$co4 + : []; + return new _definition.GraphQLInterfaceType({ + ...config, + interfaces: () => [ + ...type.getInterfaces().map(replaceNamedType), + ...buildInterfaces(extensions), + ], + fields: () => ({ + ...(0, _mapValue.mapValue)(config.fields, extendField), + ...buildFieldMap(extensions), + }), + extensionASTNodes: config.extensionASTNodes.concat(extensions), + }); + } + + function extendUnionType(type) { + var _typeExtensionsMap$co5; + + const config = type.toConfig(); + const extensions = + (_typeExtensionsMap$co5 = typeExtensionsMap[config.name]) !== null && + _typeExtensionsMap$co5 !== void 0 + ? _typeExtensionsMap$co5 + : []; + return new _definition.GraphQLUnionType({ + ...config, + types: () => [ + ...type.getTypes().map(replaceNamedType), + ...buildUnionTypes(extensions), + ], + extensionASTNodes: config.extensionASTNodes.concat(extensions), + }); + } + + function extendField(field) { + return { + ...field, + type: replaceType(field.type), + args: field.args && (0, _mapValue.mapValue)(field.args, extendArg), + }; + } + + function extendArg(arg) { + return { ...arg, type: replaceType(arg.type) }; + } + + function getOperationTypes(nodes) { + const opTypes = {}; + + for (const node of nodes) { + var _node$operationTypes; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + const operationTypesNodes = + /* c8 ignore next */ + (_node$operationTypes = node.operationTypes) !== null && + _node$operationTypes !== void 0 + ? _node$operationTypes + : []; + + for (const operationType of operationTypesNodes) { + // Note: While this could make early assertions to get the correctly + // typed values below, that would throw immediately while type system + // validation with validateSchema() will produce more actionable results. + // @ts-expect-error + opTypes[operationType.operation] = getNamedType(operationType.type); + } + } + + return opTypes; + } + + function getNamedType(node) { + var _stdTypeMap$name2; + + const name = node.name.value; + const type = + (_stdTypeMap$name2 = stdTypeMap[name]) !== null && + _stdTypeMap$name2 !== void 0 + ? _stdTypeMap$name2 + : typeMap[name]; + + if (type === undefined) { + throw new Error(`Unknown type: "${name}".`); + } + + return type; + } + + function getWrappedType(node) { + if (node.kind === _kinds.Kind.LIST_TYPE) { + return new _definition.GraphQLList(getWrappedType(node.type)); + } + + if (node.kind === _kinds.Kind.NON_NULL_TYPE) { + return new _definition.GraphQLNonNull(getWrappedType(node.type)); + } + + return getNamedType(node); + } + + function buildDirective(node) { + var _node$description; + + return new _directives.GraphQLDirective({ + name: node.name.value, + description: + (_node$description = node.description) === null || + _node$description === void 0 + ? void 0 + : _node$description.value, + // @ts-expect-error + locations: node.locations.map(({ value }) => value), + isRepeatable: node.repeatable, + args: buildArgumentMap(node.arguments), + astNode: node, + }); + } + + function buildFieldMap(nodes) { + const fieldConfigMap = Object.create(null); + + for (const node of nodes) { + var _node$fields; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + const nodeFields = + /* c8 ignore next */ + (_node$fields = node.fields) !== null && _node$fields !== void 0 + ? _node$fields + : []; + + for (const field of nodeFields) { + var _field$description; + + fieldConfigMap[field.name.value] = { + // Note: While this could make assertions to get the correctly typed + // value, that would throw immediately while type system validation + // with validateSchema() will produce more actionable results. + type: getWrappedType(field.type), + description: + (_field$description = field.description) === null || + _field$description === void 0 + ? void 0 + : _field$description.value, + args: buildArgumentMap(field.arguments), + deprecationReason: getDeprecationReason(field), + astNode: field, + }; + } + } + + return fieldConfigMap; + } + + function buildArgumentMap(args) { + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + const argsNodes = + /* c8 ignore next */ + args !== null && args !== void 0 ? args : []; + const argConfigMap = Object.create(null); + + for (const arg of argsNodes) { + var _arg$description; + + // Note: While this could make assertions to get the correctly typed + // value, that would throw immediately while type system validation + // with validateSchema() will produce more actionable results. + const type = getWrappedType(arg.type); + argConfigMap[arg.name.value] = { + type, + description: + (_arg$description = arg.description) === null || + _arg$description === void 0 + ? void 0 + : _arg$description.value, + defaultValue: (0, _valueFromAST.valueFromAST)(arg.defaultValue, type), + deprecationReason: getDeprecationReason(arg), + astNode: arg, + }; + } + + return argConfigMap; + } + + function buildInputFieldMap(nodes) { + const inputFieldMap = Object.create(null); + + for (const node of nodes) { + var _node$fields2; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + const fieldsNodes = + /* c8 ignore next */ + (_node$fields2 = node.fields) !== null && _node$fields2 !== void 0 + ? _node$fields2 + : []; + + for (const field of fieldsNodes) { + var _field$description2; + + // Note: While this could make assertions to get the correctly typed + // value, that would throw immediately while type system validation + // with validateSchema() will produce more actionable results. + const type = getWrappedType(field.type); + inputFieldMap[field.name.value] = { + type, + description: + (_field$description2 = field.description) === null || + _field$description2 === void 0 + ? void 0 + : _field$description2.value, + defaultValue: (0, _valueFromAST.valueFromAST)( + field.defaultValue, + type, + ), + deprecationReason: getDeprecationReason(field), + astNode: field, + }; + } + } + + return inputFieldMap; + } + + function buildEnumValueMap(nodes) { + const enumValueMap = Object.create(null); + + for (const node of nodes) { + var _node$values; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + const valuesNodes = + /* c8 ignore next */ + (_node$values = node.values) !== null && _node$values !== void 0 + ? _node$values + : []; + + for (const value of valuesNodes) { + var _value$description; + + enumValueMap[value.name.value] = { + description: + (_value$description = value.description) === null || + _value$description === void 0 + ? void 0 + : _value$description.value, + deprecationReason: getDeprecationReason(value), + astNode: value, + }; + } + } + + return enumValueMap; + } + + function buildInterfaces(nodes) { + // Note: While this could make assertions to get the correctly typed + // values below, that would throw immediately while type system + // validation with validateSchema() will produce more actionable results. + // @ts-expect-error + return nodes.flatMap( + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + (node) => { + var _node$interfaces$map, _node$interfaces; + + return ( + /* c8 ignore next */ + (_node$interfaces$map = + (_node$interfaces = node.interfaces) === null || + _node$interfaces === void 0 + ? void 0 + : _node$interfaces.map(getNamedType)) !== null && + _node$interfaces$map !== void 0 + ? _node$interfaces$map + : [] + ); + }, + ); + } + + function buildUnionTypes(nodes) { + // Note: While this could make assertions to get the correctly typed + // values below, that would throw immediately while type system + // validation with validateSchema() will produce more actionable results. + // @ts-expect-error + return nodes.flatMap( + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + (node) => { + var _node$types$map, _node$types; + + return ( + /* c8 ignore next */ + (_node$types$map = + (_node$types = node.types) === null || _node$types === void 0 + ? void 0 + : _node$types.map(getNamedType)) !== null && + _node$types$map !== void 0 + ? _node$types$map + : [] + ); + }, + ); + } + + function buildType(astNode) { + var _typeExtensionsMap$na; + + const name = astNode.name.value; + const extensionASTNodes = + (_typeExtensionsMap$na = typeExtensionsMap[name]) !== null && + _typeExtensionsMap$na !== void 0 + ? _typeExtensionsMap$na + : []; + + switch (astNode.kind) { + case _kinds.Kind.OBJECT_TYPE_DEFINITION: { + var _astNode$description; + + const allNodes = [astNode, ...extensionASTNodes]; + return new _definition.GraphQLObjectType({ + name, + description: + (_astNode$description = astNode.description) === null || + _astNode$description === void 0 + ? void 0 + : _astNode$description.value, + interfaces: () => buildInterfaces(allNodes), + fields: () => buildFieldMap(allNodes), + astNode, + extensionASTNodes, + }); + } + + case _kinds.Kind.INTERFACE_TYPE_DEFINITION: { + var _astNode$description2; + + const allNodes = [astNode, ...extensionASTNodes]; + return new _definition.GraphQLInterfaceType({ + name, + description: + (_astNode$description2 = astNode.description) === null || + _astNode$description2 === void 0 + ? void 0 + : _astNode$description2.value, + interfaces: () => buildInterfaces(allNodes), + fields: () => buildFieldMap(allNodes), + astNode, + extensionASTNodes, + }); + } + + case _kinds.Kind.ENUM_TYPE_DEFINITION: { + var _astNode$description3; + + const allNodes = [astNode, ...extensionASTNodes]; + return new _definition.GraphQLEnumType({ + name, + description: + (_astNode$description3 = astNode.description) === null || + _astNode$description3 === void 0 + ? void 0 + : _astNode$description3.value, + values: buildEnumValueMap(allNodes), + astNode, + extensionASTNodes, + }); + } + + case _kinds.Kind.UNION_TYPE_DEFINITION: { + var _astNode$description4; + + const allNodes = [astNode, ...extensionASTNodes]; + return new _definition.GraphQLUnionType({ + name, + description: + (_astNode$description4 = astNode.description) === null || + _astNode$description4 === void 0 + ? void 0 + : _astNode$description4.value, + types: () => buildUnionTypes(allNodes), + astNode, + extensionASTNodes, + }); + } + + case _kinds.Kind.SCALAR_TYPE_DEFINITION: { + var _astNode$description5; + + return new _definition.GraphQLScalarType({ + name, + description: + (_astNode$description5 = astNode.description) === null || + _astNode$description5 === void 0 + ? void 0 + : _astNode$description5.value, + specifiedByURL: getSpecifiedByURL(astNode), + astNode, + extensionASTNodes, + }); + } + + case _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION: { + var _astNode$description6; + + const allNodes = [astNode, ...extensionASTNodes]; + return new _definition.GraphQLInputObjectType({ + name, + description: + (_astNode$description6 = astNode.description) === null || + _astNode$description6 === void 0 + ? void 0 + : _astNode$description6.value, + fields: () => buildInputFieldMap(allNodes), + astNode, + extensionASTNodes, + isOneOf: isOneOf(astNode), + }); + } + } + } +} + +const stdTypeMap = (0, _keyMap.keyMap)( + [..._scalars.specifiedScalarTypes, ..._introspection.introspectionTypes], + (type) => type.name, +); +/** + * Given a field or enum value node, returns the string value for the + * deprecation reason. + */ + +function getDeprecationReason(node) { + const deprecated = (0, _values.getDirectiveValues)( + _directives.GraphQLDeprecatedDirective, + node, + ); // @ts-expect-error validated by `getDirectiveValues` + + return deprecated === null || deprecated === void 0 + ? void 0 + : deprecated.reason; +} +/** + * Given a scalar node, returns the string value for the specifiedByURL. + */ + +function getSpecifiedByURL(node) { + const specifiedBy = (0, _values.getDirectiveValues)( + _directives.GraphQLSpecifiedByDirective, + node, + ); // @ts-expect-error validated by `getDirectiveValues` + + return specifiedBy === null || specifiedBy === void 0 + ? void 0 + : specifiedBy.url; +} +/** + * Given an input object node, returns if the node should be OneOf. + */ + +function isOneOf(node) { + return Boolean( + (0, _values.getDirectiveValues)(_directives.GraphQLOneOfDirective, node), + ); +} + + +/***/ }), + +/***/ 2991: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.DangerousChangeType = exports.BreakingChangeType = void 0; +exports.findBreakingChanges = findBreakingChanges; +exports.findDangerousChanges = findDangerousChanges; + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _keyMap = __nccwpck_require__(1529); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +var _scalars = __nccwpck_require__(8633); + +var _astFromValue = __nccwpck_require__(8539); + +var _sortValueNode = __nccwpck_require__(397); + +var BreakingChangeType; +exports.BreakingChangeType = BreakingChangeType; + +(function (BreakingChangeType) { + BreakingChangeType['TYPE_REMOVED'] = 'TYPE_REMOVED'; + BreakingChangeType['TYPE_CHANGED_KIND'] = 'TYPE_CHANGED_KIND'; + BreakingChangeType['TYPE_REMOVED_FROM_UNION'] = 'TYPE_REMOVED_FROM_UNION'; + BreakingChangeType['VALUE_REMOVED_FROM_ENUM'] = 'VALUE_REMOVED_FROM_ENUM'; + BreakingChangeType['REQUIRED_INPUT_FIELD_ADDED'] = + 'REQUIRED_INPUT_FIELD_ADDED'; + BreakingChangeType['IMPLEMENTED_INTERFACE_REMOVED'] = + 'IMPLEMENTED_INTERFACE_REMOVED'; + BreakingChangeType['FIELD_REMOVED'] = 'FIELD_REMOVED'; + BreakingChangeType['FIELD_CHANGED_KIND'] = 'FIELD_CHANGED_KIND'; + BreakingChangeType['REQUIRED_ARG_ADDED'] = 'REQUIRED_ARG_ADDED'; + BreakingChangeType['ARG_REMOVED'] = 'ARG_REMOVED'; + BreakingChangeType['ARG_CHANGED_KIND'] = 'ARG_CHANGED_KIND'; + BreakingChangeType['DIRECTIVE_REMOVED'] = 'DIRECTIVE_REMOVED'; + BreakingChangeType['DIRECTIVE_ARG_REMOVED'] = 'DIRECTIVE_ARG_REMOVED'; + BreakingChangeType['REQUIRED_DIRECTIVE_ARG_ADDED'] = + 'REQUIRED_DIRECTIVE_ARG_ADDED'; + BreakingChangeType['DIRECTIVE_REPEATABLE_REMOVED'] = + 'DIRECTIVE_REPEATABLE_REMOVED'; + BreakingChangeType['DIRECTIVE_LOCATION_REMOVED'] = + 'DIRECTIVE_LOCATION_REMOVED'; +})( + BreakingChangeType || (exports.BreakingChangeType = BreakingChangeType = {}), +); + +var DangerousChangeType; +exports.DangerousChangeType = DangerousChangeType; + +(function (DangerousChangeType) { + DangerousChangeType['VALUE_ADDED_TO_ENUM'] = 'VALUE_ADDED_TO_ENUM'; + DangerousChangeType['TYPE_ADDED_TO_UNION'] = 'TYPE_ADDED_TO_UNION'; + DangerousChangeType['OPTIONAL_INPUT_FIELD_ADDED'] = + 'OPTIONAL_INPUT_FIELD_ADDED'; + DangerousChangeType['OPTIONAL_ARG_ADDED'] = 'OPTIONAL_ARG_ADDED'; + DangerousChangeType['IMPLEMENTED_INTERFACE_ADDED'] = + 'IMPLEMENTED_INTERFACE_ADDED'; + DangerousChangeType['ARG_DEFAULT_VALUE_CHANGE'] = 'ARG_DEFAULT_VALUE_CHANGE'; +})( + DangerousChangeType || + (exports.DangerousChangeType = DangerousChangeType = {}), +); + +/** + * Given two schemas, returns an Array containing descriptions of all the types + * of breaking changes covered by the other functions down below. + */ +function findBreakingChanges(oldSchema, newSchema) { + // @ts-expect-error + return findSchemaChanges(oldSchema, newSchema).filter( + (change) => change.type in BreakingChangeType, + ); +} +/** + * Given two schemas, returns an Array containing descriptions of all the types + * of potentially dangerous changes covered by the other functions down below. + */ + +function findDangerousChanges(oldSchema, newSchema) { + // @ts-expect-error + return findSchemaChanges(oldSchema, newSchema).filter( + (change) => change.type in DangerousChangeType, + ); +} + +function findSchemaChanges(oldSchema, newSchema) { + return [ + ...findTypeChanges(oldSchema, newSchema), + ...findDirectiveChanges(oldSchema, newSchema), + ]; +} + +function findDirectiveChanges(oldSchema, newSchema) { + const schemaChanges = []; + const directivesDiff = diff( + oldSchema.getDirectives(), + newSchema.getDirectives(), + ); + + for (const oldDirective of directivesDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.DIRECTIVE_REMOVED, + description: `${oldDirective.name} was removed.`, + }); + } + + for (const [oldDirective, newDirective] of directivesDiff.persisted) { + const argsDiff = diff(oldDirective.args, newDirective.args); + + for (const newArg of argsDiff.added) { + if ((0, _definition.isRequiredArgument)(newArg)) { + schemaChanges.push({ + type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED, + description: `A required arg ${newArg.name} on directive ${oldDirective.name} was added.`, + }); + } + } + + for (const oldArg of argsDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.DIRECTIVE_ARG_REMOVED, + description: `${oldArg.name} was removed from ${oldDirective.name}.`, + }); + } + + if (oldDirective.isRepeatable && !newDirective.isRepeatable) { + schemaChanges.push({ + type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED, + description: `Repeatable flag was removed from ${oldDirective.name}.`, + }); + } + + for (const location of oldDirective.locations) { + if (!newDirective.locations.includes(location)) { + schemaChanges.push({ + type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED, + description: `${location} was removed from ${oldDirective.name}.`, + }); + } + } + } + + return schemaChanges; +} + +function findTypeChanges(oldSchema, newSchema) { + const schemaChanges = []; + const typesDiff = diff( + Object.values(oldSchema.getTypeMap()), + Object.values(newSchema.getTypeMap()), + ); + + for (const oldType of typesDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.TYPE_REMOVED, + description: (0, _scalars.isSpecifiedScalarType)(oldType) + ? `Standard scalar ${oldType.name} was removed because it is not referenced anymore.` + : `${oldType.name} was removed.`, + }); + } + + for (const [oldType, newType] of typesDiff.persisted) { + if ( + (0, _definition.isEnumType)(oldType) && + (0, _definition.isEnumType)(newType) + ) { + schemaChanges.push(...findEnumTypeChanges(oldType, newType)); + } else if ( + (0, _definition.isUnionType)(oldType) && + (0, _definition.isUnionType)(newType) + ) { + schemaChanges.push(...findUnionTypeChanges(oldType, newType)); + } else if ( + (0, _definition.isInputObjectType)(oldType) && + (0, _definition.isInputObjectType)(newType) + ) { + schemaChanges.push(...findInputObjectTypeChanges(oldType, newType)); + } else if ( + (0, _definition.isObjectType)(oldType) && + (0, _definition.isObjectType)(newType) + ) { + schemaChanges.push( + ...findFieldChanges(oldType, newType), + ...findImplementedInterfacesChanges(oldType, newType), + ); + } else if ( + (0, _definition.isInterfaceType)(oldType) && + (0, _definition.isInterfaceType)(newType) + ) { + schemaChanges.push( + ...findFieldChanges(oldType, newType), + ...findImplementedInterfacesChanges(oldType, newType), + ); + } else if (oldType.constructor !== newType.constructor) { + schemaChanges.push({ + type: BreakingChangeType.TYPE_CHANGED_KIND, + description: + `${oldType.name} changed from ` + + `${typeKindName(oldType)} to ${typeKindName(newType)}.`, + }); + } + } + + return schemaChanges; +} + +function findInputObjectTypeChanges(oldType, newType) { + const schemaChanges = []; + const fieldsDiff = diff( + Object.values(oldType.getFields()), + Object.values(newType.getFields()), + ); + + for (const newField of fieldsDiff.added) { + if ((0, _definition.isRequiredInputField)(newField)) { + schemaChanges.push({ + type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED, + description: `A required field ${newField.name} on input type ${oldType.name} was added.`, + }); + } else { + schemaChanges.push({ + type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED, + description: `An optional field ${newField.name} on input type ${oldType.name} was added.`, + }); + } + } + + for (const oldField of fieldsDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.FIELD_REMOVED, + description: `${oldType.name}.${oldField.name} was removed.`, + }); + } + + for (const [oldField, newField] of fieldsDiff.persisted) { + const isSafe = isChangeSafeForInputObjectFieldOrFieldArg( + oldField.type, + newField.type, + ); + + if (!isSafe) { + schemaChanges.push({ + type: BreakingChangeType.FIELD_CHANGED_KIND, + description: + `${oldType.name}.${oldField.name} changed type from ` + + `${String(oldField.type)} to ${String(newField.type)}.`, + }); + } + } + + return schemaChanges; +} + +function findUnionTypeChanges(oldType, newType) { + const schemaChanges = []; + const possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes()); + + for (const newPossibleType of possibleTypesDiff.added) { + schemaChanges.push({ + type: DangerousChangeType.TYPE_ADDED_TO_UNION, + description: `${newPossibleType.name} was added to union type ${oldType.name}.`, + }); + } + + for (const oldPossibleType of possibleTypesDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.TYPE_REMOVED_FROM_UNION, + description: `${oldPossibleType.name} was removed from union type ${oldType.name}.`, + }); + } + + return schemaChanges; +} + +function findEnumTypeChanges(oldType, newType) { + const schemaChanges = []; + const valuesDiff = diff(oldType.getValues(), newType.getValues()); + + for (const newValue of valuesDiff.added) { + schemaChanges.push({ + type: DangerousChangeType.VALUE_ADDED_TO_ENUM, + description: `${newValue.name} was added to enum type ${oldType.name}.`, + }); + } + + for (const oldValue of valuesDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM, + description: `${oldValue.name} was removed from enum type ${oldType.name}.`, + }); + } + + return schemaChanges; +} + +function findImplementedInterfacesChanges(oldType, newType) { + const schemaChanges = []; + const interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces()); + + for (const newInterface of interfacesDiff.added) { + schemaChanges.push({ + type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED, + description: `${newInterface.name} added to interfaces implemented by ${oldType.name}.`, + }); + } + + for (const oldInterface of interfacesDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED, + description: `${oldType.name} no longer implements interface ${oldInterface.name}.`, + }); + } + + return schemaChanges; +} + +function findFieldChanges(oldType, newType) { + const schemaChanges = []; + const fieldsDiff = diff( + Object.values(oldType.getFields()), + Object.values(newType.getFields()), + ); + + for (const oldField of fieldsDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.FIELD_REMOVED, + description: `${oldType.name}.${oldField.name} was removed.`, + }); + } + + for (const [oldField, newField] of fieldsDiff.persisted) { + schemaChanges.push(...findArgChanges(oldType, oldField, newField)); + const isSafe = isChangeSafeForObjectOrInterfaceField( + oldField.type, + newField.type, + ); + + if (!isSafe) { + schemaChanges.push({ + type: BreakingChangeType.FIELD_CHANGED_KIND, + description: + `${oldType.name}.${oldField.name} changed type from ` + + `${String(oldField.type)} to ${String(newField.type)}.`, + }); + } + } + + return schemaChanges; +} + +function findArgChanges(oldType, oldField, newField) { + const schemaChanges = []; + const argsDiff = diff(oldField.args, newField.args); + + for (const oldArg of argsDiff.removed) { + schemaChanges.push({ + type: BreakingChangeType.ARG_REMOVED, + description: `${oldType.name}.${oldField.name} arg ${oldArg.name} was removed.`, + }); + } + + for (const [oldArg, newArg] of argsDiff.persisted) { + const isSafe = isChangeSafeForInputObjectFieldOrFieldArg( + oldArg.type, + newArg.type, + ); + + if (!isSafe) { + schemaChanges.push({ + type: BreakingChangeType.ARG_CHANGED_KIND, + description: + `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed type from ` + + `${String(oldArg.type)} to ${String(newArg.type)}.`, + }); + } else if (oldArg.defaultValue !== undefined) { + if (newArg.defaultValue === undefined) { + schemaChanges.push({ + type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE, + description: `${oldType.name}.${oldField.name} arg ${oldArg.name} defaultValue was removed.`, + }); + } else { + // Since we looking only for client's observable changes we should + // compare default values in the same representation as they are + // represented inside introspection. + const oldValueStr = stringifyValue(oldArg.defaultValue, oldArg.type); + const newValueStr = stringifyValue(newArg.defaultValue, newArg.type); + + if (oldValueStr !== newValueStr) { + schemaChanges.push({ + type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE, + description: `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed defaultValue from ${oldValueStr} to ${newValueStr}.`, + }); + } + } + } + } + + for (const newArg of argsDiff.added) { + if ((0, _definition.isRequiredArgument)(newArg)) { + schemaChanges.push({ + type: BreakingChangeType.REQUIRED_ARG_ADDED, + description: `A required arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`, + }); + } else { + schemaChanges.push({ + type: DangerousChangeType.OPTIONAL_ARG_ADDED, + description: `An optional arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`, + }); + } + } + + return schemaChanges; +} + +function isChangeSafeForObjectOrInterfaceField(oldType, newType) { + if ((0, _definition.isListType)(oldType)) { + return ( + // if they're both lists, make sure the underlying types are compatible + ((0, _definition.isListType)(newType) && + isChangeSafeForObjectOrInterfaceField( + oldType.ofType, + newType.ofType, + )) || // moving from nullable to non-null of the same underlying type is safe + ((0, _definition.isNonNullType)(newType) && + isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)) + ); + } + + if ((0, _definition.isNonNullType)(oldType)) { + // if they're both non-null, make sure the underlying types are compatible + return ( + (0, _definition.isNonNullType)(newType) && + isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) + ); + } + + return ( + // if they're both named types, see if their names are equivalent + ((0, _definition.isNamedType)(newType) && oldType.name === newType.name) || // moving from nullable to non-null of the same underlying type is safe + ((0, _definition.isNonNullType)(newType) && + isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)) + ); +} + +function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) { + if ((0, _definition.isListType)(oldType)) { + // if they're both lists, make sure the underlying types are compatible + return ( + (0, _definition.isListType)(newType) && + isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) + ); + } + + if ((0, _definition.isNonNullType)(oldType)) { + return ( + // if they're both non-null, make sure the underlying types are + // compatible + ((0, _definition.isNonNullType)(newType) && + isChangeSafeForInputObjectFieldOrFieldArg( + oldType.ofType, + newType.ofType, + )) || // moving from non-null to nullable of the same underlying type is safe + (!(0, _definition.isNonNullType)(newType) && + isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)) + ); + } // if they're both named types, see if their names are equivalent + + return (0, _definition.isNamedType)(newType) && oldType.name === newType.name; +} + +function typeKindName(type) { + if ((0, _definition.isScalarType)(type)) { + return 'a Scalar type'; + } + + if ((0, _definition.isObjectType)(type)) { + return 'an Object type'; + } + + if ((0, _definition.isInterfaceType)(type)) { + return 'an Interface type'; + } + + if ((0, _definition.isUnionType)(type)) { + return 'a Union type'; + } + + if ((0, _definition.isEnumType)(type)) { + return 'an Enum type'; + } + + if ((0, _definition.isInputObjectType)(type)) { + return 'an Input type'; + } + /* c8 ignore next 3 */ + // Not reachable, all possible types have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Unexpected type: ' + (0, _inspect.inspect)(type), + ); +} + +function stringifyValue(value, type) { + const ast = (0, _astFromValue.astFromValue)(value, type); + ast != null || (0, _invariant.invariant)(false); + return (0, _printer.print)((0, _sortValueNode.sortValueNode)(ast)); +} + +function diff(oldArray, newArray) { + const added = []; + const removed = []; + const persisted = []; + const oldMap = (0, _keyMap.keyMap)(oldArray, ({ name }) => name); + const newMap = (0, _keyMap.keyMap)(newArray, ({ name }) => name); + + for (const oldItem of oldArray) { + const newItem = newMap[oldItem.name]; + + if (newItem === undefined) { + removed.push(oldItem); + } else { + persisted.push([oldItem, newItem]); + } + } + + for (const newItem of newArray) { + if (oldMap[newItem.name] === undefined) { + added.push(newItem); + } + } + + return { + added, + persisted, + removed, + }; +} + + +/***/ }), + +/***/ 9661: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.getIntrospectionQuery = getIntrospectionQuery; + +/** + * Produce the GraphQL query recommended for a full schema introspection. + * Accepts optional IntrospectionOptions. + */ +function getIntrospectionQuery(options) { + const optionsWithDefault = { + descriptions: true, + specifiedByUrl: false, + directiveIsRepeatable: false, + schemaDescription: false, + inputValueDeprecation: false, + oneOf: false, + ...options, + }; + const descriptions = optionsWithDefault.descriptions ? 'description' : ''; + const specifiedByUrl = optionsWithDefault.specifiedByUrl + ? 'specifiedByURL' + : ''; + const directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable + ? 'isRepeatable' + : ''; + const schemaDescription = optionsWithDefault.schemaDescription + ? descriptions + : ''; + + function inputDeprecation(str) { + return optionsWithDefault.inputValueDeprecation ? str : ''; + } + + const oneOf = optionsWithDefault.oneOf ? 'isOneOf' : ''; + return ` + query IntrospectionQuery { + __schema { + ${schemaDescription} + queryType { name } + mutationType { name } + subscriptionType { name } + types { + ...FullType + } + directives { + name + ${descriptions} + ${directiveIsRepeatable} + locations + args${inputDeprecation('(includeDeprecated: true)')} { + ...InputValue + } + } + } + } + + fragment FullType on __Type { + kind + name + ${descriptions} + ${specifiedByUrl} + ${oneOf} + fields(includeDeprecated: true) { + name + ${descriptions} + args${inputDeprecation('(includeDeprecated: true)')} { + ...InputValue + } + type { + ...TypeRef + } + isDeprecated + deprecationReason + } + inputFields${inputDeprecation('(includeDeprecated: true)')} { + ...InputValue + } + interfaces { + ...TypeRef + } + enumValues(includeDeprecated: true) { + name + ${descriptions} + isDeprecated + deprecationReason + } + possibleTypes { + ...TypeRef + } + } + + fragment InputValue on __InputValue { + name + ${descriptions} + type { ...TypeRef } + defaultValue + ${inputDeprecation('isDeprecated')} + ${inputDeprecation('deprecationReason')} + } + + fragment TypeRef on __Type { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + } + } + } + } + } + } + } + } + } + } + `; +} + + +/***/ }), + +/***/ 183: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.getOperationAST = getOperationAST; + +var _kinds = __nccwpck_require__(2881); + +/** + * Returns an operation AST given a document AST and optionally an operation + * name. If a name is not provided, an operation is only returned if only one is + * provided in the document. + */ +function getOperationAST(documentAST, operationName) { + let operation = null; + + for (const definition of documentAST.definitions) { + if (definition.kind === _kinds.Kind.OPERATION_DEFINITION) { + var _definition$name; + + if (operationName == null) { + // If no operation name was provided, only return an Operation if there + // is one defined in the document. Upon encountering the second, return + // null. + if (operation) { + return null; + } + + operation = definition; + } else if ( + ((_definition$name = definition.name) === null || + _definition$name === void 0 + ? void 0 + : _definition$name.value) === operationName + ) { + return definition; + } + } + } + + return operation; +} + + +/***/ }), + +/***/ 115: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.getOperationRootType = getOperationRootType; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Extracts the root type of the operation from the schema. + * + * @deprecated Please use `GraphQLSchema.getRootType` instead. Will be removed in v17 + */ +function getOperationRootType(schema, operation) { + if (operation.operation === 'query') { + const queryType = schema.getQueryType(); + + if (!queryType) { + throw new _GraphQLError.GraphQLError( + 'Schema does not define the required query root type.', + { + nodes: operation, + }, + ); + } + + return queryType; + } + + if (operation.operation === 'mutation') { + const mutationType = schema.getMutationType(); + + if (!mutationType) { + throw new _GraphQLError.GraphQLError( + 'Schema is not configured for mutations.', + { + nodes: operation, + }, + ); + } + + return mutationType; + } + + if (operation.operation === 'subscription') { + const subscriptionType = schema.getSubscriptionType(); + + if (!subscriptionType) { + throw new _GraphQLError.GraphQLError( + 'Schema is not configured for subscriptions.', + { + nodes: operation, + }, + ); + } + + return subscriptionType; + } + + throw new _GraphQLError.GraphQLError( + 'Can only have query, mutation and subscription operations.', + { + nodes: operation, + }, + ); +} + + +/***/ }), + +/***/ 1000: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +Object.defineProperty(exports, "BreakingChangeType", ({ + enumerable: true, + get: function () { + return _findBreakingChanges.BreakingChangeType; + }, +})); +Object.defineProperty(exports, "DangerousChangeType", ({ + enumerable: true, + get: function () { + return _findBreakingChanges.DangerousChangeType; + }, +})); +Object.defineProperty(exports, "TypeInfo", ({ + enumerable: true, + get: function () { + return _TypeInfo.TypeInfo; + }, +})); +Object.defineProperty(exports, "assertValidName", ({ + enumerable: true, + get: function () { + return _assertValidName.assertValidName; + }, +})); +Object.defineProperty(exports, "astFromValue", ({ + enumerable: true, + get: function () { + return _astFromValue.astFromValue; + }, +})); +Object.defineProperty(exports, "buildASTSchema", ({ + enumerable: true, + get: function () { + return _buildASTSchema.buildASTSchema; + }, +})); +Object.defineProperty(exports, "buildClientSchema", ({ + enumerable: true, + get: function () { + return _buildClientSchema.buildClientSchema; + }, +})); +Object.defineProperty(exports, "buildSchema", ({ + enumerable: true, + get: function () { + return _buildASTSchema.buildSchema; + }, +})); +Object.defineProperty(exports, "coerceInputValue", ({ + enumerable: true, + get: function () { + return _coerceInputValue.coerceInputValue; + }, +})); +Object.defineProperty(exports, "concatAST", ({ + enumerable: true, + get: function () { + return _concatAST.concatAST; + }, +})); +Object.defineProperty(exports, "doTypesOverlap", ({ + enumerable: true, + get: function () { + return _typeComparators.doTypesOverlap; + }, +})); +Object.defineProperty(exports, "extendSchema", ({ + enumerable: true, + get: function () { + return _extendSchema.extendSchema; + }, +})); +Object.defineProperty(exports, "findBreakingChanges", ({ + enumerable: true, + get: function () { + return _findBreakingChanges.findBreakingChanges; + }, +})); +Object.defineProperty(exports, "findDangerousChanges", ({ + enumerable: true, + get: function () { + return _findBreakingChanges.findDangerousChanges; + }, +})); +Object.defineProperty(exports, "getIntrospectionQuery", ({ + enumerable: true, + get: function () { + return _getIntrospectionQuery.getIntrospectionQuery; + }, +})); +Object.defineProperty(exports, "getOperationAST", ({ + enumerable: true, + get: function () { + return _getOperationAST.getOperationAST; + }, +})); +Object.defineProperty(exports, "getOperationRootType", ({ + enumerable: true, + get: function () { + return _getOperationRootType.getOperationRootType; + }, +})); +Object.defineProperty(exports, "introspectionFromSchema", ({ + enumerable: true, + get: function () { + return _introspectionFromSchema.introspectionFromSchema; + }, +})); +Object.defineProperty(exports, "isEqualType", ({ + enumerable: true, + get: function () { + return _typeComparators.isEqualType; + }, +})); +Object.defineProperty(exports, "isTypeSubTypeOf", ({ + enumerable: true, + get: function () { + return _typeComparators.isTypeSubTypeOf; + }, +})); +Object.defineProperty(exports, "isValidNameError", ({ + enumerable: true, + get: function () { + return _assertValidName.isValidNameError; + }, +})); +Object.defineProperty(exports, "lexicographicSortSchema", ({ + enumerable: true, + get: function () { + return _lexicographicSortSchema.lexicographicSortSchema; + }, +})); +Object.defineProperty(exports, "printIntrospectionSchema", ({ + enumerable: true, + get: function () { + return _printSchema.printIntrospectionSchema; + }, +})); +Object.defineProperty(exports, "printSchema", ({ + enumerable: true, + get: function () { + return _printSchema.printSchema; + }, +})); +Object.defineProperty(exports, "printType", ({ + enumerable: true, + get: function () { + return _printSchema.printType; + }, +})); +Object.defineProperty(exports, "separateOperations", ({ + enumerable: true, + get: function () { + return _separateOperations.separateOperations; + }, +})); +Object.defineProperty(exports, "stripIgnoredCharacters", ({ + enumerable: true, + get: function () { + return _stripIgnoredCharacters.stripIgnoredCharacters; + }, +})); +Object.defineProperty(exports, "typeFromAST", ({ + enumerable: true, + get: function () { + return _typeFromAST.typeFromAST; + }, +})); +Object.defineProperty(exports, "valueFromAST", ({ + enumerable: true, + get: function () { + return _valueFromAST.valueFromAST; + }, +})); +Object.defineProperty(exports, "valueFromASTUntyped", ({ + enumerable: true, + get: function () { + return _valueFromASTUntyped.valueFromASTUntyped; + }, +})); +Object.defineProperty(exports, "visitWithTypeInfo", ({ + enumerable: true, + get: function () { + return _TypeInfo.visitWithTypeInfo; + }, +})); + +var _getIntrospectionQuery = __nccwpck_require__(9661); + +var _getOperationAST = __nccwpck_require__(183); + +var _getOperationRootType = __nccwpck_require__(115); + +var _introspectionFromSchema = __nccwpck_require__(5420); + +var _buildClientSchema = __nccwpck_require__(9460); + +var _buildASTSchema = __nccwpck_require__(2957); + +var _extendSchema = __nccwpck_require__(4445); + +var _lexicographicSortSchema = __nccwpck_require__(9501); + +var _printSchema = __nccwpck_require__(8760); + +var _typeFromAST = __nccwpck_require__(2136); + +var _valueFromAST = __nccwpck_require__(21); + +var _valueFromASTUntyped = __nccwpck_require__(7252); + +var _astFromValue = __nccwpck_require__(8539); + +var _TypeInfo = __nccwpck_require__(3502); + +var _coerceInputValue = __nccwpck_require__(894); + +var _concatAST = __nccwpck_require__(3640); + +var _separateOperations = __nccwpck_require__(8585); + +var _stripIgnoredCharacters = __nccwpck_require__(5662); + +var _typeComparators = __nccwpck_require__(961); + +var _assertValidName = __nccwpck_require__(7963); + +var _findBreakingChanges = __nccwpck_require__(2991); + + +/***/ }), + +/***/ 5420: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.introspectionFromSchema = introspectionFromSchema; + +var _invariant = __nccwpck_require__(9952); + +var _parser = __nccwpck_require__(8443); + +var _execute = __nccwpck_require__(7093); + +var _getIntrospectionQuery = __nccwpck_require__(9661); + +/** + * Build an IntrospectionQuery from a GraphQLSchema + * + * IntrospectionQuery is useful for utilities that care about type and field + * relationships, but do not need to traverse through those relationships. + * + * This is the inverse of buildClientSchema. The primary use case is outside + * of the server context, for instance when doing schema comparisons. + */ +function introspectionFromSchema(schema, options) { + const optionsWithDefaults = { + specifiedByUrl: true, + directiveIsRepeatable: true, + schemaDescription: true, + inputValueDeprecation: true, + oneOf: true, + ...options, + }; + const document = (0, _parser.parse)( + (0, _getIntrospectionQuery.getIntrospectionQuery)(optionsWithDefaults), + ); + const result = (0, _execute.executeSync)({ + schema, + document, + }); + (!result.errors && result.data) || (0, _invariant.invariant)(false); + return result.data; +} + + +/***/ }), + +/***/ 9501: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.lexicographicSortSchema = lexicographicSortSchema; + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _keyValMap = __nccwpck_require__(4876); + +var _naturalCompare = __nccwpck_require__(4834); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _introspection = __nccwpck_require__(2239); + +var _schema = __nccwpck_require__(3933); + +/** + * Sort GraphQLSchema. + * + * This function returns a sorted copy of the given GraphQLSchema. + */ +function lexicographicSortSchema(schema) { + const schemaConfig = schema.toConfig(); + const typeMap = (0, _keyValMap.keyValMap)( + sortByName(schemaConfig.types), + (type) => type.name, + sortNamedType, + ); + return new _schema.GraphQLSchema({ + ...schemaConfig, + types: Object.values(typeMap), + directives: sortByName(schemaConfig.directives).map(sortDirective), + query: replaceMaybeType(schemaConfig.query), + mutation: replaceMaybeType(schemaConfig.mutation), + subscription: replaceMaybeType(schemaConfig.subscription), + }); + + function replaceType(type) { + if ((0, _definition.isListType)(type)) { + // @ts-expect-error + return new _definition.GraphQLList(replaceType(type.ofType)); + } else if ((0, _definition.isNonNullType)(type)) { + // @ts-expect-error + return new _definition.GraphQLNonNull(replaceType(type.ofType)); + } // @ts-expect-error FIXME: TS Conversion + + return replaceNamedType(type); + } + + function replaceNamedType(type) { + return typeMap[type.name]; + } + + function replaceMaybeType(maybeType) { + return maybeType && replaceNamedType(maybeType); + } + + function sortDirective(directive) { + const config = directive.toConfig(); + return new _directives.GraphQLDirective({ + ...config, + locations: sortBy(config.locations, (x) => x), + args: sortArgs(config.args), + }); + } + + function sortArgs(args) { + return sortObjMap(args, (arg) => ({ ...arg, type: replaceType(arg.type) })); + } + + function sortFields(fieldsMap) { + return sortObjMap(fieldsMap, (field) => ({ + ...field, + type: replaceType(field.type), + args: field.args && sortArgs(field.args), + })); + } + + function sortInputFields(fieldsMap) { + return sortObjMap(fieldsMap, (field) => ({ + ...field, + type: replaceType(field.type), + })); + } + + function sortTypes(array) { + return sortByName(array).map(replaceNamedType); + } + + function sortNamedType(type) { + if ( + (0, _definition.isScalarType)(type) || + (0, _introspection.isIntrospectionType)(type) + ) { + return type; + } + + if ((0, _definition.isObjectType)(type)) { + const config = type.toConfig(); + return new _definition.GraphQLObjectType({ + ...config, + interfaces: () => sortTypes(config.interfaces), + fields: () => sortFields(config.fields), + }); + } + + if ((0, _definition.isInterfaceType)(type)) { + const config = type.toConfig(); + return new _definition.GraphQLInterfaceType({ + ...config, + interfaces: () => sortTypes(config.interfaces), + fields: () => sortFields(config.fields), + }); + } + + if ((0, _definition.isUnionType)(type)) { + const config = type.toConfig(); + return new _definition.GraphQLUnionType({ + ...config, + types: () => sortTypes(config.types), + }); + } + + if ((0, _definition.isEnumType)(type)) { + const config = type.toConfig(); + return new _definition.GraphQLEnumType({ + ...config, + values: sortObjMap(config.values, (value) => value), + }); + } + + if ((0, _definition.isInputObjectType)(type)) { + const config = type.toConfig(); + return new _definition.GraphQLInputObjectType({ + ...config, + fields: () => sortInputFields(config.fields), + }); + } + /* c8 ignore next 3 */ + // Not reachable, all possible types have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Unexpected type: ' + (0, _inspect.inspect)(type), + ); + } +} + +function sortObjMap(map, sortValueFn) { + const sortedMap = Object.create(null); + + for (const key of Object.keys(map).sort(_naturalCompare.naturalCompare)) { + sortedMap[key] = sortValueFn(map[key]); + } + + return sortedMap; +} + +function sortByName(array) { + return sortBy(array, (obj) => obj.name); +} + +function sortBy(array, mapToKey) { + return array.slice().sort((obj1, obj2) => { + const key1 = mapToKey(obj1); + const key2 = mapToKey(obj2); + return (0, _naturalCompare.naturalCompare)(key1, key2); + }); +} + + +/***/ }), + +/***/ 8760: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.printIntrospectionSchema = printIntrospectionSchema; +exports.printSchema = printSchema; +exports.printType = printType; + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _blockString = __nccwpck_require__(510); + +var _kinds = __nccwpck_require__(2881); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +var _introspection = __nccwpck_require__(2239); + +var _scalars = __nccwpck_require__(8633); + +var _astFromValue = __nccwpck_require__(8539); + +function printSchema(schema) { + return printFilteredSchema( + schema, + (n) => !(0, _directives.isSpecifiedDirective)(n), + isDefinedType, + ); +} + +function printIntrospectionSchema(schema) { + return printFilteredSchema( + schema, + _directives.isSpecifiedDirective, + _introspection.isIntrospectionType, + ); +} + +function isDefinedType(type) { + return ( + !(0, _scalars.isSpecifiedScalarType)(type) && + !(0, _introspection.isIntrospectionType)(type) + ); +} + +function printFilteredSchema(schema, directiveFilter, typeFilter) { + const directives = schema.getDirectives().filter(directiveFilter); + const types = Object.values(schema.getTypeMap()).filter(typeFilter); + return [ + printSchemaDefinition(schema), + ...directives.map((directive) => printDirective(directive)), + ...types.map((type) => printType(type)), + ] + .filter(Boolean) + .join('\n\n'); +} + +function printSchemaDefinition(schema) { + if (schema.description == null && isSchemaOfCommonNames(schema)) { + return; + } + + const operationTypes = []; + const queryType = schema.getQueryType(); + + if (queryType) { + operationTypes.push(` query: ${queryType.name}`); + } + + const mutationType = schema.getMutationType(); + + if (mutationType) { + operationTypes.push(` mutation: ${mutationType.name}`); + } + + const subscriptionType = schema.getSubscriptionType(); + + if (subscriptionType) { + operationTypes.push(` subscription: ${subscriptionType.name}`); + } + + return printDescription(schema) + `schema {\n${operationTypes.join('\n')}\n}`; +} +/** + * GraphQL schema define root types for each type of operation. These types are + * the same as any other type and can be named in any manner, however there is + * a common naming convention: + * + * ```graphql + * schema { + * query: Query + * mutation: Mutation + * subscription: Subscription + * } + * ``` + * + * When using this naming convention, the schema description can be omitted. + */ + +function isSchemaOfCommonNames(schema) { + const queryType = schema.getQueryType(); + + if (queryType && queryType.name !== 'Query') { + return false; + } + + const mutationType = schema.getMutationType(); + + if (mutationType && mutationType.name !== 'Mutation') { + return false; + } + + const subscriptionType = schema.getSubscriptionType(); + + if (subscriptionType && subscriptionType.name !== 'Subscription') { + return false; + } + + return true; +} + +function printType(type) { + if ((0, _definition.isScalarType)(type)) { + return printScalar(type); + } + + if ((0, _definition.isObjectType)(type)) { + return printObject(type); + } + + if ((0, _definition.isInterfaceType)(type)) { + return printInterface(type); + } + + if ((0, _definition.isUnionType)(type)) { + return printUnion(type); + } + + if ((0, _definition.isEnumType)(type)) { + return printEnum(type); + } + + if ((0, _definition.isInputObjectType)(type)) { + return printInputObject(type); + } + /* c8 ignore next 3 */ + // Not reachable, all possible types have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Unexpected type: ' + (0, _inspect.inspect)(type), + ); +} + +function printScalar(type) { + return ( + printDescription(type) + `scalar ${type.name}` + printSpecifiedByURL(type) + ); +} + +function printImplementedInterfaces(type) { + const interfaces = type.getInterfaces(); + return interfaces.length + ? ' implements ' + interfaces.map((i) => i.name).join(' & ') + : ''; +} + +function printObject(type) { + return ( + printDescription(type) + + `type ${type.name}` + + printImplementedInterfaces(type) + + printFields(type) + ); +} + +function printInterface(type) { + return ( + printDescription(type) + + `interface ${type.name}` + + printImplementedInterfaces(type) + + printFields(type) + ); +} + +function printUnion(type) { + const types = type.getTypes(); + const possibleTypes = types.length ? ' = ' + types.join(' | ') : ''; + return printDescription(type) + 'union ' + type.name + possibleTypes; +} + +function printEnum(type) { + const values = type + .getValues() + .map( + (value, i) => + printDescription(value, ' ', !i) + + ' ' + + value.name + + printDeprecated(value.deprecationReason), + ); + return printDescription(type) + `enum ${type.name}` + printBlock(values); +} + +function printInputObject(type) { + const fields = Object.values(type.getFields()).map( + (f, i) => printDescription(f, ' ', !i) + ' ' + printInputValue(f), + ); + return ( + printDescription(type) + + `input ${type.name}` + + (type.isOneOf ? ' @oneOf' : '') + + printBlock(fields) + ); +} + +function printFields(type) { + const fields = Object.values(type.getFields()).map( + (f, i) => + printDescription(f, ' ', !i) + + ' ' + + f.name + + printArgs(f.args, ' ') + + ': ' + + String(f.type) + + printDeprecated(f.deprecationReason), + ); + return printBlock(fields); +} + +function printBlock(items) { + return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : ''; +} + +function printArgs(args, indentation = '') { + if (args.length === 0) { + return ''; + } // If every arg does not have a description, print them on one line. + + if (args.every((arg) => !arg.description)) { + return '(' + args.map(printInputValue).join(', ') + ')'; + } + + return ( + '(\n' + + args + .map( + (arg, i) => + printDescription(arg, ' ' + indentation, !i) + + ' ' + + indentation + + printInputValue(arg), + ) + .join('\n') + + '\n' + + indentation + + ')' + ); +} + +function printInputValue(arg) { + const defaultAST = (0, _astFromValue.astFromValue)( + arg.defaultValue, + arg.type, + ); + let argDecl = arg.name + ': ' + String(arg.type); + + if (defaultAST) { + argDecl += ` = ${(0, _printer.print)(defaultAST)}`; + } + + return argDecl + printDeprecated(arg.deprecationReason); +} + +function printDirective(directive) { + return ( + printDescription(directive) + + 'directive @' + + directive.name + + printArgs(directive.args) + + (directive.isRepeatable ? ' repeatable' : '') + + ' on ' + + directive.locations.join(' | ') + ); +} + +function printDeprecated(reason) { + if (reason == null) { + return ''; + } + + if (reason !== _directives.DEFAULT_DEPRECATION_REASON) { + const astValue = (0, _printer.print)({ + kind: _kinds.Kind.STRING, + value: reason, + }); + return ` @deprecated(reason: ${astValue})`; + } + + return ' @deprecated'; +} + +function printSpecifiedByURL(scalar) { + if (scalar.specifiedByURL == null) { + return ''; + } + + const astValue = (0, _printer.print)({ + kind: _kinds.Kind.STRING, + value: scalar.specifiedByURL, + }); + return ` @specifiedBy(url: ${astValue})`; +} + +function printDescription(def, indentation = '', firstInBlock = true) { + const { description } = def; + + if (description == null) { + return ''; + } + + const blockString = (0, _printer.print)({ + kind: _kinds.Kind.STRING, + value: description, + block: (0, _blockString.isPrintableAsBlockString)(description), + }); + const prefix = + indentation && !firstInBlock ? '\n' + indentation : indentation; + return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n'; +} + + +/***/ }), + +/***/ 8585: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.separateOperations = separateOperations; + +var _kinds = __nccwpck_require__(2881); + +var _visitor = __nccwpck_require__(7848); + +/** + * separateOperations accepts a single AST document which may contain many + * operations and fragments and returns a collection of AST documents each of + * which contains a single operation as well the fragment definitions it + * refers to. + */ +function separateOperations(documentAST) { + const operations = []; + const depGraph = Object.create(null); // Populate metadata and build a dependency graph. + + for (const definitionNode of documentAST.definitions) { + switch (definitionNode.kind) { + case _kinds.Kind.OPERATION_DEFINITION: + operations.push(definitionNode); + break; + + case _kinds.Kind.FRAGMENT_DEFINITION: + depGraph[definitionNode.name.value] = collectDependencies( + definitionNode.selectionSet, + ); + break; + + default: // ignore non-executable definitions + } + } // For each operation, produce a new synthesized AST which includes only what + // is necessary for completing that operation. + + const separatedDocumentASTs = Object.create(null); + + for (const operation of operations) { + const dependencies = new Set(); + + for (const fragmentName of collectDependencies(operation.selectionSet)) { + collectTransitiveDependencies(dependencies, depGraph, fragmentName); + } // Provides the empty string for anonymous operations. + + const operationName = operation.name ? operation.name.value : ''; // The list of definition nodes to be included for this operation, sorted + // to retain the same order as the original document. + + separatedDocumentASTs[operationName] = { + kind: _kinds.Kind.DOCUMENT, + definitions: documentAST.definitions.filter( + (node) => + node === operation || + (node.kind === _kinds.Kind.FRAGMENT_DEFINITION && + dependencies.has(node.name.value)), + ), + }; + } + + return separatedDocumentASTs; +} + +// From a dependency graph, collects a list of transitive dependencies by +// recursing through a dependency graph. +function collectTransitiveDependencies(collected, depGraph, fromName) { + if (!collected.has(fromName)) { + collected.add(fromName); + const immediateDeps = depGraph[fromName]; + + if (immediateDeps !== undefined) { + for (const toName of immediateDeps) { + collectTransitiveDependencies(collected, depGraph, toName); + } + } + } +} + +function collectDependencies(selectionSet) { + const dependencies = []; + (0, _visitor.visit)(selectionSet, { + FragmentSpread(node) { + dependencies.push(node.name.value); + }, + }); + return dependencies; +} + + +/***/ }), + +/***/ 397: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.sortValueNode = sortValueNode; + +var _naturalCompare = __nccwpck_require__(4834); + +var _kinds = __nccwpck_require__(2881); + +/** + * Sort ValueNode. + * + * This function returns a sorted copy of the given ValueNode. + * + * @internal + */ +function sortValueNode(valueNode) { + switch (valueNode.kind) { + case _kinds.Kind.OBJECT: + return { ...valueNode, fields: sortFields(valueNode.fields) }; + + case _kinds.Kind.LIST: + return { ...valueNode, values: valueNode.values.map(sortValueNode) }; + + case _kinds.Kind.INT: + case _kinds.Kind.FLOAT: + case _kinds.Kind.STRING: + case _kinds.Kind.BOOLEAN: + case _kinds.Kind.NULL: + case _kinds.Kind.ENUM: + case _kinds.Kind.VARIABLE: + return valueNode; + } +} + +function sortFields(fields) { + return fields + .map((fieldNode) => ({ + ...fieldNode, + value: sortValueNode(fieldNode.value), + })) + .sort((fieldA, fieldB) => + (0, _naturalCompare.naturalCompare)(fieldA.name.value, fieldB.name.value), + ); +} + + +/***/ }), + +/***/ 5662: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.stripIgnoredCharacters = stripIgnoredCharacters; + +var _blockString = __nccwpck_require__(510); + +var _lexer = __nccwpck_require__(3604); + +var _source = __nccwpck_require__(4934); + +var _tokenKind = __nccwpck_require__(9229); + +/** + * Strips characters that are not significant to the validity or execution + * of a GraphQL document: + * - UnicodeBOM + * - WhiteSpace + * - LineTerminator + * - Comment + * - Comma + * - BlockString indentation + * + * Note: It is required to have a delimiter character between neighboring + * non-punctuator tokens and this function always uses single space as delimiter. + * + * It is guaranteed that both input and output documents if parsed would result + * in the exact same AST except for nodes location. + * + * Warning: It is guaranteed that this function will always produce stable results. + * However, it's not guaranteed that it will stay the same between different + * releases due to bugfixes or changes in the GraphQL specification. + * + * Query example: + * + * ```graphql + * query SomeQuery($foo: String!, $bar: String) { + * someField(foo: $foo, bar: $bar) { + * a + * b { + * c + * d + * } + * } + * } + * ``` + * + * Becomes: + * + * ```graphql + * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}} + * ``` + * + * SDL example: + * + * ```graphql + * """ + * Type description + * """ + * type Foo { + * """ + * Field description + * """ + * bar: String + * } + * ``` + * + * Becomes: + * + * ```graphql + * """Type description""" type Foo{"""Field description""" bar:String} + * ``` + */ +function stripIgnoredCharacters(source) { + const sourceObj = (0, _source.isSource)(source) + ? source + : new _source.Source(source); + const body = sourceObj.body; + const lexer = new _lexer.Lexer(sourceObj); + let strippedBody = ''; + let wasLastAddedTokenNonPunctuator = false; + + while (lexer.advance().kind !== _tokenKind.TokenKind.EOF) { + const currentToken = lexer.token; + const tokenKind = currentToken.kind; + /** + * Every two non-punctuator tokens should have space between them. + * Also prevent case of non-punctuator token following by spread resulting + * in invalid token (e.g. `1...` is invalid Float token). + */ + + const isNonPunctuator = !(0, _lexer.isPunctuatorTokenKind)( + currentToken.kind, + ); + + if (wasLastAddedTokenNonPunctuator) { + if ( + isNonPunctuator || + currentToken.kind === _tokenKind.TokenKind.SPREAD + ) { + strippedBody += ' '; + } + } + + const tokenBody = body.slice(currentToken.start, currentToken.end); + + if (tokenKind === _tokenKind.TokenKind.BLOCK_STRING) { + strippedBody += (0, _blockString.printBlockString)(currentToken.value, { + minimize: true, + }); + } else { + strippedBody += tokenBody; + } + + wasLastAddedTokenNonPunctuator = isNonPunctuator; + } + + return strippedBody; +} + + +/***/ }), + +/***/ 961: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.doTypesOverlap = doTypesOverlap; +exports.isEqualType = isEqualType; +exports.isTypeSubTypeOf = isTypeSubTypeOf; + +var _definition = __nccwpck_require__(699); + +/** + * Provided two types, return true if the types are equal (invariant). + */ +function isEqualType(typeA, typeB) { + // Equivalent types are equal. + if (typeA === typeB) { + return true; + } // If either type is non-null, the other must also be non-null. + + if ( + (0, _definition.isNonNullType)(typeA) && + (0, _definition.isNonNullType)(typeB) + ) { + return isEqualType(typeA.ofType, typeB.ofType); + } // If either type is a list, the other must also be a list. + + if ( + (0, _definition.isListType)(typeA) && + (0, _definition.isListType)(typeB) + ) { + return isEqualType(typeA.ofType, typeB.ofType); + } // Otherwise the types are not equal. + + return false; +} +/** + * Provided a type and a super type, return true if the first type is either + * equal or a subset of the second super type (covariant). + */ + +function isTypeSubTypeOf(schema, maybeSubType, superType) { + // Equivalent type is a valid subtype + if (maybeSubType === superType) { + return true; + } // If superType is non-null, maybeSubType must also be non-null. + + if ((0, _definition.isNonNullType)(superType)) { + if ((0, _definition.isNonNullType)(maybeSubType)) { + return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType); + } + + return false; + } + + if ((0, _definition.isNonNullType)(maybeSubType)) { + // If superType is nullable, maybeSubType may be non-null or nullable. + return isTypeSubTypeOf(schema, maybeSubType.ofType, superType); + } // If superType type is a list, maybeSubType type must also be a list. + + if ((0, _definition.isListType)(superType)) { + if ((0, _definition.isListType)(maybeSubType)) { + return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType); + } + + return false; + } + + if ((0, _definition.isListType)(maybeSubType)) { + // If superType is not a list, maybeSubType must also be not a list. + return false; + } // If superType type is an abstract type, check if it is super type of maybeSubType. + // Otherwise, the child type is not a valid subtype of the parent type. + + return ( + (0, _definition.isAbstractType)(superType) && + ((0, _definition.isInterfaceType)(maybeSubType) || + (0, _definition.isObjectType)(maybeSubType)) && + schema.isSubType(superType, maybeSubType) + ); +} +/** + * Provided two composite types, determine if they "overlap". Two composite + * types overlap when the Sets of possible concrete types for each intersect. + * + * This is often used to determine if a fragment of a given type could possibly + * be visited in a context of another type. + * + * This function is commutative. + */ + +function doTypesOverlap(schema, typeA, typeB) { + // Equivalent types overlap + if (typeA === typeB) { + return true; + } + + if ((0, _definition.isAbstractType)(typeA)) { + if ((0, _definition.isAbstractType)(typeB)) { + // If both types are abstract, then determine if there is any intersection + // between possible concrete types of each. + return schema + .getPossibleTypes(typeA) + .some((type) => schema.isSubType(typeB, type)); + } // Determine if the latter type is a possible concrete type of the former. + + return schema.isSubType(typeA, typeB); + } + + if ((0, _definition.isAbstractType)(typeB)) { + // Determine if the former type is a possible concrete type of the latter. + return schema.isSubType(typeB, typeA); + } // Otherwise the types do not overlap. + + return false; +} + + +/***/ }), + +/***/ 2136: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.typeFromAST = typeFromAST; + +var _kinds = __nccwpck_require__(2881); + +var _definition = __nccwpck_require__(699); + +function typeFromAST(schema, typeNode) { + switch (typeNode.kind) { + case _kinds.Kind.LIST_TYPE: { + const innerType = typeFromAST(schema, typeNode.type); + return innerType && new _definition.GraphQLList(innerType); + } + + case _kinds.Kind.NON_NULL_TYPE: { + const innerType = typeFromAST(schema, typeNode.type); + return innerType && new _definition.GraphQLNonNull(innerType); + } + + case _kinds.Kind.NAMED_TYPE: + return schema.getType(typeNode.name.value); + } +} + + +/***/ }), + +/***/ 21: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.valueFromAST = valueFromAST; + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _keyMap = __nccwpck_require__(1529); + +var _kinds = __nccwpck_require__(2881); + +var _definition = __nccwpck_require__(699); + +/** + * Produces a JavaScript value given a GraphQL Value AST. + * + * A GraphQL type must be provided, which will be used to interpret different + * GraphQL Value literals. + * + * Returns `undefined` when the value could not be validly coerced according to + * the provided type. + * + * | GraphQL Value | JSON Value | + * | -------------------- | ------------- | + * | Input Object | Object | + * | List | Array | + * | Boolean | Boolean | + * | String | String | + * | Int / Float | Number | + * | Enum Value | Unknown | + * | NullValue | null | + * + */ +function valueFromAST(valueNode, type, variables) { + if (!valueNode) { + // When there is no node, then there is also no value. + // Importantly, this is different from returning the value null. + return; + } + + if (valueNode.kind === _kinds.Kind.VARIABLE) { + const variableName = valueNode.name.value; + + if (variables == null || variables[variableName] === undefined) { + // No valid return value. + return; + } + + const variableValue = variables[variableName]; + + if (variableValue === null && (0, _definition.isNonNullType)(type)) { + return; // Invalid: intentionally return no value. + } // Note: This does no further checking that this variable is correct. + // This assumes that this query has been validated and the variable + // usage here is of the correct type. + + return variableValue; + } + + if ((0, _definition.isNonNullType)(type)) { + if (valueNode.kind === _kinds.Kind.NULL) { + return; // Invalid: intentionally return no value. + } + + return valueFromAST(valueNode, type.ofType, variables); + } + + if (valueNode.kind === _kinds.Kind.NULL) { + // This is explicitly returning the value null. + return null; + } + + if ((0, _definition.isListType)(type)) { + const itemType = type.ofType; + + if (valueNode.kind === _kinds.Kind.LIST) { + const coercedValues = []; + + for (const itemNode of valueNode.values) { + if (isMissingVariable(itemNode, variables)) { + // If an array contains a missing variable, it is either coerced to + // null or if the item type is non-null, it considered invalid. + if ((0, _definition.isNonNullType)(itemType)) { + return; // Invalid: intentionally return no value. + } + + coercedValues.push(null); + } else { + const itemValue = valueFromAST(itemNode, itemType, variables); + + if (itemValue === undefined) { + return; // Invalid: intentionally return no value. + } + + coercedValues.push(itemValue); + } + } + + return coercedValues; + } + + const coercedValue = valueFromAST(valueNode, itemType, variables); + + if (coercedValue === undefined) { + return; // Invalid: intentionally return no value. + } + + return [coercedValue]; + } + + if ((0, _definition.isInputObjectType)(type)) { + if (valueNode.kind !== _kinds.Kind.OBJECT) { + return; // Invalid: intentionally return no value. + } + + const coercedObj = Object.create(null); + const fieldNodes = (0, _keyMap.keyMap)( + valueNode.fields, + (field) => field.name.value, + ); + + for (const field of Object.values(type.getFields())) { + const fieldNode = fieldNodes[field.name]; + + if (!fieldNode || isMissingVariable(fieldNode.value, variables)) { + if (field.defaultValue !== undefined) { + coercedObj[field.name] = field.defaultValue; + } else if ((0, _definition.isNonNullType)(field.type)) { + return; // Invalid: intentionally return no value. + } + + continue; + } + + const fieldValue = valueFromAST(fieldNode.value, field.type, variables); + + if (fieldValue === undefined) { + return; // Invalid: intentionally return no value. + } + + coercedObj[field.name] = fieldValue; + } + + if (type.isOneOf) { + const keys = Object.keys(coercedObj); + + if (keys.length !== 1) { + return; // Invalid: not exactly one key, intentionally return no value. + } + + if (coercedObj[keys[0]] === null) { + return; // Invalid: value not non-null, intentionally return no value. + } + } + + return coercedObj; + } + + if ((0, _definition.isLeafType)(type)) { + // Scalars and Enums fulfill parsing a literal value via parseLiteral(). + // Invalid values represent a failure to parse correctly, in which case + // no value is returned. + let result; + + try { + result = type.parseLiteral(valueNode, variables); + } catch (_error) { + return; // Invalid: intentionally return no value. + } + + if (result === undefined) { + return; // Invalid: intentionally return no value. + } + + return result; + } + /* c8 ignore next 3 */ + // Not reachable, all possible input types have been considered. + + false || + (0, _invariant.invariant)( + false, + 'Unexpected input type: ' + (0, _inspect.inspect)(type), + ); +} // Returns true if the provided valueNode is a variable which is not defined +// in the set of variables. + +function isMissingVariable(valueNode, variables) { + return ( + valueNode.kind === _kinds.Kind.VARIABLE && + (variables == null || variables[valueNode.name.value] === undefined) + ); +} + + +/***/ }), + +/***/ 7252: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.valueFromASTUntyped = valueFromASTUntyped; + +var _keyValMap = __nccwpck_require__(4876); + +var _kinds = __nccwpck_require__(2881); + +/** + * Produces a JavaScript value given a GraphQL Value AST. + * + * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value + * will reflect the provided GraphQL value AST. + * + * | GraphQL Value | JavaScript Value | + * | -------------------- | ---------------- | + * | Input Object | Object | + * | List | Array | + * | Boolean | Boolean | + * | String / Enum | String | + * | Int / Float | Number | + * | Null | null | + * + */ +function valueFromASTUntyped(valueNode, variables) { + switch (valueNode.kind) { + case _kinds.Kind.NULL: + return null; + + case _kinds.Kind.INT: + return parseInt(valueNode.value, 10); + + case _kinds.Kind.FLOAT: + return parseFloat(valueNode.value); + + case _kinds.Kind.STRING: + case _kinds.Kind.ENUM: + case _kinds.Kind.BOOLEAN: + return valueNode.value; + + case _kinds.Kind.LIST: + return valueNode.values.map((node) => + valueFromASTUntyped(node, variables), + ); + + case _kinds.Kind.OBJECT: + return (0, _keyValMap.keyValMap)( + valueNode.fields, + (field) => field.name.value, + (field) => valueFromASTUntyped(field.value, variables), + ); + + case _kinds.Kind.VARIABLE: + return variables === null || variables === void 0 + ? void 0 + : variables[valueNode.name.value]; + } +} + + +/***/ }), + +/***/ 8645: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.ValidationContext = + exports.SDLValidationContext = + exports.ASTValidationContext = + void 0; + +var _kinds = __nccwpck_require__(2881); + +var _visitor = __nccwpck_require__(7848); + +var _TypeInfo = __nccwpck_require__(3502); + +/** + * An instance of this class is passed as the "this" context to all validators, + * allowing access to commonly useful contextual information from within a + * validation rule. + */ +class ASTValidationContext { + constructor(ast, onError) { + this._ast = ast; + this._fragments = undefined; + this._fragmentSpreads = new Map(); + this._recursivelyReferencedFragments = new Map(); + this._onError = onError; + } + + get [Symbol.toStringTag]() { + return 'ASTValidationContext'; + } + + reportError(error) { + this._onError(error); + } + + getDocument() { + return this._ast; + } + + getFragment(name) { + let fragments; + + if (this._fragments) { + fragments = this._fragments; + } else { + fragments = Object.create(null); + + for (const defNode of this.getDocument().definitions) { + if (defNode.kind === _kinds.Kind.FRAGMENT_DEFINITION) { + fragments[defNode.name.value] = defNode; + } + } + + this._fragments = fragments; + } + + return fragments[name]; + } + + getFragmentSpreads(node) { + let spreads = this._fragmentSpreads.get(node); + + if (!spreads) { + spreads = []; + const setsToVisit = [node]; + let set; + + while ((set = setsToVisit.pop())) { + for (const selection of set.selections) { + if (selection.kind === _kinds.Kind.FRAGMENT_SPREAD) { + spreads.push(selection); + } else if (selection.selectionSet) { + setsToVisit.push(selection.selectionSet); + } + } + } + + this._fragmentSpreads.set(node, spreads); + } + + return spreads; + } + + getRecursivelyReferencedFragments(operation) { + let fragments = this._recursivelyReferencedFragments.get(operation); + + if (!fragments) { + fragments = []; + const collectedNames = Object.create(null); + const nodesToVisit = [operation.selectionSet]; + let node; + + while ((node = nodesToVisit.pop())) { + for (const spread of this.getFragmentSpreads(node)) { + const fragName = spread.name.value; + + if (collectedNames[fragName] !== true) { + collectedNames[fragName] = true; + const fragment = this.getFragment(fragName); + + if (fragment) { + fragments.push(fragment); + nodesToVisit.push(fragment.selectionSet); + } + } + } + } + + this._recursivelyReferencedFragments.set(operation, fragments); + } + + return fragments; + } +} + +exports.ASTValidationContext = ASTValidationContext; + +class SDLValidationContext extends ASTValidationContext { + constructor(ast, schema, onError) { + super(ast, onError); + this._schema = schema; + } + + get [Symbol.toStringTag]() { + return 'SDLValidationContext'; + } + + getSchema() { + return this._schema; + } +} + +exports.SDLValidationContext = SDLValidationContext; + +class ValidationContext extends ASTValidationContext { + constructor(schema, ast, typeInfo, onError) { + super(ast, onError); + this._schema = schema; + this._typeInfo = typeInfo; + this._variableUsages = new Map(); + this._recursiveVariableUsages = new Map(); + } + + get [Symbol.toStringTag]() { + return 'ValidationContext'; + } + + getSchema() { + return this._schema; + } + + getVariableUsages(node) { + let usages = this._variableUsages.get(node); + + if (!usages) { + const newUsages = []; + const typeInfo = new _TypeInfo.TypeInfo(this._schema); + (0, _visitor.visit)( + node, + (0, _TypeInfo.visitWithTypeInfo)(typeInfo, { + VariableDefinition: () => false, + + Variable(variable) { + newUsages.push({ + node: variable, + type: typeInfo.getInputType(), + defaultValue: typeInfo.getDefaultValue(), + }); + }, + }), + ); + usages = newUsages; + + this._variableUsages.set(node, usages); + } + + return usages; + } + + getRecursiveVariableUsages(operation) { + let usages = this._recursiveVariableUsages.get(operation); + + if (!usages) { + usages = this.getVariableUsages(operation); + + for (const frag of this.getRecursivelyReferencedFragments(operation)) { + usages = usages.concat(this.getVariableUsages(frag)); + } + + this._recursiveVariableUsages.set(operation, usages); + } + + return usages; + } + + getType() { + return this._typeInfo.getType(); + } + + getParentType() { + return this._typeInfo.getParentType(); + } + + getInputType() { + return this._typeInfo.getInputType(); + } + + getParentInputType() { + return this._typeInfo.getParentInputType(); + } + + getFieldDef() { + return this._typeInfo.getFieldDef(); + } + + getDirective() { + return this._typeInfo.getDirective(); + } + + getArgument() { + return this._typeInfo.getArgument(); + } + + getEnumValue() { + return this._typeInfo.getEnumValue(); + } +} + +exports.ValidationContext = ValidationContext; + + +/***/ }), + +/***/ 456: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +Object.defineProperty(exports, "ExecutableDefinitionsRule", ({ + enumerable: true, + get: function () { + return _ExecutableDefinitionsRule.ExecutableDefinitionsRule; + }, +})); +Object.defineProperty(exports, "FieldsOnCorrectTypeRule", ({ + enumerable: true, + get: function () { + return _FieldsOnCorrectTypeRule.FieldsOnCorrectTypeRule; + }, +})); +Object.defineProperty(exports, "FragmentsOnCompositeTypesRule", ({ + enumerable: true, + get: function () { + return _FragmentsOnCompositeTypesRule.FragmentsOnCompositeTypesRule; + }, +})); +Object.defineProperty(exports, "KnownArgumentNamesRule", ({ + enumerable: true, + get: function () { + return _KnownArgumentNamesRule.KnownArgumentNamesRule; + }, +})); +Object.defineProperty(exports, "KnownDirectivesRule", ({ + enumerable: true, + get: function () { + return _KnownDirectivesRule.KnownDirectivesRule; + }, +})); +Object.defineProperty(exports, "KnownFragmentNamesRule", ({ + enumerable: true, + get: function () { + return _KnownFragmentNamesRule.KnownFragmentNamesRule; + }, +})); +Object.defineProperty(exports, "KnownTypeNamesRule", ({ + enumerable: true, + get: function () { + return _KnownTypeNamesRule.KnownTypeNamesRule; + }, +})); +Object.defineProperty(exports, "LoneAnonymousOperationRule", ({ + enumerable: true, + get: function () { + return _LoneAnonymousOperationRule.LoneAnonymousOperationRule; + }, +})); +Object.defineProperty(exports, "LoneSchemaDefinitionRule", ({ + enumerable: true, + get: function () { + return _LoneSchemaDefinitionRule.LoneSchemaDefinitionRule; + }, +})); +Object.defineProperty(exports, "MaxIntrospectionDepthRule", ({ + enumerable: true, + get: function () { + return _MaxIntrospectionDepthRule.MaxIntrospectionDepthRule; + }, +})); +Object.defineProperty(exports, "NoDeprecatedCustomRule", ({ + enumerable: true, + get: function () { + return _NoDeprecatedCustomRule.NoDeprecatedCustomRule; + }, +})); +Object.defineProperty(exports, "NoFragmentCyclesRule", ({ + enumerable: true, + get: function () { + return _NoFragmentCyclesRule.NoFragmentCyclesRule; + }, +})); +Object.defineProperty(exports, "NoSchemaIntrospectionCustomRule", ({ + enumerable: true, + get: function () { + return _NoSchemaIntrospectionCustomRule.NoSchemaIntrospectionCustomRule; + }, +})); +Object.defineProperty(exports, "NoUndefinedVariablesRule", ({ + enumerable: true, + get: function () { + return _NoUndefinedVariablesRule.NoUndefinedVariablesRule; + }, +})); +Object.defineProperty(exports, "NoUnusedFragmentsRule", ({ + enumerable: true, + get: function () { + return _NoUnusedFragmentsRule.NoUnusedFragmentsRule; + }, +})); +Object.defineProperty(exports, "NoUnusedVariablesRule", ({ + enumerable: true, + get: function () { + return _NoUnusedVariablesRule.NoUnusedVariablesRule; + }, +})); +Object.defineProperty(exports, "OverlappingFieldsCanBeMergedRule", ({ + enumerable: true, + get: function () { + return _OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule; + }, +})); +Object.defineProperty(exports, "PossibleFragmentSpreadsRule", ({ + enumerable: true, + get: function () { + return _PossibleFragmentSpreadsRule.PossibleFragmentSpreadsRule; + }, +})); +Object.defineProperty(exports, "PossibleTypeExtensionsRule", ({ + enumerable: true, + get: function () { + return _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule; + }, +})); +Object.defineProperty(exports, "ProvidedRequiredArgumentsRule", ({ + enumerable: true, + get: function () { + return _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsRule; + }, +})); +Object.defineProperty(exports, "ScalarLeafsRule", ({ + enumerable: true, + get: function () { + return _ScalarLeafsRule.ScalarLeafsRule; + }, +})); +Object.defineProperty(exports, "SingleFieldSubscriptionsRule", ({ + enumerable: true, + get: function () { + return _SingleFieldSubscriptionsRule.SingleFieldSubscriptionsRule; + }, +})); +Object.defineProperty(exports, "UniqueArgumentDefinitionNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueArgumentDefinitionNamesRule.UniqueArgumentDefinitionNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueArgumentNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueArgumentNamesRule.UniqueArgumentNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueDirectiveNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueDirectivesPerLocationRule", ({ + enumerable: true, + get: function () { + return _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule; + }, +})); +Object.defineProperty(exports, "UniqueEnumValueNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueFieldDefinitionNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueFragmentNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueFragmentNamesRule.UniqueFragmentNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueInputFieldNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueOperationNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueOperationNamesRule.UniqueOperationNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueOperationTypesRule", ({ + enumerable: true, + get: function () { + return _UniqueOperationTypesRule.UniqueOperationTypesRule; + }, +})); +Object.defineProperty(exports, "UniqueTypeNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueTypeNamesRule.UniqueTypeNamesRule; + }, +})); +Object.defineProperty(exports, "UniqueVariableNamesRule", ({ + enumerable: true, + get: function () { + return _UniqueVariableNamesRule.UniqueVariableNamesRule; + }, +})); +Object.defineProperty(exports, "ValidationContext", ({ + enumerable: true, + get: function () { + return _ValidationContext.ValidationContext; + }, +})); +Object.defineProperty(exports, "ValuesOfCorrectTypeRule", ({ + enumerable: true, + get: function () { + return _ValuesOfCorrectTypeRule.ValuesOfCorrectTypeRule; + }, +})); +Object.defineProperty(exports, "VariablesAreInputTypesRule", ({ + enumerable: true, + get: function () { + return _VariablesAreInputTypesRule.VariablesAreInputTypesRule; + }, +})); +Object.defineProperty(exports, "VariablesInAllowedPositionRule", ({ + enumerable: true, + get: function () { + return _VariablesInAllowedPositionRule.VariablesInAllowedPositionRule; + }, +})); +Object.defineProperty(exports, "recommendedRules", ({ + enumerable: true, + get: function () { + return _specifiedRules.recommendedRules; + }, +})); +Object.defineProperty(exports, "specifiedRules", ({ + enumerable: true, + get: function () { + return _specifiedRules.specifiedRules; + }, +})); +Object.defineProperty(exports, "validate", ({ + enumerable: true, + get: function () { + return _validate.validate; + }, +})); + +var _validate = __nccwpck_require__(5105); + +var _ValidationContext = __nccwpck_require__(8645); + +var _specifiedRules = __nccwpck_require__(1598); + +var _ExecutableDefinitionsRule = __nccwpck_require__(7135); + +var _FieldsOnCorrectTypeRule = __nccwpck_require__(9831); + +var _FragmentsOnCompositeTypesRule = __nccwpck_require__(2021); + +var _KnownArgumentNamesRule = __nccwpck_require__(4813); + +var _KnownDirectivesRule = __nccwpck_require__(6944); + +var _KnownFragmentNamesRule = __nccwpck_require__(7496); + +var _KnownTypeNamesRule = __nccwpck_require__(2864); + +var _LoneAnonymousOperationRule = __nccwpck_require__(5263); + +var _NoFragmentCyclesRule = __nccwpck_require__(4997); + +var _NoUndefinedVariablesRule = __nccwpck_require__(7107); + +var _NoUnusedFragmentsRule = __nccwpck_require__(3275); + +var _NoUnusedVariablesRule = __nccwpck_require__(4587); + +var _OverlappingFieldsCanBeMergedRule = __nccwpck_require__(1988); + +var _PossibleFragmentSpreadsRule = __nccwpck_require__(5492); + +var _ProvidedRequiredArgumentsRule = __nccwpck_require__(6583); + +var _ScalarLeafsRule = __nccwpck_require__(424); + +var _SingleFieldSubscriptionsRule = __nccwpck_require__(3999); + +var _UniqueArgumentNamesRule = __nccwpck_require__(4069); + +var _UniqueDirectivesPerLocationRule = __nccwpck_require__(2729); + +var _UniqueFragmentNamesRule = __nccwpck_require__(96); + +var _UniqueInputFieldNamesRule = __nccwpck_require__(920); + +var _UniqueOperationNamesRule = __nccwpck_require__(3093); + +var _UniqueVariableNamesRule = __nccwpck_require__(5820); + +var _ValuesOfCorrectTypeRule = __nccwpck_require__(3790); + +var _VariablesAreInputTypesRule = __nccwpck_require__(5309); + +var _VariablesInAllowedPositionRule = __nccwpck_require__(6316); + +var _MaxIntrospectionDepthRule = __nccwpck_require__(9603); + +var _LoneSchemaDefinitionRule = __nccwpck_require__(1591); + +var _UniqueOperationTypesRule = __nccwpck_require__(5312); + +var _UniqueTypeNamesRule = __nccwpck_require__(3672); + +var _UniqueEnumValueNamesRule = __nccwpck_require__(1200); + +var _UniqueFieldDefinitionNamesRule = __nccwpck_require__(5933); + +var _UniqueArgumentDefinitionNamesRule = __nccwpck_require__(3986); + +var _UniqueDirectiveNamesRule = __nccwpck_require__(9941); + +var _PossibleTypeExtensionsRule = __nccwpck_require__(2300); + +var _NoDeprecatedCustomRule = __nccwpck_require__(1044); + +var _NoSchemaIntrospectionCustomRule = __nccwpck_require__(3473); + + +/***/ }), + +/***/ 7135: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.ExecutableDefinitionsRule = ExecutableDefinitionsRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _predicates = __nccwpck_require__(418); + +/** + * Executable definitions + * + * A GraphQL document is only valid for execution if all definitions are either + * operation or fragment definitions. + * + * See https://spec.graphql.org/draft/#sec-Executable-Definitions + */ +function ExecutableDefinitionsRule(context) { + return { + Document(node) { + for (const definition of node.definitions) { + if (!(0, _predicates.isExecutableDefinitionNode)(definition)) { + const defName = + definition.kind === _kinds.Kind.SCHEMA_DEFINITION || + definition.kind === _kinds.Kind.SCHEMA_EXTENSION + ? 'schema' + : '"' + definition.name.value + '"'; + context.reportError( + new _GraphQLError.GraphQLError( + `The ${defName} definition is not executable.`, + { + nodes: definition, + }, + ), + ); + } + } + + return false; + }, + }; +} + + +/***/ }), + +/***/ 9831: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.FieldsOnCorrectTypeRule = FieldsOnCorrectTypeRule; + +var _didYouMean = __nccwpck_require__(1627); + +var _naturalCompare = __nccwpck_require__(4834); + +var _suggestionList = __nccwpck_require__(3046); + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +/** + * Fields on correct type + * + * A GraphQL document is only valid if all fields selected are defined by the + * parent type, or are an allowed meta field such as __typename. + * + * See https://spec.graphql.org/draft/#sec-Field-Selections + */ +function FieldsOnCorrectTypeRule(context) { + return { + Field(node) { + const type = context.getParentType(); + + if (type) { + const fieldDef = context.getFieldDef(); + + if (!fieldDef) { + // This field doesn't exist, lets look for suggestions. + const schema = context.getSchema(); + const fieldName = node.name.value; // First determine if there are any suggested types to condition on. + + let suggestion = (0, _didYouMean.didYouMean)( + 'to use an inline fragment on', + getSuggestedTypeNames(schema, type, fieldName), + ); // If there are no suggested types, then perhaps this was a typo? + + if (suggestion === '') { + suggestion = (0, _didYouMean.didYouMean)( + getSuggestedFieldNames(type, fieldName), + ); + } // Report an error, including helpful suggestions. + + context.reportError( + new _GraphQLError.GraphQLError( + `Cannot query field "${fieldName}" on type "${type.name}".` + + suggestion, + { + nodes: node, + }, + ), + ); + } + } + }, + }; +} +/** + * Go through all of the implementations of type, as well as the interfaces that + * they implement. If any of those types include the provided field, suggest them, + * sorted by how often the type is referenced. + */ + +function getSuggestedTypeNames(schema, type, fieldName) { + if (!(0, _definition.isAbstractType)(type)) { + // Must be an Object type, which does not have possible fields. + return []; + } + + const suggestedTypes = new Set(); + const usageCount = Object.create(null); + + for (const possibleType of schema.getPossibleTypes(type)) { + if (!possibleType.getFields()[fieldName]) { + continue; + } // This object type defines this field. + + suggestedTypes.add(possibleType); + usageCount[possibleType.name] = 1; + + for (const possibleInterface of possibleType.getInterfaces()) { + var _usageCount$possibleI; + + if (!possibleInterface.getFields()[fieldName]) { + continue; + } // This interface type defines this field. + + suggestedTypes.add(possibleInterface); + usageCount[possibleInterface.name] = + ((_usageCount$possibleI = usageCount[possibleInterface.name]) !== + null && _usageCount$possibleI !== void 0 + ? _usageCount$possibleI + : 0) + 1; + } + } + + return [...suggestedTypes] + .sort((typeA, typeB) => { + // Suggest both interface and object types based on how common they are. + const usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name]; + + if (usageCountDiff !== 0) { + return usageCountDiff; + } // Suggest super types first followed by subtypes + + if ( + (0, _definition.isInterfaceType)(typeA) && + schema.isSubType(typeA, typeB) + ) { + return -1; + } + + if ( + (0, _definition.isInterfaceType)(typeB) && + schema.isSubType(typeB, typeA) + ) { + return 1; + } + + return (0, _naturalCompare.naturalCompare)(typeA.name, typeB.name); + }) + .map((x) => x.name); +} +/** + * For the field name provided, determine if there are any similar field names + * that may be the result of a typo. + */ + +function getSuggestedFieldNames(type, fieldName) { + if ( + (0, _definition.isObjectType)(type) || + (0, _definition.isInterfaceType)(type) + ) { + const possibleFieldNames = Object.keys(type.getFields()); + return (0, _suggestionList.suggestionList)(fieldName, possibleFieldNames); + } // Otherwise, must be a Union type, which does not define fields. + + return []; +} + + +/***/ }), + +/***/ 2021: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.FragmentsOnCompositeTypesRule = FragmentsOnCompositeTypesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +var _typeFromAST = __nccwpck_require__(2136); + +/** + * Fragments on composite type + * + * Fragments use a type condition to determine if they apply, since fragments + * can only be spread into a composite type (object, interface, or union), the + * type condition must also be a composite type. + * + * See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types + */ +function FragmentsOnCompositeTypesRule(context) { + return { + InlineFragment(node) { + const typeCondition = node.typeCondition; + + if (typeCondition) { + const type = (0, _typeFromAST.typeFromAST)( + context.getSchema(), + typeCondition, + ); + + if (type && !(0, _definition.isCompositeType)(type)) { + const typeStr = (0, _printer.print)(typeCondition); + context.reportError( + new _GraphQLError.GraphQLError( + `Fragment cannot condition on non composite type "${typeStr}".`, + { + nodes: typeCondition, + }, + ), + ); + } + } + }, + + FragmentDefinition(node) { + const type = (0, _typeFromAST.typeFromAST)( + context.getSchema(), + node.typeCondition, + ); + + if (type && !(0, _definition.isCompositeType)(type)) { + const typeStr = (0, _printer.print)(node.typeCondition); + context.reportError( + new _GraphQLError.GraphQLError( + `Fragment "${node.name.value}" cannot condition on non composite type "${typeStr}".`, + { + nodes: node.typeCondition, + }, + ), + ); + } + }, + }; +} + + +/***/ }), + +/***/ 4813: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.KnownArgumentNamesOnDirectivesRule = KnownArgumentNamesOnDirectivesRule; +exports.KnownArgumentNamesRule = KnownArgumentNamesRule; + +var _didYouMean = __nccwpck_require__(1627); + +var _suggestionList = __nccwpck_require__(3046); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _directives = __nccwpck_require__(2572); + +/** + * Known argument names + * + * A GraphQL field is only valid if all supplied arguments are defined by + * that field. + * + * See https://spec.graphql.org/draft/#sec-Argument-Names + * See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations + */ +function KnownArgumentNamesRule(context) { + return { + + ...KnownArgumentNamesOnDirectivesRule(context), + + Argument(argNode) { + const argDef = context.getArgument(); + const fieldDef = context.getFieldDef(); + const parentType = context.getParentType(); + + if (!argDef && fieldDef && parentType) { + const argName = argNode.name.value; + const knownArgsNames = fieldDef.args.map((arg) => arg.name); + const suggestions = (0, _suggestionList.suggestionList)( + argName, + knownArgsNames, + ); + context.reportError( + new _GraphQLError.GraphQLError( + `Unknown argument "${argName}" on field "${parentType.name}.${fieldDef.name}".` + + (0, _didYouMean.didYouMean)(suggestions), + { + nodes: argNode, + }, + ), + ); + } + }, + }; +} +/** + * @internal + */ + +function KnownArgumentNamesOnDirectivesRule(context) { + const directiveArgs = Object.create(null); + const schema = context.getSchema(); + const definedDirectives = schema + ? schema.getDirectives() + : _directives.specifiedDirectives; + + for (const directive of definedDirectives) { + directiveArgs[directive.name] = directive.args.map((arg) => arg.name); + } + + const astDefinitions = context.getDocument().definitions; + + for (const def of astDefinitions) { + if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { + var _def$arguments; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + const argsNodes = + (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 + ? _def$arguments + : []; + directiveArgs[def.name.value] = argsNodes.map((arg) => arg.name.value); + } + } + + return { + Directive(directiveNode) { + const directiveName = directiveNode.name.value; + const knownArgs = directiveArgs[directiveName]; + + if (directiveNode.arguments && knownArgs) { + for (const argNode of directiveNode.arguments) { + const argName = argNode.name.value; + + if (!knownArgs.includes(argName)) { + const suggestions = (0, _suggestionList.suggestionList)( + argName, + knownArgs, + ); + context.reportError( + new _GraphQLError.GraphQLError( + `Unknown argument "${argName}" on directive "@${directiveName}".` + + (0, _didYouMean.didYouMean)(suggestions), + { + nodes: argNode, + }, + ), + ); + } + } + } + + return false; + }, + }; +} + + +/***/ }), + +/***/ 6944: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.KnownDirectivesRule = KnownDirectivesRule; + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _GraphQLError = __nccwpck_require__(1753); + +var _ast = __nccwpck_require__(906); + +var _directiveLocation = __nccwpck_require__(3180); + +var _kinds = __nccwpck_require__(2881); + +var _directives = __nccwpck_require__(2572); + +/** + * Known directives + * + * A GraphQL document is only valid if all `@directives` are known by the + * schema and legally positioned. + * + * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined + */ +function KnownDirectivesRule(context) { + const locationsMap = Object.create(null); + const schema = context.getSchema(); + const definedDirectives = schema + ? schema.getDirectives() + : _directives.specifiedDirectives; + + for (const directive of definedDirectives) { + locationsMap[directive.name] = directive.locations; + } + + const astDefinitions = context.getDocument().definitions; + + for (const def of astDefinitions) { + if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { + locationsMap[def.name.value] = def.locations.map((name) => name.value); + } + } + + return { + Directive(node, _key, _parent, _path, ancestors) { + const name = node.name.value; + const locations = locationsMap[name]; + + if (!locations) { + context.reportError( + new _GraphQLError.GraphQLError(`Unknown directive "@${name}".`, { + nodes: node, + }), + ); + return; + } + + const candidateLocation = getDirectiveLocationForASTPath(ancestors); + + if (candidateLocation && !locations.includes(candidateLocation)) { + context.reportError( + new _GraphQLError.GraphQLError( + `Directive "@${name}" may not be used on ${candidateLocation}.`, + { + nodes: node, + }, + ), + ); + } + }, + }; +} + +function getDirectiveLocationForASTPath(ancestors) { + const appliedTo = ancestors[ancestors.length - 1]; + 'kind' in appliedTo || (0, _invariant.invariant)(false); + + switch (appliedTo.kind) { + case _kinds.Kind.OPERATION_DEFINITION: + return getDirectiveLocationForOperation(appliedTo.operation); + + case _kinds.Kind.FIELD: + return _directiveLocation.DirectiveLocation.FIELD; + + case _kinds.Kind.FRAGMENT_SPREAD: + return _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD; + + case _kinds.Kind.INLINE_FRAGMENT: + return _directiveLocation.DirectiveLocation.INLINE_FRAGMENT; + + case _kinds.Kind.FRAGMENT_DEFINITION: + return _directiveLocation.DirectiveLocation.FRAGMENT_DEFINITION; + + case _kinds.Kind.VARIABLE_DEFINITION: + return _directiveLocation.DirectiveLocation.VARIABLE_DEFINITION; + + case _kinds.Kind.SCHEMA_DEFINITION: + case _kinds.Kind.SCHEMA_EXTENSION: + return _directiveLocation.DirectiveLocation.SCHEMA; + + case _kinds.Kind.SCALAR_TYPE_DEFINITION: + case _kinds.Kind.SCALAR_TYPE_EXTENSION: + return _directiveLocation.DirectiveLocation.SCALAR; + + case _kinds.Kind.OBJECT_TYPE_DEFINITION: + case _kinds.Kind.OBJECT_TYPE_EXTENSION: + return _directiveLocation.DirectiveLocation.OBJECT; + + case _kinds.Kind.FIELD_DEFINITION: + return _directiveLocation.DirectiveLocation.FIELD_DEFINITION; + + case _kinds.Kind.INTERFACE_TYPE_DEFINITION: + case _kinds.Kind.INTERFACE_TYPE_EXTENSION: + return _directiveLocation.DirectiveLocation.INTERFACE; + + case _kinds.Kind.UNION_TYPE_DEFINITION: + case _kinds.Kind.UNION_TYPE_EXTENSION: + return _directiveLocation.DirectiveLocation.UNION; + + case _kinds.Kind.ENUM_TYPE_DEFINITION: + case _kinds.Kind.ENUM_TYPE_EXTENSION: + return _directiveLocation.DirectiveLocation.ENUM; + + case _kinds.Kind.ENUM_VALUE_DEFINITION: + return _directiveLocation.DirectiveLocation.ENUM_VALUE; + + case _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION: + case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION: + return _directiveLocation.DirectiveLocation.INPUT_OBJECT; + + case _kinds.Kind.INPUT_VALUE_DEFINITION: { + const parentNode = ancestors[ancestors.length - 3]; + 'kind' in parentNode || (0, _invariant.invariant)(false); + return parentNode.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION + ? _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION + : _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION; + } + // Not reachable, all possible types have been considered. + + /* c8 ignore next */ + + default: + false || + (0, _invariant.invariant)( + false, + 'Unexpected kind: ' + (0, _inspect.inspect)(appliedTo.kind), + ); + } +} + +function getDirectiveLocationForOperation(operation) { + switch (operation) { + case _ast.OperationTypeNode.QUERY: + return _directiveLocation.DirectiveLocation.QUERY; + + case _ast.OperationTypeNode.MUTATION: + return _directiveLocation.DirectiveLocation.MUTATION; + + case _ast.OperationTypeNode.SUBSCRIPTION: + return _directiveLocation.DirectiveLocation.SUBSCRIPTION; + } +} + + +/***/ }), + +/***/ 7496: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.KnownFragmentNamesRule = KnownFragmentNamesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Known fragment names + * + * A GraphQL document is only valid if all `...Fragment` fragment spreads refer + * to fragments defined in the same document. + * + * See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined + */ +function KnownFragmentNamesRule(context) { + return { + FragmentSpread(node) { + const fragmentName = node.name.value; + const fragment = context.getFragment(fragmentName); + + if (!fragment) { + context.reportError( + new _GraphQLError.GraphQLError( + `Unknown fragment "${fragmentName}".`, + { + nodes: node.name, + }, + ), + ); + } + }, + }; +} + + +/***/ }), + +/***/ 2864: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.KnownTypeNamesRule = KnownTypeNamesRule; + +var _didYouMean = __nccwpck_require__(1627); + +var _suggestionList = __nccwpck_require__(3046); + +var _GraphQLError = __nccwpck_require__(1753); + +var _predicates = __nccwpck_require__(418); + +var _introspection = __nccwpck_require__(2239); + +var _scalars = __nccwpck_require__(8633); + +/** + * Known type names + * + * A GraphQL document is only valid if referenced types (specifically + * variable definitions and fragment conditions) are defined by the type schema. + * + * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence + */ +function KnownTypeNamesRule(context) { + const schema = context.getSchema(); + const existingTypesMap = schema ? schema.getTypeMap() : Object.create(null); + const definedTypes = Object.create(null); + + for (const def of context.getDocument().definitions) { + if ((0, _predicates.isTypeDefinitionNode)(def)) { + definedTypes[def.name.value] = true; + } + } + + const typeNames = [ + ...Object.keys(existingTypesMap), + ...Object.keys(definedTypes), + ]; + return { + NamedType(node, _1, parent, _2, ancestors) { + const typeName = node.name.value; + + if (!existingTypesMap[typeName] && !definedTypes[typeName]) { + var _ancestors$; + + const definitionNode = + (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0 + ? _ancestors$ + : parent; + const isSDL = definitionNode != null && isSDLNode(definitionNode); + + if (isSDL && standardTypeNames.includes(typeName)) { + return; + } + + const suggestedTypes = (0, _suggestionList.suggestionList)( + typeName, + isSDL ? standardTypeNames.concat(typeNames) : typeNames, + ); + context.reportError( + new _GraphQLError.GraphQLError( + `Unknown type "${typeName}".` + + (0, _didYouMean.didYouMean)(suggestedTypes), + { + nodes: node, + }, + ), + ); + } + }, + }; +} + +const standardTypeNames = [ + ..._scalars.specifiedScalarTypes, + ..._introspection.introspectionTypes, +].map((type) => type.name); + +function isSDLNode(value) { + return ( + 'kind' in value && + ((0, _predicates.isTypeSystemDefinitionNode)(value) || + (0, _predicates.isTypeSystemExtensionNode)(value)) + ); +} + + +/***/ }), + +/***/ 5263: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.LoneAnonymousOperationRule = LoneAnonymousOperationRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +/** + * Lone anonymous operation + * + * A GraphQL document is only valid if when it contains an anonymous operation + * (the query short-hand) that it contains only that one operation definition. + * + * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation + */ +function LoneAnonymousOperationRule(context) { + let operationCount = 0; + return { + Document(node) { + operationCount = node.definitions.filter( + (definition) => definition.kind === _kinds.Kind.OPERATION_DEFINITION, + ).length; + }, + + OperationDefinition(node) { + if (!node.name && operationCount > 1) { + context.reportError( + new _GraphQLError.GraphQLError( + 'This anonymous operation must be the only defined operation.', + { + nodes: node, + }, + ), + ); + } + }, + }; +} + + +/***/ }), + +/***/ 1591: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.LoneSchemaDefinitionRule = LoneSchemaDefinitionRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Lone Schema definition + * + * A GraphQL document is only valid if it contains only one schema definition. + */ +function LoneSchemaDefinitionRule(context) { + var _ref, _ref2, _oldSchema$astNode; + + const oldSchema = context.getSchema(); + const alreadyDefined = + (_ref = + (_ref2 = + (_oldSchema$astNode = + oldSchema === null || oldSchema === void 0 + ? void 0 + : oldSchema.astNode) !== null && _oldSchema$astNode !== void 0 + ? _oldSchema$astNode + : oldSchema === null || oldSchema === void 0 + ? void 0 + : oldSchema.getQueryType()) !== null && _ref2 !== void 0 + ? _ref2 + : oldSchema === null || oldSchema === void 0 + ? void 0 + : oldSchema.getMutationType()) !== null && _ref !== void 0 + ? _ref + : oldSchema === null || oldSchema === void 0 + ? void 0 + : oldSchema.getSubscriptionType(); + let schemaDefinitionsCount = 0; + return { + SchemaDefinition(node) { + if (alreadyDefined) { + context.reportError( + new _GraphQLError.GraphQLError( + 'Cannot define a new schema within a schema extension.', + { + nodes: node, + }, + ), + ); + return; + } + + if (schemaDefinitionsCount > 0) { + context.reportError( + new _GraphQLError.GraphQLError( + 'Must provide only one schema definition.', + { + nodes: node, + }, + ), + ); + } + + ++schemaDefinitionsCount; + }, + }; +} + + +/***/ }), + +/***/ 9603: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.MaxIntrospectionDepthRule = MaxIntrospectionDepthRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +const MAX_LISTS_DEPTH = 3; + +function MaxIntrospectionDepthRule(context) { + /** + * Counts the depth of list fields in "__Type" recursively and + * returns `true` if the limit has been reached. + */ + function checkDepth(node, visitedFragments = Object.create(null), depth = 0) { + if (node.kind === _kinds.Kind.FRAGMENT_SPREAD) { + const fragmentName = node.name.value; + + if (visitedFragments[fragmentName] === true) { + // Fragment cycles are handled by `NoFragmentCyclesRule`. + return false; + } + + const fragment = context.getFragment(fragmentName); + + if (!fragment) { + // Missing fragments checks are handled by `KnownFragmentNamesRule`. + return false; + } // Rather than following an immutable programming pattern which has + // significant memory and garbage collection overhead, we've opted to + // take a mutable approach for efficiency's sake. Importantly visiting a + // fragment twice is fine, so long as you don't do one visit inside the + // other. + + try { + visitedFragments[fragmentName] = true; + return checkDepth(fragment, visitedFragments, depth); + } finally { + visitedFragments[fragmentName] = undefined; + } + } + + if ( + node.kind === _kinds.Kind.FIELD && // check all introspection lists + (node.name.value === 'fields' || + node.name.value === 'interfaces' || + node.name.value === 'possibleTypes' || + node.name.value === 'inputFields') + ) { + + depth++; + + if (depth >= MAX_LISTS_DEPTH) { + return true; + } + } // handles fields and inline fragments + + if ('selectionSet' in node && node.selectionSet) { + for (const child of node.selectionSet.selections) { + if (checkDepth(child, visitedFragments, depth)) { + return true; + } + } + } + + return false; + } + + return { + Field(node) { + if (node.name.value === '__schema' || node.name.value === '__type') { + if (checkDepth(node)) { + context.reportError( + new _GraphQLError.GraphQLError( + 'Maximum introspection depth exceeded', + { + nodes: [node], + }, + ), + ); + return false; + } + } + }, + }; +} + + +/***/ }), + +/***/ 4997: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.NoFragmentCyclesRule = NoFragmentCyclesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * No fragment cycles + * + * The graph of fragment spreads must not form any cycles including spreading itself. + * Otherwise an operation could infinitely spread or infinitely execute on cycles in the underlying data. + * + * See https://spec.graphql.org/draft/#sec-Fragment-spreads-must-not-form-cycles + */ +function NoFragmentCyclesRule(context) { + // Tracks already visited fragments to maintain O(N) and to ensure that cycles + // are not redundantly reported. + const visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors + + const spreadPath = []; // Position in the spread path + + const spreadPathIndexByName = Object.create(null); + return { + OperationDefinition: () => false, + + FragmentDefinition(node) { + detectCycleRecursive(node); + return false; + }, + }; // This does a straight-forward DFS to find cycles. + // It does not terminate when a cycle was found but continues to explore + // the graph to find all possible cycles. + + function detectCycleRecursive(fragment) { + if (visitedFrags[fragment.name.value]) { + return; + } + + const fragmentName = fragment.name.value; + visitedFrags[fragmentName] = true; + const spreadNodes = context.getFragmentSpreads(fragment.selectionSet); + + if (spreadNodes.length === 0) { + return; + } + + spreadPathIndexByName[fragmentName] = spreadPath.length; + + for (const spreadNode of spreadNodes) { + const spreadName = spreadNode.name.value; + const cycleIndex = spreadPathIndexByName[spreadName]; + spreadPath.push(spreadNode); + + if (cycleIndex === undefined) { + const spreadFragment = context.getFragment(spreadName); + + if (spreadFragment) { + detectCycleRecursive(spreadFragment); + } + } else { + const cyclePath = spreadPath.slice(cycleIndex); + const viaPath = cyclePath + .slice(0, -1) + .map((s) => '"' + s.name.value + '"') + .join(', '); + context.reportError( + new _GraphQLError.GraphQLError( + `Cannot spread fragment "${spreadName}" within itself` + + (viaPath !== '' ? ` via ${viaPath}.` : '.'), + { + nodes: cyclePath, + }, + ), + ); + } + + spreadPath.pop(); + } + + spreadPathIndexByName[fragmentName] = undefined; + } +} + + +/***/ }), + +/***/ 7107: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.NoUndefinedVariablesRule = NoUndefinedVariablesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * No undefined variables + * + * A GraphQL operation is only valid if all variables encountered, both directly + * and via fragment spreads, are defined by that operation. + * + * See https://spec.graphql.org/draft/#sec-All-Variable-Uses-Defined + */ +function NoUndefinedVariablesRule(context) { + let variableNameDefined = Object.create(null); + return { + OperationDefinition: { + enter() { + variableNameDefined = Object.create(null); + }, + + leave(operation) { + const usages = context.getRecursiveVariableUsages(operation); + + for (const { node } of usages) { + const varName = node.name.value; + + if (variableNameDefined[varName] !== true) { + context.reportError( + new _GraphQLError.GraphQLError( + operation.name + ? `Variable "$${varName}" is not defined by operation "${operation.name.value}".` + : `Variable "$${varName}" is not defined.`, + { + nodes: [node, operation], + }, + ), + ); + } + } + }, + }, + + VariableDefinition(node) { + variableNameDefined[node.variable.name.value] = true; + }, + }; +} + + +/***/ }), + +/***/ 3275: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.NoUnusedFragmentsRule = NoUnusedFragmentsRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * No unused fragments + * + * A GraphQL document is only valid if all fragment definitions are spread + * within operations, or spread within other fragments spread within operations. + * + * See https://spec.graphql.org/draft/#sec-Fragments-Must-Be-Used + */ +function NoUnusedFragmentsRule(context) { + const operationDefs = []; + const fragmentDefs = []; + return { + OperationDefinition(node) { + operationDefs.push(node); + return false; + }, + + FragmentDefinition(node) { + fragmentDefs.push(node); + return false; + }, + + Document: { + leave() { + const fragmentNameUsed = Object.create(null); + + for (const operation of operationDefs) { + for (const fragment of context.getRecursivelyReferencedFragments( + operation, + )) { + fragmentNameUsed[fragment.name.value] = true; + } + } + + for (const fragmentDef of fragmentDefs) { + const fragName = fragmentDef.name.value; + + if (fragmentNameUsed[fragName] !== true) { + context.reportError( + new _GraphQLError.GraphQLError( + `Fragment "${fragName}" is never used.`, + { + nodes: fragmentDef, + }, + ), + ); + } + } + }, + }, + }; +} + + +/***/ }), + +/***/ 4587: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.NoUnusedVariablesRule = NoUnusedVariablesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * No unused variables + * + * A GraphQL operation is only valid if all variables defined by an operation + * are used, either directly or within a spread fragment. + * + * See https://spec.graphql.org/draft/#sec-All-Variables-Used + */ +function NoUnusedVariablesRule(context) { + let variableDefs = []; + return { + OperationDefinition: { + enter() { + variableDefs = []; + }, + + leave(operation) { + const variableNameUsed = Object.create(null); + const usages = context.getRecursiveVariableUsages(operation); + + for (const { node } of usages) { + variableNameUsed[node.name.value] = true; + } + + for (const variableDef of variableDefs) { + const variableName = variableDef.variable.name.value; + + if (variableNameUsed[variableName] !== true) { + context.reportError( + new _GraphQLError.GraphQLError( + operation.name + ? `Variable "$${variableName}" is never used in operation "${operation.name.value}".` + : `Variable "$${variableName}" is never used.`, + { + nodes: variableDef, + }, + ), + ); + } + } + }, + }, + + VariableDefinition(def) { + variableDefs.push(def); + }, + }; +} + + +/***/ }), + +/***/ 1988: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.OverlappingFieldsCanBeMergedRule = OverlappingFieldsCanBeMergedRule; + +var _inspect = __nccwpck_require__(3707); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +var _sortValueNode = __nccwpck_require__(397); + +var _typeFromAST = __nccwpck_require__(2136); + +function reasonMessage(reason) { + if (Array.isArray(reason)) { + return reason + .map( + ([responseName, subReason]) => + `subfields "${responseName}" conflict because ` + + reasonMessage(subReason), + ) + .join(' and '); + } + + return reason; +} +/** + * Overlapping fields can be merged + * + * A selection set is only valid if all fields (including spreading any + * fragments) either correspond to distinct response names or can be merged + * without ambiguity. + * + * See https://spec.graphql.org/draft/#sec-Field-Selection-Merging + */ + +function OverlappingFieldsCanBeMergedRule(context) { + // A memoization for when two fragments are compared "between" each other for + // conflicts. Two fragments may be compared many times, so memoizing this can + // dramatically improve the performance of this validator. + const comparedFragmentPairs = new PairSet(); // A cache for the "field map" and list of fragment names found in any given + // selection set. Selection sets may be asked for this information multiple + // times, so this improves the performance of this validator. + + const cachedFieldsAndFragmentNames = new Map(); + return { + SelectionSet(selectionSet) { + const conflicts = findConflictsWithinSelectionSet( + context, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + context.getParentType(), + selectionSet, + ); + + for (const [[responseName, reason], fields1, fields2] of conflicts) { + const reasonMsg = reasonMessage(reason); + context.reportError( + new _GraphQLError.GraphQLError( + `Fields "${responseName}" conflict because ${reasonMsg}. Use different aliases on the fields to fetch both if this was intentional.`, + { + nodes: fields1.concat(fields2), + }, + ), + ); + } + }, + }; +} + +/** + * Algorithm: + * + * Conflicts occur when two fields exist in a query which will produce the same + * response name, but represent differing values, thus creating a conflict. + * The algorithm below finds all conflicts via making a series of comparisons + * between fields. In order to compare as few fields as possible, this makes + * a series of comparisons "within" sets of fields and "between" sets of fields. + * + * Given any selection set, a collection produces both a set of fields by + * also including all inline fragments, as well as a list of fragments + * referenced by fragment spreads. + * + * A) Each selection set represented in the document first compares "within" its + * collected set of fields, finding any conflicts between every pair of + * overlapping fields. + * Note: This is the *only time* that a the fields "within" a set are compared + * to each other. After this only fields "between" sets are compared. + * + * B) Also, if any fragment is referenced in a selection set, then a + * comparison is made "between" the original set of fields and the + * referenced fragment. + * + * C) Also, if multiple fragments are referenced, then comparisons + * are made "between" each referenced fragment. + * + * D) When comparing "between" a set of fields and a referenced fragment, first + * a comparison is made between each field in the original set of fields and + * each field in the the referenced set of fields. + * + * E) Also, if any fragment is referenced in the referenced selection set, + * then a comparison is made "between" the original set of fields and the + * referenced fragment (recursively referring to step D). + * + * F) When comparing "between" two fragments, first a comparison is made between + * each field in the first referenced set of fields and each field in the the + * second referenced set of fields. + * + * G) Also, any fragments referenced by the first must be compared to the + * second, and any fragments referenced by the second must be compared to the + * first (recursively referring to step F). + * + * H) When comparing two fields, if both have selection sets, then a comparison + * is made "between" both selection sets, first comparing the set of fields in + * the first selection set with the set of fields in the second. + * + * I) Also, if any fragment is referenced in either selection set, then a + * comparison is made "between" the other set of fields and the + * referenced fragment. + * + * J) Also, if two fragments are referenced in both selection sets, then a + * comparison is made "between" the two fragments. + * + */ +// Find all conflicts found "within" a selection set, including those found +// via spreading in fragments. Called when visiting each SelectionSet in the +// GraphQL Document. +function findConflictsWithinSelectionSet( + context, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + parentType, + selectionSet, +) { + const conflicts = []; + const [fieldMap, fragmentNames] = getFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + parentType, + selectionSet, + ); // (A) Find find all conflicts "within" the fields of this selection set. + // Note: this is the *only place* `collectConflictsWithin` is called. + + collectConflictsWithin( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + fieldMap, + ); + + if (fragmentNames.length !== 0) { + // (B) Then collect conflicts between these fields and those represented by + // each spread fragment name found. + for (let i = 0; i < fragmentNames.length; i++) { + collectConflictsBetweenFieldsAndFragment( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + false, + fieldMap, + fragmentNames[i], + ); // (C) Then compare this fragment with all other fragments found in this + // selection set to collect conflicts between fragments spread together. + // This compares each item in the list of fragment names to every other + // item in that same list (except for itself). + + for (let j = i + 1; j < fragmentNames.length; j++) { + collectConflictsBetweenFragments( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + false, + fragmentNames[i], + fragmentNames[j], + ); + } + } + } + + return conflicts; +} // Collect all conflicts found between a set of fields and a fragment reference +// including via spreading in any nested fragments. + +function collectConflictsBetweenFieldsAndFragment( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fieldMap, + fragmentName, +) { + const fragment = context.getFragment(fragmentName); + + if (!fragment) { + return; + } + + const [fieldMap2, referencedFragmentNames] = + getReferencedFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + fragment, + ); // Do not compare a fragment's fieldMap to itself. + + if (fieldMap === fieldMap2) { + return; + } // (D) First collect any conflicts between the provided collection of fields + // and the collection of fields represented by the given fragment. + + collectConflictsBetween( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fieldMap, + fieldMap2, + ); // (E) Then collect any conflicts between the provided collection of fields + // and any fragment names found in the given fragment. + + for (const referencedFragmentName of referencedFragmentNames) { + // Memoize so two fragments are not compared for conflicts more than once. + if ( + comparedFragmentPairs.has( + referencedFragmentName, + fragmentName, + areMutuallyExclusive, + ) + ) { + continue; + } + + comparedFragmentPairs.add( + referencedFragmentName, + fragmentName, + areMutuallyExclusive, + ); + collectConflictsBetweenFieldsAndFragment( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fieldMap, + referencedFragmentName, + ); + } +} // Collect all conflicts found between two fragments, including via spreading in +// any nested fragments. + +function collectConflictsBetweenFragments( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fragmentName1, + fragmentName2, +) { + // No need to compare a fragment to itself. + if (fragmentName1 === fragmentName2) { + return; + } // Memoize so two fragments are not compared for conflicts more than once. + + if ( + comparedFragmentPairs.has( + fragmentName1, + fragmentName2, + areMutuallyExclusive, + ) + ) { + return; + } + + comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive); + const fragment1 = context.getFragment(fragmentName1); + const fragment2 = context.getFragment(fragmentName2); + + if (!fragment1 || !fragment2) { + return; + } + + const [fieldMap1, referencedFragmentNames1] = + getReferencedFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + fragment1, + ); + const [fieldMap2, referencedFragmentNames2] = + getReferencedFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + fragment2, + ); // (F) First, collect all conflicts between these two collections of fields + // (not including any nested fragments). + + collectConflictsBetween( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fieldMap1, + fieldMap2, + ); // (G) Then collect conflicts between the first fragment and any nested + // fragments spread in the second fragment. + + for (const referencedFragmentName2 of referencedFragmentNames2) { + collectConflictsBetweenFragments( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fragmentName1, + referencedFragmentName2, + ); + } // (G) Then collect conflicts between the second fragment and any nested + // fragments spread in the first fragment. + + for (const referencedFragmentName1 of referencedFragmentNames1) { + collectConflictsBetweenFragments( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + referencedFragmentName1, + fragmentName2, + ); + } +} // Find all conflicts found between two selection sets, including those found +// via spreading in fragments. Called when determining if conflicts exist +// between the sub-fields of two overlapping fields. + +function findConflictsBetweenSubSelectionSets( + context, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + parentType1, + selectionSet1, + parentType2, + selectionSet2, +) { + const conflicts = []; + const [fieldMap1, fragmentNames1] = getFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + parentType1, + selectionSet1, + ); + const [fieldMap2, fragmentNames2] = getFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + parentType2, + selectionSet2, + ); // (H) First, collect all conflicts between these two collections of field. + + collectConflictsBetween( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fieldMap1, + fieldMap2, + ); // (I) Then collect conflicts between the first collection of fields and + // those referenced by each fragment name associated with the second. + + for (const fragmentName2 of fragmentNames2) { + collectConflictsBetweenFieldsAndFragment( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fieldMap1, + fragmentName2, + ); + } // (I) Then collect conflicts between the second collection of fields and + // those referenced by each fragment name associated with the first. + + for (const fragmentName1 of fragmentNames1) { + collectConflictsBetweenFieldsAndFragment( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fieldMap2, + fragmentName1, + ); + } // (J) Also collect conflicts between any fragment names by the first and + // fragment names by the second. This compares each item in the first set of + // names to each item in the second set of names. + + for (const fragmentName1 of fragmentNames1) { + for (const fragmentName2 of fragmentNames2) { + collectConflictsBetweenFragments( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + fragmentName1, + fragmentName2, + ); + } + } + + return conflicts; +} // Collect all Conflicts "within" one collection of fields. + +function collectConflictsWithin( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + fieldMap, +) { + // A field map is a keyed collection, where each key represents a response + // name and the value at that key is a list of all fields which provide that + // response name. For every response name, if there are multiple fields, they + // must be compared to find a potential conflict. + for (const [responseName, fields] of Object.entries(fieldMap)) { + // This compares every field in the list to every other field in this list + // (except to itself). If the list only has one item, nothing needs to + // be compared. + if (fields.length > 1) { + for (let i = 0; i < fields.length; i++) { + for (let j = i + 1; j < fields.length; j++) { + const conflict = findConflict( + context, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + false, // within one collection is never mutually exclusive + responseName, + fields[i], + fields[j], + ); + + if (conflict) { + conflicts.push(conflict); + } + } + } + } + } +} // Collect all Conflicts between two collections of fields. This is similar to, +// but different from the `collectConflictsWithin` function above. This check +// assumes that `collectConflictsWithin` has already been called on each +// provided collection of fields. This is true because this validator traverses +// each individual selection set. + +function collectConflictsBetween( + context, + conflicts, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + parentFieldsAreMutuallyExclusive, + fieldMap1, + fieldMap2, +) { + // A field map is a keyed collection, where each key represents a response + // name and the value at that key is a list of all fields which provide that + // response name. For any response name which appears in both provided field + // maps, each field from the first field map must be compared to every field + // in the second field map to find potential conflicts. + for (const [responseName, fields1] of Object.entries(fieldMap1)) { + const fields2 = fieldMap2[responseName]; + + if (fields2) { + for (const field1 of fields1) { + for (const field2 of fields2) { + const conflict = findConflict( + context, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + parentFieldsAreMutuallyExclusive, + responseName, + field1, + field2, + ); + + if (conflict) { + conflicts.push(conflict); + } + } + } + } + } +} // Determines if there is a conflict between two particular fields, including +// comparing their sub-fields. + +function findConflict( + context, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + parentFieldsAreMutuallyExclusive, + responseName, + field1, + field2, +) { + const [parentType1, node1, def1] = field1; + const [parentType2, node2, def2] = field2; // If it is known that two fields could not possibly apply at the same + // time, due to the parent types, then it is safe to permit them to diverge + // in aliased field or arguments used as they will not present any ambiguity + // by differing. + // It is known that two parent types could never overlap if they are + // different Object types. Interface or Union types might overlap - if not + // in the current state of the schema, then perhaps in some future version, + // thus may not safely diverge. + + const areMutuallyExclusive = + parentFieldsAreMutuallyExclusive || + (parentType1 !== parentType2 && + (0, _definition.isObjectType)(parentType1) && + (0, _definition.isObjectType)(parentType2)); + + if (!areMutuallyExclusive) { + // Two aliases must refer to the same field. + const name1 = node1.name.value; + const name2 = node2.name.value; + + if (name1 !== name2) { + return [ + [responseName, `"${name1}" and "${name2}" are different fields`], + [node1], + [node2], + ]; + } // Two field calls must have the same arguments. + + if (!sameArguments(node1, node2)) { + return [ + [responseName, 'they have differing arguments'], + [node1], + [node2], + ]; + } + } // The return type for each field. + + const type1 = def1 === null || def1 === void 0 ? void 0 : def1.type; + const type2 = def2 === null || def2 === void 0 ? void 0 : def2.type; + + if (type1 && type2 && doTypesConflict(type1, type2)) { + return [ + [ + responseName, + `they return conflicting types "${(0, _inspect.inspect)( + type1, + )}" and "${(0, _inspect.inspect)(type2)}"`, + ], + [node1], + [node2], + ]; + } // Collect and compare sub-fields. Use the same "visited fragment names" list + // for both collections so fields in a fragment reference are never + // compared to themselves. + + const selectionSet1 = node1.selectionSet; + const selectionSet2 = node2.selectionSet; + + if (selectionSet1 && selectionSet2) { + const conflicts = findConflictsBetweenSubSelectionSets( + context, + cachedFieldsAndFragmentNames, + comparedFragmentPairs, + areMutuallyExclusive, + (0, _definition.getNamedType)(type1), + selectionSet1, + (0, _definition.getNamedType)(type2), + selectionSet2, + ); + return subfieldConflicts(conflicts, responseName, node1, node2); + } +} + +function sameArguments(node1, node2) { + const args1 = node1.arguments; + const args2 = node2.arguments; + + if (args1 === undefined || args1.length === 0) { + return args2 === undefined || args2.length === 0; + } + + if (args2 === undefined || args2.length === 0) { + return false; + } + /* c8 ignore next */ + + if (args1.length !== args2.length) { + /* c8 ignore next */ + return false; + /* c8 ignore next */ + } + + const values2 = new Map(args2.map(({ name, value }) => [name.value, value])); + return args1.every((arg1) => { + const value1 = arg1.value; + const value2 = values2.get(arg1.name.value); + + if (value2 === undefined) { + return false; + } + + return stringifyValue(value1) === stringifyValue(value2); + }); +} + +function stringifyValue(value) { + return (0, _printer.print)((0, _sortValueNode.sortValueNode)(value)); +} // Two types conflict if both types could not apply to a value simultaneously. +// Composite types are ignored as their individual field types will be compared +// later recursively. However List and Non-Null types must match. + +function doTypesConflict(type1, type2) { + if ((0, _definition.isListType)(type1)) { + return (0, _definition.isListType)(type2) + ? doTypesConflict(type1.ofType, type2.ofType) + : true; + } + + if ((0, _definition.isListType)(type2)) { + return true; + } + + if ((0, _definition.isNonNullType)(type1)) { + return (0, _definition.isNonNullType)(type2) + ? doTypesConflict(type1.ofType, type2.ofType) + : true; + } + + if ((0, _definition.isNonNullType)(type2)) { + return true; + } + + if ( + (0, _definition.isLeafType)(type1) || + (0, _definition.isLeafType)(type2) + ) { + return type1 !== type2; + } + + return false; +} // Given a selection set, return the collection of fields (a mapping of response +// name to field nodes and definitions) as well as a list of fragment names +// referenced via fragment spreads. + +function getFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + parentType, + selectionSet, +) { + const cached = cachedFieldsAndFragmentNames.get(selectionSet); + + if (cached) { + return cached; + } + + const nodeAndDefs = Object.create(null); + const fragmentNames = Object.create(null); + + _collectFieldsAndFragmentNames( + context, + parentType, + selectionSet, + nodeAndDefs, + fragmentNames, + ); + + const result = [nodeAndDefs, Object.keys(fragmentNames)]; + cachedFieldsAndFragmentNames.set(selectionSet, result); + return result; +} // Given a reference to a fragment, return the represented collection of fields +// as well as a list of nested fragment names referenced via fragment spreads. + +function getReferencedFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + fragment, +) { + // Short-circuit building a type from the node if possible. + const cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet); + + if (cached) { + return cached; + } + + const fragmentType = (0, _typeFromAST.typeFromAST)( + context.getSchema(), + fragment.typeCondition, + ); + return getFieldsAndFragmentNames( + context, + cachedFieldsAndFragmentNames, + fragmentType, + fragment.selectionSet, + ); +} + +function _collectFieldsAndFragmentNames( + context, + parentType, + selectionSet, + nodeAndDefs, + fragmentNames, +) { + for (const selection of selectionSet.selections) { + switch (selection.kind) { + case _kinds.Kind.FIELD: { + const fieldName = selection.name.value; + let fieldDef; + + if ( + (0, _definition.isObjectType)(parentType) || + (0, _definition.isInterfaceType)(parentType) + ) { + fieldDef = parentType.getFields()[fieldName]; + } + + const responseName = selection.alias + ? selection.alias.value + : fieldName; + + if (!nodeAndDefs[responseName]) { + nodeAndDefs[responseName] = []; + } + + nodeAndDefs[responseName].push([parentType, selection, fieldDef]); + break; + } + + case _kinds.Kind.FRAGMENT_SPREAD: + fragmentNames[selection.name.value] = true; + break; + + case _kinds.Kind.INLINE_FRAGMENT: { + const typeCondition = selection.typeCondition; + const inlineFragmentType = typeCondition + ? (0, _typeFromAST.typeFromAST)(context.getSchema(), typeCondition) + : parentType; + + _collectFieldsAndFragmentNames( + context, + inlineFragmentType, + selection.selectionSet, + nodeAndDefs, + fragmentNames, + ); + + break; + } + } + } +} // Given a series of Conflicts which occurred between two sub-fields, generate +// a single Conflict. + +function subfieldConflicts(conflicts, responseName, node1, node2) { + if (conflicts.length > 0) { + return [ + [responseName, conflicts.map(([reason]) => reason)], + [node1, ...conflicts.map(([, fields1]) => fields1).flat()], + [node2, ...conflicts.map(([, , fields2]) => fields2).flat()], + ]; + } +} +/** + * A way to keep track of pairs of things when the ordering of the pair does not matter. + */ + +class PairSet { + constructor() { + this._data = new Map(); + } + + has(a, b, areMutuallyExclusive) { + var _this$_data$get; + + const [key1, key2] = a < b ? [a, b] : [b, a]; + const result = + (_this$_data$get = this._data.get(key1)) === null || + _this$_data$get === void 0 + ? void 0 + : _this$_data$get.get(key2); + + if (result === undefined) { + return false; + } // areMutuallyExclusive being false is a superset of being true, hence if + // we want to know if this PairSet "has" these two with no exclusivity, + // we have to ensure it was added as such. + + return areMutuallyExclusive ? true : areMutuallyExclusive === result; + } + + add(a, b, areMutuallyExclusive) { + const [key1, key2] = a < b ? [a, b] : [b, a]; + + const map = this._data.get(key1); + + if (map === undefined) { + this._data.set(key1, new Map([[key2, areMutuallyExclusive]])); + } else { + map.set(key2, areMutuallyExclusive); + } + } +} + + +/***/ }), + +/***/ 5492: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.PossibleFragmentSpreadsRule = PossibleFragmentSpreadsRule; + +var _inspect = __nccwpck_require__(3707); + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +var _typeComparators = __nccwpck_require__(961); + +var _typeFromAST = __nccwpck_require__(2136); + +/** + * Possible fragment spread + * + * A fragment spread is only valid if the type condition could ever possibly + * be true: if there is a non-empty intersection of the possible parent types, + * and possible types which pass the type condition. + */ +function PossibleFragmentSpreadsRule(context) { + return { + InlineFragment(node) { + const fragType = context.getType(); + const parentType = context.getParentType(); + + if ( + (0, _definition.isCompositeType)(fragType) && + (0, _definition.isCompositeType)(parentType) && + !(0, _typeComparators.doTypesOverlap)( + context.getSchema(), + fragType, + parentType, + ) + ) { + const parentTypeStr = (0, _inspect.inspect)(parentType); + const fragTypeStr = (0, _inspect.inspect)(fragType); + context.reportError( + new _GraphQLError.GraphQLError( + `Fragment cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`, + { + nodes: node, + }, + ), + ); + } + }, + + FragmentSpread(node) { + const fragName = node.name.value; + const fragType = getFragmentType(context, fragName); + const parentType = context.getParentType(); + + if ( + fragType && + parentType && + !(0, _typeComparators.doTypesOverlap)( + context.getSchema(), + fragType, + parentType, + ) + ) { + const parentTypeStr = (0, _inspect.inspect)(parentType); + const fragTypeStr = (0, _inspect.inspect)(fragType); + context.reportError( + new _GraphQLError.GraphQLError( + `Fragment "${fragName}" cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`, + { + nodes: node, + }, + ), + ); + } + }, + }; +} + +function getFragmentType(context, name) { + const frag = context.getFragment(name); + + if (frag) { + const type = (0, _typeFromAST.typeFromAST)( + context.getSchema(), + frag.typeCondition, + ); + + if ((0, _definition.isCompositeType)(type)) { + return type; + } + } +} + + +/***/ }), + +/***/ 2300: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.PossibleTypeExtensionsRule = PossibleTypeExtensionsRule; + +var _didYouMean = __nccwpck_require__(1627); + +var _inspect = __nccwpck_require__(3707); + +var _invariant = __nccwpck_require__(9952); + +var _suggestionList = __nccwpck_require__(3046); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _predicates = __nccwpck_require__(418); + +var _definition = __nccwpck_require__(699); + +/** + * Possible type extension + * + * A type extension is only valid if the type is defined and has the same kind. + */ +function PossibleTypeExtensionsRule(context) { + const schema = context.getSchema(); + const definedTypes = Object.create(null); + + for (const def of context.getDocument().definitions) { + if ((0, _predicates.isTypeDefinitionNode)(def)) { + definedTypes[def.name.value] = def; + } + } + + return { + ScalarTypeExtension: checkExtension, + ObjectTypeExtension: checkExtension, + InterfaceTypeExtension: checkExtension, + UnionTypeExtension: checkExtension, + EnumTypeExtension: checkExtension, + InputObjectTypeExtension: checkExtension, + }; + + function checkExtension(node) { + const typeName = node.name.value; + const defNode = definedTypes[typeName]; + const existingType = + schema === null || schema === void 0 ? void 0 : schema.getType(typeName); + let expectedKind; + + if (defNode) { + expectedKind = defKindToExtKind[defNode.kind]; + } else if (existingType) { + expectedKind = typeToExtKind(existingType); + } + + if (expectedKind) { + if (expectedKind !== node.kind) { + const kindStr = extensionKindToTypeName(node.kind); + context.reportError( + new _GraphQLError.GraphQLError( + `Cannot extend non-${kindStr} type "${typeName}".`, + { + nodes: defNode ? [defNode, node] : node, + }, + ), + ); + } + } else { + const allTypeNames = Object.keys({ + ...definedTypes, + ...(schema === null || schema === void 0 + ? void 0 + : schema.getTypeMap()), + }); + const suggestedTypes = (0, _suggestionList.suggestionList)( + typeName, + allTypeNames, + ); + context.reportError( + new _GraphQLError.GraphQLError( + `Cannot extend type "${typeName}" because it is not defined.` + + (0, _didYouMean.didYouMean)(suggestedTypes), + { + nodes: node.name, + }, + ), + ); + } + } +} + +const defKindToExtKind = { + [_kinds.Kind.SCALAR_TYPE_DEFINITION]: _kinds.Kind.SCALAR_TYPE_EXTENSION, + [_kinds.Kind.OBJECT_TYPE_DEFINITION]: _kinds.Kind.OBJECT_TYPE_EXTENSION, + [_kinds.Kind.INTERFACE_TYPE_DEFINITION]: _kinds.Kind.INTERFACE_TYPE_EXTENSION, + [_kinds.Kind.UNION_TYPE_DEFINITION]: _kinds.Kind.UNION_TYPE_EXTENSION, + [_kinds.Kind.ENUM_TYPE_DEFINITION]: _kinds.Kind.ENUM_TYPE_EXTENSION, + [_kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION]: + _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION, +}; + +function typeToExtKind(type) { + if ((0, _definition.isScalarType)(type)) { + return _kinds.Kind.SCALAR_TYPE_EXTENSION; + } + + if ((0, _definition.isObjectType)(type)) { + return _kinds.Kind.OBJECT_TYPE_EXTENSION; + } + + if ((0, _definition.isInterfaceType)(type)) { + return _kinds.Kind.INTERFACE_TYPE_EXTENSION; + } + + if ((0, _definition.isUnionType)(type)) { + return _kinds.Kind.UNION_TYPE_EXTENSION; + } + + if ((0, _definition.isEnumType)(type)) { + return _kinds.Kind.ENUM_TYPE_EXTENSION; + } + + if ((0, _definition.isInputObjectType)(type)) { + return _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION; + } + /* c8 ignore next 3 */ + // Not reachable. All possible types have been considered + + false || + (0, _invariant.invariant)( + false, + 'Unexpected type: ' + (0, _inspect.inspect)(type), + ); +} + +function extensionKindToTypeName(kind) { + switch (kind) { + case _kinds.Kind.SCALAR_TYPE_EXTENSION: + return 'scalar'; + + case _kinds.Kind.OBJECT_TYPE_EXTENSION: + return 'object'; + + case _kinds.Kind.INTERFACE_TYPE_EXTENSION: + return 'interface'; + + case _kinds.Kind.UNION_TYPE_EXTENSION: + return 'union'; + + case _kinds.Kind.ENUM_TYPE_EXTENSION: + return 'enum'; + + case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION: + return 'input object'; + // Not reachable. All possible types have been considered + + /* c8 ignore next */ + + default: + false || + (0, _invariant.invariant)( + false, + 'Unexpected kind: ' + (0, _inspect.inspect)(kind), + ); + } +} + + +/***/ }), + +/***/ 6583: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.ProvidedRequiredArgumentsOnDirectivesRule = + ProvidedRequiredArgumentsOnDirectivesRule; +exports.ProvidedRequiredArgumentsRule = ProvidedRequiredArgumentsRule; + +var _inspect = __nccwpck_require__(3707); + +var _keyMap = __nccwpck_require__(1529); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +var _directives = __nccwpck_require__(2572); + +/** + * Provided required arguments + * + * A field or directive is only valid if all required (non-null without a + * default value) field arguments have been provided. + */ +function ProvidedRequiredArgumentsRule(context) { + return { + + ...ProvidedRequiredArgumentsOnDirectivesRule(context), + Field: { + // Validate on leave to allow for deeper errors to appear first. + leave(fieldNode) { + var _fieldNode$arguments; + + const fieldDef = context.getFieldDef(); + + if (!fieldDef) { + return false; + } + + const providedArgs = new Set( // FIXME: https://github.com/graphql/graphql-js/issues/2203 + /* c8 ignore next */ + (_fieldNode$arguments = fieldNode.arguments) === null || + _fieldNode$arguments === void 0 + ? void 0 + : _fieldNode$arguments.map((arg) => arg.name.value), + ); + + for (const argDef of fieldDef.args) { + if ( + !providedArgs.has(argDef.name) && + (0, _definition.isRequiredArgument)(argDef) + ) { + const argTypeStr = (0, _inspect.inspect)(argDef.type); + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${fieldDef.name}" argument "${argDef.name}" of type "${argTypeStr}" is required, but it was not provided.`, + { + nodes: fieldNode, + }, + ), + ); + } + } + }, + }, + }; +} +/** + * @internal + */ + +function ProvidedRequiredArgumentsOnDirectivesRule(context) { + var _schema$getDirectives; + + const requiredArgsMap = Object.create(null); + const schema = context.getSchema(); + const definedDirectives = + (_schema$getDirectives = + schema === null || schema === void 0 + ? void 0 + : schema.getDirectives()) !== null && _schema$getDirectives !== void 0 + ? _schema$getDirectives + : _directives.specifiedDirectives; + + for (const directive of definedDirectives) { + requiredArgsMap[directive.name] = (0, _keyMap.keyMap)( + directive.args.filter(_definition.isRequiredArgument), + (arg) => arg.name, + ); + } + + const astDefinitions = context.getDocument().definitions; + + for (const def of astDefinitions) { + if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { + var _def$arguments; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + const argNodes = + (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 + ? _def$arguments + : []; + requiredArgsMap[def.name.value] = (0, _keyMap.keyMap)( + argNodes.filter(isRequiredArgumentNode), + (arg) => arg.name.value, + ); + } + } + + return { + Directive: { + // Validate on leave to allow for deeper errors to appear first. + leave(directiveNode) { + const directiveName = directiveNode.name.value; + const requiredArgs = requiredArgsMap[directiveName]; + + if (requiredArgs) { + var _directiveNode$argume; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + const argNodes = + (_directiveNode$argume = directiveNode.arguments) !== null && + _directiveNode$argume !== void 0 + ? _directiveNode$argume + : []; + const argNodeMap = new Set(argNodes.map((arg) => arg.name.value)); + + for (const [argName, argDef] of Object.entries(requiredArgs)) { + if (!argNodeMap.has(argName)) { + const argType = (0, _definition.isType)(argDef.type) + ? (0, _inspect.inspect)(argDef.type) + : (0, _printer.print)(argDef.type); + context.reportError( + new _GraphQLError.GraphQLError( + `Directive "@${directiveName}" argument "${argName}" of type "${argType}" is required, but it was not provided.`, + { + nodes: directiveNode, + }, + ), + ); + } + } + } + }, + }, + }; +} + +function isRequiredArgumentNode(arg) { + return ( + arg.type.kind === _kinds.Kind.NON_NULL_TYPE && arg.defaultValue == null + ); +} + + +/***/ }), + +/***/ 424: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.ScalarLeafsRule = ScalarLeafsRule; + +var _inspect = __nccwpck_require__(3707); + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +/** + * Scalar leafs + * + * A GraphQL document is valid only if all leaf fields (fields without + * sub selections) are of scalar or enum types. + */ +function ScalarLeafsRule(context) { + return { + Field(node) { + const type = context.getType(); + const selectionSet = node.selectionSet; + + if (type) { + if ((0, _definition.isLeafType)((0, _definition.getNamedType)(type))) { + if (selectionSet) { + const fieldName = node.name.value; + const typeStr = (0, _inspect.inspect)(type); + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${fieldName}" must not have a selection since type "${typeStr}" has no subfields.`, + { + nodes: selectionSet, + }, + ), + ); + } + } else if (!selectionSet) { + const fieldName = node.name.value; + const typeStr = (0, _inspect.inspect)(type); + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${fieldName}" of type "${typeStr}" must have a selection of subfields. Did you mean "${fieldName} { ... }"?`, + { + nodes: node, + }, + ), + ); + } + } + }, + }; +} + + +/***/ }), + +/***/ 3999: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.SingleFieldSubscriptionsRule = SingleFieldSubscriptionsRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _collectFields = __nccwpck_require__(3685); + +/** + * Subscriptions must only include a non-introspection field. + * + * A GraphQL subscription is valid only if it contains a single root field and + * that root field is not an introspection field. + * + * See https://spec.graphql.org/draft/#sec-Single-root-field + */ +function SingleFieldSubscriptionsRule(context) { + return { + OperationDefinition(node) { + if (node.operation === 'subscription') { + const schema = context.getSchema(); + const subscriptionType = schema.getSubscriptionType(); + + if (subscriptionType) { + const operationName = node.name ? node.name.value : null; + const variableValues = Object.create(null); + const document = context.getDocument(); + const fragments = Object.create(null); + + for (const definition of document.definitions) { + if (definition.kind === _kinds.Kind.FRAGMENT_DEFINITION) { + fragments[definition.name.value] = definition; + } + } + + const fields = (0, _collectFields.collectFields)( + schema, + fragments, + variableValues, + subscriptionType, + node.selectionSet, + ); + + if (fields.size > 1) { + const fieldSelectionLists = [...fields.values()]; + const extraFieldSelectionLists = fieldSelectionLists.slice(1); + const extraFieldSelections = extraFieldSelectionLists.flat(); + context.reportError( + new _GraphQLError.GraphQLError( + operationName != null + ? `Subscription "${operationName}" must select only one top level field.` + : 'Anonymous Subscription must select only one top level field.', + { + nodes: extraFieldSelections, + }, + ), + ); + } + + for (const fieldNodes of fields.values()) { + const field = fieldNodes[0]; + const fieldName = field.name.value; + + if (fieldName.startsWith('__')) { + context.reportError( + new _GraphQLError.GraphQLError( + operationName != null + ? `Subscription "${operationName}" must not select an introspection top level field.` + : 'Anonymous Subscription must not select an introspection top level field.', + { + nodes: fieldNodes, + }, + ), + ); + } + } + } + } + }, + }; +} + + +/***/ }), + +/***/ 3986: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueArgumentDefinitionNamesRule = UniqueArgumentDefinitionNamesRule; + +var _groupBy = __nccwpck_require__(8982); + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique argument definition names + * + * A GraphQL Object or Interface type is only valid if all its fields have uniquely named arguments. + * A GraphQL Directive is only valid if all its arguments are uniquely named. + */ +function UniqueArgumentDefinitionNamesRule(context) { + return { + DirectiveDefinition(directiveNode) { + var _directiveNode$argume; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + const argumentNodes = + (_directiveNode$argume = directiveNode.arguments) !== null && + _directiveNode$argume !== void 0 + ? _directiveNode$argume + : []; + return checkArgUniqueness(`@${directiveNode.name.value}`, argumentNodes); + }, + + InterfaceTypeDefinition: checkArgUniquenessPerField, + InterfaceTypeExtension: checkArgUniquenessPerField, + ObjectTypeDefinition: checkArgUniquenessPerField, + ObjectTypeExtension: checkArgUniquenessPerField, + }; + + function checkArgUniquenessPerField(typeNode) { + var _typeNode$fields; + + const typeName = typeNode.name.value; // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + + const fieldNodes = + (_typeNode$fields = typeNode.fields) !== null && + _typeNode$fields !== void 0 + ? _typeNode$fields + : []; + + for (const fieldDef of fieldNodes) { + var _fieldDef$arguments; + + const fieldName = fieldDef.name.value; // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + + const argumentNodes = + (_fieldDef$arguments = fieldDef.arguments) !== null && + _fieldDef$arguments !== void 0 + ? _fieldDef$arguments + : []; + checkArgUniqueness(`${typeName}.${fieldName}`, argumentNodes); + } + + return false; + } + + function checkArgUniqueness(parentName, argumentNodes) { + const seenArgs = (0, _groupBy.groupBy)( + argumentNodes, + (arg) => arg.name.value, + ); + + for (const [argName, argNodes] of seenArgs) { + if (argNodes.length > 1) { + context.reportError( + new _GraphQLError.GraphQLError( + `Argument "${parentName}(${argName}:)" can only be defined once.`, + { + nodes: argNodes.map((node) => node.name), + }, + ), + ); + } + } + + return false; + } +} + + +/***/ }), + +/***/ 4069: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueArgumentNamesRule = UniqueArgumentNamesRule; + +var _groupBy = __nccwpck_require__(8982); + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique argument names + * + * A GraphQL field or directive is only valid if all supplied arguments are + * uniquely named. + * + * See https://spec.graphql.org/draft/#sec-Argument-Names + */ +function UniqueArgumentNamesRule(context) { + return { + Field: checkArgUniqueness, + Directive: checkArgUniqueness, + }; + + function checkArgUniqueness(parentNode) { + var _parentNode$arguments; + + // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + const argumentNodes = + (_parentNode$arguments = parentNode.arguments) !== null && + _parentNode$arguments !== void 0 + ? _parentNode$arguments + : []; + const seenArgs = (0, _groupBy.groupBy)( + argumentNodes, + (arg) => arg.name.value, + ); + + for (const [argName, argNodes] of seenArgs) { + if (argNodes.length > 1) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one argument named "${argName}".`, + { + nodes: argNodes.map((node) => node.name), + }, + ), + ); + } + } + } +} + + +/***/ }), + +/***/ 9941: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueDirectiveNamesRule = UniqueDirectiveNamesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique directive names + * + * A GraphQL document is only valid if all defined directives have unique names. + */ +function UniqueDirectiveNamesRule(context) { + const knownDirectiveNames = Object.create(null); + const schema = context.getSchema(); + return { + DirectiveDefinition(node) { + const directiveName = node.name.value; + + if ( + schema !== null && + schema !== void 0 && + schema.getDirective(directiveName) + ) { + context.reportError( + new _GraphQLError.GraphQLError( + `Directive "@${directiveName}" already exists in the schema. It cannot be redefined.`, + { + nodes: node.name, + }, + ), + ); + return; + } + + if (knownDirectiveNames[directiveName]) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one directive named "@${directiveName}".`, + { + nodes: [knownDirectiveNames[directiveName], node.name], + }, + ), + ); + } else { + knownDirectiveNames[directiveName] = node.name; + } + + return false; + }, + }; +} + + +/***/ }), + +/***/ 2729: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueDirectivesPerLocationRule = UniqueDirectivesPerLocationRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _predicates = __nccwpck_require__(418); + +var _directives = __nccwpck_require__(2572); + +/** + * Unique directive names per location + * + * A GraphQL document is only valid if all non-repeatable directives at + * a given location are uniquely named. + * + * See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location + */ +function UniqueDirectivesPerLocationRule(context) { + const uniqueDirectiveMap = Object.create(null); + const schema = context.getSchema(); + const definedDirectives = schema + ? schema.getDirectives() + : _directives.specifiedDirectives; + + for (const directive of definedDirectives) { + uniqueDirectiveMap[directive.name] = !directive.isRepeatable; + } + + const astDefinitions = context.getDocument().definitions; + + for (const def of astDefinitions) { + if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { + uniqueDirectiveMap[def.name.value] = !def.repeatable; + } + } + + const schemaDirectives = Object.create(null); + const typeDirectivesMap = Object.create(null); + return { + // Many different AST nodes may contain directives. Rather than listing + // them all, just listen for entering any node, and check to see if it + // defines any directives. + enter(node) { + if (!('directives' in node) || !node.directives) { + return; + } + + let seenDirectives; + + if ( + node.kind === _kinds.Kind.SCHEMA_DEFINITION || + node.kind === _kinds.Kind.SCHEMA_EXTENSION + ) { + seenDirectives = schemaDirectives; + } else if ( + (0, _predicates.isTypeDefinitionNode)(node) || + (0, _predicates.isTypeExtensionNode)(node) + ) { + const typeName = node.name.value; + seenDirectives = typeDirectivesMap[typeName]; + + if (seenDirectives === undefined) { + typeDirectivesMap[typeName] = seenDirectives = Object.create(null); + } + } else { + seenDirectives = Object.create(null); + } + + for (const directive of node.directives) { + const directiveName = directive.name.value; + + if (uniqueDirectiveMap[directiveName]) { + if (seenDirectives[directiveName]) { + context.reportError( + new _GraphQLError.GraphQLError( + `The directive "@${directiveName}" can only be used once at this location.`, + { + nodes: [seenDirectives[directiveName], directive], + }, + ), + ); + } else { + seenDirectives[directiveName] = directive; + } + } + } + }, + }; +} + + +/***/ }), + +/***/ 1200: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueEnumValueNamesRule = UniqueEnumValueNamesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +/** + * Unique enum value names + * + * A GraphQL enum type is only valid if all its values are uniquely named. + */ +function UniqueEnumValueNamesRule(context) { + const schema = context.getSchema(); + const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null); + const knownValueNames = Object.create(null); + return { + EnumTypeDefinition: checkValueUniqueness, + EnumTypeExtension: checkValueUniqueness, + }; + + function checkValueUniqueness(node) { + var _node$values; + + const typeName = node.name.value; + + if (!knownValueNames[typeName]) { + knownValueNames[typeName] = Object.create(null); + } // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + + const valueNodes = + (_node$values = node.values) !== null && _node$values !== void 0 + ? _node$values + : []; + const valueNames = knownValueNames[typeName]; + + for (const valueDef of valueNodes) { + const valueName = valueDef.name.value; + const existingType = existingTypeMap[typeName]; + + if ( + (0, _definition.isEnumType)(existingType) && + existingType.getValue(valueName) + ) { + context.reportError( + new _GraphQLError.GraphQLError( + `Enum value "${typeName}.${valueName}" already exists in the schema. It cannot also be defined in this type extension.`, + { + nodes: valueDef.name, + }, + ), + ); + } else if (valueNames[valueName]) { + context.reportError( + new _GraphQLError.GraphQLError( + `Enum value "${typeName}.${valueName}" can only be defined once.`, + { + nodes: [valueNames[valueName], valueDef.name], + }, + ), + ); + } else { + valueNames[valueName] = valueDef.name; + } + } + + return false; + } +} + + +/***/ }), + +/***/ 5933: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueFieldDefinitionNamesRule = UniqueFieldDefinitionNamesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +/** + * Unique field definition names + * + * A GraphQL complex type is only valid if all its fields are uniquely named. + */ +function UniqueFieldDefinitionNamesRule(context) { + const schema = context.getSchema(); + const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null); + const knownFieldNames = Object.create(null); + return { + InputObjectTypeDefinition: checkFieldUniqueness, + InputObjectTypeExtension: checkFieldUniqueness, + InterfaceTypeDefinition: checkFieldUniqueness, + InterfaceTypeExtension: checkFieldUniqueness, + ObjectTypeDefinition: checkFieldUniqueness, + ObjectTypeExtension: checkFieldUniqueness, + }; + + function checkFieldUniqueness(node) { + var _node$fields; + + const typeName = node.name.value; + + if (!knownFieldNames[typeName]) { + knownFieldNames[typeName] = Object.create(null); + } // FIXME: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + + const fieldNodes = + (_node$fields = node.fields) !== null && _node$fields !== void 0 + ? _node$fields + : []; + const fieldNames = knownFieldNames[typeName]; + + for (const fieldDef of fieldNodes) { + const fieldName = fieldDef.name.value; + + if (hasField(existingTypeMap[typeName], fieldName)) { + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${typeName}.${fieldName}" already exists in the schema. It cannot also be defined in this type extension.`, + { + nodes: fieldDef.name, + }, + ), + ); + } else if (fieldNames[fieldName]) { + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${typeName}.${fieldName}" can only be defined once.`, + { + nodes: [fieldNames[fieldName], fieldDef.name], + }, + ), + ); + } else { + fieldNames[fieldName] = fieldDef.name; + } + } + + return false; + } +} + +function hasField(type, fieldName) { + if ( + (0, _definition.isObjectType)(type) || + (0, _definition.isInterfaceType)(type) || + (0, _definition.isInputObjectType)(type) + ) { + return type.getFields()[fieldName] != null; + } + + return false; +} + + +/***/ }), + +/***/ 96: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueFragmentNamesRule = UniqueFragmentNamesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique fragment names + * + * A GraphQL document is only valid if all defined fragments have unique names. + * + * See https://spec.graphql.org/draft/#sec-Fragment-Name-Uniqueness + */ +function UniqueFragmentNamesRule(context) { + const knownFragmentNames = Object.create(null); + return { + OperationDefinition: () => false, + + FragmentDefinition(node) { + const fragmentName = node.name.value; + + if (knownFragmentNames[fragmentName]) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one fragment named "${fragmentName}".`, + { + nodes: [knownFragmentNames[fragmentName], node.name], + }, + ), + ); + } else { + knownFragmentNames[fragmentName] = node.name; + } + + return false; + }, + }; +} + + +/***/ }), + +/***/ 920: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueInputFieldNamesRule = UniqueInputFieldNamesRule; + +var _invariant = __nccwpck_require__(9952); + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique input field names + * + * A GraphQL input object value is only valid if all supplied fields are + * uniquely named. + * + * See https://spec.graphql.org/draft/#sec-Input-Object-Field-Uniqueness + */ +function UniqueInputFieldNamesRule(context) { + const knownNameStack = []; + let knownNames = Object.create(null); + return { + ObjectValue: { + enter() { + knownNameStack.push(knownNames); + knownNames = Object.create(null); + }, + + leave() { + const prevKnownNames = knownNameStack.pop(); + prevKnownNames || (0, _invariant.invariant)(false); + knownNames = prevKnownNames; + }, + }, + + ObjectField(node) { + const fieldName = node.name.value; + + if (knownNames[fieldName]) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one input field named "${fieldName}".`, + { + nodes: [knownNames[fieldName], node.name], + }, + ), + ); + } else { + knownNames[fieldName] = node.name; + } + }, + }; +} + + +/***/ }), + +/***/ 3093: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueOperationNamesRule = UniqueOperationNamesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique operation names + * + * A GraphQL document is only valid if all defined operations have unique names. + * + * See https://spec.graphql.org/draft/#sec-Operation-Name-Uniqueness + */ +function UniqueOperationNamesRule(context) { + const knownOperationNames = Object.create(null); + return { + OperationDefinition(node) { + const operationName = node.name; + + if (operationName) { + if (knownOperationNames[operationName.value]) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one operation named "${operationName.value}".`, + { + nodes: [ + knownOperationNames[operationName.value], + operationName, + ], + }, + ), + ); + } else { + knownOperationNames[operationName.value] = operationName; + } + } + + return false; + }, + + FragmentDefinition: () => false, + }; +} + + +/***/ }), + +/***/ 5312: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueOperationTypesRule = UniqueOperationTypesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique operation types + * + * A GraphQL document is only valid if it has only one type per operation. + */ +function UniqueOperationTypesRule(context) { + const schema = context.getSchema(); + const definedOperationTypes = Object.create(null); + const existingOperationTypes = schema + ? { + query: schema.getQueryType(), + mutation: schema.getMutationType(), + subscription: schema.getSubscriptionType(), + } + : {}; + return { + SchemaDefinition: checkOperationTypes, + SchemaExtension: checkOperationTypes, + }; + + function checkOperationTypes(node) { + var _node$operationTypes; + + // See: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + const operationTypesNodes = + (_node$operationTypes = node.operationTypes) !== null && + _node$operationTypes !== void 0 + ? _node$operationTypes + : []; + + for (const operationType of operationTypesNodes) { + const operation = operationType.operation; + const alreadyDefinedOperationType = definedOperationTypes[operation]; + + if (existingOperationTypes[operation]) { + context.reportError( + new _GraphQLError.GraphQLError( + `Type for ${operation} already defined in the schema. It cannot be redefined.`, + { + nodes: operationType, + }, + ), + ); + } else if (alreadyDefinedOperationType) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one ${operation} type in schema.`, + { + nodes: [alreadyDefinedOperationType, operationType], + }, + ), + ); + } else { + definedOperationTypes[operation] = operationType; + } + } + + return false; + } +} + + +/***/ }), + +/***/ 3672: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueTypeNamesRule = UniqueTypeNamesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique type names + * + * A GraphQL document is only valid if all defined types have unique names. + */ +function UniqueTypeNamesRule(context) { + const knownTypeNames = Object.create(null); + const schema = context.getSchema(); + return { + ScalarTypeDefinition: checkTypeName, + ObjectTypeDefinition: checkTypeName, + InterfaceTypeDefinition: checkTypeName, + UnionTypeDefinition: checkTypeName, + EnumTypeDefinition: checkTypeName, + InputObjectTypeDefinition: checkTypeName, + }; + + function checkTypeName(node) { + const typeName = node.name.value; + + if (schema !== null && schema !== void 0 && schema.getType(typeName)) { + context.reportError( + new _GraphQLError.GraphQLError( + `Type "${typeName}" already exists in the schema. It cannot also be defined in this type definition.`, + { + nodes: node.name, + }, + ), + ); + return; + } + + if (knownTypeNames[typeName]) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one type named "${typeName}".`, + { + nodes: [knownTypeNames[typeName], node.name], + }, + ), + ); + } else { + knownTypeNames[typeName] = node.name; + } + + return false; + } +} + + +/***/ }), + +/***/ 5820: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.UniqueVariableNamesRule = UniqueVariableNamesRule; + +var _groupBy = __nccwpck_require__(8982); + +var _GraphQLError = __nccwpck_require__(1753); + +/** + * Unique variable names + * + * A GraphQL operation is only valid if all its variables are uniquely named. + */ +function UniqueVariableNamesRule(context) { + return { + OperationDefinition(operationNode) { + var _operationNode$variab; + + // See: https://github.com/graphql/graphql-js/issues/2203 + + /* c8 ignore next */ + const variableDefinitions = + (_operationNode$variab = operationNode.variableDefinitions) !== null && + _operationNode$variab !== void 0 + ? _operationNode$variab + : []; + const seenVariableDefinitions = (0, _groupBy.groupBy)( + variableDefinitions, + (node) => node.variable.name.value, + ); + + for (const [variableName, variableNodes] of seenVariableDefinitions) { + if (variableNodes.length > 1) { + context.reportError( + new _GraphQLError.GraphQLError( + `There can be only one variable named "$${variableName}".`, + { + nodes: variableNodes.map((node) => node.variable.name), + }, + ), + ); + } + } + }, + }; +} + + +/***/ }), + +/***/ 3790: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.ValuesOfCorrectTypeRule = ValuesOfCorrectTypeRule; + +var _didYouMean = __nccwpck_require__(1627); + +var _inspect = __nccwpck_require__(3707); + +var _keyMap = __nccwpck_require__(1529); + +var _suggestionList = __nccwpck_require__(3046); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +/** + * Value literals of correct type + * + * A GraphQL document is only valid if all value literals are of the type + * expected at their position. + * + * See https://spec.graphql.org/draft/#sec-Values-of-Correct-Type + */ +function ValuesOfCorrectTypeRule(context) { + let variableDefinitions = {}; + return { + OperationDefinition: { + enter() { + variableDefinitions = {}; + }, + }, + + VariableDefinition(definition) { + variableDefinitions[definition.variable.name.value] = definition; + }, + + ListValue(node) { + // Note: TypeInfo will traverse into a list's item type, so look to the + // parent input type to check if it is a list. + const type = (0, _definition.getNullableType)( + context.getParentInputType(), + ); + + if (!(0, _definition.isListType)(type)) { + isValidValueNode(context, node); + return false; // Don't traverse further. + } + }, + + ObjectValue(node) { + const type = (0, _definition.getNamedType)(context.getInputType()); + + if (!(0, _definition.isInputObjectType)(type)) { + isValidValueNode(context, node); + return false; // Don't traverse further. + } // Ensure every required field exists. + + const fieldNodeMap = (0, _keyMap.keyMap)( + node.fields, + (field) => field.name.value, + ); + + for (const fieldDef of Object.values(type.getFields())) { + const fieldNode = fieldNodeMap[fieldDef.name]; + + if (!fieldNode && (0, _definition.isRequiredInputField)(fieldDef)) { + const typeStr = (0, _inspect.inspect)(fieldDef.type); + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${type.name}.${fieldDef.name}" of required type "${typeStr}" was not provided.`, + { + nodes: node, + }, + ), + ); + } + } + + if (type.isOneOf) { + validateOneOfInputObject( + context, + node, + type, + fieldNodeMap, + variableDefinitions, + ); + } + }, + + ObjectField(node) { + const parentType = (0, _definition.getNamedType)( + context.getParentInputType(), + ); + const fieldType = context.getInputType(); + + if (!fieldType && (0, _definition.isInputObjectType)(parentType)) { + const suggestions = (0, _suggestionList.suggestionList)( + node.name.value, + Object.keys(parentType.getFields()), + ); + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${node.name.value}" is not defined by type "${parentType.name}".` + + (0, _didYouMean.didYouMean)(suggestions), + { + nodes: node, + }, + ), + ); + } + }, + + NullValue(node) { + const type = context.getInputType(); + + if ((0, _definition.isNonNullType)(type)) { + context.reportError( + new _GraphQLError.GraphQLError( + `Expected value of type "${(0, _inspect.inspect)( + type, + )}", found ${(0, _printer.print)(node)}.`, + { + nodes: node, + }, + ), + ); + } + }, + + EnumValue: (node) => isValidValueNode(context, node), + IntValue: (node) => isValidValueNode(context, node), + FloatValue: (node) => isValidValueNode(context, node), + StringValue: (node) => isValidValueNode(context, node), + BooleanValue: (node) => isValidValueNode(context, node), + }; +} +/** + * Any value literal may be a valid representation of a Scalar, depending on + * that scalar type. + */ + +function isValidValueNode(context, node) { + // Report any error at the full type expected by the location. + const locationType = context.getInputType(); + + if (!locationType) { + return; + } + + const type = (0, _definition.getNamedType)(locationType); + + if (!(0, _definition.isLeafType)(type)) { + const typeStr = (0, _inspect.inspect)(locationType); + context.reportError( + new _GraphQLError.GraphQLError( + `Expected value of type "${typeStr}", found ${(0, _printer.print)( + node, + )}.`, + { + nodes: node, + }, + ), + ); + return; + } // Scalars and Enums determine if a literal value is valid via parseLiteral(), + // which may throw or return an invalid value to indicate failure. + + try { + const parseResult = type.parseLiteral( + node, + undefined, + /* variables */ + ); + + if (parseResult === undefined) { + const typeStr = (0, _inspect.inspect)(locationType); + context.reportError( + new _GraphQLError.GraphQLError( + `Expected value of type "${typeStr}", found ${(0, _printer.print)( + node, + )}.`, + { + nodes: node, + }, + ), + ); + } + } catch (error) { + const typeStr = (0, _inspect.inspect)(locationType); + + if (error instanceof _GraphQLError.GraphQLError) { + context.reportError(error); + } else { + context.reportError( + new _GraphQLError.GraphQLError( + `Expected value of type "${typeStr}", found ${(0, _printer.print)( + node, + )}; ` + error.message, + { + nodes: node, + originalError: error, + }, + ), + ); + } + } +} + +function validateOneOfInputObject( + context, + node, + type, + fieldNodeMap, + variableDefinitions, +) { + var _fieldNodeMap$keys$; + + const keys = Object.keys(fieldNodeMap); + const isNotExactlyOneField = keys.length !== 1; + + if (isNotExactlyOneField) { + context.reportError( + new _GraphQLError.GraphQLError( + `OneOf Input Object "${type.name}" must specify exactly one key.`, + { + nodes: [node], + }, + ), + ); + return; + } + + const value = + (_fieldNodeMap$keys$ = fieldNodeMap[keys[0]]) === null || + _fieldNodeMap$keys$ === void 0 + ? void 0 + : _fieldNodeMap$keys$.value; + const isNullLiteral = !value || value.kind === _kinds.Kind.NULL; + const isVariable = + (value === null || value === void 0 ? void 0 : value.kind) === + _kinds.Kind.VARIABLE; + + if (isNullLiteral) { + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${type.name}.${keys[0]}" must be non-null.`, + { + nodes: [node], + }, + ), + ); + return; + } + + if (isVariable) { + const variableName = value.name.value; + const definition = variableDefinitions[variableName]; + const isNullableVariable = + definition.type.kind !== _kinds.Kind.NON_NULL_TYPE; + + if (isNullableVariable) { + context.reportError( + new _GraphQLError.GraphQLError( + `Variable "${variableName}" must be non-nullable to be used for OneOf Input Object "${type.name}".`, + { + nodes: [node], + }, + ), + ); + } + } +} + + +/***/ }), + +/***/ 5309: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.VariablesAreInputTypesRule = VariablesAreInputTypesRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _printer = __nccwpck_require__(4758); + +var _definition = __nccwpck_require__(699); + +var _typeFromAST = __nccwpck_require__(2136); + +/** + * Variables are input types + * + * A GraphQL operation is only valid if all the variables it defines are of + * input types (scalar, enum, or input object). + * + * See https://spec.graphql.org/draft/#sec-Variables-Are-Input-Types + */ +function VariablesAreInputTypesRule(context) { + return { + VariableDefinition(node) { + const type = (0, _typeFromAST.typeFromAST)( + context.getSchema(), + node.type, + ); + + if (type !== undefined && !(0, _definition.isInputType)(type)) { + const variableName = node.variable.name.value; + const typeName = (0, _printer.print)(node.type); + context.reportError( + new _GraphQLError.GraphQLError( + `Variable "$${variableName}" cannot be non-input type "${typeName}".`, + { + nodes: node.type, + }, + ), + ); + } + }, + }; +} + + +/***/ }), + +/***/ 6316: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.VariablesInAllowedPositionRule = VariablesInAllowedPositionRule; + +var _inspect = __nccwpck_require__(3707); + +var _GraphQLError = __nccwpck_require__(1753); + +var _kinds = __nccwpck_require__(2881); + +var _definition = __nccwpck_require__(699); + +var _typeComparators = __nccwpck_require__(961); + +var _typeFromAST = __nccwpck_require__(2136); + +/** + * Variables in allowed position + * + * Variable usages must be compatible with the arguments they are passed to. + * + * See https://spec.graphql.org/draft/#sec-All-Variable-Usages-are-Allowed + */ +function VariablesInAllowedPositionRule(context) { + let varDefMap = Object.create(null); + return { + OperationDefinition: { + enter() { + varDefMap = Object.create(null); + }, + + leave(operation) { + const usages = context.getRecursiveVariableUsages(operation); + + for (const { node, type, defaultValue } of usages) { + const varName = node.name.value; + const varDef = varDefMap[varName]; + + if (varDef && type) { + // A var type is allowed if it is the same or more strict (e.g. is + // a subtype of) than the expected type. It can be more strict if + // the variable type is non-null when the expected type is nullable. + // If both are list types, the variable item type can be more strict + // than the expected item type (contravariant). + const schema = context.getSchema(); + const varType = (0, _typeFromAST.typeFromAST)(schema, varDef.type); + + if ( + varType && + !allowedVariableUsage( + schema, + varType, + varDef.defaultValue, + type, + defaultValue, + ) + ) { + const varTypeStr = (0, _inspect.inspect)(varType); + const typeStr = (0, _inspect.inspect)(type); + context.reportError( + new _GraphQLError.GraphQLError( + `Variable "$${varName}" of type "${varTypeStr}" used in position expecting type "${typeStr}".`, + { + nodes: [varDef, node], + }, + ), + ); + } + } + } + }, + }, + + VariableDefinition(node) { + varDefMap[node.variable.name.value] = node; + }, + }; +} +/** + * Returns true if the variable is allowed in the location it was found, + * which includes considering if default values exist for either the variable + * or the location at which it is located. + */ + +function allowedVariableUsage( + schema, + varType, + varDefaultValue, + locationType, + locationDefaultValue, +) { + if ( + (0, _definition.isNonNullType)(locationType) && + !(0, _definition.isNonNullType)(varType) + ) { + const hasNonNullVariableDefaultValue = + varDefaultValue != null && varDefaultValue.kind !== _kinds.Kind.NULL; + const hasLocationDefaultValue = locationDefaultValue !== undefined; + + if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) { + return false; + } + + const nullableLocationType = locationType.ofType; + return (0, _typeComparators.isTypeSubTypeOf)( + schema, + varType, + nullableLocationType, + ); + } + + return (0, _typeComparators.isTypeSubTypeOf)(schema, varType, locationType); +} + + +/***/ }), + +/***/ 1044: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.NoDeprecatedCustomRule = NoDeprecatedCustomRule; + +var _invariant = __nccwpck_require__(9952); + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +/** + * No deprecated + * + * A GraphQL document is only valid if all selected fields and all used enum values have not been + * deprecated. + * + * Note: This rule is optional and is not part of the Validation section of the GraphQL + * Specification. The main purpose of this rule is detection of deprecated usages and not + * necessarily to forbid their use when querying a service. + */ +function NoDeprecatedCustomRule(context) { + return { + Field(node) { + const fieldDef = context.getFieldDef(); + const deprecationReason = + fieldDef === null || fieldDef === void 0 + ? void 0 + : fieldDef.deprecationReason; + + if (fieldDef && deprecationReason != null) { + const parentType = context.getParentType(); + parentType != null || (0, _invariant.invariant)(false); + context.reportError( + new _GraphQLError.GraphQLError( + `The field ${parentType.name}.${fieldDef.name} is deprecated. ${deprecationReason}`, + { + nodes: node, + }, + ), + ); + } + }, + + Argument(node) { + const argDef = context.getArgument(); + const deprecationReason = + argDef === null || argDef === void 0 + ? void 0 + : argDef.deprecationReason; + + if (argDef && deprecationReason != null) { + const directiveDef = context.getDirective(); + + if (directiveDef != null) { + context.reportError( + new _GraphQLError.GraphQLError( + `Directive "@${directiveDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`, + { + nodes: node, + }, + ), + ); + } else { + const parentType = context.getParentType(); + const fieldDef = context.getFieldDef(); + (parentType != null && fieldDef != null) || + (0, _invariant.invariant)(false); + context.reportError( + new _GraphQLError.GraphQLError( + `Field "${parentType.name}.${fieldDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`, + { + nodes: node, + }, + ), + ); + } + } + }, + + ObjectField(node) { + const inputObjectDef = (0, _definition.getNamedType)( + context.getParentInputType(), + ); + + if ((0, _definition.isInputObjectType)(inputObjectDef)) { + const inputFieldDef = inputObjectDef.getFields()[node.name.value]; + const deprecationReason = + inputFieldDef === null || inputFieldDef === void 0 + ? void 0 + : inputFieldDef.deprecationReason; + + if (deprecationReason != null) { + context.reportError( + new _GraphQLError.GraphQLError( + `The input field ${inputObjectDef.name}.${inputFieldDef.name} is deprecated. ${deprecationReason}`, + { + nodes: node, + }, + ), + ); + } + } + }, + + EnumValue(node) { + const enumValueDef = context.getEnumValue(); + const deprecationReason = + enumValueDef === null || enumValueDef === void 0 + ? void 0 + : enumValueDef.deprecationReason; + + if (enumValueDef && deprecationReason != null) { + const enumTypeDef = (0, _definition.getNamedType)( + context.getInputType(), + ); + enumTypeDef != null || (0, _invariant.invariant)(false); + context.reportError( + new _GraphQLError.GraphQLError( + `The enum value "${enumTypeDef.name}.${enumValueDef.name}" is deprecated. ${deprecationReason}`, + { + nodes: node, + }, + ), + ); + } + }, + }; +} + + +/***/ }), + +/***/ 3473: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.NoSchemaIntrospectionCustomRule = NoSchemaIntrospectionCustomRule; + +var _GraphQLError = __nccwpck_require__(1753); + +var _definition = __nccwpck_require__(699); + +var _introspection = __nccwpck_require__(2239); + +/** + * Prohibit introspection queries + * + * A GraphQL document is only valid if all fields selected are not fields that + * return an introspection type. + * + * Note: This rule is optional and is not part of the Validation section of the + * GraphQL Specification. This rule effectively disables introspection, which + * does not reflect best practices and should only be done if absolutely necessary. + */ +function NoSchemaIntrospectionCustomRule(context) { + return { + Field(node) { + const type = (0, _definition.getNamedType)(context.getType()); + + if (type && (0, _introspection.isIntrospectionType)(type)) { + context.reportError( + new _GraphQLError.GraphQLError( + `GraphQL introspection has been disabled, but the requested query contained the field "${node.name.value}".`, + { + nodes: node, + }, + ), + ); + } + }, + }; +} + + +/***/ }), + +/***/ 1598: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.specifiedSDLRules = + exports.specifiedRules = + exports.recommendedRules = + void 0; + +var _ExecutableDefinitionsRule = __nccwpck_require__(7135); + +var _FieldsOnCorrectTypeRule = __nccwpck_require__(9831); + +var _FragmentsOnCompositeTypesRule = __nccwpck_require__(2021); + +var _KnownArgumentNamesRule = __nccwpck_require__(4813); + +var _KnownDirectivesRule = __nccwpck_require__(6944); + +var _KnownFragmentNamesRule = __nccwpck_require__(7496); + +var _KnownTypeNamesRule = __nccwpck_require__(2864); + +var _LoneAnonymousOperationRule = __nccwpck_require__(5263); + +var _LoneSchemaDefinitionRule = __nccwpck_require__(1591); + +var _MaxIntrospectionDepthRule = __nccwpck_require__(9603); + +var _NoFragmentCyclesRule = __nccwpck_require__(4997); + +var _NoUndefinedVariablesRule = __nccwpck_require__(7107); + +var _NoUnusedFragmentsRule = __nccwpck_require__(3275); + +var _NoUnusedVariablesRule = __nccwpck_require__(4587); + +var _OverlappingFieldsCanBeMergedRule = __nccwpck_require__(1988); + +var _PossibleFragmentSpreadsRule = __nccwpck_require__(5492); + +var _PossibleTypeExtensionsRule = __nccwpck_require__(2300); + +var _ProvidedRequiredArgumentsRule = __nccwpck_require__(6583); + +var _ScalarLeafsRule = __nccwpck_require__(424); + +var _SingleFieldSubscriptionsRule = __nccwpck_require__(3999); + +var _UniqueArgumentDefinitionNamesRule = __nccwpck_require__(3986); + +var _UniqueArgumentNamesRule = __nccwpck_require__(4069); + +var _UniqueDirectiveNamesRule = __nccwpck_require__(9941); + +var _UniqueDirectivesPerLocationRule = __nccwpck_require__(2729); + +var _UniqueEnumValueNamesRule = __nccwpck_require__(1200); + +var _UniqueFieldDefinitionNamesRule = __nccwpck_require__(5933); + +var _UniqueFragmentNamesRule = __nccwpck_require__(96); + +var _UniqueInputFieldNamesRule = __nccwpck_require__(920); + +var _UniqueOperationNamesRule = __nccwpck_require__(3093); + +var _UniqueOperationTypesRule = __nccwpck_require__(5312); + +var _UniqueTypeNamesRule = __nccwpck_require__(3672); + +var _UniqueVariableNamesRule = __nccwpck_require__(5820); + +var _ValuesOfCorrectTypeRule = __nccwpck_require__(3790); + +var _VariablesAreInputTypesRule = __nccwpck_require__(5309); + +var _VariablesInAllowedPositionRule = __nccwpck_require__(6316); + +// Spec Section: "Executable Definitions" +// Spec Section: "Field Selections on Objects, Interfaces, and Unions Types" +// Spec Section: "Fragments on Composite Types" +// Spec Section: "Argument Names" +// Spec Section: "Directives Are Defined" +// Spec Section: "Fragment spread target defined" +// Spec Section: "Fragment Spread Type Existence" +// Spec Section: "Lone Anonymous Operation" +// SDL-specific validation rules +// TODO: Spec Section +// Spec Section: "Fragments must not form cycles" +// Spec Section: "All Variable Used Defined" +// Spec Section: "Fragments must be used" +// Spec Section: "All Variables Used" +// Spec Section: "Field Selection Merging" +// Spec Section: "Fragment spread is possible" +// Spec Section: "Argument Optionality" +// Spec Section: "Leaf Field Selections" +// Spec Section: "Subscriptions with Single Root Field" +// Spec Section: "Argument Uniqueness" +// Spec Section: "Directives Are Unique Per Location" +// Spec Section: "Fragment Name Uniqueness" +// Spec Section: "Input Object Field Uniqueness" +// Spec Section: "Operation Name Uniqueness" +// Spec Section: "Variable Uniqueness" +// Spec Section: "Value Type Correctness" +// Spec Section: "Variables are Input Types" +// Spec Section: "All Variable Usages Are Allowed" + +/** + * Technically these aren't part of the spec but they are strongly encouraged + * validation rules. + */ +const recommendedRules = Object.freeze([ + _MaxIntrospectionDepthRule.MaxIntrospectionDepthRule, +]); +/** + * This set includes all validation rules defined by the GraphQL spec. + * + * The order of the rules in this list has been adjusted to lead to the + * most clear output when encountering multiple validation errors. + */ + +exports.recommendedRules = recommendedRules; +const specifiedRules = Object.freeze([ + _ExecutableDefinitionsRule.ExecutableDefinitionsRule, + _UniqueOperationNamesRule.UniqueOperationNamesRule, + _LoneAnonymousOperationRule.LoneAnonymousOperationRule, + _SingleFieldSubscriptionsRule.SingleFieldSubscriptionsRule, + _KnownTypeNamesRule.KnownTypeNamesRule, + _FragmentsOnCompositeTypesRule.FragmentsOnCompositeTypesRule, + _VariablesAreInputTypesRule.VariablesAreInputTypesRule, + _ScalarLeafsRule.ScalarLeafsRule, + _FieldsOnCorrectTypeRule.FieldsOnCorrectTypeRule, + _UniqueFragmentNamesRule.UniqueFragmentNamesRule, + _KnownFragmentNamesRule.KnownFragmentNamesRule, + _NoUnusedFragmentsRule.NoUnusedFragmentsRule, + _PossibleFragmentSpreadsRule.PossibleFragmentSpreadsRule, + _NoFragmentCyclesRule.NoFragmentCyclesRule, + _UniqueVariableNamesRule.UniqueVariableNamesRule, + _NoUndefinedVariablesRule.NoUndefinedVariablesRule, + _NoUnusedVariablesRule.NoUnusedVariablesRule, + _KnownDirectivesRule.KnownDirectivesRule, + _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule, + _KnownArgumentNamesRule.KnownArgumentNamesRule, + _UniqueArgumentNamesRule.UniqueArgumentNamesRule, + _ValuesOfCorrectTypeRule.ValuesOfCorrectTypeRule, + _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsRule, + _VariablesInAllowedPositionRule.VariablesInAllowedPositionRule, + _OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule, + _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule, + ...recommendedRules, +]); +/** + * @internal + */ + +exports.specifiedRules = specifiedRules; +const specifiedSDLRules = Object.freeze([ + _LoneSchemaDefinitionRule.LoneSchemaDefinitionRule, + _UniqueOperationTypesRule.UniqueOperationTypesRule, + _UniqueTypeNamesRule.UniqueTypeNamesRule, + _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule, + _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule, + _UniqueArgumentDefinitionNamesRule.UniqueArgumentDefinitionNamesRule, + _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule, + _KnownTypeNamesRule.KnownTypeNamesRule, + _KnownDirectivesRule.KnownDirectivesRule, + _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule, + _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule, + _KnownArgumentNamesRule.KnownArgumentNamesOnDirectivesRule, + _UniqueArgumentNamesRule.UniqueArgumentNamesRule, + _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule, + _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsOnDirectivesRule, +]); +exports.specifiedSDLRules = specifiedSDLRules; + + +/***/ }), + +/***/ 5105: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.assertValidSDL = assertValidSDL; +exports.assertValidSDLExtension = assertValidSDLExtension; +exports.validate = validate; +exports.validateSDL = validateSDL; + +var _devAssert = __nccwpck_require__(7437); + +var _GraphQLError = __nccwpck_require__(1753); + +var _visitor = __nccwpck_require__(7848); + +var _validate = __nccwpck_require__(3756); + +var _TypeInfo = __nccwpck_require__(3502); + +var _specifiedRules = __nccwpck_require__(1598); + +var _ValidationContext = __nccwpck_require__(8645); + +/** + * Implements the "Validation" section of the spec. + * + * Validation runs synchronously, returning an array of encountered errors, or + * an empty array if no errors were encountered and the document is valid. + * + * A list of specific validation rules may be provided. If not provided, the + * default list of rules defined by the GraphQL specification will be used. + * + * Each validation rules is a function which returns a visitor + * (see the language/visitor API). Visitor methods are expected to return + * GraphQLErrors, or Arrays of GraphQLErrors when invalid. + * + * Validate will stop validation after a `maxErrors` limit has been reached. + * Attackers can send pathologically invalid queries to induce a DoS attack, + * so by default `maxErrors` set to 100 errors. + * + * Optionally a custom TypeInfo instance may be provided. If not provided, one + * will be created from the provided schema. + */ +function validate( + schema, + documentAST, + rules = _specifiedRules.specifiedRules, + options, + /** @deprecated will be removed in 17.0.0 */ + typeInfo = new _TypeInfo.TypeInfo(schema), +) { + var _options$maxErrors; + + const maxErrors = + (_options$maxErrors = + options === null || options === void 0 ? void 0 : options.maxErrors) !== + null && _options$maxErrors !== void 0 + ? _options$maxErrors + : 100; + documentAST || (0, _devAssert.devAssert)(false, 'Must provide document.'); // If the schema used for validation is invalid, throw an error. + + (0, _validate.assertValidSchema)(schema); + const abortObj = Object.freeze({}); + const errors = []; + const context = new _ValidationContext.ValidationContext( + schema, + documentAST, + typeInfo, + (error) => { + if (errors.length >= maxErrors) { + errors.push( + new _GraphQLError.GraphQLError( + 'Too many validation errors, error limit reached. Validation aborted.', + ), + ); // eslint-disable-next-line @typescript-eslint/no-throw-literal + + throw abortObj; + } + + errors.push(error); + }, + ); // This uses a specialized visitor which runs multiple visitors in parallel, + // while maintaining the visitor skip and break API. + + const visitor = (0, _visitor.visitInParallel)( + rules.map((rule) => rule(context)), + ); // Visit the whole document with each instance of all provided rules. + + try { + (0, _visitor.visit)( + documentAST, + (0, _TypeInfo.visitWithTypeInfo)(typeInfo, visitor), + ); + } catch (e) { + if (e !== abortObj) { + throw e; + } + } + + return errors; +} +/** + * @internal + */ + +function validateSDL( + documentAST, + schemaToExtend, + rules = _specifiedRules.specifiedSDLRules, +) { + const errors = []; + const context = new _ValidationContext.SDLValidationContext( + documentAST, + schemaToExtend, + (error) => { + errors.push(error); + }, + ); + const visitors = rules.map((rule) => rule(context)); + (0, _visitor.visit)(documentAST, (0, _visitor.visitInParallel)(visitors)); + return errors; +} +/** + * Utility function which asserts a SDL document is valid by throwing an error + * if it is invalid. + * + * @internal + */ + +function assertValidSDL(documentAST) { + const errors = validateSDL(documentAST); + + if (errors.length !== 0) { + throw new Error(errors.map((error) => error.message).join('\n\n')); + } +} +/** + * Utility function which asserts a SDL document is valid by throwing an error + * if it is invalid. + * + * @internal + */ + +function assertValidSDLExtension(documentAST, schema) { + const errors = validateSDL(documentAST, schema); + + if (errors.length !== 0) { + throw new Error(errors.map((error) => error.message).join('\n\n')); + } +} + + +/***/ }), + +/***/ 831: +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true, +})); +exports.versionInfo = exports.version = void 0; +// Note: This file is autogenerated using "resources/gen-version.js" script and +// automatically updated by "npm version" command. + +/** + * A string containing the version of the GraphQL.js library + */ +const version = '16.9.0'; +/** + * An object containing the components of the GraphQL.js version string + */ + +exports.version = version; +const versionInfo = Object.freeze({ + major: 16, + minor: 9, + patch: 0, + preReleaseTag: null, +}); +exports.versionInfo = versionInfo; + + +/***/ }), + +/***/ 717: +/***/ ((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' : ''); +} + + +/***/ }), + +/***/ 5574: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var wrappy = __nccwpck_require__(6726) +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 +} + + +/***/ }), + +/***/ 3514: +/***/ ((module) => { + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */ +var __extends; +var __assign; +var __rest; +var __decorate; +var __param; +var __esDecorate; +var __runInitializers; +var __propKey; +var __setFunctionName; +var __metadata; +var __awaiter; +var __generator; +var __exportStar; +var __values; +var __read; +var __spread; +var __spreadArrays; +var __spreadArray; +var __await; +var __asyncGenerator; +var __asyncDelegator; +var __asyncValues; +var __makeTemplateObject; +var __importStar; +var __importDefault; +var __classPrivateFieldGet; +var __classPrivateFieldSet; +var __classPrivateFieldIn; +var __createBinding; +var __addDisposableResource; +var __disposeResources; +var __rewriteRelativeImportExtension; +(function (factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); + } + else if ( true && typeof module.exports === "object") { + factory(createExporter(root, createExporter(module.exports))); + } + else { + factory(createExporter(root)); + } + function createExporter(exports, previous) { + if (exports !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports, "__esModule", { value: true }); + } + else { + exports.__esModule = true; + } + } + return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; + } +}) +(function (exporter) { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + + __extends = function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + + __rest = function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + + __decorate = function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + + __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } + }; + + __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; + }; + + __runInitializers = function (thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; + }; + + __propKey = function (x) { + return typeof x === "symbol" ? x : "".concat(x); + }; + + __setFunctionName = function (f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); + }; + + __metadata = function (metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + }; + + __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()); + }); + }; + + __generator = function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + + __exportStar = function(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); + }; + + __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]; + }); + + __values = function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + + __read = function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + }; + + /** @deprecated */ + __spread = function () { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + }; + + /** @deprecated */ + __spreadArrays = function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + }; + + __spreadArray = function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + + __await = function (v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + }; + + __asyncGenerator = function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; + function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } + function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + }; + + __asyncDelegator = function (o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } + }; + + __asyncValues = function (o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } + }; + + __makeTemplateObject = function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; + }; + + var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }; + + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + + __importStar = function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; + + __importDefault = function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + + __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); + }; + + __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; + }; + + __classPrivateFieldIn = function (state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); + }; + + __addDisposableResource = function (env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; + env.stack.push({ value: value, dispose: dispose, async: async }); + } + else if (async) { + env.stack.push({ async: true }); + } + return value; + }; + + var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; + }; + + __disposeResources = function (env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); + } + else s |= 1; + } + catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + return next(); + }; + + __rewriteRelativeImportExtension = function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; + }; + + exporter("__extends", __extends); + exporter("__assign", __assign); + exporter("__rest", __rest); + exporter("__decorate", __decorate); + exporter("__param", __param); + exporter("__esDecorate", __esDecorate); + exporter("__runInitializers", __runInitializers); + exporter("__propKey", __propKey); + exporter("__setFunctionName", __setFunctionName); + exporter("__metadata", __metadata); + exporter("__awaiter", __awaiter); + exporter("__generator", __generator); + exporter("__exportStar", __exportStar); + exporter("__createBinding", __createBinding); + exporter("__values", __values); + exporter("__read", __read); + exporter("__spread", __spread); + exporter("__spreadArrays", __spreadArrays); + exporter("__spreadArray", __spreadArray); + exporter("__await", __await); + exporter("__asyncGenerator", __asyncGenerator); + exporter("__asyncDelegator", __asyncDelegator); + exporter("__asyncValues", __asyncValues); + exporter("__makeTemplateObject", __makeTemplateObject); + exporter("__importStar", __importStar); + exporter("__importDefault", __importDefault); + exporter("__classPrivateFieldGet", __classPrivateFieldGet); + exporter("__classPrivateFieldSet", __classPrivateFieldSet); + exporter("__classPrivateFieldIn", __classPrivateFieldIn); + exporter("__addDisposableResource", __addDisposableResource); + exporter("__disposeResources", __disposeResources); + exporter("__rewriteRelativeImportExtension", __rewriteRelativeImportExtension); +}); + +0 && (0); + + +/***/ }), + +/***/ 4112: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = __nccwpck_require__(5648); + + +/***/ }), + +/***/ 5648: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + + +var net = __nccwpck_require__(9278); +var tls = __nccwpck_require__(4756); +var http = __nccwpck_require__(8611); +var https = __nccwpck_require__(5692); +var events = __nccwpck_require__(4434); +var assert = __nccwpck_require__(2613); +var util = __nccwpck_require__(9023); + + +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 + + +/***/ }), + +/***/ 6630: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Client = __nccwpck_require__(5635) +const Dispatcher = __nccwpck_require__(1045) +const errors = __nccwpck_require__(3785) +const Pool = __nccwpck_require__(2586) +const BalancedPool = __nccwpck_require__(1891) +const Agent = __nccwpck_require__(6783) +const util = __nccwpck_require__(162) +const { InvalidArgumentError } = errors +const api = __nccwpck_require__(7865) +const buildConnector = __nccwpck_require__(5786) +const MockClient = __nccwpck_require__(7295) +const MockAgent = __nccwpck_require__(8147) +const MockPool = __nccwpck_require__(6750) +const mockErrors = __nccwpck_require__(4955) +const ProxyAgent = __nccwpck_require__(1354) +const RetryHandler = __nccwpck_require__(6631) +const { getGlobalDispatcher, setGlobalDispatcher } = __nccwpck_require__(8127) +const DecoratorHandler = __nccwpck_require__(7022) +const RedirectHandler = __nccwpck_require__(4021) +const createRedirectInterceptor = __nccwpck_require__(3537) + +let hasCrypto +try { + __nccwpck_require__(6982) + hasCrypto = true +} catch { + hasCrypto = false +} + +Object.assign(Dispatcher.prototype, api) + +module.exports.Dispatcher = Dispatcher +module.exports.Client = Client +module.exports.Pool = Pool +module.exports.BalancedPool = BalancedPool +module.exports.Agent = Agent +module.exports.ProxyAgent = ProxyAgent +module.exports.RetryHandler = RetryHandler + +module.exports.DecoratorHandler = DecoratorHandler +module.exports.RedirectHandler = RedirectHandler +module.exports.createRedirectInterceptor = createRedirectInterceptor + +module.exports.buildConnector = buildConnector +module.exports.errors = errors + +function makeDispatcher (fn) { + return (url, opts, handler) => { + if (typeof opts === 'function') { + handler = opts + opts = null + } + + if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) { + throw new InvalidArgumentError('invalid url') + } + + if (opts != null && typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (opts && opts.path != null) { + if (typeof opts.path !== 'string') { + throw new InvalidArgumentError('invalid opts.path') + } + + let path = opts.path + if (!opts.path.startsWith('/')) { + path = `/${path}` + } + + url = new URL(util.parseOrigin(url).origin + path) + } else { + if (!opts) { + opts = typeof url === 'object' ? url : {} + } + + url = util.parseURL(url) + } + + const { agent, dispatcher = getGlobalDispatcher() } = opts + + if (agent) { + throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?') + } + + return fn.call(dispatcher, { + ...opts, + origin: url.origin, + path: url.search ? `${url.pathname}${url.search}` : url.pathname, + method: opts.method || (opts.body ? 'PUT' : 'GET') + }, handler) + } +} + +module.exports.setGlobalDispatcher = setGlobalDispatcher +module.exports.getGlobalDispatcher = getGlobalDispatcher + +if (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) { + let fetchImpl = null + module.exports.fetch = async function fetch (resource) { + if (!fetchImpl) { + fetchImpl = (__nccwpck_require__(3397).fetch) + } + + try { + return await fetchImpl(...arguments) + } catch (err) { + if (typeof err === 'object') { + Error.captureStackTrace(err, this) + } + + throw err + } + } + module.exports.Headers = __nccwpck_require__(6203).Headers + module.exports.Response = __nccwpck_require__(3258).Response + module.exports.Request = __nccwpck_require__(4960).Request + module.exports.FormData = __nccwpck_require__(3639).FormData + module.exports.File = __nccwpck_require__(3791).File + module.exports.FileReader = __nccwpck_require__(5466).FileReader + + const { setGlobalOrigin, getGlobalOrigin } = __nccwpck_require__(2498) + + module.exports.setGlobalOrigin = setGlobalOrigin + module.exports.getGlobalOrigin = getGlobalOrigin + + const { CacheStorage } = __nccwpck_require__(6452) + const { kConstruct } = __nccwpck_require__(5014) + + // Cache & CacheStorage are tightly coupled with fetch. Even if it may run + // in an older version of Node, it doesn't have any use without fetch. + module.exports.caches = new CacheStorage(kConstruct) +} + +if (util.nodeMajor >= 16) { + const { deleteCookie, getCookies, getSetCookies, setCookie } = __nccwpck_require__(5902) + + module.exports.deleteCookie = deleteCookie + module.exports.getCookies = getCookies + module.exports.getSetCookies = getSetCookies + module.exports.setCookie = setCookie + + const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(5892) + + module.exports.parseMIMEType = parseMIMEType + module.exports.serializeAMimeType = serializeAMimeType +} + +if (util.nodeMajor >= 18 && hasCrypto) { + const { WebSocket } = __nccwpck_require__(329) + + module.exports.WebSocket = WebSocket +} + +module.exports.request = makeDispatcher(api.request) +module.exports.stream = makeDispatcher(api.stream) +module.exports.pipeline = makeDispatcher(api.pipeline) +module.exports.connect = makeDispatcher(api.connect) +module.exports.upgrade = makeDispatcher(api.upgrade) + +module.exports.MockClient = MockClient +module.exports.MockPool = MockPool +module.exports.MockAgent = MockAgent +module.exports.mockErrors = mockErrors + + +/***/ }), + +/***/ 6783: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { InvalidArgumentError } = __nccwpck_require__(3785) +const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = __nccwpck_require__(249) +const DispatcherBase = __nccwpck_require__(6215) +const Pool = __nccwpck_require__(2586) +const Client = __nccwpck_require__(5635) +const util = __nccwpck_require__(162) +const createRedirectInterceptor = __nccwpck_require__(3537) +const { WeakRef, FinalizationRegistry } = __nccwpck_require__(7108)() + +const kOnConnect = Symbol('onConnect') +const kOnDisconnect = Symbol('onDisconnect') +const kOnConnectionError = Symbol('onConnectionError') +const kMaxRedirections = Symbol('maxRedirections') +const kOnDrain = Symbol('onDrain') +const kFactory = Symbol('factory') +const kFinalizer = Symbol('finalizer') +const kOptions = Symbol('options') + +function defaultFactory (origin, opts) { + return opts && opts.connections === 1 + ? new Client(origin, opts) + : new Pool(origin, opts) +} + +class Agent extends DispatcherBase { + constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { + super() + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + if (connect && typeof connect !== 'function') { + connect = { ...connect } + } + + this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) + ? options.interceptors.Agent + : [createRedirectInterceptor({ maxRedirections })] + + this[kOptions] = { ...util.deepClone(options), connect } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kMaxRedirections] = maxRedirections + this[kFactory] = factory + this[kClients] = new Map() + this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => { + const ref = this[kClients].get(key) + if (ref !== undefined && ref.deref() === undefined) { + this[kClients].delete(key) + } + }) + + const agent = this + + this[kOnDrain] = (origin, targets) => { + agent.emit('drain', origin, [agent, ...targets]) + } + + this[kOnConnect] = (origin, targets) => { + agent.emit('connect', origin, [agent, ...targets]) + } + + this[kOnDisconnect] = (origin, targets, err) => { + agent.emit('disconnect', origin, [agent, ...targets], err) + } + + this[kOnConnectionError] = (origin, targets, err) => { + agent.emit('connectionError', origin, [agent, ...targets], err) + } + } + + get [kRunning] () { + let ret = 0 + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore next: gc is undeterministic */ + if (client) { + ret += client[kRunning] + } + } + return ret + } + + [kDispatch] (opts, handler) { + let key + if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) { + key = String(opts.origin) + } else { + throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.') + } + + const ref = this[kClients].get(key) + + let dispatcher = ref ? ref.deref() : null + if (!dispatcher) { + dispatcher = this[kFactory](opts.origin, this[kOptions]) + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) + + this[kClients].set(key, new WeakRef(dispatcher)) + this[kFinalizer].register(dispatcher, key) + } + + return dispatcher.dispatch(opts, handler) + } + + async [kClose] () { + const closePromises = [] + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore else: gc is undeterministic */ + if (client) { + closePromises.push(client.close()) + } + } + + await Promise.all(closePromises) + } + + async [kDestroy] (err) { + const destroyPromises = [] + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore else: gc is undeterministic */ + if (client) { + destroyPromises.push(client.destroy(err)) + } + } + + await Promise.all(destroyPromises) + } +} + +module.exports = Agent + + +/***/ }), + +/***/ 9256: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const { addAbortListener } = __nccwpck_require__(162) +const { RequestAbortedError } = __nccwpck_require__(3785) + +const kListener = Symbol('kListener') +const kSignal = Symbol('kSignal') + +function abort (self) { + if (self.abort) { + self.abort() + } else { + self.onError(new RequestAbortedError()) + } +} + +function addSignal (self, signal) { + self[kSignal] = null + self[kListener] = null + + if (!signal) { + return + } + + if (signal.aborted) { + abort(self) + return + } + + self[kSignal] = signal + self[kListener] = () => { + abort(self) + } + + addAbortListener(self[kSignal], self[kListener]) +} + +function removeSignal (self) { + if (!self[kSignal]) { + return + } + + if ('removeEventListener' in self[kSignal]) { + self[kSignal].removeEventListener('abort', self[kListener]) + } else { + self[kSignal].removeListener('abort', self[kListener]) + } + + self[kSignal] = null + self[kListener] = null +} + +module.exports = { + addSignal, + removeSignal +} + + +/***/ }), + +/***/ 182: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { AsyncResource } = __nccwpck_require__(290) +const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(3785) +const util = __nccwpck_require__(162) +const { addSignal, removeSignal } = __nccwpck_require__(9256) + +class ConnectHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + const { signal, opaque, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + super('UNDICI_CONNECT') + + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.callback = callback + this.abort = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders () { + throw new SocketError('bad connect', null) + } + + onUpgrade (statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this + + removeSignal(this) + + this.callback = null + + let headers = rawHeaders + // Indicates is an HTTP2Session + if (headers != null) { + headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + } + + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + socket, + opaque, + context + }) + } + + onError (err) { + const { callback, opaque } = this + + removeSignal(this) + + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } +} + +function connect (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + connect.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + const connectHandler = new ConnectHandler(opts, callback) + this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = connect + + +/***/ }), + +/***/ 1324: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + Readable, + Duplex, + PassThrough +} = __nccwpck_require__(2203) +const { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError +} = __nccwpck_require__(3785) +const util = __nccwpck_require__(162) +const { AsyncResource } = __nccwpck_require__(290) +const { addSignal, removeSignal } = __nccwpck_require__(9256) +const assert = __nccwpck_require__(2613) + +const kResume = Symbol('resume') + +class PipelineRequest extends Readable { + constructor () { + super({ autoDestroy: true }) + + this[kResume] = null + } + + _read () { + const { [kResume]: resume } = this + + if (resume) { + this[kResume] = null + resume() + } + } + + _destroy (err, callback) { + this._read() + + callback(err) + } +} + +class PipelineResponse extends Readable { + constructor (resume) { + super({ autoDestroy: true }) + this[kResume] = resume + } + + _read () { + this[kResume]() + } + + _destroy (err, callback) { + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } + + callback(err) + } +} + +class PipelineHandler extends AsyncResource { + constructor (opts, handler) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof handler !== 'function') { + throw new InvalidArgumentError('invalid handler') + } + + const { signal, method, opaque, onInfo, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_PIPELINE') + + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.handler = handler + this.abort = null + this.context = null + this.onInfo = onInfo || null + + this.req = new PipelineRequest().on('error', util.nop) + + this.ret = new Duplex({ + readableObjectMode: opts.objectMode, + autoDestroy: true, + read: () => { + const { body } = this + + if (body && body.resume) { + body.resume() + } + }, + write: (chunk, encoding, callback) => { + const { req } = this + + if (req.push(chunk, encoding) || req._readableState.destroyed) { + callback() + } else { + req[kResume] = callback + } + }, + destroy: (err, callback) => { + const { body, req, res, ret, abort } = this + + if (!err && !ret._readableState.endEmitted) { + err = new RequestAbortedError() + } + + if (abort && err) { + abort() + } + + util.destroy(body, err) + util.destroy(req, err) + util.destroy(res, err) + + removeSignal(this) + + callback(err) + } + }).on('prefinish', () => { + const { req } = this + + // Node < 15 does not call _final in same tick. + req.push(null) + }) + + this.res = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + const { ret, res } = this + + assert(!res, 'pipeline cannot be retried') + + if (ret.destroyed) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume) { + const { opaque, handler, context } = this + + if (statusCode < 200) { + if (this.onInfo) { + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + this.onInfo({ statusCode, headers }) + } + return + } + + this.res = new PipelineResponse(resume) + + let body + try { + this.handler = null + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + body = this.runInAsyncScope(handler, null, { + statusCode, + headers, + opaque, + body: this.res, + context + }) + } catch (err) { + this.res.on('error', util.nop) + throw err + } + + if (!body || typeof body.on !== 'function') { + throw new InvalidReturnValueError('expected Readable') + } + + body + .on('data', (chunk) => { + const { ret, body } = this + + if (!ret.push(chunk) && body.pause) { + body.pause() + } + }) + .on('error', (err) => { + const { ret } = this + + util.destroy(ret, err) + }) + .on('end', () => { + const { ret } = this + + ret.push(null) + }) + .on('close', () => { + const { ret } = this + + if (!ret._readableState.ended) { + util.destroy(ret, new RequestAbortedError()) + } + }) + + this.body = body + } + + onData (chunk) { + const { res } = this + return res.push(chunk) + } + + onComplete (trailers) { + const { res } = this + res.push(null) + } + + onError (err) { + const { ret } = this + this.handler = null + util.destroy(ret, err) + } +} + +function pipeline (opts, handler) { + try { + const pipelineHandler = new PipelineHandler(opts, handler) + this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler) + return pipelineHandler.ret + } catch (err) { + return new PassThrough().destroy(err) + } +} + +module.exports = pipeline + + +/***/ }), + +/***/ 985: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Readable = __nccwpck_require__(3265) +const { + InvalidArgumentError, + RequestAbortedError +} = __nccwpck_require__(3785) +const util = __nccwpck_require__(162) +const { getResolveErrorBodyCallback } = __nccwpck_require__(9249) +const { AsyncResource } = __nccwpck_require__(290) +const { addSignal, removeSignal } = __nccwpck_require__(9256) + +class RequestHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) { + throw new InvalidArgumentError('invalid highWaterMark') + } + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_REQUEST') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.res = null + this.abort = null + this.body = body + this.trailers = {} + this.context = null + this.onInfo = onInfo || null + this.throwOnError = throwOnError + this.highWaterMark = highWaterMark + + if (util.isStream(body)) { + body.on('error', (err) => { + this.onError(err) + }) + } + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this + + const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } + + const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers + const contentType = parsedHeaders['content-type'] + const body = new Readable({ resume, abort, contentType, highWaterMark }) + + this.callback = null + this.res = body + if (callback !== null) { + if (this.throwOnError && statusCode >= 400) { + this.runInAsyncScope(getResolveErrorBodyCallback, null, + { callback, body, contentType, statusCode, statusMessage, headers } + ) + } else { + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + trailers: this.trailers, + opaque, + body, + context + }) + } + } + } + + onData (chunk) { + const { res } = this + return res.push(chunk) + } + + onComplete (trailers) { + const { res } = this + + removeSignal(this) + + util.parseHeaders(trailers, this.trailers) + + res.push(null) + } + + onError (err) { + const { res, callback, body, opaque } = this + + removeSignal(this) + + if (callback) { + // TODO: Does this need queueMicrotask? + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + + if (res) { + this.res = null + // Ensure all queued handlers are invoked before destroying res. + queueMicrotask(() => { + util.destroy(res, err) + }) + } + + if (body) { + this.body = null + util.destroy(body, err) + } + } +} + +function request (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + request.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + this.dispatch(opts, new RequestHandler(opts, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = request +module.exports.RequestHandler = RequestHandler + + +/***/ }), + +/***/ 2682: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { finished, PassThrough } = __nccwpck_require__(2203) +const { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError +} = __nccwpck_require__(3785) +const util = __nccwpck_require__(162) +const { getResolveErrorBodyCallback } = __nccwpck_require__(9249) +const { AsyncResource } = __nccwpck_require__(290) +const { addSignal, removeSignal } = __nccwpck_require__(9256) + +class StreamHandler extends AsyncResource { + constructor (opts, factory, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('invalid factory') + } + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_STREAM') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.factory = factory + this.callback = callback + this.res = null + this.abort = null + this.context = null + this.trailers = null + this.body = body + this.onInfo = onInfo || null + this.throwOnError = throwOnError || false + + if (util.isStream(body)) { + body.on('error', (err) => { + this.onError(err) + }) + } + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const { factory, opaque, context, callback, responseHeaders } = this + + const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } + + this.factory = null + + let res + + if (this.throwOnError && statusCode >= 400) { + const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers + const contentType = parsedHeaders['content-type'] + res = new PassThrough() + + this.callback = null + this.runInAsyncScope(getResolveErrorBodyCallback, null, + { callback, body: res, contentType, statusCode, statusMessage, headers } + ) + } else { + if (factory === null) { + return + } + + res = this.runInAsyncScope(factory, null, { + statusCode, + headers, + opaque, + context + }) + + if ( + !res || + typeof res.write !== 'function' || + typeof res.end !== 'function' || + typeof res.on !== 'function' + ) { + throw new InvalidReturnValueError('expected Writable') + } + + // TODO: Avoid finished. It registers an unnecessary amount of listeners. + finished(res, { readable: false }, (err) => { + const { callback, res, opaque, trailers, abort } = this + + this.res = null + if (err || !res.readable) { + util.destroy(res, err) + } + + this.callback = null + this.runInAsyncScope(callback, null, err || null, { opaque, trailers }) + + if (err) { + abort() + } + }) + } + + res.on('drain', resume) + + this.res = res + + const needDrain = res.writableNeedDrain !== undefined + ? res.writableNeedDrain + : res._writableState && res._writableState.needDrain + + return needDrain !== true + } + + onData (chunk) { + const { res } = this + + return res ? res.write(chunk) : true + } + + onComplete (trailers) { + const { res } = this + + removeSignal(this) + + if (!res) { + return + } + + this.trailers = util.parseHeaders(trailers) + + res.end() + } + + onError (err) { + const { res, callback, opaque, body } = this + + removeSignal(this) + + this.factory = null + + if (res) { + this.res = null + util.destroy(res, err) + } else if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + + if (body) { + this.body = null + util.destroy(body, err) + } + } +} + +function stream (opts, factory, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + stream.call(this, opts, factory, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + this.dispatch(opts, new StreamHandler(opts, factory, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = stream + + +/***/ }), + +/***/ 8424: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(3785) +const { AsyncResource } = __nccwpck_require__(290) +const util = __nccwpck_require__(162) +const { addSignal, removeSignal } = __nccwpck_require__(9256) +const assert = __nccwpck_require__(2613) + +class UpgradeHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + const { signal, opaque, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + super('UNDICI_UPGRADE') + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.abort = null + this.context = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = null + } + + onHeaders () { + throw new SocketError('bad upgrade', null) + } + + onUpgrade (statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this + + assert.strictEqual(statusCode, 101) + + removeSignal(this) + + this.callback = null + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + this.runInAsyncScope(callback, null, null, { + headers, + socket, + opaque, + context + }) + } + + onError (err) { + const { callback, opaque } = this + + removeSignal(this) + + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } +} + +function upgrade (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + upgrade.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + const upgradeHandler = new UpgradeHandler(opts, callback) + this.dispatch({ + ...opts, + method: opts.method || 'GET', + upgrade: opts.protocol || 'Websocket' + }, upgradeHandler) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = upgrade + + +/***/ }), + +/***/ 7865: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +module.exports.request = __nccwpck_require__(985) +module.exports.stream = __nccwpck_require__(2682) +module.exports.pipeline = __nccwpck_require__(1324) +module.exports.upgrade = __nccwpck_require__(8424) +module.exports.connect = __nccwpck_require__(182) + + +/***/ }), + +/***/ 3265: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// Ported from https://github.com/nodejs/undici/pull/907 + + + +const assert = __nccwpck_require__(2613) +const { Readable } = __nccwpck_require__(2203) +const { RequestAbortedError, NotSupportedError, InvalidArgumentError } = __nccwpck_require__(3785) +const util = __nccwpck_require__(162) +const { ReadableStreamFrom, toUSVString } = __nccwpck_require__(162) + +let Blob + +const kConsume = Symbol('kConsume') +const kReading = Symbol('kReading') +const kBody = Symbol('kBody') +const kAbort = Symbol('abort') +const kContentType = Symbol('kContentType') + +const noop = () => {} + +module.exports = class BodyReadable extends Readable { + constructor ({ + resume, + abort, + contentType = '', + highWaterMark = 64 * 1024 // Same as nodejs fs streams. + }) { + super({ + autoDestroy: true, + read: resume, + highWaterMark + }) + + this._readableState.dataEmitted = false + + this[kAbort] = abort + this[kConsume] = null + this[kBody] = null + this[kContentType] = contentType + + // Is stream being consumed through Readable API? + // This is an optimization so that we avoid checking + // for 'data' and 'readable' listeners in the hot path + // inside push(). + this[kReading] = false + } + + destroy (err) { + if (this.destroyed) { + // Node < 16 + return this + } + + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } + + if (err) { + this[kAbort]() + } + + return super.destroy(err) + } + + emit (ev, ...args) { + if (ev === 'data') { + // Node < 16.7 + this._readableState.dataEmitted = true + } else if (ev === 'error') { + // Node < 16 + this._readableState.errorEmitted = true + } + return super.emit(ev, ...args) + } + + on (ev, ...args) { + if (ev === 'data' || ev === 'readable') { + this[kReading] = true + } + return super.on(ev, ...args) + } + + addListener (ev, ...args) { + return this.on(ev, ...args) + } + + off (ev, ...args) { + const ret = super.off(ev, ...args) + if (ev === 'data' || ev === 'readable') { + this[kReading] = ( + this.listenerCount('data') > 0 || + this.listenerCount('readable') > 0 + ) + } + return ret + } + + removeListener (ev, ...args) { + return this.off(ev, ...args) + } + + push (chunk) { + if (this[kConsume] && chunk !== null && this.readableLength === 0) { + consumePush(this[kConsume], chunk) + return this[kReading] ? super.push(chunk) : true + } + return super.push(chunk) + } + + // https://fetch.spec.whatwg.org/#dom-body-text + async text () { + return consume(this, 'text') + } + + // https://fetch.spec.whatwg.org/#dom-body-json + async json () { + return consume(this, 'json') + } + + // https://fetch.spec.whatwg.org/#dom-body-blob + async blob () { + return consume(this, 'blob') + } + + // https://fetch.spec.whatwg.org/#dom-body-arraybuffer + async arrayBuffer () { + return consume(this, 'arrayBuffer') + } + + // https://fetch.spec.whatwg.org/#dom-body-formdata + async formData () { + // TODO: Implement. + throw new NotSupportedError() + } + + // https://fetch.spec.whatwg.org/#dom-body-bodyused + get bodyUsed () { + return util.isDisturbed(this) + } + + // https://fetch.spec.whatwg.org/#dom-body-body + get body () { + if (!this[kBody]) { + this[kBody] = ReadableStreamFrom(this) + if (this[kConsume]) { + // TODO: Is this the best way to force a lock? + this[kBody].getReader() // Ensure stream is locked. + assert(this[kBody].locked) + } + } + return this[kBody] + } + + dump (opts) { + let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144 + const signal = opts && opts.signal + + if (signal) { + try { + if (typeof signal !== 'object' || !('aborted' in signal)) { + throw new InvalidArgumentError('signal must be an AbortSignal') + } + util.throwIfAborted(signal) + } catch (err) { + return Promise.reject(err) + } + } + + if (this.closed) { + return Promise.resolve(null) + } + + return new Promise((resolve, reject) => { + const signalListenerCleanup = signal + ? util.addAbortListener(signal, () => { + this.destroy() + }) + : noop + + this + .on('close', function () { + signalListenerCleanup() + if (signal && signal.aborted) { + reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' })) + } else { + resolve(null) + } + }) + .on('error', noop) + .on('data', function (chunk) { + limit -= chunk.length + if (limit <= 0) { + this.destroy() + } + }) + .resume() + }) + } +} + +// https://streams.spec.whatwg.org/#readablestream-locked +function isLocked (self) { + // Consume is an implicit lock. + return (self[kBody] && self[kBody].locked === true) || self[kConsume] +} + +// https://fetch.spec.whatwg.org/#body-unusable +function isUnusable (self) { + return util.isDisturbed(self) || isLocked(self) +} + +async function consume (stream, type) { + if (isUnusable(stream)) { + throw new TypeError('unusable') + } + + assert(!stream[kConsume]) + + return new Promise((resolve, reject) => { + stream[kConsume] = { + type, + stream, + resolve, + reject, + length: 0, + body: [] + } + + stream + .on('error', function (err) { + consumeFinish(this[kConsume], err) + }) + .on('close', function () { + if (this[kConsume].body !== null) { + consumeFinish(this[kConsume], new RequestAbortedError()) + } + }) + + process.nextTick(consumeStart, stream[kConsume]) + }) +} + +function consumeStart (consume) { + if (consume.body === null) { + return + } + + const { _readableState: state } = consume.stream + + for (const chunk of state.buffer) { + consumePush(consume, chunk) + } + + if (state.endEmitted) { + consumeEnd(this[kConsume]) + } else { + consume.stream.on('end', function () { + consumeEnd(this[kConsume]) + }) + } + + consume.stream.resume() + + while (consume.stream.read() != null) { + // Loop + } +} + +function consumeEnd (consume) { + const { type, body, resolve, stream, length } = consume + + try { + if (type === 'text') { + resolve(toUSVString(Buffer.concat(body))) + } else if (type === 'json') { + resolve(JSON.parse(Buffer.concat(body))) + } else if (type === 'arrayBuffer') { + const dst = new Uint8Array(length) + + let pos = 0 + for (const buf of body) { + dst.set(buf, pos) + pos += buf.byteLength + } + + resolve(dst.buffer) + } else if (type === 'blob') { + if (!Blob) { + Blob = (__nccwpck_require__(181).Blob) + } + resolve(new Blob(body, { type: stream[kContentType] })) + } + + consumeFinish(consume) + } catch (err) { + stream.destroy(err) + } +} + +function consumePush (consume, chunk) { + consume.length += chunk.length + consume.body.push(chunk) +} + +function consumeFinish (consume, err) { + if (consume.body === null) { + return + } + + if (err) { + consume.reject(err) + } else { + consume.resolve() + } + + consume.type = null + consume.stream = null + consume.resolve = null + consume.reject = null + consume.length = 0 + consume.body = null +} + + +/***/ }), + +/***/ 9249: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const assert = __nccwpck_require__(2613) +const { + ResponseStatusCodeError +} = __nccwpck_require__(3785) +const { toUSVString } = __nccwpck_require__(162) + +async function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) { + assert(body) + + let chunks = [] + let limit = 0 + + for await (const chunk of body) { + chunks.push(chunk) + limit += chunk.length + if (limit > 128 * 1024) { + chunks = null + break + } + } + + if (statusCode === 204 || !contentType || !chunks) { + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) + return + } + + try { + if (contentType.startsWith('application/json')) { + const payload = JSON.parse(toUSVString(Buffer.concat(chunks))) + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) + return + } + + if (contentType.startsWith('text/')) { + const payload = toUSVString(Buffer.concat(chunks)) + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) + return + } + } catch (err) { + // Process in a fallback if error + } + + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) +} + +module.exports = { getResolveErrorBodyCallback } + + +/***/ }), + +/***/ 1891: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + BalancedPoolMissingUpstreamError, + InvalidArgumentError +} = __nccwpck_require__(3785) +const { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher +} = __nccwpck_require__(9538) +const Pool = __nccwpck_require__(2586) +const { kUrl, kInterceptors } = __nccwpck_require__(249) +const { parseOrigin } = __nccwpck_require__(162) +const kFactory = Symbol('factory') + +const kOptions = Symbol('options') +const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor') +const kCurrentWeight = Symbol('kCurrentWeight') +const kIndex = Symbol('kIndex') +const kWeight = Symbol('kWeight') +const kMaxWeightPerServer = Symbol('kMaxWeightPerServer') +const kErrorPenalty = Symbol('kErrorPenalty') + +function getGreatestCommonDivisor (a, b) { + if (b === 0) return a + return getGreatestCommonDivisor(b, a % b) +} + +function defaultFactory (origin, opts) { + return new Pool(origin, opts) +} + +class BalancedPool extends PoolBase { + constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) { + super() + + this[kOptions] = opts + this[kIndex] = -1 + this[kCurrentWeight] = 0 + + this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100 + this[kErrorPenalty] = this[kOptions].errorPenalty || 15 + + if (!Array.isArray(upstreams)) { + upstreams = [upstreams] + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) + ? opts.interceptors.BalancedPool + : [] + this[kFactory] = factory + + for (const upstream of upstreams) { + this.addUpstream(upstream) + } + this._updateBalancedPoolStats() + } + + addUpstream (upstream) { + const upstreamOrigin = parseOrigin(upstream).origin + + if (this[kClients].find((pool) => ( + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + ))) { + return this + } + const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])) + + this[kAddClient](pool) + pool.on('connect', () => { + pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]) + }) + + pool.on('connectionError', () => { + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + }) + + pool.on('disconnect', (...args) => { + const err = args[2] + if (err && err.code === 'UND_ERR_SOCKET') { + // decrease the weight of the pool. + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + } + }) + + for (const client of this[kClients]) { + client[kWeight] = this[kMaxWeightPerServer] + } + + this._updateBalancedPoolStats() + + return this + } + + _updateBalancedPoolStats () { + this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0) + } + + removeUpstream (upstream) { + const upstreamOrigin = parseOrigin(upstream).origin + + const pool = this[kClients].find((pool) => ( + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + )) + + if (pool) { + this[kRemoveClient](pool) + } + + return this + } + + get upstreams () { + return this[kClients] + .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true) + .map((p) => p[kUrl].origin) + } + + [kGetDispatcher] () { + // We validate that pools is greater than 0, + // otherwise we would have to wait until an upstream + // is added, which might never happen. + if (this[kClients].length === 0) { + throw new BalancedPoolMissingUpstreamError() + } + + const dispatcher = this[kClients].find(dispatcher => ( + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + )) + + if (!dispatcher) { + return + } + + const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true) + + if (allClientsBusy) { + return + } + + let counter = 0 + + let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain]) + + while (counter++ < this[kClients].length) { + this[kIndex] = (this[kIndex] + 1) % this[kClients].length + const pool = this[kClients][this[kIndex]] + + // find pool index with the largest weight + if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { + maxWeightIndex = this[kIndex] + } + + // decrease the current weight every `this[kClients].length`. + if (this[kIndex] === 0) { + // Set the current weight to the next lower weight. + this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor] + + if (this[kCurrentWeight] <= 0) { + this[kCurrentWeight] = this[kMaxWeightPerServer] + } + } + if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) { + return pool + } + } + + this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight] + this[kIndex] = maxWeightIndex + return this[kClients][maxWeightIndex] + } +} + +module.exports = BalancedPool + + +/***/ }), + +/***/ 3741: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kConstruct } = __nccwpck_require__(5014) +const { urlEquals, fieldValues: getFieldValues } = __nccwpck_require__(2411) +const { kEnumerableProperty, isDisturbed } = __nccwpck_require__(162) +const { kHeadersList } = __nccwpck_require__(249) +const { webidl } = __nccwpck_require__(7472) +const { Response, cloneResponse } = __nccwpck_require__(3258) +const { Request } = __nccwpck_require__(4960) +const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(4236) +const { fetching } = __nccwpck_require__(3397) +const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = __nccwpck_require__(7189) +const assert = __nccwpck_require__(2613) +const { getGlobalDispatcher } = __nccwpck_require__(8127) + +/** + * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation + * @typedef {Object} CacheBatchOperation + * @property {'delete' | 'put'} type + * @property {any} request + * @property {any} response + * @property {import('../../types/cache').CacheQueryOptions} options + */ + +/** + * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list + * @typedef {[any, any][]} requestResponseList + */ + +class Cache { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list + * @type {requestResponseList} + */ + #relevantRequestResponseList + + constructor () { + if (arguments[0] !== kConstruct) { + webidl.illegalConstructor() + } + + this.#relevantRequestResponseList = arguments[1] + } + + async match (request, options = {}) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' }) + + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + const p = await this.matchAll(request, options) + + if (p.length === 0) { + return + } + + return p[0] + } + + async matchAll (request = undefined, options = {}) { + webidl.brandCheck(this, Cache) + + if (request !== undefined) request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + // 1. + let r = null + + // 2. + if (request !== undefined) { + if (request instanceof Request) { + // 2.1.1 + r = request[kState] + + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { + // 2.2.1 + r = new Request(request)[kState] + } + } + + // 5. + // 5.1 + const responses = [] + + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + responses.push(requestResponse[1]) + } + } else { // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) + + // 5.3.2 + for (const requestResponse of requestResponses) { + responses.push(requestResponse[1]) + } + } + + // 5.4 + // We don't implement CORs so we don't need to loop over the responses, yay! + + // 5.5.1 + const responseList = [] + + // 5.5.2 + for (const response of responses) { + // 5.5.2.1 + const responseObject = new Response(response.body?.source ?? null) + const body = responseObject[kState].body + responseObject[kState] = response + responseObject[kState].body = body + responseObject[kHeaders][kHeadersList] = response.headersList + responseObject[kHeaders][kGuard] = 'immutable' + + responseList.push(responseObject) + } + + // 6. + return Object.freeze(responseList) + } + + async add (request) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' }) + + request = webidl.converters.RequestInfo(request) + + // 1. + const requests = [request] + + // 2. + const responseArrayPromise = this.addAll(requests) + + // 3. + return await responseArrayPromise + } + + async addAll (requests) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' }) + + requests = webidl.converters['sequence'](requests) + + // 1. + const responsePromises = [] + + // 2. + const requestList = [] + + // 3. + for (const request of requests) { + if (typeof request === 'string') { + continue + } + + // 3.1 + const r = request[kState] + + // 3.2 + if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Expected http/s scheme when method is not GET.' + }) + } + } + + // 4. + /** @type {ReturnType[]} */ + const fetchControllers = [] + + // 5. + for (const request of requests) { + // 5.1 + const r = new Request(request)[kState] + + // 5.2 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Expected http/s scheme.' + }) + } + + // 5.4 + r.initiator = 'fetch' + r.destination = 'subresource' + + // 5.5 + requestList.push(r) + + // 5.6 + const responsePromise = createDeferredPromise() + + // 5.7 + fetchControllers.push(fetching({ + request: r, + dispatcher: getGlobalDispatcher(), + processResponse (response) { + // 1. + if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) { + responsePromise.reject(webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Received an invalid status code or the request failed.' + })) + } else if (response.headersList.contains('vary')) { // 2. + // 2.1 + const fieldValues = getFieldValues(response.headersList.get('vary')) + + // 2.2 + for (const fieldValue of fieldValues) { + // 2.2.1 + if (fieldValue === '*') { + responsePromise.reject(webidl.errors.exception({ + header: 'Cache.addAll', + message: 'invalid vary field value' + })) + + for (const controller of fetchControllers) { + controller.abort() + } + + return + } + } + } + }, + processResponseEndOfBody (response) { + // 1. + if (response.aborted) { + responsePromise.reject(new DOMException('aborted', 'AbortError')) + return + } + + // 2. + responsePromise.resolve(response) + } + })) + + // 5.8 + responsePromises.push(responsePromise.promise) + } + + // 6. + const p = Promise.all(responsePromises) + + // 7. + const responses = await p + + // 7.1 + const operations = [] + + // 7.2 + let index = 0 + + // 7.3 + for (const response of responses) { + // 7.3.1 + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 7.3.2 + request: requestList[index], // 7.3.3 + response // 7.3.4 + } + + operations.push(operation) // 7.3.5 + + index++ // 7.3.6 + } + + // 7.5 + const cacheJobPromise = createDeferredPromise() + + // 7.6.1 + let errorData = null + + // 7.6.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + // 7.6.3 + queueMicrotask(() => { + // 7.6.3.1 + if (errorData === null) { + cacheJobPromise.resolve(undefined) + } else { + // 7.6.3.2 + cacheJobPromise.reject(errorData) + } + }) + + // 7.7 + return cacheJobPromise.promise + } + + async put (request, response) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' }) + + request = webidl.converters.RequestInfo(request) + response = webidl.converters.Response(response) + + // 1. + let innerRequest = null + + // 2. + if (request instanceof Request) { + innerRequest = request[kState] + } else { // 3. + innerRequest = new Request(request)[kState] + } + + // 4. + if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Expected an http/s scheme when method is not GET' + }) + } + + // 5. + const innerResponse = response[kState] + + // 6. + if (innerResponse.status === 206) { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Got 206 status' + }) + } + + // 7. + if (innerResponse.headersList.contains('vary')) { + // 7.1. + const fieldValues = getFieldValues(innerResponse.headersList.get('vary')) + + // 7.2. + for (const fieldValue of fieldValues) { + // 7.2.1 + if (fieldValue === '*') { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Got * vary field value' + }) + } + } + } + + // 8. + if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Response body is locked or disturbed' + }) + } + + // 9. + const clonedResponse = cloneResponse(innerResponse) + + // 10. + const bodyReadPromise = createDeferredPromise() + + // 11. + if (innerResponse.body != null) { + // 11.1 + const stream = innerResponse.body.stream + + // 11.2 + const reader = stream.getReader() + + // 11.3 + readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject) + } else { + bodyReadPromise.resolve(undefined) + } + + // 12. + /** @type {CacheBatchOperation[]} */ + const operations = [] + + // 13. + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 14. + request: innerRequest, // 15. + response: clonedResponse // 16. + } + + // 17. + operations.push(operation) + + // 19. + const bytes = await bodyReadPromise.promise + + if (clonedResponse.body != null) { + clonedResponse.body.source = bytes + } + + // 19.1 + const cacheJobPromise = createDeferredPromise() + + // 19.2.1 + let errorData = null + + // 19.2.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + // 19.2.3 + queueMicrotask(() => { + // 19.2.3.1 + if (errorData === null) { + cacheJobPromise.resolve() + } else { // 19.2.3.2 + cacheJobPromise.reject(errorData) + } + }) + + return cacheJobPromise.promise + } + + async delete (request, options = {}) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' }) + + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + /** + * @type {Request} + */ + let r = null + + if (request instanceof Request) { + r = request[kState] + + if (r.method !== 'GET' && !options.ignoreMethod) { + return false + } + } else { + assert(typeof request === 'string') + + r = new Request(request)[kState] + } + + /** @type {CacheBatchOperation[]} */ + const operations = [] + + /** @type {CacheBatchOperation} */ + const operation = { + type: 'delete', + request: r, + options + } + + operations.push(operation) + + const cacheJobPromise = createDeferredPromise() + + let errorData = null + let requestResponses + + try { + requestResponses = this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + queueMicrotask(() => { + if (errorData === null) { + cacheJobPromise.resolve(!!requestResponses?.length) + } else { + cacheJobPromise.reject(errorData) + } + }) + + return cacheJobPromise.promise + } + + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys + * @param {any} request + * @param {import('../../types/cache').CacheQueryOptions} options + * @returns {readonly Request[]} + */ + async keys (request = undefined, options = {}) { + webidl.brandCheck(this, Cache) + + if (request !== undefined) request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + // 1. + let r = null + + // 2. + if (request !== undefined) { + // 2.1 + if (request instanceof Request) { + // 2.1.1 + r = request[kState] + + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { // 2.2 + r = new Request(request)[kState] + } + } + + // 4. + const promise = createDeferredPromise() + + // 5. + // 5.1 + const requests = [] + + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + // 5.2.1.1 + requests.push(requestResponse[0]) + } + } else { // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) + + // 5.3.2 + for (const requestResponse of requestResponses) { + // 5.3.2.1 + requests.push(requestResponse[0]) + } + } + + // 5.4 + queueMicrotask(() => { + // 5.4.1 + const requestList = [] + + // 5.4.2 + for (const request of requests) { + const requestObject = new Request('https://a') + requestObject[kState] = request + requestObject[kHeaders][kHeadersList] = request.headersList + requestObject[kHeaders][kGuard] = 'immutable' + requestObject[kRealm] = request.client + + // 5.4.2.1 + requestList.push(requestObject) + } + + // 5.4.3 + promise.resolve(Object.freeze(requestList)) + }) + + return promise.promise + } + + /** + * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm + * @param {CacheBatchOperation[]} operations + * @returns {requestResponseList} + */ + #batchCacheOperations (operations) { + // 1. + const cache = this.#relevantRequestResponseList + + // 2. + const backupCache = [...cache] + + // 3. + const addedItems = [] + + // 4.1 + const resultList = [] + + try { + // 4.2 + for (const operation of operations) { + // 4.2.1 + if (operation.type !== 'delete' && operation.type !== 'put') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'operation type does not match "delete" or "put"' + }) + } + + // 4.2.2 + if (operation.type === 'delete' && operation.response != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'delete operation should not have an associated response' + }) + } + + // 4.2.3 + if (this.#queryCache(operation.request, operation.options, addedItems).length) { + throw new DOMException('???', 'InvalidStateError') + } + + // 4.2.4 + let requestResponses + + // 4.2.5 + if (operation.type === 'delete') { + // 4.2.5.1 + requestResponses = this.#queryCache(operation.request, operation.options) + + // TODO: the spec is wrong, this is needed to pass WPTs + if (requestResponses.length === 0) { + return [] + } + + // 4.2.5.2 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) + + // 4.2.5.2.1 + cache.splice(idx, 1) + } + } else if (operation.type === 'put') { // 4.2.6 + // 4.2.6.1 + if (operation.response == null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'put operation should have an associated response' + }) + } + + // 4.2.6.2 + const r = operation.request + + // 4.2.6.3 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'expected http or https scheme' + }) + } + + // 4.2.6.4 + if (r.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'not get method' + }) + } + + // 4.2.6.5 + if (operation.options != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'options must not be defined' + }) + } + + // 4.2.6.6 + requestResponses = this.#queryCache(operation.request) + + // 4.2.6.7 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) + + // 4.2.6.7.1 + cache.splice(idx, 1) + } + + // 4.2.6.8 + cache.push([operation.request, operation.response]) + + // 4.2.6.10 + addedItems.push([operation.request, operation.response]) + } + + // 4.2.7 + resultList.push([operation.request, operation.response]) + } + + // 4.3 + return resultList + } catch (e) { // 5. + // 5.1 + this.#relevantRequestResponseList.length = 0 + + // 5.2 + this.#relevantRequestResponseList = backupCache + + // 5.3 + throw e + } + } + + /** + * @see https://w3c.github.io/ServiceWorker/#query-cache + * @param {any} requestQuery + * @param {import('../../types/cache').CacheQueryOptions} options + * @param {requestResponseList} targetStorage + * @returns {requestResponseList} + */ + #queryCache (requestQuery, options, targetStorage) { + /** @type {requestResponseList} */ + const resultList = [] + + const storage = targetStorage ?? this.#relevantRequestResponseList + + for (const requestResponse of storage) { + const [cachedRequest, cachedResponse] = requestResponse + if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { + resultList.push(requestResponse) + } + } + + return resultList + } + + /** + * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm + * @param {any} requestQuery + * @param {any} request + * @param {any | null} response + * @param {import('../../types/cache').CacheQueryOptions | undefined} options + * @returns {boolean} + */ + #requestMatchesCachedItem (requestQuery, request, response = null, options) { + // if (options?.ignoreMethod === false && request.method === 'GET') { + // return false + // } + + const queryURL = new URL(requestQuery.url) + + const cachedURL = new URL(request.url) + + if (options?.ignoreSearch) { + cachedURL.search = '' + + queryURL.search = '' + } + + if (!urlEquals(queryURL, cachedURL, true)) { + return false + } + + if ( + response == null || + options?.ignoreVary || + !response.headersList.contains('vary') + ) { + return true + } + + const fieldValues = getFieldValues(response.headersList.get('vary')) + + for (const fieldValue of fieldValues) { + if (fieldValue === '*') { + return false + } + + const requestValue = request.headersList.get(fieldValue) + const queryValue = requestQuery.headersList.get(fieldValue) + + // If one has the header and the other doesn't, or one has + // a different value than the other, return false + if (requestValue !== queryValue) { + return false + } + } + + return true + } +} + +Object.defineProperties(Cache.prototype, { + [Symbol.toStringTag]: { + value: 'Cache', + configurable: true + }, + match: kEnumerableProperty, + matchAll: kEnumerableProperty, + add: kEnumerableProperty, + addAll: kEnumerableProperty, + put: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty +}) + +const cacheQueryOptionConverters = [ + { + key: 'ignoreSearch', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'ignoreMethod', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'ignoreVary', + converter: webidl.converters.boolean, + defaultValue: false + } +] + +webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters) + +webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ + ...cacheQueryOptionConverters, + { + key: 'cacheName', + converter: webidl.converters.DOMString + } +]) + +webidl.converters.Response = webidl.interfaceConverter(Response) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.RequestInfo +) + +module.exports = { + Cache +} + + +/***/ }), + +/***/ 6452: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kConstruct } = __nccwpck_require__(5014) +const { Cache } = __nccwpck_require__(3741) +const { webidl } = __nccwpck_require__(7472) +const { kEnumerableProperty } = __nccwpck_require__(162) + +class CacheStorage { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map + * @type {Map} + */ + async has (cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' }) + + cacheName = webidl.converters.DOMString(cacheName) + + // 2.1.1 + // 2.2 + return this.#caches.has(cacheName) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open + * @param {string} cacheName + * @returns {Promise} + */ + async open (cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' }) + + cacheName = webidl.converters.DOMString(cacheName) + + // 2.1 + if (this.#caches.has(cacheName)) { + // await caches.open('v1') !== await caches.open('v1') + + // 2.1.1 + const cache = this.#caches.get(cacheName) + + // 2.1.1.1 + return new Cache(kConstruct, cache) + } + + // 2.2 + const cache = [] + + // 2.3 + this.#caches.set(cacheName, cache) + + // 2.4 + return new Cache(kConstruct, cache) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete + * @param {string} cacheName + * @returns {Promise} + */ + async delete (cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' }) + + cacheName = webidl.converters.DOMString(cacheName) + + return this.#caches.delete(cacheName) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys + * @returns {string[]} + */ + async keys () { + webidl.brandCheck(this, CacheStorage) + + // 2.1 + const keys = this.#caches.keys() + + // 2.2 + return [...keys] + } +} + +Object.defineProperties(CacheStorage.prototype, { + [Symbol.toStringTag]: { + value: 'CacheStorage', + configurable: true + }, + match: kEnumerableProperty, + has: kEnumerableProperty, + open: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty +}) + +module.exports = { + CacheStorage +} + + +/***/ }), + +/***/ 5014: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +module.exports = { + kConstruct: (__nccwpck_require__(249).kConstruct) +} + + +/***/ }), + +/***/ 2411: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(2613) +const { URLSerializer } = __nccwpck_require__(5892) +const { isValidHeaderName } = __nccwpck_require__(7189) + +/** + * @see https://url.spec.whatwg.org/#concept-url-equals + * @param {URL} A + * @param {URL} B + * @param {boolean | undefined} excludeFragment + * @returns {boolean} + */ +function urlEquals (A, B, excludeFragment = false) { + const serializedA = URLSerializer(A, excludeFragment) + + const serializedB = URLSerializer(B, excludeFragment) + + return serializedA === serializedB +} + +/** + * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262 + * @param {string} header + */ +function fieldValues (header) { + assert(header !== null) + + const values = [] + + for (let value of header.split(',')) { + value = value.trim() + + if (!value.length) { + continue + } else if (!isValidHeaderName(value)) { + continue + } + + values.push(value) + } + + return values +} + +module.exports = { + urlEquals, + fieldValues +} + + +/***/ }), + +/***/ 5635: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// @ts-check + + + +/* global WebAssembly */ + +const assert = __nccwpck_require__(2613) +const net = __nccwpck_require__(9278) +const http = __nccwpck_require__(8611) +const { pipeline } = __nccwpck_require__(2203) +const util = __nccwpck_require__(162) +const timers = __nccwpck_require__(7034) +const Request = __nccwpck_require__(8773) +const DispatcherBase = __nccwpck_require__(6215) +const { + RequestContentLengthMismatchError, + ResponseContentLengthMismatchError, + InvalidArgumentError, + RequestAbortedError, + HeadersTimeoutError, + HeadersOverflowError, + SocketError, + InformationalError, + BodyTimeoutError, + HTTPParserError, + ResponseExceededMaxSizeError, + ClientDestroyedError +} = __nccwpck_require__(3785) +const buildConnector = __nccwpck_require__(5786) +const { + kUrl, + kReset, + kServerName, + kClient, + kBusy, + kParser, + kConnect, + kBlocking, + kResuming, + kRunning, + kPending, + kSize, + kWriting, + kQueue, + kConnected, + kConnecting, + kNeedDrain, + kNoRef, + kKeepAliveDefaultTimeout, + kHostHeader, + kPendingIdx, + kRunningIdx, + kError, + kPipelining, + kSocket, + kKeepAliveTimeoutValue, + kMaxHeadersSize, + kKeepAliveMaxTimeout, + kKeepAliveTimeoutThreshold, + kHeadersTimeout, + kBodyTimeout, + kStrictContentLength, + kConnector, + kMaxRedirections, + kMaxRequests, + kCounter, + kClose, + kDestroy, + kDispatch, + kInterceptors, + kLocalAddress, + kMaxResponseSize, + kHTTPConnVersion, + // HTTP2 + kHost, + kHTTP2Session, + kHTTP2SessionState, + kHTTP2BuildRequest, + kHTTP2CopyHeaders, + kHTTP1BuildRequest +} = __nccwpck_require__(249) + +/** @type {import('http2')} */ +let http2 +try { + http2 = __nccwpck_require__(5675) +} catch { + // @ts-ignore + http2 = { constants: {} } +} + +const { + constants: { + HTTP2_HEADER_AUTHORITY, + HTTP2_HEADER_METHOD, + HTTP2_HEADER_PATH, + HTTP2_HEADER_SCHEME, + HTTP2_HEADER_CONTENT_LENGTH, + HTTP2_HEADER_EXPECT, + HTTP2_HEADER_STATUS + } +} = http2 + +// Experimental +let h2ExperimentalWarned = false + +const FastBuffer = Buffer[Symbol.species] + +const kClosedResolve = Symbol('kClosedResolve') + +const channels = {} + +try { + const diagnosticsChannel = __nccwpck_require__(1637) + channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders') + channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect') + channels.connectError = diagnosticsChannel.channel('undici:client:connectError') + channels.connected = diagnosticsChannel.channel('undici:client:connected') +} catch { + channels.sendHeaders = { hasSubscribers: false } + channels.beforeConnect = { hasSubscribers: false } + channels.connectError = { hasSubscribers: false } + channels.connected = { hasSubscribers: false } +} + +/** + * @type {import('../types/client').default} + */ +class Client extends DispatcherBase { + /** + * + * @param {string|URL} url + * @param {import('../types/client').Client.Options} options + */ + constructor (url, { + interceptors, + maxHeaderSize, + headersTimeout, + socketTimeout, + requestTimeout, + connectTimeout, + bodyTimeout, + idleTimeout, + keepAlive, + keepAliveTimeout, + maxKeepAliveTimeout, + keepAliveMaxTimeout, + keepAliveTimeoutThreshold, + socketPath, + pipelining, + tls, + strictContentLength, + maxCachedSessions, + maxRedirections, + connect, + maxRequestsPerClient, + localAddress, + maxResponseSize, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + // h2 + allowH2, + maxConcurrentStreams + } = {}) { + super() + + if (keepAlive !== undefined) { + throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead') + } + + if (socketTimeout !== undefined) { + throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead') + } + + if (requestTimeout !== undefined) { + throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead') + } + + if (idleTimeout !== undefined) { + throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead') + } + + if (maxKeepAliveTimeout !== undefined) { + throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead') + } + + if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { + throw new InvalidArgumentError('invalid maxHeaderSize') + } + + if (socketPath != null && typeof socketPath !== 'string') { + throw new InvalidArgumentError('invalid socketPath') + } + + if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { + throw new InvalidArgumentError('invalid connectTimeout') + } + + if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { + throw new InvalidArgumentError('invalid keepAliveTimeout') + } + + if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { + throw new InvalidArgumentError('invalid keepAliveMaxTimeout') + } + + if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { + throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold') + } + + if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError('headersTimeout must be a positive integer or zero') + } + + if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { + throw new InvalidArgumentError('maxRequestsPerClient must be a positive number') + } + + if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) { + throw new InvalidArgumentError('localAddress must be valid string IP address') + } + + if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { + throw new InvalidArgumentError('maxResponseSize must be a positive number') + } + + if ( + autoSelectFamilyAttemptTimeout != null && + (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1) + ) { + throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number') + } + + // h2 + if (allowH2 != null && typeof allowH2 !== 'boolean') { + throw new InvalidArgumentError('allowH2 must be a valid boolean value') + } + + if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) { + throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0') + } + + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), + ...connect + }) + } + + this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) + ? interceptors.Client + : [createRedirectInterceptor({ maxRedirections })] + this[kUrl] = util.parseOrigin(url) + this[kConnector] = connect + this[kSocket] = null + this[kPipelining] = pipelining != null ? pipelining : 1 + this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize + this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout + this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout + this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold + this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout] + this[kServerName] = null + this[kLocalAddress] = localAddress != null ? localAddress : null + this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n` + this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3 + this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3 + this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength + this[kMaxRedirections] = maxRedirections + this[kMaxRequests] = maxRequestsPerClient + this[kClosedResolve] = null + this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1 + this[kHTTPConnVersion] = 'h1' + + // HTTP/2 + this[kHTTP2Session] = null + this[kHTTP2SessionState] = !allowH2 + ? null + : { + // streams: null, // Fixed queue of streams - For future support of `push` + openStreams: 0, // Keep track of them to decide wether or not unref the session + maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server + } + this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}` + + // kQueue is built up of 3 sections separated by + // the kRunningIdx and kPendingIdx indices. + // | complete | running | pending | + // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length + // kRunningIdx points to the first running element. + // kPendingIdx points to the first pending element. + // This implements a fast queue with an amortized + // time of O(1). + + this[kQueue] = [] + this[kRunningIdx] = 0 + this[kPendingIdx] = 0 + } + + get pipelining () { + return this[kPipelining] + } + + set pipelining (value) { + this[kPipelining] = value + resume(this, true) + } + + get [kPending] () { + return this[kQueue].length - this[kPendingIdx] + } + + get [kRunning] () { + return this[kPendingIdx] - this[kRunningIdx] + } + + get [kSize] () { + return this[kQueue].length - this[kRunningIdx] + } + + get [kConnected] () { + return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed + } + + get [kBusy] () { + const socket = this[kSocket] + return ( + (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) || + (this[kSize] >= (this[kPipelining] || 1)) || + this[kPending] > 0 + ) + } + + /* istanbul ignore: only used for test */ + [kConnect] (cb) { + connect(this) + this.once('connect', cb) + } + + [kDispatch] (opts, handler) { + const origin = opts.origin || this[kUrl].origin + + const request = this[kHTTPConnVersion] === 'h2' + ? Request[kHTTP2BuildRequest](origin, opts, handler) + : Request[kHTTP1BuildRequest](origin, opts, handler) + + this[kQueue].push(request) + if (this[kResuming]) { + // Do nothing. + } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { + // Wait a tick in case stream/iterator is ended in the same tick. + this[kResuming] = 1 + process.nextTick(resume, this) + } else { + resume(this, true) + } + + if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { + this[kNeedDrain] = 2 + } + + return this[kNeedDrain] < 2 + } + + async [kClose] () { + // TODO: for H2 we need to gracefully flush the remaining enqueued + // request and close each stream. + return new Promise((resolve) => { + if (!this[kSize]) { + resolve(null) + } else { + this[kClosedResolve] = resolve + } + }) + } + + async [kDestroy] (err) { + return new Promise((resolve) => { + const requests = this[kQueue].splice(this[kPendingIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(this, request, err) + } + + const callback = () => { + if (this[kClosedResolve]) { + // TODO (fix): Should we error here with ClientDestroyedError? + this[kClosedResolve]() + this[kClosedResolve] = null + } + resolve() + } + + if (this[kHTTP2Session] != null) { + util.destroy(this[kHTTP2Session], err) + this[kHTTP2Session] = null + this[kHTTP2SessionState] = null + } + + if (!this[kSocket]) { + queueMicrotask(callback) + } else { + util.destroy(this[kSocket].on('close', callback), err) + } + + resume(this) + }) + } +} + +function onHttp2SessionError (err) { + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + + this[kSocket][kError] = err + + onError(this[kClient], err) +} + +function onHttp2FrameError (type, code, id) { + const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) + + if (id === 0) { + this[kSocket][kError] = err + onError(this[kClient], err) + } +} + +function onHttp2SessionEnd () { + util.destroy(this, new SocketError('other side closed')) + util.destroy(this[kSocket], new SocketError('other side closed')) +} + +function onHTTP2GoAway (code) { + const client = this[kClient] + const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`) + client[kSocket] = null + client[kHTTP2Session] = null + + if (client.destroyed) { + assert(this[kPending] === 0) + + // Fail entire queue. + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(this, request, err) + } + } else if (client[kRunning] > 0) { + // Fail head of pipeline. + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null + + errorRequest(client, request, err) + } + + client[kPendingIdx] = client[kRunningIdx] + + assert(client[kRunning] === 0) + + client.emit('disconnect', + client[kUrl], + [client], + err + ) + + resume(client) +} + +const constants = __nccwpck_require__(5658) +const createRedirectInterceptor = __nccwpck_require__(3537) +const EMPTY_BUF = Buffer.alloc(0) + +async function lazyllhttp () { + const llhttpWasmData = process.env.JEST_WORKER_ID ? __nccwpck_require__(3008) : undefined + + let mod + try { + mod = await WebAssembly.compile(Buffer.from(__nccwpck_require__(9240), 'base64')) + } catch (e) { + /* istanbul ignore next */ + + // We could check if the error was caused by the simd option not + // being enabled, but the occurring of this other error + // * https://github.com/emscripten-core/emscripten/issues/11495 + // got me to remove that check to avoid breaking Node 12. + mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || __nccwpck_require__(3008), 'base64')) + } + + return await WebAssembly.instantiate(mod, { + env: { + + + wasm_on_url: (p, at, len) => { + /* istanbul ignore next */ + return 0 + }, + wasm_on_status: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_message_begin: (p) => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onMessageBegin() || 0 + }, + wasm_on_header_field: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_header_value: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0 + }, + wasm_on_body: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_message_complete: (p) => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onMessageComplete() || 0 + } + + + } + }) +} + +let llhttpInstance = null +let llhttpPromise = lazyllhttp() +llhttpPromise.catch() + +let currentParser = null +let currentBufferRef = null +let currentBufferSize = 0 +let currentBufferPtr = null + +const TIMEOUT_HEADERS = 1 +const TIMEOUT_BODY = 2 +const TIMEOUT_IDLE = 3 + +class Parser { + constructor (client, socket, { exports }) { + assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0) + + this.llhttp = exports + this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE) + this.client = client + this.socket = socket + this.timeout = null + this.timeoutValue = null + this.timeoutType = null + this.statusCode = null + this.statusText = '' + this.upgrade = false + this.headers = [] + this.headersSize = 0 + this.headersMaxSize = client[kMaxHeadersSize] + this.shouldKeepAlive = false + this.paused = false + this.resume = this.resume.bind(this) + + this.bytesRead = 0 + + this.keepAlive = '' + this.contentLength = '' + this.connection = '' + this.maxResponseSize = client[kMaxResponseSize] + } + + setTimeout (value, type) { + this.timeoutType = type + if (value !== this.timeoutValue) { + timers.clearTimeout(this.timeout) + if (value) { + this.timeout = timers.setTimeout(onParserTimeout, value, this) + // istanbul ignore else: only for jest + if (this.timeout.unref) { + this.timeout.unref() + } + } else { + this.timeout = null + } + this.timeoutValue = value + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + } + + resume () { + if (this.socket.destroyed || !this.paused) { + return + } + + assert(this.ptr != null) + assert(currentParser == null) + + this.llhttp.llhttp_resume(this.ptr) + + assert(this.timeoutType === TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + this.paused = false + this.execute(this.socket.read() || EMPTY_BUF) // Flush parser. + this.readMore() + } + + readMore () { + while (!this.paused && this.ptr) { + const chunk = this.socket.read() + if (chunk === null) { + break + } + this.execute(chunk) + } + } + + execute (data) { + assert(this.ptr != null) + assert(currentParser == null) + assert(!this.paused) + + const { socket, llhttp } = this + + if (data.length > currentBufferSize) { + if (currentBufferPtr) { + llhttp.free(currentBufferPtr) + } + currentBufferSize = Math.ceil(data.length / 4096) * 4096 + currentBufferPtr = llhttp.malloc(currentBufferSize) + } + + new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data) + + // Call `execute` on the wasm parser. + // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data, + // and finally the length of bytes to parse. + // The return value is an error code or `constants.ERROR.OK`. + try { + let ret + + try { + currentBufferRef = data + currentParser = this + ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length) + + } catch (err) { + /* istanbul ignore next: difficult to make a test case for */ + throw err + } finally { + currentParser = null + currentBufferRef = null + } + + const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr + + if (ret === constants.ERROR.PAUSED_UPGRADE) { + this.onUpgrade(data.slice(offset)) + } else if (ret === constants.ERROR.PAUSED) { + this.paused = true + socket.unshift(data.slice(offset)) + } else if (ret !== constants.ERROR.OK) { + const ptr = llhttp.llhttp_get_error_reason(this.ptr) + let message = '' + /* istanbul ignore else: difficult to make a test case for */ + if (ptr) { + const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0) + message = + 'Response does not match the HTTP/1.1 protocol (' + + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + + ')' + } + throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)) + } + } catch (err) { + util.destroy(socket, err) + } + } + + destroy () { + assert(this.ptr != null) + assert(currentParser == null) + + this.llhttp.llhttp_free(this.ptr) + this.ptr = null + + timers.clearTimeout(this.timeout) + this.timeout = null + this.timeoutValue = null + this.timeoutType = null + + this.paused = false + } + + onStatus (buf) { + this.statusText = buf.toString() + } + + onMessageBegin () { + const { socket, client } = this + + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + if (!request) { + return -1 + } + } + + onHeaderField (buf) { + const len = this.headers.length + + if ((len & 1) === 0) { + this.headers.push(buf) + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } + + this.trackHeader(buf.length) + } + + onHeaderValue (buf) { + let len = this.headers.length + + if ((len & 1) === 1) { + this.headers.push(buf) + len += 1 + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } + + const key = this.headers[len - 2] + if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') { + this.keepAlive += buf.toString() + } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') { + this.connection += buf.toString() + } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') { + this.contentLength += buf.toString() + } + + this.trackHeader(buf.length) + } + + trackHeader (len) { + this.headersSize += len + if (this.headersSize >= this.headersMaxSize) { + util.destroy(this.socket, new HeadersOverflowError()) + } + } + + onUpgrade (head) { + const { upgrade, client, socket, headers, statusCode } = this + + assert(upgrade) + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert(!socket.destroyed) + assert(socket === client[kSocket]) + assert(!this.paused) + assert(request.upgrade || request.method === 'CONNECT') + + this.statusCode = null + this.statusText = '' + this.shouldKeepAlive = null + + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + socket.unshift(head) + + socket[kParser].destroy() + socket[kParser] = null + + socket[kClient] = null + socket[kError] = null + socket + .removeListener('error', onSocketError) + .removeListener('readable', onSocketReadable) + .removeListener('end', onSocketEnd) + .removeListener('close', onSocketClose) + + client[kSocket] = null + client[kQueue][client[kRunningIdx]++] = null + client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade')) + + try { + request.onUpgrade(statusCode, headers, socket) + } catch (err) { + util.destroy(socket, err) + } + + resume(client) + } + + onHeadersComplete (statusCode, upgrade, shouldKeepAlive) { + const { client, socket, headers, statusText } = this + + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + + /* istanbul ignore next: difficult to make a test case for */ + if (!request) { + return -1 + } + + assert(!this.upgrade) + assert(this.statusCode < 200) + + if (statusCode === 100) { + util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket))) + return -1 + } + + /* this can only happen if server is misbehaving */ + if (upgrade && !request.upgrade) { + util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket))) + return -1 + } + + assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS) + + this.statusCode = statusCode + this.shouldKeepAlive = ( + shouldKeepAlive || + // Override llhttp value which does not allow keepAlive for HEAD. + (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive') + ) + + if (this.statusCode >= 200) { + const bodyTimeout = request.bodyTimeout != null + ? request.bodyTimeout + : client[kBodyTimeout] + this.setTimeout(bodyTimeout, TIMEOUT_BODY) + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + if (request.method === 'CONNECT') { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } + + if (upgrade) { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } + + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + if (this.shouldKeepAlive && client[kPipelining]) { + const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null + + if (keepAliveTimeout != null) { + const timeout = Math.min( + keepAliveTimeout - client[kKeepAliveTimeoutThreshold], + client[kKeepAliveMaxTimeout] + ) + if (timeout <= 0) { + socket[kReset] = true + } else { + client[kKeepAliveTimeoutValue] = timeout + } + } else { + client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout] + } + } else { + // Stop more requests from being dispatched. + socket[kReset] = true + } + + const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false + + if (request.aborted) { + return -1 + } + + if (request.method === 'HEAD') { + return 1 + } + + if (statusCode < 200) { + return 1 + } + + if (socket[kBlocking]) { + socket[kBlocking] = false + resume(client) + } + + return pause ? constants.ERROR.PAUSED : 0 + } + + onBody (buf) { + const { client, socket, statusCode, maxResponseSize } = this + + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert.strictEqual(this.timeoutType, TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + assert(statusCode >= 200) + + if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { + util.destroy(socket, new ResponseExceededMaxSizeError()) + return -1 + } + + this.bytesRead += buf.length + + if (request.onData(buf) === false) { + return constants.ERROR.PAUSED + } + } + + onMessageComplete () { + const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this + + if (socket.destroyed && (!statusCode || shouldKeepAlive)) { + return -1 + } + + if (upgrade) { + return + } + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert(statusCode >= 100) + + this.statusCode = null + this.statusText = '' + this.bytesRead = 0 + this.contentLength = '' + this.keepAlive = '' + this.connection = '' + + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + if (statusCode < 200) { + return + } + + /* istanbul ignore next: should be handled by llhttp? */ + if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) { + util.destroy(socket, new ResponseContentLengthMismatchError()) + return -1 + } + + request.onComplete(headers) + + client[kQueue][client[kRunningIdx]++] = null + + if (socket[kWriting]) { + assert.strictEqual(client[kRunning], 0) + // Response completed before request. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (!shouldKeepAlive) { + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (socket[kReset] && client[kRunning] === 0) { + // Destroy socket once all requests have completed. + // The request at the tail of the pipeline is the one + // that requested reset and no further requests should + // have been queued since then. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (client[kPipelining] === 1) { + // We must wait a full event loop cycle to reuse this socket to make sure + // that non-spec compliant servers are not closing the connection even if they + // said they won't. + setImmediate(resume, client) + } else { + resume(client) + } + } +} + +function onParserTimeout (parser) { + const { socket, timeoutType, client } = parser + + /* istanbul ignore else */ + if (timeoutType === TIMEOUT_HEADERS) { + if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { + assert(!parser.paused, 'cannot be paused while waiting for headers') + util.destroy(socket, new HeadersTimeoutError()) + } + } else if (timeoutType === TIMEOUT_BODY) { + if (!parser.paused) { + util.destroy(socket, new BodyTimeoutError()) + } + } else if (timeoutType === TIMEOUT_IDLE) { + assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]) + util.destroy(socket, new InformationalError('socket idle timeout')) + } +} + +function onSocketReadable () { + const { [kParser]: parser } = this + if (parser) { + parser.readMore() + } +} + +function onSocketError (err) { + const { [kClient]: client, [kParser]: parser } = this + + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + + if (client[kHTTPConnVersion] !== 'h2') { + // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded + // to the user. + if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so for as a valid response. + parser.onMessageComplete() + return + } + } + + this[kError] = err + + onError(this[kClient], err) +} + +function onError (client, err) { + if ( + client[kRunning] === 0 && + err.code !== 'UND_ERR_INFO' && + err.code !== 'UND_ERR_SOCKET' + ) { + // Error is not caused by running request and not a recoverable + // socket error. + + assert(client[kPendingIdx] === client[kRunningIdx]) + + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(client, request, err) + } + assert(client[kSize] === 0) + } +} + +function onSocketEnd () { + const { [kParser]: parser, [kClient]: client } = this + + if (client[kHTTPConnVersion] !== 'h2') { + if (parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + return + } + } + + util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))) +} + +function onSocketClose () { + const { [kClient]: client, [kParser]: parser } = this + + if (client[kHTTPConnVersion] === 'h1' && parser) { + if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + } + + this[kParser].destroy() + this[kParser] = null + } + + const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)) + + client[kSocket] = null + + if (client.destroyed) { + assert(client[kPending] === 0) + + // Fail entire queue. + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(client, request, err) + } + } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') { + // Fail head of pipeline. + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null + + errorRequest(client, request, err) + } + + client[kPendingIdx] = client[kRunningIdx] + + assert(client[kRunning] === 0) + + client.emit('disconnect', client[kUrl], [client], err) + + resume(client) +} + +async function connect (client) { + assert(!client[kConnecting]) + assert(!client[kSocket]) + + let { host, hostname, protocol, port } = client[kUrl] + + // Resolve ipv6 + if (hostname[0] === '[') { + const idx = hostname.indexOf(']') + + assert(idx !== -1) + const ip = hostname.substring(1, idx) + + assert(net.isIP(ip)) + hostname = ip + } + + client[kConnecting] = true + + if (channels.beforeConnect.hasSubscribers) { + channels.beforeConnect.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector] + }) + } + + try { + const socket = await new Promise((resolve, reject) => { + client[kConnector]({ + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, (err, socket) => { + if (err) { + reject(err) + } else { + resolve(socket) + } + }) + }) + + if (client.destroyed) { + util.destroy(socket.on('error', () => {}), new ClientDestroyedError()) + return + } + + client[kConnecting] = false + + assert(socket) + + const isH2 = socket.alpnProtocol === 'h2' + if (isH2) { + if (!h2ExperimentalWarned) { + h2ExperimentalWarned = true + process.emitWarning('H2 support is experimental, expect them to change at any time.', { + code: 'UNDICI-H2' + }) + } + + const session = http2.connect(client[kUrl], { + createConnection: () => socket, + peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams + }) + + client[kHTTPConnVersion] = 'h2' + session[kClient] = client + session[kSocket] = socket + session.on('error', onHttp2SessionError) + session.on('frameError', onHttp2FrameError) + session.on('end', onHttp2SessionEnd) + session.on('goaway', onHTTP2GoAway) + session.on('close', onSocketClose) + session.unref() + + client[kHTTP2Session] = session + socket[kHTTP2Session] = session + } else { + if (!llhttpInstance) { + llhttpInstance = await llhttpPromise + llhttpPromise = null + } + + socket[kNoRef] = false + socket[kWriting] = false + socket[kReset] = false + socket[kBlocking] = false + socket[kParser] = new Parser(client, socket, llhttpInstance) + } + + socket[kCounter] = 0 + socket[kMaxRequests] = client[kMaxRequests] + socket[kClient] = client + socket[kError] = null + + socket + .on('error', onSocketError) + .on('readable', onSocketReadable) + .on('end', onSocketEnd) + .on('close', onSocketClose) + + client[kSocket] = socket + + if (channels.connected.hasSubscribers) { + channels.connected.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + socket + }) + } + client.emit('connect', client[kUrl], [client]) + } catch (err) { + if (client.destroyed) { + return + } + + client[kConnecting] = false + + if (channels.connectError.hasSubscribers) { + channels.connectError.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + error: err + }) + } + + if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { + assert(client[kRunning] === 0) + while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { + const request = client[kQueue][client[kPendingIdx]++] + errorRequest(client, request, err) + } + } else { + onError(client, err) + } + + client.emit('connectionError', client[kUrl], [client], err) + } + + resume(client) +} + +function emitDrain (client) { + client[kNeedDrain] = 0 + client.emit('drain', client[kUrl], [client]) +} + +function resume (client, sync) { + if (client[kResuming] === 2) { + return + } + + client[kResuming] = 2 + + _resume(client, sync) + client[kResuming] = 0 + + if (client[kRunningIdx] > 256) { + client[kQueue].splice(0, client[kRunningIdx]) + client[kPendingIdx] -= client[kRunningIdx] + client[kRunningIdx] = 0 + } +} + +function _resume (client, sync) { + while (true) { + if (client.destroyed) { + assert(client[kPending] === 0) + return + } + + if (client[kClosedResolve] && !client[kSize]) { + client[kClosedResolve]() + client[kClosedResolve] = null + return + } + + const socket = client[kSocket] + + if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') { + if (client[kSize] === 0) { + if (!socket[kNoRef] && socket.unref) { + socket.unref() + socket[kNoRef] = true + } + } else if (socket[kNoRef] && socket.ref) { + socket.ref() + socket[kNoRef] = false + } + + if (client[kSize] === 0) { + if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { + socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE) + } + } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { + if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { + const request = client[kQueue][client[kRunningIdx]] + const headersTimeout = request.headersTimeout != null + ? request.headersTimeout + : client[kHeadersTimeout] + socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS) + } + } + } + + if (client[kBusy]) { + client[kNeedDrain] = 2 + } else if (client[kNeedDrain] === 2) { + if (sync) { + client[kNeedDrain] = 1 + process.nextTick(emitDrain, client) + } else { + emitDrain(client) + } + continue + } + + if (client[kPending] === 0) { + return + } + + if (client[kRunning] >= (client[kPipelining] || 1)) { + return + } + + const request = client[kQueue][client[kPendingIdx]] + + if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) { + if (client[kRunning] > 0) { + return + } + + client[kServerName] = request.servername + + if (socket && socket.servername !== request.servername) { + util.destroy(socket, new InformationalError('servername changed')) + return + } + } + + if (client[kConnecting]) { + return + } + + if (!socket && !client[kHTTP2Session]) { + connect(client) + return + } + + if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { + return + } + + if (client[kRunning] > 0 && !request.idempotent) { + // Non-idempotent request cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return + } + + if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) { + // Don't dispatch an upgrade until all preceding requests have completed. + // A misbehaving server might upgrade the connection before all pipelined + // request has completed. + return + } + + if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && + (util.isStream(request.body) || util.isAsyncIterable(request.body))) { + // Request with stream or iterator body can error while other requests + // are inflight and indirectly error those as well. + // Ensure this doesn't happen by waiting for inflight + // to complete before dispatching. + + // Request with stream or iterator body cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return + } + + if (!request.aborted && write(client, request)) { + client[kPendingIdx]++ + } else { + client[kQueue].splice(client[kPendingIdx], 1) + } + } +} + +// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2 +function shouldSendContentLength (method) { + return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT' +} + +function write (client, request) { + if (client[kHTTPConnVersion] === 'h2') { + writeH2(client, client[kHTTP2Session], request) + return + } + + const { body, method, path, host, upgrade, headers, blocking, reset } = request + + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 + + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. + + const expectsPayload = ( + method === 'PUT' || + method === 'POST' || + method === 'PATCH' + ) + + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) + } + + const bodyLength = util.bodyLength(body) + + let contentLength = bodyLength + + if (contentLength === null) { + contentLength = request.contentLength + } + + if (contentLength === 0 && !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. + + contentLength = null + } + + // https://github.com/nodejs/undici/issues/2046 + // A user agent may send a Content-Length header with 0 value, this should be allowed. + if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + errorRequest(client, request, new RequestContentLengthMismatchError()) + return false + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + const socket = client[kSocket] + + try { + request.onConnect((err) => { + if (request.aborted || request.completed) { + return + } + + errorRequest(client, request, err || new RequestAbortedError()) + + util.destroy(socket, new InformationalError('aborted')) + }) + } catch (err) { + errorRequest(client, request, err) + } + + if (request.aborted) { + return false + } + + if (method === 'HEAD') { + // https://github.com/mcollina/undici/issues/258 + // Close after a HEAD request to interop with misbehaving servers + // that may send a body in the response. + + socket[kReset] = true + } + + if (upgrade || method === 'CONNECT') { + // On CONNECT or upgrade, block pipeline from dispatching further + // requests on this connection. + + socket[kReset] = true + } + + if (reset != null) { + socket[kReset] = reset + } + + if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { + socket[kReset] = true + } + + if (blocking) { + socket[kBlocking] = true + } + + let header = `${method} ${path} HTTP/1.1\r\n` + + if (typeof host === 'string') { + header += `host: ${host}\r\n` + } else { + header += client[kHostHeader] + } + + if (upgrade) { + header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n` + } else if (client[kPipelining] && !socket[kReset]) { + header += 'connection: keep-alive\r\n' + } else { + header += 'connection: close\r\n' + } + + if (headers) { + header += headers + } + + if (channels.sendHeaders.hasSubscribers) { + channels.sendHeaders.publish({ request, headers: header, socket }) + } + + /* istanbul ignore else: assertion */ + if (!body || bodyLength === 0) { + if (contentLength === 0) { + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + assert(contentLength === null, 'no body must not have content length') + socket.write(`${header}\r\n`, 'latin1') + } + request.onRequestSent() + } else if (util.isBuffer(body)) { + assert(contentLength === body.byteLength, 'buffer body must have content length') + + socket.cork() + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + socket.write(body) + socket.uncork() + request.onBodySent(body) + request.onRequestSent() + if (!expectsPayload) { + socket[kReset] = true + } + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload }) + } else { + writeBlob({ body, client, request, socket, contentLength, header, expectsPayload }) + } + } else if (util.isStream(body)) { + writeStream({ body, client, request, socket, contentLength, header, expectsPayload }) + } else if (util.isIterable(body)) { + writeIterable({ body, client, request, socket, contentLength, header, expectsPayload }) + } else { + assert(false) + } + + return true +} + +function writeH2 (client, session, request) { + const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request + + let headers + if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim()) + else headers = reqHeaders + + if (upgrade) { + errorRequest(client, request, new Error('Upgrade not supported for H2')) + return false + } + + try { + // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event? + request.onConnect((err) => { + if (request.aborted || request.completed) { + return + } + + errorRequest(client, request, err || new RequestAbortedError()) + }) + } catch (err) { + errorRequest(client, request, err) + } + + if (request.aborted) { + return false + } + + /** @type {import('node:http2').ClientHttp2Stream} */ + let stream + const h2State = client[kHTTP2SessionState] + + headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost] + headers[HTTP2_HEADER_METHOD] = method + + if (method === 'CONNECT') { + session.ref() + // we are already connected, streams are pending, first request + // will create a new stream. We trigger a request to create the stream and wait until + // `ready` event is triggered + // We disabled endStream to allow the user to write to the stream + stream = session.request(headers, { endStream: false, signal }) + + if (stream.id && !stream.pending) { + request.onUpgrade(null, null, stream) + ++h2State.openStreams + } else { + stream.once('ready', () => { + request.onUpgrade(null, null, stream) + ++h2State.openStreams + }) + } + + stream.once('close', () => { + h2State.openStreams -= 1 + // TODO(HTTP/2): unref only if current streams count is 0 + if (h2State.openStreams === 0) session.unref() + }) + + return true + } + + // https://tools.ietf.org/html/rfc7540#section-8.3 + // :path and :scheme headers must be omited when sending CONNECT + + headers[HTTP2_HEADER_PATH] = path + headers[HTTP2_HEADER_SCHEME] = 'https' + + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 + + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. + + const expectsPayload = ( + method === 'PUT' || + method === 'POST' || + method === 'PATCH' + ) + + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) + } + + let contentLength = util.bodyLength(body) + + if (contentLength == null) { + contentLength = request.contentLength + } + + if (contentLength === 0 || !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. + + contentLength = null + } + + // https://github.com/nodejs/undici/issues/2046 + // A user agent may send a Content-Length header with 0 value, this should be allowed. + if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + errorRequest(client, request, new RequestContentLengthMismatchError()) + return false + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + if (contentLength != null) { + assert(body, 'no body must not have content length') + headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}` + } + + session.ref() + + const shouldEndStream = method === 'GET' || method === 'HEAD' + if (expectContinue) { + headers[HTTP2_HEADER_EXPECT] = '100-continue' + stream = session.request(headers, { endStream: shouldEndStream, signal }) + + stream.once('continue', writeBodyH2) + } else { + stream = session.request(headers, { + endStream: shouldEndStream, + signal + }) + writeBodyH2() + } + + // Increment counter as we have new several streams open + ++h2State.openStreams + + stream.once('response', headers => { + const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers + + if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) { + stream.pause() + } + }) + + stream.once('end', () => { + request.onComplete([]) + }) + + stream.on('data', (chunk) => { + if (request.onData(chunk) === false) { + stream.pause() + } + }) + + stream.once('close', () => { + h2State.openStreams -= 1 + // TODO(HTTP/2): unref only if current streams count is 0 + if (h2State.openStreams === 0) { + session.unref() + } + }) + + stream.once('error', function (err) { + if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { + h2State.streams -= 1 + util.destroy(stream, err) + } + }) + + stream.once('frameError', (type, code) => { + const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) + errorRequest(client, request, err) + + if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { + h2State.streams -= 1 + util.destroy(stream, err) + } + }) + + // stream.on('aborted', () => { + // // TODO(HTTP/2): Support aborted + // }) + + // stream.on('timeout', () => { + // // TODO(HTTP/2): Support timeout + // }) + + // stream.on('push', headers => { + // // TODO(HTTP/2): Suppor push + // }) + + // stream.on('trailers', headers => { + // // TODO(HTTP/2): Support trailers + // }) + + return true + + function writeBodyH2 () { + /* istanbul ignore else: assertion */ + if (!body) { + request.onRequestSent() + } else if (util.isBuffer(body)) { + assert(contentLength === body.byteLength, 'buffer body must have content length') + stream.cork() + stream.write(body) + stream.uncork() + stream.end() + request.onBodySent(body) + request.onRequestSent() + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable({ + client, + request, + contentLength, + h2stream: stream, + expectsPayload, + body: body.stream(), + socket: client[kSocket], + header: '' + }) + } else { + writeBlob({ + body, + client, + request, + contentLength, + expectsPayload, + h2stream: stream, + header: '', + socket: client[kSocket] + }) + } + } else if (util.isStream(body)) { + writeStream({ + body, + client, + request, + contentLength, + expectsPayload, + socket: client[kSocket], + h2stream: stream, + header: '' + }) + } else if (util.isIterable(body)) { + writeIterable({ + body, + client, + request, + contentLength, + expectsPayload, + header: '', + h2stream: stream, + socket: client[kSocket] + }) + } else { + assert(false) + } + } +} + +function writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined') + + if (client[kHTTPConnVersion] === 'h2') { + // For HTTP/2, is enough to pipe the stream + const pipe = pipeline( + body, + h2stream, + (err) => { + if (err) { + util.destroy(body, err) + util.destroy(h2stream, err) + } else { + request.onRequestSent() + } + } + ) + + pipe.on('data', onPipeData) + pipe.once('end', () => { + pipe.removeListener('data', onPipeData) + util.destroy(pipe) + }) + + function onPipeData (chunk) { + request.onBodySent(chunk) + } + + return + } + + let finished = false + + const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) + + const onData = function (chunk) { + if (finished) { + return + } + + try { + if (!writer.write(chunk) && this.pause) { + this.pause() + } + } catch (err) { + util.destroy(this, err) + } + } + const onDrain = function () { + if (finished) { + return + } + + if (body.resume) { + body.resume() + } + } + const onAbort = function () { + if (finished) { + return + } + const err = new RequestAbortedError() + queueMicrotask(() => onFinished(err)) + } + const onFinished = function (err) { + if (finished) { + return + } + + finished = true + + assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1)) + + socket + .off('drain', onDrain) + .off('error', onFinished) + + body + .removeListener('data', onData) + .removeListener('end', onFinished) + .removeListener('error', onFinished) + .removeListener('close', onAbort) + + if (!err) { + try { + writer.end() + } catch (er) { + err = er + } + } + + writer.destroy(err) + + if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) { + util.destroy(body, err) + } else { + util.destroy(body) + } + } + + body + .on('data', onData) + .on('end', onFinished) + .on('error', onFinished) + .on('close', onAbort) + + if (body.resume) { + body.resume() + } + + socket + .on('drain', onDrain) + .on('error', onFinished) +} + +async function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert(contentLength === body.size, 'blob body must have content length') + + const isH2 = client[kHTTPConnVersion] === 'h2' + try { + if (contentLength != null && contentLength !== body.size) { + throw new RequestContentLengthMismatchError() + } + + const buffer = Buffer.from(await body.arrayBuffer()) + + if (isH2) { + h2stream.cork() + h2stream.write(buffer) + h2stream.uncork() + } else { + socket.cork() + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + socket.write(buffer) + socket.uncork() + } + + request.onBodySent(buffer) + request.onRequestSent() + + if (!expectsPayload) { + socket[kReset] = true + } + + resume(client) + } catch (err) { + util.destroy(isH2 ? h2stream : socket, err) + } +} + +async function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined') + + let callback = null + function onDrain () { + if (callback) { + const cb = callback + callback = null + cb() + } + } + + const waitForDrain = () => new Promise((resolve, reject) => { + assert(callback === null) + + if (socket[kError]) { + reject(socket[kError]) + } else { + callback = resolve + } + }) + + if (client[kHTTPConnVersion] === 'h2') { + h2stream + .on('close', onDrain) + .on('drain', onDrain) + + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } + + const res = h2stream.write(chunk) + request.onBodySent(chunk) + if (!res) { + await waitForDrain() + } + } + } catch (err) { + h2stream.destroy(err) + } finally { + request.onRequestSent() + h2stream.end() + h2stream + .off('close', onDrain) + .off('drain', onDrain) + } + + return + } + + socket + .on('close', onDrain) + .on('drain', onDrain) + + const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } + + if (!writer.write(chunk)) { + await waitForDrain() + } + } + + writer.end() + } catch (err) { + writer.destroy(err) + } finally { + socket + .off('close', onDrain) + .off('drain', onDrain) + } +} + +class AsyncWriter { + constructor ({ socket, request, contentLength, client, expectsPayload, header }) { + this.socket = socket + this.request = request + this.contentLength = contentLength + this.client = client + this.bytesWritten = 0 + this.expectsPayload = expectsPayload + this.header = header + + socket[kWriting] = true + } + + write (chunk) { + const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this + + if (socket[kError]) { + throw socket[kError] + } + + if (socket.destroyed) { + return false + } + + const len = Buffer.byteLength(chunk) + if (!len) { + return true + } + + // We should defer writing chunks. + if (contentLength !== null && bytesWritten + len > contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + socket.cork() + + if (bytesWritten === 0) { + if (!expectsPayload) { + socket[kReset] = true + } + + if (contentLength === null) { + socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1') + } else { + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + } + } + + if (contentLength === null) { + socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1') + } + + this.bytesWritten += len + + const ret = socket.write(chunk) + + socket.uncork() + + request.onBodySent(chunk) + + if (!ret) { + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } + } + + return ret + } + + end () { + const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this + request.onRequestSent() + + socket[kWriting] = false + + if (socket[kError]) { + throw socket[kError] + } + + if (socket.destroyed) { + return + } + + if (bytesWritten === 0) { + if (expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD send a Content-Length in a request message when + // no Transfer-Encoding is sent and the request method defines a meaning + // for an enclosed payload body. + + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + socket.write(`${header}\r\n`, 'latin1') + } + } else if (contentLength === null) { + socket.write('\r\n0\r\n\r\n', 'latin1') + } + + if (contentLength !== null && bytesWritten !== contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } else { + process.emitWarning(new RequestContentLengthMismatchError()) + } + } + + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } + + resume(client) + } + + destroy (err) { + const { socket, client } = this + + socket[kWriting] = false + + if (err) { + assert(client[kRunning] <= 1, 'pipeline should only contain this request') + util.destroy(socket, err) + } + } +} + +function errorRequest (client, request, err) { + try { + request.onError(err) + assert(request.aborted) + } catch (err) { + client.emit('error', err) + } +} + +module.exports = Client + + +/***/ }), + +/***/ 7108: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +/* istanbul ignore file: only for Node 12 */ + +const { kConnected, kSize } = __nccwpck_require__(249) + +class CompatWeakRef { + constructor (value) { + this.value = value + } + + deref () { + return this.value[kConnected] === 0 && this.value[kSize] === 0 + ? undefined + : this.value + } +} + +class CompatFinalizer { + constructor (finalizer) { + this.finalizer = finalizer + } + + register (dispatcher, key) { + if (dispatcher.on) { + dispatcher.on('disconnect', () => { + if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { + this.finalizer(key) + } + }) + } + } +} + +module.exports = function () { + // FIXME: remove workaround when the Node bug is fixed + // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 + if (process.env.NODE_V8_COVERAGE) { + return { + WeakRef: CompatWeakRef, + FinalizationRegistry: CompatFinalizer + } + } + return { + WeakRef: global.WeakRef || CompatWeakRef, + FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer + } +} + + +/***/ }), + +/***/ 287: +/***/ ((module) => { + + + +// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size +const maxAttributeValueSize = 1024 + +// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size +const maxNameValuePairSize = 4096 + +module.exports = { + maxAttributeValueSize, + maxNameValuePairSize +} + + +/***/ }), + +/***/ 5902: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { parseSetCookie } = __nccwpck_require__(8077) +const { stringify, getHeadersList } = __nccwpck_require__(8176) +const { webidl } = __nccwpck_require__(7472) +const { Headers } = __nccwpck_require__(6203) + +/** + * @typedef {Object} Cookie + * @property {string} name + * @property {string} value + * @property {Date|number|undefined} expires + * @property {number|undefined} maxAge + * @property {string|undefined} domain + * @property {string|undefined} path + * @property {boolean|undefined} secure + * @property {boolean|undefined} httpOnly + * @property {'Strict'|'Lax'|'None'} sameSite + * @property {string[]} unparsed + */ + +/** + * @param {Headers} headers + * @returns {Record} + */ +function getCookies (headers) { + webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + const cookie = headers.get('cookie') + const out = {} + + if (!cookie) { + return out + } + + for (const piece of cookie.split(';')) { + const [name, ...value] = piece.split('=') + + out[name.trim()] = value.join('=') + } + + return out +} + +/** + * @param {Headers} headers + * @param {string} name + * @param {{ path?: string, domain?: string }|undefined} attributes + * @returns {void} + */ +function deleteCookie (headers, name, attributes) { + webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + name = webidl.converters.DOMString(name) + attributes = webidl.converters.DeleteCookieAttributes(attributes) + + // Matches behavior of + // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278 + setCookie(headers, { + name, + value: '', + expires: new Date(0), + ...attributes + }) +} + +/** + * @param {Headers} headers + * @returns {Cookie[]} + */ +function getSetCookies (headers) { + webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + const cookies = getHeadersList(headers).cookies + + if (!cookies) { + return [] + } + + // In older versions of undici, cookies is a list of name:value. + return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair)) +} + +/** + * @param {Headers} headers + * @param {Cookie} cookie + * @returns {void} + */ +function setCookie (headers, cookie) { + webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + cookie = webidl.converters.Cookie(cookie) + + const str = stringify(cookie) + + if (str) { + headers.append('Set-Cookie', stringify(cookie)) + } +} + +webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: null + } +]) + +webidl.converters.Cookie = webidl.dictionaryConverter([ + { + converter: webidl.converters.DOMString, + key: 'name' + }, + { + converter: webidl.converters.DOMString, + key: 'value' + }, + { + converter: webidl.nullableConverter((value) => { + if (typeof value === 'number') { + return webidl.converters['unsigned long long'](value) + } + + return new Date(value) + }), + key: 'expires', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters['long long']), + key: 'maxAge', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'secure', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'httpOnly', + defaultValue: null + }, + { + converter: webidl.converters.USVString, + key: 'sameSite', + allowedValues: ['Strict', 'Lax', 'None'] + }, + { + converter: webidl.sequenceConverter(webidl.converters.DOMString), + key: 'unparsed', + defaultValue: [] + } +]) + +module.exports = { + getCookies, + deleteCookie, + getSetCookies, + setCookie +} + + +/***/ }), + +/***/ 8077: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { maxNameValuePairSize, maxAttributeValueSize } = __nccwpck_require__(287) +const { isCTLExcludingHtab } = __nccwpck_require__(8176) +const { collectASequenceOfCodePointsFast } = __nccwpck_require__(5892) +const assert = __nccwpck_require__(2613) + +/** + * @description Parses the field-value attributes of a set-cookie header string. + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} header + * @returns if the header is invalid, null will be returned + */ +function parseSetCookie (header) { + // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F + // character (CTL characters excluding HTAB): Abort these steps and + // ignore the set-cookie-string entirely. + if (isCTLExcludingHtab(header)) { + return null + } + + let nameValuePair = '' + let unparsedAttributes = '' + let name = '' + let value = '' + + // 2. If the set-cookie-string contains a %x3B (";") character: + if (header.includes(';')) { + // 1. The name-value-pair string consists of the characters up to, + // but not including, the first %x3B (";"), and the unparsed- + // attributes consist of the remainder of the set-cookie-string + // (including the %x3B (";") in question). + const position = { position: 0 } + + nameValuePair = collectASequenceOfCodePointsFast(';', header, position) + unparsedAttributes = header.slice(position.position) + } else { + // Otherwise: + + // 1. The name-value-pair string consists of all the characters + // contained in the set-cookie-string, and the unparsed- + // attributes is the empty string. + nameValuePair = header + } + + // 3. If the name-value-pair string lacks a %x3D ("=") character, then + // the name string is empty, and the value string is the value of + // name-value-pair. + if (!nameValuePair.includes('=')) { + value = nameValuePair + } else { + // Otherwise, the name string consists of the characters up to, but + // not including, the first %x3D ("=") character, and the (possibly + // empty) value string consists of the characters after the first + // %x3D ("=") character. + const position = { position: 0 } + name = collectASequenceOfCodePointsFast( + '=', + nameValuePair, + position + ) + value = nameValuePair.slice(position.position + 1) + } + + // 4. Remove any leading or trailing WSP characters from the name + // string and the value string. + name = name.trim() + value = value.trim() + + // 5. If the sum of the lengths of the name string and the value string + // is more than 4096 octets, abort these steps and ignore the set- + // cookie-string entirely. + if (name.length + value.length > maxNameValuePairSize) { + return null + } + + // 6. The cookie-name is the name string, and the cookie-value is the + // value string. + return { + name, value, ...parseUnparsedAttributes(unparsedAttributes) + } +} + +/** + * Parses the remaining attributes of a set-cookie header + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} unparsedAttributes + * @param {[Object.]={}} cookieAttributeList + */ +function parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) { + // 1. If the unparsed-attributes string is empty, skip the rest of + // these steps. + if (unparsedAttributes.length === 0) { + return cookieAttributeList + } + + // 2. Discard the first character of the unparsed-attributes (which + // will be a %x3B (";") character). + assert(unparsedAttributes[0] === ';') + unparsedAttributes = unparsedAttributes.slice(1) + + let cookieAv = '' + + // 3. If the remaining unparsed-attributes contains a %x3B (";") + // character: + if (unparsedAttributes.includes(';')) { + // 1. Consume the characters of the unparsed-attributes up to, but + // not including, the first %x3B (";") character. + cookieAv = collectASequenceOfCodePointsFast( + ';', + unparsedAttributes, + { position: 0 } + ) + unparsedAttributes = unparsedAttributes.slice(cookieAv.length) + } else { + // Otherwise: + + // 1. Consume the remainder of the unparsed-attributes. + cookieAv = unparsedAttributes + unparsedAttributes = '' + } + + // Let the cookie-av string be the characters consumed in this step. + + let attributeName = '' + let attributeValue = '' + + // 4. If the cookie-av string contains a %x3D ("=") character: + if (cookieAv.includes('=')) { + // 1. The (possibly empty) attribute-name string consists of the + // characters up to, but not including, the first %x3D ("=") + // character, and the (possibly empty) attribute-value string + // consists of the characters after the first %x3D ("=") + // character. + const position = { position: 0 } + + attributeName = collectASequenceOfCodePointsFast( + '=', + cookieAv, + position + ) + attributeValue = cookieAv.slice(position.position + 1) + } else { + // Otherwise: + + // 1. The attribute-name string consists of the entire cookie-av + // string, and the attribute-value string is empty. + attributeName = cookieAv + } + + // 5. Remove any leading or trailing WSP characters from the attribute- + // name string and the attribute-value string. + attributeName = attributeName.trim() + attributeValue = attributeValue.trim() + + // 6. If the attribute-value is longer than 1024 octets, ignore the + // cookie-av string and return to Step 1 of this algorithm. + if (attributeValue.length > maxAttributeValueSize) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 7. Process the attribute-name and attribute-value according to the + // requirements in the following subsections. (Notice that + // attributes with unrecognized attribute-names are ignored.) + const attributeNameLowercase = attributeName.toLowerCase() + + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1 + // If the attribute-name case-insensitively matches the string + // "Expires", the user agent MUST process the cookie-av as follows. + if (attributeNameLowercase === 'expires') { + // 1. Let the expiry-time be the result of parsing the attribute-value + // as cookie-date (see Section 5.1.1). + const expiryTime = new Date(attributeValue) + + // 2. If the attribute-value failed to parse as a cookie date, ignore + // the cookie-av. + + cookieAttributeList.expires = expiryTime + } else if (attributeNameLowercase === 'max-age') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2 + // If the attribute-name case-insensitively matches the string "Max- + // Age", the user agent MUST process the cookie-av as follows. + + // 1. If the first character of the attribute-value is not a DIGIT or a + // "-" character, ignore the cookie-av. + const charCode = attributeValue.charCodeAt(0) + + if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 2. If the remainder of attribute-value contains a non-DIGIT + // character, ignore the cookie-av. + if (!/^\d+$/.test(attributeValue)) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 3. Let delta-seconds be the attribute-value converted to an integer. + const deltaSeconds = Number(attributeValue) + + // 4. Let cookie-age-limit be the maximum age of the cookie (which + // SHOULD be 400 days or less, see Section 4.1.2.2). + + // 5. Set delta-seconds to the smaller of its present value and cookie- + // age-limit. + // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs) + + // 6. If delta-seconds is less than or equal to zero (0), let expiry- + // time be the earliest representable date and time. Otherwise, let + // the expiry-time be the current date and time plus delta-seconds + // seconds. + // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds + + // 7. Append an attribute to the cookie-attribute-list with an + // attribute-name of Max-Age and an attribute-value of expiry-time. + cookieAttributeList.maxAge = deltaSeconds + } else if (attributeNameLowercase === 'domain') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3 + // If the attribute-name case-insensitively matches the string "Domain", + // the user agent MUST process the cookie-av as follows. + + // 1. Let cookie-domain be the attribute-value. + let cookieDomain = attributeValue + + // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be + // cookie-domain without its leading %x2E ("."). + if (cookieDomain[0] === '.') { + cookieDomain = cookieDomain.slice(1) + } + + // 3. Convert the cookie-domain to lower case. + cookieDomain = cookieDomain.toLowerCase() + + // 4. Append an attribute to the cookie-attribute-list with an + // attribute-name of Domain and an attribute-value of cookie-domain. + cookieAttributeList.domain = cookieDomain + } else if (attributeNameLowercase === 'path') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4 + // If the attribute-name case-insensitively matches the string "Path", + // the user agent MUST process the cookie-av as follows. + + // 1. If the attribute-value is empty or if the first character of the + // attribute-value is not %x2F ("/"): + let cookiePath = '' + if (attributeValue.length === 0 || attributeValue[0] !== '/') { + // 1. Let cookie-path be the default-path. + cookiePath = '/' + } else { + // Otherwise: + + // 1. Let cookie-path be the attribute-value. + cookiePath = attributeValue + } + + // 2. Append an attribute to the cookie-attribute-list with an + // attribute-name of Path and an attribute-value of cookie-path. + cookieAttributeList.path = cookiePath + } else if (attributeNameLowercase === 'secure') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5 + // If the attribute-name case-insensitively matches the string "Secure", + // the user agent MUST append an attribute to the cookie-attribute-list + // with an attribute-name of Secure and an empty attribute-value. + + cookieAttributeList.secure = true + } else if (attributeNameLowercase === 'httponly') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6 + // If the attribute-name case-insensitively matches the string + // "HttpOnly", the user agent MUST append an attribute to the cookie- + // attribute-list with an attribute-name of HttpOnly and an empty + // attribute-value. + + cookieAttributeList.httpOnly = true + } else if (attributeNameLowercase === 'samesite') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7 + // If the attribute-name case-insensitively matches the string + // "SameSite", the user agent MUST process the cookie-av as follows: + + // 1. Let enforcement be "Default". + let enforcement = 'Default' + + const attributeValueLowercase = attributeValue.toLowerCase() + // 2. If cookie-av's attribute-value is a case-insensitive match for + // "None", set enforcement to "None". + if (attributeValueLowercase.includes('none')) { + enforcement = 'None' + } + + // 3. If cookie-av's attribute-value is a case-insensitive match for + // "Strict", set enforcement to "Strict". + if (attributeValueLowercase.includes('strict')) { + enforcement = 'Strict' + } + + // 4. If cookie-av's attribute-value is a case-insensitive match for + // "Lax", set enforcement to "Lax". + if (attributeValueLowercase.includes('lax')) { + enforcement = 'Lax' + } + + // 5. Append an attribute to the cookie-attribute-list with an + // attribute-name of "SameSite" and an attribute-value of + // enforcement. + cookieAttributeList.sameSite = enforcement + } else { + cookieAttributeList.unparsed ??= [] + + cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`) + } + + // 8. Return to Step 1 of this algorithm. + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) +} + +module.exports = { + parseSetCookie, + parseUnparsedAttributes +} + + +/***/ }), + +/***/ 8176: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(2613) +const { kHeadersList } = __nccwpck_require__(249) + +function isCTLExcludingHtab (value) { + if (value.length === 0) { + return false + } + + for (const char of value) { + const code = char.charCodeAt(0) + + if ( + (code >= 0x00 || code <= 0x08) || + (code >= 0x0A || code <= 0x1F) || + code === 0x7F + ) { + return false + } + } +} + +/** + CHAR = + token = 1* + separators = "(" | ")" | "<" | ">" | "@" + | "," | ";" | ":" | "\" | <"> + | "/" | "[" | "]" | "?" | "=" + | "{" | "}" | SP | HT + * @param {string} name + */ +function validateCookieName (name) { + for (const char of name) { + const code = char.charCodeAt(0) + + if ( + (code <= 0x20 || code > 0x7F) || + char === '(' || + char === ')' || + char === '>' || + char === '<' || + char === '@' || + char === ',' || + char === ';' || + char === ':' || + char === '\\' || + char === '"' || + char === '/' || + char === '[' || + char === ']' || + char === '?' || + char === '=' || + char === '{' || + char === '}' + ) { + throw new Error('Invalid cookie name') + } + } +} + +/** + cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + ; US-ASCII characters excluding CTLs, + ; whitespace DQUOTE, comma, semicolon, + ; and backslash + * @param {string} value + */ +function validateCookieValue (value) { + for (const char of value) { + const code = char.charCodeAt(0) + + if ( + code < 0x21 || // exclude CTLs (0-31) + code === 0x22 || + code === 0x2C || + code === 0x3B || + code === 0x5C || + code > 0x7E // non-ascii + ) { + throw new Error('Invalid header value') + } + } +} + +/** + * path-value = + * @param {string} path + */ +function validateCookiePath (path) { + for (const char of path) { + const code = char.charCodeAt(0) + + if (code < 0x21 || char === ';') { + throw new Error('Invalid cookie path') + } + } +} + +/** + * I have no idea why these values aren't allowed to be honest, + * but Deno tests these. - Khafra + * @param {string} domain + */ +function validateCookieDomain (domain) { + if ( + domain.startsWith('-') || + domain.endsWith('.') || + domain.endsWith('-') + ) { + throw new Error('Invalid cookie domain') + } +} + +/** + * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1 + * @param {number|Date} date + IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT + ; fixed length/zone/capitalization subset of the format + ; see Section 3.3 of [RFC5322] + + day-name = %x4D.6F.6E ; "Mon", case-sensitive + / %x54.75.65 ; "Tue", case-sensitive + / %x57.65.64 ; "Wed", case-sensitive + / %x54.68.75 ; "Thu", case-sensitive + / %x46.72.69 ; "Fri", case-sensitive + / %x53.61.74 ; "Sat", case-sensitive + / %x53.75.6E ; "Sun", case-sensitive + date1 = day SP month SP year + ; e.g., 02 Jun 1982 + + day = 2DIGIT + month = %x4A.61.6E ; "Jan", case-sensitive + / %x46.65.62 ; "Feb", case-sensitive + / %x4D.61.72 ; "Mar", case-sensitive + / %x41.70.72 ; "Apr", case-sensitive + / %x4D.61.79 ; "May", case-sensitive + / %x4A.75.6E ; "Jun", case-sensitive + / %x4A.75.6C ; "Jul", case-sensitive + / %x41.75.67 ; "Aug", case-sensitive + / %x53.65.70 ; "Sep", case-sensitive + / %x4F.63.74 ; "Oct", case-sensitive + / %x4E.6F.76 ; "Nov", case-sensitive + / %x44.65.63 ; "Dec", case-sensitive + year = 4DIGIT + + GMT = %x47.4D.54 ; "GMT", case-sensitive + + time-of-day = hour ":" minute ":" second + ; 00:00:00 - 23:59:60 (leap second) + + hour = 2DIGIT + minute = 2DIGIT + second = 2DIGIT + */ +function toIMFDate (date) { + if (typeof date === 'number') { + date = new Date(date) + } + + const days = [ + 'Sun', 'Mon', 'Tue', 'Wed', + 'Thu', 'Fri', 'Sat' + ] + + const months = [ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' + ] + + const dayName = days[date.getUTCDay()] + const day = date.getUTCDate().toString().padStart(2, '0') + const month = months[date.getUTCMonth()] + const year = date.getUTCFullYear() + const hour = date.getUTCHours().toString().padStart(2, '0') + const minute = date.getUTCMinutes().toString().padStart(2, '0') + const second = date.getUTCSeconds().toString().padStart(2, '0') + + return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT` +} + +/** + max-age-av = "Max-Age=" non-zero-digit *DIGIT + ; In practice, both expires-av and max-age-av + ; are limited to dates representable by the + ; user agent. + * @param {number} maxAge + */ +function validateCookieMaxAge (maxAge) { + if (maxAge < 0) { + throw new Error('Invalid cookie max-age') + } +} + +/** + * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1 + * @param {import('./index').Cookie} cookie + */ +function stringify (cookie) { + if (cookie.name.length === 0) { + return null + } + + validateCookieName(cookie.name) + validateCookieValue(cookie.value) + + const out = [`${cookie.name}=${cookie.value}`] + + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1 + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2 + if (cookie.name.startsWith('__Secure-')) { + cookie.secure = true + } + + if (cookie.name.startsWith('__Host-')) { + cookie.secure = true + cookie.domain = null + cookie.path = '/' + } + + if (cookie.secure) { + out.push('Secure') + } + + if (cookie.httpOnly) { + out.push('HttpOnly') + } + + if (typeof cookie.maxAge === 'number') { + validateCookieMaxAge(cookie.maxAge) + out.push(`Max-Age=${cookie.maxAge}`) + } + + if (cookie.domain) { + validateCookieDomain(cookie.domain) + out.push(`Domain=${cookie.domain}`) + } + + if (cookie.path) { + validateCookiePath(cookie.path) + out.push(`Path=${cookie.path}`) + } + + if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') { + out.push(`Expires=${toIMFDate(cookie.expires)}`) + } + + if (cookie.sameSite) { + out.push(`SameSite=${cookie.sameSite}`) + } + + for (const part of cookie.unparsed) { + if (!part.includes('=')) { + throw new Error('Invalid unparsed') + } + + const [key, ...value] = part.split('=') + + out.push(`${key.trim()}=${value.join('=')}`) + } + + return out.join('; ') +} + +let kHeadersListNode + +function getHeadersList (headers) { + if (headers[kHeadersList]) { + return headers[kHeadersList] + } + + if (!kHeadersListNode) { + kHeadersListNode = Object.getOwnPropertySymbols(headers).find( + (symbol) => symbol.description === 'headers list' + ) + + assert(kHeadersListNode, 'Headers cannot be parsed') + } + + const headersList = headers[kHeadersListNode] + assert(headersList) + + return headersList +} + +module.exports = { + isCTLExcludingHtab, + stringify, + getHeadersList +} + + +/***/ }), + +/***/ 5786: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const net = __nccwpck_require__(9278) +const assert = __nccwpck_require__(2613) +const util = __nccwpck_require__(162) +const { InvalidArgumentError, ConnectTimeoutError } = __nccwpck_require__(3785) + +let tls // include tls conditionally since it is not always available + +// TODO: session re-use does not wait for the first +// connection to resolve the session and might therefore +// resolve the same servername multiple times even when +// re-use is enabled. + +let SessionCache +// FIXME: remove workaround when the Node bug is fixed +// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 +if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { + SessionCache = class WeakSessionCache { + constructor (maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + this._sessionRegistry = new global.FinalizationRegistry((key) => { + if (this._sessionCache.size < this._maxCachedSessions) { + return + } + + const ref = this._sessionCache.get(key) + if (ref !== undefined && ref.deref() === undefined) { + this._sessionCache.delete(key) + } + }) + } + + get (sessionKey) { + const ref = this._sessionCache.get(sessionKey) + return ref ? ref.deref() : null + } + + set (sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } + + this._sessionCache.set(sessionKey, new WeakRef(session)) + this._sessionRegistry.register(session, sessionKey) + } + } +} else { + SessionCache = class SimpleSessionCache { + constructor (maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + } + + get (sessionKey) { + return this._sessionCache.get(sessionKey) + } + + set (sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } + + if (this._sessionCache.size >= this._maxCachedSessions) { + // remove the oldest session + const { value: oldestKey } = this._sessionCache.keys().next() + this._sessionCache.delete(oldestKey) + } + + this._sessionCache.set(sessionKey, session) + } + } +} + +function buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { + if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { + throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero') + } + + const options = { path: socketPath, ...opts } + const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions) + timeout = timeout == null ? 10e3 : timeout + allowH2 = allowH2 != null ? allowH2 : false + return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { + let socket + if (protocol === 'https:') { + if (!tls) { + tls = __nccwpck_require__(4756) + } + servername = servername || options.servername || util.getServerName(host) || null + + const sessionKey = servername || hostname + const session = sessionCache.get(sessionKey) || null + + assert(sessionKey) + + socket = tls.connect({ + highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... + ...options, + servername, + session, + localAddress, + // TODO(HTTP/2): Add support for h2c + ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'], + socket: httpSocket, // upgrade socket connection + port: port || 443, + host: hostname + }) + + socket + .on('session', function (session) { + // TODO (fix): Can a session become invalid once established? Don't think so? + sessionCache.set(sessionKey, session) + }) + } else { + assert(!httpSocket, 'httpSocket can only be sent on TLS update') + socket = net.connect({ + highWaterMark: 64 * 1024, // Same as nodejs fs streams. + ...options, + localAddress, + port: port || 80, + host: hostname + }) + } + + // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket + if (options.keepAlive == null || options.keepAlive) { + const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay + socket.setKeepAlive(true, keepAliveInitialDelay) + } + + const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout) + + socket + .setNoDelay(true) + .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () { + cancelTimeout() + + if (callback) { + const cb = callback + callback = null + cb(null, this) + } + }) + .on('error', function (err) { + cancelTimeout() + + if (callback) { + const cb = callback + callback = null + cb(err) + } + }) + + return socket + } +} + +function setupTimeout (onConnectTimeout, timeout) { + if (!timeout) { + return () => {} + } + + let s1 = null + let s2 = null + const timeoutId = setTimeout(() => { + // setImmediate is added to make sure that we priotorise socket error events over timeouts + s1 = setImmediate(() => { + if (process.platform === 'win32') { + // Windows needs an extra setImmediate probably due to implementation differences in the socket logic + s2 = setImmediate(() => onConnectTimeout()) + } else { + onConnectTimeout() + } + }) + }, timeout) + return () => { + clearTimeout(timeoutId) + clearImmediate(s1) + clearImmediate(s2) + } +} + +function onConnectTimeout (socket) { + util.destroy(socket, new ConnectTimeoutError()) +} + +module.exports = buildConnector + + +/***/ }), + +/***/ 9549: +/***/ ((module) => { + + + +/** @type {Record} */ +const headerNameLowerCasedRecord = {} + +// https://developer.mozilla.org/docs/Web/HTTP/Headers +const wellknownHeaderNames = [ + 'Accept', + 'Accept-Encoding', + 'Accept-Language', + 'Accept-Ranges', + 'Access-Control-Allow-Credentials', + 'Access-Control-Allow-Headers', + 'Access-Control-Allow-Methods', + 'Access-Control-Allow-Origin', + 'Access-Control-Expose-Headers', + 'Access-Control-Max-Age', + 'Access-Control-Request-Headers', + 'Access-Control-Request-Method', + 'Age', + 'Allow', + 'Alt-Svc', + 'Alt-Used', + 'Authorization', + 'Cache-Control', + 'Clear-Site-Data', + 'Connection', + 'Content-Disposition', + 'Content-Encoding', + 'Content-Language', + 'Content-Length', + 'Content-Location', + 'Content-Range', + 'Content-Security-Policy', + 'Content-Security-Policy-Report-Only', + 'Content-Type', + 'Cookie', + 'Cross-Origin-Embedder-Policy', + 'Cross-Origin-Opener-Policy', + 'Cross-Origin-Resource-Policy', + 'Date', + 'Device-Memory', + 'Downlink', + 'ECT', + 'ETag', + 'Expect', + 'Expect-CT', + 'Expires', + 'Forwarded', + 'From', + 'Host', + 'If-Match', + 'If-Modified-Since', + 'If-None-Match', + 'If-Range', + 'If-Unmodified-Since', + 'Keep-Alive', + 'Last-Modified', + 'Link', + 'Location', + 'Max-Forwards', + 'Origin', + 'Permissions-Policy', + 'Pragma', + 'Proxy-Authenticate', + 'Proxy-Authorization', + 'RTT', + 'Range', + 'Referer', + 'Referrer-Policy', + 'Refresh', + 'Retry-After', + 'Sec-WebSocket-Accept', + 'Sec-WebSocket-Extensions', + 'Sec-WebSocket-Key', + 'Sec-WebSocket-Protocol', + 'Sec-WebSocket-Version', + 'Server', + 'Server-Timing', + 'Service-Worker-Allowed', + 'Service-Worker-Navigation-Preload', + 'Set-Cookie', + 'SourceMap', + 'Strict-Transport-Security', + 'Supports-Loading-Mode', + 'TE', + 'Timing-Allow-Origin', + 'Trailer', + 'Transfer-Encoding', + 'Upgrade', + 'Upgrade-Insecure-Requests', + 'User-Agent', + 'Vary', + 'Via', + 'WWW-Authenticate', + 'X-Content-Type-Options', + 'X-DNS-Prefetch-Control', + 'X-Frame-Options', + 'X-Permitted-Cross-Domain-Policies', + 'X-Powered-By', + 'X-Requested-With', + 'X-XSS-Protection' +] + +for (let i = 0; i < wellknownHeaderNames.length; ++i) { + const key = wellknownHeaderNames[i] + const lowerCasedKey = key.toLowerCase() + headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = + lowerCasedKey +} + +// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. +Object.setPrototypeOf(headerNameLowerCasedRecord, null) + +module.exports = { + wellknownHeaderNames, + headerNameLowerCasedRecord +} + + +/***/ }), + +/***/ 3785: +/***/ ((module) => { + + + +class UndiciError extends Error { + constructor (message) { + super(message) + this.name = 'UndiciError' + this.code = 'UND_ERR' + } +} + +class ConnectTimeoutError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ConnectTimeoutError) + this.name = 'ConnectTimeoutError' + this.message = message || 'Connect Timeout Error' + this.code = 'UND_ERR_CONNECT_TIMEOUT' + } +} + +class HeadersTimeoutError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, HeadersTimeoutError) + this.name = 'HeadersTimeoutError' + this.message = message || 'Headers Timeout Error' + this.code = 'UND_ERR_HEADERS_TIMEOUT' + } +} + +class HeadersOverflowError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, HeadersOverflowError) + this.name = 'HeadersOverflowError' + this.message = message || 'Headers Overflow Error' + this.code = 'UND_ERR_HEADERS_OVERFLOW' + } +} + +class BodyTimeoutError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, BodyTimeoutError) + this.name = 'BodyTimeoutError' + this.message = message || 'Body Timeout Error' + this.code = 'UND_ERR_BODY_TIMEOUT' + } +} + +class ResponseStatusCodeError extends UndiciError { + constructor (message, statusCode, headers, body) { + super(message) + Error.captureStackTrace(this, ResponseStatusCodeError) + this.name = 'ResponseStatusCodeError' + this.message = message || 'Response Status Code Error' + this.code = 'UND_ERR_RESPONSE_STATUS_CODE' + this.body = body + this.status = statusCode + this.statusCode = statusCode + this.headers = headers + } +} + +class InvalidArgumentError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, InvalidArgumentError) + this.name = 'InvalidArgumentError' + this.message = message || 'Invalid Argument Error' + this.code = 'UND_ERR_INVALID_ARG' + } +} + +class InvalidReturnValueError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, InvalidReturnValueError) + this.name = 'InvalidReturnValueError' + this.message = message || 'Invalid Return Value Error' + this.code = 'UND_ERR_INVALID_RETURN_VALUE' + } +} + +class RequestAbortedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, RequestAbortedError) + this.name = 'AbortError' + this.message = message || 'Request aborted' + this.code = 'UND_ERR_ABORTED' + } +} + +class InformationalError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, InformationalError) + this.name = 'InformationalError' + this.message = message || 'Request information' + this.code = 'UND_ERR_INFO' + } +} + +class RequestContentLengthMismatchError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, RequestContentLengthMismatchError) + this.name = 'RequestContentLengthMismatchError' + this.message = message || 'Request body length does not match content-length header' + this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH' + } +} + +class ResponseContentLengthMismatchError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ResponseContentLengthMismatchError) + this.name = 'ResponseContentLengthMismatchError' + this.message = message || 'Response body length does not match content-length header' + this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH' + } +} + +class ClientDestroyedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ClientDestroyedError) + this.name = 'ClientDestroyedError' + this.message = message || 'The client is destroyed' + this.code = 'UND_ERR_DESTROYED' + } +} + +class ClientClosedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ClientClosedError) + this.name = 'ClientClosedError' + this.message = message || 'The client is closed' + this.code = 'UND_ERR_CLOSED' + } +} + +class SocketError extends UndiciError { + constructor (message, socket) { + super(message) + Error.captureStackTrace(this, SocketError) + this.name = 'SocketError' + this.message = message || 'Socket error' + this.code = 'UND_ERR_SOCKET' + this.socket = socket + } +} + +class NotSupportedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, NotSupportedError) + this.name = 'NotSupportedError' + this.message = message || 'Not supported error' + this.code = 'UND_ERR_NOT_SUPPORTED' + } +} + +class BalancedPoolMissingUpstreamError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, NotSupportedError) + this.name = 'MissingUpstreamError' + this.message = message || 'No upstream has been added to the BalancedPool' + this.code = 'UND_ERR_BPL_MISSING_UPSTREAM' + } +} + +class HTTPParserError extends Error { + constructor (message, code, data) { + super(message) + Error.captureStackTrace(this, HTTPParserError) + this.name = 'HTTPParserError' + this.code = code ? `HPE_${code}` : undefined + this.data = data ? data.toString() : undefined + } +} + +class ResponseExceededMaxSizeError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ResponseExceededMaxSizeError) + this.name = 'ResponseExceededMaxSizeError' + this.message = message || 'Response content exceeded max size' + this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE' + } +} + +class RequestRetryError extends UndiciError { + constructor (message, code, { headers, data }) { + super(message) + Error.captureStackTrace(this, RequestRetryError) + this.name = 'RequestRetryError' + this.message = message || 'Request retry error' + this.code = 'UND_ERR_REQ_RETRY' + this.statusCode = code + this.data = data + this.headers = headers + } +} + +module.exports = { + HTTPParserError, + UndiciError, + HeadersTimeoutError, + HeadersOverflowError, + BodyTimeoutError, + RequestContentLengthMismatchError, + ConnectTimeoutError, + ResponseStatusCodeError, + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError, + ClientDestroyedError, + ClientClosedError, + InformationalError, + SocketError, + NotSupportedError, + ResponseContentLengthMismatchError, + BalancedPoolMissingUpstreamError, + ResponseExceededMaxSizeError, + RequestRetryError +} + + +/***/ }), + +/***/ 8773: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + InvalidArgumentError, + NotSupportedError +} = __nccwpck_require__(3785) +const assert = __nccwpck_require__(2613) +const { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __nccwpck_require__(249) +const util = __nccwpck_require__(162) + +// tokenRegExp and headerCharRegex have been lifted from +// https://github.com/nodejs/node/blob/main/lib/_http_common.js + +/** + * Verifies that the given val is a valid HTTP token + * per the rules defined in RFC 7230 + * See https://tools.ietf.org/html/rfc7230#section-3.2.6 + */ +const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/ + +/** + * Matches if val contains an invalid field-vchar + * field-value = *( field-content / obs-fold ) + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + */ +const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/ + +// Verifies that a given path is valid does not contain control chars \x00 to \x20 +const invalidPathRegex = /[^\u0021-\u00ff]/ + +const kHandler = Symbol('handler') + +const channels = {} + +let extractBody + +try { + const diagnosticsChannel = __nccwpck_require__(1637) + channels.create = diagnosticsChannel.channel('undici:request:create') + channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent') + channels.headers = diagnosticsChannel.channel('undici:request:headers') + channels.trailers = diagnosticsChannel.channel('undici:request:trailers') + channels.error = diagnosticsChannel.channel('undici:request:error') +} catch { + channels.create = { hasSubscribers: false } + channels.bodySent = { hasSubscribers: false } + channels.headers = { hasSubscribers: false } + channels.trailers = { hasSubscribers: false } + channels.error = { hasSubscribers: false } +} + +class Request { + constructor (origin, { + path, + method, + body, + headers, + query, + idempotent, + blocking, + upgrade, + headersTimeout, + bodyTimeout, + reset, + throwOnError, + expectContinue + }, handler) { + if (typeof path !== 'string') { + throw new InvalidArgumentError('path must be a string') + } else if ( + path[0] !== '/' && + !(path.startsWith('http://') || path.startsWith('https://')) && + method !== 'CONNECT' + ) { + throw new InvalidArgumentError('path must be an absolute URL or start with a slash') + } else if (invalidPathRegex.exec(path) !== null) { + throw new InvalidArgumentError('invalid request path') + } + + if (typeof method !== 'string') { + throw new InvalidArgumentError('method must be a string') + } else if (tokenRegExp.exec(method) === null) { + throw new InvalidArgumentError('invalid request method') + } + + if (upgrade && typeof upgrade !== 'string') { + throw new InvalidArgumentError('upgrade must be a string') + } + + if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError('invalid headersTimeout') + } + + if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError('invalid bodyTimeout') + } + + if (reset != null && typeof reset !== 'boolean') { + throw new InvalidArgumentError('invalid reset') + } + + if (expectContinue != null && typeof expectContinue !== 'boolean') { + throw new InvalidArgumentError('invalid expectContinue') + } + + this.headersTimeout = headersTimeout + + this.bodyTimeout = bodyTimeout + + this.throwOnError = throwOnError === true + + this.method = method + + this.abort = null + + if (body == null) { + this.body = null + } else if (util.isStream(body)) { + this.body = body + + const rState = this.body._readableState + if (!rState || !rState.autoDestroy) { + this.endHandler = function autoDestroy () { + util.destroy(this) + } + this.body.on('end', this.endHandler) + } + + this.errorHandler = err => { + if (this.abort) { + this.abort(err) + } else { + this.error = err + } + } + this.body.on('error', this.errorHandler) + } else if (util.isBuffer(body)) { + this.body = body.byteLength ? body : null + } else if (ArrayBuffer.isView(body)) { + this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null + } else if (body instanceof ArrayBuffer) { + this.body = body.byteLength ? Buffer.from(body) : null + } else if (typeof body === 'string') { + this.body = body.length ? Buffer.from(body) : null + } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) { + this.body = body + } else { + throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable') + } + + this.completed = false + + this.aborted = false + + this.upgrade = upgrade || null + + this.path = query ? util.buildURL(path, query) : path + + this.origin = origin + + this.idempotent = idempotent == null + ? method === 'HEAD' || method === 'GET' + : idempotent + + this.blocking = blocking == null ? false : blocking + + this.reset = reset == null ? null : reset + + this.host = null + + this.contentLength = null + + this.contentType = null + + this.headers = '' + + // Only for H2 + this.expectContinue = expectContinue != null ? expectContinue : false + + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError('headers array must be even') + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(this, headers[i], headers[i + 1]) + } + } else if (headers && typeof headers === 'object') { + const keys = Object.keys(headers) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + processHeader(this, key, headers[key]) + } + } else if (headers != null) { + throw new InvalidArgumentError('headers must be an object or an array') + } + + if (util.isFormDataLike(this.body)) { + if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) { + throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.') + } + + if (!extractBody) { + extractBody = (__nccwpck_require__(3893).extractBody) + } + + const [bodyStream, contentType] = extractBody(body) + if (this.contentType == null) { + this.contentType = contentType + this.headers += `content-type: ${contentType}\r\n` + } + this.body = bodyStream.stream + this.contentLength = bodyStream.length + } else if (util.isBlobLike(body) && this.contentType == null && body.type) { + this.contentType = body.type + this.headers += `content-type: ${body.type}\r\n` + } + + util.validateHandler(handler, method, upgrade) + + this.servername = util.getServerName(this.host) + + this[kHandler] = handler + + if (channels.create.hasSubscribers) { + channels.create.publish({ request: this }) + } + } + + onBodySent (chunk) { + if (this[kHandler].onBodySent) { + try { + return this[kHandler].onBodySent(chunk) + } catch (err) { + this.abort(err) + } + } + } + + onRequestSent () { + if (channels.bodySent.hasSubscribers) { + channels.bodySent.publish({ request: this }) + } + + if (this[kHandler].onRequestSent) { + try { + return this[kHandler].onRequestSent() + } catch (err) { + this.abort(err) + } + } + } + + onConnect (abort) { + assert(!this.aborted) + assert(!this.completed) + + if (this.error) { + abort(this.error) + } else { + this.abort = abort + return this[kHandler].onConnect(abort) + } + } + + onHeaders (statusCode, headers, resume, statusText) { + assert(!this.aborted) + assert(!this.completed) + + if (channels.headers.hasSubscribers) { + channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }) + } + + try { + return this[kHandler].onHeaders(statusCode, headers, resume, statusText) + } catch (err) { + this.abort(err) + } + } + + onData (chunk) { + assert(!this.aborted) + assert(!this.completed) + + try { + return this[kHandler].onData(chunk) + } catch (err) { + this.abort(err) + return false + } + } + + onUpgrade (statusCode, headers, socket) { + assert(!this.aborted) + assert(!this.completed) + + return this[kHandler].onUpgrade(statusCode, headers, socket) + } + + onComplete (trailers) { + this.onFinally() + + assert(!this.aborted) + + this.completed = true + if (channels.trailers.hasSubscribers) { + channels.trailers.publish({ request: this, trailers }) + } + + try { + return this[kHandler].onComplete(trailers) + } catch (err) { + // TODO (fix): This might be a bad idea? + this.onError(err) + } + } + + onError (error) { + this.onFinally() + + if (channels.error.hasSubscribers) { + channels.error.publish({ request: this, error }) + } + + if (this.aborted) { + return + } + this.aborted = true + + return this[kHandler].onError(error) + } + + onFinally () { + if (this.errorHandler) { + this.body.off('error', this.errorHandler) + this.errorHandler = null + } + + if (this.endHandler) { + this.body.off('end', this.endHandler) + this.endHandler = null + } + } + + // TODO: adjust to support H2 + addHeader (key, value) { + processHeader(this, key, value) + return this + } + + static [kHTTP1BuildRequest] (origin, opts, handler) { + // TODO: Migrate header parsing here, to make Requests + // HTTP agnostic + return new Request(origin, opts, handler) + } + + static [kHTTP2BuildRequest] (origin, opts, handler) { + const headers = opts.headers + opts = { ...opts, headers: null } + + const request = new Request(origin, opts, handler) + + request.headers = {} + + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError('headers array must be even') + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(request, headers[i], headers[i + 1], true) + } + } else if (headers && typeof headers === 'object') { + const keys = Object.keys(headers) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + processHeader(request, key, headers[key], true) + } + } else if (headers != null) { + throw new InvalidArgumentError('headers must be an object or an array') + } + + return request + } + + static [kHTTP2CopyHeaders] (raw) { + const rawHeaders = raw.split('\r\n') + const headers = {} + + for (const header of rawHeaders) { + const [key, value] = header.split(': ') + + if (value == null || value.length === 0) continue + + if (headers[key]) headers[key] += `,${value}` + else headers[key] = value + } + + return headers + } +} + +function processHeaderValue (key, val, skipAppend) { + if (val && typeof val === 'object') { + throw new InvalidArgumentError(`invalid ${key} header`) + } + + val = val != null ? `${val}` : '' + + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + + return skipAppend ? val : `${key}: ${val}\r\n` +} + +function processHeader (request, key, val, skipAppend = false) { + if (val && (typeof val === 'object' && !Array.isArray(val))) { + throw new InvalidArgumentError(`invalid ${key} header`) + } else if (val === undefined) { + return + } + + if ( + request.host === null && + key.length === 4 && + key.toLowerCase() === 'host' + ) { + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + // Consumed by Client + request.host = val + } else if ( + request.contentLength === null && + key.length === 14 && + key.toLowerCase() === 'content-length' + ) { + request.contentLength = parseInt(val, 10) + if (!Number.isFinite(request.contentLength)) { + throw new InvalidArgumentError('invalid content-length header') + } + } else if ( + request.contentType === null && + key.length === 12 && + key.toLowerCase() === 'content-type' + ) { + request.contentType = val + if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) + else request.headers += processHeaderValue(key, val) + } else if ( + key.length === 17 && + key.toLowerCase() === 'transfer-encoding' + ) { + throw new InvalidArgumentError('invalid transfer-encoding header') + } else if ( + key.length === 10 && + key.toLowerCase() === 'connection' + ) { + const value = typeof val === 'string' ? val.toLowerCase() : null + if (value !== 'close' && value !== 'keep-alive') { + throw new InvalidArgumentError('invalid connection header') + } else if (value === 'close') { + request.reset = true + } + } else if ( + key.length === 10 && + key.toLowerCase() === 'keep-alive' + ) { + throw new InvalidArgumentError('invalid keep-alive header') + } else if ( + key.length === 7 && + key.toLowerCase() === 'upgrade' + ) { + throw new InvalidArgumentError('invalid upgrade header') + } else if ( + key.length === 6 && + key.toLowerCase() === 'expect' + ) { + throw new NotSupportedError('expect header not supported') + } else if (tokenRegExp.exec(key) === null) { + throw new InvalidArgumentError('invalid header key') + } else { + if (Array.isArray(val)) { + for (let i = 0; i < val.length; i++) { + if (skipAppend) { + if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}` + else request.headers[key] = processHeaderValue(key, val[i], skipAppend) + } else { + request.headers += processHeaderValue(key, val[i]) + } + } + } else { + if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) + else request.headers += processHeaderValue(key, val) + } + } +} + +module.exports = Request + + +/***/ }), + +/***/ 249: +/***/ ((module) => { + +module.exports = { + kClose: Symbol('close'), + kDestroy: Symbol('destroy'), + kDispatch: Symbol('dispatch'), + kUrl: Symbol('url'), + kWriting: Symbol('writing'), + kResuming: Symbol('resuming'), + kQueue: Symbol('queue'), + kConnect: Symbol('connect'), + kConnecting: Symbol('connecting'), + kHeadersList: Symbol('headers list'), + kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), + kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), + kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), + kKeepAliveTimeoutValue: Symbol('keep alive timeout'), + kKeepAlive: Symbol('keep alive'), + kHeadersTimeout: Symbol('headers timeout'), + kBodyTimeout: Symbol('body timeout'), + kServerName: Symbol('server name'), + kLocalAddress: Symbol('local address'), + kHost: Symbol('host'), + kNoRef: Symbol('no ref'), + kBodyUsed: Symbol('used'), + kRunning: Symbol('running'), + kBlocking: Symbol('blocking'), + kPending: Symbol('pending'), + kSize: Symbol('size'), + kBusy: Symbol('busy'), + kQueued: Symbol('queued'), + kFree: Symbol('free'), + kConnected: Symbol('connected'), + kClosed: Symbol('closed'), + kNeedDrain: Symbol('need drain'), + kReset: Symbol('reset'), + kDestroyed: Symbol.for('nodejs.stream.destroyed'), + kMaxHeadersSize: Symbol('max headers size'), + kRunningIdx: Symbol('running index'), + kPendingIdx: Symbol('pending index'), + kError: Symbol('error'), + kClients: Symbol('clients'), + kClient: Symbol('client'), + kParser: Symbol('parser'), + kOnDestroyed: Symbol('destroy callbacks'), + kPipelining: Symbol('pipelining'), + kSocket: Symbol('socket'), + kHostHeader: Symbol('host header'), + kConnector: Symbol('connector'), + kStrictContentLength: Symbol('strict content length'), + kMaxRedirections: Symbol('maxRedirections'), + kMaxRequests: Symbol('maxRequestsPerClient'), + kProxy: Symbol('proxy agent options'), + kCounter: Symbol('socket request counter'), + kInterceptors: Symbol('dispatch interceptors'), + kMaxResponseSize: Symbol('max response size'), + kHTTP2Session: Symbol('http2Session'), + kHTTP2SessionState: Symbol('http2Session state'), + kHTTP2BuildRequest: Symbol('http2 build request'), + kHTTP1BuildRequest: Symbol('http1 build request'), + kHTTP2CopyHeaders: Symbol('http2 copy headers'), + kHTTPConnVersion: Symbol('http connection version'), + kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), + kConstruct: Symbol('constructable') +} + + +/***/ }), + +/***/ 162: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(2613) +const { kDestroyed, kBodyUsed } = __nccwpck_require__(249) +const { IncomingMessage } = __nccwpck_require__(8611) +const stream = __nccwpck_require__(2203) +const net = __nccwpck_require__(9278) +const { InvalidArgumentError } = __nccwpck_require__(3785) +const { Blob } = __nccwpck_require__(181) +const nodeUtil = __nccwpck_require__(9023) +const { stringify } = __nccwpck_require__(3480) +const { headerNameLowerCasedRecord } = __nccwpck_require__(9549) + +const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v)) + +function nop () {} + +function isStream (obj) { + return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function' +} + +// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License) +function isBlobLike (object) { + return (Blob && object instanceof Blob) || ( + object && + typeof object === 'object' && + (typeof object.stream === 'function' || + typeof object.arrayBuffer === 'function') && + /^(Blob|File)$/.test(object[Symbol.toStringTag]) + ) +} + +function buildURL (url, queryParams) { + if (url.includes('?') || url.includes('#')) { + throw new Error('Query params cannot be passed when url already contains "?" or "#".') + } + + const stringified = stringify(queryParams) + + if (stringified) { + url += '?' + stringified + } + + return url +} + +function parseURL (url) { + if (typeof url === 'string') { + url = new URL(url) + + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') + } + + return url + } + + if (!url || typeof url !== 'object') { + throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.') + } + + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') + } + + if (!(url instanceof URL)) { + if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) { + throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.') + } + + if (url.path != null && typeof url.path !== 'string') { + throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.') + } + + if (url.pathname != null && typeof url.pathname !== 'string') { + throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.') + } + + if (url.hostname != null && typeof url.hostname !== 'string') { + throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.') + } + + if (url.origin != null && typeof url.origin !== 'string') { + throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.') + } + + const port = url.port != null + ? url.port + : (url.protocol === 'https:' ? 443 : 80) + let origin = url.origin != null + ? url.origin + : `${url.protocol}//${url.hostname}:${port}` + let path = url.path != null + ? url.path + : `${url.pathname || ''}${url.search || ''}` + + if (origin.endsWith('/')) { + origin = origin.substring(0, origin.length - 1) + } + + if (path && !path.startsWith('/')) { + path = `/${path}` + } + // new URL(path, origin) is unsafe when `path` contains an absolute URL + // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL: + // If first parameter is a relative URL, second param is required, and will be used as the base URL. + // If first parameter is an absolute URL, a given second param will be ignored. + url = new URL(origin + path) + } + + return url +} + +function parseOrigin (url) { + url = parseURL(url) + + if (url.pathname !== '/' || url.search || url.hash) { + throw new InvalidArgumentError('invalid url') + } + + return url +} + +function getHostname (host) { + if (host[0] === '[') { + const idx = host.indexOf(']') + + assert(idx !== -1) + return host.substring(1, idx) + } + + const idx = host.indexOf(':') + if (idx === -1) return host + + return host.substring(0, idx) +} + +// IP addresses are not valid server names per RFC6066 +// > Currently, the only server names supported are DNS hostnames +function getServerName (host) { + if (!host) { + return null + } + + assert.strictEqual(typeof host, 'string') + + const servername = getHostname(host) + if (net.isIP(servername)) { + return '' + } + + return servername +} + +function deepClone (obj) { + return JSON.parse(JSON.stringify(obj)) +} + +function isAsyncIterable (obj) { + return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function') +} + +function isIterable (obj) { + return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function')) +} + +function bodyLength (body) { + if (body == null) { + return 0 + } else if (isStream(body)) { + const state = body._readableState + return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) + ? state.length + : null + } else if (isBlobLike(body)) { + return body.size != null ? body.size : null + } else if (isBuffer(body)) { + return body.byteLength + } + + return null +} + +function isDestroyed (stream) { + return !stream || !!(stream.destroyed || stream[kDestroyed]) +} + +function isReadableAborted (stream) { + const state = stream && stream._readableState + return isDestroyed(stream) && state && !state.endEmitted +} + +function destroy (stream, err) { + if (stream == null || !isStream(stream) || isDestroyed(stream)) { + return + } + + if (typeof stream.destroy === 'function') { + if (Object.getPrototypeOf(stream).constructor === IncomingMessage) { + // See: https://github.com/nodejs/node/pull/38505/files + stream.socket = null + } + + stream.destroy(err) + } else if (err) { + process.nextTick((stream, err) => { + stream.emit('error', err) + }, stream, err) + } + + if (stream.destroyed !== true) { + stream[kDestroyed] = true + } +} + +const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/ +function parseKeepAliveTimeout (val) { + const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR) + return m ? parseInt(m[1], 10) * 1000 : null +} + +/** + * Retrieves a header name and returns its lowercase value. + * @param {string | Buffer} value Header name + * @returns {string} + */ +function headerNameToString (value) { + return headerNameLowerCasedRecord[value] || value.toLowerCase() +} + +function parseHeaders (headers, obj = {}) { + // For H2 support + if (!Array.isArray(headers)) return headers + + for (let i = 0; i < headers.length; i += 2) { + const key = headers[i].toString().toLowerCase() + let val = obj[key] + + if (!val) { + if (Array.isArray(headers[i + 1])) { + obj[key] = headers[i + 1].map(x => x.toString('utf8')) + } else { + obj[key] = headers[i + 1].toString('utf8') + } + } else { + if (!Array.isArray(val)) { + val = [val] + obj[key] = val + } + val.push(headers[i + 1].toString('utf8')) + } + } + + // See https://github.com/nodejs/node/pull/46528 + if ('content-length' in obj && 'content-disposition' in obj) { + obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1') + } + + return obj +} + +function parseRawHeaders (headers) { + const ret = [] + let hasContentLength = false + let contentDispositionIdx = -1 + + for (let n = 0; n < headers.length; n += 2) { + const key = headers[n + 0].toString() + const val = headers[n + 1].toString('utf8') + + if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) { + ret.push(key, val) + hasContentLength = true + } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) { + contentDispositionIdx = ret.push(key, val) - 1 + } else { + ret.push(key, val) + } + } + + // See https://github.com/nodejs/node/pull/46528 + if (hasContentLength && contentDispositionIdx !== -1) { + ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1') + } + + return ret +} + +function isBuffer (buffer) { + // See, https://github.com/mcollina/undici/pull/319 + return buffer instanceof Uint8Array || Buffer.isBuffer(buffer) +} + +function validateHandler (handler, method, upgrade) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } + + if (typeof handler.onConnect !== 'function') { + throw new InvalidArgumentError('invalid onConnect method') + } + + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } + + if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) { + throw new InvalidArgumentError('invalid onBodySent method') + } + + if (upgrade || method === 'CONNECT') { + if (typeof handler.onUpgrade !== 'function') { + throw new InvalidArgumentError('invalid onUpgrade method') + } + } else { + if (typeof handler.onHeaders !== 'function') { + throw new InvalidArgumentError('invalid onHeaders method') + } + + if (typeof handler.onData !== 'function') { + throw new InvalidArgumentError('invalid onData method') + } + + if (typeof handler.onComplete !== 'function') { + throw new InvalidArgumentError('invalid onComplete method') + } + } +} + +// A body is disturbed if it has been read from and it cannot +// be re-used without losing state or data. +function isDisturbed (body) { + return !!(body && ( + stream.isDisturbed + ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed? + : body[kBodyUsed] || + body.readableDidRead || + (body._readableState && body._readableState.dataEmitted) || + isReadableAborted(body) + )) +} + +function isErrored (body) { + return !!(body && ( + stream.isErrored + ? stream.isErrored(body) + : /state: 'errored'/.test(nodeUtil.inspect(body) + ))) +} + +function isReadable (body) { + return !!(body && ( + stream.isReadable + ? stream.isReadable(body) + : /state: 'readable'/.test(nodeUtil.inspect(body) + ))) +} + +function getSocketInfo (socket) { + return { + localAddress: socket.localAddress, + localPort: socket.localPort, + remoteAddress: socket.remoteAddress, + remotePort: socket.remotePort, + remoteFamily: socket.remoteFamily, + timeout: socket.timeout, + bytesWritten: socket.bytesWritten, + bytesRead: socket.bytesRead + } +} + +async function * convertIterableToBuffer (iterable) { + for await (const chunk of iterable) { + yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk) + } +} + +let ReadableStream +function ReadableStreamFrom (iterable) { + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(3774).ReadableStream) + } + + if (ReadableStream.from) { + return ReadableStream.from(convertIterableToBuffer(iterable)) + } + + let iterator + return new ReadableStream( + { + async start () { + iterator = iterable[Symbol.asyncIterator]() + }, + async pull (controller) { + const { done, value } = await iterator.next() + if (done) { + queueMicrotask(() => { + controller.close() + }) + } else { + const buf = Buffer.isBuffer(value) ? value : Buffer.from(value) + controller.enqueue(new Uint8Array(buf)) + } + return controller.desiredSize > 0 + }, + async cancel (reason) { + await iterator.return() + } + }, + 0 + ) +} + +// The chunk should be a FormData instance and contains +// all the required methods. +function isFormDataLike (object) { + return ( + object && + typeof object === 'object' && + typeof object.append === 'function' && + typeof object.delete === 'function' && + typeof object.get === 'function' && + typeof object.getAll === 'function' && + typeof object.has === 'function' && + typeof object.set === 'function' && + object[Symbol.toStringTag] === 'FormData' + ) +} + +function throwIfAborted (signal) { + if (!signal) { return } + if (typeof signal.throwIfAborted === 'function') { + signal.throwIfAborted() + } else { + if (signal.aborted) { + // DOMException not available < v17.0.0 + const err = new Error('The operation was aborted') + err.name = 'AbortError' + throw err + } + } +} + +function addAbortListener (signal, listener) { + if ('addEventListener' in signal) { + signal.addEventListener('abort', listener, { once: true }) + return () => signal.removeEventListener('abort', listener) + } + signal.addListener('abort', listener) + return () => signal.removeListener('abort', listener) +} + +const hasToWellFormed = !!String.prototype.toWellFormed + +/** + * @param {string} val + */ +function toUSVString (val) { + if (hasToWellFormed) { + return `${val}`.toWellFormed() + } else if (nodeUtil.toUSVString) { + return nodeUtil.toUSVString(val) + } + + return `${val}` +} + +// Parsed accordingly to RFC 9110 +// https://www.rfc-editor.org/rfc/rfc9110#field.content-range +function parseRangeHeader (range) { + if (range == null || range === '') return { start: 0, end: null, size: null } + + const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null + return m + ? { + start: parseInt(m[1]), + end: m[2] ? parseInt(m[2]) : null, + size: m[3] ? parseInt(m[3]) : null + } + : null +} + +const kEnumerableProperty = Object.create(null) +kEnumerableProperty.enumerable = true + +module.exports = { + kEnumerableProperty, + nop, + isDisturbed, + isErrored, + isReadable, + toUSVString, + isReadableAborted, + isBlobLike, + parseOrigin, + parseURL, + getServerName, + isStream, + isIterable, + isAsyncIterable, + isDestroyed, + headerNameToString, + parseRawHeaders, + parseHeaders, + parseKeepAliveTimeout, + destroy, + bodyLength, + deepClone, + ReadableStreamFrom, + isBuffer, + validateHandler, + getSocketInfo, + isFormDataLike, + buildURL, + throwIfAborted, + addAbortListener, + parseRangeHeader, + nodeMajor, + nodeMinor, + nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13), + safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE'] +} + + +/***/ }), + +/***/ 6215: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Dispatcher = __nccwpck_require__(1045) +const { + ClientDestroyedError, + ClientClosedError, + InvalidArgumentError +} = __nccwpck_require__(3785) +const { kDestroy, kClose, kDispatch, kInterceptors } = __nccwpck_require__(249) + +const kDestroyed = Symbol('destroyed') +const kClosed = Symbol('closed') +const kOnDestroyed = Symbol('onDestroyed') +const kOnClosed = Symbol('onClosed') +const kInterceptedDispatch = Symbol('Intercepted Dispatch') + +class DispatcherBase extends Dispatcher { + constructor () { + super() + + this[kDestroyed] = false + this[kOnDestroyed] = null + this[kClosed] = false + this[kOnClosed] = [] + } + + get destroyed () { + return this[kDestroyed] + } + + get closed () { + return this[kClosed] + } + + get interceptors () { + return this[kInterceptors] + } + + set interceptors (newInterceptors) { + if (newInterceptors) { + for (let i = newInterceptors.length - 1; i >= 0; i--) { + const interceptor = this[kInterceptors][i] + if (typeof interceptor !== 'function') { + throw new InvalidArgumentError('interceptor must be an function') + } + } + } + + this[kInterceptors] = newInterceptors + } + + close (callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.close((err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (this[kDestroyed]) { + queueMicrotask(() => callback(new ClientDestroyedError(), null)) + return + } + + if (this[kClosed]) { + if (this[kOnClosed]) { + this[kOnClosed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } + + this[kClosed] = true + this[kOnClosed].push(callback) + + const onClosed = () => { + const callbacks = this[kOnClosed] + this[kOnClosed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } + + // Should not error. + this[kClose]() + .then(() => this.destroy()) + .then(() => { + queueMicrotask(onClosed) + }) + } + + destroy (err, callback) { + if (typeof err === 'function') { + callback = err + err = null + } + + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.destroy(err, (err, data) => { + return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data) + }) + }) + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (this[kDestroyed]) { + if (this[kOnDestroyed]) { + this[kOnDestroyed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } + + if (!err) { + err = new ClientDestroyedError() + } + + this[kDestroyed] = true + this[kOnDestroyed] = this[kOnDestroyed] || [] + this[kOnDestroyed].push(callback) + + const onDestroyed = () => { + const callbacks = this[kOnDestroyed] + this[kOnDestroyed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } + + // Should not error. + this[kDestroy](err).then(() => { + queueMicrotask(onDestroyed) + }) + } + + [kInterceptedDispatch] (opts, handler) { + if (!this[kInterceptors] || this[kInterceptors].length === 0) { + this[kInterceptedDispatch] = this[kDispatch] + return this[kDispatch](opts, handler) + } + + let dispatch = this[kDispatch].bind(this) + for (let i = this[kInterceptors].length - 1; i >= 0; i--) { + dispatch = this[kInterceptors][i](dispatch) + } + this[kInterceptedDispatch] = dispatch + return dispatch(opts, handler) + } + + dispatch (opts, handler) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } + + try { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object.') + } + + if (this[kDestroyed] || this[kOnDestroyed]) { + throw new ClientDestroyedError() + } + + if (this[kClosed]) { + throw new ClientClosedError() + } + + return this[kInterceptedDispatch](opts, handler) + } catch (err) { + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } + + handler.onError(err) + + return false + } + } +} + +module.exports = DispatcherBase + + +/***/ }), + +/***/ 1045: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const EventEmitter = __nccwpck_require__(4434) + +class Dispatcher extends EventEmitter { + dispatch () { + throw new Error('not implemented') + } + + close () { + throw new Error('not implemented') + } + + destroy () { + throw new Error('not implemented') + } +} + +module.exports = Dispatcher + + +/***/ }), + +/***/ 3893: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Busboy = __nccwpck_require__(4455) +const util = __nccwpck_require__(162) +const { + ReadableStreamFrom, + isBlobLike, + isReadableStreamLike, + readableStreamClose, + createDeferredPromise, + fullyReadBody +} = __nccwpck_require__(7189) +const { FormData } = __nccwpck_require__(3639) +const { kState } = __nccwpck_require__(4236) +const { webidl } = __nccwpck_require__(7472) +const { DOMException, structuredClone } = __nccwpck_require__(1356) +const { Blob, File: NativeFile } = __nccwpck_require__(181) +const { kBodyUsed } = __nccwpck_require__(249) +const assert = __nccwpck_require__(2613) +const { isErrored } = __nccwpck_require__(162) +const { isUint8Array, isArrayBuffer } = __nccwpck_require__(8253) +const { File: UndiciFile } = __nccwpck_require__(3791) +const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(5892) + +let ReadableStream = globalThis.ReadableStream + +/** @type {globalThis['File']} */ +const File = NativeFile ?? UndiciFile +const textEncoder = new TextEncoder() +const textDecoder = new TextDecoder() + +// https://fetch.spec.whatwg.org/#concept-bodyinit-extract +function extractBody (object, keepalive = false) { + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(3774).ReadableStream) + } + + // 1. Let stream be null. + let stream = null + + // 2. If object is a ReadableStream object, then set stream to object. + if (object instanceof ReadableStream) { + stream = object + } else if (isBlobLike(object)) { + // 3. Otherwise, if object is a Blob object, set stream to the + // result of running object’s get stream. + stream = object.stream() + } else { + // 4. Otherwise, set stream to a new ReadableStream object, and set + // up stream. + stream = new ReadableStream({ + async pull (controller) { + controller.enqueue( + typeof source === 'string' ? textEncoder.encode(source) : source + ) + queueMicrotask(() => readableStreamClose(controller)) + }, + start () {}, + type: undefined + }) + } + + // 5. Assert: stream is a ReadableStream object. + assert(isReadableStreamLike(stream)) + + // 6. Let action be null. + let action = null + + // 7. Let source be null. + let source = null + + // 8. Let length be null. + let length = null + + // 9. Let type be null. + let type = null + + // 10. Switch on object: + if (typeof object === 'string') { + // Set source to the UTF-8 encoding of object. + // Note: setting source to a Uint8Array here breaks some mocking assumptions. + source = object + + // Set type to `text/plain;charset=UTF-8`. + type = 'text/plain;charset=UTF-8' + } else if (object instanceof URLSearchParams) { + // URLSearchParams + + // spec says to run application/x-www-form-urlencoded on body.list + // this is implemented in Node.js as apart of an URLSearchParams instance toString method + // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490 + // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100 + + // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list. + source = object.toString() + + // Set type to `application/x-www-form-urlencoded;charset=UTF-8`. + type = 'application/x-www-form-urlencoded;charset=UTF-8' + } else if (isArrayBuffer(object)) { + // BufferSource/ArrayBuffer + + // Set source to a copy of the bytes held by object. + source = new Uint8Array(object.slice()) + } else if (ArrayBuffer.isView(object)) { + // BufferSource/ArrayBufferView + + // Set source to a copy of the bytes held by object. + source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)) + } else if (util.isFormDataLike(object)) { + const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}` + const prefix = `--${boundary}\r\nContent-Disposition: form-data` + + /*! formdata-polyfill. MIT License. Jimmy Wärting */ + const escape = (str) => + str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22') + const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, '\r\n') + + // Set action to this step: run the multipart/form-data + // encoding algorithm, with object’s entry list and UTF-8. + // - This ensures that the body is immutable and can't be changed afterwords + // - That the content-length is calculated in advance. + // - And that all parts are pre-encoded and ready to be sent. + + const blobParts = [] + const rn = new Uint8Array([13, 10]) // '\r\n' + length = 0 + let hasUnknownSizeValue = false + + for (const [name, value] of object) { + if (typeof value === 'string') { + const chunk = textEncoder.encode(prefix + + `; name="${escape(normalizeLinefeeds(name))}"` + + `\r\n\r\n${normalizeLinefeeds(value)}\r\n`) + blobParts.push(chunk) + length += chunk.byteLength + } else { + const chunk = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + + (value.name ? `; filename="${escape(value.name)}"` : '') + '\r\n' + + `Content-Type: ${ + value.type || 'application/octet-stream' + }\r\n\r\n`) + blobParts.push(chunk, value, rn) + if (typeof value.size === 'number') { + length += chunk.byteLength + value.size + rn.byteLength + } else { + hasUnknownSizeValue = true + } + } + } + + const chunk = textEncoder.encode(`--${boundary}--`) + blobParts.push(chunk) + length += chunk.byteLength + if (hasUnknownSizeValue) { + length = null + } + + // Set source to object. + source = object + + action = async function * () { + for (const part of blobParts) { + if (part.stream) { + yield * part.stream() + } else { + yield part + } + } + } + + // Set type to `multipart/form-data; boundary=`, + // followed by the multipart/form-data boundary string generated + // by the multipart/form-data encoding algorithm. + type = 'multipart/form-data; boundary=' + boundary + } else if (isBlobLike(object)) { + // Blob + + // Set source to object. + source = object + + // Set length to object’s size. + length = object.size + + // If object’s type attribute is not the empty byte sequence, set + // type to its value. + if (object.type) { + type = object.type + } + } else if (typeof object[Symbol.asyncIterator] === 'function') { + // If keepalive is true, then throw a TypeError. + if (keepalive) { + throw new TypeError('keepalive') + } + + // If object is disturbed or locked, then throw a TypeError. + if (util.isDisturbed(object) || object.locked) { + throw new TypeError( + 'Response body object should not be disturbed or locked' + ) + } + + stream = + object instanceof ReadableStream ? object : ReadableStreamFrom(object) + } + + // 11. If source is a byte sequence, then set action to a + // step that returns source and length to source’s length. + if (typeof source === 'string' || util.isBuffer(source)) { + length = Buffer.byteLength(source) + } + + // 12. If action is non-null, then run these steps in in parallel: + if (action != null) { + // Run action. + let iterator + stream = new ReadableStream({ + async start () { + iterator = action(object)[Symbol.asyncIterator]() + }, + async pull (controller) { + const { value, done } = await iterator.next() + if (done) { + // When running action is done, close stream. + queueMicrotask(() => { + controller.close() + }) + } else { + // Whenever one or more bytes are available and stream is not errored, + // enqueue a Uint8Array wrapping an ArrayBuffer containing the available + // bytes into stream. + if (!isErrored(stream)) { + controller.enqueue(new Uint8Array(value)) + } + } + return controller.desiredSize > 0 + }, + async cancel (reason) { + await iterator.return() + }, + type: undefined + }) + } + + // 13. Let body be a body whose stream is stream, source is source, + // and length is length. + const body = { stream, source, length } + + // 14. Return (body, type). + return [body, type] +} + +// https://fetch.spec.whatwg.org/#bodyinit-safely-extract +function safelyExtractBody (object, keepalive = false) { + if (!ReadableStream) { + // istanbul ignore next + ReadableStream = (__nccwpck_require__(3774).ReadableStream) + } + + // To safely extract a body and a `Content-Type` value from + // a byte sequence or BodyInit object object, run these steps: + + // 1. If object is a ReadableStream object, then: + if (object instanceof ReadableStream) { + // Assert: object is neither disturbed nor locked. + // istanbul ignore next + assert(!util.isDisturbed(object), 'The body has already been consumed.') + // istanbul ignore next + assert(!object.locked, 'The stream is locked.') + } + + // 2. Return the results of extracting object. + return extractBody(object, keepalive) +} + +function cloneBody (body) { + // To clone a body body, run these steps: + + // https://fetch.spec.whatwg.org/#concept-body-clone + + // 1. Let « out1, out2 » be the result of teeing body’s stream. + const [out1, out2] = body.stream.tee() + const out2Clone = structuredClone(out2, { transfer: [out2] }) + // This, for whatever reasons, unrefs out2Clone which allows + // the process to exit by itself. + const [, finalClone] = out2Clone.tee() + + // 2. Set body’s stream to out1. + body.stream = out1 + + // 3. Return a body whose stream is out2 and other members are copied from body. + return { + stream: finalClone, + length: body.length, + source: body.source + } +} + +async function * consumeBody (body) { + if (body) { + if (isUint8Array(body)) { + yield body + } else { + const stream = body.stream + + if (util.isDisturbed(stream)) { + throw new TypeError('The body has already been consumed.') + } + + if (stream.locked) { + throw new TypeError('The stream is locked.') + } + + // Compat. + stream[kBodyUsed] = true + + yield * stream + } + } +} + +function throwIfAborted (state) { + if (state.aborted) { + throw new DOMException('The operation was aborted.', 'AbortError') + } +} + +function bodyMixinMethods (instance) { + const methods = { + blob () { + // The blob() method steps are to return the result of + // running consume body with this and the following step + // given a byte sequence bytes: return a Blob whose + // contents are bytes and whose type attribute is this’s + // MIME type. + return specConsumeBody(this, (bytes) => { + let mimeType = bodyMimeType(this) + + if (mimeType === 'failure') { + mimeType = '' + } else if (mimeType) { + mimeType = serializeAMimeType(mimeType) + } + + // Return a Blob whose contents are bytes and type attribute + // is mimeType. + return new Blob([bytes], { type: mimeType }) + }, instance) + }, + + arrayBuffer () { + // The arrayBuffer() method steps are to return the result + // of running consume body with this and the following step + // given a byte sequence bytes: return a new ArrayBuffer + // whose contents are bytes. + return specConsumeBody(this, (bytes) => { + return new Uint8Array(bytes).buffer + }, instance) + }, + + text () { + // The text() method steps are to return the result of running + // consume body with this and UTF-8 decode. + return specConsumeBody(this, utf8DecodeBytes, instance) + }, + + json () { + // The json() method steps are to return the result of running + // consume body with this and parse JSON from bytes. + return specConsumeBody(this, parseJSONFromBytes, instance) + }, + + async formData () { + webidl.brandCheck(this, instance) + + throwIfAborted(this[kState]) + + const contentType = this.headers.get('Content-Type') + + // If mimeType’s essence is "multipart/form-data", then: + if (/multipart\/form-data/.test(contentType)) { + const headers = {} + for (const [key, value] of this.headers) headers[key.toLowerCase()] = value + + const responseFormData = new FormData() + + let busboy + + try { + busboy = new Busboy({ + headers, + preservePath: true + }) + } catch (err) { + throw new DOMException(`${err}`, 'AbortError') + } + + busboy.on('field', (name, value) => { + responseFormData.append(name, value) + }) + busboy.on('file', (name, value, filename, encoding, mimeType) => { + const chunks = [] + + if (encoding === 'base64' || encoding.toLowerCase() === 'base64') { + let base64chunk = '' + + value.on('data', (chunk) => { + base64chunk += chunk.toString().replace(/[\r\n]/gm, '') + + const end = base64chunk.length - base64chunk.length % 4 + chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64')) + + base64chunk = base64chunk.slice(end) + }) + value.on('end', () => { + chunks.push(Buffer.from(base64chunk, 'base64')) + responseFormData.append(name, new File(chunks, filename, { type: mimeType })) + }) + } else { + value.on('data', (chunk) => { + chunks.push(chunk) + }) + value.on('end', () => { + responseFormData.append(name, new File(chunks, filename, { type: mimeType })) + }) + } + }) + + const busboyResolve = new Promise((resolve, reject) => { + busboy.on('finish', resolve) + busboy.on('error', (err) => reject(new TypeError(err))) + }) + + if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk) + busboy.end() + await busboyResolve + + return responseFormData + } else if (/application\/x-www-form-urlencoded/.test(contentType)) { + // Otherwise, if mimeType’s essence is "application/x-www-form-urlencoded", then: + + // 1. Let entries be the result of parsing bytes. + let entries + try { + let text = '' + // application/x-www-form-urlencoded parser will keep the BOM. + // https://url.spec.whatwg.org/#concept-urlencoded-parser + // Note that streaming decoder is stateful and cannot be reused + const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true }) + + for await (const chunk of consumeBody(this[kState].body)) { + if (!isUint8Array(chunk)) { + throw new TypeError('Expected Uint8Array chunk') + } + text += streamingDecoder.decode(chunk, { stream: true }) + } + text += streamingDecoder.decode() + entries = new URLSearchParams(text) + } catch (err) { + // istanbul ignore next: Unclear when new URLSearchParams can fail on a string. + // 2. If entries is failure, then throw a TypeError. + throw Object.assign(new TypeError(), { cause: err }) + } + + // 3. Return a new FormData object whose entries are entries. + const formData = new FormData() + for (const [name, value] of entries) { + formData.append(name, value) + } + return formData + } else { + // Wait a tick before checking if the request has been aborted. + // Otherwise, a TypeError can be thrown when an AbortError should. + await Promise.resolve() + + throwIfAborted(this[kState]) + + // Otherwise, throw a TypeError. + throw webidl.errors.exception({ + header: `${instance.name}.formData`, + message: 'Could not parse content as FormData.' + }) + } + } + } + + return methods +} + +function mixinBody (prototype) { + Object.assign(prototype.prototype, bodyMixinMethods(prototype)) +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-body-consume-body + * @param {Response|Request} object + * @param {(value: unknown) => unknown} convertBytesToJSValue + * @param {Response|Request} instance + */ +async function specConsumeBody (object, convertBytesToJSValue, instance) { + webidl.brandCheck(object, instance) + + throwIfAborted(object[kState]) + + // 1. If object is unusable, then return a promise rejected + // with a TypeError. + if (bodyUnusable(object[kState].body)) { + throw new TypeError('Body is unusable') + } + + // 2. Let promise be a new promise. + const promise = createDeferredPromise() + + // 3. Let errorSteps given error be to reject promise with error. + const errorSteps = (error) => promise.reject(error) + + // 4. Let successSteps given a byte sequence data be to resolve + // promise with the result of running convertBytesToJSValue + // with data. If that threw an exception, then run errorSteps + // with that exception. + const successSteps = (data) => { + try { + promise.resolve(convertBytesToJSValue(data)) + } catch (e) { + errorSteps(e) + } + } + + // 5. If object’s body is null, then run successSteps with an + // empty byte sequence. + if (object[kState].body == null) { + successSteps(new Uint8Array()) + return promise.promise + } + + // 6. Otherwise, fully read object’s body given successSteps, + // errorSteps, and object’s relevant global object. + await fullyReadBody(object[kState].body, successSteps, errorSteps) + + // 7. Return promise. + return promise.promise +} + +// https://fetch.spec.whatwg.org/#body-unusable +function bodyUnusable (body) { + // An object including the Body interface mixin is + // said to be unusable if its body is non-null and + // its body’s stream is disturbed or locked. + return body != null && (body.stream.locked || util.isDisturbed(body.stream)) +} + +/** + * @see https://encoding.spec.whatwg.org/#utf-8-decode + * @param {Buffer} buffer + */ +function utf8DecodeBytes (buffer) { + if (buffer.length === 0) { + return '' + } + + // 1. Let buffer be the result of peeking three bytes from + // ioQueue, converted to a byte sequence. + + // 2. If buffer is 0xEF 0xBB 0xBF, then read three + // bytes from ioQueue. (Do nothing with those bytes.) + if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { + buffer = buffer.subarray(3) + } + + // 3. Process a queue with an instance of UTF-8’s + // decoder, ioQueue, output, and "replacement". + const output = textDecoder.decode(buffer) + + // 4. Return output. + return output +} + +/** + * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value + * @param {Uint8Array} bytes + */ +function parseJSONFromBytes (bytes) { + return JSON.parse(utf8DecodeBytes(bytes)) +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-body-mime-type + * @param {import('./response').Response|import('./request').Request} object + */ +function bodyMimeType (object) { + const { headersList } = object[kState] + const contentType = headersList.get('content-type') + + if (contentType === null) { + return 'failure' + } + + return parseMIMEType(contentType) +} + +module.exports = { + extractBody, + safelyExtractBody, + cloneBody, + mixinBody +} + + +/***/ }), + +/***/ 1356: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { MessageChannel, receiveMessageOnPort } = __nccwpck_require__(8167) + +const corsSafeListedMethods = ['GET', 'HEAD', 'POST'] +const corsSafeListedMethodsSet = new Set(corsSafeListedMethods) + +const nullBodyStatus = [101, 204, 205, 304] + +const redirectStatus = [301, 302, 303, 307, 308] +const redirectStatusSet = new Set(redirectStatus) + +// https://fetch.spec.whatwg.org/#block-bad-port +const badPorts = [ + '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79', + '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137', + '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532', + '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723', + '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697', + '10080' +] + +const badPortsSet = new Set(badPorts) + +// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies +const referrerPolicy = [ + '', + 'no-referrer', + 'no-referrer-when-downgrade', + 'same-origin', + 'origin', + 'strict-origin', + 'origin-when-cross-origin', + 'strict-origin-when-cross-origin', + 'unsafe-url' +] +const referrerPolicySet = new Set(referrerPolicy) + +const requestRedirect = ['follow', 'manual', 'error'] + +const safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE'] +const safeMethodsSet = new Set(safeMethods) + +const requestMode = ['navigate', 'same-origin', 'no-cors', 'cors'] + +const requestCredentials = ['omit', 'same-origin', 'include'] + +const requestCache = [ + 'default', + 'no-store', + 'reload', + 'no-cache', + 'force-cache', + 'only-if-cached' +] + +// https://fetch.spec.whatwg.org/#request-body-header-name +const requestBodyHeader = [ + 'content-encoding', + 'content-language', + 'content-location', + 'content-type', + // See https://github.com/nodejs/undici/issues/2021 + // 'Content-Length' is a forbidden header name, which is typically + // removed in the Headers implementation. However, undici doesn't + // filter out headers, so we add it here. + 'content-length' +] + +// https://fetch.spec.whatwg.org/#enumdef-requestduplex +const requestDuplex = [ + 'half' +] + +// http://fetch.spec.whatwg.org/#forbidden-method +const forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK'] +const forbiddenMethodsSet = new Set(forbiddenMethods) + +const subresource = [ + 'audio', + 'audioworklet', + 'font', + 'image', + 'manifest', + 'paintworklet', + 'script', + 'style', + 'track', + 'video', + 'xslt', + '' +] +const subresourceSet = new Set(subresource) + +/** @type {globalThis['DOMException']} */ +const DOMException = globalThis.DOMException ?? (() => { + // DOMException was only made a global in Node v17.0.0, + // but fetch supports >= v16.8. + try { + atob('~') + } catch (err) { + return Object.getPrototypeOf(err).constructor + } +})() + +let channel + +/** @type {globalThis['structuredClone']} */ +const structuredClone = + globalThis.structuredClone ?? + // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js + // structuredClone was added in v17.0.0, but fetch supports v16.8 + function structuredClone (value, options = undefined) { + if (arguments.length === 0) { + throw new TypeError('missing argument') + } + + if (!channel) { + channel = new MessageChannel() + } + channel.port1.unref() + channel.port2.unref() + channel.port1.postMessage(value, options?.transfer) + return receiveMessageOnPort(channel.port2).message + } + +module.exports = { + DOMException, + structuredClone, + subresource, + forbiddenMethods, + requestBodyHeader, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + redirectStatus, + corsSafeListedMethods, + nullBodyStatus, + safeMethods, + badPorts, + requestDuplex, + subresourceSet, + badPortsSet, + redirectStatusSet, + corsSafeListedMethodsSet, + safeMethodsSet, + forbiddenMethodsSet, + referrerPolicySet +} + + +/***/ }), + +/***/ 5892: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const assert = __nccwpck_require__(2613) +const { atob } = __nccwpck_require__(181) +const { isomorphicDecode } = __nccwpck_require__(7189) + +const encoder = new TextEncoder() + +/** + * @see https://mimesniff.spec.whatwg.org/#http-token-code-point + */ +const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/ +const HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/ +/** + * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point + */ +const HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/ + +// https://fetch.spec.whatwg.org/#data-url-processor +/** @param {URL} dataURL */ +function dataURLProcessor (dataURL) { + // 1. Assert: dataURL’s scheme is "data". + assert(dataURL.protocol === 'data:') + + // 2. Let input be the result of running the URL + // serializer on dataURL with exclude fragment + // set to true. + let input = URLSerializer(dataURL, true) + + // 3. Remove the leading "data:" string from input. + input = input.slice(5) + + // 4. Let position point at the start of input. + const position = { position: 0 } + + // 5. Let mimeType be the result of collecting a + // sequence of code points that are not equal + // to U+002C (,), given position. + let mimeType = collectASequenceOfCodePointsFast( + ',', + input, + position + ) + + // 6. Strip leading and trailing ASCII whitespace + // from mimeType. + // Undici implementation note: we need to store the + // length because if the mimetype has spaces removed, + // the wrong amount will be sliced from the input in + // step #9 + const mimeTypeLength = mimeType.length + mimeType = removeASCIIWhitespace(mimeType, true, true) + + // 7. If position is past the end of input, then + // return failure + if (position.position >= input.length) { + return 'failure' + } + + // 8. Advance position by 1. + position.position++ + + // 9. Let encodedBody be the remainder of input. + const encodedBody = input.slice(mimeTypeLength + 1) + + // 10. Let body be the percent-decoding of encodedBody. + let body = stringPercentDecode(encodedBody) + + // 11. If mimeType ends with U+003B (;), followed by + // zero or more U+0020 SPACE, followed by an ASCII + // case-insensitive match for "base64", then: + if (/;(\u0020){0,}base64$/i.test(mimeType)) { + // 1. Let stringBody be the isomorphic decode of body. + const stringBody = isomorphicDecode(body) + + // 2. Set body to the forgiving-base64 decode of + // stringBody. + body = forgivingBase64(stringBody) + + // 3. If body is failure, then return failure. + if (body === 'failure') { + return 'failure' + } + + // 4. Remove the last 6 code points from mimeType. + mimeType = mimeType.slice(0, -6) + + // 5. Remove trailing U+0020 SPACE code points from mimeType, + // if any. + mimeType = mimeType.replace(/(\u0020)+$/, '') + + // 6. Remove the last U+003B (;) code point from mimeType. + mimeType = mimeType.slice(0, -1) + } + + // 12. If mimeType starts with U+003B (;), then prepend + // "text/plain" to mimeType. + if (mimeType.startsWith(';')) { + mimeType = 'text/plain' + mimeType + } + + // 13. Let mimeTypeRecord be the result of parsing + // mimeType. + let mimeTypeRecord = parseMIMEType(mimeType) + + // 14. If mimeTypeRecord is failure, then set + // mimeTypeRecord to text/plain;charset=US-ASCII. + if (mimeTypeRecord === 'failure') { + mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII') + } + + // 15. Return a new data: URL struct whose MIME + // type is mimeTypeRecord and body is body. + // https://fetch.spec.whatwg.org/#data-url-struct + return { mimeType: mimeTypeRecord, body } +} + +// https://url.spec.whatwg.org/#concept-url-serializer +/** + * @param {URL} url + * @param {boolean} excludeFragment + */ +function URLSerializer (url, excludeFragment = false) { + if (!excludeFragment) { + return url.href + } + + const href = url.href + const hashLength = url.hash.length + + return hashLength === 0 ? href : href.substring(0, href.length - hashLength) +} + +// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points +/** + * @param {(char: string) => boolean} condition + * @param {string} input + * @param {{ position: number }} position + */ +function collectASequenceOfCodePoints (condition, input, position) { + // 1. Let result be the empty string. + let result = '' + + // 2. While position doesn’t point past the end of input and the + // code point at position within input meets the condition condition: + while (position.position < input.length && condition(input[position.position])) { + // 1. Append that code point to the end of result. + result += input[position.position] + + // 2. Advance position by 1. + position.position++ + } + + // 3. Return result. + return result +} + +/** + * A faster collectASequenceOfCodePoints that only works when comparing a single character. + * @param {string} char + * @param {string} input + * @param {{ position: number }} position + */ +function collectASequenceOfCodePointsFast (char, input, position) { + const idx = input.indexOf(char, position.position) + const start = position.position + + if (idx === -1) { + position.position = input.length + return input.slice(start) + } + + position.position = idx + return input.slice(start, position.position) +} + +// https://url.spec.whatwg.org/#string-percent-decode +/** @param {string} input */ +function stringPercentDecode (input) { + // 1. Let bytes be the UTF-8 encoding of input. + const bytes = encoder.encode(input) + + // 2. Return the percent-decoding of bytes. + return percentDecode(bytes) +} + +// https://url.spec.whatwg.org/#percent-decode +/** @param {Uint8Array} input */ +function percentDecode (input) { + // 1. Let output be an empty byte sequence. + /** @type {number[]} */ + const output = [] + + // 2. For each byte byte in input: + for (let i = 0; i < input.length; i++) { + const byte = input[i] + + // 1. If byte is not 0x25 (%), then append byte to output. + if (byte !== 0x25) { + output.push(byte) + + // 2. Otherwise, if byte is 0x25 (%) and the next two bytes + // after byte in input are not in the ranges + // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F), + // and 0x61 (a) to 0x66 (f), all inclusive, append byte + // to output. + } else if ( + byte === 0x25 && + !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2])) + ) { + output.push(0x25) + + // 3. Otherwise: + } else { + // 1. Let bytePoint be the two bytes after byte in input, + // decoded, and then interpreted as hexadecimal number. + const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]) + const bytePoint = Number.parseInt(nextTwoBytes, 16) + + // 2. Append a byte whose value is bytePoint to output. + output.push(bytePoint) + + // 3. Skip the next two bytes in input. + i += 2 + } + } + + // 3. Return output. + return Uint8Array.from(output) +} + +// https://mimesniff.spec.whatwg.org/#parse-a-mime-type +/** @param {string} input */ +function parseMIMEType (input) { + // 1. Remove any leading and trailing HTTP whitespace + // from input. + input = removeHTTPWhitespace(input, true, true) + + // 2. Let position be a position variable for input, + // initially pointing at the start of input. + const position = { position: 0 } + + // 3. Let type be the result of collecting a sequence + // of code points that are not U+002F (/) from + // input, given position. + const type = collectASequenceOfCodePointsFast( + '/', + input, + position + ) + + // 4. If type is the empty string or does not solely + // contain HTTP token code points, then return failure. + // https://mimesniff.spec.whatwg.org/#http-token-code-point + if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { + return 'failure' + } + + // 5. If position is past the end of input, then return + // failure + if (position.position > input.length) { + return 'failure' + } + + // 6. Advance position by 1. (This skips past U+002F (/).) + position.position++ + + // 7. Let subtype be the result of collecting a sequence of + // code points that are not U+003B (;) from input, given + // position. + let subtype = collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 8. Remove any trailing HTTP whitespace from subtype. + subtype = removeHTTPWhitespace(subtype, false, true) + + // 9. If subtype is the empty string or does not solely + // contain HTTP token code points, then return failure. + if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { + return 'failure' + } + + const typeLowercase = type.toLowerCase() + const subtypeLowercase = subtype.toLowerCase() + + // 10. Let mimeType be a new MIME type record whose type + // is type, in ASCII lowercase, and subtype is subtype, + // in ASCII lowercase. + // https://mimesniff.spec.whatwg.org/#mime-type + const mimeType = { + type: typeLowercase, + subtype: subtypeLowercase, + /** @type {Map} */ + parameters: new Map(), + // https://mimesniff.spec.whatwg.org/#mime-type-essence + essence: `${typeLowercase}/${subtypeLowercase}` + } + + // 11. While position is not past the end of input: + while (position.position < input.length) { + // 1. Advance position by 1. (This skips past U+003B (;).) + position.position++ + + // 2. Collect a sequence of code points that are HTTP + // whitespace from input given position. + collectASequenceOfCodePoints( + // https://fetch.spec.whatwg.org/#http-whitespace + char => HTTP_WHITESPACE_REGEX.test(char), + input, + position + ) + + // 3. Let parameterName be the result of collecting a + // sequence of code points that are not U+003B (;) + // or U+003D (=) from input, given position. + let parameterName = collectASequenceOfCodePoints( + (char) => char !== ';' && char !== '=', + input, + position + ) + + // 4. Set parameterName to parameterName, in ASCII + // lowercase. + parameterName = parameterName.toLowerCase() + + // 5. If position is not past the end of input, then: + if (position.position < input.length) { + // 1. If the code point at position within input is + // U+003B (;), then continue. + if (input[position.position] === ';') { + continue + } + + // 2. Advance position by 1. (This skips past U+003D (=).) + position.position++ + } + + // 6. If position is past the end of input, then break. + if (position.position > input.length) { + break + } + + // 7. Let parameterValue be null. + let parameterValue = null + + // 8. If the code point at position within input is + // U+0022 ("), then: + if (input[position.position] === '"') { + // 1. Set parameterValue to the result of collecting + // an HTTP quoted string from input, given position + // and the extract-value flag. + parameterValue = collectAnHTTPQuotedString(input, position, true) + + // 2. Collect a sequence of code points that are not + // U+003B (;) from input, given position. + collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 9. Otherwise: + } else { + // 1. Set parameterValue to the result of collecting + // a sequence of code points that are not U+003B (;) + // from input, given position. + parameterValue = collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 2. Remove any trailing HTTP whitespace from parameterValue. + parameterValue = removeHTTPWhitespace(parameterValue, false, true) + + // 3. If parameterValue is the empty string, then continue. + if (parameterValue.length === 0) { + continue + } + } + + // 10. If all of the following are true + // - parameterName is not the empty string + // - parameterName solely contains HTTP token code points + // - parameterValue solely contains HTTP quoted-string token code points + // - mimeType’s parameters[parameterName] does not exist + // then set mimeType’s parameters[parameterName] to parameterValue. + if ( + parameterName.length !== 0 && + HTTP_TOKEN_CODEPOINTS.test(parameterName) && + (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && + !mimeType.parameters.has(parameterName) + ) { + mimeType.parameters.set(parameterName, parameterValue) + } + } + + // 12. Return mimeType. + return mimeType +} + +// https://infra.spec.whatwg.org/#forgiving-base64-decode +/** @param {string} data */ +function forgivingBase64 (data) { + // 1. Remove all ASCII whitespace from data. + data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, '') + + // 2. If data’s code point length divides by 4 leaving + // no remainder, then: + if (data.length % 4 === 0) { + // 1. If data ends with one or two U+003D (=) code points, + // then remove them from data. + data = data.replace(/=?=$/, '') + } + + // 3. If data’s code point length divides by 4 leaving + // a remainder of 1, then return failure. + if (data.length % 4 === 1) { + return 'failure' + } + + // 4. If data contains a code point that is not one of + // U+002B (+) + // U+002F (/) + // ASCII alphanumeric + // then return failure. + if (/[^+/0-9A-Za-z]/.test(data)) { + return 'failure' + } + + const binary = atob(data) + const bytes = new Uint8Array(binary.length) + + for (let byte = 0; byte < binary.length; byte++) { + bytes[byte] = binary.charCodeAt(byte) + } + + return bytes +} + +// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string +// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string +/** + * @param {string} input + * @param {{ position: number }} position + * @param {boolean?} extractValue + */ +function collectAnHTTPQuotedString (input, position, extractValue) { + // 1. Let positionStart be position. + const positionStart = position.position + + // 2. Let value be the empty string. + let value = '' + + // 3. Assert: the code point at position within input + // is U+0022 ("). + assert(input[position.position] === '"') + + // 4. Advance position by 1. + position.position++ + + // 5. While true: + while (true) { + // 1. Append the result of collecting a sequence of code points + // that are not U+0022 (") or U+005C (\) from input, given + // position, to value. + value += collectASequenceOfCodePoints( + (char) => char !== '"' && char !== '\\', + input, + position + ) + + // 2. If position is past the end of input, then break. + if (position.position >= input.length) { + break + } + + // 3. Let quoteOrBackslash be the code point at position within + // input. + const quoteOrBackslash = input[position.position] + + // 4. Advance position by 1. + position.position++ + + // 5. If quoteOrBackslash is U+005C (\), then: + if (quoteOrBackslash === '\\') { + // 1. If position is past the end of input, then append + // U+005C (\) to value and break. + if (position.position >= input.length) { + value += '\\' + break + } + + // 2. Append the code point at position within input to value. + value += input[position.position] + + // 3. Advance position by 1. + position.position++ + + // 6. Otherwise: + } else { + // 1. Assert: quoteOrBackslash is U+0022 ("). + assert(quoteOrBackslash === '"') + + // 2. Break. + break + } + } + + // 6. If the extract-value flag is set, then return value. + if (extractValue) { + return value + } + + // 7. Return the code points from positionStart to position, + // inclusive, within input. + return input.slice(positionStart, position.position) +} + +/** + * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type + */ +function serializeAMimeType (mimeType) { + assert(mimeType !== 'failure') + const { parameters, essence } = mimeType + + // 1. Let serialization be the concatenation of mimeType’s + // type, U+002F (/), and mimeType’s subtype. + let serialization = essence + + // 2. For each name → value of mimeType’s parameters: + for (let [name, value] of parameters.entries()) { + // 1. Append U+003B (;) to serialization. + serialization += ';' + + // 2. Append name to serialization. + serialization += name + + // 3. Append U+003D (=) to serialization. + serialization += '=' + + // 4. If value does not solely contain HTTP token code + // points or value is the empty string, then: + if (!HTTP_TOKEN_CODEPOINTS.test(value)) { + // 1. Precede each occurence of U+0022 (") or + // U+005C (\) in value with U+005C (\). + value = value.replace(/(\\|")/g, '\\$1') + + // 2. Prepend U+0022 (") to value. + value = '"' + value + + // 3. Append U+0022 (") to value. + value += '"' + } + + // 5. Append value to serialization. + serialization += value + } + + // 3. Return serialization. + return serialization +} + +/** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {string} char + */ +function isHTTPWhiteSpace (char) { + return char === '\r' || char === '\n' || char === '\t' || char === ' ' +} + +/** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {string} str + */ +function removeHTTPWhitespace (str, leading = true, trailing = true) { + let lead = 0 + let trail = str.length - 1 + + if (leading) { + for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++); + } + + if (trailing) { + for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--); + } + + return str.slice(lead, trail + 1) +} + +/** + * @see https://infra.spec.whatwg.org/#ascii-whitespace + * @param {string} char + */ +function isASCIIWhitespace (char) { + return char === '\r' || char === '\n' || char === '\t' || char === '\f' || char === ' ' +} + +/** + * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace + */ +function removeASCIIWhitespace (str, leading = true, trailing = true) { + let lead = 0 + let trail = str.length - 1 + + if (leading) { + for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++); + } + + if (trailing) { + for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--); + } + + return str.slice(lead, trail + 1) +} + +module.exports = { + dataURLProcessor, + URLSerializer, + collectASequenceOfCodePoints, + collectASequenceOfCodePointsFast, + stringPercentDecode, + parseMIMEType, + collectAnHTTPQuotedString, + serializeAMimeType +} + + +/***/ }), + +/***/ 3791: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Blob, File: NativeFile } = __nccwpck_require__(181) +const { types } = __nccwpck_require__(9023) +const { kState } = __nccwpck_require__(4236) +const { isBlobLike } = __nccwpck_require__(7189) +const { webidl } = __nccwpck_require__(7472) +const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(5892) +const { kEnumerableProperty } = __nccwpck_require__(162) +const encoder = new TextEncoder() + +class File extends Blob { + constructor (fileBits, fileName, options = {}) { + // The File constructor is invoked with two or three parameters, depending + // on whether the optional dictionary parameter is used. When the File() + // constructor is invoked, user agents must run the following steps: + webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' }) + + fileBits = webidl.converters['sequence'](fileBits) + fileName = webidl.converters.USVString(fileName) + options = webidl.converters.FilePropertyBag(options) + + // 1. Let bytes be the result of processing blob parts given fileBits and + // options. + // Note: Blob handles this for us + + // 2. Let n be the fileName argument to the constructor. + const n = fileName + + // 3. Process FilePropertyBag dictionary argument by running the following + // substeps: + + // 1. If the type member is provided and is not the empty string, let t + // be set to the type dictionary member. If t contains any characters + // outside the range U+0020 to U+007E, then set t to the empty string + // and return from these substeps. + // 2. Convert every character in t to ASCII lowercase. + let t = options.type + let d + + + substep: { + if (t) { + t = parseMIMEType(t) + + if (t === 'failure') { + t = '' + + break substep + } + + t = serializeAMimeType(t).toLowerCase() + } + + // 3. If the lastModified member is provided, let d be set to the + // lastModified dictionary member. If it is not provided, set d to the + // current date and time represented as the number of milliseconds since + // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). + d = options.lastModified + } + + // 4. Return a new File object F such that: + // F refers to the bytes byte sequence. + // F.size is set to the number of total bytes in bytes. + // F.name is set to n. + // F.type is set to t. + // F.lastModified is set to d. + + super(processBlobParts(fileBits, options), { type: t }) + this[kState] = { + name: n, + lastModified: d, + type: t + } + } + + get name () { + webidl.brandCheck(this, File) + + return this[kState].name + } + + get lastModified () { + webidl.brandCheck(this, File) + + return this[kState].lastModified + } + + get type () { + webidl.brandCheck(this, File) + + return this[kState].type + } +} + +class FileLike { + constructor (blobLike, fileName, options = {}) { + // TODO: argument idl type check + + // The File constructor is invoked with two or three parameters, depending + // on whether the optional dictionary parameter is used. When the File() + // constructor is invoked, user agents must run the following steps: + + // 1. Let bytes be the result of processing blob parts given fileBits and + // options. + + // 2. Let n be the fileName argument to the constructor. + const n = fileName + + // 3. Process FilePropertyBag dictionary argument by running the following + // substeps: + + // 1. If the type member is provided and is not the empty string, let t + // be set to the type dictionary member. If t contains any characters + // outside the range U+0020 to U+007E, then set t to the empty string + // and return from these substeps. + // TODO + const t = options.type + + // 2. Convert every character in t to ASCII lowercase. + // TODO + + // 3. If the lastModified member is provided, let d be set to the + // lastModified dictionary member. If it is not provided, set d to the + // current date and time represented as the number of milliseconds since + // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). + const d = options.lastModified ?? Date.now() + + // 4. Return a new File object F such that: + // F refers to the bytes byte sequence. + // F.size is set to the number of total bytes in bytes. + // F.name is set to n. + // F.type is set to t. + // F.lastModified is set to d. + + this[kState] = { + blobLike, + name: n, + type: t, + lastModified: d + } + } + + stream (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.stream(...args) + } + + arrayBuffer (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.arrayBuffer(...args) + } + + slice (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.slice(...args) + } + + text (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.text(...args) + } + + get size () { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.size + } + + get type () { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.type + } + + get name () { + webidl.brandCheck(this, FileLike) + + return this[kState].name + } + + get lastModified () { + webidl.brandCheck(this, FileLike) + + return this[kState].lastModified + } + + get [Symbol.toStringTag] () { + return 'File' + } +} + +Object.defineProperties(File.prototype, { + [Symbol.toStringTag]: { + value: 'File', + configurable: true + }, + name: kEnumerableProperty, + lastModified: kEnumerableProperty +}) + +webidl.converters.Blob = webidl.interfaceConverter(Blob) + +webidl.converters.BlobPart = function (V, opts) { + if (webidl.util.Type(V) === 'Object') { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } + + if ( + ArrayBuffer.isView(V) || + types.isAnyArrayBuffer(V) + ) { + return webidl.converters.BufferSource(V, opts) + } + } + + return webidl.converters.USVString(V, opts) +} + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.BlobPart +) + +// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag +webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ + { + key: 'lastModified', + converter: webidl.converters['long long'], + get defaultValue () { + return Date.now() + } + }, + { + key: 'type', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'endings', + converter: (value) => { + value = webidl.converters.DOMString(value) + value = value.toLowerCase() + + if (value !== 'native') { + value = 'transparent' + } + + return value + }, + defaultValue: 'transparent' + } +]) + +/** + * @see https://www.w3.org/TR/FileAPI/#process-blob-parts + * @param {(NodeJS.TypedArray|Blob|string)[]} parts + * @param {{ type: string, endings: string }} options + */ +function processBlobParts (parts, options) { + // 1. Let bytes be an empty sequence of bytes. + /** @type {NodeJS.TypedArray[]} */ + const bytes = [] + + // 2. For each element in parts: + for (const element of parts) { + // 1. If element is a USVString, run the following substeps: + if (typeof element === 'string') { + // 1. Let s be element. + let s = element + + // 2. If the endings member of options is "native", set s + // to the result of converting line endings to native + // of element. + if (options.endings === 'native') { + s = convertLineEndingsNative(s) + } + + // 3. Append the result of UTF-8 encoding s to bytes. + bytes.push(encoder.encode(s)) + } else if ( + types.isAnyArrayBuffer(element) || + types.isTypedArray(element) + ) { + // 2. If element is a BufferSource, get a copy of the + // bytes held by the buffer source, and append those + // bytes to bytes. + if (!element.buffer) { // ArrayBuffer + bytes.push(new Uint8Array(element)) + } else { + bytes.push( + new Uint8Array(element.buffer, element.byteOffset, element.byteLength) + ) + } + } else if (isBlobLike(element)) { + // 3. If element is a Blob, append the bytes it represents + // to bytes. + bytes.push(element) + } + } + + // 3. Return bytes. + return bytes +} + +/** + * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native + * @param {string} s + */ +function convertLineEndingsNative (s) { + // 1. Let native line ending be be the code point U+000A LF. + let nativeLineEnding = '\n' + + // 2. If the underlying platform’s conventions are to + // represent newlines as a carriage return and line feed + // sequence, set native line ending to the code point + // U+000D CR followed by the code point U+000A LF. + if (process.platform === 'win32') { + nativeLineEnding = '\r\n' + } + + return s.replace(/\r?\n/g, nativeLineEnding) +} + +// If this function is moved to ./util.js, some tools (such as +// rollup) will warn about circular dependencies. See: +// https://github.com/nodejs/undici/issues/1629 +function isFileLike (object) { + return ( + (NativeFile && object instanceof NativeFile) || + object instanceof File || ( + object && + (typeof object.stream === 'function' || + typeof object.arrayBuffer === 'function') && + object[Symbol.toStringTag] === 'File' + ) + ) +} + +module.exports = { File, FileLike, isFileLike } + + +/***/ }), + +/***/ 3639: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { isBlobLike, toUSVString, makeIterator } = __nccwpck_require__(7189) +const { kState } = __nccwpck_require__(4236) +const { File: UndiciFile, FileLike, isFileLike } = __nccwpck_require__(3791) +const { webidl } = __nccwpck_require__(7472) +const { Blob, File: NativeFile } = __nccwpck_require__(181) + +/** @type {globalThis['File']} */ +const File = NativeFile ?? UndiciFile + +// https://xhr.spec.whatwg.org/#formdata +class FormData { + constructor (form) { + if (form !== undefined) { + throw webidl.errors.conversionFailed({ + prefix: 'FormData constructor', + argument: 'Argument 1', + types: ['undefined'] + }) + } + + this[kState] = [] + } + + append (name, value, filename = undefined) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' }) + + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } + + // 1. Let value be value if given; otherwise blobValue. + + name = webidl.converters.USVString(name) + value = isBlobLike(value) + ? webidl.converters.Blob(value, { strict: false }) + : webidl.converters.USVString(value) + filename = arguments.length === 3 + ? webidl.converters.USVString(filename) + : undefined + + // 2. Let entry be the result of creating an entry with + // name, value, and filename if given. + const entry = makeEntry(name, value, filename) + + // 3. Append entry to this’s entry list. + this[kState].push(entry) + } + + delete (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' }) + + name = webidl.converters.USVString(name) + + // The delete(name) method steps are to remove all entries whose name + // is name from this’s entry list. + this[kState] = this[kState].filter(entry => entry.name !== name) + } + + get (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' }) + + name = webidl.converters.USVString(name) + + // 1. If there is no entry whose name is name in this’s entry list, + // then return null. + const idx = this[kState].findIndex((entry) => entry.name === name) + if (idx === -1) { + return null + } + + // 2. Return the value of the first entry whose name is name from + // this’s entry list. + return this[kState][idx].value + } + + getAll (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' }) + + name = webidl.converters.USVString(name) + + // 1. If there is no entry whose name is name in this’s entry list, + // then return the empty list. + // 2. Return the values of all entries whose name is name, in order, + // from this’s entry list. + return this[kState] + .filter((entry) => entry.name === name) + .map((entry) => entry.value) + } + + has (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' }) + + name = webidl.converters.USVString(name) + + // The has(name) method steps are to return true if there is an entry + // whose name is name in this’s entry list; otherwise false. + return this[kState].findIndex((entry) => entry.name === name) !== -1 + } + + set (name, value, filename = undefined) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' }) + + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } + + // The set(name, value) and set(name, blobValue, filename) method steps + // are: + + // 1. Let value be value if given; otherwise blobValue. + + name = webidl.converters.USVString(name) + value = isBlobLike(value) + ? webidl.converters.Blob(value, { strict: false }) + : webidl.converters.USVString(value) + filename = arguments.length === 3 + ? toUSVString(filename) + : undefined + + // 2. Let entry be the result of creating an entry with name, value, and + // filename if given. + const entry = makeEntry(name, value, filename) + + // 3. If there are entries in this’s entry list whose name is name, then + // replace the first such entry with entry and remove the others. + const idx = this[kState].findIndex((entry) => entry.name === name) + if (idx !== -1) { + this[kState] = [ + ...this[kState].slice(0, idx), + entry, + ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name) + ] + } else { + // 4. Otherwise, append entry to this’s entry list. + this[kState].push(entry) + } + } + + entries () { + webidl.brandCheck(this, FormData) + + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'key+value' + ) + } + + keys () { + webidl.brandCheck(this, FormData) + + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'key' + ) + } + + values () { + webidl.brandCheck(this, FormData) + + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'value' + ) + } + + /** + * @param {(value: string, key: string, self: FormData) => void} callbackFn + * @param {unknown} thisArg + */ + forEach (callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' }) + + if (typeof callbackFn !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." + ) + } + + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]) + } + } +} + +FormData.prototype[Symbol.iterator] = FormData.prototype.entries + +Object.defineProperties(FormData.prototype, { + [Symbol.toStringTag]: { + value: 'FormData', + configurable: true + } +}) + +/** + * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry + * @param {string} name + * @param {string|Blob} value + * @param {?string} filename + * @returns + */ +function makeEntry (name, value, filename) { + // 1. Set name to the result of converting name into a scalar value string. + // "To convert a string into a scalar value string, replace any surrogates + // with U+FFFD." + // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end + name = Buffer.from(name).toString('utf8') + + // 2. If value is a string, then set value to the result of converting + // value into a scalar value string. + if (typeof value === 'string') { + value = Buffer.from(value).toString('utf8') + } else { + // 3. Otherwise: + + // 1. If value is not a File object, then set value to a new File object, + // representing the same bytes, whose name attribute value is "blob" + if (!isFileLike(value)) { + value = value instanceof Blob + ? new File([value], 'blob', { type: value.type }) + : new FileLike(value, 'blob', { type: value.type }) + } + + // 2. If filename is given, then set value to a new File object, + // representing the same bytes, whose name attribute is filename. + if (filename !== undefined) { + /** @type {FilePropertyBag} */ + const options = { + type: value.type, + lastModified: value.lastModified + } + + value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile + ? new File([value], filename, options) + : new FileLike(value, filename, options) + } + } + + // 4. Return an entry whose name is name and whose value is value. + return { name, value } +} + +module.exports = { FormData } + + +/***/ }), + +/***/ 2498: +/***/ ((module) => { + + + +// In case of breaking changes, increase the version +// number to avoid conflicts. +const globalOrigin = Symbol.for('undici.globalOrigin.1') + +function getGlobalOrigin () { + return globalThis[globalOrigin] +} + +function setGlobalOrigin (newOrigin) { + if (newOrigin === undefined) { + Object.defineProperty(globalThis, globalOrigin, { + value: undefined, + writable: true, + enumerable: false, + configurable: false + }) + + return + } + + const parsedURL = new URL(newOrigin) + + if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') { + throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`) + } + + Object.defineProperty(globalThis, globalOrigin, { + value: parsedURL, + writable: true, + enumerable: false, + configurable: false + }) +} + +module.exports = { + getGlobalOrigin, + setGlobalOrigin +} + + +/***/ }), + +/***/ 6203: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// https://github.com/Ethan-Arrowood/undici-fetch + + + +const { kHeadersList, kConstruct } = __nccwpck_require__(249) +const { kGuard } = __nccwpck_require__(4236) +const { kEnumerableProperty } = __nccwpck_require__(162) +const { + makeIterator, + isValidHeaderName, + isValidHeaderValue +} = __nccwpck_require__(7189) +const { webidl } = __nccwpck_require__(7472) +const assert = __nccwpck_require__(2613) + +const kHeadersMap = Symbol('headers map') +const kHeadersSortedMap = Symbol('headers map sorted') + +/** + * @param {number} code + */ +function isHTTPWhiteSpaceCharCode (code) { + return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020 +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize + * @param {string} potentialValue + */ +function headerValueNormalize (potentialValue) { + // To normalize a byte sequence potentialValue, remove + // any leading and trailing HTTP whitespace bytes from + // potentialValue. + let i = 0; let j = potentialValue.length + + while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j + while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i + + return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j) +} + +function fill (headers, object) { + // To fill a Headers object headers with a given object object, run these steps: + + // 1. If object is a sequence, then for each header in object: + // Note: webidl conversion to array has already been done. + if (Array.isArray(object)) { + for (let i = 0; i < object.length; ++i) { + const header = object[i] + // 1. If header does not contain exactly two items, then throw a TypeError. + if (header.length !== 2) { + throw webidl.errors.exception({ + header: 'Headers constructor', + message: `expected name/value pair to be length 2, found ${header.length}.` + }) + } + + // 2. Append (header’s first item, header’s second item) to headers. + appendHeader(headers, header[0], header[1]) + } + } else if (typeof object === 'object' && object !== null) { + // Note: null should throw + + // 2. Otherwise, object is a record, then for each key → value in object, + // append (key, value) to headers + const keys = Object.keys(object) + for (let i = 0; i < keys.length; ++i) { + appendHeader(headers, keys[i], object[keys[i]]) + } + } else { + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'] + }) + } +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-headers-append + */ +function appendHeader (headers, name, value) { + // 1. Normalize value. + value = headerValueNormalize(value) + + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value, + type: 'header value' + }) + } + + // 3. If headers’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if headers’s guard is "request" and name is a + // forbidden header name, return. + // Note: undici does not implement forbidden header names + if (headers[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (headers[kGuard] === 'request-no-cors') { + // 5. Otherwise, if headers’s guard is "request-no-cors": + // TODO + } + + // 6. Otherwise, if headers’s guard is "response" and name is a + // forbidden response-header name, return. + + // 7. Append (name, value) to headers’s header list. + return headers[kHeadersList].append(name, value) + + // 8. If headers’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from headers +} + +class HeadersList { + /** @type {[string, string][]|null} */ + cookies = null + + constructor (init) { + if (init instanceof HeadersList) { + this[kHeadersMap] = new Map(init[kHeadersMap]) + this[kHeadersSortedMap] = init[kHeadersSortedMap] + this.cookies = init.cookies === null ? null : [...init.cookies] + } else { + this[kHeadersMap] = new Map(init) + this[kHeadersSortedMap] = null + } + } + + // https://fetch.spec.whatwg.org/#header-list-contains + contains (name) { + // A header list list contains a header name name if list + // contains a header whose name is a byte-case-insensitive + // match for name. + name = name.toLowerCase() + + return this[kHeadersMap].has(name) + } + + clear () { + this[kHeadersMap].clear() + this[kHeadersSortedMap] = null + this.cookies = null + } + + // https://fetch.spec.whatwg.org/#concept-header-list-append + append (name, value) { + this[kHeadersSortedMap] = null + + // 1. If list contains name, then set name to the first such + // header’s name. + const lowercaseName = name.toLowerCase() + const exists = this[kHeadersMap].get(lowercaseName) + + // 2. Append (name, value) to list. + if (exists) { + const delimiter = lowercaseName === 'cookie' ? '; ' : ', ' + this[kHeadersMap].set(lowercaseName, { + name: exists.name, + value: `${exists.value}${delimiter}${value}` + }) + } else { + this[kHeadersMap].set(lowercaseName, { name, value }) + } + + if (lowercaseName === 'set-cookie') { + this.cookies ??= [] + this.cookies.push(value) + } + } + + // https://fetch.spec.whatwg.org/#concept-header-list-set + set (name, value) { + this[kHeadersSortedMap] = null + const lowercaseName = name.toLowerCase() + + if (lowercaseName === 'set-cookie') { + this.cookies = [value] + } + + // 1. If list contains name, then set the value of + // the first such header to value and remove the + // others. + // 2. Otherwise, append header (name, value) to list. + this[kHeadersMap].set(lowercaseName, { name, value }) + } + + // https://fetch.spec.whatwg.org/#concept-header-list-delete + delete (name) { + this[kHeadersSortedMap] = null + + name = name.toLowerCase() + + if (name === 'set-cookie') { + this.cookies = null + } + + this[kHeadersMap].delete(name) + } + + // https://fetch.spec.whatwg.org/#concept-header-list-get + get (name) { + const value = this[kHeadersMap].get(name.toLowerCase()) + + // 1. If list does not contain name, then return null. + // 2. Return the values of all headers in list whose name + // is a byte-case-insensitive match for name, + // separated from each other by 0x2C 0x20, in order. + return value === undefined ? null : value.value + } + + * [Symbol.iterator] () { + // use the lowercased name + for (const [name, { value }] of this[kHeadersMap]) { + yield [name, value] + } + } + + get entries () { + const headers = {} + + if (this[kHeadersMap].size) { + for (const { name, value } of this[kHeadersMap].values()) { + headers[name] = value + } + } + + return headers + } +} + +// https://fetch.spec.whatwg.org/#headers-class +class Headers { + constructor (init = undefined) { + if (init === kConstruct) { + return + } + this[kHeadersList] = new HeadersList() + + // The new Headers(init) constructor steps are: + + // 1. Set this’s guard to "none". + this[kGuard] = 'none' + + // 2. If init is given, then fill this with init. + if (init !== undefined) { + init = webidl.converters.HeadersInit(init) + fill(this, init) + } + } + + // https://fetch.spec.whatwg.org/#dom-headers-append + append (name, value) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' }) + + name = webidl.converters.ByteString(name) + value = webidl.converters.ByteString(value) + + return appendHeader(this, name, value) + } + + // https://fetch.spec.whatwg.org/#dom-headers-delete + delete (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' }) + + name = webidl.converters.ByteString(name) + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.delete', + value: name, + type: 'header name' + }) + } + + // 2. If this’s guard is "immutable", then throw a TypeError. + // 3. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 4. Otherwise, if this’s guard is "request-no-cors", name + // is not a no-CORS-safelisted request-header name, and + // name is not a privileged no-CORS request-header name, + // return. + // 5. Otherwise, if this’s guard is "response" and name is + // a forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (this[kGuard] === 'request-no-cors') { + // TODO + } + + // 6. If this’s header list does not contain name, then + // return. + if (!this[kHeadersList].contains(name)) { + return + } + + // 7. Delete name from this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this. + this[kHeadersList].delete(name) + } + + // https://fetch.spec.whatwg.org/#dom-headers-get + get (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' }) + + name = webidl.converters.ByteString(name) + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.get', + value: name, + type: 'header name' + }) + } + + // 2. Return the result of getting name from this’s header + // list. + return this[kHeadersList].get(name) + } + + // https://fetch.spec.whatwg.org/#dom-headers-has + has (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' }) + + name = webidl.converters.ByteString(name) + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.has', + value: name, + type: 'header name' + }) + } + + // 2. Return true if this’s header list contains name; + // otherwise false. + return this[kHeadersList].contains(name) + } + + // https://fetch.spec.whatwg.org/#dom-headers-set + set (name, value) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' }) + + name = webidl.converters.ByteString(name) + value = webidl.converters.ByteString(value) + + // 1. Normalize value. + value = headerValueNormalize(value) + + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.set', + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.set', + value, + type: 'header value' + }) + } + + // 3. If this’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 5. Otherwise, if this’s guard is "request-no-cors" and + // name/value is not a no-CORS-safelisted request-header, + // return. + // 6. Otherwise, if this’s guard is "response" and name is a + // forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (this[kGuard] === 'request-no-cors') { + // TODO + } + + // 7. Set (name, value) in this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this + this[kHeadersList].set(name, value) + } + + // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie + getSetCookie () { + webidl.brandCheck(this, Headers) + + // 1. If this’s header list does not contain `Set-Cookie`, then return « ». + // 2. Return the values of all headers in this’s header list whose name is + // a byte-case-insensitive match for `Set-Cookie`, in order. + + const list = this[kHeadersList].cookies + + if (list) { + return [...list] + } + + return [] + } + + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + get [kHeadersSortedMap] () { + if (this[kHeadersList][kHeadersSortedMap]) { + return this[kHeadersList][kHeadersSortedMap] + } + + // 1. Let headers be an empty list of headers with the key being the name + // and value the value. + const headers = [] + + // 2. Let names be the result of convert header names to a sorted-lowercase + // set with all the names of the headers in list. + const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1) + const cookies = this[kHeadersList].cookies + + // 3. For each name of names: + for (let i = 0; i < names.length; ++i) { + const [name, value] = names[i] + // 1. If name is `set-cookie`, then: + if (name === 'set-cookie') { + // 1. Let values be a list of all values of headers in list whose name + // is a byte-case-insensitive match for name, in order. + + // 2. For each value of values: + // 1. Append (name, value) to headers. + for (let j = 0; j < cookies.length; ++j) { + headers.push([name, cookies[j]]) + } + } else { + // 2. Otherwise: + + // 1. Let value be the result of getting name from list. + + // 2. Assert: value is non-null. + assert(value !== null) + + // 3. Append (name, value) to headers. + headers.push([name, value]) + } + } + + this[kHeadersList][kHeadersSortedMap] = headers + + // 4. Return headers. + return headers + } + + keys () { + webidl.brandCheck(this, Headers) + + if (this[kGuard] === 'immutable') { + const value = this[kHeadersSortedMap] + return makeIterator(() => value, 'Headers', + 'key') + } + + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'key' + ) + } + + values () { + webidl.brandCheck(this, Headers) + + if (this[kGuard] === 'immutable') { + const value = this[kHeadersSortedMap] + return makeIterator(() => value, 'Headers', + 'value') + } + + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'value' + ) + } + + entries () { + webidl.brandCheck(this, Headers) + + if (this[kGuard] === 'immutable') { + const value = this[kHeadersSortedMap] + return makeIterator(() => value, 'Headers', + 'key+value') + } + + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'key+value' + ) + } + + /** + * @param {(value: string, key: string, self: Headers) => void} callbackFn + * @param {unknown} thisArg + */ + forEach (callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' }) + + if (typeof callbackFn !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'." + ) + } + + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]) + } + } + + [Symbol.for('nodejs.util.inspect.custom')] () { + webidl.brandCheck(this, Headers) + + return this[kHeadersList] + } +} + +Headers.prototype[Symbol.iterator] = Headers.prototype.entries + +Object.defineProperties(Headers.prototype, { + append: kEnumerableProperty, + delete: kEnumerableProperty, + get: kEnumerableProperty, + has: kEnumerableProperty, + set: kEnumerableProperty, + getSetCookie: kEnumerableProperty, + keys: kEnumerableProperty, + values: kEnumerableProperty, + entries: kEnumerableProperty, + forEach: kEnumerableProperty, + [Symbol.iterator]: { enumerable: false }, + [Symbol.toStringTag]: { + value: 'Headers', + configurable: true + } +}) + +webidl.converters.HeadersInit = function (V) { + if (webidl.util.Type(V) === 'Object') { + if (V[Symbol.iterator]) { + return webidl.converters['sequence>'](V) + } + + return webidl.converters['record'](V) + } + + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'] + }) +} + +module.exports = { + fill, + Headers, + HeadersList +} + + +/***/ }), + +/***/ 3397: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// https://github.com/Ethan-Arrowood/undici-fetch + + + +const { + Response, + makeNetworkError, + makeAppropriateNetworkError, + filterResponse, + makeResponse +} = __nccwpck_require__(3258) +const { Headers } = __nccwpck_require__(6203) +const { Request, makeRequest } = __nccwpck_require__(4960) +const zlib = __nccwpck_require__(3106) +const { + bytesMatch, + makePolicyContainer, + clonePolicyContainer, + requestBadPort, + TAOCheck, + appendRequestOriginHeader, + responseLocationURL, + requestCurrentURL, + setRequestReferrerPolicyOnRedirect, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + createOpaqueTimingInfo, + appendFetchMetadata, + corsCheck, + crossOriginResourcePolicyCheck, + determineRequestsReferrer, + coarsenedSharedCurrentTime, + createDeferredPromise, + isBlobLike, + sameOrigin, + isCancelled, + isAborted, + isErrorLike, + fullyReadBody, + readableStreamClose, + isomorphicEncode, + urlIsLocal, + urlIsHttpHttpsScheme, + urlHasHttpsScheme +} = __nccwpck_require__(7189) +const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(4236) +const assert = __nccwpck_require__(2613) +const { safelyExtractBody } = __nccwpck_require__(3893) +const { + redirectStatusSet, + nullBodyStatus, + safeMethodsSet, + requestBodyHeader, + subresourceSet, + DOMException +} = __nccwpck_require__(1356) +const { kHeadersList } = __nccwpck_require__(249) +const EE = __nccwpck_require__(4434) +const { Readable, pipeline } = __nccwpck_require__(2203) +const { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = __nccwpck_require__(162) +const { dataURLProcessor, serializeAMimeType } = __nccwpck_require__(5892) +const { TransformStream } = __nccwpck_require__(3774) +const { getGlobalDispatcher } = __nccwpck_require__(8127) +const { webidl } = __nccwpck_require__(7472) +const { STATUS_CODES } = __nccwpck_require__(8611) +const GET_OR_HEAD = ['GET', 'HEAD'] + +/** @type {import('buffer').resolveObjectURL} */ +let resolveObjectURL +let ReadableStream = globalThis.ReadableStream + +class Fetch extends EE { + constructor (dispatcher) { + super() + + this.dispatcher = dispatcher + this.connection = null + this.dump = false + this.state = 'ongoing' + // 2 terminated listeners get added per request, + // but only 1 gets removed. If there are 20 redirects, + // 21 listeners will be added. + // See https://github.com/nodejs/undici/issues/1711 + // TODO (fix): Find and fix root cause for leaked listener. + this.setMaxListeners(21) + } + + terminate (reason) { + if (this.state !== 'ongoing') { + return + } + + this.state = 'terminated' + this.connection?.destroy(reason) + this.emit('terminated', reason) + } + + // https://fetch.spec.whatwg.org/#fetch-controller-abort + abort (error) { + if (this.state !== 'ongoing') { + return + } + + // 1. Set controller’s state to "aborted". + this.state = 'aborted' + + // 2. Let fallbackError be an "AbortError" DOMException. + // 3. Set error to fallbackError if it is not given. + if (!error) { + error = new DOMException('The operation was aborted.', 'AbortError') + } + + // 4. Let serializedError be StructuredSerialize(error). + // If that threw an exception, catch it, and let + // serializedError be StructuredSerialize(fallbackError). + + // 5. Set controller’s serialized abort reason to serializedError. + this.serializedAbortReason = error + + this.connection?.destroy(error) + this.emit('terminated', error) + } +} + +// https://fetch.spec.whatwg.org/#fetch-method +function fetch (input, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' }) + + // 1. Let p be a new promise. + const p = createDeferredPromise() + + // 2. Let requestObject be the result of invoking the initial value of + // Request as constructor with input and init as arguments. If this throws + // an exception, reject p with it and return p. + let requestObject + + try { + requestObject = new Request(input, init) + } catch (e) { + p.reject(e) + return p.promise + } + + // 3. Let request be requestObject’s request. + const request = requestObject[kState] + + // 4. If requestObject’s signal’s aborted flag is set, then: + if (requestObject.signal.aborted) { + // 1. Abort the fetch() call with p, request, null, and + // requestObject’s signal’s abort reason. + abortFetch(p, request, null, requestObject.signal.reason) + + // 2. Return p. + return p.promise + } + + // 5. Let globalObject be request’s client’s global object. + const globalObject = request.client.globalObject + + // 6. If globalObject is a ServiceWorkerGlobalScope object, then set + // request’s service-workers mode to "none". + if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') { + request.serviceWorkers = 'none' + } + + // 7. Let responseObject be null. + let responseObject = null + + // 8. Let relevantRealm be this’s relevant Realm. + const relevantRealm = null + + // 9. Let locallyAborted be false. + let locallyAborted = false + + // 10. Let controller be null. + let controller = null + + // 11. Add the following abort steps to requestObject’s signal: + addAbortListener( + requestObject.signal, + () => { + // 1. Set locallyAborted to true. + locallyAborted = true + + // 2. Assert: controller is non-null. + assert(controller != null) + + // 3. Abort controller with requestObject’s signal’s abort reason. + controller.abort(requestObject.signal.reason) + + // 4. Abort the fetch() call with p, request, responseObject, + // and requestObject’s signal’s abort reason. + abortFetch(p, request, responseObject, requestObject.signal.reason) + } + ) + + // 12. Let handleFetchDone given response response be to finalize and + // report timing with response, globalObject, and "fetch". + const handleFetchDone = (response) => + finalizeAndReportTiming(response, 'fetch') + + // 13. Set controller to the result of calling fetch given request, + // with processResponseEndOfBody set to handleFetchDone, and processResponse + // given response being these substeps: + + const processResponse = (response) => { + // 1. If locallyAborted is true, terminate these substeps. + if (locallyAborted) { + return Promise.resolve() + } + + // 2. If response’s aborted flag is set, then: + if (response.aborted) { + // 1. Let deserializedError be the result of deserialize a serialized + // abort reason given controller’s serialized abort reason and + // relevantRealm. + + // 2. Abort the fetch() call with p, request, responseObject, and + // deserializedError. + + abortFetch(p, request, responseObject, controller.serializedAbortReason) + return Promise.resolve() + } + + // 3. If response is a network error, then reject p with a TypeError + // and terminate these substeps. + if (response.type === 'error') { + p.reject( + Object.assign(new TypeError('fetch failed'), { cause: response.error }) + ) + return Promise.resolve() + } + + // 4. Set responseObject to the result of creating a Response object, + // given response, "immutable", and relevantRealm. + responseObject = new Response() + responseObject[kState] = response + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kHeadersList] = response.headersList + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm + + // 5. Resolve p with responseObject. + p.resolve(responseObject) + } + + controller = fetching({ + request, + processResponseEndOfBody: handleFetchDone, + processResponse, + dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici + }) + + // 14. Return p. + return p.promise +} + +// https://fetch.spec.whatwg.org/#finalize-and-report-timing +function finalizeAndReportTiming (response, initiatorType = 'other') { + // 1. If response is an aborted network error, then return. + if (response.type === 'error' && response.aborted) { + return + } + + // 2. If response’s URL list is null or empty, then return. + if (!response.urlList?.length) { + return + } + + // 3. Let originalURL be response’s URL list[0]. + const originalURL = response.urlList[0] + + // 4. Let timingInfo be response’s timing info. + let timingInfo = response.timingInfo + + // 5. Let cacheState be response’s cache state. + let cacheState = response.cacheState + + // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return. + if (!urlIsHttpHttpsScheme(originalURL)) { + return + } + + // 7. If timingInfo is null, then return. + if (timingInfo === null) { + return + } + + // 8. If response’s timing allow passed flag is not set, then: + if (!response.timingAllowPassed) { + // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo. + timingInfo = createOpaqueTimingInfo({ + startTime: timingInfo.startTime + }) + + // 2. Set cacheState to the empty string. + cacheState = '' + } + + // 9. Set timingInfo’s end time to the coarsened shared current time + // given global’s relevant settings object’s cross-origin isolated + // capability. + // TODO: given global’s relevant settings object’s cross-origin isolated + // capability? + timingInfo.endTime = coarsenedSharedCurrentTime() + + // 10. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo + + // 11. Mark resource timing for timingInfo, originalURL, initiatorType, + // global, and cacheState. + markResourceTiming( + timingInfo, + originalURL, + initiatorType, + globalThis, + cacheState + ) +} + +// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing +function markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) { + if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) { + performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState) + } +} + +// https://fetch.spec.whatwg.org/#abort-fetch +function abortFetch (p, request, responseObject, error) { + // Note: AbortSignal.reason was added in node v17.2.0 + // which would give us an undefined error to reject with. + // Remove this once node v16 is no longer supported. + if (!error) { + error = new DOMException('The operation was aborted.', 'AbortError') + } + + // 1. Reject promise with error. + p.reject(error) + + // 2. If request’s body is not null and is readable, then cancel request’s + // body with error. + if (request.body != null && isReadable(request.body?.stream)) { + request.body.stream.cancel(error).catch((err) => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } + + // 3. If responseObject is null, then return. + if (responseObject == null) { + return + } + + // 4. Let response be responseObject’s response. + const response = responseObject[kState] + + // 5. If response’s body is not null and is readable, then error response’s + // body with error. + if (response.body != null && isReadable(response.body?.stream)) { + response.body.stream.cancel(error).catch((err) => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } +} + +// https://fetch.spec.whatwg.org/#fetching +function fetching ({ + request, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseEndOfBody, + processResponseConsumeBody, + useParallelQueue = false, + dispatcher // undici +}) { + // 1. Let taskDestination be null. + let taskDestination = null + + // 2. Let crossOriginIsolatedCapability be false. + let crossOriginIsolatedCapability = false + + // 3. If request’s client is non-null, then: + if (request.client != null) { + // 1. Set taskDestination to request’s client’s global object. + taskDestination = request.client.globalObject + + // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin + // isolated capability. + crossOriginIsolatedCapability = + request.client.crossOriginIsolatedCapability + } + + // 4. If useParallelQueue is true, then set taskDestination to the result of + // starting a new parallel queue. + // TODO + + // 5. Let timingInfo be a new fetch timing info whose start time and + // post-redirect start time are the coarsened shared current time given + // crossOriginIsolatedCapability. + const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability) + const timingInfo = createOpaqueTimingInfo({ + startTime: currenTime + }) + + // 6. Let fetchParams be a new fetch params whose + // request is request, + // timing info is timingInfo, + // process request body chunk length is processRequestBodyChunkLength, + // process request end-of-body is processRequestEndOfBody, + // process response is processResponse, + // process response consume body is processResponseConsumeBody, + // process response end-of-body is processResponseEndOfBody, + // task destination is taskDestination, + // and cross-origin isolated capability is crossOriginIsolatedCapability. + const fetchParams = { + controller: new Fetch(dispatcher), + request, + timingInfo, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseConsumeBody, + processResponseEndOfBody, + taskDestination, + crossOriginIsolatedCapability + } + + // 7. If request’s body is a byte sequence, then set request’s body to + // request’s body as a body. + // NOTE: Since fetching is only called from fetch, body should already be + // extracted. + assert(!request.body || request.body.stream) + + // 8. If request’s window is "client", then set request’s window to request’s + // client, if request’s client’s global object is a Window object; otherwise + // "no-window". + if (request.window === 'client') { + // TODO: What if request.client is null? + request.window = + request.client?.globalObject?.constructor?.name === 'Window' + ? request.client + : 'no-window' + } + + // 9. If request’s origin is "client", then set request’s origin to request’s + // client’s origin. + if (request.origin === 'client') { + // TODO: What if request.client is null? + request.origin = request.client?.origin + } + + // 10. If all of the following conditions are true: + // TODO + + // 11. If request’s policy container is "client", then: + if (request.policyContainer === 'client') { + // 1. If request’s client is non-null, then set request’s policy + // container to a clone of request’s client’s policy container. [HTML] + if (request.client != null) { + request.policyContainer = clonePolicyContainer( + request.client.policyContainer + ) + } else { + // 2. Otherwise, set request’s policy container to a new policy + // container. + request.policyContainer = makePolicyContainer() + } + } + + // 12. If request’s header list does not contain `Accept`, then: + if (!request.headersList.contains('accept')) { + // 1. Let value be `*/*`. + const value = '*/*' + + // 2. A user agent should set value to the first matching statement, if + // any, switching on request’s destination: + // "document" + // "frame" + // "iframe" + // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8` + // "image" + // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5` + // "style" + // `text/css,*/*;q=0.1` + // TODO + + // 3. Append `Accept`/value to request’s header list. + request.headersList.append('accept', value) + } + + // 13. If request’s header list does not contain `Accept-Language`, then + // user agents should append `Accept-Language`/an appropriate value to + // request’s header list. + if (!request.headersList.contains('accept-language')) { + request.headersList.append('accept-language', '*') + } + + // 14. If request’s priority is null, then use request’s initiator and + // destination appropriately in setting request’s priority to a + // user-agent-defined object. + if (request.priority === null) { + // TODO + } + + // 15. If request is a subresource request, then: + if (subresourceSet.has(request.destination)) { + // TODO + } + + // 16. Run main fetch given fetchParams. + mainFetch(fetchParams) + .catch(err => { + fetchParams.controller.terminate(err) + }) + + // 17. Return fetchParam's controller + return fetchParams.controller +} + +// https://fetch.spec.whatwg.org/#concept-main-fetch +async function mainFetch (fetchParams, recursive = false) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. If request’s local-URLs-only flag is set and request’s current URL is + // not local, then set response to a network error. + if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { + response = makeNetworkError('local URLs only') + } + + // 4. Run report Content Security Policy violations for request. + // TODO + + // 5. Upgrade request to a potentially trustworthy URL, if appropriate. + tryUpgradeRequestToAPotentiallyTrustworthyURL(request) + + // 6. If should request be blocked due to a bad port, should fetching request + // be blocked as mixed content, or should request be blocked by Content + // Security Policy returns blocked, then set response to a network error. + if (requestBadPort(request) === 'blocked') { + response = makeNetworkError('bad port') + } + // TODO: should fetching request be blocked as mixed content? + // TODO: should request be blocked by Content Security Policy? + + // 7. If request’s referrer policy is the empty string, then set request’s + // referrer policy to request’s policy container’s referrer policy. + if (request.referrerPolicy === '') { + request.referrerPolicy = request.policyContainer.referrerPolicy + } + + // 8. If request’s referrer is not "no-referrer", then set request’s + // referrer to the result of invoking determine request’s referrer. + if (request.referrer !== 'no-referrer') { + request.referrer = determineRequestsReferrer(request) + } + + // 9. Set request’s current URL’s scheme to "https" if all of the following + // conditions are true: + // - request’s current URL’s scheme is "http" + // - request’s current URL’s host is a domain + // - Matching request’s current URL’s host per Known HSTS Host Domain Name + // Matching results in either a superdomain match with an asserted + // includeSubDomains directive or a congruent match (with or without an + // asserted includeSubDomains directive). [HSTS] + // TODO + + // 10. If recursive is false, then run the remaining steps in parallel. + // TODO + + // 11. If response is null, then set response to the result of running + // the steps corresponding to the first matching statement: + if (response === null) { + response = await (async () => { + const currentURL = requestCurrentURL(request) + + if ( + // - request’s current URL’s origin is same origin with request’s origin, + // and request’s response tainting is "basic" + (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') || + // request’s current URL’s scheme is "data" + (currentURL.protocol === 'data:') || + // - request’s mode is "navigate" or "websocket" + (request.mode === 'navigate' || request.mode === 'websocket') + ) { + // 1. Set request’s response tainting to "basic". + request.responseTainting = 'basic' + + // 2. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } + + // request’s mode is "same-origin" + if (request.mode === 'same-origin') { + // 1. Return a network error. + return makeNetworkError('request mode cannot be "same-origin"') + } + + // request’s mode is "no-cors" + if (request.mode === 'no-cors') { + // 1. If request’s redirect mode is not "follow", then return a network + // error. + if (request.redirect !== 'follow') { + return makeNetworkError( + 'redirect mode cannot be "follow" for "no-cors" request' + ) + } + + // 2. Set request’s response tainting to "opaque". + request.responseTainting = 'opaque' + + // 3. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } + + // request’s current URL’s scheme is not an HTTP(S) scheme + if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { + // Return a network error. + return makeNetworkError('URL scheme must be a HTTP(S) scheme') + } + + // - request’s use-CORS-preflight flag is set + // - request’s unsafe-request flag is set and either request’s method is + // not a CORS-safelisted method or CORS-unsafe request-header names with + // request’s header list is not empty + // 1. Set request’s response tainting to "cors". + // 2. Let corsWithPreflightResponse be the result of running HTTP fetch + // given fetchParams and true. + // 3. If corsWithPreflightResponse is a network error, then clear cache + // entries using request. + // 4. Return corsWithPreflightResponse. + // TODO + + // Otherwise + // 1. Set request’s response tainting to "cors". + request.responseTainting = 'cors' + + // 2. Return the result of running HTTP fetch given fetchParams. + return await httpFetch(fetchParams) + })() + } + + // 12. If recursive is true, then return response. + if (recursive) { + return response + } + + // 13. If response is not a network error and response is not a filtered + // response, then: + if (response.status !== 0 && !response.internalResponse) { + // If request’s response tainting is "cors", then: + if (request.responseTainting === 'cors') { + // 1. Let headerNames be the result of extracting header list values + // given `Access-Control-Expose-Headers` and response’s header list. + // TODO + // 2. If request’s credentials mode is not "include" and headerNames + // contains `*`, then set response’s CORS-exposed header-name list to + // all unique header names in response’s header list. + // TODO + // 3. Otherwise, if headerNames is not null or failure, then set + // response’s CORS-exposed header-name list to headerNames. + // TODO + } + + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (request.responseTainting === 'basic') { + response = filterResponse(response, 'basic') + } else if (request.responseTainting === 'cors') { + response = filterResponse(response, 'cors') + } else if (request.responseTainting === 'opaque') { + response = filterResponse(response, 'opaque') + } else { + assert(false) + } + } + + // 14. Let internalResponse be response, if response is a network error, + // and response’s internal response otherwise. + let internalResponse = + response.status === 0 ? response : response.internalResponse + + // 15. If internalResponse’s URL list is empty, then set it to a clone of + // request’s URL list. + if (internalResponse.urlList.length === 0) { + internalResponse.urlList.push(...request.urlList) + } + + // 16. If request’s timing allow failed flag is unset, then set + // internalResponse’s timing allow passed flag. + if (!request.timingAllowFailed) { + response.timingAllowPassed = true + } + + // 17. If response is not a network error and any of the following returns + // blocked + // - should internalResponse to request be blocked as mixed content + // - should internalResponse to request be blocked by Content Security Policy + // - should internalResponse to request be blocked due to its MIME type + // - should internalResponse to request be blocked due to nosniff + // TODO + + // 18. If response’s type is "opaque", internalResponse’s status is 206, + // internalResponse’s range-requested flag is set, and request’s header + // list does not contain `Range`, then set response and internalResponse + // to a network error. + if ( + response.type === 'opaque' && + internalResponse.status === 206 && + internalResponse.rangeRequested && + !request.headers.contains('range') + ) { + response = internalResponse = makeNetworkError() + } + + // 19. If response is not a network error and either request’s method is + // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status, + // set internalResponse’s body to null and disregard any enqueuing toward + // it (if any). + if ( + response.status !== 0 && + (request.method === 'HEAD' || + request.method === 'CONNECT' || + nullBodyStatus.includes(internalResponse.status)) + ) { + internalResponse.body = null + fetchParams.controller.dump = true + } + + // 20. If request’s integrity metadata is not the empty string, then: + if (request.integrity) { + // 1. Let processBodyError be this step: run fetch finale given fetchParams + // and a network error. + const processBodyError = (reason) => + fetchFinale(fetchParams, makeNetworkError(reason)) + + // 2. If request’s response tainting is "opaque", or response’s body is null, + // then run processBodyError and abort these steps. + if (request.responseTainting === 'opaque' || response.body == null) { + processBodyError(response.error) + return + } + + // 3. Let processBody given bytes be these steps: + const processBody = (bytes) => { + // 1. If bytes do not match request’s integrity metadata, + // then run processBodyError and abort these steps. [SRI] + if (!bytesMatch(bytes, request.integrity)) { + processBodyError('integrity mismatch') + return + } + + // 2. Set response’s body to bytes as a body. + response.body = safelyExtractBody(bytes)[0] + + // 3. Run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } + + // 4. Fully read response’s body given processBody and processBodyError. + await fullyReadBody(response.body, processBody, processBodyError) + } else { + // 21. Otherwise, run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } +} + +// https://fetch.spec.whatwg.org/#concept-scheme-fetch +// given a fetch params fetchParams +function schemeFetch (fetchParams) { + // Note: since the connection is destroyed on redirect, which sets fetchParams to a + // cancelled state, we do not want this condition to trigger *unless* there have been + // no redirects. See https://github.com/nodejs/undici/issues/1776 + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { + return Promise.resolve(makeAppropriateNetworkError(fetchParams)) + } + + // 2. Let request be fetchParams’s request. + const { request } = fetchParams + + const { protocol: scheme } = requestCurrentURL(request) + + // 3. Switch on request’s current URL’s scheme and run the associated steps: + switch (scheme) { + case 'about:': { + // If request’s current URL’s path is the string "blank", then return a new response + // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) », + // and body is the empty byte sequence as a body. + + // Otherwise, return a network error. + return Promise.resolve(makeNetworkError('about scheme is not supported')) + } + case 'blob:': { + if (!resolveObjectURL) { + resolveObjectURL = (__nccwpck_require__(181).resolveObjectURL) + } + + // 1. Let blobURLEntry be request’s current URL’s blob URL entry. + const blobURLEntry = requestCurrentURL(request) + + // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56 + // Buffer.resolveObjectURL does not ignore URL queries. + if (blobURLEntry.search.length !== 0) { + return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.')) + } + + const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()) + + // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s + // object is not a Blob object, then return a network error. + if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) { + return Promise.resolve(makeNetworkError('invalid method')) + } + + // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object. + const bodyWithType = safelyExtractBody(blobURLEntryObject) + + // 4. Let body be bodyWithType’s body. + const body = bodyWithType[0] + + // 5. Let length be body’s length, serialized and isomorphic encoded. + const length = isomorphicEncode(`${body.length}`) + + // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence. + const type = bodyWithType[1] ?? '' + + // 7. Return a new response whose status message is `OK`, header list is + // « (`Content-Length`, length), (`Content-Type`, type) », and body is body. + const response = makeResponse({ + statusText: 'OK', + headersList: [ + ['content-length', { name: 'Content-Length', value: length }], + ['content-type', { name: 'Content-Type', value: type }] + ] + }) + + response.body = body + + return Promise.resolve(response) + } + case 'data:': { + // 1. Let dataURLStruct be the result of running the + // data: URL processor on request’s current URL. + const currentURL = requestCurrentURL(request) + const dataURLStruct = dataURLProcessor(currentURL) + + // 2. If dataURLStruct is failure, then return a + // network error. + if (dataURLStruct === 'failure') { + return Promise.resolve(makeNetworkError('failed to fetch the data URL')) + } + + // 3. Let mimeType be dataURLStruct’s MIME type, serialized. + const mimeType = serializeAMimeType(dataURLStruct.mimeType) + + // 4. Return a response whose status message is `OK`, + // header list is « (`Content-Type`, mimeType) », + // and body is dataURLStruct’s body as a body. + return Promise.resolve(makeResponse({ + statusText: 'OK', + headersList: [ + ['content-type', { name: 'Content-Type', value: mimeType }] + ], + body: safelyExtractBody(dataURLStruct.body)[0] + })) + } + case 'file:': { + // For now, unfortunate as it is, file URLs are left as an exercise for the reader. + // When in doubt, return a network error. + return Promise.resolve(makeNetworkError('not implemented... yet...')) + } + case 'http:': + case 'https:': { + // Return the result of running HTTP fetch given fetchParams. + + return httpFetch(fetchParams) + .catch((err) => makeNetworkError(err)) + } + default: { + return Promise.resolve(makeNetworkError('unknown scheme')) + } + } +} + +// https://fetch.spec.whatwg.org/#finalize-response +function finalizeResponse (fetchParams, response) { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true + + // 2, If fetchParams’s process response done is not null, then queue a fetch + // task to run fetchParams’s process response done given response, with + // fetchParams’s task destination. + if (fetchParams.processResponseDone != null) { + queueMicrotask(() => fetchParams.processResponseDone(response)) + } +} + +// https://fetch.spec.whatwg.org/#fetch-finale +function fetchFinale (fetchParams, response) { + // 1. If response is a network error, then: + if (response.type === 'error') { + // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ». + response.urlList = [fetchParams.request.urlList[0]] + + // 2. Set response’s timing info to the result of creating an opaque timing + // info for fetchParams’s timing info. + response.timingInfo = createOpaqueTimingInfo({ + startTime: fetchParams.timingInfo.startTime + }) + } + + // 2. Let processResponseEndOfBody be the following steps: + const processResponseEndOfBody = () => { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true + + // If fetchParams’s process response end-of-body is not null, + // then queue a fetch task to run fetchParams’s process response + // end-of-body given response with fetchParams’s task destination. + if (fetchParams.processResponseEndOfBody != null) { + queueMicrotask(() => fetchParams.processResponseEndOfBody(response)) + } + } + + // 3. If fetchParams’s process response is non-null, then queue a fetch task + // to run fetchParams’s process response given response, with fetchParams’s + // task destination. + if (fetchParams.processResponse != null) { + queueMicrotask(() => fetchParams.processResponse(response)) + } + + // 4. If response’s body is null, then run processResponseEndOfBody. + if (response.body == null) { + processResponseEndOfBody() + } else { + // 5. Otherwise: + + // 1. Let transformStream be a new a TransformStream. + + // 2. Let identityTransformAlgorithm be an algorithm which, given chunk, + // enqueues chunk in transformStream. + const identityTransformAlgorithm = (chunk, controller) => { + controller.enqueue(chunk) + } + + // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm + // and flushAlgorithm set to processResponseEndOfBody. + const transformStream = new TransformStream({ + start () {}, + transform: identityTransformAlgorithm, + flush: processResponseEndOfBody + }, { + size () { + return 1 + } + }, { + size () { + return 1 + } + }) + + // 4. Set response’s body to the result of piping response’s body through transformStream. + response.body = { stream: response.body.stream.pipeThrough(transformStream) } + } + + // 6. If fetchParams’s process response consume body is non-null, then: + if (fetchParams.processResponseConsumeBody != null) { + // 1. Let processBody given nullOrBytes be this step: run fetchParams’s + // process response consume body given response and nullOrBytes. + const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes) + + // 2. Let processBodyError be this step: run fetchParams’s process + // response consume body given response and failure. + const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure) + + // 3. If response’s body is null, then queue a fetch task to run processBody + // given null, with fetchParams’s task destination. + if (response.body == null) { + queueMicrotask(() => processBody(null)) + } else { + // 4. Otherwise, fully read response’s body given processBody, processBodyError, + // and fetchParams’s task destination. + return fullyReadBody(response.body, processBody, processBodyError) + } + return Promise.resolve() + } +} + +// https://fetch.spec.whatwg.org/#http-fetch +async function httpFetch (fetchParams) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. Let actualResponse be null. + let actualResponse = null + + // 4. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 5. If request’s service-workers mode is "all", then: + if (request.serviceWorkers === 'all') { + // TODO + } + + // 6. If response is null, then: + if (response === null) { + // 1. If makeCORSPreflight is true and one of these conditions is true: + // TODO + + // 2. If request’s redirect mode is "follow", then set request’s + // service-workers mode to "none". + if (request.redirect === 'follow') { + request.serviceWorkers = 'none' + } + + // 3. Set response and actualResponse to the result of running + // HTTP-network-or-cache fetch given fetchParams. + actualResponse = response = await httpNetworkOrCacheFetch(fetchParams) + + // 4. If request’s response tainting is "cors" and a CORS check + // for request and response returns failure, then return a network error. + if ( + request.responseTainting === 'cors' && + corsCheck(request, response) === 'failure' + ) { + return makeNetworkError('cors failure') + } + + // 5. If the TAO check for request and response returns failure, then set + // request’s timing allow failed flag. + if (TAOCheck(request, response) === 'failure') { + request.timingAllowFailed = true + } + } + + // 7. If either request’s response tainting or response’s type + // is "opaque", and the cross-origin resource policy check with + // request’s origin, request’s client, request’s destination, + // and actualResponse returns blocked, then return a network error. + if ( + (request.responseTainting === 'opaque' || response.type === 'opaque') && + crossOriginResourcePolicyCheck( + request.origin, + request.client, + request.destination, + actualResponse + ) === 'blocked' + ) { + return makeNetworkError('blocked') + } + + // 8. If actualResponse’s status is a redirect status, then: + if (redirectStatusSet.has(actualResponse.status)) { + // 1. If actualResponse’s status is not 303, request’s body is not null, + // and the connection uses HTTP/2, then user agents may, and are even + // encouraged to, transmit an RST_STREAM frame. + // See, https://github.com/whatwg/fetch/issues/1288 + if (request.redirect !== 'manual') { + fetchParams.controller.connection.destroy() + } + + // 2. Switch on request’s redirect mode: + if (request.redirect === 'error') { + // Set response to a network error. + response = makeNetworkError('unexpected redirect') + } else if (request.redirect === 'manual') { + // Set response to an opaque-redirect filtered response whose internal + // response is actualResponse. + // NOTE(spec): On the web this would return an `opaqueredirect` response, + // but that doesn't make sense server side. + // See https://github.com/nodejs/undici/issues/1193. + response = actualResponse + } else if (request.redirect === 'follow') { + // Set response to the result of running HTTP-redirect fetch given + // fetchParams and response. + response = await httpRedirectFetch(fetchParams, response) + } else { + assert(false) + } + } + + // 9. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo + + // 10. Return response. + return response +} + +// https://fetch.spec.whatwg.org/#http-redirect-fetch +function httpRedirectFetch (fetchParams, response) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let actualResponse be response, if response is not a filtered response, + // and response’s internal response otherwise. + const actualResponse = response.internalResponse + ? response.internalResponse + : response + + // 3. Let locationURL be actualResponse’s location URL given request’s current + // URL’s fragment. + let locationURL + + try { + locationURL = responseLocationURL( + actualResponse, + requestCurrentURL(request).hash + ) + + // 4. If locationURL is null, then return response. + if (locationURL == null) { + return response + } + } catch (err) { + // 5. If locationURL is failure, then return a network error. + return Promise.resolve(makeNetworkError(err)) + } + + // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network + // error. + if (!urlIsHttpHttpsScheme(locationURL)) { + return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme')) + } + + // 7. If request’s redirect count is 20, then return a network error. + if (request.redirectCount === 20) { + return Promise.resolve(makeNetworkError('redirect count exceeded')) + } + + // 8. Increase request’s redirect count by 1. + request.redirectCount += 1 + + // 9. If request’s mode is "cors", locationURL includes credentials, and + // request’s origin is not same origin with locationURL’s origin, then return + // a network error. + if ( + request.mode === 'cors' && + (locationURL.username || locationURL.password) && + !sameOrigin(request, locationURL) + ) { + return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')) + } + + // 10. If request’s response tainting is "cors" and locationURL includes + // credentials, then return a network error. + if ( + request.responseTainting === 'cors' && + (locationURL.username || locationURL.password) + ) { + return Promise.resolve(makeNetworkError( + 'URL cannot contain credentials for request mode "cors"' + )) + } + + // 11. If actualResponse’s status is not 303, request’s body is non-null, + // and request’s body’s source is null, then return a network error. + if ( + actualResponse.status !== 303 && + request.body != null && + request.body.source == null + ) { + return Promise.resolve(makeNetworkError()) + } + + // 12. If one of the following is true + // - actualResponse’s status is 301 or 302 and request’s method is `POST` + // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD` + if ( + ([301, 302].includes(actualResponse.status) && request.method === 'POST') || + (actualResponse.status === 303 && + !GET_OR_HEAD.includes(request.method)) + ) { + // then: + // 1. Set request’s method to `GET` and request’s body to null. + request.method = 'GET' + request.body = null + + // 2. For each headerName of request-body-header name, delete headerName from + // request’s header list. + for (const headerName of requestBodyHeader) { + request.headersList.delete(headerName) + } + } + + // 13. If request’s current URL’s origin is not same origin with locationURL’s + // origin, then for each headerName of CORS non-wildcard request-header name, + // delete headerName from request’s header list. + if (!sameOrigin(requestCurrentURL(request), locationURL)) { + // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name + request.headersList.delete('authorization') + + // https://fetch.spec.whatwg.org/#authentication-entries + request.headersList.delete('proxy-authorization', true) + + // "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement. + request.headersList.delete('cookie') + request.headersList.delete('host') + } + + // 14. If request’s body is non-null, then set request’s body to the first return + // value of safely extracting request’s body’s source. + if (request.body != null) { + assert(request.body.source != null) + request.body = safelyExtractBody(request.body.source)[0] + } + + // 15. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 16. Set timingInfo’s redirect end time and post-redirect start time to the + // coarsened shared current time given fetchParams’s cross-origin isolated + // capability. + timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = + coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) + + // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s + // redirect start time to timingInfo’s start time. + if (timingInfo.redirectStartTime === 0) { + timingInfo.redirectStartTime = timingInfo.startTime + } + + // 18. Append locationURL to request’s URL list. + request.urlList.push(locationURL) + + // 19. Invoke set request’s referrer policy on redirect on request and + // actualResponse. + setRequestReferrerPolicyOnRedirect(request, actualResponse) + + // 20. Return the result of running main fetch given fetchParams and true. + return mainFetch(fetchParams, true) +} + +// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch +async function httpNetworkOrCacheFetch ( + fetchParams, + isAuthenticationFetch = false, + isNewConnectionFetch = false +) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let httpFetchParams be null. + let httpFetchParams = null + + // 3. Let httpRequest be null. + let httpRequest = null + + // 4. Let response be null. + let response = null + + // 5. Let storedResponse be null. + // TODO: cache + + // 6. Let httpCache be null. + const httpCache = null + + // 7. Let the revalidatingFlag be unset. + const revalidatingFlag = false + + // 8. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. If request’s window is "no-window" and request’s redirect mode is + // "error", then set httpFetchParams to fetchParams and httpRequest to + // request. + if (request.window === 'no-window' && request.redirect === 'error') { + httpFetchParams = fetchParams + httpRequest = request + } else { + // Otherwise: + + // 1. Set httpRequest to a clone of request. + httpRequest = makeRequest(request) + + // 2. Set httpFetchParams to a copy of fetchParams. + httpFetchParams = { ...fetchParams } + + // 3. Set httpFetchParams’s request to httpRequest. + httpFetchParams.request = httpRequest + } + + // 3. Let includeCredentials be true if one of + const includeCredentials = + request.credentials === 'include' || + (request.credentials === 'same-origin' && + request.responseTainting === 'basic') + + // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s + // body is non-null; otherwise null. + const contentLength = httpRequest.body ? httpRequest.body.length : null + + // 5. Let contentLengthHeaderValue be null. + let contentLengthHeaderValue = null + + // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or + // `PUT`, then set contentLengthHeaderValue to `0`. + if ( + httpRequest.body == null && + ['POST', 'PUT'].includes(httpRequest.method) + ) { + contentLengthHeaderValue = '0' + } + + // 7. If contentLength is non-null, then set contentLengthHeaderValue to + // contentLength, serialized and isomorphic encoded. + if (contentLength != null) { + contentLengthHeaderValue = isomorphicEncode(`${contentLength}`) + } + + // 8. If contentLengthHeaderValue is non-null, then append + // `Content-Length`/contentLengthHeaderValue to httpRequest’s header + // list. + if (contentLengthHeaderValue != null) { + httpRequest.headersList.append('content-length', contentLengthHeaderValue) + } + + // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`, + // contentLengthHeaderValue) to httpRequest’s header list. + + // 10. If contentLength is non-null and httpRequest’s keepalive is true, + // then: + if (contentLength != null && httpRequest.keepalive) { + // NOTE: keepalive is a noop outside of browser context. + } + + // 11. If httpRequest’s referrer is a URL, then append + // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded, + // to httpRequest’s header list. + if (httpRequest.referrer instanceof URL) { + httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href)) + } + + // 12. Append a request `Origin` header for httpRequest. + appendRequestOriginHeader(httpRequest) + + // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA] + appendFetchMetadata(httpRequest) + + // 14. If httpRequest’s header list does not contain `User-Agent`, then + // user agents should append `User-Agent`/default `User-Agent` value to + // httpRequest’s header list. + if (!httpRequest.headersList.contains('user-agent')) { + httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node') + } + + // 15. If httpRequest’s cache mode is "default" and httpRequest’s header + // list contains `If-Modified-Since`, `If-None-Match`, + // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set + // httpRequest’s cache mode to "no-store". + if ( + httpRequest.cache === 'default' && + (httpRequest.headersList.contains('if-modified-since') || + httpRequest.headersList.contains('if-none-match') || + httpRequest.headersList.contains('if-unmodified-since') || + httpRequest.headersList.contains('if-match') || + httpRequest.headersList.contains('if-range')) + ) { + httpRequest.cache = 'no-store' + } + + // 16. If httpRequest’s cache mode is "no-cache", httpRequest’s prevent + // no-cache cache-control header modification flag is unset, and + // httpRequest’s header list does not contain `Cache-Control`, then append + // `Cache-Control`/`max-age=0` to httpRequest’s header list. + if ( + httpRequest.cache === 'no-cache' && + !httpRequest.preventNoCacheCacheControlHeaderModification && + !httpRequest.headersList.contains('cache-control') + ) { + httpRequest.headersList.append('cache-control', 'max-age=0') + } + + // 17. If httpRequest’s cache mode is "no-store" or "reload", then: + if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') { + // 1. If httpRequest’s header list does not contain `Pragma`, then append + // `Pragma`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('pragma')) { + httpRequest.headersList.append('pragma', 'no-cache') + } + + // 2. If httpRequest’s header list does not contain `Cache-Control`, + // then append `Cache-Control`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('cache-control')) { + httpRequest.headersList.append('cache-control', 'no-cache') + } + } + + // 18. If httpRequest’s header list contains `Range`, then append + // `Accept-Encoding`/`identity` to httpRequest’s header list. + if (httpRequest.headersList.contains('range')) { + httpRequest.headersList.append('accept-encoding', 'identity') + } + + // 19. Modify httpRequest’s header list per HTTP. Do not append a given + // header if httpRequest’s header list contains that header’s name. + // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129 + if (!httpRequest.headersList.contains('accept-encoding')) { + if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { + httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate') + } else { + httpRequest.headersList.append('accept-encoding', 'gzip, deflate') + } + } + + httpRequest.headersList.delete('host') + + // 20. If includeCredentials is true, then: + if (includeCredentials) { + // 1. If the user agent is not configured to block cookies for httpRequest + // (see section 7 of [COOKIES]), then: + // TODO: credentials + // 2. If httpRequest’s header list does not contain `Authorization`, then: + // TODO: credentials + } + + // 21. If there’s a proxy-authentication entry, use it as appropriate. + // TODO: proxy-authentication + + // 22. Set httpCache to the result of determining the HTTP cache + // partition, given httpRequest. + // TODO: cache + + // 23. If httpCache is null, then set httpRequest’s cache mode to + // "no-store". + if (httpCache == null) { + httpRequest.cache = 'no-store' + } + + // 24. If httpRequest’s cache mode is neither "no-store" nor "reload", + // then: + if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') { + // TODO: cache + } + + // 9. If aborted, then return the appropriate network error for fetchParams. + // TODO + + // 10. If response is null, then: + if (response == null) { + // 1. If httpRequest’s cache mode is "only-if-cached", then return a + // network error. + if (httpRequest.mode === 'only-if-cached') { + return makeNetworkError('only if cached') + } + + // 2. Let forwardResponse be the result of running HTTP-network fetch + // given httpFetchParams, includeCredentials, and isNewConnectionFetch. + const forwardResponse = await httpNetworkFetch( + httpFetchParams, + includeCredentials, + isNewConnectionFetch + ) + + // 3. If httpRequest’s method is unsafe and forwardResponse’s status is + // in the range 200 to 399, inclusive, invalidate appropriate stored + // responses in httpCache, as per the "Invalidation" chapter of HTTP + // Caching, and set storedResponse to null. [HTTP-CACHING] + if ( + !safeMethodsSet.has(httpRequest.method) && + forwardResponse.status >= 200 && + forwardResponse.status <= 399 + ) { + // TODO: cache + } + + // 4. If the revalidatingFlag is set and forwardResponse’s status is 304, + // then: + if (revalidatingFlag && forwardResponse.status === 304) { + // TODO: cache + } + + // 5. If response is null, then: + if (response == null) { + // 1. Set response to forwardResponse. + response = forwardResponse + + // 2. Store httpRequest and forwardResponse in httpCache, as per the + // "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING] + // TODO: cache + } + } + + // 11. Set response’s URL list to a clone of httpRequest’s URL list. + response.urlList = [...httpRequest.urlList] + + // 12. If httpRequest’s header list contains `Range`, then set response’s + // range-requested flag. + if (httpRequest.headersList.contains('range')) { + response.rangeRequested = true + } + + // 13. Set response’s request-includes-credentials to includeCredentials. + response.requestIncludesCredentials = includeCredentials + + // 14. If response’s status is 401, httpRequest’s response tainting is not + // "cors", includeCredentials is true, and request’s window is an environment + // settings object, then: + // TODO + + // 15. If response’s status is 407, then: + if (response.status === 407) { + // 1. If request’s window is "no-window", then return a network error. + if (request.window === 'no-window') { + return makeNetworkError() + } + + // 2. ??? + + // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } + + // 4. Prompt the end user as appropriate in request’s window and store + // the result as a proxy-authentication entry. [HTTP-AUTH] + // TODO: Invoke some kind of callback? + + // 5. Set response to the result of running HTTP-network-or-cache fetch given + // fetchParams. + // TODO + return makeNetworkError('proxy authentication required') + } + + // 16. If all of the following are true + if ( + // response’s status is 421 + response.status === 421 && + // isNewConnectionFetch is false + !isNewConnectionFetch && + // request’s body is null, or request’s body is non-null and request’s body’s source is non-null + (request.body == null || request.body.source != null) + ) { + // then: + + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } + + // 2. Set response to the result of running HTTP-network-or-cache + // fetch given fetchParams, isAuthenticationFetch, and true. + + // TODO (spec): The spec doesn't specify this but we need to cancel + // the active response before we can start a new one. + // https://github.com/whatwg/fetch/issues/1293 + fetchParams.controller.connection.destroy() + + response = await httpNetworkOrCacheFetch( + fetchParams, + isAuthenticationFetch, + true + ) + } + + // 17. If isAuthenticationFetch is true, then create an authentication entry + if (isAuthenticationFetch) { + // TODO + } + + // 18. Return response. + return response +} + +// https://fetch.spec.whatwg.org/#http-network-fetch +async function httpNetworkFetch ( + fetchParams, + includeCredentials = false, + forceNewConnection = false +) { + assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed) + + fetchParams.controller.connection = { + abort: null, + destroyed: false, + destroy (err) { + if (!this.destroyed) { + this.destroyed = true + this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError')) + } + } + } + + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 4. Let httpCache be the result of determining the HTTP cache partition, + // given request. + // TODO: cache + const httpCache = null + + // 5. If httpCache is null, then set request’s cache mode to "no-store". + if (httpCache == null) { + request.cache = 'no-store' + } + + // 6. Let networkPartitionKey be the result of determining the network + // partition key given request. + // TODO + + // 7. Let newConnection be "yes" if forceNewConnection is true; otherwise + // "no". + const newConnection = forceNewConnection ? 'yes' : 'no' + + // 8. Switch on request’s mode: + if (request.mode === 'websocket') { + // Let connection be the result of obtaining a WebSocket connection, + // given request’s current URL. + // TODO + } else { + // Let connection be the result of obtaining a connection, given + // networkPartitionKey, request’s current URL’s origin, + // includeCredentials, and forceNewConnection. + // TODO + } + + // 9. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. If connection is failure, then return a network error. + + // 2. Set timingInfo’s final connection timing info to the result of + // calling clamp and coarsen connection timing info with connection’s + // timing info, timingInfo’s post-redirect start time, and fetchParams’s + // cross-origin isolated capability. + + // 3. If connection is not an HTTP/2 connection, request’s body is non-null, + // and request’s body’s source is null, then append (`Transfer-Encoding`, + // `chunked`) to request’s header list. + + // 4. Set timingInfo’s final network-request start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated + // capability. + + // 5. Set response to the result of making an HTTP request over connection + // using request with the following caveats: + + // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS] + // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH] + + // - If request’s body is non-null, and request’s body’s source is null, + // then the user agent may have a buffer of up to 64 kibibytes and store + // a part of request’s body in that buffer. If the user agent reads from + // request’s body beyond that buffer’s size and the user agent needs to + // resend request, then instead return a network error. + + // - Set timingInfo’s final network-response start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated capability, + // immediately after the user agent’s HTTP parser receives the first byte + // of the response (e.g., frame header bytes for HTTP/2 or response status + // line for HTTP/1.x). + + // - Wait until all the headers are transmitted. + + // - Any responses whose status is in the range 100 to 199, inclusive, + // and is not 101, are to be ignored, except for the purposes of setting + // timingInfo’s final network-response start time above. + + // - If request’s header list contains `Transfer-Encoding`/`chunked` and + // response is transferred via HTTP/1.0 or older, then return a network + // error. + + // - If the HTTP request results in a TLS client certificate dialog, then: + + // 1. If request’s window is an environment settings object, make the + // dialog available in request’s window. + + // 2. Otherwise, return a network error. + + // To transmit request’s body body, run these steps: + let requestBody = null + // 1. If body is null and fetchParams’s process request end-of-body is + // non-null, then queue a fetch task given fetchParams’s process request + // end-of-body and fetchParams’s task destination. + if (request.body == null && fetchParams.processRequestEndOfBody) { + queueMicrotask(() => fetchParams.processRequestEndOfBody()) + } else if (request.body != null) { + // 2. Otherwise, if body is non-null: + + // 1. Let processBodyChunk given bytes be these steps: + const processBodyChunk = async function * (bytes) { + // 1. If the ongoing fetch is terminated, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. Run this step in parallel: transmit bytes. + yield bytes + + // 3. If fetchParams’s process request body is non-null, then run + // fetchParams’s process request body given bytes’s length. + fetchParams.processRequestBodyChunkLength?.(bytes.byteLength) + } + + // 2. Let processEndOfBody be these steps: + const processEndOfBody = () => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. If fetchParams’s process request end-of-body is non-null, + // then run fetchParams’s process request end-of-body. + if (fetchParams.processRequestEndOfBody) { + fetchParams.processRequestEndOfBody() + } + } + + // 3. Let processBodyError given e be these steps: + const processBodyError = (e) => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. If e is an "AbortError" DOMException, then abort fetchParams’s controller. + if (e.name === 'AbortError') { + fetchParams.controller.abort() + } else { + fetchParams.controller.terminate(e) + } + } + + // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody, + // processBodyError, and fetchParams’s task destination. + requestBody = (async function * () { + try { + for await (const bytes of request.body.stream) { + yield * processBodyChunk(bytes) + } + processEndOfBody() + } catch (err) { + processBodyError(err) + } + })() + } + + try { + // socket is only provided for websockets + const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }) + + if (socket) { + response = makeResponse({ status, statusText, headersList, socket }) + } else { + const iterator = body[Symbol.asyncIterator]() + fetchParams.controller.next = () => iterator.next() + + response = makeResponse({ status, statusText, headersList }) + } + } catch (err) { + // 10. If aborted, then: + if (err.name === 'AbortError') { + // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame. + fetchParams.controller.connection.destroy() + + // 2. Return the appropriate network error for fetchParams. + return makeAppropriateNetworkError(fetchParams, err) + } + + return makeNetworkError(err) + } + + // 11. Let pullAlgorithm be an action that resumes the ongoing fetch + // if it is suspended. + const pullAlgorithm = () => { + fetchParams.controller.resume() + } + + // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s + // controller with reason, given reason. + const cancelAlgorithm = (reason) => { + fetchParams.controller.abort(reason) + } + + // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by + // the user agent. + // TODO + + // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object + // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent. + // TODO + + // 15. Let stream be a new ReadableStream. + // 16. Set up stream with pullAlgorithm set to pullAlgorithm, + // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to + // highWaterMark, and sizeAlgorithm set to sizeAlgorithm. + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(3774).ReadableStream) + } + + const stream = new ReadableStream( + { + async start (controller) { + fetchParams.controller.controller = controller + }, + async pull (controller) { + await pullAlgorithm(controller) + }, + async cancel (reason) { + await cancelAlgorithm(reason) + } + }, + { + highWaterMark: 0, + size () { + return 1 + } + } + ) + + // 17. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. Set response’s body to a new body whose stream is stream. + response.body = { stream } + + // 2. If response is not a network error and request’s cache mode is + // not "no-store", then update response in httpCache for request. + // TODO + + // 3. If includeCredentials is true and the user agent is not configured + // to block cookies for request (see section 7 of [COOKIES]), then run the + // "set-cookie-string" parsing algorithm (see section 5.2 of [COOKIES]) on + // the value of each header whose name is a byte-case-insensitive match for + // `Set-Cookie` in response’s header list, if any, and request’s current URL. + // TODO + + // 18. If aborted, then: + // TODO + + // 19. Run these steps in parallel: + + // 1. Run these steps, but abort when fetchParams is canceled: + fetchParams.controller.on('terminated', onAborted) + fetchParams.controller.resume = async () => { + // 1. While true + while (true) { + // 1-3. See onData... + + // 4. Set bytes to the result of handling content codings given + // codings and bytes. + let bytes + let isFailure + try { + const { done, value } = await fetchParams.controller.next() + + if (isAborted(fetchParams)) { + break + } + + bytes = done ? undefined : value + } catch (err) { + if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { + // zlib doesn't like empty streams. + bytes = undefined + } else { + bytes = err + + // err may be propagated from the result of calling readablestream.cancel, + // which might not be an error. https://github.com/nodejs/undici/issues/2009 + isFailure = true + } + } + + if (bytes === undefined) { + // 2. Otherwise, if the bytes transmission for response’s message + // body is done normally and stream is readable, then close + // stream, finalize response for fetchParams and response, and + // abort these in-parallel steps. + readableStreamClose(fetchParams.controller.controller) + + finalizeResponse(fetchParams, response) + + return + } + + // 5. Increase timingInfo’s decoded body size by bytes’s length. + timingInfo.decodedBodySize += bytes?.byteLength ?? 0 + + // 6. If bytes is failure, then terminate fetchParams’s controller. + if (isFailure) { + fetchParams.controller.terminate(bytes) + return + } + + // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes + // into stream. + fetchParams.controller.controller.enqueue(new Uint8Array(bytes)) + + // 8. If stream is errored, then terminate the ongoing fetch. + if (isErrored(stream)) { + fetchParams.controller.terminate() + return + } + + // 9. If stream doesn’t need more data ask the user agent to suspend + // the ongoing fetch. + if (!fetchParams.controller.controller.desiredSize) { + return + } + } + } + + // 2. If aborted, then: + function onAborted (reason) { + // 2. If fetchParams is aborted, then: + if (isAborted(fetchParams)) { + // 1. Set response’s aborted flag. + response.aborted = true + + // 2. If stream is readable, then error stream with the result of + // deserialize a serialized abort reason given fetchParams’s + // controller’s serialized abort reason and an + // implementation-defined realm. + if (isReadable(stream)) { + fetchParams.controller.controller.error( + fetchParams.controller.serializedAbortReason + ) + } + } else { + // 3. Otherwise, if stream is readable, error stream with a TypeError. + if (isReadable(stream)) { + fetchParams.controller.controller.error(new TypeError('terminated', { + cause: isErrorLike(reason) ? reason : undefined + })) + } + } + + // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame. + // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so. + fetchParams.controller.connection.destroy() + } + + // 20. Return response. + return response + + async function dispatch ({ body }) { + const url = requestCurrentURL(request) + /** @type {import('../..').Agent} */ + const agent = fetchParams.controller.dispatcher + + return new Promise((resolve, reject) => agent.dispatch( + { + path: url.pathname + url.search, + origin: url.origin, + method: request.method, + body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body, + headers: request.headersList.entries, + maxRedirections: 0, + upgrade: request.mode === 'websocket' ? 'websocket' : undefined + }, + { + body: null, + abort: null, + + onConnect (abort) { + // TODO (fix): Do we need connection here? + const { connection } = fetchParams.controller + + if (connection.destroyed) { + abort(new DOMException('The operation was aborted.', 'AbortError')) + } else { + fetchParams.controller.on('terminated', abort) + this.abort = connection.abort = abort + } + }, + + onHeaders (status, headersList, resume, statusText) { + if (status < 200) { + return + } + + let codings = [] + let location = '' + + const headers = new Headers() + + // For H2, the headers are a plain JS object + // We distinguish between them and iterate accordingly + if (Array.isArray(headersList)) { + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString('latin1') + const val = headersList[n + 1].toString('latin1') + if (key.toLowerCase() === 'content-encoding') { + // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 + // "All content-coding values are case-insensitive..." + codings = val.toLowerCase().split(',').map((x) => x.trim()) + } else if (key.toLowerCase() === 'location') { + location = val + } + + headers[kHeadersList].append(key, val) + } + } else { + const keys = Object.keys(headersList) + for (const key of keys) { + const val = headersList[key] + if (key.toLowerCase() === 'content-encoding') { + // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 + // "All content-coding values are case-insensitive..." + codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse() + } else if (key.toLowerCase() === 'location') { + location = val + } + + headers[kHeadersList].append(key, val) + } + } + + this.body = new Readable({ read: resume }) + + const decoders = [] + + const willFollow = request.redirect === 'follow' && + location && + redirectStatusSet.has(status) + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding + if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) { + for (const coding of codings) { + // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2 + if (coding === 'x-gzip' || coding === 'gzip') { + decoders.push(zlib.createGunzip({ + // 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. + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH + })) + } else if (coding === 'deflate') { + decoders.push(zlib.createInflate()) + } else if (coding === 'br') { + decoders.push(zlib.createBrotliDecompress()) + } else { + decoders.length = 0 + break + } + } + } + + resolve({ + status, + statusText, + headersList: headers[kHeadersList], + body: decoders.length + ? pipeline(this.body, ...decoders, () => { }) + : this.body.on('error', () => {}) + }) + + return true + }, + + onData (chunk) { + if (fetchParams.controller.dump) { + return + } + + // 1. If one or more bytes have been transmitted from response’s + // message body, then: + + // 1. Let bytes be the transmitted bytes. + const bytes = chunk + + // 2. Let codings be the result of extracting header list values + // given `Content-Encoding` and response’s header list. + // See pullAlgorithm. + + // 3. Increase timingInfo’s encoded body size by bytes’s length. + timingInfo.encodedBodySize += bytes.byteLength + + // 4. See pullAlgorithm... + + return this.body.push(bytes) + }, + + onComplete () { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } + + fetchParams.controller.ended = true + + this.body.push(null) + }, + + onError (error) { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } + + this.body?.destroy(error) + + fetchParams.controller.terminate(error) + + reject(error) + }, + + onUpgrade (status, headersList, socket) { + if (status !== 101) { + return + } + + const headers = new Headers() + + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString('latin1') + const val = headersList[n + 1].toString('latin1') + + headers[kHeadersList].append(key, val) + } + + resolve({ + status, + statusText: STATUS_CODES[status], + headersList: headers[kHeadersList], + socket + }) + + return true + } + } + )) + } +} + +module.exports = { + fetch, + Fetch, + fetching, + finalizeAndReportTiming +} + + +/***/ }), + +/***/ 4960: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/* globals AbortController */ + + + +const { extractBody, mixinBody, cloneBody } = __nccwpck_require__(3893) +const { Headers, fill: fillHeaders, HeadersList } = __nccwpck_require__(6203) +const { FinalizationRegistry } = __nccwpck_require__(7108)() +const util = __nccwpck_require__(162) +const { + isValidHTTPToken, + sameOrigin, + normalizeMethod, + makePolicyContainer, + normalizeMethodRecord +} = __nccwpck_require__(7189) +const { + forbiddenMethodsSet, + corsSafeListedMethodsSet, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + requestDuplex +} = __nccwpck_require__(1356) +const { kEnumerableProperty } = util +const { kHeaders, kSignal, kState, kGuard, kRealm } = __nccwpck_require__(4236) +const { webidl } = __nccwpck_require__(7472) +const { getGlobalOrigin } = __nccwpck_require__(2498) +const { URLSerializer } = __nccwpck_require__(5892) +const { kHeadersList, kConstruct } = __nccwpck_require__(249) +const assert = __nccwpck_require__(2613) +const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __nccwpck_require__(4434) + +let TransformStream = globalThis.TransformStream + +const kAbortController = Symbol('abortController') + +const requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { + signal.removeEventListener('abort', abort) +}) + +// https://fetch.spec.whatwg.org/#request-class +class Request { + // https://fetch.spec.whatwg.org/#dom-request + constructor (input, init = {}) { + if (input === kConstruct) { + return + } + + webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' }) + + input = webidl.converters.RequestInfo(input) + init = webidl.converters.RequestInit(init) + + // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object + this[kRealm] = { + settingsObject: { + baseUrl: getGlobalOrigin(), + get origin () { + return this.baseUrl?.origin + }, + policyContainer: makePolicyContainer() + } + } + + // 1. Let request be null. + let request = null + + // 2. Let fallbackMode be null. + let fallbackMode = null + + // 3. Let baseURL be this’s relevant settings object’s API base URL. + const baseUrl = this[kRealm].settingsObject.baseUrl + + // 4. Let signal be null. + let signal = null + + // 5. If input is a string, then: + if (typeof input === 'string') { + // 1. Let parsedURL be the result of parsing input with baseURL. + // 2. If parsedURL is failure, then throw a TypeError. + let parsedURL + try { + parsedURL = new URL(input, baseUrl) + } catch (err) { + throw new TypeError('Failed to parse URL from ' + input, { cause: err }) + } + + // 3. If parsedURL includes credentials, then throw a TypeError. + if (parsedURL.username || parsedURL.password) { + throw new TypeError( + 'Request cannot be constructed from a URL that includes credentials: ' + + input + ) + } + + // 4. Set request to a new request whose URL is parsedURL. + request = makeRequest({ urlList: [parsedURL] }) + + // 5. Set fallbackMode to "cors". + fallbackMode = 'cors' + } else { + // 6. Otherwise: + + // 7. Assert: input is a Request object. + assert(input instanceof Request) + + // 8. Set request to input’s request. + request = input[kState] + + // 9. Set signal to input’s signal. + signal = input[kSignal] + } + + // 7. Let origin be this’s relevant settings object’s origin. + const origin = this[kRealm].settingsObject.origin + + // 8. Let window be "client". + let window = 'client' + + // 9. If request’s window is an environment settings object and its origin + // is same origin with origin, then set window to request’s window. + if ( + request.window?.constructor?.name === 'EnvironmentSettingsObject' && + sameOrigin(request.window, origin) + ) { + window = request.window + } + + // 10. If init["window"] exists and is non-null, then throw a TypeError. + if (init.window != null) { + throw new TypeError(`'window' option '${window}' must be null`) + } + + // 11. If init["window"] exists, then set window to "no-window". + if ('window' in init) { + window = 'no-window' + } + + // 12. Set request to a new request with the following properties: + request = makeRequest({ + // URL request’s URL. + // undici implementation note: this is set as the first item in request's urlList in makeRequest + // method request’s method. + method: request.method, + // header list A copy of request’s header list. + // undici implementation note: headersList is cloned in makeRequest + headersList: request.headersList, + // unsafe-request flag Set. + unsafeRequest: request.unsafeRequest, + // client This’s relevant settings object. + client: this[kRealm].settingsObject, + // window window. + window, + // priority request’s priority. + priority: request.priority, + // origin request’s origin. The propagation of the origin is only significant for navigation requests + // being handled by a service worker. In this scenario a request can have an origin that is different + // from the current client. + origin: request.origin, + // referrer request’s referrer. + referrer: request.referrer, + // referrer policy request’s referrer policy. + referrerPolicy: request.referrerPolicy, + // mode request’s mode. + mode: request.mode, + // credentials mode request’s credentials mode. + credentials: request.credentials, + // cache mode request’s cache mode. + cache: request.cache, + // redirect mode request’s redirect mode. + redirect: request.redirect, + // integrity metadata request’s integrity metadata. + integrity: request.integrity, + // keepalive request’s keepalive. + keepalive: request.keepalive, + // reload-navigation flag request’s reload-navigation flag. + reloadNavigation: request.reloadNavigation, + // history-navigation flag request’s history-navigation flag. + historyNavigation: request.historyNavigation, + // URL list A clone of request’s URL list. + urlList: [...request.urlList] + }) + + const initHasKey = Object.keys(init).length !== 0 + + // 13. If init is not empty, then: + if (initHasKey) { + // 1. If request’s mode is "navigate", then set it to "same-origin". + if (request.mode === 'navigate') { + request.mode = 'same-origin' + } + + // 2. Unset request’s reload-navigation flag. + request.reloadNavigation = false + + // 3. Unset request’s history-navigation flag. + request.historyNavigation = false + + // 4. Set request’s origin to "client". + request.origin = 'client' + + // 5. Set request’s referrer to "client" + request.referrer = 'client' + + // 6. Set request’s referrer policy to the empty string. + request.referrerPolicy = '' + + // 7. Set request’s URL to request’s current URL. + request.url = request.urlList[request.urlList.length - 1] + + // 8. Set request’s URL list to « request’s URL ». + request.urlList = [request.url] + } + + // 14. If init["referrer"] exists, then: + if (init.referrer !== undefined) { + // 1. Let referrer be init["referrer"]. + const referrer = init.referrer + + // 2. If referrer is the empty string, then set request’s referrer to "no-referrer". + if (referrer === '') { + request.referrer = 'no-referrer' + } else { + // 1. Let parsedReferrer be the result of parsing referrer with + // baseURL. + // 2. If parsedReferrer is failure, then throw a TypeError. + let parsedReferrer + try { + parsedReferrer = new URL(referrer, baseUrl) + } catch (err) { + throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }) + } + + // 3. If one of the following is true + // - parsedReferrer’s scheme is "about" and path is the string "client" + // - parsedReferrer’s origin is not same origin with origin + // then set request’s referrer to "client". + if ( + (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') || + (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl)) + ) { + request.referrer = 'client' + } else { + // 4. Otherwise, set request’s referrer to parsedReferrer. + request.referrer = parsedReferrer + } + } + } + + // 15. If init["referrerPolicy"] exists, then set request’s referrer policy + // to it. + if (init.referrerPolicy !== undefined) { + request.referrerPolicy = init.referrerPolicy + } + + // 16. Let mode be init["mode"] if it exists, and fallbackMode otherwise. + let mode + if (init.mode !== undefined) { + mode = init.mode + } else { + mode = fallbackMode + } + + // 17. If mode is "navigate", then throw a TypeError. + if (mode === 'navigate') { + throw webidl.errors.exception({ + header: 'Request constructor', + message: 'invalid request mode navigate.' + }) + } + + // 18. If mode is non-null, set request’s mode to mode. + if (mode != null) { + request.mode = mode + } + + // 19. If init["credentials"] exists, then set request’s credentials mode + // to it. + if (init.credentials !== undefined) { + request.credentials = init.credentials + } + + // 18. If init["cache"] exists, then set request’s cache mode to it. + if (init.cache !== undefined) { + request.cache = init.cache + } + + // 21. If request’s cache mode is "only-if-cached" and request’s mode is + // not "same-origin", then throw a TypeError. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + throw new TypeError( + "'only-if-cached' can be set only with 'same-origin' mode" + ) + } + + // 22. If init["redirect"] exists, then set request’s redirect mode to it. + if (init.redirect !== undefined) { + request.redirect = init.redirect + } + + // 23. If init["integrity"] exists, then set request’s integrity metadata to it. + if (init.integrity != null) { + request.integrity = String(init.integrity) + } + + // 24. If init["keepalive"] exists, then set request’s keepalive to it. + if (init.keepalive !== undefined) { + request.keepalive = Boolean(init.keepalive) + } + + // 25. If init["method"] exists, then: + if (init.method !== undefined) { + // 1. Let method be init["method"]. + let method = init.method + + // 2. If method is not a method or method is a forbidden method, then + // throw a TypeError. + if (!isValidHTTPToken(method)) { + throw new TypeError(`'${method}' is not a valid HTTP method.`) + } + + if (forbiddenMethodsSet.has(method.toUpperCase())) { + throw new TypeError(`'${method}' HTTP method is unsupported.`) + } + + // 3. Normalize method. + method = normalizeMethodRecord[method] ?? normalizeMethod(method) + + // 4. Set request’s method to method. + request.method = method + } + + // 26. If init["signal"] exists, then set signal to it. + if (init.signal !== undefined) { + signal = init.signal + } + + // 27. Set this’s request to request. + this[kState] = request + + // 28. Set this’s signal to a new AbortSignal object with this’s relevant + // Realm. + // TODO: could this be simplified with AbortSignal.any + // (https://dom.spec.whatwg.org/#dom-abortsignal-any) + const ac = new AbortController() + this[kSignal] = ac.signal + this[kSignal][kRealm] = this[kRealm] + + // 29. If signal is not null, then make this’s signal follow signal. + if (signal != null) { + if ( + !signal || + typeof signal.aborted !== 'boolean' || + typeof signal.addEventListener !== 'function' + ) { + throw new TypeError( + "Failed to construct 'Request': member signal is not of type AbortSignal." + ) + } + + if (signal.aborted) { + ac.abort(signal.reason) + } else { + // Keep a strong ref to ac while request object + // is alive. This is needed to prevent AbortController + // from being prematurely garbage collected. + // See, https://github.com/nodejs/undici/issues/1926. + this[kAbortController] = ac + + const acRef = new WeakRef(ac) + const abort = function () { + const ac = acRef.deref() + if (ac !== undefined) { + ac.abort(this.reason) + } + } + + // Third-party AbortControllers may not work with these. + // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619. + try { + // If the max amount of listeners is equal to the default, increase it + // This is only available in node >= v19.9.0 + if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) { + setMaxListeners(100, signal) + } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) { + setMaxListeners(100, signal) + } + } catch {} + + util.addAbortListener(signal, abort) + requestFinalizer.register(ac, { signal, abort }) + } + } + + // 30. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is request’s header list and guard is + // "request". + this[kHeaders] = new Headers(kConstruct) + this[kHeaders][kHeadersList] = request.headersList + this[kHeaders][kGuard] = 'request' + this[kHeaders][kRealm] = this[kRealm] + + // 31. If this’s request’s mode is "no-cors", then: + if (mode === 'no-cors') { + // 1. If this’s request’s method is not a CORS-safelisted method, + // then throw a TypeError. + if (!corsSafeListedMethodsSet.has(request.method)) { + throw new TypeError( + `'${request.method} is unsupported in no-cors mode.` + ) + } + + // 2. Set this’s headers’s guard to "request-no-cors". + this[kHeaders][kGuard] = 'request-no-cors' + } + + // 32. If init is not empty, then: + if (initHasKey) { + /** @type {HeadersList} */ + const headersList = this[kHeaders][kHeadersList] + // 1. Let headers be a copy of this’s headers and its associated header + // list. + // 2. If init["headers"] exists, then set headers to init["headers"]. + const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList) + + // 3. Empty this’s headers’s header list. + headersList.clear() + + // 4. If headers is a Headers object, then for each header in its header + // list, append header’s name/header’s value to this’s headers. + if (headers instanceof HeadersList) { + for (const [key, val] of headers) { + headersList.append(key, val) + } + // Note: Copy the `set-cookie` meta-data. + headersList.cookies = headers.cookies + } else { + // 5. Otherwise, fill this’s headers with headers. + fillHeaders(this[kHeaders], headers) + } + } + + // 33. Let inputBody be input’s request’s body if input is a Request + // object; otherwise null. + const inputBody = input instanceof Request ? input[kState].body : null + + // 34. If either init["body"] exists and is non-null or inputBody is + // non-null, and request’s method is `GET` or `HEAD`, then throw a + // TypeError. + if ( + (init.body != null || inputBody != null) && + (request.method === 'GET' || request.method === 'HEAD') + ) { + throw new TypeError('Request with GET/HEAD method cannot have body.') + } + + // 35. Let initBody be null. + let initBody = null + + // 36. If init["body"] exists and is non-null, then: + if (init.body != null) { + // 1. Let Content-Type be null. + // 2. Set initBody and Content-Type to the result of extracting + // init["body"], with keepalive set to request’s keepalive. + const [extractedBody, contentType] = extractBody( + init.body, + request.keepalive + ) + initBody = extractedBody + + // 3, If Content-Type is non-null and this’s headers’s header list does + // not contain `Content-Type`, then append `Content-Type`/Content-Type to + // this’s headers. + if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) { + this[kHeaders].append('content-type', contentType) + } + } + + // 37. Let inputOrInitBody be initBody if it is non-null; otherwise + // inputBody. + const inputOrInitBody = initBody ?? inputBody + + // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is + // null, then: + if (inputOrInitBody != null && inputOrInitBody.source == null) { + // 1. If initBody is non-null and init["duplex"] does not exist, + // then throw a TypeError. + if (initBody != null && init.duplex == null) { + throw new TypeError('RequestInit: duplex option is required when sending a body.') + } + + // 2. If this’s request’s mode is neither "same-origin" nor "cors", + // then throw a TypeError. + if (request.mode !== 'same-origin' && request.mode !== 'cors') { + throw new TypeError( + 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' + ) + } + + // 3. Set this’s request’s use-CORS-preflight flag. + request.useCORSPreflightFlag = true + } + + // 39. Let finalBody be inputOrInitBody. + let finalBody = inputOrInitBody + + // 40. If initBody is null and inputBody is non-null, then: + if (initBody == null && inputBody != null) { + // 1. If input is unusable, then throw a TypeError. + if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) { + throw new TypeError( + 'Cannot construct a Request with a Request object that has already been used.' + ) + } + + // 2. Set finalBody to the result of creating a proxy for inputBody. + if (!TransformStream) { + TransformStream = (__nccwpck_require__(3774).TransformStream) + } + + // https://streams.spec.whatwg.org/#readablestream-create-a-proxy + const identityTransform = new TransformStream() + inputBody.stream.pipeThrough(identityTransform) + finalBody = { + source: inputBody.source, + length: inputBody.length, + stream: identityTransform.readable + } + } + + // 41. Set this’s request’s body to finalBody. + this[kState].body = finalBody + } + + // Returns request’s HTTP method, which is "GET" by default. + get method () { + webidl.brandCheck(this, Request) + + // The method getter steps are to return this’s request’s method. + return this[kState].method + } + + // Returns the URL of request as a string. + get url () { + webidl.brandCheck(this, Request) + + // The url getter steps are to return this’s request’s URL, serialized. + return URLSerializer(this[kState].url) + } + + // Returns a Headers object consisting of the headers associated with request. + // Note that headers added in the network layer by the user agent will not + // be accounted for in this object, e.g., the "Host" header. + get headers () { + webidl.brandCheck(this, Request) + + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } + + // Returns the kind of resource requested by request, e.g., "document" + // or "script". + get destination () { + webidl.brandCheck(this, Request) + + // The destination getter are to return this’s request’s destination. + return this[kState].destination + } + + // Returns the referrer of request. Its value can be a same-origin URL if + // explicitly set in init, the empty string to indicate no referrer, and + // "about:client" when defaulting to the global’s default. This is used + // during fetching to determine the value of the `Referer` header of the + // request being made. + get referrer () { + webidl.brandCheck(this, Request) + + // 1. If this’s request’s referrer is "no-referrer", then return the + // empty string. + if (this[kState].referrer === 'no-referrer') { + return '' + } + + // 2. If this’s request’s referrer is "client", then return + // "about:client". + if (this[kState].referrer === 'client') { + return 'about:client' + } + + // Return this’s request’s referrer, serialized. + return this[kState].referrer.toString() + } + + // Returns the referrer policy associated with request. + // This is used during fetching to compute the value of the request’s + // referrer. + get referrerPolicy () { + webidl.brandCheck(this, Request) + + // The referrerPolicy getter steps are to return this’s request’s referrer policy. + return this[kState].referrerPolicy + } + + // Returns the mode associated with request, which is a string indicating + // whether the request will use CORS, or will be restricted to same-origin + // URLs. + get mode () { + webidl.brandCheck(this, Request) + + // The mode getter steps are to return this’s request’s mode. + return this[kState].mode + } + + // Returns the credentials mode associated with request, + // which is a string indicating whether credentials will be sent with the + // request always, never, or only when sent to a same-origin URL. + get credentials () { + // The credentials getter steps are to return this’s request’s credentials mode. + return this[kState].credentials + } + + // Returns the cache mode associated with request, + // which is a string indicating how the request will + // interact with the browser’s cache when fetching. + get cache () { + webidl.brandCheck(this, Request) + + // The cache getter steps are to return this’s request’s cache mode. + return this[kState].cache + } + + // Returns the redirect mode associated with request, + // which is a string indicating how redirects for the + // request will be handled during fetching. A request + // will follow redirects by default. + get redirect () { + webidl.brandCheck(this, Request) + + // The redirect getter steps are to return this’s request’s redirect mode. + return this[kState].redirect + } + + // Returns request’s subresource integrity metadata, which is a + // cryptographic hash of the resource being fetched. Its value + // consists of multiple hashes separated by whitespace. [SRI] + get integrity () { + webidl.brandCheck(this, Request) + + // The integrity getter steps are to return this’s request’s integrity + // metadata. + return this[kState].integrity + } + + // Returns a boolean indicating whether or not request can outlive the + // global in which it was created. + get keepalive () { + webidl.brandCheck(this, Request) + + // The keepalive getter steps are to return this’s request’s keepalive. + return this[kState].keepalive + } + + // Returns a boolean indicating whether or not request is for a reload + // navigation. + get isReloadNavigation () { + webidl.brandCheck(this, Request) + + // The isReloadNavigation getter steps are to return true if this’s + // request’s reload-navigation flag is set; otherwise false. + return this[kState].reloadNavigation + } + + // Returns a boolean indicating whether or not request is for a history + // navigation (a.k.a. back-foward navigation). + get isHistoryNavigation () { + webidl.brandCheck(this, Request) + + // The isHistoryNavigation getter steps are to return true if this’s request’s + // history-navigation flag is set; otherwise false. + return this[kState].historyNavigation + } + + // Returns the signal associated with request, which is an AbortSignal + // object indicating whether or not request has been aborted, and its + // abort event handler. + get signal () { + webidl.brandCheck(this, Request) + + // The signal getter steps are to return this’s signal. + return this[kSignal] + } + + get body () { + webidl.brandCheck(this, Request) + + return this[kState].body ? this[kState].body.stream : null + } + + get bodyUsed () { + webidl.brandCheck(this, Request) + + return !!this[kState].body && util.isDisturbed(this[kState].body.stream) + } + + get duplex () { + webidl.brandCheck(this, Request) + + return 'half' + } + + // Returns a clone of request. + clone () { + webidl.brandCheck(this, Request) + + // 1. If this is unusable, then throw a TypeError. + if (this.bodyUsed || this.body?.locked) { + throw new TypeError('unusable') + } + + // 2. Let clonedRequest be the result of cloning this’s request. + const clonedRequest = cloneRequest(this[kState]) + + // 3. Let clonedRequestObject be the result of creating a Request object, + // given clonedRequest, this’s headers’s guard, and this’s relevant Realm. + const clonedRequestObject = new Request(kConstruct) + clonedRequestObject[kState] = clonedRequest + clonedRequestObject[kRealm] = this[kRealm] + clonedRequestObject[kHeaders] = new Headers(kConstruct) + clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList + clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard] + clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm] + + // 4. Make clonedRequestObject’s signal follow this’s signal. + const ac = new AbortController() + if (this.signal.aborted) { + ac.abort(this.signal.reason) + } else { + util.addAbortListener( + this.signal, + () => { + ac.abort(this.signal.reason) + } + ) + } + clonedRequestObject[kSignal] = ac.signal + + // 4. Return clonedRequestObject. + return clonedRequestObject + } +} + +mixinBody(Request) + +function makeRequest (init) { + // https://fetch.spec.whatwg.org/#requests + const request = { + method: 'GET', + localURLsOnly: false, + unsafeRequest: false, + body: null, + client: null, + reservedClient: null, + replacesClientId: '', + window: 'client', + keepalive: false, + serviceWorkers: 'all', + initiator: '', + destination: '', + priority: null, + origin: 'client', + policyContainer: 'client', + referrer: 'client', + referrerPolicy: '', + mode: 'no-cors', + useCORSPreflightFlag: false, + credentials: 'same-origin', + useCredentials: false, + cache: 'default', + redirect: 'follow', + integrity: '', + cryptoGraphicsNonceMetadata: '', + parserMetadata: '', + reloadNavigation: false, + historyNavigation: false, + userActivation: false, + taintedOrigin: false, + redirectCount: 0, + responseTainting: 'basic', + preventNoCacheCacheControlHeaderModification: false, + done: false, + timingAllowFailed: false, + ...init, + headersList: init.headersList + ? new HeadersList(init.headersList) + : new HeadersList() + } + request.url = request.urlList[0] + return request +} + +// https://fetch.spec.whatwg.org/#concept-request-clone +function cloneRequest (request) { + // To clone a request request, run these steps: + + // 1. Let newRequest be a copy of request, except for its body. + const newRequest = makeRequest({ ...request, body: null }) + + // 2. If request’s body is non-null, set newRequest’s body to the + // result of cloning request’s body. + if (request.body != null) { + newRequest.body = cloneBody(request.body) + } + + // 3. Return newRequest. + return newRequest +} + +Object.defineProperties(Request.prototype, { + method: kEnumerableProperty, + url: kEnumerableProperty, + headers: kEnumerableProperty, + redirect: kEnumerableProperty, + clone: kEnumerableProperty, + signal: kEnumerableProperty, + duplex: kEnumerableProperty, + destination: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + isHistoryNavigation: kEnumerableProperty, + isReloadNavigation: kEnumerableProperty, + keepalive: kEnumerableProperty, + integrity: kEnumerableProperty, + cache: kEnumerableProperty, + credentials: kEnumerableProperty, + attribute: kEnumerableProperty, + referrerPolicy: kEnumerableProperty, + referrer: kEnumerableProperty, + mode: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Request', + configurable: true + } +}) + +webidl.converters.Request = webidl.interfaceConverter( + Request +) + +// https://fetch.spec.whatwg.org/#requestinfo +webidl.converters.RequestInfo = function (V) { + if (typeof V === 'string') { + return webidl.converters.USVString(V) + } + + if (V instanceof Request) { + return webidl.converters.Request(V) + } + + return webidl.converters.USVString(V) +} + +webidl.converters.AbortSignal = webidl.interfaceConverter( + AbortSignal +) + +// https://fetch.spec.whatwg.org/#requestinit +webidl.converters.RequestInit = webidl.dictionaryConverter([ + { + key: 'method', + converter: webidl.converters.ByteString + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + }, + { + key: 'body', + converter: webidl.nullableConverter( + webidl.converters.BodyInit + ) + }, + { + key: 'referrer', + converter: webidl.converters.USVString + }, + { + key: 'referrerPolicy', + converter: webidl.converters.DOMString, + // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy + allowedValues: referrerPolicy + }, + { + key: 'mode', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#concept-request-mode + allowedValues: requestMode + }, + { + key: 'credentials', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcredentials + allowedValues: requestCredentials + }, + { + key: 'cache', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcache + allowedValues: requestCache + }, + { + key: 'redirect', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestredirect + allowedValues: requestRedirect + }, + { + key: 'integrity', + converter: webidl.converters.DOMString + }, + { + key: 'keepalive', + converter: webidl.converters.boolean + }, + { + key: 'signal', + converter: webidl.nullableConverter( + (signal) => webidl.converters.AbortSignal( + signal, + { strict: false } + ) + ) + }, + { + key: 'window', + converter: webidl.converters.any + }, + { + key: 'duplex', + converter: webidl.converters.DOMString, + allowedValues: requestDuplex + } +]) + +module.exports = { Request, makeRequest } + + +/***/ }), + +/***/ 3258: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Headers, HeadersList, fill } = __nccwpck_require__(6203) +const { extractBody, cloneBody, mixinBody } = __nccwpck_require__(3893) +const util = __nccwpck_require__(162) +const { kEnumerableProperty } = util +const { + isValidReasonPhrase, + isCancelled, + isAborted, + isBlobLike, + serializeJavascriptValueToJSONString, + isErrorLike, + isomorphicEncode +} = __nccwpck_require__(7189) +const { + redirectStatusSet, + nullBodyStatus, + DOMException +} = __nccwpck_require__(1356) +const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(4236) +const { webidl } = __nccwpck_require__(7472) +const { FormData } = __nccwpck_require__(3639) +const { getGlobalOrigin } = __nccwpck_require__(2498) +const { URLSerializer } = __nccwpck_require__(5892) +const { kHeadersList, kConstruct } = __nccwpck_require__(249) +const assert = __nccwpck_require__(2613) +const { types } = __nccwpck_require__(9023) + +const ReadableStream = globalThis.ReadableStream || (__nccwpck_require__(3774).ReadableStream) +const textEncoder = new TextEncoder('utf-8') + +// https://fetch.spec.whatwg.org/#response-class +class Response { + // Creates network error Response. + static error () { + // TODO + const relevantRealm = { settingsObject: {} } + + // The static error() method steps are to return the result of creating a + // Response object, given a new network error, "immutable", and this’s + // relevant Realm. + const responseObject = new Response() + responseObject[kState] = makeNetworkError() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm + return responseObject + } + + // https://fetch.spec.whatwg.org/#dom-response-json + static json (data, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' }) + + if (init !== null) { + init = webidl.converters.ResponseInit(init) + } + + // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data. + const bytes = textEncoder.encode( + serializeJavascriptValueToJSONString(data) + ) + + // 2. Let body be the result of extracting bytes. + const body = extractBody(bytes) + + // 3. Let responseObject be the result of creating a Response object, given a new response, + // "response", and this’s relevant Realm. + const relevantRealm = { settingsObject: {} } + const responseObject = new Response() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kGuard] = 'response' + responseObject[kHeaders][kRealm] = relevantRealm + + // 4. Perform initialize a response given responseObject, init, and (body, "application/json"). + initializeResponse(responseObject, init, { body: body[0], type: 'application/json' }) + + // 5. Return responseObject. + return responseObject + } + + // Creates a redirect Response that redirects to url with status status. + static redirect (url, status = 302) { + const relevantRealm = { settingsObject: {} } + + webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' }) + + url = webidl.converters.USVString(url) + status = webidl.converters['unsigned short'](status) + + // 1. Let parsedURL be the result of parsing url with current settings + // object’s API base URL. + // 2. If parsedURL is failure, then throw a TypeError. + // TODO: base-URL? + let parsedURL + try { + parsedURL = new URL(url, getGlobalOrigin()) + } catch (err) { + throw Object.assign(new TypeError('Failed to parse URL from ' + url), { + cause: err + }) + } + + // 3. If status is not a redirect status, then throw a RangeError. + if (!redirectStatusSet.has(status)) { + throw new RangeError('Invalid status code ' + status) + } + + // 4. Let responseObject be the result of creating a Response object, + // given a new response, "immutable", and this’s relevant Realm. + const responseObject = new Response() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm + + // 5. Set responseObject’s response’s status to status. + responseObject[kState].status = status + + // 6. Let value be parsedURL, serialized and isomorphic encoded. + const value = isomorphicEncode(URLSerializer(parsedURL)) + + // 7. Append `Location`/value to responseObject’s response’s header list. + responseObject[kState].headersList.append('location', value) + + // 8. Return responseObject. + return responseObject + } + + // https://fetch.spec.whatwg.org/#dom-response + constructor (body = null, init = {}) { + if (body !== null) { + body = webidl.converters.BodyInit(body) + } + + init = webidl.converters.ResponseInit(init) + + // TODO + this[kRealm] = { settingsObject: {} } + + // 1. Set this’s response to a new response. + this[kState] = makeResponse({}) + + // 2. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is this’s response’s header list and guard + // is "response". + this[kHeaders] = new Headers(kConstruct) + this[kHeaders][kGuard] = 'response' + this[kHeaders][kHeadersList] = this[kState].headersList + this[kHeaders][kRealm] = this[kRealm] + + // 3. Let bodyWithType be null. + let bodyWithType = null + + // 4. If body is non-null, then set bodyWithType to the result of extracting body. + if (body != null) { + const [extractedBody, type] = extractBody(body) + bodyWithType = { body: extractedBody, type } + } + + // 5. Perform initialize a response given this, init, and bodyWithType. + initializeResponse(this, init, bodyWithType) + } + + // Returns response’s type, e.g., "cors". + get type () { + webidl.brandCheck(this, Response) + + // The type getter steps are to return this’s response’s type. + return this[kState].type + } + + // Returns response’s URL, if it has one; otherwise the empty string. + get url () { + webidl.brandCheck(this, Response) + + const urlList = this[kState].urlList + + // The url getter steps are to return the empty string if this’s + // response’s URL is null; otherwise this’s response’s URL, + // serialized with exclude fragment set to true. + const url = urlList[urlList.length - 1] ?? null + + if (url === null) { + return '' + } + + return URLSerializer(url, true) + } + + // Returns whether response was obtained through a redirect. + get redirected () { + webidl.brandCheck(this, Response) + + // The redirected getter steps are to return true if this’s response’s URL + // list has more than one item; otherwise false. + return this[kState].urlList.length > 1 + } + + // Returns response’s status. + get status () { + webidl.brandCheck(this, Response) + + // The status getter steps are to return this’s response’s status. + return this[kState].status + } + + // Returns whether response’s status is an ok status. + get ok () { + webidl.brandCheck(this, Response) + + // The ok getter steps are to return true if this’s response’s status is an + // ok status; otherwise false. + return this[kState].status >= 200 && this[kState].status <= 299 + } + + // Returns response’s status message. + get statusText () { + webidl.brandCheck(this, Response) + + // The statusText getter steps are to return this’s response’s status + // message. + return this[kState].statusText + } + + // Returns response’s headers as Headers. + get headers () { + webidl.brandCheck(this, Response) + + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } + + get body () { + webidl.brandCheck(this, Response) + + return this[kState].body ? this[kState].body.stream : null + } + + get bodyUsed () { + webidl.brandCheck(this, Response) + + return !!this[kState].body && util.isDisturbed(this[kState].body.stream) + } + + // Returns a clone of response. + clone () { + webidl.brandCheck(this, Response) + + // 1. If this is unusable, then throw a TypeError. + if (this.bodyUsed || (this.body && this.body.locked)) { + throw webidl.errors.exception({ + header: 'Response.clone', + message: 'Body has already been consumed.' + }) + } + + // 2. Let clonedResponse be the result of cloning this’s response. + const clonedResponse = cloneResponse(this[kState]) + + // 3. Return the result of creating a Response object, given + // clonedResponse, this’s headers’s guard, and this’s relevant Realm. + const clonedResponseObject = new Response() + clonedResponseObject[kState] = clonedResponse + clonedResponseObject[kRealm] = this[kRealm] + clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList + clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard] + clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm] + + return clonedResponseObject + } +} + +mixinBody(Response) + +Object.defineProperties(Response.prototype, { + type: kEnumerableProperty, + url: kEnumerableProperty, + status: kEnumerableProperty, + ok: kEnumerableProperty, + redirected: kEnumerableProperty, + statusText: kEnumerableProperty, + headers: kEnumerableProperty, + clone: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Response', + configurable: true + } +}) + +Object.defineProperties(Response, { + json: kEnumerableProperty, + redirect: kEnumerableProperty, + error: kEnumerableProperty +}) + +// https://fetch.spec.whatwg.org/#concept-response-clone +function cloneResponse (response) { + // To clone a response response, run these steps: + + // 1. If response is a filtered response, then return a new identical + // filtered response whose internal response is a clone of response’s + // internal response. + if (response.internalResponse) { + return filterResponse( + cloneResponse(response.internalResponse), + response.type + ) + } + + // 2. Let newResponse be a copy of response, except for its body. + const newResponse = makeResponse({ ...response, body: null }) + + // 3. If response’s body is non-null, then set newResponse’s body to the + // result of cloning response’s body. + if (response.body != null) { + newResponse.body = cloneBody(response.body) + } + + // 4. Return newResponse. + return newResponse +} + +function makeResponse (init) { + return { + aborted: false, + rangeRequested: false, + timingAllowPassed: false, + requestIncludesCredentials: false, + type: 'default', + status: 200, + timingInfo: null, + cacheState: '', + statusText: '', + ...init, + headersList: init.headersList + ? new HeadersList(init.headersList) + : new HeadersList(), + urlList: init.urlList ? [...init.urlList] : [] + } +} + +function makeNetworkError (reason) { + const isError = isErrorLike(reason) + return makeResponse({ + type: 'error', + status: 0, + error: isError + ? reason + : new Error(reason ? String(reason) : reason), + aborted: reason && reason.name === 'AbortError' + }) +} + +function makeFilteredResponse (response, state) { + state = { + internalResponse: response, + ...state + } + + return new Proxy(response, { + get (target, p) { + return p in state ? state[p] : target[p] + }, + set (target, p, value) { + assert(!(p in state)) + target[p] = value + return true + } + }) +} + +// https://fetch.spec.whatwg.org/#concept-filtered-response +function filterResponse (response, type) { + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (type === 'basic') { + // A basic filtered response is a filtered response whose type is "basic" + // and header list excludes any headers in internal response’s header list + // whose name is a forbidden response-header name. + + // Note: undici does not implement forbidden response-header names + return makeFilteredResponse(response, { + type: 'basic', + headersList: response.headersList + }) + } else if (type === 'cors') { + // A CORS filtered response is a filtered response whose type is "cors" + // and header list excludes any headers in internal response’s header + // list whose name is not a CORS-safelisted response-header name, given + // internal response’s CORS-exposed header-name list. + + // Note: undici does not implement CORS-safelisted response-header names + return makeFilteredResponse(response, { + type: 'cors', + headersList: response.headersList + }) + } else if (type === 'opaque') { + // An opaque filtered response is a filtered response whose type is + // "opaque", URL list is the empty list, status is 0, status message + // is the empty byte sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaque', + urlList: Object.freeze([]), + status: 0, + statusText: '', + body: null + }) + } else if (type === 'opaqueredirect') { + // An opaque-redirect filtered response is a filtered response whose type + // is "opaqueredirect", status is 0, status message is the empty byte + // sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaqueredirect', + status: 0, + statusText: '', + headersList: [], + body: null + }) + } else { + assert(false) + } +} + +// https://fetch.spec.whatwg.org/#appropriate-network-error +function makeAppropriateNetworkError (fetchParams, err = null) { + // 1. Assert: fetchParams is canceled. + assert(isCancelled(fetchParams)) + + // 2. Return an aborted network error if fetchParams is aborted; + // otherwise return a network error. + return isAborted(fetchParams) + ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err })) + : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err })) +} + +// https://whatpr.org/fetch/1392.html#initialize-a-response +function initializeResponse (response, init, body) { + // 1. If init["status"] is not in the range 200 to 599, inclusive, then + // throw a RangeError. + if (init.status !== null && (init.status < 200 || init.status > 599)) { + throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.') + } + + // 2. If init["statusText"] does not match the reason-phrase token production, + // then throw a TypeError. + if ('statusText' in init && init.statusText != null) { + // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2: + // reason-phrase = *( HTAB / SP / VCHAR / obs-text ) + if (!isValidReasonPhrase(String(init.statusText))) { + throw new TypeError('Invalid statusText') + } + } + + // 3. Set response’s response’s status to init["status"]. + if ('status' in init && init.status != null) { + response[kState].status = init.status + } + + // 4. Set response’s response’s status message to init["statusText"]. + if ('statusText' in init && init.statusText != null) { + response[kState].statusText = init.statusText + } + + // 5. If init["headers"] exists, then fill response’s headers with init["headers"]. + if ('headers' in init && init.headers != null) { + fill(response[kHeaders], init.headers) + } + + // 6. If body was given, then: + if (body) { + // 1. If response's status is a null body status, then throw a TypeError. + if (nullBodyStatus.includes(response.status)) { + throw webidl.errors.exception({ + header: 'Response constructor', + message: 'Invalid response status code ' + response.status + }) + } + + // 2. Set response's body to body's body. + response[kState].body = body.body + + // 3. If body's type is non-null and response's header list does not contain + // `Content-Type`, then append (`Content-Type`, body's type) to response's header list. + if (body.type != null && !response[kState].headersList.contains('Content-Type')) { + response[kState].headersList.append('content-type', body.type) + } + } +} + +webidl.converters.ReadableStream = webidl.interfaceConverter( + ReadableStream +) + +webidl.converters.FormData = webidl.interfaceConverter( + FormData +) + +webidl.converters.URLSearchParams = webidl.interfaceConverter( + URLSearchParams +) + +// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit +webidl.converters.XMLHttpRequestBodyInit = function (V) { + if (typeof V === 'string') { + return webidl.converters.USVString(V) + } + + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } + + if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) { + return webidl.converters.BufferSource(V) + } + + if (util.isFormDataLike(V)) { + return webidl.converters.FormData(V, { strict: false }) + } + + if (V instanceof URLSearchParams) { + return webidl.converters.URLSearchParams(V) + } + + return webidl.converters.DOMString(V) +} + +// https://fetch.spec.whatwg.org/#bodyinit +webidl.converters.BodyInit = function (V) { + if (V instanceof ReadableStream) { + return webidl.converters.ReadableStream(V) + } + + // Note: the spec doesn't include async iterables, + // this is an undici extension. + if (V?.[Symbol.asyncIterator]) { + return V + } + + return webidl.converters.XMLHttpRequestBodyInit(V) +} + +webidl.converters.ResponseInit = webidl.dictionaryConverter([ + { + key: 'status', + converter: webidl.converters['unsigned short'], + defaultValue: 200 + }, + { + key: 'statusText', + converter: webidl.converters.ByteString, + defaultValue: '' + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + } +]) + +module.exports = { + makeNetworkError, + makeResponse, + makeAppropriateNetworkError, + filterResponse, + Response, + cloneResponse +} + + +/***/ }), + +/***/ 4236: +/***/ ((module) => { + + + +module.exports = { + kUrl: Symbol('url'), + kHeaders: Symbol('headers'), + kSignal: Symbol('signal'), + kState: Symbol('state'), + kGuard: Symbol('guard'), + kRealm: Symbol('realm') +} + + +/***/ }), + +/***/ 7189: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = __nccwpck_require__(1356) +const { getGlobalOrigin } = __nccwpck_require__(2498) +const { performance } = __nccwpck_require__(2987) +const { isBlobLike, toUSVString, ReadableStreamFrom } = __nccwpck_require__(162) +const assert = __nccwpck_require__(2613) +const { isUint8Array } = __nccwpck_require__(8253) + +let supportedHashes = [] + +// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable +/** @type {import('crypto')|undefined} */ +let crypto + +try { + crypto = __nccwpck_require__(6982) + const possibleRelevantHashes = ['sha256', 'sha384', 'sha512'] + supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)) +/* c8 ignore next 3 */ +} catch { +} + +function responseURL (response) { + // https://fetch.spec.whatwg.org/#responses + // A response has an associated URL. It is a pointer to the last URL + // in response’s URL list and null if response’s URL list is empty. + const urlList = response.urlList + const length = urlList.length + return length === 0 ? null : urlList[length - 1].toString() +} + +// https://fetch.spec.whatwg.org/#concept-response-location-url +function responseLocationURL (response, requestFragment) { + // 1. If response’s status is not a redirect status, then return null. + if (!redirectStatusSet.has(response.status)) { + return null + } + + // 2. Let location be the result of extracting header list values given + // `Location` and response’s header list. + let location = response.headersList.get('location') + + // 3. If location is a header value, then set location to the result of + // parsing location with response’s URL. + if (location !== null && isValidHeaderValue(location)) { + location = new URL(location, responseURL(response)) + } + + // 4. If location is a URL whose fragment is null, then set location’s + // fragment to requestFragment. + if (location && !location.hash) { + location.hash = requestFragment + } + + // 5. Return location. + return location +} + +/** @returns {URL} */ +function requestCurrentURL (request) { + return request.urlList[request.urlList.length - 1] +} + +function requestBadPort (request) { + // 1. Let url be request’s current URL. + const url = requestCurrentURL(request) + + // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port, + // then return blocked. + if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { + return 'blocked' + } + + // 3. Return allowed. + return 'allowed' +} + +function isErrorLike (object) { + return object instanceof Error || ( + object?.constructor?.name === 'Error' || + object?.constructor?.name === 'DOMException' + ) +} + +// Check whether |statusText| is a ByteString and +// matches the Reason-Phrase token production. +// RFC 2616: https://tools.ietf.org/html/rfc2616 +// RFC 7230: https://tools.ietf.org/html/rfc7230 +// "reason-phrase = *( HTAB / SP / VCHAR / obs-text )" +// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116 +function isValidReasonPhrase (statusText) { + for (let i = 0; i < statusText.length; ++i) { + const c = statusText.charCodeAt(i) + if ( + !( + ( + c === 0x09 || // HTAB + (c >= 0x20 && c <= 0x7e) || // SP / VCHAR + (c >= 0x80 && c <= 0xff) + ) // obs-text + ) + ) { + return false + } + } + return true +} + +/** + * @see https://tools.ietf.org/html/rfc7230#section-3.2.6 + * @param {number} c + */ +function isTokenCharCode (c) { + switch (c) { + case 0x22: + case 0x28: + case 0x29: + case 0x2c: + case 0x2f: + case 0x3a: + case 0x3b: + case 0x3c: + case 0x3d: + case 0x3e: + case 0x3f: + case 0x40: + case 0x5b: + case 0x5c: + case 0x5d: + case 0x7b: + case 0x7d: + // DQUOTE and "(),/:;<=>?@[\]{}" + return false + default: + // VCHAR %x21-7E + return c >= 0x21 && c <= 0x7e + } +} + +/** + * @param {string} characters + */ +function isValidHTTPToken (characters) { + if (characters.length === 0) { + return false + } + for (let i = 0; i < characters.length; ++i) { + if (!isTokenCharCode(characters.charCodeAt(i))) { + return false + } + } + return true +} + +/** + * @see https://fetch.spec.whatwg.org/#header-name + * @param {string} potentialValue + */ +function isValidHeaderName (potentialValue) { + return isValidHTTPToken(potentialValue) +} + +/** + * @see https://fetch.spec.whatwg.org/#header-value + * @param {string} potentialValue + */ +function isValidHeaderValue (potentialValue) { + // - Has no leading or trailing HTTP tab or space bytes. + // - Contains no 0x00 (NUL) or HTTP newline bytes. + if ( + potentialValue.startsWith('\t') || + potentialValue.startsWith(' ') || + potentialValue.endsWith('\t') || + potentialValue.endsWith(' ') + ) { + return false + } + + if ( + potentialValue.includes('\0') || + potentialValue.includes('\r') || + potentialValue.includes('\n') + ) { + return false + } + + return true +} + +// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect +function setRequestReferrerPolicyOnRedirect (request, actualResponse) { + // Given a request request and a response actualResponse, this algorithm + // updates request’s referrer policy according to the Referrer-Policy + // header (if any) in actualResponse. + + // 1. Let policy be the result of executing § 8.1 Parse a referrer policy + // from a Referrer-Policy header on actualResponse. + + // 8.1 Parse a referrer policy from a Referrer-Policy header + // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list. + const { headersList } = actualResponse + // 2. Let policy be the empty string. + // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token. + // 4. Return policy. + const policyHeader = (headersList.get('referrer-policy') ?? '').split(',') + + // Note: As the referrer-policy can contain multiple policies + // separated by comma, we need to loop through all of them + // and pick the first valid one. + // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy + let policy = '' + if (policyHeader.length > 0) { + // The right-most policy takes precedence. + // The left-most policy is the fallback. + for (let i = policyHeader.length; i !== 0; i--) { + const token = policyHeader[i - 1].trim() + if (referrerPolicyTokens.has(token)) { + policy = token + break + } + } + } + + // 2. If policy is not the empty string, then set request’s referrer policy to policy. + if (policy !== '') { + request.referrerPolicy = policy + } +} + +// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check +function crossOriginResourcePolicyCheck () { + // TODO + return 'allowed' +} + +// https://fetch.spec.whatwg.org/#concept-cors-check +function corsCheck () { + // TODO + return 'success' +} + +// https://fetch.spec.whatwg.org/#concept-tao-check +function TAOCheck () { + // TODO + return 'success' +} + +function appendFetchMetadata (httpRequest) { + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header + // TODO + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header + + // 1. Assert: r’s url is a potentially trustworthy URL. + // TODO + + // 2. Let header be a Structured Header whose value is a token. + let header = null + + // 3. Set header’s value to r’s mode. + header = httpRequest.mode + + // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list. + httpRequest.headersList.set('sec-fetch-mode', header) + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header + // TODO + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header + // TODO +} + +// https://fetch.spec.whatwg.org/#append-a-request-origin-header +function appendRequestOriginHeader (request) { + // 1. Let serializedOrigin be the result of byte-serializing a request origin with request. + let serializedOrigin = request.origin + + // 2. If request’s response tainting is "cors" or request’s mode is "websocket", then append (`Origin`, serializedOrigin) to request’s header list. + if (request.responseTainting === 'cors' || request.mode === 'websocket') { + if (serializedOrigin) { + request.headersList.append('origin', serializedOrigin) + } + + // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then: + } else if (request.method !== 'GET' && request.method !== 'HEAD') { + // 1. Switch on request’s referrer policy: + switch (request.referrerPolicy) { + case 'no-referrer': + // Set serializedOrigin to `null`. + serializedOrigin = null + break + case 'no-referrer-when-downgrade': + case 'strict-origin': + case 'strict-origin-when-cross-origin': + // If request’s origin is a tuple origin, its scheme is "https", and request’s current URL’s scheme is not "https", then set serializedOrigin to `null`. + if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { + serializedOrigin = null + } + break + case 'same-origin': + // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`. + if (!sameOrigin(request, requestCurrentURL(request))) { + serializedOrigin = null + } + break + default: + // Do nothing. + } + + if (serializedOrigin) { + // 2. Append (`Origin`, serializedOrigin) to request’s header list. + request.headersList.append('origin', serializedOrigin) + } + } +} + +function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) { + // TODO + return performance.now() +} + +// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info +function createOpaqueTimingInfo (timingInfo) { + return { + startTime: timingInfo.startTime ?? 0, + redirectStartTime: 0, + redirectEndTime: 0, + postRedirectStartTime: timingInfo.startTime ?? 0, + finalServiceWorkerStartTime: 0, + finalNetworkResponseStartTime: 0, + finalNetworkRequestStartTime: 0, + endTime: 0, + encodedBodySize: 0, + decodedBodySize: 0, + finalConnectionTimingInfo: null + } +} + +// https://html.spec.whatwg.org/multipage/origin.html#policy-container +function makePolicyContainer () { + // Note: the fetch spec doesn't make use of embedder policy or CSP list + return { + referrerPolicy: 'strict-origin-when-cross-origin' + } +} + +// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container +function clonePolicyContainer (policyContainer) { + return { + referrerPolicy: policyContainer.referrerPolicy + } +} + +// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer +function determineRequestsReferrer (request) { + // 1. Let policy be request's referrer policy. + const policy = request.referrerPolicy + + // Note: policy cannot (shouldn't) be null or an empty string. + assert(policy) + + // 2. Let environment be request’s client. + + let referrerSource = null + + // 3. Switch on request’s referrer: + if (request.referrer === 'client') { + // Note: node isn't a browser and doesn't implement document/iframes, + // so we bypass this step and replace it with our own. + + const globalOrigin = getGlobalOrigin() + + if (!globalOrigin || globalOrigin.origin === 'null') { + return 'no-referrer' + } + + // note: we need to clone it as it's mutated + referrerSource = new URL(globalOrigin) + } else if (request.referrer instanceof URL) { + // Let referrerSource be request’s referrer. + referrerSource = request.referrer + } + + // 4. Let request’s referrerURL be the result of stripping referrerSource for + // use as a referrer. + let referrerURL = stripURLForReferrer(referrerSource) + + // 5. Let referrerOrigin be the result of stripping referrerSource for use as + // a referrer, with the origin-only flag set to true. + const referrerOrigin = stripURLForReferrer(referrerSource, true) + + // 6. If the result of serializing referrerURL is a string whose length is + // greater than 4096, set referrerURL to referrerOrigin. + if (referrerURL.toString().length > 4096) { + referrerURL = referrerOrigin + } + + const areSameOrigin = sameOrigin(request, referrerURL) + const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && + !isURLPotentiallyTrustworthy(request.url) + + // 8. Execute the switch statements corresponding to the value of policy: + switch (policy) { + case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true) + case 'unsafe-url': return referrerURL + case 'same-origin': + return areSameOrigin ? referrerOrigin : 'no-referrer' + case 'origin-when-cross-origin': + return areSameOrigin ? referrerURL : referrerOrigin + case 'strict-origin-when-cross-origin': { + const currentURL = requestCurrentURL(request) + + // 1. If the origin of referrerURL and the origin of request’s current + // URL are the same, then return referrerURL. + if (sameOrigin(referrerURL, currentURL)) { + return referrerURL + } + + // 2. If referrerURL is a potentially trustworthy URL and request’s + // current URL is not a potentially trustworthy URL, then return no + // referrer. + if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { + return 'no-referrer' + } + + // 3. Return referrerOrigin. + return referrerOrigin + } + case 'strict-origin': + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + case 'no-referrer-when-downgrade': + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + + default: + return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin + } +} + +/** + * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url + * @param {URL} url + * @param {boolean|undefined} originOnly + */ +function stripURLForReferrer (url, originOnly) { + // 1. Assert: url is a URL. + assert(url instanceof URL) + + // 2. If url’s scheme is a local scheme, then return no referrer. + if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') { + return 'no-referrer' + } + + // 3. Set url’s username to the empty string. + url.username = '' + + // 4. Set url’s password to the empty string. + url.password = '' + + // 5. Set url’s fragment to null. + url.hash = '' + + // 6. If the origin-only flag is true, then: + if (originOnly) { + // 1. Set url’s path to « the empty string ». + url.pathname = '' + + // 2. Set url’s query to null. + url.search = '' + } + + // 7. Return url. + return url +} + +function isURLPotentiallyTrustworthy (url) { + if (!(url instanceof URL)) { + return false + } + + // If child of about, return true + if (url.href === 'about:blank' || url.href === 'about:srcdoc') { + return true + } + + // If scheme is data, return true + if (url.protocol === 'data:') return true + + // If file, return true + if (url.protocol === 'file:') return true + + return isOriginPotentiallyTrustworthy(url.origin) + + function isOriginPotentiallyTrustworthy (origin) { + // If origin is explicitly null, return false + if (origin == null || origin === 'null') return false + + const originAsURL = new URL(origin) + + // If secure, return true + if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') { + return true + } + + // If localhost or variants, return true + if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || + (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) || + (originAsURL.hostname.endsWith('.localhost'))) { + return true + } + + // If any other, return false + return false + } +} + +/** + * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist + * @param {Uint8Array} bytes + * @param {string} metadataList + */ +function bytesMatch (bytes, metadataList) { + // If node is not built with OpenSSL support, we cannot check + // a request's integrity, so allow it by default (the spec will + // allow requests if an invalid hash is given, as precedence). + /* istanbul ignore if: only if node is built with --without-ssl */ + if (crypto === undefined) { + return true + } + + // 1. Let parsedMetadata be the result of parsing metadataList. + const parsedMetadata = parseMetadata(metadataList) + + // 2. If parsedMetadata is no metadata, return true. + if (parsedMetadata === 'no metadata') { + return true + } + + // 3. If response is not eligible for integrity validation, return false. + // TODO + + // 4. If parsedMetadata is the empty set, return true. + if (parsedMetadata.length === 0) { + return true + } + + // 5. Let metadata be the result of getting the strongest + // metadata from parsedMetadata. + const strongest = getStrongestMetadata(parsedMetadata) + const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest) + + // 6. For each item in metadata: + for (const item of metadata) { + // 1. Let algorithm be the alg component of item. + const algorithm = item.algo + + // 2. Let expectedValue be the val component of item. + const expectedValue = item.hash + + // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e + // "be liberal with padding". This is annoying, and it's not even in the spec. + + // 3. Let actualValue be the result of applying algorithm to bytes. + let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64') + + if (actualValue[actualValue.length - 1] === '=') { + if (actualValue[actualValue.length - 2] === '=') { + actualValue = actualValue.slice(0, -2) + } else { + actualValue = actualValue.slice(0, -1) + } + } + + // 4. If actualValue is a case-sensitive match for expectedValue, + // return true. + if (compareBase64Mixed(actualValue, expectedValue)) { + return true + } + } + + // 7. Return false. + return false +} + +// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options +// https://www.w3.org/TR/CSP2/#source-list-syntax +// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1 +const parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i + +/** + * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata + * @param {string} metadata + */ +function parseMetadata (metadata) { + // 1. Let result be the empty set. + /** @type {{ algo: string, hash: string }[]} */ + const result = [] + + // 2. Let empty be equal to true. + let empty = true + + // 3. For each token returned by splitting metadata on spaces: + for (const token of metadata.split(' ')) { + // 1. Set empty to false. + empty = false + + // 2. Parse token as a hash-with-options. + const parsedToken = parseHashWithOptions.exec(token) + + // 3. If token does not parse, continue to the next token. + if ( + parsedToken === null || + parsedToken.groups === undefined || + parsedToken.groups.algo === undefined + ) { + // Note: Chromium blocks the request at this point, but Firefox + // gives a warning that an invalid integrity was given. The + // correct behavior is to ignore these, and subsequently not + // check the integrity of the resource. + continue + } + + // 4. Let algorithm be the hash-algo component of token. + const algorithm = parsedToken.groups.algo.toLowerCase() + + // 5. If algorithm is a hash function recognized by the user + // agent, add the parsed token to result. + if (supportedHashes.includes(algorithm)) { + result.push(parsedToken.groups) + } + } + + // 4. Return no metadata if empty is true, otherwise return result. + if (empty === true) { + return 'no metadata' + } + + return result +} + +/** + * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList + */ +function getStrongestMetadata (metadataList) { + // Let algorithm be the algo component of the first item in metadataList. + // Can be sha256 + let algorithm = metadataList[0].algo + // If the algorithm is sha512, then it is the strongest + // and we can return immediately + if (algorithm[3] === '5') { + return algorithm + } + + for (let i = 1; i < metadataList.length; ++i) { + const metadata = metadataList[i] + // If the algorithm is sha512, then it is the strongest + // and we can break the loop immediately + if (metadata.algo[3] === '5') { + algorithm = 'sha512' + break + // If the algorithm is sha384, then a potential sha256 or sha384 is ignored + } else if (algorithm[3] === '3') { + continue + // algorithm is sha256, check if algorithm is sha384 and if so, set it as + // the strongest + } else if (metadata.algo[3] === '3') { + algorithm = 'sha384' + } + } + return algorithm +} + +function filterMetadataListByAlgorithm (metadataList, algorithm) { + if (metadataList.length === 1) { + return metadataList + } + + let pos = 0 + for (let i = 0; i < metadataList.length; ++i) { + if (metadataList[i].algo === algorithm) { + metadataList[pos++] = metadataList[i] + } + } + + metadataList.length = pos + + return metadataList +} + +/** + * Compares two base64 strings, allowing for base64url + * in the second string. + * +* @param {string} actualValue always base64 + * @param {string} expectedValue base64 or base64url + * @returns {boolean} + */ +function compareBase64Mixed (actualValue, expectedValue) { + if (actualValue.length !== expectedValue.length) { + return false + } + for (let i = 0; i < actualValue.length; ++i) { + if (actualValue[i] !== expectedValue[i]) { + if ( + (actualValue[i] === '+' && expectedValue[i] === '-') || + (actualValue[i] === '/' && expectedValue[i] === '_') + ) { + continue + } + return false + } + } + + return true +} + +// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request +function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) { + // TODO +} + +/** + * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin} + * @param {URL} A + * @param {URL} B + */ +function sameOrigin (A, B) { + // 1. If A and B are the same opaque origin, then return true. + if (A.origin === B.origin && A.origin === 'null') { + return true + } + + // 2. If A and B are both tuple origins and their schemes, + // hosts, and port are identical, then return true. + if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { + return true + } + + // 3. Return false. + return false +} + +function createDeferredPromise () { + let res + let rej + const promise = new Promise((resolve, reject) => { + res = resolve + rej = reject + }) + + return { promise, resolve: res, reject: rej } +} + +function isAborted (fetchParams) { + return fetchParams.controller.state === 'aborted' +} + +function isCancelled (fetchParams) { + return fetchParams.controller.state === 'aborted' || + fetchParams.controller.state === 'terminated' +} + +const normalizeMethodRecord = { + delete: 'DELETE', + DELETE: 'DELETE', + get: 'GET', + GET: 'GET', + head: 'HEAD', + HEAD: 'HEAD', + options: 'OPTIONS', + OPTIONS: 'OPTIONS', + post: 'POST', + POST: 'POST', + put: 'PUT', + PUT: 'PUT' +} + +// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. +Object.setPrototypeOf(normalizeMethodRecord, null) + +/** + * @see https://fetch.spec.whatwg.org/#concept-method-normalize + * @param {string} method + */ +function normalizeMethod (method) { + return normalizeMethodRecord[method.toLowerCase()] ?? method +} + +// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string +function serializeJavascriptValueToJSONString (value) { + // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »). + const result = JSON.stringify(value) + + // 2. If result is undefined, then throw a TypeError. + if (result === undefined) { + throw new TypeError('Value is not JSON serializable') + } + + // 3. Assert: result is a string. + assert(typeof result === 'string') + + // 4. Return result. + return result +} + +// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object +const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())) + +/** + * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object + * @param {() => unknown[]} iterator + * @param {string} name name of the instance + * @param {'key'|'value'|'key+value'} kind + */ +function makeIterator (iterator, name, kind) { + const object = { + index: 0, + kind, + target: iterator + } + + const i = { + next () { + // 1. Let interface be the interface for which the iterator prototype object exists. + + // 2. Let thisValue be the this value. + + // 3. Let object be ? ToObject(thisValue). + + // 4. If object is a platform object, then perform a security + // check, passing: + + // 5. If object is not a default iterator object for interface, + // then throw a TypeError. + if (Object.getPrototypeOf(this) !== i) { + throw new TypeError( + `'next' called on an object that does not implement interface ${name} Iterator.` + ) + } + + // 6. Let index be object’s index. + // 7. Let kind be object’s kind. + // 8. Let values be object’s target's value pairs to iterate over. + const { index, kind, target } = object + const values = target() + + // 9. Let len be the length of values. + const len = values.length + + // 10. If index is greater than or equal to len, then return + // CreateIterResultObject(undefined, true). + if (index >= len) { + return { value: undefined, done: true } + } + + // 11. Let pair be the entry in values at index index. + const pair = values[index] + + // 12. Set object’s index to index + 1. + object.index = index + 1 + + // 13. Return the iterator result for pair and kind. + return iteratorResult(pair, kind) + }, + // The class string of an iterator prototype object for a given interface is the + // result of concatenating the identifier of the interface and the string " Iterator". + [Symbol.toStringTag]: `${name} Iterator` + } + + // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%. + Object.setPrototypeOf(i, esIteratorPrototype) + // esIteratorPrototype needs to be the prototype of i + // which is the prototype of an empty object. Yes, it's confusing. + return Object.setPrototypeOf({}, i) +} + +// https://webidl.spec.whatwg.org/#iterator-result +function iteratorResult (pair, kind) { + let result + + // 1. Let result be a value determined by the value of kind: + switch (kind) { + case 'key': { + // 1. Let idlKey be pair’s key. + // 2. Let key be the result of converting idlKey to an + // ECMAScript value. + // 3. result is key. + result = pair[0] + break + } + case 'value': { + // 1. Let idlValue be pair’s value. + // 2. Let value be the result of converting idlValue to + // an ECMAScript value. + // 3. result is value. + result = pair[1] + break + } + case 'key+value': { + // 1. Let idlKey be pair’s key. + // 2. Let idlValue be pair’s value. + // 3. Let key be the result of converting idlKey to an + // ECMAScript value. + // 4. Let value be the result of converting idlValue to + // an ECMAScript value. + // 5. Let array be ! ArrayCreate(2). + // 6. Call ! CreateDataProperty(array, "0", key). + // 7. Call ! CreateDataProperty(array, "1", value). + // 8. result is array. + result = pair + break + } + } + + // 2. Return CreateIterResultObject(result, false). + return { value: result, done: false } +} + +/** + * @see https://fetch.spec.whatwg.org/#body-fully-read + */ +async function fullyReadBody (body, processBody, processBodyError) { + // 1. If taskDestination is null, then set taskDestination to + // the result of starting a new parallel queue. + + // 2. Let successSteps given a byte sequence bytes be to queue a + // fetch task to run processBody given bytes, with taskDestination. + const successSteps = processBody + + // 3. Let errorSteps be to queue a fetch task to run processBodyError, + // with taskDestination. + const errorSteps = processBodyError + + // 4. Let reader be the result of getting a reader for body’s stream. + // If that threw an exception, then run errorSteps with that + // exception and return. + let reader + + try { + reader = body.stream.getReader() + } catch (e) { + errorSteps(e) + return + } + + // 5. Read all bytes from reader, given successSteps and errorSteps. + try { + const result = await readAllBytes(reader) + successSteps(result) + } catch (e) { + errorSteps(e) + } +} + +/** @type {ReadableStream} */ +let ReadableStream = globalThis.ReadableStream + +function isReadableStreamLike (stream) { + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(3774).ReadableStream) + } + + return stream instanceof ReadableStream || ( + stream[Symbol.toStringTag] === 'ReadableStream' && + typeof stream.tee === 'function' + ) +} + +const MAXIMUM_ARGUMENT_LENGTH = 65535 + +/** + * @see https://infra.spec.whatwg.org/#isomorphic-decode + * @param {number[]|Uint8Array} input + */ +function isomorphicDecode (input) { + // 1. To isomorphic decode a byte sequence input, return a string whose code point + // length is equal to input’s length and whose code points have the same values + // as the values of input’s bytes, in the same order. + + if (input.length < MAXIMUM_ARGUMENT_LENGTH) { + return String.fromCharCode(...input) + } + + return input.reduce((previous, current) => previous + String.fromCharCode(current), '') +} + +/** + * @param {ReadableStreamController} controller + */ +function readableStreamClose (controller) { + try { + controller.close() + } catch (err) { + // TODO: add comment explaining why this error occurs. + if (!err.message.includes('Controller is already closed')) { + throw err + } + } +} + +/** + * @see https://infra.spec.whatwg.org/#isomorphic-encode + * @param {string} input + */ +function isomorphicEncode (input) { + // 1. Assert: input contains no code points greater than U+00FF. + for (let i = 0; i < input.length; i++) { + assert(input.charCodeAt(i) <= 0xFF) + } + + // 2. Return a byte sequence whose length is equal to input’s code + // point length and whose bytes have the same values as the + // values of input’s code points, in the same order + return input +} + +/** + * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes + * @see https://streams.spec.whatwg.org/#read-loop + * @param {ReadableStreamDefaultReader} reader + */ +async function readAllBytes (reader) { + const bytes = [] + let byteLength = 0 + + while (true) { + const { done, value: chunk } = await reader.read() + + if (done) { + // 1. Call successSteps with bytes. + return Buffer.concat(bytes, byteLength) + } + + // 1. If chunk is not a Uint8Array object, call failureSteps + // with a TypeError and abort these steps. + if (!isUint8Array(chunk)) { + throw new TypeError('Received non-Uint8Array chunk') + } + + // 2. Append the bytes represented by chunk to bytes. + bytes.push(chunk) + byteLength += chunk.length + + // 3. Read-loop given reader, bytes, successSteps, and failureSteps. + } +} + +/** + * @see https://fetch.spec.whatwg.org/#is-local + * @param {URL} url + */ +function urlIsLocal (url) { + assert('protocol' in url) // ensure it's a url object + + const protocol = url.protocol + + return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:' +} + +/** + * @param {string|URL} url + */ +function urlHasHttpsScheme (url) { + if (typeof url === 'string') { + return url.startsWith('https:') + } + + return url.protocol === 'https:' +} + +/** + * @see https://fetch.spec.whatwg.org/#http-scheme + * @param {URL} url + */ +function urlIsHttpHttpsScheme (url) { + assert('protocol' in url) // ensure it's a url object + + const protocol = url.protocol + + return protocol === 'http:' || protocol === 'https:' +} + +/** + * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0. + */ +const hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)) + +module.exports = { + isAborted, + isCancelled, + createDeferredPromise, + ReadableStreamFrom, + toUSVString, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + coarsenedSharedCurrentTime, + determineRequestsReferrer, + makePolicyContainer, + clonePolicyContainer, + appendFetchMetadata, + appendRequestOriginHeader, + TAOCheck, + corsCheck, + crossOriginResourcePolicyCheck, + createOpaqueTimingInfo, + setRequestReferrerPolicyOnRedirect, + isValidHTTPToken, + requestBadPort, + requestCurrentURL, + responseURL, + responseLocationURL, + isBlobLike, + isURLPotentiallyTrustworthy, + isValidReasonPhrase, + sameOrigin, + normalizeMethod, + serializeJavascriptValueToJSONString, + makeIterator, + isValidHeaderName, + isValidHeaderValue, + hasOwn, + isErrorLike, + fullyReadBody, + bytesMatch, + isReadableStreamLike, + readableStreamClose, + isomorphicEncode, + isomorphicDecode, + urlIsLocal, + urlHasHttpsScheme, + urlIsHttpHttpsScheme, + readAllBytes, + normalizeMethodRecord, + parseMetadata +} + + +/***/ }), + +/***/ 7472: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { types } = __nccwpck_require__(9023) +const { hasOwn, toUSVString } = __nccwpck_require__(7189) + +/** @type {import('../../types/webidl').Webidl} */ +const webidl = {} +webidl.converters = {} +webidl.util = {} +webidl.errors = {} + +webidl.errors.exception = function (message) { + return new TypeError(`${message.header}: ${message.message}`) +} + +webidl.errors.conversionFailed = function (context) { + const plural = context.types.length === 1 ? '' : ' one of' + const message = + `${context.argument} could not be converted to` + + `${plural}: ${context.types.join(', ')}.` + + return webidl.errors.exception({ + header: context.prefix, + message + }) +} + +webidl.errors.invalidArgument = function (context) { + return webidl.errors.exception({ + header: context.prefix, + message: `"${context.value}" is an invalid ${context.type}.` + }) +} + +// https://webidl.spec.whatwg.org/#implements +webidl.brandCheck = function (V, I, opts = undefined) { + if (opts?.strict !== false && !(V instanceof I)) { + throw new TypeError('Illegal invocation') + } else { + return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag] + } +} + +webidl.argumentLengthCheck = function ({ length }, min, ctx) { + if (length < min) { + throw webidl.errors.exception({ + message: `${min} argument${min !== 1 ? 's' : ''} required, ` + + `but${length ? ' only' : ''} ${length} found.`, + ...ctx + }) + } +} + +webidl.illegalConstructor = function () { + throw webidl.errors.exception({ + header: 'TypeError', + message: 'Illegal constructor' + }) +} + +// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values +webidl.util.Type = function (V) { + switch (typeof V) { + case 'undefined': return 'Undefined' + case 'boolean': return 'Boolean' + case 'string': return 'String' + case 'symbol': return 'Symbol' + case 'number': return 'Number' + case 'bigint': return 'BigInt' + case 'function': + case 'object': { + if (V === null) { + return 'Null' + } + + return 'Object' + } + } +} + +// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint +webidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) { + let upperBound + let lowerBound + + // 1. If bitLength is 64, then: + if (bitLength === 64) { + // 1. Let upperBound be 2^53 − 1. + upperBound = Math.pow(2, 53) - 1 + + // 2. If signedness is "unsigned", then let lowerBound be 0. + if (signedness === 'unsigned') { + lowerBound = 0 + } else { + // 3. Otherwise let lowerBound be −2^53 + 1. + lowerBound = Math.pow(-2, 53) + 1 + } + } else if (signedness === 'unsigned') { + // 2. Otherwise, if signedness is "unsigned", then: + + // 1. Let lowerBound be 0. + lowerBound = 0 + + // 2. Let upperBound be 2^bitLength − 1. + upperBound = Math.pow(2, bitLength) - 1 + } else { + // 3. Otherwise: + + // 1. Let lowerBound be -2^bitLength − 1. + lowerBound = Math.pow(-2, bitLength) - 1 + + // 2. Let upperBound be 2^bitLength − 1 − 1. + upperBound = Math.pow(2, bitLength - 1) - 1 + } + + // 4. Let x be ? ToNumber(V). + let x = Number(V) + + // 5. If x is −0, then set x to +0. + if (x === 0) { + x = 0 + } + + // 6. If the conversion is to an IDL type associated + // with the [EnforceRange] extended attribute, then: + if (opts.enforceRange === true) { + // 1. If x is NaN, +∞, or −∞, then throw a TypeError. + if ( + Number.isNaN(x) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Could not convert ${V} to an integer.` + }) + } + + // 2. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) + + // 3. If x < lowerBound or x > upperBound, then + // throw a TypeError. + if (x < lowerBound || x > upperBound) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` + }) + } + + // 4. Return x. + return x + } + + // 7. If x is not NaN and the conversion is to an IDL + // type associated with the [Clamp] extended + // attribute, then: + if (!Number.isNaN(x) && opts.clamp === true) { + // 1. Set x to min(max(x, lowerBound), upperBound). + x = Math.min(Math.max(x, lowerBound), upperBound) + + // 2. Round x to the nearest integer, choosing the + // even integer if it lies halfway between two, + // and choosing +0 rather than −0. + if (Math.floor(x) % 2 === 0) { + x = Math.floor(x) + } else { + x = Math.ceil(x) + } + + // 3. Return x. + return x + } + + // 8. If x is NaN, +0, +∞, or −∞, then return +0. + if ( + Number.isNaN(x) || + (x === 0 && Object.is(0, x)) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + return 0 + } + + // 9. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) + + // 10. Set x to x modulo 2^bitLength. + x = x % Math.pow(2, bitLength) + + // 11. If signedness is "signed" and x ≥ 2^bitLength − 1, + // then return x − 2^bitLength. + if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) { + return x - Math.pow(2, bitLength) + } + + // 12. Otherwise, return x. + return x +} + +// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart +webidl.util.IntegerPart = function (n) { + // 1. Let r be floor(abs(n)). + const r = Math.floor(Math.abs(n)) + + // 2. If n < 0, then return -1 × r. + if (n < 0) { + return -1 * r + } + + // 3. Otherwise, return r. + return r +} + +// https://webidl.spec.whatwg.org/#es-sequence +webidl.sequenceConverter = function (converter) { + return (V) => { + // 1. If Type(V) is not Object, throw a TypeError. + if (webidl.util.Type(V) !== 'Object') { + throw webidl.errors.exception({ + header: 'Sequence', + message: `Value of type ${webidl.util.Type(V)} is not an Object.` + }) + } + + // 2. Let method be ? GetMethod(V, @@iterator). + /** @type {Generator} */ + const method = V?.[Symbol.iterator]?.() + const seq = [] + + // 3. If method is undefined, throw a TypeError. + if ( + method === undefined || + typeof method.next !== 'function' + ) { + throw webidl.errors.exception({ + header: 'Sequence', + message: 'Object is not an iterator.' + }) + } + + // https://webidl.spec.whatwg.org/#create-sequence-from-iterable + while (true) { + const { done, value } = method.next() + + if (done) { + break + } + + seq.push(converter(value)) + } + + return seq + } +} + +// https://webidl.spec.whatwg.org/#es-to-record +webidl.recordConverter = function (keyConverter, valueConverter) { + return (O) => { + // 1. If Type(O) is not Object, throw a TypeError. + if (webidl.util.Type(O) !== 'Object') { + throw webidl.errors.exception({ + header: 'Record', + message: `Value of type ${webidl.util.Type(O)} is not an Object.` + }) + } + + // 2. Let result be a new empty instance of record. + const result = {} + + if (!types.isProxy(O)) { + // Object.keys only returns enumerable properties + const keys = Object.keys(O) + + for (const key of keys) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key) + + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key]) + + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } + + // 5. Return result. + return result + } + + // 3. Let keys be ? O.[[OwnPropertyKeys]](). + const keys = Reflect.ownKeys(O) + + // 4. For each key of keys. + for (const key of keys) { + // 1. Let desc be ? O.[[GetOwnProperty]](key). + const desc = Reflect.getOwnPropertyDescriptor(O, key) + + // 2. If desc is not undefined and desc.[[Enumerable]] is true: + if (desc?.enumerable) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key) + + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key]) + + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } + } + + // 5. Return result. + return result + } +} + +webidl.interfaceConverter = function (i) { + return (V, opts = {}) => { + if (opts.strict !== false && !(V instanceof i)) { + throw webidl.errors.exception({ + header: i.name, + message: `Expected ${V} to be an instance of ${i.name}.` + }) + } + + return V + } +} + +webidl.dictionaryConverter = function (converters) { + return (dictionary) => { + const type = webidl.util.Type(dictionary) + const dict = {} + + if (type === 'Null' || type === 'Undefined') { + return dict + } else if (type !== 'Object') { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` + }) + } + + for (const options of converters) { + const { key, defaultValue, required, converter } = options + + if (required === true) { + if (!hasOwn(dictionary, key)) { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `Missing required key "${key}".` + }) + } + } + + let value = dictionary[key] + const hasDefault = hasOwn(options, 'defaultValue') + + // Only use defaultValue if value is undefined and + // a defaultValue options was provided. + if (hasDefault && value !== null) { + value = value ?? defaultValue + } + + // A key can be optional and have no default value. + // When this happens, do not perform a conversion, + // and do not assign the key a value. + if (required || hasDefault || value !== undefined) { + value = converter(value) + + if ( + options.allowedValues && + !options.allowedValues.includes(value) + ) { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` + }) + } + + dict[key] = value + } + } + + return dict + } +} + +webidl.nullableConverter = function (converter) { + return (V) => { + if (V === null) { + return V + } + + return converter(V) + } +} + +// https://webidl.spec.whatwg.org/#es-DOMString +webidl.converters.DOMString = function (V, opts = {}) { + // 1. If V is null and the conversion is to an IDL type + // associated with the [LegacyNullToEmptyString] + // extended attribute, then return the DOMString value + // that represents the empty string. + if (V === null && opts.legacyNullToEmptyString) { + return '' + } + + // 2. Let x be ? ToString(V). + if (typeof V === 'symbol') { + throw new TypeError('Could not convert argument of type symbol to string.') + } + + // 3. Return the IDL DOMString value that represents the + // same sequence of code units as the one the + // ECMAScript String value x represents. + return String(V) +} + +// https://webidl.spec.whatwg.org/#es-ByteString +webidl.converters.ByteString = function (V) { + // 1. Let x be ? ToString(V). + // Note: DOMString converter perform ? ToString(V) + const x = webidl.converters.DOMString(V) + + // 2. If the value of any element of x is greater than + // 255, then throw a TypeError. + for (let index = 0; index < x.length; index++) { + if (x.charCodeAt(index) > 255) { + throw new TypeError( + 'Cannot convert argument to a ByteString because the character at ' + + `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` + ) + } + } + + // 3. Return an IDL ByteString value whose length is the + // length of x, and where the value of each element is + // the value of the corresponding element of x. + return x +} + +// https://webidl.spec.whatwg.org/#es-USVString +webidl.converters.USVString = toUSVString + +// https://webidl.spec.whatwg.org/#es-boolean +webidl.converters.boolean = function (V) { + // 1. Let x be the result of computing ToBoolean(V). + const x = Boolean(V) + + // 2. Return the IDL boolean value that is the one that represents + // the same truth value as the ECMAScript Boolean value x. + return x +} + +// https://webidl.spec.whatwg.org/#es-any +webidl.converters.any = function (V) { + return V +} + +// https://webidl.spec.whatwg.org/#es-long-long +webidl.converters['long long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 64, "signed"). + const x = webidl.util.ConvertToInt(V, 64, 'signed') + + // 2. Return the IDL long long value that represents + // the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-long-long +webidl.converters['unsigned long long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 64, "unsigned"). + const x = webidl.util.ConvertToInt(V, 64, 'unsigned') + + // 2. Return the IDL unsigned long long value that + // represents the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-long +webidl.converters['unsigned long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 32, "unsigned"). + const x = webidl.util.ConvertToInt(V, 32, 'unsigned') + + // 2. Return the IDL unsigned long value that + // represents the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-short +webidl.converters['unsigned short'] = function (V, opts) { + // 1. Let x be ? ConvertToInt(V, 16, "unsigned"). + const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts) + + // 2. Return the IDL unsigned short value that represents + // the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#idl-ArrayBuffer +webidl.converters.ArrayBuffer = function (V, opts = {}) { + // 1. If Type(V) is not Object, or V does not have an + // [[ArrayBufferData]] internal slot, then throw a + // TypeError. + // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances + // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances + if ( + webidl.util.Type(V) !== 'Object' || + !types.isAnyArrayBuffer(V) + ) { + throw webidl.errors.conversionFailed({ + prefix: `${V}`, + argument: `${V}`, + types: ['ArrayBuffer'] + }) + } + + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V) is true, then throw a + // TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V) is true, then throw a + // TypeError. + // Note: resizable ArrayBuffers are currently a proposal. + + // 4. Return the IDL ArrayBuffer value that is a + // reference to the same object as V. + return V +} + +webidl.converters.TypedArray = function (V, T, opts = {}) { + // 1. Let T be the IDL type V is being converted to. + + // 2. If Type(V) is not Object, or V does not have a + // [[TypedArrayName]] internal slot with a value + // equal to T’s name, then throw a TypeError. + if ( + webidl.util.Type(V) !== 'Object' || + !types.isTypedArray(V) || + V.constructor.name !== T.name + ) { + throw webidl.errors.conversionFailed({ + prefix: `${T.name}`, + argument: `${V}`, + types: [T.name] + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 4. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + // Note: resizable array buffers are currently a proposal + + // 5. Return the IDL value of type T that is a reference + // to the same object as V. + return V +} + +webidl.converters.DataView = function (V, opts = {}) { + // 1. If Type(V) is not Object, or V does not have a + // [[DataView]] internal slot, then throw a TypeError. + if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) { + throw webidl.errors.exception({ + header: 'DataView', + message: 'Object is not a DataView.' + }) + } + + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true, + // then throw a TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + // Note: resizable ArrayBuffers are currently a proposal + + // 4. Return the IDL DataView value that is a reference + // to the same object as V. + return V +} + +// https://webidl.spec.whatwg.org/#BufferSource +webidl.converters.BufferSource = function (V, opts = {}) { + if (types.isAnyArrayBuffer(V)) { + return webidl.converters.ArrayBuffer(V, opts) + } + + if (types.isTypedArray(V)) { + return webidl.converters.TypedArray(V, V.constructor) + } + + if (types.isDataView(V)) { + return webidl.converters.DataView(V, opts) + } + + throw new TypeError(`Could not convert ${V} to a BufferSource.`) +} + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.ByteString +) + +webidl.converters['sequence>'] = webidl.sequenceConverter( + webidl.converters['sequence'] +) + +webidl.converters['record'] = webidl.recordConverter( + webidl.converters.ByteString, + webidl.converters.ByteString +) + +module.exports = { + webidl +} + + +/***/ }), + +/***/ 1798: +/***/ ((module) => { + + + +/** + * @see https://encoding.spec.whatwg.org/#concept-encoding-get + * @param {string|undefined} label + */ +function getEncoding (label) { + if (!label) { + return 'failure' + } + + // 1. Remove any leading and trailing ASCII whitespace from label. + // 2. If label is an ASCII case-insensitive match for any of the + // labels listed in the table below, then return the + // corresponding encoding; otherwise return failure. + switch (label.trim().toLowerCase()) { + case 'unicode-1-1-utf-8': + case 'unicode11utf8': + case 'unicode20utf8': + case 'utf-8': + case 'utf8': + case 'x-unicode20utf8': + return 'UTF-8' + case '866': + case 'cp866': + case 'csibm866': + case 'ibm866': + return 'IBM866' + case 'csisolatin2': + case 'iso-8859-2': + case 'iso-ir-101': + case 'iso8859-2': + case 'iso88592': + case 'iso_8859-2': + case 'iso_8859-2:1987': + case 'l2': + case 'latin2': + return 'ISO-8859-2' + case 'csisolatin3': + case 'iso-8859-3': + case 'iso-ir-109': + case 'iso8859-3': + case 'iso88593': + case 'iso_8859-3': + case 'iso_8859-3:1988': + case 'l3': + case 'latin3': + return 'ISO-8859-3' + case 'csisolatin4': + case 'iso-8859-4': + case 'iso-ir-110': + case 'iso8859-4': + case 'iso88594': + case 'iso_8859-4': + case 'iso_8859-4:1988': + case 'l4': + case 'latin4': + return 'ISO-8859-4' + case 'csisolatincyrillic': + case 'cyrillic': + case 'iso-8859-5': + case 'iso-ir-144': + case 'iso8859-5': + case 'iso88595': + case 'iso_8859-5': + case 'iso_8859-5:1988': + return 'ISO-8859-5' + case 'arabic': + case 'asmo-708': + case 'csiso88596e': + case 'csiso88596i': + case 'csisolatinarabic': + case 'ecma-114': + case 'iso-8859-6': + case 'iso-8859-6-e': + case 'iso-8859-6-i': + case 'iso-ir-127': + case 'iso8859-6': + case 'iso88596': + case 'iso_8859-6': + case 'iso_8859-6:1987': + return 'ISO-8859-6' + case 'csisolatingreek': + case 'ecma-118': + case 'elot_928': + case 'greek': + case 'greek8': + case 'iso-8859-7': + case 'iso-ir-126': + case 'iso8859-7': + case 'iso88597': + case 'iso_8859-7': + case 'iso_8859-7:1987': + case 'sun_eu_greek': + return 'ISO-8859-7' + case 'csiso88598e': + case 'csisolatinhebrew': + case 'hebrew': + case 'iso-8859-8': + case 'iso-8859-8-e': + case 'iso-ir-138': + case 'iso8859-8': + case 'iso88598': + case 'iso_8859-8': + case 'iso_8859-8:1988': + case 'visual': + return 'ISO-8859-8' + case 'csiso88598i': + case 'iso-8859-8-i': + case 'logical': + return 'ISO-8859-8-I' + case 'csisolatin6': + case 'iso-8859-10': + case 'iso-ir-157': + case 'iso8859-10': + case 'iso885910': + case 'l6': + case 'latin6': + return 'ISO-8859-10' + case 'iso-8859-13': + case 'iso8859-13': + case 'iso885913': + return 'ISO-8859-13' + case 'iso-8859-14': + case 'iso8859-14': + case 'iso885914': + return 'ISO-8859-14' + case 'csisolatin9': + case 'iso-8859-15': + case 'iso8859-15': + case 'iso885915': + case 'iso_8859-15': + case 'l9': + return 'ISO-8859-15' + case 'iso-8859-16': + return 'ISO-8859-16' + case 'cskoi8r': + case 'koi': + case 'koi8': + case 'koi8-r': + case 'koi8_r': + return 'KOI8-R' + case 'koi8-ru': + case 'koi8-u': + return 'KOI8-U' + case 'csmacintosh': + case 'mac': + case 'macintosh': + case 'x-mac-roman': + return 'macintosh' + case 'iso-8859-11': + case 'iso8859-11': + case 'iso885911': + case 'tis-620': + case 'windows-874': + return 'windows-874' + case 'cp1250': + case 'windows-1250': + case 'x-cp1250': + return 'windows-1250' + case 'cp1251': + case 'windows-1251': + case 'x-cp1251': + return 'windows-1251' + case 'ansi_x3.4-1968': + case 'ascii': + case 'cp1252': + case 'cp819': + case 'csisolatin1': + case 'ibm819': + case 'iso-8859-1': + case 'iso-ir-100': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'iso_8859-1:1987': + case 'l1': + case 'latin1': + case 'us-ascii': + case 'windows-1252': + case 'x-cp1252': + return 'windows-1252' + case 'cp1253': + case 'windows-1253': + case 'x-cp1253': + return 'windows-1253' + case 'cp1254': + case 'csisolatin5': + case 'iso-8859-9': + case 'iso-ir-148': + case 'iso8859-9': + case 'iso88599': + case 'iso_8859-9': + case 'iso_8859-9:1989': + case 'l5': + case 'latin5': + case 'windows-1254': + case 'x-cp1254': + return 'windows-1254' + case 'cp1255': + case 'windows-1255': + case 'x-cp1255': + return 'windows-1255' + case 'cp1256': + case 'windows-1256': + case 'x-cp1256': + return 'windows-1256' + case 'cp1257': + case 'windows-1257': + case 'x-cp1257': + return 'windows-1257' + case 'cp1258': + case 'windows-1258': + case 'x-cp1258': + return 'windows-1258' + case 'x-mac-cyrillic': + case 'x-mac-ukrainian': + return 'x-mac-cyrillic' + case 'chinese': + case 'csgb2312': + case 'csiso58gb231280': + case 'gb2312': + case 'gb_2312': + case 'gb_2312-80': + case 'gbk': + case 'iso-ir-58': + case 'x-gbk': + return 'GBK' + case 'gb18030': + return 'gb18030' + case 'big5': + case 'big5-hkscs': + case 'cn-big5': + case 'csbig5': + case 'x-x-big5': + return 'Big5' + case 'cseucpkdfmtjapanese': + case 'euc-jp': + case 'x-euc-jp': + return 'EUC-JP' + case 'csiso2022jp': + case 'iso-2022-jp': + return 'ISO-2022-JP' + case 'csshiftjis': + case 'ms932': + case 'ms_kanji': + case 'shift-jis': + case 'shift_jis': + case 'sjis': + case 'windows-31j': + case 'x-sjis': + return 'Shift_JIS' + case 'cseuckr': + case 'csksc56011987': + case 'euc-kr': + case 'iso-ir-149': + case 'korean': + case 'ks_c_5601-1987': + case 'ks_c_5601-1989': + case 'ksc5601': + case 'ksc_5601': + case 'windows-949': + return 'EUC-KR' + case 'csiso2022kr': + case 'hz-gb-2312': + case 'iso-2022-cn': + case 'iso-2022-cn-ext': + case 'iso-2022-kr': + case 'replacement': + return 'replacement' + case 'unicodefffe': + case 'utf-16be': + return 'UTF-16BE' + case 'csunicode': + case 'iso-10646-ucs-2': + case 'ucs-2': + case 'unicode': + case 'unicodefeff': + case 'utf-16': + case 'utf-16le': + return 'UTF-16LE' + case 'x-user-defined': + return 'x-user-defined' + default: return 'failure' + } +} + +module.exports = { + getEncoding +} + + +/***/ }), + +/***/ 5466: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent +} = __nccwpck_require__(8403) +const { + kState, + kError, + kResult, + kEvents, + kAborted +} = __nccwpck_require__(6766) +const { webidl } = __nccwpck_require__(7472) +const { kEnumerableProperty } = __nccwpck_require__(162) + +class FileReader extends EventTarget { + constructor () { + super() + + this[kState] = 'empty' + this[kResult] = null + this[kError] = null + this[kEvents] = { + loadend: null, + error: null, + abort: null, + load: null, + progress: null, + loadstart: null + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer + * @param {import('buffer').Blob} blob + */ + readAsArrayBuffer (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsArrayBuffer(blob) method, when invoked, + // must initiate a read operation for blob with ArrayBuffer. + readOperation(this, blob, 'ArrayBuffer') + } + + /** + * @see https://w3c.github.io/FileAPI/#readAsBinaryString + * @param {import('buffer').Blob} blob + */ + readAsBinaryString (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsBinaryString(blob) method, when invoked, + // must initiate a read operation for blob with BinaryString. + readOperation(this, blob, 'BinaryString') + } + + /** + * @see https://w3c.github.io/FileAPI/#readAsDataText + * @param {import('buffer').Blob} blob + * @param {string?} encoding + */ + readAsText (blob, encoding = undefined) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + if (encoding !== undefined) { + encoding = webidl.converters.DOMString(encoding) + } + + // The readAsText(blob, encoding) method, when invoked, + // must initiate a read operation for blob with Text and encoding. + readOperation(this, blob, 'Text', encoding) + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL + * @param {import('buffer').Blob} blob + */ + readAsDataURL (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsDataURL(blob) method, when invoked, must + // initiate a read operation for blob with DataURL. + readOperation(this, blob, 'DataURL') + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-abort + */ + abort () { + // 1. If this's state is "empty" or if this's state is + // "done" set this's result to null and terminate + // this algorithm. + if (this[kState] === 'empty' || this[kState] === 'done') { + this[kResult] = null + return + } + + // 2. If this's state is "loading" set this's state to + // "done" and set this's result to null. + if (this[kState] === 'loading') { + this[kState] = 'done' + this[kResult] = null + } + + // 3. If there are any tasks from this on the file reading + // task source in an affiliated task queue, then remove + // those tasks from that task queue. + this[kAborted] = true + + // 4. Terminate the algorithm for the read method being processed. + // TODO + + // 5. Fire a progress event called abort at this. + fireAProgressEvent('abort', this) + + // 6. If this's state is not "loading", fire a progress + // event called loadend at this. + if (this[kState] !== 'loading') { + fireAProgressEvent('loadend', this) + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate + */ + get readyState () { + webidl.brandCheck(this, FileReader) + + switch (this[kState]) { + case 'empty': return this.EMPTY + case 'loading': return this.LOADING + case 'done': return this.DONE + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-result + */ + get result () { + webidl.brandCheck(this, FileReader) + + // The result attribute’s getter, when invoked, must return + // this's result. + return this[kResult] + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-error + */ + get error () { + webidl.brandCheck(this, FileReader) + + // The error attribute’s getter, when invoked, must return + // this's error. + return this[kError] + } + + get onloadend () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].loadend + } + + set onloadend (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].loadend) { + this.removeEventListener('loadend', this[kEvents].loadend) + } + + if (typeof fn === 'function') { + this[kEvents].loadend = fn + this.addEventListener('loadend', fn) + } else { + this[kEvents].loadend = null + } + } + + get onerror () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].error + } + + set onerror (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].error) { + this.removeEventListener('error', this[kEvents].error) + } + + if (typeof fn === 'function') { + this[kEvents].error = fn + this.addEventListener('error', fn) + } else { + this[kEvents].error = null + } + } + + get onloadstart () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].loadstart + } + + set onloadstart (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].loadstart) { + this.removeEventListener('loadstart', this[kEvents].loadstart) + } + + if (typeof fn === 'function') { + this[kEvents].loadstart = fn + this.addEventListener('loadstart', fn) + } else { + this[kEvents].loadstart = null + } + } + + get onprogress () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].progress + } + + set onprogress (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].progress) { + this.removeEventListener('progress', this[kEvents].progress) + } + + if (typeof fn === 'function') { + this[kEvents].progress = fn + this.addEventListener('progress', fn) + } else { + this[kEvents].progress = null + } + } + + get onload () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].load + } + + set onload (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].load) { + this.removeEventListener('load', this[kEvents].load) + } + + if (typeof fn === 'function') { + this[kEvents].load = fn + this.addEventListener('load', fn) + } else { + this[kEvents].load = null + } + } + + get onabort () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].abort + } + + set onabort (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].abort) { + this.removeEventListener('abort', this[kEvents].abort) + } + + if (typeof fn === 'function') { + this[kEvents].abort = fn + this.addEventListener('abort', fn) + } else { + this[kEvents].abort = null + } + } +} + +// https://w3c.github.io/FileAPI/#dom-filereader-empty +FileReader.EMPTY = FileReader.prototype.EMPTY = 0 +// https://w3c.github.io/FileAPI/#dom-filereader-loading +FileReader.LOADING = FileReader.prototype.LOADING = 1 +// https://w3c.github.io/FileAPI/#dom-filereader-done +FileReader.DONE = FileReader.prototype.DONE = 2 + +Object.defineProperties(FileReader.prototype, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors, + readAsArrayBuffer: kEnumerableProperty, + readAsBinaryString: kEnumerableProperty, + readAsText: kEnumerableProperty, + readAsDataURL: kEnumerableProperty, + abort: kEnumerableProperty, + readyState: kEnumerableProperty, + result: kEnumerableProperty, + error: kEnumerableProperty, + onloadstart: kEnumerableProperty, + onprogress: kEnumerableProperty, + onload: kEnumerableProperty, + onabort: kEnumerableProperty, + onerror: kEnumerableProperty, + onloadend: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'FileReader', + writable: false, + enumerable: false, + configurable: true + } +}) + +Object.defineProperties(FileReader, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors +}) + +module.exports = { + FileReader +} + + +/***/ }), + +/***/ 42: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { webidl } = __nccwpck_require__(7472) + +const kState = Symbol('ProgressEvent state') + +/** + * @see https://xhr.spec.whatwg.org/#progressevent + */ +class ProgressEvent extends Event { + constructor (type, eventInitDict = {}) { + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}) + + super(type, eventInitDict) + + this[kState] = { + lengthComputable: eventInitDict.lengthComputable, + loaded: eventInitDict.loaded, + total: eventInitDict.total + } + } + + get lengthComputable () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].lengthComputable + } + + get loaded () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].loaded + } + + get total () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].total + } +} + +webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ + { + key: 'lengthComputable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'loaded', + converter: webidl.converters['unsigned long long'], + defaultValue: 0 + }, + { + key: 'total', + converter: webidl.converters['unsigned long long'], + defaultValue: 0 + }, + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: false + } +]) + +module.exports = { + ProgressEvent +} + + +/***/ }), + +/***/ 6766: +/***/ ((module) => { + + + +module.exports = { + kState: Symbol('FileReader state'), + kResult: Symbol('FileReader result'), + kError: Symbol('FileReader error'), + kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), + kEvents: Symbol('FileReader events'), + kAborted: Symbol('FileReader aborted') +} + + +/***/ }), + +/***/ 8403: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + kState, + kError, + kResult, + kAborted, + kLastProgressEventFired +} = __nccwpck_require__(6766) +const { ProgressEvent } = __nccwpck_require__(42) +const { getEncoding } = __nccwpck_require__(1798) +const { DOMException } = __nccwpck_require__(1356) +const { serializeAMimeType, parseMIMEType } = __nccwpck_require__(5892) +const { types } = __nccwpck_require__(9023) +const { StringDecoder } = __nccwpck_require__(3193) +const { btoa } = __nccwpck_require__(181) + +/** @type {PropertyDescriptor} */ +const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false +} + +/** + * @see https://w3c.github.io/FileAPI/#readOperation + * @param {import('./filereader').FileReader} fr + * @param {import('buffer').Blob} blob + * @param {string} type + * @param {string?} encodingName + */ +function readOperation (fr, blob, type, encodingName) { + // 1. If fr’s state is "loading", throw an InvalidStateError + // DOMException. + if (fr[kState] === 'loading') { + throw new DOMException('Invalid state', 'InvalidStateError') + } + + // 2. Set fr’s state to "loading". + fr[kState] = 'loading' + + // 3. Set fr’s result to null. + fr[kResult] = null + + // 4. Set fr’s error to null. + fr[kError] = null + + // 5. Let stream be the result of calling get stream on blob. + /** @type {import('stream/web').ReadableStream} */ + const stream = blob.stream() + + // 6. Let reader be the result of getting a reader from stream. + const reader = stream.getReader() + + // 7. Let bytes be an empty byte sequence. + /** @type {Uint8Array[]} */ + const bytes = [] + + // 8. Let chunkPromise be the result of reading a chunk from + // stream with reader. + let chunkPromise = reader.read() + + // 9. Let isFirstChunk be true. + let isFirstChunk = true + + // 10. In parallel, while true: + // Note: "In parallel" just means non-blocking + // Note 2: readOperation itself cannot be async as double + // reading the body would then reject the promise, instead + // of throwing an error. + ;(async () => { + while (!fr[kAborted]) { + // 1. Wait for chunkPromise to be fulfilled or rejected. + try { + const { done, value } = await chunkPromise + + // 2. If chunkPromise is fulfilled, and isFirstChunk is + // true, queue a task to fire a progress event called + // loadstart at fr. + if (isFirstChunk && !fr[kAborted]) { + queueMicrotask(() => { + fireAProgressEvent('loadstart', fr) + }) + } + + // 3. Set isFirstChunk to false. + isFirstChunk = false + + // 4. If chunkPromise is fulfilled with an object whose + // done property is false and whose value property is + // a Uint8Array object, run these steps: + if (!done && types.isUint8Array(value)) { + // 1. Let bs be the byte sequence represented by the + // Uint8Array object. + + // 2. Append bs to bytes. + bytes.push(value) + + // 3. If roughly 50ms have passed since these steps + // were last invoked, queue a task to fire a + // progress event called progress at fr. + if ( + ( + fr[kLastProgressEventFired] === undefined || + Date.now() - fr[kLastProgressEventFired] >= 50 + ) && + !fr[kAborted] + ) { + fr[kLastProgressEventFired] = Date.now() + queueMicrotask(() => { + fireAProgressEvent('progress', fr) + }) + } + + // 4. Set chunkPromise to the result of reading a + // chunk from stream with reader. + chunkPromise = reader.read() + } else if (done) { + // 5. Otherwise, if chunkPromise is fulfilled with an + // object whose done property is true, queue a task + // to run the following steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' + + // 2. Let result be the result of package data given + // bytes, type, blob’s type, and encodingName. + try { + const result = packageData(bytes, type, blob.type, encodingName) + + // 4. Else: + + if (fr[kAborted]) { + return + } + + // 1. Set fr’s result to result. + fr[kResult] = result + + // 2. Fire a progress event called load at the fr. + fireAProgressEvent('load', fr) + } catch (error) { + // 3. If package data threw an exception error: + + // 1. Set fr’s error to error. + fr[kError] = error + + // 2. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) + } + + // 5. If fr’s state is not "loading", fire a progress + // event called loadend at the fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) + + break + } + } catch (error) { + if (fr[kAborted]) { + return + } + + // 6. Otherwise, if chunkPromise is rejected with an + // error error, queue a task to run the following + // steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' + + // 2. Set fr’s error to error. + fr[kError] = error + + // 3. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) + + // 4. If fr’s state is not "loading", fire a progress + // event called loadend at fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) + + break + } + } + })() +} + +/** + * @see https://w3c.github.io/FileAPI/#fire-a-progress-event + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e The name of the event + * @param {import('./filereader').FileReader} reader + */ +function fireAProgressEvent (e, reader) { + // The progress event e does not bubble. e.bubbles must be false + // The progress event e is NOT cancelable. e.cancelable must be false + const event = new ProgressEvent(e, { + bubbles: false, + cancelable: false + }) + + reader.dispatchEvent(event) +} + +/** + * @see https://w3c.github.io/FileAPI/#blob-package-data + * @param {Uint8Array[]} bytes + * @param {string} type + * @param {string?} mimeType + * @param {string?} encodingName + */ +function packageData (bytes, type, mimeType, encodingName) { + // 1. A Blob has an associated package data algorithm, given + // bytes, a type, a optional mimeType, and a optional + // encodingName, which switches on type and runs the + // associated steps: + + switch (type) { + case 'DataURL': { + // 1. Return bytes as a DataURL [RFC2397] subject to + // the considerations below: + // * Use mimeType as part of the Data URL if it is + // available in keeping with the Data URL + // specification [RFC2397]. + // * If mimeType is not available return a Data URL + // without a media-type. [RFC2397]. + + // https://datatracker.ietf.org/doc/html/rfc2397#section-3 + // dataurl := "data:" [ mediatype ] [ ";base64" ] "," data + // mediatype := [ type "/" subtype ] *( ";" parameter ) + // data := *urlchar + // parameter := attribute "=" value + let dataURL = 'data:' + + const parsed = parseMIMEType(mimeType || 'application/octet-stream') + + if (parsed !== 'failure') { + dataURL += serializeAMimeType(parsed) + } + + dataURL += ';base64,' + + const decoder = new StringDecoder('latin1') + + for (const chunk of bytes) { + dataURL += btoa(decoder.write(chunk)) + } + + dataURL += btoa(decoder.end()) + + return dataURL + } + case 'Text': { + // 1. Let encoding be failure + let encoding = 'failure' + + // 2. If the encodingName is present, set encoding to the + // result of getting an encoding from encodingName. + if (encodingName) { + encoding = getEncoding(encodingName) + } + + // 3. If encoding is failure, and mimeType is present: + if (encoding === 'failure' && mimeType) { + // 1. Let type be the result of parse a MIME type + // given mimeType. + const type = parseMIMEType(mimeType) + + // 2. If type is not failure, set encoding to the result + // of getting an encoding from type’s parameters["charset"]. + if (type !== 'failure') { + encoding = getEncoding(type.parameters.get('charset')) + } + } + + // 4. If encoding is failure, then set encoding to UTF-8. + if (encoding === 'failure') { + encoding = 'UTF-8' + } + + // 5. Decode bytes using fallback encoding encoding, and + // return the result. + return decode(bytes, encoding) + } + case 'ArrayBuffer': { + // Return a new ArrayBuffer whose contents are bytes. + const sequence = combineByteSequences(bytes) + + return sequence.buffer + } + case 'BinaryString': { + // Return bytes as a binary string, in which every byte + // is represented by a code unit of equal value [0..255]. + let binaryString = '' + + const decoder = new StringDecoder('latin1') + + for (const chunk of bytes) { + binaryString += decoder.write(chunk) + } + + binaryString += decoder.end() + + return binaryString + } + } +} + +/** + * @see https://encoding.spec.whatwg.org/#decode + * @param {Uint8Array[]} ioQueue + * @param {string} encoding + */ +function decode (ioQueue, encoding) { + const bytes = combineByteSequences(ioQueue) + + // 1. Let BOMEncoding be the result of BOM sniffing ioQueue. + const BOMEncoding = BOMSniffing(bytes) + + let slice = 0 + + // 2. If BOMEncoding is non-null: + if (BOMEncoding !== null) { + // 1. Set encoding to BOMEncoding. + encoding = BOMEncoding + + // 2. Read three bytes from ioQueue, if BOMEncoding is + // UTF-8; otherwise read two bytes. + // (Do nothing with those bytes.) + slice = BOMEncoding === 'UTF-8' ? 3 : 2 + } + + // 3. Process a queue with an instance of encoding’s + // decoder, ioQueue, output, and "replacement". + + // 4. Return output. + + const sliced = bytes.slice(slice) + return new TextDecoder(encoding).decode(sliced) +} + +/** + * @see https://encoding.spec.whatwg.org/#bom-sniff + * @param {Uint8Array} ioQueue + */ +function BOMSniffing (ioQueue) { + // 1. Let BOM be the result of peeking 3 bytes from ioQueue, + // converted to a byte sequence. + const [a, b, c] = ioQueue + + // 2. For each of the rows in the table below, starting with + // the first one and going down, if BOM starts with the + // bytes given in the first column, then return the + // encoding given in the cell in the second column of that + // row. Otherwise, return null. + if (a === 0xEF && b === 0xBB && c === 0xBF) { + return 'UTF-8' + } else if (a === 0xFE && b === 0xFF) { + return 'UTF-16BE' + } else if (a === 0xFF && b === 0xFE) { + return 'UTF-16LE' + } + + return null +} + +/** + * @param {Uint8Array[]} sequences + */ +function combineByteSequences (sequences) { + const size = sequences.reduce((a, b) => { + return a + b.byteLength + }, 0) + + let offset = 0 + + return sequences.reduce((a, b) => { + a.set(b, offset) + offset += b.byteLength + return a + }, new Uint8Array(size)) +} + +module.exports = { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent +} + + +/***/ }), + +/***/ 8127: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +// We include a version number for the Dispatcher API. In case of breaking changes, +// this version number must be increased to avoid conflicts. +const globalDispatcher = Symbol.for('undici.globalDispatcher.1') +const { InvalidArgumentError } = __nccwpck_require__(3785) +const Agent = __nccwpck_require__(6783) + +if (getGlobalDispatcher() === undefined) { + setGlobalDispatcher(new Agent()) +} + +function setGlobalDispatcher (agent) { + if (!agent || typeof agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument agent must implement Agent') + } + Object.defineProperty(globalThis, globalDispatcher, { + value: agent, + writable: true, + enumerable: false, + configurable: false + }) +} + +function getGlobalDispatcher () { + return globalThis[globalDispatcher] +} + +module.exports = { + setGlobalDispatcher, + getGlobalDispatcher +} + + +/***/ }), + +/***/ 7022: +/***/ ((module) => { + + + +module.exports = class DecoratorHandler { + constructor (handler) { + this.handler = handler + } + + onConnect (...args) { + return this.handler.onConnect(...args) + } + + onError (...args) { + return this.handler.onError(...args) + } + + onUpgrade (...args) { + return this.handler.onUpgrade(...args) + } + + onHeaders (...args) { + return this.handler.onHeaders(...args) + } + + onData (...args) { + return this.handler.onData(...args) + } + + onComplete (...args) { + return this.handler.onComplete(...args) + } + + onBodySent (...args) { + return this.handler.onBodySent(...args) + } +} + + +/***/ }), + +/***/ 4021: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const util = __nccwpck_require__(162) +const { kBodyUsed } = __nccwpck_require__(249) +const assert = __nccwpck_require__(2613) +const { InvalidArgumentError } = __nccwpck_require__(3785) +const EE = __nccwpck_require__(4434) + +const redirectableStatusCodes = [300, 301, 302, 303, 307, 308] + +const kBody = Symbol('body') + +class BodyAsyncIterable { + constructor (body) { + this[kBody] = body + this[kBodyUsed] = false + } + + async * [Symbol.asyncIterator] () { + assert(!this[kBodyUsed], 'disturbed') + this[kBodyUsed] = true + yield * this[kBody] + } +} + +class RedirectHandler { + constructor (dispatch, maxRedirections, opts, handler) { + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + util.validateHandler(handler, opts.method, opts.upgrade) + + this.dispatch = dispatch + this.location = null + this.abort = null + this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy + this.maxRedirections = maxRedirections + this.handler = handler + this.history = [] + + if (util.isStream(this.opts.body)) { + // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp + // so that it can be dispatched again? + // TODO (fix): Do we need 100-expect support to provide a way to do this properly? + if (util.bodyLength(this.opts.body) === 0) { + this.opts.body + .on('data', function () { + assert(false) + }) + } + + if (typeof this.opts.body.readableDidRead !== 'boolean') { + this.opts.body[kBodyUsed] = false + EE.prototype.on.call(this.opts.body, 'data', function () { + this[kBodyUsed] = true + }) + } + } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') { + // TODO (fix): We can't access ReadableStream internal state + // to determine whether or not it has been disturbed. This is just + // a workaround. + this.opts.body = new BodyAsyncIterable(this.opts.body) + } else if ( + this.opts.body && + typeof this.opts.body !== 'string' && + !ArrayBuffer.isView(this.opts.body) && + util.isIterable(this.opts.body) + ) { + // TODO: Should we allow re-using iterable if !this.opts.idempotent + // or through some other flag? + this.opts.body = new BodyAsyncIterable(this.opts.body) + } + } + + onConnect (abort) { + this.abort = abort + this.handler.onConnect(abort, { history: this.history }) + } + + onUpgrade (statusCode, headers, socket) { + this.handler.onUpgrade(statusCode, headers, socket) + } + + onError (error) { + this.handler.onError(error) + } + + onHeaders (statusCode, headers, resume, statusText) { + this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) + ? null + : parseLocation(statusCode, headers) + + if (this.opts.origin) { + this.history.push(new URL(this.opts.path, this.opts.origin)) + } + + if (!this.location) { + return this.handler.onHeaders(statusCode, headers, resume, statusText) + } + + const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))) + const path = search ? `${pathname}${search}` : pathname + + // Remove headers referring to the original URL. + // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers. + // https://tools.ietf.org/html/rfc7231#section-6.4 + this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin) + this.opts.path = path + this.opts.origin = origin + this.opts.maxRedirections = 0 + this.opts.query = null + + // https://tools.ietf.org/html/rfc7231#section-6.4.4 + // In case of HTTP 303, always replace method to be either HEAD or GET + if (statusCode === 303 && this.opts.method !== 'HEAD') { + this.opts.method = 'GET' + this.opts.body = null + } + } + + onData (chunk) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 + + TLDR: undici always ignores 3xx response bodies. + + Redirection is used to serve the requested resource from another URL, so it is assumes that + no body is generated (and thus can be ignored). Even though generating a body is not prohibited. + + For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually + (which means it's optional and not mandated) contain just an hyperlink to the value of + the Location response header, so the body can be ignored safely. + + For status 300, which is "Multiple Choices", the spec mentions both generating a Location + response header AND a response body with the other possible location to follow. + Since the spec explicitily chooses not to specify a format for such body and leave it to + servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it. + */ + } else { + return this.handler.onData(chunk) + } + } + + onComplete (trailers) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 + + TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections + and neither are useful if present. + + See comment on onData method above for more detailed informations. + */ + + this.location = null + this.abort = null + + this.dispatch(this.opts, this) + } else { + this.handler.onComplete(trailers) + } + } + + onBodySent (chunk) { + if (this.handler.onBodySent) { + this.handler.onBodySent(chunk) + } + } +} + +function parseLocation (statusCode, headers) { + if (redirectableStatusCodes.indexOf(statusCode) === -1) { + return null + } + + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toString().toLowerCase() === 'location') { + return headers[i + 1] + } + } +} + +// https://tools.ietf.org/html/rfc7231#section-6.4.4 +function shouldRemoveHeader (header, removeContent, unknownOrigin) { + if (header.length === 4) { + return util.headerNameToString(header) === 'host' + } + if (removeContent && util.headerNameToString(header).startsWith('content-')) { + return true + } + if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { + const name = util.headerNameToString(header) + return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization' + } + return false +} + +// https://tools.ietf.org/html/rfc7231#section-6.4 +function cleanRequestHeaders (headers, removeContent, unknownOrigin) { + const ret = [] + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { + ret.push(headers[i], headers[i + 1]) + } + } + } else if (headers && typeof headers === 'object') { + for (const key of Object.keys(headers)) { + if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { + ret.push(key, headers[key]) + } + } + } else { + assert(headers == null, 'headers must be an object or an array') + } + return ret +} + +module.exports = RedirectHandler + + +/***/ }), + +/***/ 6631: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const assert = __nccwpck_require__(2613) + +const { kRetryHandlerDefaultRetry } = __nccwpck_require__(249) +const { RequestRetryError } = __nccwpck_require__(3785) +const { isDisturbed, parseHeaders, parseRangeHeader } = __nccwpck_require__(162) + +function calculateRetryAfterHeader (retryAfter) { + const current = Date.now() + const diff = new Date(retryAfter).getTime() - current + + return diff +} + +class RetryHandler { + constructor (opts, handlers) { + const { retryOptions, ...dispatchOpts } = opts + const { + // Retry scoped + retry: retryFn, + maxRetries, + maxTimeout, + minTimeout, + timeoutFactor, + // Response scoped + methods, + errorCodes, + retryAfter, + statusCodes + } = retryOptions ?? {} + + this.dispatch = handlers.dispatch + this.handler = handlers.handler + this.opts = dispatchOpts + this.abort = null + this.aborted = false + this.retryOpts = { + retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry], + retryAfter: retryAfter ?? true, + maxTimeout: maxTimeout ?? 30 * 1000, // 30s, + timeout: minTimeout ?? 500, // .5s + timeoutFactor: timeoutFactor ?? 2, + maxRetries: maxRetries ?? 5, + // What errors we should retry + methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'], + // Indicates which errors to retry + statusCodes: statusCodes ?? [500, 502, 503, 504, 429], + // List of errors to retry + errorCodes: errorCodes ?? [ + 'ECONNRESET', + 'ECONNREFUSED', + 'ENOTFOUND', + 'ENETDOWN', + 'ENETUNREACH', + 'EHOSTDOWN', + 'EHOSTUNREACH', + 'EPIPE' + ] + } + + this.retryCount = 0 + this.start = 0 + this.end = null + this.etag = null + this.resume = null + + // Handle possible onConnect duplication + this.handler.onConnect(reason => { + this.aborted = true + if (this.abort) { + this.abort(reason) + } else { + this.reason = reason + } + }) + } + + onRequestSent () { + if (this.handler.onRequestSent) { + this.handler.onRequestSent() + } + } + + onUpgrade (statusCode, headers, socket) { + if (this.handler.onUpgrade) { + this.handler.onUpgrade(statusCode, headers, socket) + } + } + + onConnect (abort) { + if (this.aborted) { + abort(this.reason) + } else { + this.abort = abort + } + } + + onBodySent (chunk) { + if (this.handler.onBodySent) return this.handler.onBodySent(chunk) + } + + static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) { + const { statusCode, code, headers } = err + const { method, retryOptions } = opts + const { + maxRetries, + timeout, + maxTimeout, + timeoutFactor, + statusCodes, + errorCodes, + methods + } = retryOptions + let { counter, currentTimeout } = state + + currentTimeout = + currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout + + // Any code that is not a Undici's originated and allowed to retry + if ( + code && + code !== 'UND_ERR_REQ_RETRY' && + code !== 'UND_ERR_SOCKET' && + !errorCodes.includes(code) + ) { + cb(err) + return + } + + // If a set of method are provided and the current method is not in the list + if (Array.isArray(methods) && !methods.includes(method)) { + cb(err) + return + } + + // If a set of status code are provided and the current status code is not in the list + if ( + statusCode != null && + Array.isArray(statusCodes) && + !statusCodes.includes(statusCode) + ) { + cb(err) + return + } + + // If we reached the max number of retries + if (counter > maxRetries) { + cb(err) + return + } + + let retryAfterHeader = headers != null && headers['retry-after'] + if (retryAfterHeader) { + retryAfterHeader = Number(retryAfterHeader) + retryAfterHeader = isNaN(retryAfterHeader) + ? calculateRetryAfterHeader(retryAfterHeader) + : retryAfterHeader * 1e3 // Retry-After is in seconds + } + + const retryTimeout = + retryAfterHeader > 0 + ? Math.min(retryAfterHeader, maxTimeout) + : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout) + + state.currentTimeout = retryTimeout + + setTimeout(() => cb(null), retryTimeout) + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const headers = parseHeaders(rawHeaders) + + this.retryCount += 1 + + if (statusCode >= 300) { + this.abort( + new RequestRetryError('Request failed', statusCode, { + headers, + count: this.retryCount + }) + ) + return false + } + + // Checkpoint for resume from where we left it + if (this.resume != null) { + this.resume = null + + if (statusCode !== 206) { + return true + } + + const contentRange = parseRangeHeader(headers['content-range']) + // If no content range + if (!contentRange) { + this.abort( + new RequestRetryError('Content-Range mismatch', statusCode, { + headers, + count: this.retryCount + }) + ) + return false + } + + // Let's start with a weak etag check + if (this.etag != null && this.etag !== headers.etag) { + this.abort( + new RequestRetryError('ETag mismatch', statusCode, { + headers, + count: this.retryCount + }) + ) + return false + } + + const { start, size, end = size } = contentRange + + assert(this.start === start, 'content-range mismatch') + assert(this.end == null || this.end === end, 'content-range mismatch') + + this.resume = resume + return true + } + + if (this.end == null) { + if (statusCode === 206) { + // First time we receive 206 + const range = parseRangeHeader(headers['content-range']) + + if (range == null) { + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } + + const { start, size, end = size } = range + + assert( + start != null && Number.isFinite(start) && this.start !== start, + 'content-range mismatch' + ) + assert(Number.isFinite(start)) + assert( + end != null && Number.isFinite(end) && this.end !== end, + 'invalid content-length' + ) + + this.start = start + this.end = end + } + + // We make our best to checkpoint the body for further range headers + if (this.end == null) { + const contentLength = headers['content-length'] + this.end = contentLength != null ? Number(contentLength) : null + } + + assert(Number.isFinite(this.start)) + assert( + this.end == null || Number.isFinite(this.end), + 'invalid content-length' + ) + + this.resume = resume + this.etag = headers.etag != null ? headers.etag : null + + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } + + const err = new RequestRetryError('Request failed', statusCode, { + headers, + count: this.retryCount + }) + + this.abort(err) + + return false + } + + onData (chunk) { + this.start += chunk.length + + return this.handler.onData(chunk) + } + + onComplete (rawTrailers) { + this.retryCount = 0 + return this.handler.onComplete(rawTrailers) + } + + onError (err) { + if (this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err) + } + + this.retryOpts.retry( + err, + { + state: { counter: this.retryCount++, currentTimeout: this.retryAfter }, + opts: { retryOptions: this.retryOpts, ...this.opts } + }, + onRetry.bind(this) + ) + + function onRetry (err) { + if (err != null || this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err) + } + + if (this.start !== 0) { + this.opts = { + ...this.opts, + headers: { + ...this.opts.headers, + range: `bytes=${this.start}-${this.end ?? ''}` + } + } + } + + try { + this.dispatch(this.opts, this) + } catch (err) { + this.handler.onError(err) + } + } + } +} + +module.exports = RetryHandler + + +/***/ }), + +/***/ 3537: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const RedirectHandler = __nccwpck_require__(4021) + +function createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) { + return (dispatch) => { + return function Intercept (opts, handler) { + const { maxRedirections = defaultMaxRedirections } = opts + + if (!maxRedirections) { + return dispatch(opts, handler) + } + + const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler) + opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting. + return dispatch(opts, redirectHandler) + } + } +} + +module.exports = createRedirectInterceptor + + +/***/ }), + +/***/ 5658: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; +const utils_1 = __nccwpck_require__(5778); +// C headers +var ERROR; +(function (ERROR) { + ERROR[ERROR["OK"] = 0] = "OK"; + ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; + ERROR[ERROR["STRICT"] = 2] = "STRICT"; + ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; + ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; + ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; + ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; + ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; + ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; + ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; + ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; + ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; + ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; + ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; + ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; + ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; + ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; + ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; + ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; + ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; + ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; + ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; + ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; + ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; + ERROR[ERROR["USER"] = 24] = "USER"; +})(ERROR = exports.ERROR || (exports.ERROR = {})); +var TYPE; +(function (TYPE) { + TYPE[TYPE["BOTH"] = 0] = "BOTH"; + TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; + TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; +})(TYPE = exports.TYPE || (exports.TYPE = {})); +var FLAGS; +(function (FLAGS) { + FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; + FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; + FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; + FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; + FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; + FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; + FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; + FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; + // 1 << 8 is unused + FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; +})(FLAGS = exports.FLAGS || (exports.FLAGS = {})); +var LENIENT_FLAGS; +(function (LENIENT_FLAGS) { + LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; + LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; + LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; +})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); +var METHODS; +(function (METHODS) { + METHODS[METHODS["DELETE"] = 0] = "DELETE"; + METHODS[METHODS["GET"] = 1] = "GET"; + METHODS[METHODS["HEAD"] = 2] = "HEAD"; + METHODS[METHODS["POST"] = 3] = "POST"; + METHODS[METHODS["PUT"] = 4] = "PUT"; + /* pathological */ + METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; + METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; + METHODS[METHODS["TRACE"] = 7] = "TRACE"; + /* WebDAV */ + METHODS[METHODS["COPY"] = 8] = "COPY"; + METHODS[METHODS["LOCK"] = 9] = "LOCK"; + METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; + METHODS[METHODS["MOVE"] = 11] = "MOVE"; + METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; + METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; + METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; + METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; + METHODS[METHODS["BIND"] = 16] = "BIND"; + METHODS[METHODS["REBIND"] = 17] = "REBIND"; + METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; + METHODS[METHODS["ACL"] = 19] = "ACL"; + /* subversion */ + METHODS[METHODS["REPORT"] = 20] = "REPORT"; + METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; + METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; + METHODS[METHODS["MERGE"] = 23] = "MERGE"; + /* upnp */ + METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; + METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; + METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; + METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; + /* RFC-5789 */ + METHODS[METHODS["PATCH"] = 28] = "PATCH"; + METHODS[METHODS["PURGE"] = 29] = "PURGE"; + /* CalDAV */ + METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; + /* RFC-2068, section 19.6.1.2 */ + METHODS[METHODS["LINK"] = 31] = "LINK"; + METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; + /* icecast */ + METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; + /* RFC-7540, section 11.6 */ + METHODS[METHODS["PRI"] = 34] = "PRI"; + /* RFC-2326 RTSP */ + METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; + METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; + METHODS[METHODS["SETUP"] = 37] = "SETUP"; + METHODS[METHODS["PLAY"] = 38] = "PLAY"; + METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; + METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; + METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; + METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; + METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; + METHODS[METHODS["RECORD"] = 44] = "RECORD"; + /* RAOP */ + METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; +})(METHODS = exports.METHODS || (exports.METHODS = {})); +exports.METHODS_HTTP = [ + METHODS.DELETE, + METHODS.GET, + METHODS.HEAD, + METHODS.POST, + METHODS.PUT, + METHODS.CONNECT, + METHODS.OPTIONS, + METHODS.TRACE, + METHODS.COPY, + METHODS.LOCK, + METHODS.MKCOL, + METHODS.MOVE, + METHODS.PROPFIND, + METHODS.PROPPATCH, + METHODS.SEARCH, + METHODS.UNLOCK, + METHODS.BIND, + METHODS.REBIND, + METHODS.UNBIND, + METHODS.ACL, + METHODS.REPORT, + METHODS.MKACTIVITY, + METHODS.CHECKOUT, + METHODS.MERGE, + METHODS['M-SEARCH'], + METHODS.NOTIFY, + METHODS.SUBSCRIBE, + METHODS.UNSUBSCRIBE, + METHODS.PATCH, + METHODS.PURGE, + METHODS.MKCALENDAR, + METHODS.LINK, + METHODS.UNLINK, + METHODS.PRI, + // TODO(indutny): should we allow it with HTTP? + METHODS.SOURCE, +]; +exports.METHODS_ICE = [ + METHODS.SOURCE, +]; +exports.METHODS_RTSP = [ + METHODS.OPTIONS, + METHODS.DESCRIBE, + METHODS.ANNOUNCE, + METHODS.SETUP, + METHODS.PLAY, + METHODS.PAUSE, + METHODS.TEARDOWN, + METHODS.GET_PARAMETER, + METHODS.SET_PARAMETER, + METHODS.REDIRECT, + METHODS.RECORD, + METHODS.FLUSH, + // For AirPlay + METHODS.GET, + METHODS.POST, +]; +exports.METHOD_MAP = utils_1.enumToMap(METHODS); +exports.H_METHOD_MAP = {}; +Object.keys(exports.METHOD_MAP).forEach((key) => { + if (/^H/.test(key)) { + exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; + } +}); +var FINISH; +(function (FINISH) { + FINISH[FINISH["SAFE"] = 0] = "SAFE"; + FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; + FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; +})(FINISH = exports.FINISH || (exports.FINISH = {})); +exports.ALPHA = []; +for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { + // Upper case + exports.ALPHA.push(String.fromCharCode(i)); + // Lower case + exports.ALPHA.push(String.fromCharCode(i + 0x20)); +} +exports.NUM_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, +}; +exports.HEX_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, + A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF, + a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf, +}; +exports.NUM = [ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', +]; +exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); +exports.MARK = ['-', '_', '.', '!', '~', '*', '\'', '(', ')']; +exports.USERINFO_CHARS = exports.ALPHANUM + .concat(exports.MARK) + .concat(['%', ';', ':', '&', '=', '+', '$', ',']); +// TODO(indutny): use RFC +exports.STRICT_URL_CHAR = [ + '!', '"', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + ':', ';', '<', '=', '>', + '@', '[', '\\', ']', '^', '_', + '`', + '{', '|', '}', '~', +].concat(exports.ALPHANUM); +exports.URL_CHAR = exports.STRICT_URL_CHAR + .concat(['\t', '\f']); +// All characters with 0x80 bit set to 1 +for (let i = 0x80; i <= 0xff; i++) { + exports.URL_CHAR.push(i); +} +exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']); +/* Tokens as defined by rfc 2616. Also lowercases them. + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + */ +exports.STRICT_TOKEN = [ + '!', '#', '$', '%', '&', '\'', + '*', '+', '-', '.', + '^', '_', '`', + '|', '~', +].concat(exports.ALPHANUM); +exports.TOKEN = exports.STRICT_TOKEN.concat([' ']); +/* + * Verify that a char is a valid visible (printable) US-ASCII + * character or %x80-FF + */ +exports.HEADER_CHARS = ['\t']; +for (let i = 32; i <= 255; i++) { + if (i !== 127) { + exports.HEADER_CHARS.push(i); + } +} +// ',' = \x44 +exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); +exports.MAJOR = exports.NUM_MAP; +exports.MINOR = exports.MAJOR; +var HEADER_STATE; +(function (HEADER_STATE) { + HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; + HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; + HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; + HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; + HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; + HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; + HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; + HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; + HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; +})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); +exports.SPECIAL_HEADERS = { + 'connection': HEADER_STATE.CONNECTION, + 'content-length': HEADER_STATE.CONTENT_LENGTH, + 'proxy-connection': HEADER_STATE.CONNECTION, + 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, + 'upgrade': HEADER_STATE.UPGRADE, +}; +//# sourceMappingURL=constants.js.map + +/***/ }), + +/***/ 3008: +/***/ ((module) => { + +module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8=' + + +/***/ }), + +/***/ 9240: +/***/ ((module) => { + +module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==' + + +/***/ }), + +/***/ 5778: +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.enumToMap = void 0; +function enumToMap(obj) { + const res = {}; + Object.keys(obj).forEach((key) => { + const value = obj[key]; + if (typeof value === 'number') { + res[key] = value; + } + }); + return res; +} +exports.enumToMap = enumToMap; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 8147: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kClients } = __nccwpck_require__(249) +const Agent = __nccwpck_require__(6783) +const { + kAgent, + kMockAgentSet, + kMockAgentGet, + kDispatches, + kIsMockActive, + kNetConnect, + kGetNetConnect, + kOptions, + kFactory +} = __nccwpck_require__(6819) +const MockClient = __nccwpck_require__(7295) +const MockPool = __nccwpck_require__(6750) +const { matchValue, buildMockOptions } = __nccwpck_require__(119) +const { InvalidArgumentError, UndiciError } = __nccwpck_require__(3785) +const Dispatcher = __nccwpck_require__(1045) +const Pluralizer = __nccwpck_require__(623) +const PendingInterceptorsFormatter = __nccwpck_require__(7148) + +class FakeWeakRef { + constructor (value) { + this.value = value + } + + deref () { + return this.value + } +} + +class MockAgent extends Dispatcher { + constructor (opts) { + super(opts) + + this[kNetConnect] = true + this[kIsMockActive] = true + + // Instantiate Agent and encapsulate + if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + const agent = opts && opts.agent ? opts.agent : new Agent(opts) + this[kAgent] = agent + + this[kClients] = agent[kClients] + this[kOptions] = buildMockOptions(opts) + } + + get (origin) { + let dispatcher = this[kMockAgentGet](origin) + + if (!dispatcher) { + dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + } + return dispatcher + } + + dispatch (opts, handler) { + // Call MockAgent.get to perform additional setup before dispatching as normal + this.get(opts.origin) + return this[kAgent].dispatch(opts, handler) + } + + async close () { + await this[kAgent].close() + this[kClients].clear() + } + + deactivate () { + this[kIsMockActive] = false + } + + activate () { + this[kIsMockActive] = true + } + + enableNetConnect (matcher) { + if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) { + if (Array.isArray(this[kNetConnect])) { + this[kNetConnect].push(matcher) + } else { + this[kNetConnect] = [matcher] + } + } else if (typeof matcher === 'undefined') { + this[kNetConnect] = true + } else { + throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.') + } + } + + disableNetConnect () { + this[kNetConnect] = false + } + + // This is required to bypass issues caused by using global symbols - see: + // https://github.com/nodejs/undici/issues/1447 + get isMockActive () { + return this[kIsMockActive] + } + + [kMockAgentSet] (origin, dispatcher) { + this[kClients].set(origin, new FakeWeakRef(dispatcher)) + } + + [kFactory] (origin) { + const mockOptions = Object.assign({ agent: this }, this[kOptions]) + return this[kOptions] && this[kOptions].connections === 1 + ? new MockClient(origin, mockOptions) + : new MockPool(origin, mockOptions) + } + + [kMockAgentGet] (origin) { + // First check if we can immediately find it + const ref = this[kClients].get(origin) + if (ref) { + return ref.deref() + } + + // If the origin is not a string create a dummy parent pool and return to user + if (typeof origin !== 'string') { + const dispatcher = this[kFactory]('http://localhost:9999') + this[kMockAgentSet](origin, dispatcher) + return dispatcher + } + + // If we match, create a pool and assign the same dispatches + for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) { + const nonExplicitDispatcher = nonExplicitRef.deref() + if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) { + const dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches] + return dispatcher + } + } + } + + [kGetNetConnect] () { + return this[kNetConnect] + } + + pendingInterceptors () { + const mockAgentClients = this[kClients] + + return Array.from(mockAgentClients.entries()) + .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin }))) + .filter(({ pending }) => pending) + } + + assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { + const pending = this.pendingInterceptors() + + if (pending.length === 0) { + return + } + + const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length) + + throw new UndiciError(` +${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: + +${pendingInterceptorsFormatter.format(pending)} +`.trim()) + } +} + +module.exports = MockAgent + + +/***/ }), + +/***/ 7295: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { promisify } = __nccwpck_require__(9023) +const Client = __nccwpck_require__(5635) +const { buildMockDispatch } = __nccwpck_require__(119) +const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected +} = __nccwpck_require__(6819) +const { MockInterceptor } = __nccwpck_require__(6217) +const Symbols = __nccwpck_require__(249) +const { InvalidArgumentError } = __nccwpck_require__(3785) + +/** + * MockClient provides an API that extends the Client to influence the mockDispatches. + */ +class MockClient extends Client { + constructor (origin, opts) { + super(origin, opts) + + if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) + + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } + + get [Symbols.kConnected] () { + return this[kConnected] + } + + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept (opts) { + return new MockInterceptor(opts, this[kDispatches]) + } + + async [kClose] () { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } +} + +module.exports = MockClient + + +/***/ }), + +/***/ 4955: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { UndiciError } = __nccwpck_require__(3785) + +class MockNotMatchedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, MockNotMatchedError) + this.name = 'MockNotMatchedError' + this.message = message || 'The request does not match any registered mock dispatches' + this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED' + } +} + +module.exports = { + MockNotMatchedError +} + + +/***/ }), + +/***/ 6217: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { getResponseData, buildKey, addMockDispatch } = __nccwpck_require__(119) +const { + kDispatches, + kDispatchKey, + kDefaultHeaders, + kDefaultTrailers, + kContentLength, + kMockDispatch +} = __nccwpck_require__(6819) +const { InvalidArgumentError } = __nccwpck_require__(3785) +const { buildURL } = __nccwpck_require__(162) + +/** + * Defines the scope API for an interceptor reply + */ +class MockScope { + constructor (mockDispatch) { + this[kMockDispatch] = mockDispatch + } + + /** + * Delay a reply by a set amount in ms. + */ + delay (waitInMs) { + if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) { + throw new InvalidArgumentError('waitInMs must be a valid integer > 0') + } + + this[kMockDispatch].delay = waitInMs + return this + } + + /** + * For a defined reply, never mark as consumed. + */ + persist () { + this[kMockDispatch].persist = true + return this + } + + /** + * Allow one to define a reply for a set amount of matching requests. + */ + times (repeatTimes) { + if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { + throw new InvalidArgumentError('repeatTimes must be a valid integer > 0') + } + + this[kMockDispatch].times = repeatTimes + return this + } +} + +/** + * Defines an interceptor for a Mock + */ +class MockInterceptor { + constructor (opts, mockDispatches) { + if (typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object') + } + if (typeof opts.path === 'undefined') { + throw new InvalidArgumentError('opts.path must be defined') + } + if (typeof opts.method === 'undefined') { + opts.method = 'GET' + } + // See https://github.com/nodejs/undici/issues/1245 + // As per RFC 3986, clients are not supposed to send URI + // fragments to servers when they retrieve a document, + if (typeof opts.path === 'string') { + if (opts.query) { + opts.path = buildURL(opts.path, opts.query) + } else { + // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811 + const parsedURL = new URL(opts.path, 'data://') + opts.path = parsedURL.pathname + parsedURL.search + } + } + if (typeof opts.method === 'string') { + opts.method = opts.method.toUpperCase() + } + + this[kDispatchKey] = buildKey(opts) + this[kDispatches] = mockDispatches + this[kDefaultHeaders] = {} + this[kDefaultTrailers] = {} + this[kContentLength] = false + } + + createMockScopeDispatchData (statusCode, data, responseOptions = {}) { + const responseData = getResponseData(data) + const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {} + const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers } + const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers } + + return { statusCode, data, headers, trailers } + } + + validateReplyParameters (statusCode, data, responseOptions) { + if (typeof statusCode === 'undefined') { + throw new InvalidArgumentError('statusCode must be defined') + } + if (typeof data === 'undefined') { + throw new InvalidArgumentError('data must be defined') + } + if (typeof responseOptions !== 'object') { + throw new InvalidArgumentError('responseOptions must be an object') + } + } + + /** + * Mock an undici request with a defined reply. + */ + reply (replyData) { + // Values of reply aren't available right now as they + // can only be available when the reply callback is invoked. + if (typeof replyData === 'function') { + // We'll first wrap the provided callback in another function, + // this function will properly resolve the data from the callback + // when invoked. + const wrappedDefaultsCallback = (opts) => { + // Our reply options callback contains the parameter for statusCode, data and options. + const resolvedData = replyData(opts) + + // Check if it is in the right format + if (typeof resolvedData !== 'object') { + throw new InvalidArgumentError('reply options callback must return an object') + } + + const { statusCode, data = '', responseOptions = {} } = resolvedData + this.validateReplyParameters(statusCode, data, responseOptions) + // Since the values can be obtained immediately we return them + // from this higher order function that will be resolved later. + return { + ...this.createMockScopeDispatchData(statusCode, data, responseOptions) + } + } + + // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data. + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback) + return new MockScope(newMockDispatch) + } + + // We can have either one or three parameters, if we get here, + // we should have 1-3 parameters. So we spread the arguments of + // this function to obtain the parameters, since replyData will always + // just be the statusCode. + const [statusCode, data = '', responseOptions = {}] = [...arguments] + this.validateReplyParameters(statusCode, data, responseOptions) + + // Send in-already provided data like usual + const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions) + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData) + return new MockScope(newMockDispatch) + } + + /** + * Mock an undici request with a defined error. + */ + replyWithError (error) { + if (typeof error === 'undefined') { + throw new InvalidArgumentError('error must be defined') + } + + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }) + return new MockScope(newMockDispatch) + } + + /** + * Set default reply headers on the interceptor for subsequent replies + */ + defaultReplyHeaders (headers) { + if (typeof headers === 'undefined') { + throw new InvalidArgumentError('headers must be defined') + } + + this[kDefaultHeaders] = headers + return this + } + + /** + * Set default reply trailers on the interceptor for subsequent replies + */ + defaultReplyTrailers (trailers) { + if (typeof trailers === 'undefined') { + throw new InvalidArgumentError('trailers must be defined') + } + + this[kDefaultTrailers] = trailers + return this + } + + /** + * Set reply content length header for replies on the interceptor + */ + replyContentLength () { + this[kContentLength] = true + return this + } +} + +module.exports.MockInterceptor = MockInterceptor +module.exports.MockScope = MockScope + + +/***/ }), + +/***/ 6750: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { promisify } = __nccwpck_require__(9023) +const Pool = __nccwpck_require__(2586) +const { buildMockDispatch } = __nccwpck_require__(119) +const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected +} = __nccwpck_require__(6819) +const { MockInterceptor } = __nccwpck_require__(6217) +const Symbols = __nccwpck_require__(249) +const { InvalidArgumentError } = __nccwpck_require__(3785) + +/** + * MockPool provides an API that extends the Pool to influence the mockDispatches. + */ +class MockPool extends Pool { + constructor (origin, opts) { + super(origin, opts) + + if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) + + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } + + get [Symbols.kConnected] () { + return this[kConnected] + } + + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept (opts) { + return new MockInterceptor(opts, this[kDispatches]) + } + + async [kClose] () { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } +} + +module.exports = MockPool + + +/***/ }), + +/***/ 6819: +/***/ ((module) => { + + + +module.exports = { + kAgent: Symbol('agent'), + kOptions: Symbol('options'), + kFactory: Symbol('factory'), + kDispatches: Symbol('dispatches'), + kDispatchKey: Symbol('dispatch key'), + kDefaultHeaders: Symbol('default headers'), + kDefaultTrailers: Symbol('default trailers'), + kContentLength: Symbol('content length'), + kMockAgent: Symbol('mock agent'), + kMockAgentSet: Symbol('mock agent set'), + kMockAgentGet: Symbol('mock agent get'), + kMockDispatch: Symbol('mock dispatch'), + kClose: Symbol('close'), + kOriginalClose: Symbol('original agent close'), + kOrigin: Symbol('origin'), + kIsMockActive: Symbol('is mock active'), + kNetConnect: Symbol('net connect'), + kGetNetConnect: Symbol('get net connect'), + kConnected: Symbol('connected') +} + + +/***/ }), + +/***/ 119: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { MockNotMatchedError } = __nccwpck_require__(4955) +const { + kDispatches, + kMockAgent, + kOriginalDispatch, + kOrigin, + kGetNetConnect +} = __nccwpck_require__(6819) +const { buildURL, nop } = __nccwpck_require__(162) +const { STATUS_CODES } = __nccwpck_require__(8611) +const { + types: { + isPromise + } +} = __nccwpck_require__(9023) + +function matchValue (match, value) { + if (typeof match === 'string') { + return match === value + } + if (match instanceof RegExp) { + return match.test(value) + } + if (typeof match === 'function') { + return match(value) === true + } + return false +} + +function lowerCaseEntries (headers) { + return Object.fromEntries( + Object.entries(headers).map(([headerName, headerValue]) => { + return [headerName.toLocaleLowerCase(), headerValue] + }) + ) +} + +/** + * @param {import('../../index').Headers|string[]|Record} headers + * @param {string} key + */ +function getHeaderByName (headers, key) { + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { + return headers[i + 1] + } + } + + return undefined + } else if (typeof headers.get === 'function') { + return headers.get(key) + } else { + return lowerCaseEntries(headers)[key.toLocaleLowerCase()] + } +} + +/** @param {string[]} headers */ +function buildHeadersFromArray (headers) { // fetch HeadersList + const clone = headers.slice() + const entries = [] + for (let index = 0; index < clone.length; index += 2) { + entries.push([clone[index], clone[index + 1]]) + } + return Object.fromEntries(entries) +} + +function matchHeaders (mockDispatch, headers) { + if (typeof mockDispatch.headers === 'function') { + if (Array.isArray(headers)) { // fetch HeadersList + headers = buildHeadersFromArray(headers) + } + return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}) + } + if (typeof mockDispatch.headers === 'undefined') { + return true + } + if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') { + return false + } + + for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) { + const headerValue = getHeaderByName(headers, matchHeaderName) + + if (!matchValue(matchHeaderValue, headerValue)) { + return false + } + } + return true +} + +function safeUrl (path) { + if (typeof path !== 'string') { + return path + } + + const pathSegments = path.split('?') + + if (pathSegments.length !== 2) { + return path + } + + const qp = new URLSearchParams(pathSegments.pop()) + qp.sort() + return [...pathSegments, qp.toString()].join('?') +} + +function matchKey (mockDispatch, { path, method, body, headers }) { + const pathMatch = matchValue(mockDispatch.path, path) + const methodMatch = matchValue(mockDispatch.method, method) + const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true + const headersMatch = matchHeaders(mockDispatch, headers) + return pathMatch && methodMatch && bodyMatch && headersMatch +} + +function getResponseData (data) { + if (Buffer.isBuffer(data)) { + return data + } else if (typeof data === 'object') { + return JSON.stringify(data) + } else { + return data.toString() + } +} + +function getMockDispatch (mockDispatches, key) { + const basePath = key.query ? buildURL(key.path, key.query) : key.path + const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath + + // Match path + let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`) + } + + // Match method + matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`) + } + + // Match body + matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`) + } + + // Match headers + matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`) + } + + return matchedMockDispatches[0] +} + +function addMockDispatch (mockDispatches, key, data) { + const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false } + const replyData = typeof data === 'function' ? { callback: data } : { ...data } + const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } } + mockDispatches.push(newMockDispatch) + return newMockDispatch +} + +function deleteMockDispatch (mockDispatches, key) { + const index = mockDispatches.findIndex(dispatch => { + if (!dispatch.consumed) { + return false + } + return matchKey(dispatch, key) + }) + if (index !== -1) { + mockDispatches.splice(index, 1) + } +} + +function buildKey (opts) { + const { path, method, body, headers, query } = opts + return { + path, + method, + body, + headers, + query + } +} + +function generateKeyValues (data) { + return Object.entries(data).reduce((keyValuePairs, [key, value]) => [ + ...keyValuePairs, + Buffer.from(`${key}`), + Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`) + ], []) +} + +/** + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status + * @param {number} statusCode + */ +function getStatusText (statusCode) { + return STATUS_CODES[statusCode] || 'unknown' +} + +async function getResponse (body) { + const buffers = [] + for await (const data of body) { + buffers.push(data) + } + return Buffer.concat(buffers).toString('utf8') +} + +/** + * Mock dispatch function used to simulate undici dispatches + */ +function mockDispatch (opts, handler) { + // Get mock dispatch from built key + const key = buildKey(opts) + const mockDispatch = getMockDispatch(this[kDispatches], key) + + mockDispatch.timesInvoked++ + + // Here's where we resolve a callback if a callback is present for the dispatch data. + if (mockDispatch.data.callback) { + mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) } + } + + // Parse mockDispatch data + const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch + const { timesInvoked, times } = mockDispatch + + // If it's used up and not persistent, mark as consumed + mockDispatch.consumed = !persist && timesInvoked >= times + mockDispatch.pending = timesInvoked < times + + // If specified, trigger dispatch error + if (error !== null) { + deleteMockDispatch(this[kDispatches], key) + handler.onError(error) + return true + } + + // Handle the request with a delay if necessary + if (typeof delay === 'number' && delay > 0) { + setTimeout(() => { + handleReply(this[kDispatches]) + }, delay) + } else { + handleReply(this[kDispatches]) + } + + function handleReply (mockDispatches, _data = data) { + // fetch's HeadersList is a 1D string array + const optsHeaders = Array.isArray(opts.headers) + ? buildHeadersFromArray(opts.headers) + : opts.headers + const body = typeof _data === 'function' + ? _data({ ...opts, headers: optsHeaders }) + : _data + + // util.types.isPromise is likely needed for jest. + if (isPromise(body)) { + // If handleReply is asynchronous, throwing an error + // in the callback will reject the promise, rather than + // synchronously throw the error, which breaks some tests. + // Rather, we wait for the callback to resolve if it is a + // promise, and then re-run handleReply with the new body. + body.then((newData) => handleReply(mockDispatches, newData)) + return + } + + const responseData = getResponseData(body) + const responseHeaders = generateKeyValues(headers) + const responseTrailers = generateKeyValues(trailers) + + handler.abort = nop + handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)) + handler.onData(Buffer.from(responseData)) + handler.onComplete(responseTrailers) + deleteMockDispatch(mockDispatches, key) + } + + function resume () {} + + return true +} + +function buildMockDispatch () { + const agent = this[kMockAgent] + const origin = this[kOrigin] + const originalDispatch = this[kOriginalDispatch] + + return function dispatch (opts, handler) { + if (agent.isMockActive) { + try { + mockDispatch.call(this, opts, handler) + } catch (error) { + if (error instanceof MockNotMatchedError) { + const netConnect = agent[kGetNetConnect]() + if (netConnect === false) { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`) + } + if (checkNetConnect(netConnect, origin)) { + originalDispatch.call(this, opts, handler) + } else { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`) + } + } else { + throw error + } + } + } else { + originalDispatch.call(this, opts, handler) + } + } +} + +function checkNetConnect (netConnect, origin) { + const url = new URL(origin) + if (netConnect === true) { + return true + } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { + return true + } + return false +} + +function buildMockOptions (opts) { + if (opts) { + const { agent, ...mockOptions } = opts + return mockOptions + } +} + +module.exports = { + getResponseData, + getMockDispatch, + addMockDispatch, + deleteMockDispatch, + buildKey, + generateKeyValues, + matchValue, + getResponse, + getStatusText, + mockDispatch, + buildMockDispatch, + checkNetConnect, + buildMockOptions, + getHeaderByName +} + + +/***/ }), + +/***/ 7148: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Transform } = __nccwpck_require__(2203) +const { Console } = __nccwpck_require__(1855) + +/** + * Gets the output of `console.table(…)` as a string. + */ +module.exports = class PendingInterceptorsFormatter { + constructor ({ disableColors } = {}) { + this.transform = new Transform({ + transform (chunk, _enc, cb) { + cb(null, chunk) + } + }) + + this.logger = new Console({ + stdout: this.transform, + inspectOptions: { + colors: !disableColors && !process.env.CI + } + }) + } + + format (pendingInterceptors) { + const withPrettyHeaders = pendingInterceptors.map( + ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ + Method: method, + Origin: origin, + Path: path, + 'Status code': statusCode, + Persistent: persist ? '✅' : '❌', + Invocations: timesInvoked, + Remaining: persist ? Infinity : times - timesInvoked + })) + + this.logger.table(withPrettyHeaders) + return this.transform.read().toString() + } +} + + +/***/ }), + +/***/ 623: +/***/ ((module) => { + + + +const singulars = { + pronoun: 'it', + is: 'is', + was: 'was', + this: 'this' +} + +const plurals = { + pronoun: 'they', + is: 'are', + was: 'were', + this: 'these' +} + +module.exports = class Pluralizer { + constructor (singular, plural) { + this.singular = singular + this.plural = plural + } + + pluralize (count) { + const one = count === 1 + const keys = one ? singulars : plurals + const noun = one ? this.singular : this.plural + return { ...keys, count, noun } + } +} + + +/***/ }), + +/***/ 9115: +/***/ ((module) => { + + + + + +// Extracted from node/lib/internal/fixed_queue.js + +// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two. +const kSize = 2048; +const kMask = kSize - 1; + +// The FixedQueue is implemented as a singly-linked list of fixed-size +// circular buffers. It looks something like this: +// +// head tail +// | | +// v v +// +-----------+ <-----\ +-----------+ <------\ +-----------+ +// | [null] | \----- | next | \------- | next | +// +-----------+ +-----------+ +-----------+ +// | item | <-- bottom | item | <-- bottom | [empty] | +// | item | | item | | [empty] | +// | item | | item | | [empty] | +// | item | | item | | [empty] | +// | item | | item | bottom --> | item | +// | item | | item | | item | +// | ... | | ... | | ... | +// | item | | item | | item | +// | item | | item | | item | +// | [empty] | <-- top | item | | item | +// | [empty] | | item | | item | +// | [empty] | | [empty] | <-- top top --> | [empty] | +// +-----------+ +-----------+ +-----------+ +// +// Or, if there is only one circular buffer, it looks something +// like either of these: +// +// head tail head tail +// | | | | +// v v v v +// +-----------+ +-----------+ +// | [null] | | [null] | +// +-----------+ +-----------+ +// | [empty] | | item | +// | [empty] | | item | +// | item | <-- bottom top --> | [empty] | +// | item | | [empty] | +// | [empty] | <-- top bottom --> | item | +// | [empty] | | item | +// +-----------+ +-----------+ +// +// Adding a value means moving `top` forward by one, removing means +// moving `bottom` forward by one. After reaching the end, the queue +// wraps around. +// +// When `top === bottom` the current queue is empty and when +// `top + 1 === bottom` it's full. This wastes a single space of storage +// but allows much quicker checks. + +class FixedCircularBuffer { + constructor() { + this.bottom = 0; + this.top = 0; + this.list = new Array(kSize); + this.next = null; + } + + isEmpty() { + return this.top === this.bottom; + } + + isFull() { + return ((this.top + 1) & kMask) === this.bottom; + } + + push(data) { + this.list[this.top] = data; + this.top = (this.top + 1) & kMask; + } + + shift() { + const nextItem = this.list[this.bottom]; + if (nextItem === undefined) + return null; + this.list[this.bottom] = undefined; + this.bottom = (this.bottom + 1) & kMask; + return nextItem; + } +} + +module.exports = class FixedQueue { + constructor() { + this.head = this.tail = new FixedCircularBuffer(); + } + + isEmpty() { + return this.head.isEmpty(); + } + + push(data) { + if (this.head.isFull()) { + // Head is full: Creates a new queue, sets the old queue's `.next` to it, + // and sets it as the new main queue. + this.head = this.head.next = new FixedCircularBuffer(); + } + this.head.push(data); + } + + shift() { + const tail = this.tail; + const next = tail.shift(); + if (tail.isEmpty() && tail.next !== null) { + // If there is another queue, it forms the new tail. + this.tail = tail.next; + } + return next; + } +}; + + +/***/ }), + +/***/ 9538: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const DispatcherBase = __nccwpck_require__(6215) +const FixedQueue = __nccwpck_require__(9115) +const { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = __nccwpck_require__(249) +const PoolStats = __nccwpck_require__(9988) + +const kClients = Symbol('clients') +const kNeedDrain = Symbol('needDrain') +const kQueue = Symbol('queue') +const kClosedResolve = Symbol('closed resolve') +const kOnDrain = Symbol('onDrain') +const kOnConnect = Symbol('onConnect') +const kOnDisconnect = Symbol('onDisconnect') +const kOnConnectionError = Symbol('onConnectionError') +const kGetDispatcher = Symbol('get dispatcher') +const kAddClient = Symbol('add client') +const kRemoveClient = Symbol('remove client') +const kStats = Symbol('stats') + +class PoolBase extends DispatcherBase { + constructor () { + super() + + this[kQueue] = new FixedQueue() + this[kClients] = [] + this[kQueued] = 0 + + const pool = this + + this[kOnDrain] = function onDrain (origin, targets) { + const queue = pool[kQueue] + + let needDrain = false + + while (!needDrain) { + const item = queue.shift() + if (!item) { + break + } + pool[kQueued]-- + needDrain = !this.dispatch(item.opts, item.handler) + } + + this[kNeedDrain] = needDrain + + if (!this[kNeedDrain] && pool[kNeedDrain]) { + pool[kNeedDrain] = false + pool.emit('drain', origin, [pool, ...targets]) + } + + if (pool[kClosedResolve] && queue.isEmpty()) { + Promise + .all(pool[kClients].map(c => c.close())) + .then(pool[kClosedResolve]) + } + } + + this[kOnConnect] = (origin, targets) => { + pool.emit('connect', origin, [pool, ...targets]) + } + + this[kOnDisconnect] = (origin, targets, err) => { + pool.emit('disconnect', origin, [pool, ...targets], err) + } + + this[kOnConnectionError] = (origin, targets, err) => { + pool.emit('connectionError', origin, [pool, ...targets], err) + } + + this[kStats] = new PoolStats(this) + } + + get [kBusy] () { + return this[kNeedDrain] + } + + get [kConnected] () { + return this[kClients].filter(client => client[kConnected]).length + } + + get [kFree] () { + return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length + } + + get [kPending] () { + let ret = this[kQueued] + for (const { [kPending]: pending } of this[kClients]) { + ret += pending + } + return ret + } + + get [kRunning] () { + let ret = 0 + for (const { [kRunning]: running } of this[kClients]) { + ret += running + } + return ret + } + + get [kSize] () { + let ret = this[kQueued] + for (const { [kSize]: size } of this[kClients]) { + ret += size + } + return ret + } + + get stats () { + return this[kStats] + } + + async [kClose] () { + if (this[kQueue].isEmpty()) { + return Promise.all(this[kClients].map(c => c.close())) + } else { + return new Promise((resolve) => { + this[kClosedResolve] = resolve + }) + } + } + + async [kDestroy] (err) { + while (true) { + const item = this[kQueue].shift() + if (!item) { + break + } + item.handler.onError(err) + } + + return Promise.all(this[kClients].map(c => c.destroy(err))) + } + + [kDispatch] (opts, handler) { + const dispatcher = this[kGetDispatcher]() + + if (!dispatcher) { + this[kNeedDrain] = true + this[kQueue].push({ opts, handler }) + this[kQueued]++ + } else if (!dispatcher.dispatch(opts, handler)) { + dispatcher[kNeedDrain] = true + this[kNeedDrain] = !this[kGetDispatcher]() + } + + return !this[kNeedDrain] + } + + [kAddClient] (client) { + client + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) + + this[kClients].push(client) + + if (this[kNeedDrain]) { + process.nextTick(() => { + if (this[kNeedDrain]) { + this[kOnDrain](client[kUrl], [this, client]) + } + }) + } + + return this + } + + [kRemoveClient] (client) { + client.close(() => { + const idx = this[kClients].indexOf(client) + if (idx !== -1) { + this[kClients].splice(idx, 1) + } + }) + + this[kNeedDrain] = this[kClients].some(dispatcher => ( + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + )) + } +} + +module.exports = { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher +} + + +/***/ }), + +/***/ 9988: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = __nccwpck_require__(249) +const kPool = Symbol('pool') + +class PoolStats { + constructor (pool) { + this[kPool] = pool + } + + get connected () { + return this[kPool][kConnected] + } + + get free () { + return this[kPool][kFree] + } + + get pending () { + return this[kPool][kPending] + } + + get queued () { + return this[kPool][kQueued] + } + + get running () { + return this[kPool][kRunning] + } + + get size () { + return this[kPool][kSize] + } +} + +module.exports = PoolStats + + +/***/ }), + +/***/ 2586: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kGetDispatcher +} = __nccwpck_require__(9538) +const Client = __nccwpck_require__(5635) +const { + InvalidArgumentError +} = __nccwpck_require__(3785) +const util = __nccwpck_require__(162) +const { kUrl, kInterceptors } = __nccwpck_require__(249) +const buildConnector = __nccwpck_require__(5786) + +const kOptions = Symbol('options') +const kConnections = Symbol('connections') +const kFactory = Symbol('factory') + +function defaultFactory (origin, opts) { + return new Client(origin, opts) +} + +class Pool extends PoolBase { + constructor (origin, { + connections, + factory = defaultFactory, + connect, + connectTimeout, + tls, + maxCachedSessions, + socketPath, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + allowH2, + ...options + } = {}) { + super() + + if (connections != null && (!Number.isFinite(connections) || connections < 0)) { + throw new InvalidArgumentError('invalid connections') + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), + ...connect + }) + } + + this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) + ? options.interceptors.Pool + : [] + this[kConnections] = connections || null + this[kUrl] = util.parseOrigin(origin) + this[kOptions] = { ...util.deepClone(options), connect, allowH2 } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kFactory] = factory + } + + [kGetDispatcher] () { + let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain]) + + if (dispatcher) { + return dispatcher + } + + if (!this[kConnections] || this[kClients].length < this[kConnections]) { + dispatcher = this[kFactory](this[kUrl], this[kOptions]) + this[kAddClient](dispatcher) + } + + return dispatcher + } +} + +module.exports = Pool + + +/***/ }), + +/***/ 1354: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kProxy, kClose, kDestroy, kInterceptors } = __nccwpck_require__(249) +const { URL } = __nccwpck_require__(7016) +const Agent = __nccwpck_require__(6783) +const Pool = __nccwpck_require__(2586) +const DispatcherBase = __nccwpck_require__(6215) +const { InvalidArgumentError, RequestAbortedError } = __nccwpck_require__(3785) +const buildConnector = __nccwpck_require__(5786) + +const kAgent = Symbol('proxy agent') +const kClient = Symbol('proxy client') +const kProxyHeaders = Symbol('proxy headers') +const kRequestTls = Symbol('request tls settings') +const kProxyTls = Symbol('proxy tls settings') +const kConnectEndpoint = Symbol('connect endpoint function') + +function defaultProtocolPort (protocol) { + return protocol === 'https:' ? 443 : 80 +} + +function buildProxyOptions (opts) { + if (typeof opts === 'string') { + opts = { uri: opts } + } + + if (!opts || !opts.uri) { + throw new InvalidArgumentError('Proxy opts.uri is mandatory') + } + + return { + uri: opts.uri, + protocol: opts.protocol || 'https' + } +} + +function defaultFactory (origin, opts) { + return new Pool(origin, opts) +} + +class ProxyAgent extends DispatcherBase { + constructor (opts) { + super(opts) + this[kProxy] = buildProxyOptions(opts) + this[kAgent] = new Agent(opts) + this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) + ? opts.interceptors.ProxyAgent + : [] + + if (typeof opts === 'string') { + opts = { uri: opts } + } + + if (!opts || !opts.uri) { + throw new InvalidArgumentError('Proxy opts.uri is mandatory') + } + + const { clientFactory = defaultFactory } = opts + + if (typeof clientFactory !== 'function') { + throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.') + } + + this[kRequestTls] = opts.requestTls + this[kProxyTls] = opts.proxyTls + this[kProxyHeaders] = opts.headers || {} + + const resolvedUrl = new URL(opts.uri) + const { origin, port, host, username, password } = resolvedUrl + + if (opts.auth && opts.token) { + throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token') + } else if (opts.auth) { + /* @deprecated in favour of opts.token */ + this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}` + } else if (opts.token) { + this[kProxyHeaders]['proxy-authorization'] = opts.token + } else if (username && password) { + this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}` + } + + const connect = buildConnector({ ...opts.proxyTls }) + this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }) + this[kClient] = clientFactory(resolvedUrl, { connect }) + this[kAgent] = new Agent({ + ...opts, + connect: async (opts, callback) => { + let requestedHost = opts.host + if (!opts.port) { + requestedHost += `:${defaultProtocolPort(opts.protocol)}` + } + try { + const { socket, statusCode } = await this[kClient].connect({ + origin, + port, + path: requestedHost, + signal: opts.signal, + headers: { + ...this[kProxyHeaders], + host + } + }) + if (statusCode !== 200) { + socket.on('error', () => {}).destroy() + callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)) + } + if (opts.protocol !== 'https:') { + callback(null, socket) + return + } + let servername + if (this[kRequestTls]) { + servername = this[kRequestTls].servername + } else { + servername = opts.servername + } + this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback) + } catch (err) { + callback(err) + } + } + }) + } + + dispatch (opts, handler) { + const { host } = new URL(opts.origin) + const headers = buildHeaders(opts.headers) + throwIfProxyAuthIsSent(headers) + return this[kAgent].dispatch( + { + ...opts, + headers: { + ...headers, + host + } + }, + handler + ) + } + + async [kClose] () { + await this[kAgent].close() + await this[kClient].close() + } + + async [kDestroy] () { + await this[kAgent].destroy() + await this[kClient].destroy() + } +} + +/** + * @param {string[] | Record} headers + * @returns {Record} + */ +function buildHeaders (headers) { + // When using undici.fetch, the headers list is stored + // as an array. + if (Array.isArray(headers)) { + /** @type {Record} */ + const headersPair = {} + + for (let i = 0; i < headers.length; i += 2) { + headersPair[headers[i]] = headers[i + 1] + } + + return headersPair + } + + return headers +} + +/** + * @param {Record} headers + * + * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers + * Nevertheless, it was changed and to avoid a security vulnerability by end users + * this check was created. + * It should be removed in the next major version for performance reasons + */ +function throwIfProxyAuthIsSent (headers) { + const existProxyAuth = headers && Object.keys(headers) + .find((key) => key.toLowerCase() === 'proxy-authorization') + if (existProxyAuth) { + throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor') + } +} + +module.exports = ProxyAgent + + +/***/ }), + +/***/ 7034: +/***/ ((module) => { + + + +let fastNow = Date.now() +let fastNowTimeout + +const fastTimers = [] + +function onTimeout () { + fastNow = Date.now() + + let len = fastTimers.length + let idx = 0 + while (idx < len) { + const timer = fastTimers[idx] + + if (timer.state === 0) { + timer.state = fastNow + timer.delay + } else if (timer.state > 0 && fastNow >= timer.state) { + timer.state = -1 + timer.callback(timer.opaque) + } + + if (timer.state === -1) { + timer.state = -2 + if (idx !== len - 1) { + fastTimers[idx] = fastTimers.pop() + } else { + fastTimers.pop() + } + len -= 1 + } else { + idx += 1 + } + } + + if (fastTimers.length > 0) { + refreshTimeout() + } +} + +function refreshTimeout () { + if (fastNowTimeout && fastNowTimeout.refresh) { + fastNowTimeout.refresh() + } else { + clearTimeout(fastNowTimeout) + fastNowTimeout = setTimeout(onTimeout, 1e3) + if (fastNowTimeout.unref) { + fastNowTimeout.unref() + } + } +} + +class Timeout { + constructor (callback, delay, opaque) { + this.callback = callback + this.delay = delay + this.opaque = opaque + + // -2 not in timer list + // -1 in timer list but inactive + // 0 in timer list waiting for time + // > 0 in timer list waiting for time to expire + this.state = -2 + + this.refresh() + } + + refresh () { + if (this.state === -2) { + fastTimers.push(this) + if (!fastNowTimeout || fastTimers.length === 1) { + refreshTimeout() + } + } + + this.state = 0 + } + + clear () { + this.state = -1 + } +} + +module.exports = { + setTimeout (callback, delay, opaque) { + return delay < 1e3 + ? setTimeout(callback, delay, opaque) + : new Timeout(callback, delay, opaque) + }, + clearTimeout (timeout) { + if (timeout instanceof Timeout) { + timeout.clear() + } else { + clearTimeout(timeout) + } + } +} + + +/***/ }), + +/***/ 5188: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const diagnosticsChannel = __nccwpck_require__(1637) +const { uid, states } = __nccwpck_require__(5455) +const { + kReadyState, + kSentClose, + kByteParser, + kReceivedClose +} = __nccwpck_require__(8075) +const { fireEvent, failWebsocketConnection } = __nccwpck_require__(7264) +const { CloseEvent } = __nccwpck_require__(4509) +const { makeRequest } = __nccwpck_require__(4960) +const { fetching } = __nccwpck_require__(3397) +const { Headers } = __nccwpck_require__(6203) +const { getGlobalDispatcher } = __nccwpck_require__(8127) +const { kHeadersList } = __nccwpck_require__(249) + +const channels = {} +channels.open = diagnosticsChannel.channel('undici:websocket:open') +channels.close = diagnosticsChannel.channel('undici:websocket:close') +channels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error') + +/** @type {import('crypto')} */ +let crypto +try { + crypto = __nccwpck_require__(6982) +} catch { + +} + +/** + * @see https://websockets.spec.whatwg.org/#concept-websocket-establish + * @param {URL} url + * @param {string|string[]} protocols + * @param {import('./websocket').WebSocket} ws + * @param {(response: any) => void} onEstablish + * @param {Partial} options + */ +function establishWebSocketConnection (url, protocols, ws, onEstablish, options) { + // 1. Let requestURL be a copy of url, with its scheme set to "http", if url’s + // scheme is "ws", and to "https" otherwise. + const requestURL = url + + requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:' + + // 2. Let request be a new request, whose URL is requestURL, client is client, + // service-workers mode is "none", referrer is "no-referrer", mode is + // "websocket", credentials mode is "include", cache mode is "no-store" , + // and redirect mode is "error". + const request = makeRequest({ + urlList: [requestURL], + serviceWorkers: 'none', + referrer: 'no-referrer', + mode: 'websocket', + credentials: 'include', + cache: 'no-store', + redirect: 'error' + }) + + // Note: undici extension, allow setting custom headers. + if (options.headers) { + const headersList = new Headers(options.headers)[kHeadersList] + + request.headersList = headersList + } + + // 3. Append (`Upgrade`, `websocket`) to request’s header list. + // 4. Append (`Connection`, `Upgrade`) to request’s header list. + // Note: both of these are handled by undici currently. + // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397 + + // 5. Let keyValue be a nonce consisting of a randomly selected + // 16-byte value that has been forgiving-base64-encoded and + // isomorphic encoded. + const keyValue = crypto.randomBytes(16).toString('base64') + + // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s + // header list. + request.headersList.append('sec-websocket-key', keyValue) + + // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s + // header list. + request.headersList.append('sec-websocket-version', '13') + + // 8. For each protocol in protocols, combine + // (`Sec-WebSocket-Protocol`, protocol) in request’s header + // list. + for (const protocol of protocols) { + request.headersList.append('sec-websocket-protocol', protocol) + } + + // 9. Let permessageDeflate be a user-agent defined + // "permessage-deflate" extension header value. + // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673 + // TODO: enable once permessage-deflate is supported + const permessageDeflate = '' // 'permessage-deflate; 15' + + // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to + // request’s header list. + // request.headersList.append('sec-websocket-extensions', permessageDeflate) + + // 11. Fetch request with useParallelQueue set to true, and + // processResponse given response being these steps: + const controller = fetching({ + request, + useParallelQueue: true, + dispatcher: options.dispatcher ?? getGlobalDispatcher(), + processResponse (response) { + // 1. If response is a network error or its status is not 101, + // fail the WebSocket connection. + if (response.type === 'error' || response.status !== 101) { + failWebsocketConnection(ws, 'Received network error or non-101 status code.') + return + } + + // 2. If protocols is not the empty list and extracting header + // list values given `Sec-WebSocket-Protocol` and response’s + // header list results in null, failure, or the empty byte + // sequence, then fail the WebSocket connection. + if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) { + failWebsocketConnection(ws, 'Server did not respond with sent protocols.') + return + } + + // 3. Follow the requirements stated step 2 to step 6, inclusive, + // of the last set of steps in section 4.1 of The WebSocket + // Protocol to validate response. This either results in fail + // the WebSocket connection or the WebSocket connection is + // established. + + // 2. If the response lacks an |Upgrade| header field or the |Upgrade| + // header field contains a value that is not an ASCII case- + // insensitive match for the value "websocket", the client MUST + // _Fail the WebSocket Connection_. + if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') { + failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".') + return + } + + // 3. If the response lacks a |Connection| header field or the + // |Connection| header field doesn't contain a token that is an + // ASCII case-insensitive match for the value "Upgrade", the client + // MUST _Fail the WebSocket Connection_. + if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') { + failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".') + return + } + + // 4. If the response lacks a |Sec-WebSocket-Accept| header field or + // the |Sec-WebSocket-Accept| contains a value other than the + // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket- + // Key| (as a string, not base64-decoded) with the string "258EAFA5- + // E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and + // trailing whitespace, the client MUST _Fail the WebSocket + // Connection_. + const secWSAccept = response.headersList.get('Sec-WebSocket-Accept') + const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64') + if (secWSAccept !== digest) { + failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.') + return + } + + // 5. If the response includes a |Sec-WebSocket-Extensions| header + // field and this header field indicates the use of an extension + // that was not present in the client's handshake (the server has + // indicated an extension not requested by the client), the client + // MUST _Fail the WebSocket Connection_. (The parsing of this + // header field to determine which extensions are requested is + // discussed in Section 9.1.) + const secExtension = response.headersList.get('Sec-WebSocket-Extensions') + + if (secExtension !== null && secExtension !== permessageDeflate) { + failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.') + return + } + + // 6. If the response includes a |Sec-WebSocket-Protocol| header field + // and this header field indicates the use of a subprotocol that was + // not present in the client's handshake (the server has indicated a + // subprotocol not requested by the client), the client MUST _Fail + // the WebSocket Connection_. + const secProtocol = response.headersList.get('Sec-WebSocket-Protocol') + + if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) { + failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.') + return + } + + response.socket.on('data', onSocketData) + response.socket.on('close', onSocketClose) + response.socket.on('error', onSocketError) + + if (channels.open.hasSubscribers) { + channels.open.publish({ + address: response.socket.address(), + protocol: secProtocol, + extensions: secExtension + }) + } + + onEstablish(response) + } + }) + + return controller +} + +/** + * @param {Buffer} chunk + */ +function onSocketData (chunk) { + if (!this.ws[kByteParser].write(chunk)) { + this.pause() + } +} + +/** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4 + */ +function onSocketClose () { + const { ws } = this + + // If the TCP connection was closed after the + // WebSocket closing handshake was completed, the WebSocket connection + // is said to have been closed _cleanly_. + const wasClean = ws[kSentClose] && ws[kReceivedClose] + + let code = 1005 + let reason = '' + + const result = ws[kByteParser].closingInfo + + if (result) { + code = result.code ?? 1005 + reason = result.reason + } else if (!ws[kSentClose]) { + // If _The WebSocket + // Connection is Closed_ and no Close control frame was received by the + // endpoint (such as could occur if the underlying transport connection + // is lost), _The WebSocket Connection Close Code_ is considered to be + // 1006. + code = 1006 + } + + // 1. Change the ready state to CLOSED (3). + ws[kReadyState] = states.CLOSED + + // 2. If the user agent was required to fail the WebSocket + // connection, or if the WebSocket connection was closed + // after being flagged as full, fire an event named error + // at the WebSocket object. + // TODO + + // 3. Fire an event named close at the WebSocket object, + // using CloseEvent, with the wasClean attribute + // initialized to true if the connection closed cleanly + // and false otherwise, the code attribute initialized to + // the WebSocket connection close code, and the reason + // attribute initialized to the result of applying UTF-8 + // decode without BOM to the WebSocket connection close + // reason. + fireEvent('close', ws, CloseEvent, { + wasClean, code, reason + }) + + if (channels.close.hasSubscribers) { + channels.close.publish({ + websocket: ws, + code, + reason + }) + } +} + +function onSocketError (error) { + const { ws } = this + + ws[kReadyState] = states.CLOSING + + if (channels.socketError.hasSubscribers) { + channels.socketError.publish(error) + } + + this.destroy() +} + +module.exports = { + establishWebSocketConnection +} + + +/***/ }), + +/***/ 5455: +/***/ ((module) => { + + + +// This is a Globally Unique Identifier unique used +// to validate that the endpoint accepts websocket +// connections. +// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3 +const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' + +/** @type {PropertyDescriptor} */ +const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false +} + +const states = { + CONNECTING: 0, + OPEN: 1, + CLOSING: 2, + CLOSED: 3 +} + +const opcodes = { + CONTINUATION: 0x0, + TEXT: 0x1, + BINARY: 0x2, + CLOSE: 0x8, + PING: 0x9, + PONG: 0xA +} + +const maxUnsigned16Bit = 2 ** 16 - 1 // 65535 + +const parserStates = { + INFO: 0, + PAYLOADLENGTH_16: 2, + PAYLOADLENGTH_64: 3, + READ_DATA: 4 +} + +const emptyBuffer = Buffer.allocUnsafe(0) + +module.exports = { + uid, + staticPropertyDescriptors, + states, + opcodes, + maxUnsigned16Bit, + parserStates, + emptyBuffer +} + + +/***/ }), + +/***/ 4509: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { webidl } = __nccwpck_require__(7472) +const { kEnumerableProperty } = __nccwpck_require__(162) +const { MessagePort } = __nccwpck_require__(8167) + +/** + * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent + */ +class MessageEvent extends Event { + #eventInit + + constructor (type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' }) + + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.MessageEventInit(eventInitDict) + + super(type, eventInitDict) + + this.#eventInit = eventInitDict + } + + get data () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.data + } + + get origin () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.origin + } + + get lastEventId () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.lastEventId + } + + get source () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.source + } + + get ports () { + webidl.brandCheck(this, MessageEvent) + + if (!Object.isFrozen(this.#eventInit.ports)) { + Object.freeze(this.#eventInit.ports) + } + + return this.#eventInit.ports + } + + initMessageEvent ( + type, + bubbles = false, + cancelable = false, + data = null, + origin = '', + lastEventId = '', + source = null, + ports = [] + ) { + webidl.brandCheck(this, MessageEvent) + + webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' }) + + return new MessageEvent(type, { + bubbles, cancelable, data, origin, lastEventId, source, ports + }) + } +} + +/** + * @see https://websockets.spec.whatwg.org/#the-closeevent-interface + */ +class CloseEvent extends Event { + #eventInit + + constructor (type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' }) + + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.CloseEventInit(eventInitDict) + + super(type, eventInitDict) + + this.#eventInit = eventInitDict + } + + get wasClean () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.wasClean + } + + get code () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.code + } + + get reason () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.reason + } +} + +// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface +class ErrorEvent extends Event { + #eventInit + + constructor (type, eventInitDict) { + webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' }) + + super(type, eventInitDict) + + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}) + + this.#eventInit = eventInitDict + } + + get message () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.message + } + + get filename () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.filename + } + + get lineno () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.lineno + } + + get colno () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.colno + } + + get error () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.error + } +} + +Object.defineProperties(MessageEvent.prototype, { + [Symbol.toStringTag]: { + value: 'MessageEvent', + configurable: true + }, + data: kEnumerableProperty, + origin: kEnumerableProperty, + lastEventId: kEnumerableProperty, + source: kEnumerableProperty, + ports: kEnumerableProperty, + initMessageEvent: kEnumerableProperty +}) + +Object.defineProperties(CloseEvent.prototype, { + [Symbol.toStringTag]: { + value: 'CloseEvent', + configurable: true + }, + reason: kEnumerableProperty, + code: kEnumerableProperty, + wasClean: kEnumerableProperty +}) + +Object.defineProperties(ErrorEvent.prototype, { + [Symbol.toStringTag]: { + value: 'ErrorEvent', + configurable: true + }, + message: kEnumerableProperty, + filename: kEnumerableProperty, + lineno: kEnumerableProperty, + colno: kEnumerableProperty, + error: kEnumerableProperty +}) + +webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.MessagePort +) + +const eventInit = [ + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: false + } +] + +webidl.converters.MessageEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'data', + converter: webidl.converters.any, + defaultValue: null + }, + { + key: 'origin', + converter: webidl.converters.USVString, + defaultValue: '' + }, + { + key: 'lastEventId', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'source', + // Node doesn't implement WindowProxy or ServiceWorker, so the only + // valid value for source is a MessagePort. + converter: webidl.nullableConverter(webidl.converters.MessagePort), + defaultValue: null + }, + { + key: 'ports', + converter: webidl.converters['sequence'], + get defaultValue () { + return [] + } + } +]) + +webidl.converters.CloseEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'wasClean', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'code', + converter: webidl.converters['unsigned short'], + defaultValue: 0 + }, + { + key: 'reason', + converter: webidl.converters.USVString, + defaultValue: '' + } +]) + +webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'message', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'filename', + converter: webidl.converters.USVString, + defaultValue: '' + }, + { + key: 'lineno', + converter: webidl.converters['unsigned long'], + defaultValue: 0 + }, + { + key: 'colno', + converter: webidl.converters['unsigned long'], + defaultValue: 0 + }, + { + key: 'error', + converter: webidl.converters.any + } +]) + +module.exports = { + MessageEvent, + CloseEvent, + ErrorEvent +} + + +/***/ }), + +/***/ 7315: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { maxUnsigned16Bit } = __nccwpck_require__(5455) + +/** @type {import('crypto')} */ +let crypto +try { + crypto = __nccwpck_require__(6982) +} catch { + +} + +class WebsocketFrameSend { + /** + * @param {Buffer|undefined} data + */ + constructor (data) { + this.frameData = data + this.maskKey = crypto.randomBytes(4) + } + + createFrame (opcode) { + const bodyLength = this.frameData?.byteLength ?? 0 + + /** @type {number} */ + let payloadLength = bodyLength // 0-125 + let offset = 6 + + if (bodyLength > maxUnsigned16Bit) { + offset += 8 // payload length is next 8 bytes + payloadLength = 127 + } else if (bodyLength > 125) { + offset += 2 // payload length is next 2 bytes + payloadLength = 126 + } + + const buffer = Buffer.allocUnsafe(bodyLength + offset) + + // Clear first 2 bytes, everything else is overwritten + buffer[0] = buffer[1] = 0 + buffer[0] |= 0x80 // FIN + buffer[0] = (buffer[0] & 0xF0) + opcode // opcode + + /*! ws. MIT License. Einar Otto Stangvik */ + buffer[offset - 4] = this.maskKey[0] + buffer[offset - 3] = this.maskKey[1] + buffer[offset - 2] = this.maskKey[2] + buffer[offset - 1] = this.maskKey[3] + + buffer[1] = payloadLength + + if (payloadLength === 126) { + buffer.writeUInt16BE(bodyLength, 2) + } else if (payloadLength === 127) { + // Clear extended payload length + buffer[2] = buffer[3] = 0 + buffer.writeUIntBE(bodyLength, 4, 6) + } + + buffer[1] |= 0x80 // MASK + + // mask body + for (let i = 0; i < bodyLength; i++) { + buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4] + } + + return buffer + } +} + +module.exports = { + WebsocketFrameSend +} + + +/***/ }), + +/***/ 93: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Writable } = __nccwpck_require__(2203) +const diagnosticsChannel = __nccwpck_require__(1637) +const { parserStates, opcodes, states, emptyBuffer } = __nccwpck_require__(5455) +const { kReadyState, kSentClose, kResponse, kReceivedClose } = __nccwpck_require__(8075) +const { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = __nccwpck_require__(7264) +const { WebsocketFrameSend } = __nccwpck_require__(7315) + +// This code was influenced by ws released under the MIT license. +// Copyright (c) 2011 Einar Otto Stangvik +// Copyright (c) 2013 Arnout Kazemier and contributors +// Copyright (c) 2016 Luigi Pinca and contributors + +const channels = {} +channels.ping = diagnosticsChannel.channel('undici:websocket:ping') +channels.pong = diagnosticsChannel.channel('undici:websocket:pong') + +class ByteParser extends Writable { + #buffers = [] + #byteOffset = 0 + + #state = parserStates.INFO + + #info = {} + #fragments = [] + + constructor (ws) { + super() + + this.ws = ws + } + + /** + * @param {Buffer} chunk + * @param {() => void} callback + */ + _write (chunk, _, callback) { + this.#buffers.push(chunk) + this.#byteOffset += chunk.length + + this.run(callback) + } + + /** + * Runs whenever a new chunk is received. + * Callback is called whenever there are no more chunks buffering, + * or not enough bytes are buffered to parse. + */ + run (callback) { + while (true) { + if (this.#state === parserStates.INFO) { + // If there aren't enough bytes to parse the payload length, etc. + if (this.#byteOffset < 2) { + return callback() + } + + const buffer = this.consume(2) + + this.#info.fin = (buffer[0] & 0x80) !== 0 + this.#info.opcode = buffer[0] & 0x0F + + // If we receive a fragmented message, we use the type of the first + // frame to parse the full message as binary/text, when it's terminated + this.#info.originalOpcode ??= this.#info.opcode + + this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION + + if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) { + // Only text and binary frames can be fragmented + failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.') + return + } + + const payloadLength = buffer[1] & 0x7F + + if (payloadLength <= 125) { + this.#info.payloadLength = payloadLength + this.#state = parserStates.READ_DATA + } else if (payloadLength === 126) { + this.#state = parserStates.PAYLOADLENGTH_16 + } else if (payloadLength === 127) { + this.#state = parserStates.PAYLOADLENGTH_64 + } + + if (this.#info.fragmented && payloadLength > 125) { + // A fragmented frame can't be fragmented itself + failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.') + return + } else if ( + (this.#info.opcode === opcodes.PING || + this.#info.opcode === opcodes.PONG || + this.#info.opcode === opcodes.CLOSE) && + payloadLength > 125 + ) { + // Control frames can have a payload length of 125 bytes MAX + failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.') + return + } else if (this.#info.opcode === opcodes.CLOSE) { + if (payloadLength === 1) { + failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.') + return + } + + const body = this.consume(payloadLength) + + this.#info.closeInfo = this.parseCloseBody(false, body) + + if (!this.ws[kSentClose]) { + // If an endpoint receives a Close frame and did not previously send a + // Close frame, the endpoint MUST send a Close frame in response. (When + // sending a Close frame in response, the endpoint typically echos the + // status code it received.) + const body = Buffer.allocUnsafe(2) + body.writeUInt16BE(this.#info.closeInfo.code, 0) + const closeFrame = new WebsocketFrameSend(body) + + this.ws[kResponse].socket.write( + closeFrame.createFrame(opcodes.CLOSE), + (err) => { + if (!err) { + this.ws[kSentClose] = true + } + } + ) + } + + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + this.ws[kReadyState] = states.CLOSING + this.ws[kReceivedClose] = true + + this.end() + + return + } else if (this.#info.opcode === opcodes.PING) { + // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in + // response, unless it already received a Close frame. + // A Pong frame sent in response to a Ping frame must have identical + // "Application data" + + const body = this.consume(payloadLength) + + if (!this.ws[kReceivedClose]) { + const frame = new WebsocketFrameSend(body) + + this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)) + + if (channels.ping.hasSubscribers) { + channels.ping.publish({ + payload: body + }) + } + } + + this.#state = parserStates.INFO + + if (this.#byteOffset > 0) { + continue + } else { + callback() + return + } + } else if (this.#info.opcode === opcodes.PONG) { + // A Pong frame MAY be sent unsolicited. This serves as a + // unidirectional heartbeat. A response to an unsolicited Pong frame is + // not expected. + + const body = this.consume(payloadLength) + + if (channels.pong.hasSubscribers) { + channels.pong.publish({ + payload: body + }) + } + + if (this.#byteOffset > 0) { + continue + } else { + callback() + return + } + } + } else if (this.#state === parserStates.PAYLOADLENGTH_16) { + if (this.#byteOffset < 2) { + return callback() + } + + const buffer = this.consume(2) + + this.#info.payloadLength = buffer.readUInt16BE(0) + this.#state = parserStates.READ_DATA + } else if (this.#state === parserStates.PAYLOADLENGTH_64) { + if (this.#byteOffset < 8) { + return callback() + } + + const buffer = this.consume(8) + const upper = buffer.readUInt32BE(0) + + // 2^31 is the maxinimum bytes an arraybuffer can contain + // on 32-bit systems. Although, on 64-bit systems, this is + // 2^53-1 bytes. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275 + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e + if (upper > 2 ** 31 - 1) { + failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.') + return + } + + const lower = buffer.readUInt32BE(4) + + this.#info.payloadLength = (upper << 8) + lower + this.#state = parserStates.READ_DATA + } else if (this.#state === parserStates.READ_DATA) { + if (this.#byteOffset < this.#info.payloadLength) { + // If there is still more data in this chunk that needs to be read + return callback() + } else if (this.#byteOffset >= this.#info.payloadLength) { + // If the server sent multiple frames in a single chunk + + const body = this.consume(this.#info.payloadLength) + + this.#fragments.push(body) + + // If the frame is unfragmented, or a fragmented frame was terminated, + // a message was received + if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) { + const fullMessage = Buffer.concat(this.#fragments) + + websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage) + + this.#info = {} + this.#fragments.length = 0 + } + + this.#state = parserStates.INFO + } + } + + if (this.#byteOffset > 0) { + continue + } else { + callback() + break + } + } + } + + /** + * Take n bytes from the buffered Buffers + * @param {number} n + * @returns {Buffer|null} + */ + consume (n) { + if (n > this.#byteOffset) { + return null + } else if (n === 0) { + return emptyBuffer + } + + if (this.#buffers[0].length === n) { + this.#byteOffset -= this.#buffers[0].length + return this.#buffers.shift() + } + + const buffer = Buffer.allocUnsafe(n) + let offset = 0 + + while (offset !== n) { + const next = this.#buffers[0] + const { length } = next + + if (length + offset === n) { + buffer.set(this.#buffers.shift(), offset) + break + } else if (length + offset > n) { + buffer.set(next.subarray(0, n - offset), offset) + this.#buffers[0] = next.subarray(n - offset) + break + } else { + buffer.set(this.#buffers.shift(), offset) + offset += next.length + } + } + + this.#byteOffset -= n + + return buffer + } + + parseCloseBody (onlyCode, data) { + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5 + /** @type {number|undefined} */ + let code + + if (data.length >= 2) { + // _The WebSocket Connection Close Code_ is + // defined as the status code (Section 7.4) contained in the first Close + // control frame received by the application + code = data.readUInt16BE(0) + } + + if (onlyCode) { + if (!isValidStatusCode(code)) { + return null + } + + return { code } + } + + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6 + /** @type {Buffer} */ + let reason = data.subarray(2) + + // Remove BOM + if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) { + reason = reason.subarray(3) + } + + if (code !== undefined && !isValidStatusCode(code)) { + return null + } + + try { + // TODO: optimize this + reason = new TextDecoder('utf-8', { fatal: true }).decode(reason) + } catch { + return null + } + + return { code, reason } + } + + get closingInfo () { + return this.#info.closeInfo + } +} + +module.exports = { + ByteParser +} + + +/***/ }), + +/***/ 8075: +/***/ ((module) => { + + + +module.exports = { + kWebSocketURL: Symbol('url'), + kReadyState: Symbol('ready state'), + kController: Symbol('controller'), + kResponse: Symbol('response'), + kBinaryType: Symbol('binary type'), + kSentClose: Symbol('sent close'), + kReceivedClose: Symbol('received close'), + kByteParser: Symbol('byte parser') +} + + +/***/ }), + +/***/ 7264: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __nccwpck_require__(8075) +const { states, opcodes } = __nccwpck_require__(5455) +const { MessageEvent, ErrorEvent } = __nccwpck_require__(4509) + +/* globals Blob */ + +/** + * @param {import('./websocket').WebSocket} ws + */ +function isEstablished (ws) { + // If the server's response is validated as provided for above, it is + // said that _The WebSocket Connection is Established_ and that the + // WebSocket Connection is in the OPEN state. + return ws[kReadyState] === states.OPEN +} + +/** + * @param {import('./websocket').WebSocket} ws + */ +function isClosing (ws) { + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + return ws[kReadyState] === states.CLOSING +} + +/** + * @param {import('./websocket').WebSocket} ws + */ +function isClosed (ws) { + return ws[kReadyState] === states.CLOSED +} + +/** + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e + * @param {EventTarget} target + * @param {EventInit | undefined} eventInitDict + */ +function fireEvent (e, target, eventConstructor = Event, eventInitDict) { + // 1. If eventConstructor is not given, then let eventConstructor be Event. + + // 2. Let event be the result of creating an event given eventConstructor, + // in the relevant realm of target. + // 3. Initialize event’s type attribute to e. + const event = new eventConstructor(e, eventInitDict) + + // 4. Initialize any other IDL attributes of event as described in the + // invocation of this algorithm. + + // 5. Return the result of dispatching event at target, with legacy target + // override flag set if set. + target.dispatchEvent(event) +} + +/** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @param {import('./websocket').WebSocket} ws + * @param {number} type Opcode + * @param {Buffer} data application data + */ +function websocketMessageReceived (ws, type, data) { + // 1. If ready state is not OPEN (1), then return. + if (ws[kReadyState] !== states.OPEN) { + return + } + + // 2. Let dataForEvent be determined by switching on type and binary type: + let dataForEvent + + if (type === opcodes.TEXT) { + // -> type indicates that the data is Text + // a new DOMString containing data + try { + dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data) + } catch { + failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.') + return + } + } else if (type === opcodes.BINARY) { + if (ws[kBinaryType] === 'blob') { + // -> type indicates that the data is Binary and binary type is "blob" + // a new Blob object, created in the relevant Realm of the WebSocket + // object, that represents data as its raw data + dataForEvent = new Blob([data]) + } else { + // -> type indicates that the data is Binary and binary type is "arraybuffer" + // a new ArrayBuffer object, created in the relevant Realm of the + // WebSocket object, whose contents are data + dataForEvent = new Uint8Array(data).buffer + } + } + + // 3. Fire an event named message at the WebSocket object, using MessageEvent, + // with the origin attribute initialized to the serialization of the WebSocket + // object’s url's origin, and the data attribute initialized to dataForEvent. + fireEvent('message', ws, MessageEvent, { + origin: ws[kWebSocketURL].origin, + data: dataForEvent + }) +} + +/** + * @see https://datatracker.ietf.org/doc/html/rfc6455 + * @see https://datatracker.ietf.org/doc/html/rfc2616 + * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407 + * @param {string} protocol + */ +function isValidSubprotocol (protocol) { + // If present, this value indicates one + // or more comma-separated subprotocol the client wishes to speak, + // ordered by preference. The elements that comprise this value + // MUST be non-empty strings with characters in the range U+0021 to + // U+007E not including separator characters as defined in + // [RFC2616] and MUST all be unique strings. + if (protocol.length === 0) { + return false + } + + for (const char of protocol) { + const code = char.charCodeAt(0) + + if ( + code < 0x21 || + code > 0x7E || + char === '(' || + char === ')' || + char === '<' || + char === '>' || + char === '@' || + char === ',' || + char === ';' || + char === ':' || + char === '\\' || + char === '"' || + char === '/' || + char === '[' || + char === ']' || + char === '?' || + char === '=' || + char === '{' || + char === '}' || + code === 32 || // SP + code === 9 // HT + ) { + return false + } + } + + return true +} + +/** + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4 + * @param {number} code + */ +function isValidStatusCode (code) { + if (code >= 1000 && code < 1015) { + return ( + code !== 1004 && // reserved + code !== 1005 && // "MUST NOT be set as a status code" + code !== 1006 // "MUST NOT be set as a status code" + ) + } + + return code >= 3000 && code <= 4999 +} + +/** + * @param {import('./websocket').WebSocket} ws + * @param {string|undefined} reason + */ +function failWebsocketConnection (ws, reason) { + const { [kController]: controller, [kResponse]: response } = ws + + controller.abort() + + if (response?.socket && !response.socket.destroyed) { + response.socket.destroy() + } + + if (reason) { + fireEvent('error', ws, ErrorEvent, { + error: new Error(reason) + }) + } +} + +module.exports = { + isEstablished, + isClosing, + isClosed, + fireEvent, + isValidSubprotocol, + isValidStatusCode, + failWebsocketConnection, + websocketMessageReceived +} + + +/***/ }), + +/***/ 329: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { webidl } = __nccwpck_require__(7472) +const { DOMException } = __nccwpck_require__(1356) +const { URLSerializer } = __nccwpck_require__(5892) +const { getGlobalOrigin } = __nccwpck_require__(2498) +const { staticPropertyDescriptors, states, opcodes, emptyBuffer } = __nccwpck_require__(5455) +const { + kWebSocketURL, + kReadyState, + kController, + kBinaryType, + kResponse, + kSentClose, + kByteParser +} = __nccwpck_require__(8075) +const { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = __nccwpck_require__(7264) +const { establishWebSocketConnection } = __nccwpck_require__(5188) +const { WebsocketFrameSend } = __nccwpck_require__(7315) +const { ByteParser } = __nccwpck_require__(93) +const { kEnumerableProperty, isBlobLike } = __nccwpck_require__(162) +const { getGlobalDispatcher } = __nccwpck_require__(8127) +const { types } = __nccwpck_require__(9023) + +let experimentalWarned = false + +// https://websockets.spec.whatwg.org/#interface-definition +class WebSocket extends EventTarget { + #events = { + open: null, + error: null, + close: null, + message: null + } + + #bufferedAmount = 0 + #protocol = '' + #extensions = '' + + /** + * @param {string} url + * @param {string|string[]} protocols + */ + constructor (url, protocols = []) { + super() + + webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' }) + + if (!experimentalWarned) { + experimentalWarned = true + process.emitWarning('WebSockets are experimental, expect them to change at any time.', { + code: 'UNDICI-WS' + }) + } + + const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols) + + url = webidl.converters.USVString(url) + protocols = options.protocols + + // 1. Let baseURL be this's relevant settings object's API base URL. + const baseURL = getGlobalOrigin() + + // 1. Let urlRecord be the result of applying the URL parser to url with baseURL. + let urlRecord + + try { + urlRecord = new URL(url, baseURL) + } catch (e) { + // 3. If urlRecord is failure, then throw a "SyntaxError" DOMException. + throw new DOMException(e, 'SyntaxError') + } + + // 4. If urlRecord’s scheme is "http", then set urlRecord’s scheme to "ws". + if (urlRecord.protocol === 'http:') { + urlRecord.protocol = 'ws:' + } else if (urlRecord.protocol === 'https:') { + // 5. Otherwise, if urlRecord’s scheme is "https", set urlRecord’s scheme to "wss". + urlRecord.protocol = 'wss:' + } + + // 6. If urlRecord’s scheme is not "ws" or "wss", then throw a "SyntaxError" DOMException. + if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') { + throw new DOMException( + `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, + 'SyntaxError' + ) + } + + // 7. If urlRecord’s fragment is non-null, then throw a "SyntaxError" + // DOMException. + if (urlRecord.hash || urlRecord.href.endsWith('#')) { + throw new DOMException('Got fragment', 'SyntaxError') + } + + // 8. If protocols is a string, set protocols to a sequence consisting + // of just that string. + if (typeof protocols === 'string') { + protocols = [protocols] + } + + // 9. If any of the values in protocols occur more than once or otherwise + // fail to match the requirements for elements that comprise the value + // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket + // protocol, then throw a "SyntaxError" DOMException. + if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) { + throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') + } + + if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) { + throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') + } + + // 10. Set this's url to urlRecord. + this[kWebSocketURL] = new URL(urlRecord.href) + + // 11. Let client be this's relevant settings object. + + // 12. Run this step in parallel: + + // 1. Establish a WebSocket connection given urlRecord, protocols, + // and client. + this[kController] = establishWebSocketConnection( + urlRecord, + protocols, + this, + (response) => this.#onConnectionEstablished(response), + options + ) + + // Each WebSocket object has an associated ready state, which is a + // number representing the state of the connection. Initially it must + // be CONNECTING (0). + this[kReadyState] = WebSocket.CONNECTING + + // The extensions attribute must initially return the empty string. + + // The protocol attribute must initially return the empty string. + + // Each WebSocket object has an associated binary type, which is a + // BinaryType. Initially it must be "blob". + this[kBinaryType] = 'blob' + } + + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-close + * @param {number|undefined} code + * @param {string|undefined} reason + */ + close (code = undefined, reason = undefined) { + webidl.brandCheck(this, WebSocket) + + if (code !== undefined) { + code = webidl.converters['unsigned short'](code, { clamp: true }) + } + + if (reason !== undefined) { + reason = webidl.converters.USVString(reason) + } + + // 1. If code is present, but is neither an integer equal to 1000 nor an + // integer in the range 3000 to 4999, inclusive, throw an + // "InvalidAccessError" DOMException. + if (code !== undefined) { + if (code !== 1000 && (code < 3000 || code > 4999)) { + throw new DOMException('invalid code', 'InvalidAccessError') + } + } + + let reasonByteLength = 0 + + // 2. If reason is present, then run these substeps: + if (reason !== undefined) { + // 1. Let reasonBytes be the result of encoding reason. + // 2. If reasonBytes is longer than 123 bytes, then throw a + // "SyntaxError" DOMException. + reasonByteLength = Buffer.byteLength(reason) + + if (reasonByteLength > 123) { + throw new DOMException( + `Reason must be less than 123 bytes; received ${reasonByteLength}`, + 'SyntaxError' + ) + } + } + + // 3. Run the first matching steps from the following list: + if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) { + // If this's ready state is CLOSING (2) or CLOSED (3) + // Do nothing. + } else if (!isEstablished(this)) { + // If the WebSocket connection is not yet established + // Fail the WebSocket connection and set this's ready state + // to CLOSING (2). + failWebsocketConnection(this, 'Connection was closed before it was established.') + this[kReadyState] = WebSocket.CLOSING + } else if (!isClosing(this)) { + // If the WebSocket closing handshake has not yet been started + // Start the WebSocket closing handshake and set this's ready + // state to CLOSING (2). + // - If neither code nor reason is present, the WebSocket Close + // message must not have a body. + // - If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + // - If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + + const frame = new WebsocketFrameSend() + + // If neither code nor reason is present, the WebSocket Close + // message must not have a body. + + // If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + if (code !== undefined && reason === undefined) { + frame.frameData = Buffer.allocUnsafe(2) + frame.frameData.writeUInt16BE(code, 0) + } else if (code !== undefined && reason !== undefined) { + // If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength) + frame.frameData.writeUInt16BE(code, 0) + // the body MAY contain UTF-8-encoded data with value /reason/ + frame.frameData.write(reason, 2, 'utf-8') + } else { + frame.frameData = emptyBuffer + } + + /** @type {import('stream').Duplex} */ + const socket = this[kResponse].socket + + socket.write(frame.createFrame(opcodes.CLOSE), (err) => { + if (!err) { + this[kSentClose] = true + } + }) + + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + this[kReadyState] = states.CLOSING + } else { + // Otherwise + // Set this's ready state to CLOSING (2). + this[kReadyState] = WebSocket.CLOSING + } + } + + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-send + * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data + */ + send (data) { + webidl.brandCheck(this, WebSocket) + + webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' }) + + data = webidl.converters.WebSocketSendData(data) + + // 1. If this's ready state is CONNECTING, then throw an + // "InvalidStateError" DOMException. + if (this[kReadyState] === WebSocket.CONNECTING) { + throw new DOMException('Sent before connected.', 'InvalidStateError') + } + + // 2. Run the appropriate set of steps from the following list: + // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1 + // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2 + + if (!isEstablished(this) || isClosing(this)) { + return + } + + /** @type {import('stream').Duplex} */ + const socket = this[kResponse].socket + + // If data is a string + if (typeof data === 'string') { + // If the WebSocket connection is established and the WebSocket + // closing handshake has not yet started, then the user agent + // must send a WebSocket Message comprised of the data argument + // using a text frame opcode; if the data cannot be sent, e.g. + // because it would need to be buffered but the buffer is full, + // the user agent must flag the WebSocket as full and then close + // the WebSocket connection. Any invocation of this method with a + // string argument that does not throw an exception must increase + // the bufferedAmount attribute by the number of bytes needed to + // express the argument as UTF-8. + + const value = Buffer.from(data) + const frame = new WebsocketFrameSend(value) + const buffer = frame.createFrame(opcodes.TEXT) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + } else if (types.isArrayBuffer(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need + // to be buffered but the buffer is full, the user agent must flag + // the WebSocket as full and then close the WebSocket connection. + // The data to be sent is the data stored in the buffer described + // by the ArrayBuffer object. Any invocation of this method with an + // ArrayBuffer argument that does not throw an exception must + // increase the bufferedAmount attribute by the length of the + // ArrayBuffer in bytes. + + const value = Buffer.from(data) + const frame = new WebsocketFrameSend(value) + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + } else if (ArrayBuffer.isView(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The + // data to be sent is the data stored in the section of the buffer + // described by the ArrayBuffer object that data references. Any + // invocation of this method with this kind of argument that does + // not throw an exception must increase the bufferedAmount attribute + // by the length of data’s buffer in bytes. + + const ab = Buffer.from(data, data.byteOffset, data.byteLength) + + const frame = new WebsocketFrameSend(ab) + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += ab.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= ab.byteLength + }) + } else if (isBlobLike(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The data + // to be sent is the raw data represented by the Blob object. Any + // invocation of this method with a Blob argument that does not throw + // an exception must increase the bufferedAmount attribute by the size + // of the Blob object’s raw data, in bytes. + + const frame = new WebsocketFrameSend() + + data.arrayBuffer().then((ab) => { + const value = Buffer.from(ab) + frame.frameData = value + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + }) + } + } + + get readyState () { + webidl.brandCheck(this, WebSocket) + + // The readyState getter steps are to return this's ready state. + return this[kReadyState] + } + + get bufferedAmount () { + webidl.brandCheck(this, WebSocket) + + return this.#bufferedAmount + } + + get url () { + webidl.brandCheck(this, WebSocket) + + // The url getter steps are to return this's url, serialized. + return URLSerializer(this[kWebSocketURL]) + } + + get extensions () { + webidl.brandCheck(this, WebSocket) + + return this.#extensions + } + + get protocol () { + webidl.brandCheck(this, WebSocket) + + return this.#protocol + } + + get onopen () { + webidl.brandCheck(this, WebSocket) + + return this.#events.open + } + + set onopen (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.open) { + this.removeEventListener('open', this.#events.open) + } + + if (typeof fn === 'function') { + this.#events.open = fn + this.addEventListener('open', fn) + } else { + this.#events.open = null + } + } + + get onerror () { + webidl.brandCheck(this, WebSocket) + + return this.#events.error + } + + set onerror (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.error) { + this.removeEventListener('error', this.#events.error) + } + + if (typeof fn === 'function') { + this.#events.error = fn + this.addEventListener('error', fn) + } else { + this.#events.error = null + } + } + + get onclose () { + webidl.brandCheck(this, WebSocket) + + return this.#events.close + } + + set onclose (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.close) { + this.removeEventListener('close', this.#events.close) + } + + if (typeof fn === 'function') { + this.#events.close = fn + this.addEventListener('close', fn) + } else { + this.#events.close = null + } + } + + get onmessage () { + webidl.brandCheck(this, WebSocket) + + return this.#events.message + } + + set onmessage (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.message) { + this.removeEventListener('message', this.#events.message) + } + + if (typeof fn === 'function') { + this.#events.message = fn + this.addEventListener('message', fn) + } else { + this.#events.message = null + } + } + + get binaryType () { + webidl.brandCheck(this, WebSocket) + + return this[kBinaryType] + } + + set binaryType (type) { + webidl.brandCheck(this, WebSocket) + + if (type !== 'blob' && type !== 'arraybuffer') { + this[kBinaryType] = 'blob' + } else { + this[kBinaryType] = type + } + } + + /** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + */ + #onConnectionEstablished (response) { + // processResponse is called when the "response’s header list has been received and initialized." + // once this happens, the connection is open + this[kResponse] = response + + const parser = new ByteParser(this) + parser.on('drain', function onParserDrain () { + this.ws[kResponse].socket.resume() + }) + + response.socket.ws = this + this[kByteParser] = parser + + // 1. Change the ready state to OPEN (1). + this[kReadyState] = states.OPEN + + // 2. Change the extensions attribute’s value to the extensions in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1 + const extensions = response.headersList.get('sec-websocket-extensions') + + if (extensions !== null) { + this.#extensions = extensions + } + + // 3. Change the protocol attribute’s value to the subprotocol in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9 + const protocol = response.headersList.get('sec-websocket-protocol') + + if (protocol !== null) { + this.#protocol = protocol + } + + // 4. Fire an event named open at the WebSocket object. + fireEvent('open', this) + } +} + +// https://websockets.spec.whatwg.org/#dom-websocket-connecting +WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING +// https://websockets.spec.whatwg.org/#dom-websocket-open +WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN +// https://websockets.spec.whatwg.org/#dom-websocket-closing +WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING +// https://websockets.spec.whatwg.org/#dom-websocket-closed +WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED + +Object.defineProperties(WebSocket.prototype, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors, + url: kEnumerableProperty, + readyState: kEnumerableProperty, + bufferedAmount: kEnumerableProperty, + onopen: kEnumerableProperty, + onerror: kEnumerableProperty, + onclose: kEnumerableProperty, + close: kEnumerableProperty, + onmessage: kEnumerableProperty, + binaryType: kEnumerableProperty, + send: kEnumerableProperty, + extensions: kEnumerableProperty, + protocol: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'WebSocket', + writable: false, + enumerable: false, + configurable: true + } +}) + +Object.defineProperties(WebSocket, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors +}) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.DOMString +) + +webidl.converters['DOMString or sequence'] = function (V) { + if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) { + return webidl.converters['sequence'](V) + } + + return webidl.converters.DOMString(V) +} + +// This implements the propsal made in https://github.com/whatwg/websockets/issues/42 +webidl.converters.WebSocketInit = webidl.dictionaryConverter([ + { + key: 'protocols', + converter: webidl.converters['DOMString or sequence'], + get defaultValue () { + return [] + } + }, + { + key: 'dispatcher', + converter: (V) => V, + get defaultValue () { + return getGlobalDispatcher() + } + }, + { + key: 'headers', + converter: webidl.nullableConverter(webidl.converters.HeadersInit) + } +]) + +webidl.converters['DOMString or sequence or WebSocketInit'] = function (V) { + if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) { + return webidl.converters.WebSocketInit(V) + } + + return { protocols: webidl.converters['DOMString or sequence'](V) } +} + +webidl.converters.WebSocketSendData = function (V) { + if (webidl.util.Type(V) === 'Object') { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } + + if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { + return webidl.converters.BufferSource(V) + } + } + + return webidl.converters.USVString(V) +} + +module.exports = { + WebSocket +} + + +/***/ }), + +/***/ 6726: +/***/ ((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 + } +} + + +/***/ }), + +/***/ 2613: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("assert"); + +/***/ }), + +/***/ 290: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("async_hooks"); + +/***/ }), + +/***/ 181: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("buffer"); + +/***/ }), + +/***/ 5317: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("child_process"); + +/***/ }), + +/***/ 1855: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("console"); + +/***/ }), + +/***/ 6982: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("crypto"); + +/***/ }), + +/***/ 1637: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("diagnostics_channel"); + +/***/ }), + +/***/ 4434: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("events"); + +/***/ }), + +/***/ 9896: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs"); + +/***/ }), + +/***/ 8611: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http"); + +/***/ }), + +/***/ 5675: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http2"); + +/***/ }), + +/***/ 5692: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("https"); + +/***/ }), + +/***/ 9278: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("net"); + +/***/ }), + +/***/ 8474: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:events"); + +/***/ }), + +/***/ 7075: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:stream"); + +/***/ }), + +/***/ 7975: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util"); + +/***/ }), + +/***/ 857: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("os"); + +/***/ }), + +/***/ 6928: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("path"); + +/***/ }), + +/***/ 2987: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("perf_hooks"); + +/***/ }), + +/***/ 3480: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("querystring"); + +/***/ }), + +/***/ 2203: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream"); + +/***/ }), + +/***/ 3774: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream/web"); + +/***/ }), + +/***/ 3193: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("string_decoder"); + +/***/ }), + +/***/ 3557: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("timers"); + +/***/ }), + +/***/ 4756: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("tls"); + +/***/ }), + +/***/ 7016: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("url"); + +/***/ }), + +/***/ 9023: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("util"); + +/***/ }), + +/***/ 8253: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("util/types"); + +/***/ }), + +/***/ 8167: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("worker_threads"); + +/***/ }), + +/***/ 3106: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("zlib"); + +/***/ }), + +/***/ 6192: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const WritableStream = (__nccwpck_require__(7075).Writable) +const inherits = (__nccwpck_require__(7975).inherits) + +const StreamSearch = __nccwpck_require__(4262) + +const PartStream = __nccwpck_require__(950) +const HeaderParser = __nccwpck_require__(4045) + +const DASH = 45 +const B_ONEDASH = Buffer.from('-') +const B_CRLF = Buffer.from('\r\n') +const EMPTY_FN = function () {} + +function Dicer (cfg) { + if (!(this instanceof Dicer)) { return new Dicer(cfg) } + WritableStream.call(this, cfg) + + if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') } + + if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined } + + this._headerFirst = cfg.headerFirst + + this._dashes = 0 + this._parts = 0 + this._finished = false + this._realFinish = false + this._isPreamble = true + this._justMatched = false + this._firstWrite = true + this._inHeader = true + this._part = undefined + this._cb = undefined + this._ignoreData = false + this._partOpts = { highWaterMark: cfg.partHwm } + this._pause = false + + const self = this + this._hparser = new HeaderParser(cfg) + this._hparser.on('header', function (header) { + self._inHeader = false + self._part.emit('header', header) + }) +} +inherits(Dicer, WritableStream) + +Dicer.prototype.emit = function (ev) { + if (ev === 'finish' && !this._realFinish) { + if (!this._finished) { + const self = this + process.nextTick(function () { + self.emit('error', new Error('Unexpected end of multipart data')) + if (self._part && !self._ignoreData) { + const type = (self._isPreamble ? 'Preamble' : 'Part') + self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data')) + self._part.push(null) + process.nextTick(function () { + self._realFinish = true + self.emit('finish') + self._realFinish = false + }) + return + } + self._realFinish = true + self.emit('finish') + self._realFinish = false + }) + } + } else { WritableStream.prototype.emit.apply(this, arguments) } +} + +Dicer.prototype._write = function (data, encoding, cb) { + // ignore unexpected data (e.g. extra trailer data after finished) + if (!this._hparser && !this._bparser) { return cb() } + + if (this._headerFirst && this._isPreamble) { + if (!this._part) { + this._part = new PartStream(this._partOpts) + if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() } + } + const r = this._hparser.push(data) + if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() } + } + + // allows for "easier" testing + if (this._firstWrite) { + this._bparser.push(B_CRLF) + this._firstWrite = false + } + + this._bparser.push(data) + + if (this._pause) { this._cb = cb } else { cb() } +} + +Dicer.prototype.reset = function () { + this._part = undefined + this._bparser = undefined + this._hparser = undefined +} + +Dicer.prototype.setBoundary = function (boundary) { + const self = this + this._bparser = new StreamSearch('\r\n--' + boundary) + this._bparser.on('info', function (isMatch, data, start, end) { + self._oninfo(isMatch, data, start, end) + }) +} + +Dicer.prototype._ignore = function () { + if (this._part && !this._ignoreData) { + this._ignoreData = true + this._part.on('error', EMPTY_FN) + // we must perform some kind of read on the stream even though we are + // ignoring the data, otherwise node's Readable stream will not emit 'end' + // after pushing null to the stream + this._part.resume() + } +} + +Dicer.prototype._oninfo = function (isMatch, data, start, end) { + let buf; const self = this; let i = 0; let r; let shouldWriteMore = true + + if (!this._part && this._justMatched && data) { + while (this._dashes < 2 && (start + i) < end) { + if (data[start + i] === DASH) { + ++i + ++this._dashes + } else { + if (this._dashes) { buf = B_ONEDASH } + this._dashes = 0 + break + } + } + if (this._dashes === 2) { + if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) } + this.reset() + this._finished = true + // no more parts will be added + if (self._parts === 0) { + self._realFinish = true + self.emit('finish') + self._realFinish = false + } + } + if (this._dashes) { return } + } + if (this._justMatched) { this._justMatched = false } + if (!this._part) { + this._part = new PartStream(this._partOpts) + this._part._read = function (n) { + self._unpause() + } + if (this._isPreamble && this.listenerCount('preamble') !== 0) { + this.emit('preamble', this._part) + } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) { + this.emit('part', this._part) + } else { + this._ignore() + } + if (!this._isPreamble) { this._inHeader = true } + } + if (data && start < end && !this._ignoreData) { + if (this._isPreamble || !this._inHeader) { + if (buf) { shouldWriteMore = this._part.push(buf) } + shouldWriteMore = this._part.push(data.slice(start, end)) + if (!shouldWriteMore) { this._pause = true } + } else if (!this._isPreamble && this._inHeader) { + if (buf) { this._hparser.push(buf) } + r = this._hparser.push(data.slice(start, end)) + if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) } + } + } + if (isMatch) { + this._hparser.reset() + if (this._isPreamble) { this._isPreamble = false } else { + if (start !== end) { + ++this._parts + this._part.on('end', function () { + if (--self._parts === 0) { + if (self._finished) { + self._realFinish = true + self.emit('finish') + self._realFinish = false + } else { + self._unpause() + } + } + }) + } + } + this._part.push(null) + this._part = undefined + this._ignoreData = false + this._justMatched = true + this._dashes = 0 + } +} + +Dicer.prototype._unpause = function () { + if (!this._pause) { return } + + this._pause = false + if (this._cb) { + const cb = this._cb + this._cb = undefined + cb() + } +} + +module.exports = Dicer + + +/***/ }), + +/***/ 4045: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const EventEmitter = (__nccwpck_require__(8474).EventEmitter) +const inherits = (__nccwpck_require__(7975).inherits) +const getLimit = __nccwpck_require__(2291) + +const StreamSearch = __nccwpck_require__(4262) + +const B_DCRLF = Buffer.from('\r\n\r\n') +const RE_CRLF = /\r\n/g +const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/ + +function HeaderParser (cfg) { + EventEmitter.call(this) + + cfg = cfg || {} + const self = this + this.nread = 0 + this.maxed = false + this.npairs = 0 + this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000) + this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024) + this.buffer = '' + this.header = {} + this.finished = false + this.ss = new StreamSearch(B_DCRLF) + this.ss.on('info', function (isMatch, data, start, end) { + if (data && !self.maxed) { + if (self.nread + end - start >= self.maxHeaderSize) { + end = self.maxHeaderSize - self.nread + start + self.nread = self.maxHeaderSize + self.maxed = true + } else { self.nread += (end - start) } + + self.buffer += data.toString('binary', start, end) + } + if (isMatch) { self._finish() } + }) +} +inherits(HeaderParser, EventEmitter) + +HeaderParser.prototype.push = function (data) { + const r = this.ss.push(data) + if (this.finished) { return r } +} + +HeaderParser.prototype.reset = function () { + this.finished = false + this.buffer = '' + this.header = {} + this.ss.reset() +} + +HeaderParser.prototype._finish = function () { + if (this.buffer) { this._parseHeader() } + this.ss.matches = this.ss.maxMatches + const header = this.header + this.header = {} + this.buffer = '' + this.finished = true + this.nread = this.npairs = 0 + this.maxed = false + this.emit('header', header) +} + +HeaderParser.prototype._parseHeader = function () { + if (this.npairs === this.maxHeaderPairs) { return } + + const lines = this.buffer.split(RE_CRLF) + const len = lines.length + let m, h + + for (var i = 0; i < len; ++i) { + if (lines[i].length === 0) { continue } + if (lines[i][0] === '\t' || lines[i][0] === ' ') { + // folded header content + // RFC2822 says to just remove the CRLF and not the whitespace following + // it, so we follow the RFC and include the leading whitespace ... + if (h) { + this.header[h][this.header[h].length - 1] += lines[i] + continue + } + } + + const posColon = lines[i].indexOf(':') + if ( + posColon === -1 || + posColon === 0 + ) { + return + } + m = RE_HDR.exec(lines[i]) + h = m[1].toLowerCase() + this.header[h] = this.header[h] || [] + this.header[h].push((m[2] || '')) + if (++this.npairs === this.maxHeaderPairs) { break } + } +} + +module.exports = HeaderParser + + +/***/ }), + +/***/ 950: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const inherits = (__nccwpck_require__(7975).inherits) +const ReadableStream = (__nccwpck_require__(7075).Readable) + +function PartStream (opts) { + ReadableStream.call(this, opts) +} +inherits(PartStream, ReadableStream) + +PartStream.prototype._read = function (n) {} + +module.exports = PartStream + + +/***/ }), + +/***/ 4262: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +/** + * Copyright Brian White. All rights reserved. + * + * @see https://github.com/mscdex/streamsearch + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation + * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool + */ +const EventEmitter = (__nccwpck_require__(8474).EventEmitter) +const inherits = (__nccwpck_require__(7975).inherits) + +function SBMH (needle) { + if (typeof needle === 'string') { + needle = Buffer.from(needle) + } + + if (!Buffer.isBuffer(needle)) { + throw new TypeError('The needle has to be a String or a Buffer.') + } + + const needleLength = needle.length + + if (needleLength === 0) { + throw new Error('The needle cannot be an empty String/Buffer.') + } + + if (needleLength > 256) { + throw new Error('The needle cannot have a length bigger than 256.') + } + + this.maxMatches = Infinity + this.matches = 0 + + this._occ = new Array(256) + .fill(needleLength) // Initialize occurrence table. + this._lookbehind_size = 0 + this._needle = needle + this._bufpos = 0 + + this._lookbehind = Buffer.alloc(needleLength) + + // Populate occurrence table with analysis of the needle, + // ignoring last letter. + for (var i = 0; i < needleLength - 1; ++i) { + this._occ[needle[i]] = needleLength - 1 - i + } +} +inherits(SBMH, EventEmitter) + +SBMH.prototype.reset = function () { + this._lookbehind_size = 0 + this.matches = 0 + this._bufpos = 0 +} + +SBMH.prototype.push = function (chunk, pos) { + if (!Buffer.isBuffer(chunk)) { + chunk = Buffer.from(chunk, 'binary') + } + const chlen = chunk.length + this._bufpos = pos || 0 + let r + while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) } + return r +} + +SBMH.prototype._sbmh_feed = function (data) { + const len = data.length + const needle = this._needle + const needleLength = needle.length + const lastNeedleChar = needle[needleLength - 1] + + // Positive: points to a position in `data` + // pos == 3 points to data[3] + // Negative: points to a position in the lookbehind buffer + // pos == -2 points to lookbehind[lookbehind_size - 2] + let pos = -this._lookbehind_size + let ch + + if (pos < 0) { + // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool + // search with character lookup code that considers both the + // lookbehind buffer and the current round's haystack data. + // + // Loop until + // there is a match. + // or until + // we've moved past the position that requires the + // lookbehind buffer. In this case we switch to the + // optimized loop. + // or until + // the character to look at lies outside the haystack. + while (pos < 0 && pos <= len - needleLength) { + ch = this._sbmh_lookup_char(data, pos + needleLength - 1) + + if ( + ch === lastNeedleChar && + this._sbmh_memcmp(data, pos, needleLength - 1) + ) { + this._lookbehind_size = 0 + ++this.matches + this.emit('info', true) + + return (this._bufpos = pos + needleLength) + } + pos += this._occ[ch] + } + + // No match. + + if (pos < 0) { + // There's too few data for Boyer-Moore-Horspool to run, + // so let's use a different algorithm to skip as much as + // we can. + // Forward pos until + // the trailing part of lookbehind + data + // looks like the beginning of the needle + // or until + // pos == 0 + while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos } + } + + if (pos >= 0) { + // Discard lookbehind buffer. + this.emit('info', false, this._lookbehind, 0, this._lookbehind_size) + this._lookbehind_size = 0 + } else { + // Cut off part of the lookbehind buffer that has + // been processed and append the entire haystack + // into it. + const bytesToCutOff = this._lookbehind_size + pos + if (bytesToCutOff > 0) { + // The cut off data is guaranteed not to contain the needle. + this.emit('info', false, this._lookbehind, 0, bytesToCutOff) + } + + this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff, + this._lookbehind_size - bytesToCutOff) + this._lookbehind_size -= bytesToCutOff + + data.copy(this._lookbehind, this._lookbehind_size) + this._lookbehind_size += len + + this._bufpos = len + return len + } + } + + pos += (pos >= 0) * this._bufpos + + // Lookbehind buffer is now empty. We only need to check if the + // needle is in the haystack. + if (data.indexOf(needle, pos) !== -1) { + pos = data.indexOf(needle, pos) + ++this.matches + if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) } + + return (this._bufpos = pos + needleLength) + } else { + pos = len - needleLength + } + + // There was no match. If there's trailing haystack data that we cannot + // match yet using the Boyer-Moore-Horspool algorithm (because the trailing + // data is less than the needle size) then match using a modified + // algorithm that starts matching from the beginning instead of the end. + // Whatever trailing data is left after running this algorithm is added to + // the lookbehind buffer. + while ( + pos < len && + ( + data[pos] !== needle[0] || + ( + (Buffer.compare( + data.subarray(pos, pos + len - pos), + needle.subarray(0, len - pos) + ) !== 0) + ) + ) + ) { + ++pos + } + if (pos < len) { + data.copy(this._lookbehind, 0, pos, pos + (len - pos)) + this._lookbehind_size = len - pos + } + + // Everything until pos is guaranteed not to contain needle data. + if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) } + + this._bufpos = len + return len +} + +SBMH.prototype._sbmh_lookup_char = function (data, pos) { + return (pos < 0) + ? this._lookbehind[this._lookbehind_size + pos] + : data[pos] +} + +SBMH.prototype._sbmh_memcmp = function (data, pos, len) { + for (var i = 0; i < len; ++i) { + if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false } + } + return true +} + +module.exports = SBMH + + +/***/ }), + +/***/ 4455: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const WritableStream = (__nccwpck_require__(7075).Writable) +const { inherits } = __nccwpck_require__(7975) +const Dicer = __nccwpck_require__(6192) + +const MultipartParser = __nccwpck_require__(5110) +const UrlencodedParser = __nccwpck_require__(7053) +const parseParams = __nccwpck_require__(2587) + +function Busboy (opts) { + if (!(this instanceof Busboy)) { return new Busboy(opts) } + + if (typeof opts !== 'object') { + throw new TypeError('Busboy expected an options-Object.') + } + if (typeof opts.headers !== 'object') { + throw new TypeError('Busboy expected an options-Object with headers-attribute.') + } + if (typeof opts.headers['content-type'] !== 'string') { + throw new TypeError('Missing Content-Type-header.') + } + + const { + headers, + ...streamOptions + } = opts + + this.opts = { + autoDestroy: false, + ...streamOptions + } + WritableStream.call(this, this.opts) + + this._done = false + this._parser = this.getParserByHeaders(headers) + this._finished = false +} +inherits(Busboy, WritableStream) + +Busboy.prototype.emit = function (ev) { + if (ev === 'finish') { + if (!this._done) { + this._parser?.end() + return + } else if (this._finished) { + return + } + this._finished = true + } + WritableStream.prototype.emit.apply(this, arguments) +} + +Busboy.prototype.getParserByHeaders = function (headers) { + const parsed = parseParams(headers['content-type']) + + const cfg = { + defCharset: this.opts.defCharset, + fileHwm: this.opts.fileHwm, + headers, + highWaterMark: this.opts.highWaterMark, + isPartAFile: this.opts.isPartAFile, + limits: this.opts.limits, + parsedConType: parsed, + preservePath: this.opts.preservePath + } + + if (MultipartParser.detect.test(parsed[0])) { + return new MultipartParser(this, cfg) + } + if (UrlencodedParser.detect.test(parsed[0])) { + return new UrlencodedParser(this, cfg) + } + throw new Error('Unsupported Content-Type.') +} + +Busboy.prototype._write = function (chunk, encoding, cb) { + this._parser.write(chunk, cb) +} + +module.exports = Busboy +module.exports["default"] = Busboy +module.exports.Busboy = Busboy + +module.exports.Dicer = Dicer + + +/***/ }), + +/***/ 5110: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +// TODO: +// * support 1 nested multipart level +// (see second multipart example here: +// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data) +// * support limits.fieldNameSize +// -- this will require modifications to utils.parseParams + +const { Readable } = __nccwpck_require__(7075) +const { inherits } = __nccwpck_require__(7975) + +const Dicer = __nccwpck_require__(6192) + +const parseParams = __nccwpck_require__(2587) +const decodeText = __nccwpck_require__(4233) +const basename = __nccwpck_require__(2654) +const getLimit = __nccwpck_require__(2291) + +const RE_BOUNDARY = /^boundary$/i +const RE_FIELD = /^form-data$/i +const RE_CHARSET = /^charset$/i +const RE_FILENAME = /^filename$/i +const RE_NAME = /^name$/i + +Multipart.detect = /^multipart\/form-data/i +function Multipart (boy, cfg) { + let i + let len + const self = this + let boundary + const limits = cfg.limits + const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined)) + const parsedConType = cfg.parsedConType || [] + const defCharset = cfg.defCharset || 'utf8' + const preservePath = cfg.preservePath + const fileOpts = { highWaterMark: cfg.fileHwm } + + for (i = 0, len = parsedConType.length; i < len; ++i) { + if (Array.isArray(parsedConType[i]) && + RE_BOUNDARY.test(parsedConType[i][0])) { + boundary = parsedConType[i][1] + break + } + } + + function checkFinished () { + if (nends === 0 && finished && !boy._done) { + finished = false + self.end() + } + } + + if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') } + + const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) + const fileSizeLimit = getLimit(limits, 'fileSize', Infinity) + const filesLimit = getLimit(limits, 'files', Infinity) + const fieldsLimit = getLimit(limits, 'fields', Infinity) + const partsLimit = getLimit(limits, 'parts', Infinity) + const headerPairsLimit = getLimit(limits, 'headerPairs', 2000) + const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024) + + let nfiles = 0 + let nfields = 0 + let nends = 0 + let curFile + let curField + let finished = false + + this._needDrain = false + this._pause = false + this._cb = undefined + this._nparts = 0 + this._boy = boy + + const parserCfg = { + boundary, + maxHeaderPairs: headerPairsLimit, + maxHeaderSize: headerSizeLimit, + partHwm: fileOpts.highWaterMark, + highWaterMark: cfg.highWaterMark + } + + this.parser = new Dicer(parserCfg) + this.parser.on('drain', function () { + self._needDrain = false + if (self._cb && !self._pause) { + const cb = self._cb + self._cb = undefined + cb() + } + }).on('part', function onPart (part) { + if (++self._nparts > partsLimit) { + self.parser.removeListener('part', onPart) + self.parser.on('part', skipPart) + boy.hitPartsLimit = true + boy.emit('partsLimit') + return skipPart(part) + } + + // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let + // us emit 'end' early since we know the part has ended if we are already + // seeing the next part + if (curField) { + const field = curField + field.emit('end') + field.removeAllListeners('end') + } + + part.on('header', function (header) { + let contype + let fieldname + let parsed + let charset + let encoding + let filename + let nsize = 0 + + if (header['content-type']) { + parsed = parseParams(header['content-type'][0]) + if (parsed[0]) { + contype = parsed[0].toLowerCase() + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_CHARSET.test(parsed[i][0])) { + charset = parsed[i][1].toLowerCase() + break + } + } + } + } + + if (contype === undefined) { contype = 'text/plain' } + if (charset === undefined) { charset = defCharset } + + if (header['content-disposition']) { + parsed = parseParams(header['content-disposition'][0]) + if (!RE_FIELD.test(parsed[0])) { return skipPart(part) } + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_NAME.test(parsed[i][0])) { + fieldname = parsed[i][1] + } else if (RE_FILENAME.test(parsed[i][0])) { + filename = parsed[i][1] + if (!preservePath) { filename = basename(filename) } + } + } + } else { return skipPart(part) } + + if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' } + + let onData, + onEnd + + if (isPartAFile(fieldname, contype, filename)) { + // file/binary field + if (nfiles === filesLimit) { + if (!boy.hitFilesLimit) { + boy.hitFilesLimit = true + boy.emit('filesLimit') + } + return skipPart(part) + } + + ++nfiles + + if (boy.listenerCount('file') === 0) { + self.parser._ignore() + return + } + + ++nends + const file = new FileStream(fileOpts) + curFile = file + file.on('end', function () { + --nends + self._pause = false + checkFinished() + if (self._cb && !self._needDrain) { + const cb = self._cb + self._cb = undefined + cb() + } + }) + file._read = function (n) { + if (!self._pause) { return } + self._pause = false + if (self._cb && !self._needDrain) { + const cb = self._cb + self._cb = undefined + cb() + } + } + boy.emit('file', fieldname, file, filename, encoding, contype) + + onData = function (data) { + if ((nsize += data.length) > fileSizeLimit) { + const extralen = fileSizeLimit - nsize + data.length + if (extralen > 0) { file.push(data.slice(0, extralen)) } + file.truncated = true + file.bytesRead = fileSizeLimit + part.removeAllListeners('data') + file.emit('limit') + return + } else if (!file.push(data)) { self._pause = true } + + file.bytesRead = nsize + } + + onEnd = function () { + curFile = undefined + file.push(null) + } + } else { + // non-file field + if (nfields === fieldsLimit) { + if (!boy.hitFieldsLimit) { + boy.hitFieldsLimit = true + boy.emit('fieldsLimit') + } + return skipPart(part) + } + + ++nfields + ++nends + let buffer = '' + let truncated = false + curField = part + + onData = function (data) { + if ((nsize += data.length) > fieldSizeLimit) { + const extralen = (fieldSizeLimit - (nsize - data.length)) + buffer += data.toString('binary', 0, extralen) + truncated = true + part.removeAllListeners('data') + } else { buffer += data.toString('binary') } + } + + onEnd = function () { + curField = undefined + if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) } + boy.emit('field', fieldname, buffer, false, truncated, encoding, contype) + --nends + checkFinished() + } + } + + /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become + broken. Streams2/streams3 is a huge black box of confusion, but + somehow overriding the sync state seems to fix things again (and still + seems to work for previous node versions). + */ + part._readableState.sync = false + + part.on('data', onData) + part.on('end', onEnd) + }).on('error', function (err) { + if (curFile) { curFile.emit('error', err) } + }) + }).on('error', function (err) { + boy.emit('error', err) + }).on('finish', function () { + finished = true + checkFinished() + }) +} + +Multipart.prototype.write = function (chunk, cb) { + const r = this.parser.write(chunk) + if (r && !this._pause) { + cb() + } else { + this._needDrain = !r + this._cb = cb + } +} + +Multipart.prototype.end = function () { + const self = this + + if (self.parser.writable) { + self.parser.end() + } else if (!self._boy._done) { + process.nextTick(function () { + self._boy._done = true + self._boy.emit('finish') + }) + } +} + +function skipPart (part) { + part.resume() +} + +function FileStream (opts) { + Readable.call(this, opts) + + this.bytesRead = 0 + + this.truncated = false +} + +inherits(FileStream, Readable) + +FileStream.prototype._read = function (n) {} + +module.exports = Multipart + + +/***/ }), + +/***/ 7053: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Decoder = __nccwpck_require__(7462) +const decodeText = __nccwpck_require__(4233) +const getLimit = __nccwpck_require__(2291) + +const RE_CHARSET = /^charset$/i + +UrlEncoded.detect = /^application\/x-www-form-urlencoded/i +function UrlEncoded (boy, cfg) { + const limits = cfg.limits + const parsedConType = cfg.parsedConType + this.boy = boy + + this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) + this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100) + this.fieldsLimit = getLimit(limits, 'fields', Infinity) + + let charset + for (var i = 0, len = parsedConType.length; i < len; ++i) { + if (Array.isArray(parsedConType[i]) && + RE_CHARSET.test(parsedConType[i][0])) { + charset = parsedConType[i][1].toLowerCase() + break + } + } + + if (charset === undefined) { charset = cfg.defCharset || 'utf8' } + + this.decoder = new Decoder() + this.charset = charset + this._fields = 0 + this._state = 'key' + this._checkingBytes = true + this._bytesKey = 0 + this._bytesVal = 0 + this._key = '' + this._val = '' + this._keyTrunc = false + this._valTrunc = false + this._hitLimit = false +} + +UrlEncoded.prototype.write = function (data, cb) { + if (this._fields === this.fieldsLimit) { + if (!this.boy.hitFieldsLimit) { + this.boy.hitFieldsLimit = true + this.boy.emit('fieldsLimit') + } + return cb() + } + + let idxeq; let idxamp; let i; let p = 0; const len = data.length + + while (p < len) { + if (this._state === 'key') { + idxeq = idxamp = undefined + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { ++p } + if (data[i] === 0x3D/* = */) { + idxeq = i + break + } else if (data[i] === 0x26/* & */) { + idxamp = i + break + } + if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { + this._hitLimit = true + break + } else if (this._checkingBytes) { ++this._bytesKey } + } + + if (idxeq !== undefined) { + // key with assignment + if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) } + this._state = 'val' + + this._hitLimit = false + this._checkingBytes = true + this._val = '' + this._bytesVal = 0 + this._valTrunc = false + this.decoder.reset() + + p = idxeq + 1 + } else if (idxamp !== undefined) { + // key with no assignment + ++this._fields + let key; const keyTrunc = this._keyTrunc + if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key } + + this._hitLimit = false + this._checkingBytes = true + this._key = '' + this._bytesKey = 0 + this._keyTrunc = false + this.decoder.reset() + + if (key.length) { + this.boy.emit('field', decodeText(key, 'binary', this.charset), + '', + keyTrunc, + false) + } + + p = idxamp + 1 + if (this._fields === this.fieldsLimit) { return cb() } + } else if (this._hitLimit) { + // we may not have hit the actual limit if there are encoded bytes... + if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) } + p = i + if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { + // yep, we actually did hit the limit + this._checkingBytes = false + this._keyTrunc = true + } + } else { + if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) } + p = len + } + } else { + idxamp = undefined + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { ++p } + if (data[i] === 0x26/* & */) { + idxamp = i + break + } + if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { + this._hitLimit = true + break + } else if (this._checkingBytes) { ++this._bytesVal } + } + + if (idxamp !== undefined) { + ++this._fields + if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) } + this.boy.emit('field', decodeText(this._key, 'binary', this.charset), + decodeText(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc) + this._state = 'key' + + this._hitLimit = false + this._checkingBytes = true + this._key = '' + this._bytesKey = 0 + this._keyTrunc = false + this.decoder.reset() + + p = idxamp + 1 + if (this._fields === this.fieldsLimit) { return cb() } + } else if (this._hitLimit) { + // we may not have hit the actual limit if there are encoded bytes... + if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) } + p = i + if ((this._val === '' && this.fieldSizeLimit === 0) || + (this._bytesVal = this._val.length) === this.fieldSizeLimit) { + // yep, we actually did hit the limit + this._checkingBytes = false + this._valTrunc = true + } + } else { + if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) } + p = len + } + } + } + cb() +} + +UrlEncoded.prototype.end = function () { + if (this.boy._done) { return } + + if (this._state === 'key' && this._key.length > 0) { + this.boy.emit('field', decodeText(this._key, 'binary', this.charset), + '', + this._keyTrunc, + false) + } else if (this._state === 'val') { + this.boy.emit('field', decodeText(this._key, 'binary', this.charset), + decodeText(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc) + } + this.boy._done = true + this.boy.emit('finish') +} + +module.exports = UrlEncoded + + +/***/ }), + +/***/ 7462: +/***/ ((module) => { + + + +const RE_PLUS = /\+/g + +const HEX = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +] + +function Decoder () { + this.buffer = undefined +} +Decoder.prototype.write = function (str) { + // Replace '+' with ' ' before decoding + str = str.replace(RE_PLUS, ' ') + let res = '' + let i = 0; let p = 0; const len = str.length + for (; i < len; ++i) { + if (this.buffer !== undefined) { + if (!HEX[str.charCodeAt(i)]) { + res += '%' + this.buffer + this.buffer = undefined + --i // retry character + } else { + this.buffer += str[i] + ++p + if (this.buffer.length === 2) { + res += String.fromCharCode(parseInt(this.buffer, 16)) + this.buffer = undefined + } + } + } else if (str[i] === '%') { + if (i > p) { + res += str.substring(p, i) + p = i + } + this.buffer = '' + ++p + } + } + if (p < len && this.buffer === undefined) { res += str.substring(p) } + return res +} +Decoder.prototype.reset = function () { + this.buffer = undefined +} + +module.exports = Decoder + + +/***/ }), + +/***/ 2654: +/***/ ((module) => { + + + +module.exports = function basename (path) { + if (typeof path !== 'string') { return '' } + for (var i = path.length - 1; i >= 0; --i) { + switch (path.charCodeAt(i)) { + case 0x2F: // '/' + case 0x5C: // '\' + path = path.slice(i + 1) + return (path === '..' || path === '.' ? '' : path) + } + } + return (path === '..' || path === '.' ? '' : path) +} + + +/***/ }), + +/***/ 4233: +/***/ (function(module) { + + + +// Node has always utf-8 +const utf8Decoder = new TextDecoder('utf-8') +const textDecoders = new Map([ + ['utf-8', utf8Decoder], + ['utf8', utf8Decoder] +]) + +function getDecoder (charset) { + let lc + while (true) { + switch (charset) { + case 'utf-8': + case 'utf8': + return decoders.utf8 + case 'latin1': + case 'ascii': // TODO: Make these a separate, strict decoder? + case 'us-ascii': + case 'iso-8859-1': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'windows-1252': + case 'iso_8859-1:1987': + case 'cp1252': + case 'x-cp1252': + return decoders.latin1 + case 'utf16le': + case 'utf-16le': + case 'ucs2': + case 'ucs-2': + return decoders.utf16le + case 'base64': + return decoders.base64 + default: + if (lc === undefined) { + lc = true + charset = charset.toLowerCase() + continue + } + return decoders.other.bind(charset) + } + } +} + +const decoders = { + utf8: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } + return data.utf8Slice(0, data.length) + }, + + latin1: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + return data + } + return data.latin1Slice(0, data.length) + }, + + utf16le: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } + return data.ucs2Slice(0, data.length) + }, + + base64: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } + return data.base64Slice(0, data.length) + }, + + other: (data, sourceEncoding) => { + if (data.length === 0) { + return '' + } + if (typeof data === 'string') { + data = Buffer.from(data, sourceEncoding) + } + + if (textDecoders.has(this.toString())) { + try { + return textDecoders.get(this).decode(data) + } catch {} + } + return typeof data === 'string' + ? data + : data.toString() + } +} + +function decodeText (text, sourceEncoding, destEncoding) { + if (text) { + return getDecoder(destEncoding)(text, sourceEncoding) + } + return text +} + +module.exports = decodeText + + +/***/ }), + +/***/ 2291: +/***/ ((module) => { + + + +module.exports = function getLimit (limits, name, defaultLimit) { + if ( + !limits || + limits[name] === undefined || + limits[name] === null + ) { return defaultLimit } + + if ( + typeof limits[name] !== 'number' || + isNaN(limits[name]) + ) { throw new TypeError('Limit ' + name + ' is not a valid number') } + + return limits[name] +} + + +/***/ }), + +/***/ 2587: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + + +const decodeText = __nccwpck_require__(4233) + +const RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g + +const EncodedLookup = { + '%00': '\x00', '%01': '\x01', '%02': '\x02', '%03': '\x03', '%04': '\x04', + '%05': '\x05', '%06': '\x06', '%07': '\x07', '%08': '\x08', '%09': '\x09', + '%0a': '\x0a', '%0A': '\x0a', '%0b': '\x0b', '%0B': '\x0b', '%0c': '\x0c', + '%0C': '\x0c', '%0d': '\x0d', '%0D': '\x0d', '%0e': '\x0e', '%0E': '\x0e', + '%0f': '\x0f', '%0F': '\x0f', '%10': '\x10', '%11': '\x11', '%12': '\x12', + '%13': '\x13', '%14': '\x14', '%15': '\x15', '%16': '\x16', '%17': '\x17', + '%18': '\x18', '%19': '\x19', '%1a': '\x1a', '%1A': '\x1a', '%1b': '\x1b', + '%1B': '\x1b', '%1c': '\x1c', '%1C': '\x1c', '%1d': '\x1d', '%1D': '\x1d', + '%1e': '\x1e', '%1E': '\x1e', '%1f': '\x1f', '%1F': '\x1f', '%20': '\x20', + '%21': '\x21', '%22': '\x22', '%23': '\x23', '%24': '\x24', '%25': '\x25', + '%26': '\x26', '%27': '\x27', '%28': '\x28', '%29': '\x29', '%2a': '\x2a', + '%2A': '\x2a', '%2b': '\x2b', '%2B': '\x2b', '%2c': '\x2c', '%2C': '\x2c', + '%2d': '\x2d', '%2D': '\x2d', '%2e': '\x2e', '%2E': '\x2e', '%2f': '\x2f', + '%2F': '\x2f', '%30': '\x30', '%31': '\x31', '%32': '\x32', '%33': '\x33', + '%34': '\x34', '%35': '\x35', '%36': '\x36', '%37': '\x37', '%38': '\x38', + '%39': '\x39', '%3a': '\x3a', '%3A': '\x3a', '%3b': '\x3b', '%3B': '\x3b', + '%3c': '\x3c', '%3C': '\x3c', '%3d': '\x3d', '%3D': '\x3d', '%3e': '\x3e', + '%3E': '\x3e', '%3f': '\x3f', '%3F': '\x3f', '%40': '\x40', '%41': '\x41', + '%42': '\x42', '%43': '\x43', '%44': '\x44', '%45': '\x45', '%46': '\x46', + '%47': '\x47', '%48': '\x48', '%49': '\x49', '%4a': '\x4a', '%4A': '\x4a', + '%4b': '\x4b', '%4B': '\x4b', '%4c': '\x4c', '%4C': '\x4c', '%4d': '\x4d', + '%4D': '\x4d', '%4e': '\x4e', '%4E': '\x4e', '%4f': '\x4f', '%4F': '\x4f', + '%50': '\x50', '%51': '\x51', '%52': '\x52', '%53': '\x53', '%54': '\x54', + '%55': '\x55', '%56': '\x56', '%57': '\x57', '%58': '\x58', '%59': '\x59', + '%5a': '\x5a', '%5A': '\x5a', '%5b': '\x5b', '%5B': '\x5b', '%5c': '\x5c', + '%5C': '\x5c', '%5d': '\x5d', '%5D': '\x5d', '%5e': '\x5e', '%5E': '\x5e', + '%5f': '\x5f', '%5F': '\x5f', '%60': '\x60', '%61': '\x61', '%62': '\x62', + '%63': '\x63', '%64': '\x64', '%65': '\x65', '%66': '\x66', '%67': '\x67', + '%68': '\x68', '%69': '\x69', '%6a': '\x6a', '%6A': '\x6a', '%6b': '\x6b', + '%6B': '\x6b', '%6c': '\x6c', '%6C': '\x6c', '%6d': '\x6d', '%6D': '\x6d', + '%6e': '\x6e', '%6E': '\x6e', '%6f': '\x6f', '%6F': '\x6f', '%70': '\x70', + '%71': '\x71', '%72': '\x72', '%73': '\x73', '%74': '\x74', '%75': '\x75', + '%76': '\x76', '%77': '\x77', '%78': '\x78', '%79': '\x79', '%7a': '\x7a', + '%7A': '\x7a', '%7b': '\x7b', '%7B': '\x7b', '%7c': '\x7c', '%7C': '\x7c', + '%7d': '\x7d', '%7D': '\x7d', '%7e': '\x7e', '%7E': '\x7e', '%7f': '\x7f', + '%7F': '\x7f', '%80': '\x80', '%81': '\x81', '%82': '\x82', '%83': '\x83', + '%84': '\x84', '%85': '\x85', '%86': '\x86', '%87': '\x87', '%88': '\x88', + '%89': '\x89', '%8a': '\x8a', '%8A': '\x8a', '%8b': '\x8b', '%8B': '\x8b', + '%8c': '\x8c', '%8C': '\x8c', '%8d': '\x8d', '%8D': '\x8d', '%8e': '\x8e', + '%8E': '\x8e', '%8f': '\x8f', '%8F': '\x8f', '%90': '\x90', '%91': '\x91', + '%92': '\x92', '%93': '\x93', '%94': '\x94', '%95': '\x95', '%96': '\x96', + '%97': '\x97', '%98': '\x98', '%99': '\x99', '%9a': '\x9a', '%9A': '\x9a', + '%9b': '\x9b', '%9B': '\x9b', '%9c': '\x9c', '%9C': '\x9c', '%9d': '\x9d', + '%9D': '\x9d', '%9e': '\x9e', '%9E': '\x9e', '%9f': '\x9f', '%9F': '\x9f', + '%a0': '\xa0', '%A0': '\xa0', '%a1': '\xa1', '%A1': '\xa1', '%a2': '\xa2', + '%A2': '\xa2', '%a3': '\xa3', '%A3': '\xa3', '%a4': '\xa4', '%A4': '\xa4', + '%a5': '\xa5', '%A5': '\xa5', '%a6': '\xa6', '%A6': '\xa6', '%a7': '\xa7', + '%A7': '\xa7', '%a8': '\xa8', '%A8': '\xa8', '%a9': '\xa9', '%A9': '\xa9', + '%aa': '\xaa', '%Aa': '\xaa', '%aA': '\xaa', '%AA': '\xaa', '%ab': '\xab', + '%Ab': '\xab', '%aB': '\xab', '%AB': '\xab', '%ac': '\xac', '%Ac': '\xac', + '%aC': '\xac', '%AC': '\xac', '%ad': '\xad', '%Ad': '\xad', '%aD': '\xad', + '%AD': '\xad', '%ae': '\xae', '%Ae': '\xae', '%aE': '\xae', '%AE': '\xae', + '%af': '\xaf', '%Af': '\xaf', '%aF': '\xaf', '%AF': '\xaf', '%b0': '\xb0', + '%B0': '\xb0', '%b1': '\xb1', '%B1': '\xb1', '%b2': '\xb2', '%B2': '\xb2', + '%b3': '\xb3', '%B3': '\xb3', '%b4': '\xb4', '%B4': '\xb4', '%b5': '\xb5', + '%B5': '\xb5', '%b6': '\xb6', '%B6': '\xb6', '%b7': '\xb7', '%B7': '\xb7', + '%b8': '\xb8', '%B8': '\xb8', '%b9': '\xb9', '%B9': '\xb9', '%ba': '\xba', + '%Ba': '\xba', '%bA': '\xba', '%BA': '\xba', '%bb': '\xbb', '%Bb': '\xbb', + '%bB': '\xbb', '%BB': '\xbb', '%bc': '\xbc', '%Bc': '\xbc', '%bC': '\xbc', + '%BC': '\xbc', '%bd': '\xbd', '%Bd': '\xbd', '%bD': '\xbd', '%BD': '\xbd', + '%be': '\xbe', '%Be': '\xbe', '%bE': '\xbe', '%BE': '\xbe', '%bf': '\xbf', + '%Bf': '\xbf', '%bF': '\xbf', '%BF': '\xbf', '%c0': '\xc0', '%C0': '\xc0', + '%c1': '\xc1', '%C1': '\xc1', '%c2': '\xc2', '%C2': '\xc2', '%c3': '\xc3', + '%C3': '\xc3', '%c4': '\xc4', '%C4': '\xc4', '%c5': '\xc5', '%C5': '\xc5', + '%c6': '\xc6', '%C6': '\xc6', '%c7': '\xc7', '%C7': '\xc7', '%c8': '\xc8', + '%C8': '\xc8', '%c9': '\xc9', '%C9': '\xc9', '%ca': '\xca', '%Ca': '\xca', + '%cA': '\xca', '%CA': '\xca', '%cb': '\xcb', '%Cb': '\xcb', '%cB': '\xcb', + '%CB': '\xcb', '%cc': '\xcc', '%Cc': '\xcc', '%cC': '\xcc', '%CC': '\xcc', + '%cd': '\xcd', '%Cd': '\xcd', '%cD': '\xcd', '%CD': '\xcd', '%ce': '\xce', + '%Ce': '\xce', '%cE': '\xce', '%CE': '\xce', '%cf': '\xcf', '%Cf': '\xcf', + '%cF': '\xcf', '%CF': '\xcf', '%d0': '\xd0', '%D0': '\xd0', '%d1': '\xd1', + '%D1': '\xd1', '%d2': '\xd2', '%D2': '\xd2', '%d3': '\xd3', '%D3': '\xd3', + '%d4': '\xd4', '%D4': '\xd4', '%d5': '\xd5', '%D5': '\xd5', '%d6': '\xd6', + '%D6': '\xd6', '%d7': '\xd7', '%D7': '\xd7', '%d8': '\xd8', '%D8': '\xd8', + '%d9': '\xd9', '%D9': '\xd9', '%da': '\xda', '%Da': '\xda', '%dA': '\xda', + '%DA': '\xda', '%db': '\xdb', '%Db': '\xdb', '%dB': '\xdb', '%DB': '\xdb', + '%dc': '\xdc', '%Dc': '\xdc', '%dC': '\xdc', '%DC': '\xdc', '%dd': '\xdd', + '%Dd': '\xdd', '%dD': '\xdd', '%DD': '\xdd', '%de': '\xde', '%De': '\xde', + '%dE': '\xde', '%DE': '\xde', '%df': '\xdf', '%Df': '\xdf', '%dF': '\xdf', + '%DF': '\xdf', '%e0': '\xe0', '%E0': '\xe0', '%e1': '\xe1', '%E1': '\xe1', + '%e2': '\xe2', '%E2': '\xe2', '%e3': '\xe3', '%E3': '\xe3', '%e4': '\xe4', + '%E4': '\xe4', '%e5': '\xe5', '%E5': '\xe5', '%e6': '\xe6', '%E6': '\xe6', + '%e7': '\xe7', '%E7': '\xe7', '%e8': '\xe8', '%E8': '\xe8', '%e9': '\xe9', + '%E9': '\xe9', '%ea': '\xea', '%Ea': '\xea', '%eA': '\xea', '%EA': '\xea', + '%eb': '\xeb', '%Eb': '\xeb', '%eB': '\xeb', '%EB': '\xeb', '%ec': '\xec', + '%Ec': '\xec', '%eC': '\xec', '%EC': '\xec', '%ed': '\xed', '%Ed': '\xed', + '%eD': '\xed', '%ED': '\xed', '%ee': '\xee', '%Ee': '\xee', '%eE': '\xee', + '%EE': '\xee', '%ef': '\xef', '%Ef': '\xef', '%eF': '\xef', '%EF': '\xef', + '%f0': '\xf0', '%F0': '\xf0', '%f1': '\xf1', '%F1': '\xf1', '%f2': '\xf2', + '%F2': '\xf2', '%f3': '\xf3', '%F3': '\xf3', '%f4': '\xf4', '%F4': '\xf4', + '%f5': '\xf5', '%F5': '\xf5', '%f6': '\xf6', '%F6': '\xf6', '%f7': '\xf7', + '%F7': '\xf7', '%f8': '\xf8', '%F8': '\xf8', '%f9': '\xf9', '%F9': '\xf9', + '%fa': '\xfa', '%Fa': '\xfa', '%fA': '\xfa', '%FA': '\xfa', '%fb': '\xfb', + '%Fb': '\xfb', '%fB': '\xfb', '%FB': '\xfb', '%fc': '\xfc', '%Fc': '\xfc', + '%fC': '\xfc', '%FC': '\xfc', '%fd': '\xfd', '%Fd': '\xfd', '%fD': '\xfd', + '%FD': '\xfd', '%fe': '\xfe', '%Fe': '\xfe', '%fE': '\xfe', '%FE': '\xfe', + '%ff': '\xff', '%Ff': '\xff', '%fF': '\xff', '%FF': '\xff' +} + +function encodedReplacer (match) { + return EncodedLookup[match] +} + +const STATE_KEY = 0 +const STATE_VALUE = 1 +const STATE_CHARSET = 2 +const STATE_LANG = 3 + +function parseParams (str) { + const res = [] + let state = STATE_KEY + let charset = '' + let inquote = false + let escaping = false + let p = 0 + let tmp = '' + const len = str.length + + for (var i = 0; i < len; ++i) { + const char = str[i] + if (char === '\\' && inquote) { + if (escaping) { escaping = false } else { + escaping = true + continue + } + } else if (char === '"') { + if (!escaping) { + if (inquote) { + inquote = false + state = STATE_KEY + } else { inquote = true } + continue + } else { escaping = false } + } else { + if (escaping && inquote) { tmp += '\\' } + escaping = false + if ((state === STATE_CHARSET || state === STATE_LANG) && char === "'") { + if (state === STATE_CHARSET) { + state = STATE_LANG + charset = tmp.substring(1) + } else { state = STATE_VALUE } + tmp = '' + continue + } else if (state === STATE_KEY && + (char === '*' || char === '=') && + res.length) { + state = char === '*' + ? STATE_CHARSET + : STATE_VALUE + res[p] = [tmp, undefined] + tmp = '' + continue + } else if (!inquote && char === ';') { + state = STATE_KEY + if (charset) { + if (tmp.length) { + tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), + 'binary', + charset) + } + charset = '' + } else if (tmp.length) { + tmp = decodeText(tmp, 'binary', 'utf8') + } + if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp } + tmp = '' + ++p + continue + } else if (!inquote && (char === ' ' || char === '\t')) { continue } + } + tmp += char + } + if (charset && tmp.length) { + tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), + 'binary', + charset) + } else if (tmp) { + tmp = decodeText(tmp, 'binary', 'utf8') + } + + if (res[p] === undefined) { + if (tmp) { res[p] = tmp } + } else { res[p][1] = tmp } + + return res +} + +module.exports = parseParams + + +/***/ }), + +/***/ 56: +/***/ ((module) => { + +module.exports = /*#__PURE__*/JSON.parse('{"name":"dotenv","version":"16.4.5","description":"Loads environment variables from .env file","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","require":"./lib/main.js","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","lint-readme":"standard-markdown","pretest":"npm run lint && npm run dts-check","test":"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov","prerelease":"npm test","release":"standard-version"},"repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"funding":"https://dotenvx.com","keywords":["dotenv","env",".env","environment","variables","config","settings"],"readmeFilename":"README.md","license":"BSD-2-Clause","devDependencies":{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3","decache":"^4.6.1","sinon":"^14.0.1","standard":"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0","tap":"^16.3.0","tar":"^6.1.11","typescript":"^4.8.4"},"engines":{"node":">=12"},"browser":{"fs":false}}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // 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 get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nccwpck_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __nccwpck_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __nccwpck_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__nccwpck_require__.o(definition, key) && !__nccwpck_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __nccwpck_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __nccwpck_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = new URL('.', import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/) ? 1 : 0, -1) + "/"; +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// NAMESPACE OBJECT: ./node_modules/@sinclair/typebox/build/esm/type/type/type.mjs +var type_type_namespaceObject = {}; +__nccwpck_require__.r(type_type_namespaceObject); +__nccwpck_require__.d(type_type_namespaceObject, { + Any: () => (Any), + Array: () => (array_Array), + AsyncIterator: () => (src_AsyncIterator), + Awaited: () => (Awaited), + BigInt: () => (bigint_BigInt), + Boolean: () => (boolean_Boolean), + Capitalize: () => (Capitalize), + Composite: () => (Composite), + Const: () => (Const), + Constructor: () => (Constructor), + ConstructorParameters: () => (ConstructorParameters), + Date: () => (date_Date), + Enum: () => (Enum), + Exclude: () => (Exclude), + Extends: () => (Extends), + Extract: () => (Extract), + Function: () => (function_Function), + Index: () => (Index), + InstanceType: () => (InstanceType), + Integer: () => (Integer), + Intersect: () => (Intersect), + Iterator: () => (src_Iterator), + KeyOf: () => (KeyOf), + Literal: () => (Literal), + Lowercase: () => (Lowercase), + Mapped: () => (Mapped), + Module: () => (Module), + Never: () => (Never), + Not: () => (Not), + Null: () => (Null), + Number: () => (number_Number), + Object: () => (object_Object), + Omit: () => (Omit), + Optional: () => (Optional), + Parameters: () => (Parameters), + Partial: () => (Partial), + Pick: () => (Pick), + Promise: () => (promise_Promise), + Readonly: () => (Readonly), + ReadonlyOptional: () => (ReadonlyOptional), + Record: () => (Record), + Recursive: () => (Recursive), + Ref: () => (Ref), + RegExp: () => (regexp_RegExp), + Required: () => (Required), + Rest: () => (Rest), + ReturnType: () => (ReturnType), + String: () => (string_String), + Symbol: () => (symbol_Symbol), + TemplateLiteral: () => (TemplateLiteral), + Transform: () => (Transform), + Tuple: () => (Tuple), + Uint8Array: () => (uint8array_Uint8Array), + Uncapitalize: () => (Uncapitalize), + Undefined: () => (Undefined), + Union: () => (Union), + Unknown: () => (Unknown), + Unsafe: () => (Unsafe), + Uppercase: () => (Uppercase), + Void: () => (Void) +}); + +;// CONCATENATED MODULE: ./node_modules/@ubiquity-os/ubiquity-os-logger/dist/index.js +// src/constants.ts +var COLORS = { + reset: "\x1B[0m", + bright: "\x1B[1m", + dim: "\x1B[2m", + underscore: "\x1B[4m", + blink: "\x1B[5m", + reverse: "\x1B[7m", + hidden: "\x1B[8m", + fgBlack: "\x1B[30m", + fgRed: "\x1B[31m", + fgGreen: "\x1B[32m", + fgYellow: "\x1B[33m", + fgBlue: "\x1B[34m", + fgMagenta: "\x1B[35m", + fgCyan: "\x1B[36m", + fgWhite: "\x1B[37m", + bgBlack: "\x1B[40m", + bgRed: "\x1B[41m", + bgGreen: "\x1B[42m", + bgYellow: "\x1B[43m", + bgBlue: "\x1B[44m", + bgMagenta: "\x1B[45m", + bgCyan: "\x1B[46m", + bgWhite: "\x1B[47m" +}; +var dist_LOG_LEVEL = { + FATAL: "fatal", + ERROR: "error", + INFO: "info", + VERBOSE: "verbose", + DEBUG: "debug" +}; + +// src/pretty-logs.ts +var PrettyLogs = class { + constructor() { + this.ok = this.ok.bind(this); + this.info = this.info.bind(this); + this.error = this.error.bind(this); + this.fatal = this.fatal.bind(this); + this.debug = this.debug.bind(this); + this.verbose = this.verbose.bind(this); + } + fatal(message, metadata) { + this._logWithStack(dist_LOG_LEVEL.FATAL, message, metadata); + } + error(message, metadata) { + this._logWithStack(dist_LOG_LEVEL.ERROR, message, metadata); + } + ok(message, metadata) { + this._logWithStack("ok", message, metadata); + } + info(message, metadata) { + this._logWithStack(dist_LOG_LEVEL.INFO, message, metadata); + } + debug(message, metadata) { + this._logWithStack(dist_LOG_LEVEL.DEBUG, message, metadata); + } + verbose(message, metadata) { + this._logWithStack(dist_LOG_LEVEL.VERBOSE, message, metadata); + } + _logWithStack(type, message, metaData) { + this._log(type, message); + if (typeof metaData === "string") { + this._log(type, metaData); + return; + } + if (metaData) { + const metadata = metaData; + let stack = metadata?.error?.stack || metadata?.stack; + if (!stack) { + const stackTrace = new Error().stack?.split("\n"); + if (stackTrace) { + stackTrace.splice(0, 4); + stack = stackTrace.filter((line) => line.includes(".ts:")).join("\n"); + } + } + const newMetadata = { ...metadata }; + delete newMetadata.message; + delete newMetadata.name; + delete newMetadata.stack; + if (!this._isEmpty(newMetadata)) { + this._log(type, newMetadata); + } + if (typeof stack == "string") { + const prettyStack = this._formatStackTrace(stack, 1); + const colorizedStack = this._colorizeText(prettyStack, COLORS.dim); + this._log(type, colorizedStack); + } else if (stack) { + const prettyStack = this._formatStackTrace(stack.join("\n"), 1); + const colorizedStack = this._colorizeText(prettyStack, COLORS.dim); + this._log(type, colorizedStack); + } else { + throw new Error("Stack is null"); + } + } + } + _colorizeText(text, color) { + if (!color) { + throw new Error(`Invalid color: ${color}`); + } + return color.concat(text).concat(COLORS.reset); + } + _formatStackTrace(stack, linesToRemove = 0, prefix = "") { + const lines = stack.split("\n"); + for (let i = 0; i < linesToRemove; i++) { + lines.shift(); + } + return lines.map((line) => `${prefix}${line.replace(/\s*at\s*/, " \u21B3 ")}`).join("\n"); + } + _isEmpty(obj) { + return !Reflect.ownKeys(obj).some((key) => typeof obj[String(key)] !== "function"); + } + _log(type, message) { + const defaultSymbols = { + fatal: "\xD7", + ok: "\u2713", + error: "\u26A0", + info: "\u203A", + debug: "\u203A\u203A", + verbose: "\u{1F4AC}" + }; + const symbol = defaultSymbols[type]; + const messageFormatted = typeof message === "string" ? message : JSON.stringify(message, null, 2); + const lines = messageFormatted.split("\n"); + const logString = lines.map((line, index) => { + const prefix = index === 0 ? ` ${symbol}` : ` ${" ".repeat(symbol.length)}`; + return `${prefix} ${line}`; + }).join("\n"); + const fullLogString = logString; + const colorMap = { + fatal: ["error", COLORS.fgRed], + ok: ["log", COLORS.fgGreen], + error: ["warn", COLORS.fgYellow], + info: ["info", COLORS.dim], + debug: ["debug", COLORS.fgMagenta], + verbose: ["debug", COLORS.dim] + }; + const _console = console[colorMap[type][0]]; + if (typeof _console === "function" && fullLogString.length > 12) { + _console(this._colorizeText(fullLogString, colorMap[type][1])); + } else if (fullLogString.length <= 12) { + return; + } else { + throw new Error(fullLogString); + } + } +}; + +// src/types/log-types.ts +var dist_LogReturn = class { + logMessage; + metadata; + constructor(logMessage, metadata) { + this.logMessage = logMessage; + this.metadata = metadata; + } +}; + +// src/logs.ts +var dist_Logs = class _Logs { + _maxLevel = -1; + static console; + _log({ level, consoleLog, logMessage, metadata, type }) { + if (this._getNumericLevel(level) <= this._maxLevel) { + consoleLog(logMessage, metadata); + } + return new dist_LogReturn( + { + raw: logMessage, + diff: this._diffColorCommentMessage(type, logMessage), + type, + level + }, + metadata + ); + } + _addDiagnosticInformation(metadata) { + if (!metadata) { + metadata = {}; + } else if (typeof metadata !== "object") { + metadata = { message: metadata }; + } + const stackLines = new Error().stack?.split("\n") || []; + if (stackLines.length > 3) { + const callerLine = stackLines[3]; + const match = callerLine.match(/at (\S+)/); + if (match) { + metadata.caller = match[1]; + } + } + return metadata; + } + ok(log, metadata) { + metadata = this._addDiagnosticInformation(metadata); + return this._log({ + level: dist_LOG_LEVEL.INFO, + consoleLog: _Logs.console.ok, + logMessage: log, + metadata, + type: "ok" + }); + } + info(log, metadata) { + metadata = this._addDiagnosticInformation(metadata); + return this._log({ + level: dist_LOG_LEVEL.INFO, + consoleLog: _Logs.console.info, + logMessage: log, + metadata, + type: "info" + }); + } + error(log, metadata) { + metadata = this._addDiagnosticInformation(metadata); + return this._log({ + level: dist_LOG_LEVEL.ERROR, + consoleLog: _Logs.console.error, + logMessage: log, + metadata, + type: "error" + }); + } + debug(log, metadata) { + metadata = this._addDiagnosticInformation(metadata); + return this._log({ + level: dist_LOG_LEVEL.DEBUG, + consoleLog: _Logs.console.debug, + logMessage: log, + metadata, + type: "debug" + }); + } + fatal(log, metadata) { + if (!metadata) { + metadata = _Logs.convertErrorsIntoObjects(new Error(log)); + const stack = metadata.stack; + stack.splice(1, 1); + metadata.stack = stack; + } + if (metadata instanceof Error) { + metadata = _Logs.convertErrorsIntoObjects(metadata); + const stack = metadata.stack; + stack.splice(1, 1); + metadata.stack = stack; + } + metadata = this._addDiagnosticInformation(metadata); + return this._log({ + level: dist_LOG_LEVEL.FATAL, + consoleLog: _Logs.console.fatal, + logMessage: log, + metadata, + type: "fatal" + }); + } + verbose(log, metadata) { + metadata = this._addDiagnosticInformation(metadata); + return this._log({ + level: dist_LOG_LEVEL.VERBOSE, + consoleLog: _Logs.console.verbose, + logMessage: log, + metadata, + type: "verbose" + }); + } + constructor(logLevel) { + this._maxLevel = this._getNumericLevel(logLevel); + _Logs.console = new PrettyLogs(); + } + _diffColorCommentMessage(type, message) { + const diffPrefix = { + fatal: "-", + // - text in red + ok: "+", + // + text in green + error: "!", + // ! text in orange + info: "#", + // # text in gray + debug: "@@@@" + // @@ text in purple (and bold)@@ + }; + const selected = diffPrefix[type]; + if (selected) { + message = message.trim().split("\n").map((line) => `${selected} ${line}`).join("\n"); + } else if (type === "debug") { + message = message.split("\n").map((line) => `@@ ${line} @@`).join("\n"); + } else { + message = message.split("\n").map((line) => `# ${line}`).join("\n"); + } + const diffHeader = "```diff"; + const diffFooter = "```"; + return [diffHeader, message, diffFooter].join("\n"); + } + _getNumericLevel(level) { + switch (level) { + case dist_LOG_LEVEL.FATAL: + return 0; + case dist_LOG_LEVEL.ERROR: + return 1; + case dist_LOG_LEVEL.INFO: + return 2; + case dist_LOG_LEVEL.VERBOSE: + return 4; + case dist_LOG_LEVEL.DEBUG: + return 5; + default: + return -1; + } + } + static convertErrorsIntoObjects(obj) { + if (obj instanceof Error) { + return { + message: obj.message, + name: obj.name, + stack: obj.stack ? obj.stack.split("\n") : null + }; + } else if (typeof obj === "object" && obj !== null) { + const keys = Object.keys(obj); + keys.forEach((key) => { + obj[key] = this.convertErrorsIntoObjects(obj[key]); + }); + } + return obj; + } +}; + +// src/utils.ts +var ansiEscapeCodes = /\x1b\[\d+m|\s/g; +function cleanLogs(spy) { + const strs = spy.mock.calls.map((call) => call.map((str) => str?.toString()).join(" ")); + return strs.flat().map((str) => cleanLogString(str)); +} +function cleanLogString(logString) { + return logString.replaceAll(ansiEscapeCodes, "").replaceAll(/\n/g, "").replaceAll(/\r/g, "").replaceAll(/\t/g, "").trim(); +} +function cleanSpyLogs(spy) { + return cleanLogs(spy); +} + + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/guard/guard.mjs +// -------------------------------------------------------------------------- +// Iterators +// -------------------------------------------------------------------------- +/** Returns true if this value is an async iterator */ +function IsAsyncIterator(value) { + return IsObject(value) && Symbol.asyncIterator in value; +} +/** Returns true if this value is an iterator */ +function IsIterator(value) { + return IsObject(value) && Symbol.iterator in value; +} +// -------------------------------------------------------------------------- +// Object Instances +// -------------------------------------------------------------------------- +/** Returns true if this value is not an instance of a class */ +function IsStandardObject(value) { + return IsObject(value) && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null); +} +/** Returns true if this value is an instance of a class */ +function IsInstanceObject(value) { + return IsObject(value) && !IsArray(value) && IsFunction(value.constructor) && value.constructor.name !== 'Object'; +} +// -------------------------------------------------------------------------- +// JavaScript +// -------------------------------------------------------------------------- +/** Returns true if this value is a Promise */ +function IsPromise(value) { + return value instanceof Promise; +} +/** Returns true if this value is a Date */ +function IsDate(value) { + return value instanceof Date && Number.isFinite(value.getTime()); +} +/** Returns true if this value is an instance of Map */ +function IsMap(value) { + return value instanceof globalThis.Map; +} +/** Returns true if this value is an instance of Set */ +function IsSet(value) { + return value instanceof globalThis.Set; +} +/** Returns true if this value is RegExp */ +function IsRegExp(value) { + return value instanceof globalThis.RegExp; +} +/** Returns true if this value is a typed array */ +function IsTypedArray(value) { + return ArrayBuffer.isView(value); +} +/** Returns true if the value is a Int8Array */ +function IsInt8Array(value) { + return value instanceof globalThis.Int8Array; +} +/** Returns true if the value is a Uint8Array */ +function IsUint8Array(value) { + return value instanceof globalThis.Uint8Array; +} +/** Returns true if the value is a Uint8ClampedArray */ +function IsUint8ClampedArray(value) { + return value instanceof globalThis.Uint8ClampedArray; +} +/** Returns true if the value is a Int16Array */ +function IsInt16Array(value) { + return value instanceof globalThis.Int16Array; +} +/** Returns true if the value is a Uint16Array */ +function IsUint16Array(value) { + return value instanceof globalThis.Uint16Array; +} +/** Returns true if the value is a Int32Array */ +function IsInt32Array(value) { + return value instanceof globalThis.Int32Array; +} +/** Returns true if the value is a Uint32Array */ +function IsUint32Array(value) { + return value instanceof globalThis.Uint32Array; +} +/** Returns true if the value is a Float32Array */ +function IsFloat32Array(value) { + return value instanceof globalThis.Float32Array; +} +/** Returns true if the value is a Float64Array */ +function IsFloat64Array(value) { + return value instanceof globalThis.Float64Array; +} +/** Returns true if the value is a BigInt64Array */ +function IsBigInt64Array(value) { + return value instanceof globalThis.BigInt64Array; +} +/** Returns true if the value is a BigUint64Array */ +function IsBigUint64Array(value) { + return value instanceof globalThis.BigUint64Array; +} +// -------------------------------------------------------------------------- +// PropertyKey +// -------------------------------------------------------------------------- +/** Returns true if this value has this property key */ +function HasPropertyKey(value, key) { + return key in value; +} +// -------------------------------------------------------------------------- +// Standard +// -------------------------------------------------------------------------- +/** Returns true of this value is an object type */ +function IsObject(value) { + return value !== null && typeof value === 'object'; +} +/** Returns true if this value is an array, but not a typed array */ +function IsArray(value) { + return Array.isArray(value) && !ArrayBuffer.isView(value); +} +/** Returns true if this value is an undefined */ +function IsUndefined(value) { + return value === undefined; +} +/** Returns true if this value is an null */ +function IsNull(value) { + return value === null; +} +/** Returns true if this value is an boolean */ +function IsBoolean(value) { + return typeof value === 'boolean'; +} +/** Returns true if this value is an number */ +function IsNumber(value) { + return typeof value === 'number'; +} +/** Returns true if this value is an integer */ +function IsInteger(value) { + return Number.isInteger(value); +} +/** Returns true if this value is bigint */ +function IsBigInt(value) { + return typeof value === 'bigint'; +} +/** Returns true if this value is string */ +function IsString(value) { + return typeof value === 'string'; +} +/** Returns true if this value is a function */ +function IsFunction(value) { + return typeof value === 'function'; +} +/** Returns true if this value is a symbol */ +function IsSymbol(value) { + return typeof value === 'symbol'; +} +/** Returns true if this value is a value type such as number, string, boolean */ +function IsValueType(value) { + // prettier-ignore + return (IsBigInt(value) || + IsBoolean(value) || + IsNull(value) || + IsNumber(value) || + IsString(value) || + IsSymbol(value) || + IsUndefined(value)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/system/policy.mjs + +var TypeSystemPolicy; +(function (TypeSystemPolicy) { + // ------------------------------------------------------------------ + // TypeSystemPolicy: Instancing + // ------------------------------------------------------------------ + /** + * Configures the instantiation behavior of TypeBox types. The `default` option assigns raw JavaScript + * references for embedded types, which may cause side effects if type properties are explicitly updated + * outside the TypeBox type builder. The `clone` option creates copies of any shared types upon creation, + * preventing unintended side effects. The `freeze` option applies `Object.freeze()` to the type, making + * it fully readonly and immutable. Implementations should use `default` whenever possible, as it is the + * fastest way to instantiate types. The default setting is `default`. + */ + TypeSystemPolicy.InstanceMode = 'default'; + // ------------------------------------------------------------------ + // TypeSystemPolicy: Checking + // ------------------------------------------------------------------ + /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */ + TypeSystemPolicy.ExactOptionalPropertyTypes = false; + /** Sets whether arrays should be treated as a kind of objects. The default is `false` */ + TypeSystemPolicy.AllowArrayObject = false; + /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */ + TypeSystemPolicy.AllowNaN = false; + /** Sets whether `null` should validate for void types. The default is `false` */ + TypeSystemPolicy.AllowNullVoid = false; + /** Checks this value using the ExactOptionalPropertyTypes policy */ + function IsExactOptionalProperty(value, key) { + return TypeSystemPolicy.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined; + } + TypeSystemPolicy.IsExactOptionalProperty = IsExactOptionalProperty; + /** Checks this value using the AllowArrayObjects policy */ + function IsObjectLike(value) { + const isObject = IsObject(value); + return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !IsArray(value); + } + TypeSystemPolicy.IsObjectLike = IsObjectLike; + /** Checks this value as a record using the AllowArrayObjects policy */ + function IsRecordLike(value) { + return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array); + } + TypeSystemPolicy.IsRecordLike = IsRecordLike; + /** Checks this value using the AllowNaN policy */ + function IsNumberLike(value) { + return TypeSystemPolicy.AllowNaN ? IsNumber(value) : Number.isFinite(value); + } + TypeSystemPolicy.IsNumberLike = IsNumberLike; + /** Checks this value using the AllowVoidNull policy */ + function IsVoidLike(value) { + const isUndefined = IsUndefined(value); + return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined; + } + TypeSystemPolicy.IsVoidLike = IsVoidLike; +})(TypeSystemPolicy || (TypeSystemPolicy = {})); + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs +// -------------------------------------------------------------------------- +// PropertyKey +// -------------------------------------------------------------------------- +/** Returns true if this value has this property key */ +function value_HasPropertyKey(value, key) { + return key in value; +} +// -------------------------------------------------------------------------- +// Object Instances +// -------------------------------------------------------------------------- +/** Returns true if this value is an async iterator */ +function value_IsAsyncIterator(value) { + return value_IsObject(value) && !value_IsArray(value) && !value_IsUint8Array(value) && Symbol.asyncIterator in value; +} +/** Returns true if this value is an array */ +function value_IsArray(value) { + return Array.isArray(value); +} +/** Returns true if this value is bigint */ +function value_IsBigInt(value) { + return typeof value === 'bigint'; +} +/** Returns true if this value is a boolean */ +function value_IsBoolean(value) { + return typeof value === 'boolean'; +} +/** Returns true if this value is a Date object */ +function value_IsDate(value) { + return value instanceof globalThis.Date; +} +/** Returns true if this value is a function */ +function value_IsFunction(value) { + return typeof value === 'function'; +} +/** Returns true if this value is an iterator */ +function value_IsIterator(value) { + return value_IsObject(value) && !value_IsArray(value) && !value_IsUint8Array(value) && Symbol.iterator in value; +} +/** Returns true if this value is null */ +function value_IsNull(value) { + return value === null; +} +/** Returns true if this value is number */ +function value_IsNumber(value) { + return typeof value === 'number'; +} +/** Returns true if this value is an object */ +function value_IsObject(value) { + return typeof value === 'object' && value !== null; +} +/** Returns true if this value is RegExp */ +function value_IsRegExp(value) { + return value instanceof globalThis.RegExp; +} +/** Returns true if this value is string */ +function value_IsString(value) { + return typeof value === 'string'; +} +/** Returns true if this value is symbol */ +function value_IsSymbol(value) { + return typeof value === 'symbol'; +} +/** Returns true if this value is a Uint8Array */ +function value_IsUint8Array(value) { + return value instanceof globalThis.Uint8Array; +} +/** Returns true if this value is undefined */ +function value_IsUndefined(value) { + return value === undefined; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs + +function ImmutableArray(value) { + return globalThis.Object.freeze(value).map((value) => Immutable(value)); +} +function ImmutableDate(value) { + return value; +} +function ImmutableUint8Array(value) { + return value; +} +function ImmutableRegExp(value) { + return value; +} +function ImmutableObject(value) { + const result = {}; + for (const key of Object.getOwnPropertyNames(value)) { + result[key] = Immutable(value[key]); + } + for (const key of Object.getOwnPropertySymbols(value)) { + result[key] = Immutable(value[key]); + } + return globalThis.Object.freeze(result); +} +/** Specialized deep immutable value. Applies freeze recursively to the given value */ +// prettier-ignore +function Immutable(value) { + return (value_IsArray(value) ? ImmutableArray(value) : + value_IsDate(value) ? ImmutableDate(value) : + value_IsUint8Array(value) ? ImmutableUint8Array(value) : + value_IsRegExp(value) ? ImmutableRegExp(value) : + value_IsObject(value) ? ImmutableObject(value) : + value); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs + +function ArrayType(value) { + return value.map((value) => Visit(value)); +} +function DateType(value) { + return new Date(value.getTime()); +} +function Uint8ArrayType(value) { + return new Uint8Array(value); +} +function RegExpType(value) { + return new RegExp(value.source, value.flags); +} +function ObjectType(value) { + const result = {}; + for (const key of Object.getOwnPropertyNames(value)) { + result[key] = Visit(value[key]); + } + for (const key of Object.getOwnPropertySymbols(value)) { + result[key] = Visit(value[key]); + } + return result; +} +// prettier-ignore +function Visit(value) { + return (value_IsArray(value) ? ArrayType(value) : + value_IsDate(value) ? DateType(value) : + value_IsUint8Array(value) ? Uint8ArrayType(value) : + value_IsRegExp(value) ? RegExpType(value) : + value_IsObject(value) ? ObjectType(value) : + value); +} +/** Clones a value */ +function Clone(value) { + return Visit(value); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/create/type.mjs + + + +/** Creates TypeBox schematics using the configured InstanceMode */ +function CreateType(schema, options) { + const result = options !== undefined ? { ...options, ...schema } : schema; + switch (TypeSystemPolicy.InstanceMode) { + case 'freeze': + return Immutable(result); + case 'clone': + return Clone(result); + default: + return result; + } +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs +/** Symbol key applied to transform types */ +const TransformKind = Symbol.for('TypeBox.Transform'); +/** Symbol key applied to readonly types */ +const symbols_ReadonlyKind = Symbol.for('TypeBox.Readonly'); +/** Symbol key applied to optional types */ +const OptionalKind = Symbol.for('TypeBox.Optional'); +/** Symbol key applied to types */ +const symbols_Hint = Symbol.for('TypeBox.Hint'); +/** Symbol key applied to types */ +const Kind = Symbol.for('TypeBox.Kind'); + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/any/any.mjs + + +/** `[Json]` Creates an Any type */ +function Any(options) { + return CreateType({ [Kind]: 'Any' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/array/array.mjs + + +/** `[Json]` Creates an Array type */ +function array_Array(items, options) { + return CreateType({ [Kind]: 'Array', type: 'array', items }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs + + +/** `[JavaScript]` Creates a AsyncIterator type */ +function src_AsyncIterator(items, options) { + return CreateType({ [Kind]: 'AsyncIterator', type: 'AsyncIterator', items }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/computed/computed.mjs + + +/** `[Internal]` Creates a deferred computed type. This type is used exclusively in modules to defer resolution of computable types that contain interior references */ +function Computed(target, parameters, options) { + return CreateType({ [Kind]: 'Computed', target, parameters }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/never/never.mjs + + +/** `[Json]` Creates a Never type */ +function Never(options) { + return CreateType({ [Kind]: 'Never', not: {} }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/guard/kind.mjs + + +/** `[Kind-Only]` Returns true if this value has a Readonly symbol */ +function IsReadonly(value) { + return value_IsObject(value) && value[symbols_ReadonlyKind] === 'Readonly'; +} +/** `[Kind-Only]` Returns true if this value has a Optional symbol */ +function IsOptional(value) { + return value_IsObject(value) && value[OptionalKind] === 'Optional'; +} +/** `[Kind-Only]` Returns true if the given value is TAny */ +function IsAny(value) { + return IsKindOf(value, 'Any'); +} +/** `[Kind-Only]` Returns true if the given value is TArray */ +function kind_IsArray(value) { + return IsKindOf(value, 'Array'); +} +/** `[Kind-Only]` Returns true if the given value is TAsyncIterator */ +function kind_IsAsyncIterator(value) { + return IsKindOf(value, 'AsyncIterator'); +} +/** `[Kind-Only]` Returns true if the given value is TBigInt */ +function kind_IsBigInt(value) { + return IsKindOf(value, 'BigInt'); +} +/** `[Kind-Only]` Returns true if the given value is TBoolean */ +function kind_IsBoolean(value) { + return IsKindOf(value, 'Boolean'); +} +/** `[Kind-Only]` Returns true if the given value is TComputed */ +function IsComputed(value) { + return IsKindOf(value, 'Computed'); +} +/** `[Kind-Only]` Returns true if the given value is TConstructor */ +function IsConstructor(value) { + return IsKindOf(value, 'Constructor'); +} +/** `[Kind-Only]` Returns true if the given value is TDate */ +function kind_IsDate(value) { + return IsKindOf(value, 'Date'); +} +/** `[Kind-Only]` Returns true if the given value is TFunction */ +function kind_IsFunction(value) { + return IsKindOf(value, 'Function'); +} +/** `[Kind-Only]` Returns true if the given value is TInteger */ +function IsImport(value) { + return IsKindOf(value, 'Import'); +} +/** `[Kind-Only]` Returns true if the given value is TInteger */ +function kind_IsInteger(value) { + return IsKindOf(value, 'Integer'); +} +/** `[Kind-Only]` Returns true if the given schema is TProperties */ +function IsProperties(value) { + return ValueGuard.IsObject(value); +} +/** `[Kind-Only]` Returns true if the given value is TIntersect */ +function IsIntersect(value) { + return IsKindOf(value, 'Intersect'); +} +/** `[Kind-Only]` Returns true if the given value is TIterator */ +function kind_IsIterator(value) { + return IsKindOf(value, 'Iterator'); +} +/** `[Kind-Only]` Returns true if the given value is a TKind with the given name. */ +function IsKindOf(value, kind) { + return value_IsObject(value) && Kind in value && value[Kind] === kind; +} +/** `[Kind-Only]` Returns true if the given value is TLiteral */ +function IsLiteralString(value) { + return IsLiteral(value) && ValueGuard.IsString(value.const); +} +/** `[Kind-Only]` Returns true if the given value is TLiteral */ +function IsLiteralNumber(value) { + return IsLiteral(value) && ValueGuard.IsNumber(value.const); +} +/** `[Kind-Only]` Returns true if the given value is TLiteral */ +function IsLiteralBoolean(value) { + return IsLiteral(value) && ValueGuard.IsBoolean(value.const); +} +/** `[Kind-Only]` Returns true if the given value is TLiteralValue */ +function IsLiteralValue(value) { + return value_IsBoolean(value) || value_IsNumber(value) || value_IsString(value); +} +/** `[Kind-Only]` Returns true if the given value is TLiteral */ +function IsLiteral(value) { + return IsKindOf(value, 'Literal'); +} +/** `[Kind-Only]` Returns true if the given value is a TMappedKey */ +function IsMappedKey(value) { + return IsKindOf(value, 'MappedKey'); +} +/** `[Kind-Only]` Returns true if the given value is TMappedResult */ +function IsMappedResult(value) { + return IsKindOf(value, 'MappedResult'); +} +/** `[Kind-Only]` Returns true if the given value is TNever */ +function IsNever(value) { + return IsKindOf(value, 'Never'); +} +/** `[Kind-Only]` Returns true if the given value is TNot */ +function IsNot(value) { + return IsKindOf(value, 'Not'); +} +/** `[Kind-Only]` Returns true if the given value is TNull */ +function kind_IsNull(value) { + return IsKindOf(value, 'Null'); +} +/** `[Kind-Only]` Returns true if the given value is TNumber */ +function kind_IsNumber(value) { + return IsKindOf(value, 'Number'); +} +/** `[Kind-Only]` Returns true if the given value is TObject */ +function kind_IsObject(value) { + return IsKindOf(value, 'Object'); +} +/** `[Kind-Only]` Returns true if the given value is TPromise */ +function kind_IsPromise(value) { + return IsKindOf(value, 'Promise'); +} +/** `[Kind-Only]` Returns true if the given value is TRecord */ +function IsRecord(value) { + return IsKindOf(value, 'Record'); +} +/** `[Kind-Only]` Returns true if this value is TRecursive */ +function IsRecursive(value) { + return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive'; +} +/** `[Kind-Only]` Returns true if the given value is TRef */ +function IsRef(value) { + return IsKindOf(value, 'Ref'); +} +/** `[Kind-Only]` Returns true if the given value is TRegExp */ +function kind_IsRegExp(value) { + return IsKindOf(value, 'RegExp'); +} +/** `[Kind-Only]` Returns true if the given value is TString */ +function kind_IsString(value) { + return IsKindOf(value, 'String'); +} +/** `[Kind-Only]` Returns true if the given value is TSymbol */ +function kind_IsSymbol(value) { + return IsKindOf(value, 'Symbol'); +} +/** `[Kind-Only]` Returns true if the given value is TTemplateLiteral */ +function IsTemplateLiteral(value) { + return IsKindOf(value, 'TemplateLiteral'); +} +/** `[Kind-Only]` Returns true if the given value is TThis */ +function IsThis(value) { + return IsKindOf(value, 'This'); +} +/** `[Kind-Only]` Returns true of this value is TTransform */ +function IsTransform(value) { + return value_IsObject(value) && TransformKind in value; +} +/** `[Kind-Only]` Returns true if the given value is TTuple */ +function IsTuple(value) { + return IsKindOf(value, 'Tuple'); +} +/** `[Kind-Only]` Returns true if the given value is TUndefined */ +function kind_IsUndefined(value) { + return IsKindOf(value, 'Undefined'); +} +/** `[Kind-Only]` Returns true if the given value is TUnion */ +function IsUnion(value) { + return IsKindOf(value, 'Union'); +} +/** `[Kind-Only]` Returns true if the given value is TUint8Array */ +function kind_IsUint8Array(value) { + return IsKindOf(value, 'Uint8Array'); +} +/** `[Kind-Only]` Returns true if the given value is TUnknown */ +function IsUnknown(value) { + return IsKindOf(value, 'Unknown'); +} +/** `[Kind-Only]` Returns true if the given value is a raw TUnsafe */ +function IsUnsafe(value) { + return IsKindOf(value, 'Unsafe'); +} +/** `[Kind-Only]` Returns true if the given value is TVoid */ +function IsVoid(value) { + return IsKindOf(value, 'Void'); +} +/** `[Kind-Only]` Returns true if the given value is TKind */ +function IsKind(value) { + return value_IsObject(value) && Kind in value && value_IsString(value[Kind]); +} +/** `[Kind-Only]` Returns true if the given value is TSchema */ +function IsSchema(value) { + // prettier-ignore + return (IsAny(value) || + kind_IsArray(value) || + kind_IsBoolean(value) || + kind_IsBigInt(value) || + kind_IsAsyncIterator(value) || + IsConstructor(value) || + kind_IsDate(value) || + kind_IsFunction(value) || + kind_IsInteger(value) || + IsIntersect(value) || + kind_IsIterator(value) || + IsLiteral(value) || + IsMappedKey(value) || + IsMappedResult(value) || + IsNever(value) || + IsNot(value) || + kind_IsNull(value) || + kind_IsNumber(value) || + kind_IsObject(value) || + kind_IsPromise(value) || + IsRecord(value) || + IsRef(value) || + kind_IsRegExp(value) || + kind_IsString(value) || + kind_IsSymbol(value) || + IsTemplateLiteral(value) || + IsThis(value) || + IsTuple(value) || + kind_IsUndefined(value) || + IsUnion(value) || + kind_IsUint8Array(value) || + IsUnknown(value) || + IsUnsafe(value) || + IsVoid(value) || + IsKind(value)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// IntersectCreate +// ------------------------------------------------------------------ +// prettier-ignore +function IntersectCreate(T, options = {}) { + const allObjects = T.every((schema) => kind_IsObject(schema)); + const clonedUnevaluatedProperties = IsSchema(options.unevaluatedProperties) + ? { unevaluatedProperties: options.unevaluatedProperties } + : {}; + return CreateType((options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects + ? { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', type: 'object', allOf: T } + : { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', allOf: T }), options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.mjs + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +/** `[Json]` Creates an evaluated Intersect type */ +function Intersect(types, options) { + if (types.length === 1) + return CreateType(types[0], options); + if (types.length === 0) + return Never(options); + if (types.some((schema) => IsTransform(schema))) + throw new Error('Cannot intersect transform types'); + return IntersectCreate(types, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/union/union-create.mjs + + +function UnionCreate(T, options) { + return CreateType({ [Kind]: 'Union', anyOf: T }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/union/union.mjs + + + +/** `[Json]` Creates a Union type */ +function Union(types, options) { + // prettier-ignore + return (types.length === 0 ? Never(options) : + types.length === 1 ? CreateType(types[0], options) : + UnionCreate(types, options)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/ref/ref.mjs + + +/** `[Json]` Creates a Ref type. The referenced type must contain a $id */ +function Ref($ref, options) { + return CreateType({ [Kind]: 'Ref', $ref }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.mjs + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function FromComputed(target, parameters) { + return Computed('Awaited', [Computed(target, parameters)]); +} +// prettier-ignore +function FromRef($ref) { + return Computed('Awaited', [Ref($ref)]); +} +// prettier-ignore +function FromIntersect(types) { + return Intersect(FromRest(types)); +} +// prettier-ignore +function FromUnion(types) { + return Union(FromRest(types)); +} +// prettier-ignore +function FromPromise(type) { + return Awaited(type); +} +// prettier-ignore +function FromRest(types) { + return types.map(type => Awaited(type)); +} +/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */ +function Awaited(type, options) { + return CreateType(IsComputed(type) ? FromComputed(type.target, type.parameters) : IsIntersect(type) ? FromIntersect(type.allOf) : IsUnion(type) ? FromUnion(type.anyOf) : kind_IsPromise(type) ? FromPromise(type.item) : IsRef(type) ? FromRef(type.$ref) : type, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.mjs + + +/** `[JavaScript]` Creates a BigInt type */ +function bigint_BigInt(options) { + return CreateType({ [Kind]: 'BigInt', type: 'bigint' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.mjs + + +/** `[Json]` Creates a Boolean type */ +function boolean_Boolean(options) { + return CreateType({ [Kind]: 'Boolean', type: 'boolean' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/discard/discard.mjs +function DiscardKey(value, key) { + const { [key]: _, ...rest } = value; + return rest; +} +/** Discards property keys from the given value. This function returns a shallow Clone. */ +function Discard(value, keys) { + return keys.reduce((acc, key) => DiscardKey(acc, key), value); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs + + +// prettier-ignore +function MappedResult(properties) { + return CreateType({ + [Kind]: 'MappedResult', + properties + }); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs + + +// prettier-ignore +function FromProperties(P, F) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(P)) + Acc[K2] = Optional(P[K2], F); + return Acc; +} +// prettier-ignore +function FromMappedResult(R, F) { + return FromProperties(R.properties, F); +} +// prettier-ignore +function OptionalFromMappedResult(R, F) { + const P = FromMappedResult(R, F); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/optional/optional.mjs + + + + + +function RemoveOptional(schema) { + return CreateType(Discard(schema, [OptionalKind])); +} +function AddOptional(schema) { + return CreateType({ ...schema, [OptionalKind]: 'Optional' }); +} +// prettier-ignore +function OptionalWithFlag(schema, F) { + return (F === false + ? RemoveOptional(schema) + : AddOptional(schema)); +} +/** `[Json]` Creates a Optional property */ +function Optional(schema, enable) { + const F = enable ?? true; + return IsMappedResult(schema) ? OptionalFromMappedResult(schema, F) : OptionalWithFlag(schema, F); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs + + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function IsIntersectOptional(types) { + return types.every(left => IsOptional(left)); +} +// prettier-ignore +function RemoveOptionalFromType(type) { + return (Discard(type, [OptionalKind])); +} +// prettier-ignore +function RemoveOptionalFromRest(types) { + return types.map(left => IsOptional(left) ? RemoveOptionalFromType(left) : left); +} +// prettier-ignore +function ResolveIntersect(types, options) { + return (IsIntersectOptional(types) + ? Optional(IntersectCreate(RemoveOptionalFromRest(types), options)) + : IntersectCreate(RemoveOptionalFromRest(types), options)); +} +/** `[Json]` Creates an evaluated Intersect type */ +function IntersectEvaluated(types, options = {}) { + if (types.length === 1) + return CreateType(types[0], options); + if (types.length === 0) + return Never(options); + if (types.some((schema) => IsTransform(schema))) + throw new Error('Cannot intersect transform types'); + return ResolveIntersect(types, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/literal/literal.mjs + + +/** `[Json]` Creates a Literal type */ +function Literal(value, options) { + return CreateType({ + [Kind]: 'Literal', + const: value, + type: typeof value, + }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs + + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function IsUnionOptional(types) { + return types.some(type => IsOptional(type)); +} +// prettier-ignore +function union_evaluated_RemoveOptionalFromRest(types) { + return types.map(left => IsOptional(left) ? union_evaluated_RemoveOptionalFromType(left) : left); +} +// prettier-ignore +function union_evaluated_RemoveOptionalFromType(T) { + return (Discard(T, [OptionalKind])); +} +// prettier-ignore +function ResolveUnion(types, options) { + const isOptional = IsUnionOptional(types); + return (isOptional + ? Optional(UnionCreate(union_evaluated_RemoveOptionalFromRest(types), options)) + : UnionCreate(union_evaluated_RemoveOptionalFromRest(types), options)); +} +/** `[Json]` Creates an evaluated Union type */ +function UnionEvaluated(T, options) { + // prettier-ignore + return (T.length === 1 ? CreateType(T[0], options) : + T.length === 0 ? Never(options) : + ResolveUnion(T, options)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/error/error.mjs +/** The base Error type thrown for all TypeBox exceptions */ +class error_TypeBoxError extends Error { + constructor(message) { + super(message); + } +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.mjs + +// ------------------------------------------------------------------ +// TemplateLiteralParserError +// ------------------------------------------------------------------ +class TemplateLiteralParserError extends error_TypeBoxError { +} +// ------------------------------------------------------------------- +// Unescape +// +// Unescape for these control characters specifically. Note that this +// function is only called on non union group content, and where we +// still want to allow the user to embed control characters in that +// content. For review. +// ------------------------------------------------------------------- +// prettier-ignore +function Unescape(pattern) { + return pattern + .replace(/\\\$/g, '$') + .replace(/\\\*/g, '*') + .replace(/\\\^/g, '^') + .replace(/\\\|/g, '|') + .replace(/\\\(/g, '(') + .replace(/\\\)/g, ')'); +} +// ------------------------------------------------------------------- +// Control Characters +// ------------------------------------------------------------------- +function IsNonEscaped(pattern, index, char) { + return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92; +} +function IsOpenParen(pattern, index) { + return IsNonEscaped(pattern, index, '('); +} +function IsCloseParen(pattern, index) { + return IsNonEscaped(pattern, index, ')'); +} +function IsSeparator(pattern, index) { + return IsNonEscaped(pattern, index, '|'); +} +// ------------------------------------------------------------------- +// Control Groups +// ------------------------------------------------------------------- +function IsGroup(pattern) { + if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1))) + return false; + let count = 0; + for (let index = 0; index < pattern.length; index++) { + if (IsOpenParen(pattern, index)) + count += 1; + if (IsCloseParen(pattern, index)) + count -= 1; + if (count === 0 && index !== pattern.length - 1) + return false; + } + return true; +} +// prettier-ignore +function InGroup(pattern) { + return pattern.slice(1, pattern.length - 1); +} +// prettier-ignore +function IsPrecedenceOr(pattern) { + let count = 0; + for (let index = 0; index < pattern.length; index++) { + if (IsOpenParen(pattern, index)) + count += 1; + if (IsCloseParen(pattern, index)) + count -= 1; + if (IsSeparator(pattern, index) && count === 0) + return true; + } + return false; +} +// prettier-ignore +function IsPrecedenceAnd(pattern) { + for (let index = 0; index < pattern.length; index++) { + if (IsOpenParen(pattern, index)) + return true; + } + return false; +} +// prettier-ignore +function Or(pattern) { + let [count, start] = [0, 0]; + const expressions = []; + for (let index = 0; index < pattern.length; index++) { + if (IsOpenParen(pattern, index)) + count += 1; + if (IsCloseParen(pattern, index)) + count -= 1; + if (IsSeparator(pattern, index) && count === 0) { + const range = pattern.slice(start, index); + if (range.length > 0) + expressions.push(TemplateLiteralParse(range)); + start = index + 1; + } + } + const range = pattern.slice(start); + if (range.length > 0) + expressions.push(TemplateLiteralParse(range)); + if (expressions.length === 0) + return { type: 'const', const: '' }; + if (expressions.length === 1) + return expressions[0]; + return { type: 'or', expr: expressions }; +} +// prettier-ignore +function And(pattern) { + function Group(value, index) { + if (!IsOpenParen(value, index)) + throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`); + let count = 0; + for (let scan = index; scan < value.length; scan++) { + if (IsOpenParen(value, scan)) + count += 1; + if (IsCloseParen(value, scan)) + count -= 1; + if (count === 0) + return [index, scan]; + } + throw new TemplateLiteralParserError(`TemplateLiteralParser: Unclosed group parens in expression`); + } + function Range(pattern, index) { + for (let scan = index; scan < pattern.length; scan++) { + if (IsOpenParen(pattern, scan)) + return [index, scan]; + } + return [index, pattern.length]; + } + const expressions = []; + for (let index = 0; index < pattern.length; index++) { + if (IsOpenParen(pattern, index)) { + const [start, end] = Group(pattern, index); + const range = pattern.slice(start, end + 1); + expressions.push(TemplateLiteralParse(range)); + index = end; + } + else { + const [start, end] = Range(pattern, index); + const range = pattern.slice(start, end); + if (range.length > 0) + expressions.push(TemplateLiteralParse(range)); + index = end - 1; + } + } + return ((expressions.length === 0) ? { type: 'const', const: '' } : + (expressions.length === 1) ? expressions[0] : + { type: 'and', expr: expressions }); +} +// ------------------------------------------------------------------ +// TemplateLiteralParse +// ------------------------------------------------------------------ +/** Parses a pattern and returns an expression tree */ +function TemplateLiteralParse(pattern) { + // prettier-ignore + return (IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) : + IsPrecedenceOr(pattern) ? Or(pattern) : + IsPrecedenceAnd(pattern) ? And(pattern) : + { type: 'const', const: Unescape(pattern) }); +} +// ------------------------------------------------------------------ +// TemplateLiteralParseExact +// ------------------------------------------------------------------ +/** Parses a pattern and strips forward and trailing ^ and $ */ +function TemplateLiteralParseExact(pattern) { + return TemplateLiteralParse(pattern.slice(1, pattern.length - 1)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.mjs + + +// ------------------------------------------------------------------ +// TemplateLiteralFiniteError +// ------------------------------------------------------------------ +class TemplateLiteralFiniteError extends error_TypeBoxError { +} +// ------------------------------------------------------------------ +// IsTemplateLiteralFiniteCheck +// ------------------------------------------------------------------ +// prettier-ignore +function IsNumberExpression(expression) { + return (expression.type === 'or' && + expression.expr.length === 2 && + expression.expr[0].type === 'const' && + expression.expr[0].const === '0' && + expression.expr[1].type === 'const' && + expression.expr[1].const === '[1-9][0-9]*'); +} +// prettier-ignore +function IsBooleanExpression(expression) { + return (expression.type === 'or' && + expression.expr.length === 2 && + expression.expr[0].type === 'const' && + expression.expr[0].const === 'true' && + expression.expr[1].type === 'const' && + expression.expr[1].const === 'false'); +} +// prettier-ignore +function IsStringExpression(expression) { + return expression.type === 'const' && expression.const === '.*'; +} +// ------------------------------------------------------------------ +// IsTemplateLiteralExpressionFinite +// ------------------------------------------------------------------ +// prettier-ignore +function IsTemplateLiteralExpressionFinite(expression) { + return (IsNumberExpression(expression) || IsStringExpression(expression) ? false : + IsBooleanExpression(expression) ? true : + (expression.type === 'and') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : + (expression.type === 'or') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : + (expression.type === 'const') ? true : + (() => { throw new TemplateLiteralFiniteError(`Unknown expression type`); })()); +} +/** Returns true if this TemplateLiteral resolves to a finite set of values */ +function IsTemplateLiteralFinite(schema) { + const expression = TemplateLiteralParseExact(schema.pattern); + return IsTemplateLiteralExpressionFinite(expression); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.mjs + + + +// ------------------------------------------------------------------ +// TemplateLiteralGenerateError +// ------------------------------------------------------------------ +class TemplateLiteralGenerateError extends error_TypeBoxError { +} +// ------------------------------------------------------------------ +// TemplateLiteralExpressionGenerate +// ------------------------------------------------------------------ +// prettier-ignore +function* GenerateReduce(buffer) { + if (buffer.length === 1) + return yield* buffer[0]; + for (const left of buffer[0]) { + for (const right of GenerateReduce(buffer.slice(1))) { + yield `${left}${right}`; + } + } +} +// prettier-ignore +function* GenerateAnd(expression) { + return yield* GenerateReduce(expression.expr.map((expr) => [...TemplateLiteralExpressionGenerate(expr)])); +} +// prettier-ignore +function* GenerateOr(expression) { + for (const expr of expression.expr) + yield* TemplateLiteralExpressionGenerate(expr); +} +// prettier-ignore +function* GenerateConst(expression) { + return yield expression.const; +} +function* TemplateLiteralExpressionGenerate(expression) { + return expression.type === 'and' + ? yield* GenerateAnd(expression) + : expression.type === 'or' + ? yield* GenerateOr(expression) + : expression.type === 'const' + ? yield* GenerateConst(expression) + : (() => { + throw new TemplateLiteralGenerateError('Unknown expression'); + })(); +} +/** Generates a tuple of strings from the given TemplateLiteral. Returns an empty tuple if infinite. */ +function TemplateLiteralGenerate(schema) { + const expression = TemplateLiteralParseExact(schema.pattern); + // prettier-ignore + return (IsTemplateLiteralExpressionFinite(expression) + ? [...TemplateLiteralExpressionGenerate(expression)] + : []); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function FromTemplateLiteral(templateLiteral) { + const result = TemplateLiteralGenerate(templateLiteral); + return result.map(S => S.toString()); +} +// prettier-ignore +function indexed_property_keys_FromUnion(type) { + const result = []; + for (const left of type) + result.push(...IndexPropertyKeys(left)); + return result; +} +// prettier-ignore +function FromLiteral(T) { + return ([T.toString()] // TS 5.4 observes TLiteralValue as not having a toString() + ); +} +/** Returns a tuple of PropertyKeys derived from the given TSchema */ +// prettier-ignore +function IndexPropertyKeys(type) { + return [...new Set((IsTemplateLiteral(type) ? FromTemplateLiteral(type) : + IsUnion(type) ? indexed_property_keys_FromUnion(type.anyOf) : + IsLiteral(type) ? FromLiteral(type.const) : + kind_IsNumber(type) ? ['[number]'] : + kind_IsInteger(type) ? ['[number]'] : + []))]; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs + + + +// prettier-ignore +function MappedIndexPropertyKey(type, key, options) { + return { [key]: Index(type, [key], Clone(options)) }; +} +// prettier-ignore +function MappedIndexPropertyKeys(type, propertyKeys, options) { + return propertyKeys.reduce((result, left) => { + return { ...result, ...MappedIndexPropertyKey(type, left, options) }; + }, {}); +} +// prettier-ignore +function MappedIndexProperties(type, mappedKey, options) { + return MappedIndexPropertyKeys(type, mappedKey.keys, options); +} +// prettier-ignore +function IndexFromMappedKey(type, mappedKey, options) { + const properties = MappedIndexProperties(type, mappedKey, options); + return MappedResult(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs + + + +// prettier-ignore +function indexed_from_mapped_result_FromProperties(type, properties, options) { + const result = {}; + for (const K2 of Object.getOwnPropertyNames(properties)) { + const keys = IndexPropertyKeys(properties[K2]); + result[K2] = Index(type, keys, options); + } + return result; +} +// prettier-ignore +function indexed_from_mapped_result_FromMappedResult(type, mappedResult, options) { + return indexed_from_mapped_result_FromProperties(type, mappedResult.properties, options); +} +// prettier-ignore +function IndexFromMappedResult(type, mappedResult, options) { + const properties = indexed_from_mapped_result_FromMappedResult(type, mappedResult, options); + return MappedResult(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.mjs + + + + + + +// ------------------------------------------------------------------ +// Infrastructure +// ------------------------------------------------------------------ + + + +// ------------------------------------------------------------------ +// KindGuard +// ------------------------------------------------------------------ + + +// prettier-ignore +function indexed_FromRest(types, key) { + return types.map(left => IndexFromPropertyKey(left, key)); +} +// prettier-ignore +function FromIntersectRest(types) { + return types.filter(left => !IsNever(left)); +} +// prettier-ignore +function indexed_FromIntersect(types, key) { + return (IntersectEvaluated(FromIntersectRest(indexed_FromRest(types, key)))); +} +// prettier-ignore +function FromUnionRest(types) { + return (types.some(L => IsNever(L)) + ? [] + : types); +} +// prettier-ignore +function indexed_FromUnion(types, key) { + return (UnionEvaluated(FromUnionRest(indexed_FromRest(types, key)))); +} +// prettier-ignore +function FromTuple(types, key) { + return (key === '[number]' ? UnionEvaluated(types) : + key in types ? types[key] : + Never()); +} +// prettier-ignore +function FromArray(type, key) { + // ... ? + return (key === '[number]' ? type : Never()); +} +// prettier-ignore +function FromProperty(properties, key) { + return (key in properties ? properties[key] : Never()); +} +// prettier-ignore +function IndexFromPropertyKey(type, key) { + return (IsIntersect(type) ? indexed_FromIntersect(type.allOf, key) : + IsUnion(type) ? indexed_FromUnion(type.anyOf, key) : + IsTuple(type) ? FromTuple(type.items ?? [], key) : + kind_IsArray(type) ? FromArray(type.items, key) : + kind_IsObject(type) ? FromProperty(type.properties, key) : + Never()); +} +// prettier-ignore +function IndexFromPropertyKeys(type, propertyKeys) { + return propertyKeys.map(left => IndexFromPropertyKey(type, left)); +} +// prettier-ignore +function FromType(type, propertyKeys) { + const result = IndexFromPropertyKeys(type, propertyKeys); + return UnionEvaluated(result); +} +// prettier-ignore +function UnionFromPropertyKeys(propertyKeys) { + const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []); + return UnionEvaluated(result); +} +/** `[Json]` Returns an Indexed property type for the given keys */ +// prettier-ignore +function Index(type, key, options) { + const typeKey = value_IsArray(key) ? UnionFromPropertyKeys(key) : key; + const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key; + const isTypeRef = IsRef(type); + const isKeyRef = IsRef(key); + return (IsMappedResult(key) ? IndexFromMappedResult(type, key, options) : + IsMappedKey(key) ? IndexFromMappedKey(type, key, options) : + (isTypeRef && isKeyRef) ? Computed('Index', [type, typeKey], options) : + (!isTypeRef && isKeyRef) ? Computed('Index', [type, typeKey], options) : + (isTypeRef && !isKeyRef) ? Computed('Index', [type, typeKey], options) : + CreateType(FromType(type, propertyKeys), options)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/sets/set.mjs +/** Returns true if element right is in the set of left */ +// prettier-ignore +function SetIncludes(T, S) { + return T.includes(S); +} +/** Returns true if left is a subset of right */ +function SetIsSubset(T, S) { + return T.every((L) => SetIncludes(S, L)); +} +/** Returns a distinct set of elements */ +function SetDistinct(T) { + return [...new Set(T)]; +} +/** Returns the Intersect of the given sets */ +function SetIntersect(T, S) { + return T.filter((L) => S.includes(L)); +} +/** Returns the Union of the given sets */ +function SetUnion(T, S) { + return [...T, ...S]; +} +/** Returns the Complement by omitting elements in T that are in S */ +// prettier-ignore +function SetComplement(T, S) { + return T.filter(L => !S.includes(L)); +} +// prettier-ignore +function SetIntersectManyResolve(T, Init) { + return T.reduce((Acc, L) => { + return SetIntersect(Acc, L); + }, Init); +} +// prettier-ignore +function SetIntersectMany(T) { + return (T.length === 1 + ? T[0] + // Use left to initialize the accumulator for resolve + : T.length > 1 + ? SetIntersectManyResolve(T.slice(1), T[0]) + : []); +} +/** Returns the Union of multiple sets */ +function SetUnionMany(T) { + const Acc = []; + for (const L of T) + Acc.push(...L); + return Acc; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function keyof_property_keys_FromRest(types) { + const result = []; + for (const L of types) + result.push(KeyOfPropertyKeys(L)); + return result; +} +// prettier-ignore +function keyof_property_keys_FromIntersect(types) { + const propertyKeysArray = keyof_property_keys_FromRest(types); + const propertyKeys = SetUnionMany(propertyKeysArray); + return propertyKeys; +} +// prettier-ignore +function keyof_property_keys_FromUnion(types) { + const propertyKeysArray = keyof_property_keys_FromRest(types); + const propertyKeys = SetIntersectMany(propertyKeysArray); + return propertyKeys; +} +// prettier-ignore +function keyof_property_keys_FromTuple(types) { + return types.map((_, indexer) => indexer.toString()); +} +// prettier-ignore +function keyof_property_keys_FromArray(_) { + return (['[number]']); +} +// prettier-ignore +function keyof_property_keys_FromProperties(T) { + return (globalThis.Object.getOwnPropertyNames(T)); +} +// ------------------------------------------------------------------ +// FromPatternProperties +// ------------------------------------------------------------------ +// prettier-ignore +function FromPatternProperties(patternProperties) { + if (!includePatternProperties) + return []; + const patternPropertyKeys = globalThis.Object.getOwnPropertyNames(patternProperties); + return patternPropertyKeys.map(key => { + return (key[0] === '^' && key[key.length - 1] === '$') + ? key.slice(1, key.length - 1) + : key; + }); +} +/** Returns a tuple of PropertyKeys derived from the given TSchema. */ +// prettier-ignore +function KeyOfPropertyKeys(type) { + return (IsIntersect(type) ? keyof_property_keys_FromIntersect(type.allOf) : + IsUnion(type) ? keyof_property_keys_FromUnion(type.anyOf) : + IsTuple(type) ? keyof_property_keys_FromTuple(type.items ?? []) : + kind_IsArray(type) ? keyof_property_keys_FromArray(type.items) : + kind_IsObject(type) ? keyof_property_keys_FromProperties(type.properties) : + IsRecord(type) ? FromPatternProperties(type.patternProperties) : + []); +} +// ---------------------------------------------------------------- +// KeyOfPattern +// ---------------------------------------------------------------- +let includePatternProperties = false; +/** Returns a regular expression pattern derived from the given TSchema */ +function KeyOfPattern(schema) { + includePatternProperties = true; + const keys = KeyOfPropertyKeys(schema); + includePatternProperties = false; + const pattern = keys.map((key) => `(${key})`); + return `^(${pattern.join('|')})$`; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/object/object.mjs + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +function RequiredKeys(properties) { + const keys = []; + for (let key in properties) { + if (!IsOptional(properties[key])) + keys.push(key); + } + return keys; +} +/** `[Json]` Creates an Object type */ +function _Object(properties, options) { + const required = RequiredKeys(properties); + const schematic = required.length > 0 ? { [Kind]: 'Object', type: 'object', properties, required } : { [Kind]: 'Object', type: 'object', properties }; + return CreateType(schematic, options); +} +/** `[Json]` Creates an Object type */ +var object_Object = _Object; + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/composite/composite.mjs + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function CompositeKeys(T) { + const Acc = []; + for (const L of T) + Acc.push(...KeyOfPropertyKeys(L)); + return SetDistinct(Acc); +} +// prettier-ignore +function FilterNever(T) { + return T.filter(L => !IsNever(L)); +} +// prettier-ignore +function CompositeProperty(T, K) { + const Acc = []; + for (const L of T) + Acc.push(...IndexFromPropertyKeys(L, [K])); + return FilterNever(Acc); +} +// prettier-ignore +function CompositeProperties(T, K) { + const Acc = {}; + for (const L of K) { + Acc[L] = IntersectEvaluated(CompositeProperty(T, L)); + } + return Acc; +} +// prettier-ignore +function Composite(T, options) { + const K = CompositeKeys(T); + const P = CompositeProperties(T, K); + const R = object_Object(P, options); + return R; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/date/date.mjs + + +/** `[JavaScript]` Creates a Date type */ +function date_Date(options) { + return CreateType({ [Kind]: 'Date', type: 'Date' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/function/function.mjs + + +/** `[JavaScript]` Creates a Function type */ +function function_Function(parameters, returns, options) { + return CreateType({ [Kind]: 'Function', type: 'Function', parameters, returns }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/null/null.mjs + + +/** `[Json]` Creates a Null type */ +function Null(options) { + return CreateType({ [Kind]: 'Null', type: 'null' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.mjs + + +/** `[JavaScript]` Creates a Symbol type */ +function symbol_Symbol(options) { + return CreateType({ [Kind]: 'Symbol', type: 'symbol' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.mjs + + +/** `[Json]` Creates a Tuple type */ +function Tuple(types, options) { + // prettier-ignore + return CreateType(types.length > 0 ? + { [Kind]: 'Tuple', type: 'array', items: types, additionalItems: false, minItems: types.length, maxItems: types.length } : + { [Kind]: 'Tuple', type: 'array', minItems: types.length, maxItems: types.length }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs + + +// prettier-ignore +function readonly_from_mapped_result_FromProperties(K, F) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(K)) + Acc[K2] = Readonly(K[K2], F); + return Acc; +} +// prettier-ignore +function readonly_from_mapped_result_FromMappedResult(R, F) { + return readonly_from_mapped_result_FromProperties(R.properties, F); +} +// prettier-ignore +function ReadonlyFromMappedResult(R, F) { + const P = readonly_from_mapped_result_FromMappedResult(R, F); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.mjs + + + + + +function RemoveReadonly(schema) { + return CreateType(Discard(schema, [symbols_ReadonlyKind])); +} +function AddReadonly(schema) { + return CreateType({ ...schema, [symbols_ReadonlyKind]: 'Readonly' }); +} +// prettier-ignore +function ReadonlyWithFlag(schema, F) { + return (F === false + ? RemoveReadonly(schema) + : AddReadonly(schema)); +} +/** `[Json]` Creates a Readonly property */ +function Readonly(schema, enable) { + const F = enable ?? true; + return IsMappedResult(schema) ? ReadonlyFromMappedResult(schema, F) : ReadonlyWithFlag(schema, F); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.mjs + + +/** `[JavaScript]` Creates a Undefined type */ +function Undefined(options) { + return CreateType({ [Kind]: 'Undefined', type: 'undefined' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs + + +/** `[JavaScript]` Creates a Uint8Array type */ +function uint8array_Uint8Array(options) { + return CreateType({ [Kind]: 'Uint8Array', type: 'Uint8Array' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.mjs + + +/** `[Json]` Creates an Unknown type */ +function Unknown(options) { + return CreateType({ [Kind]: 'Unknown' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/const/const.mjs + + + + + + + + + + + + + + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function const_FromArray(T) { + return T.map(L => FromValue(L, false)); +} +// prettier-ignore +function const_FromProperties(value) { + const Acc = {}; + for (const K of globalThis.Object.getOwnPropertyNames(value)) + Acc[K] = Readonly(FromValue(value[K], false)); + return Acc; +} +function ConditionalReadonly(T, root) { + return (root === true ? T : Readonly(T)); +} +// prettier-ignore +function FromValue(value, root) { + return (value_IsAsyncIterator(value) ? ConditionalReadonly(Any(), root) : + value_IsIterator(value) ? ConditionalReadonly(Any(), root) : + value_IsArray(value) ? Readonly(Tuple(const_FromArray(value))) : + value_IsUint8Array(value) ? uint8array_Uint8Array() : + value_IsDate(value) ? date_Date() : + value_IsObject(value) ? ConditionalReadonly(object_Object(const_FromProperties(value)), root) : + value_IsFunction(value) ? ConditionalReadonly(function_Function([], Unknown()), root) : + value_IsUndefined(value) ? Undefined() : + value_IsNull(value) ? Null() : + value_IsSymbol(value) ? symbol_Symbol() : + value_IsBigInt(value) ? bigint_BigInt() : + value_IsNumber(value) ? Literal(value) : + value_IsBoolean(value) ? Literal(value) : + value_IsString(value) ? Literal(value) : + object_Object({})); +} +/** `[JavaScript]` Creates a readonly const type from the given value. */ +function Const(T, options) { + return CreateType(FromValue(T, true), options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.mjs + + +/** `[JavaScript]` Creates a Constructor type */ +function Constructor(parameters, returns, options) { + return CreateType({ [Kind]: 'Constructor', type: 'Constructor', parameters, returns }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs + +/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */ +function ConstructorParameters(schema, options) { + return Tuple(schema.parameters, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/enum/enum.mjs + + + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +/** `[Json]` Creates a Enum type */ +function Enum(item, options) { + if (value_IsUndefined(item)) + throw new Error('Enum undefined or empty'); + const values1 = globalThis.Object.getOwnPropertyNames(item) + .filter((key) => isNaN(key)) + .map((key) => item[key]); + const values2 = [...new Set(values1)]; + const anyOf = values2.map((value) => Literal(value)); + return Union(anyOf, { ...options, [symbols_Hint]: 'Enum' }); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/number/number.mjs + + +/** `[Json]` Creates a Number type */ +function number_Number(options) { + return CreateType({ [Kind]: 'Number', type: 'number' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/string/string.mjs + + +/** `[Json]` Creates a String type */ +function string_String(options) { + return CreateType({ [Kind]: 'String', type: 'string' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/union.mjs + + + +/** Returns a Union from the given TemplateLiteral */ +function TemplateLiteralToUnion(schema) { + const R = TemplateLiteralGenerate(schema); + const L = R.map((S) => Literal(S)); + return UnionEvaluated(L); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.mjs +const PatternBoolean = '(true|false)'; +const PatternNumber = '(0|[1-9][0-9]*)'; +const PatternString = '(.*)'; +const PatternNever = '(?!.*)'; +const PatternBooleanExact = (/* unused pure expression or super */ null && (`^${PatternBoolean}$`)); +const PatternNumberExact = `^${PatternNumber}$`; +const PatternStringExact = `^${PatternString}$`; +const PatternNeverExact = `^${PatternNever}$`; + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/guard/type.mjs + + + +class TypeGuardUnknownTypeError extends (/* unused pure expression or super */ null && (TypeBoxError)) { +} +const KnownTypes = [ + 'Any', + 'Array', + 'AsyncIterator', + 'BigInt', + 'Boolean', + 'Computed', + 'Constructor', + 'Date', + 'Enum', + 'Function', + 'Integer', + 'Intersect', + 'Iterator', + 'Literal', + 'MappedKey', + 'MappedResult', + 'Not', + 'Null', + 'Number', + 'Object', + 'Promise', + 'Record', + 'Ref', + 'RegExp', + 'String', + 'Symbol', + 'TemplateLiteral', + 'This', + 'Tuple', + 'Undefined', + 'Union', + 'Uint8Array', + 'Unknown', + 'Void', +]; +function IsPattern(value) { + try { + new RegExp(value); + return true; + } + catch { + return false; + } +} +function IsControlCharacterFree(value) { + if (!value_IsString(value)) + return false; + for (let i = 0; i < value.length; i++) { + const code = value.charCodeAt(i); + if ((code >= 7 && code <= 13) || code === 27 || code === 127) { + return false; + } + } + return true; +} +function IsAdditionalProperties(value) { + return IsOptionalBoolean(value) || type_IsSchema(value); +} +function IsOptionalBigInt(value) { + return value_IsUndefined(value) || value_IsBigInt(value); +} +function IsOptionalNumber(value) { + return value_IsUndefined(value) || value_IsNumber(value); +} +function IsOptionalBoolean(value) { + return value_IsUndefined(value) || value_IsBoolean(value); +} +function IsOptionalString(value) { + return value_IsUndefined(value) || value_IsString(value); +} +function IsOptionalPattern(value) { + return value_IsUndefined(value) || (value_IsString(value) && IsControlCharacterFree(value) && IsPattern(value)); +} +function IsOptionalFormat(value) { + return value_IsUndefined(value) || (value_IsString(value) && IsControlCharacterFree(value)); +} +function IsOptionalSchema(value) { + return value_IsUndefined(value) || type_IsSchema(value); +} +// ------------------------------------------------------------------ +// Modifiers +// ------------------------------------------------------------------ +/** Returns true if this value has a Readonly symbol */ +function type_IsReadonly(value) { + return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly'; +} +/** Returns true if this value has a Optional symbol */ +function type_IsOptional(value) { + return value_IsObject(value) && value[OptionalKind] === 'Optional'; +} +// ------------------------------------------------------------------ +// Types +// ------------------------------------------------------------------ +/** Returns true if the given value is TAny */ +function type_IsAny(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Any') && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is TArray */ +function type_IsArray(value) { + return (type_IsKindOf(value, 'Array') && + value.type === 'array' && + IsOptionalString(value.$id) && + type_IsSchema(value.items) && + IsOptionalNumber(value.minItems) && + IsOptionalNumber(value.maxItems) && + IsOptionalBoolean(value.uniqueItems) && + IsOptionalSchema(value.contains) && + IsOptionalNumber(value.minContains) && + IsOptionalNumber(value.maxContains)); +} +/** Returns true if the given value is TAsyncIterator */ +function type_IsAsyncIterator(value) { + // prettier-ignore + return (type_IsKindOf(value, 'AsyncIterator') && + value.type === 'AsyncIterator' && + IsOptionalString(value.$id) && + type_IsSchema(value.items)); +} +/** Returns true if the given value is TBigInt */ +function type_IsBigInt(value) { + // prettier-ignore + return (type_IsKindOf(value, 'BigInt') && + value.type === 'bigint' && + IsOptionalString(value.$id) && + IsOptionalBigInt(value.exclusiveMaximum) && + IsOptionalBigInt(value.exclusiveMinimum) && + IsOptionalBigInt(value.maximum) && + IsOptionalBigInt(value.minimum) && + IsOptionalBigInt(value.multipleOf)); +} +/** Returns true if the given value is TBoolean */ +function type_IsBoolean(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Boolean') && + value.type === 'boolean' && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is TComputed */ +function type_IsComputed(value) { + return type_IsKindOf(value, 'Computed') && type_IsString(value.target) && ValueGuard.IsArray(value.parameters) && value.parameters.every((schema) => type_IsSchema(schema)); +} +/** Returns true if the given value is TConstructor */ +function type_IsConstructor(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Constructor') && + value.type === 'Constructor' && + IsOptionalString(value.$id) && + value_IsArray(value.parameters) && + value.parameters.every(schema => type_IsSchema(schema)) && + type_IsSchema(value.returns)); +} +/** Returns true if the given value is TDate */ +function type_IsDate(value) { + return (type_IsKindOf(value, 'Date') && + value.type === 'Date' && + IsOptionalString(value.$id) && + IsOptionalNumber(value.exclusiveMaximumTimestamp) && + IsOptionalNumber(value.exclusiveMinimumTimestamp) && + IsOptionalNumber(value.maximumTimestamp) && + IsOptionalNumber(value.minimumTimestamp) && + IsOptionalNumber(value.multipleOfTimestamp)); +} +/** Returns true if the given value is TFunction */ +function type_IsFunction(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Function') && + value.type === 'Function' && + IsOptionalString(value.$id) && + value_IsArray(value.parameters) && + value.parameters.every(schema => type_IsSchema(schema)) && + type_IsSchema(value.returns)); +} +/** Returns true if the given value is TImport */ +function type_IsImport(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Import') && + ValueGuard.HasPropertyKey(value, '$defs') && + ValueGuard.IsObject(value.$defs) && + type_IsProperties(value.$defs) && + ValueGuard.HasPropertyKey(value, '$ref') && + ValueGuard.IsString(value.$ref) && + value.$ref in value.$defs // required + ); +} +/** Returns true if the given value is TInteger */ +function type_IsInteger(value) { + return (type_IsKindOf(value, 'Integer') && + value.type === 'integer' && + IsOptionalString(value.$id) && + IsOptionalNumber(value.exclusiveMaximum) && + IsOptionalNumber(value.exclusiveMinimum) && + IsOptionalNumber(value.maximum) && + IsOptionalNumber(value.minimum) && + IsOptionalNumber(value.multipleOf)); +} +/** Returns true if the given schema is TProperties */ +function type_IsProperties(value) { + // prettier-ignore + return (value_IsObject(value) && + Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && type_IsSchema(schema))); +} +/** Returns true if the given value is TIntersect */ +function type_IsIntersect(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Intersect') && + (value_IsString(value.type) && value.type !== 'object' ? false : true) && + value_IsArray(value.allOf) && + value.allOf.every(schema => type_IsSchema(schema) && !type_IsTransform(schema)) && + IsOptionalString(value.type) && + (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is TIterator */ +function type_IsIterator(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Iterator') && + value.type === 'Iterator' && + IsOptionalString(value.$id) && + type_IsSchema(value.items)); +} +/** Returns true if the given value is a TKind with the given name. */ +function type_IsKindOf(value, kind) { + return value_IsObject(value) && Kind in value && value[Kind] === kind; +} +/** Returns true if the given value is TLiteral */ +function type_IsLiteralString(value) { + return type_IsLiteral(value) && value_IsString(value.const); +} +/** Returns true if the given value is TLiteral */ +function type_IsLiteralNumber(value) { + return type_IsLiteral(value) && value_IsNumber(value.const); +} +/** Returns true if the given value is TLiteral */ +function type_IsLiteralBoolean(value) { + return type_IsLiteral(value) && value_IsBoolean(value.const); +} +/** Returns true if the given value is TLiteral */ +function type_IsLiteral(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Literal') && + IsOptionalString(value.$id) && type_IsLiteralValue(value.const)); +} +/** Returns true if the given value is a TLiteralValue */ +function type_IsLiteralValue(value) { + return value_IsBoolean(value) || value_IsNumber(value) || value_IsString(value); +} +/** Returns true if the given value is a TMappedKey */ +function type_IsMappedKey(value) { + // prettier-ignore + return (type_IsKindOf(value, 'MappedKey') && + value_IsArray(value.keys) && + value.keys.every(key => value_IsNumber(key) || value_IsString(key))); +} +/** Returns true if the given value is TMappedResult */ +function type_IsMappedResult(value) { + // prettier-ignore + return (type_IsKindOf(value, 'MappedResult') && + type_IsProperties(value.properties)); +} +/** Returns true if the given value is TNever */ +function type_IsNever(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Never') && + value_IsObject(value.not) && + Object.getOwnPropertyNames(value.not).length === 0); +} +/** Returns true if the given value is TNot */ +function type_IsNot(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Not') && + type_IsSchema(value.not)); +} +/** Returns true if the given value is TNull */ +function type_IsNull(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Null') && + value.type === 'null' && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is TNumber */ +function type_IsNumber(value) { + return (type_IsKindOf(value, 'Number') && + value.type === 'number' && + IsOptionalString(value.$id) && + IsOptionalNumber(value.exclusiveMaximum) && + IsOptionalNumber(value.exclusiveMinimum) && + IsOptionalNumber(value.maximum) && + IsOptionalNumber(value.minimum) && + IsOptionalNumber(value.multipleOf)); +} +/** Returns true if the given value is TObject */ +function type_IsObject(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Object') && + value.type === 'object' && + IsOptionalString(value.$id) && + type_IsProperties(value.properties) && + IsAdditionalProperties(value.additionalProperties) && + IsOptionalNumber(value.minProperties) && + IsOptionalNumber(value.maxProperties)); +} +/** Returns true if the given value is TPromise */ +function type_IsPromise(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Promise') && + value.type === 'Promise' && + IsOptionalString(value.$id) && + type_IsSchema(value.item)); +} +/** Returns true if the given value is TRecord */ +function type_IsRecord(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Record') && + value.type === 'object' && + IsOptionalString(value.$id) && + IsAdditionalProperties(value.additionalProperties) && + value_IsObject(value.patternProperties) && + ((schema) => { + const keys = Object.getOwnPropertyNames(schema.patternProperties); + return (keys.length === 1 && + IsPattern(keys[0]) && + value_IsObject(schema.patternProperties) && + type_IsSchema(schema.patternProperties[keys[0]])); + })(value)); +} +/** Returns true if this value is TRecursive */ +function type_IsRecursive(value) { + return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive'; +} +/** Returns true if the given value is TRef */ +function type_IsRef(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Ref') && + IsOptionalString(value.$id) && + value_IsString(value.$ref)); +} +/** Returns true if the given value is TRegExp */ +function type_IsRegExp(value) { + // prettier-ignore + return (type_IsKindOf(value, 'RegExp') && + IsOptionalString(value.$id) && + value_IsString(value.source) && + value_IsString(value.flags) && + IsOptionalNumber(value.maxLength) && + IsOptionalNumber(value.minLength)); +} +/** Returns true if the given value is TString */ +function type_IsString(value) { + // prettier-ignore + return (type_IsKindOf(value, 'String') && + value.type === 'string' && + IsOptionalString(value.$id) && + IsOptionalNumber(value.minLength) && + IsOptionalNumber(value.maxLength) && + IsOptionalPattern(value.pattern) && + IsOptionalFormat(value.format)); +} +/** Returns true if the given value is TSymbol */ +function type_IsSymbol(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Symbol') && + value.type === 'symbol' && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is TTemplateLiteral */ +function type_IsTemplateLiteral(value) { + // prettier-ignore + return (type_IsKindOf(value, 'TemplateLiteral') && + value.type === 'string' && + value_IsString(value.pattern) && + value.pattern[0] === '^' && + value.pattern[value.pattern.length - 1] === '$'); +} +/** Returns true if the given value is TThis */ +function type_IsThis(value) { + // prettier-ignore + return (type_IsKindOf(value, 'This') && + IsOptionalString(value.$id) && + value_IsString(value.$ref)); +} +/** Returns true of this value is TTransform */ +function type_IsTransform(value) { + return value_IsObject(value) && TransformKind in value; +} +/** Returns true if the given value is TTuple */ +function type_IsTuple(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Tuple') && + value.type === 'array' && + IsOptionalString(value.$id) && + value_IsNumber(value.minItems) && + value_IsNumber(value.maxItems) && + value.minItems === value.maxItems && + (( // empty + value_IsUndefined(value.items) && + value_IsUndefined(value.additionalItems) && + value.minItems === 0) || (value_IsArray(value.items) && + value.items.every(schema => type_IsSchema(schema))))); +} +/** Returns true if the given value is TUndefined */ +function type_IsUndefined(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Undefined') && + value.type === 'undefined' && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is TUnion[]> */ +function IsUnionLiteral(value) { + return type_IsUnion(value) && value.anyOf.every((schema) => type_IsLiteralString(schema) || type_IsLiteralNumber(schema)); +} +/** Returns true if the given value is TUnion */ +function type_IsUnion(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Union') && + IsOptionalString(value.$id) && + value_IsObject(value) && + value_IsArray(value.anyOf) && + value.anyOf.every(schema => type_IsSchema(schema))); +} +/** Returns true if the given value is TUint8Array */ +function type_IsUint8Array(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Uint8Array') && + value.type === 'Uint8Array' && + IsOptionalString(value.$id) && + IsOptionalNumber(value.minByteLength) && + IsOptionalNumber(value.maxByteLength)); +} +/** Returns true if the given value is TUnknown */ +function type_IsUnknown(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Unknown') && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is a raw TUnsafe */ +function type_IsUnsafe(value) { + return type_IsKindOf(value, 'Unsafe'); +} +/** Returns true if the given value is TVoid */ +function type_IsVoid(value) { + // prettier-ignore + return (type_IsKindOf(value, 'Void') && + value.type === 'void' && + IsOptionalString(value.$id)); +} +/** Returns true if the given value is TKind */ +function type_IsKind(value) { + return value_IsObject(value) && Kind in value && value_IsString(value[Kind]) && !KnownTypes.includes(value[Kind]); +} +/** Returns true if the given value is TSchema */ +function type_IsSchema(value) { + // prettier-ignore + return (value_IsObject(value)) && (type_IsAny(value) || + type_IsArray(value) || + type_IsBoolean(value) || + type_IsBigInt(value) || + type_IsAsyncIterator(value) || + type_IsConstructor(value) || + type_IsDate(value) || + type_IsFunction(value) || + type_IsInteger(value) || + type_IsIntersect(value) || + type_IsIterator(value) || + type_IsLiteral(value) || + type_IsMappedKey(value) || + type_IsMappedResult(value) || + type_IsNever(value) || + type_IsNot(value) || + type_IsNull(value) || + type_IsNumber(value) || + type_IsObject(value) || + type_IsPromise(value) || + type_IsRecord(value) || + type_IsRef(value) || + type_IsRegExp(value) || + type_IsString(value) || + type_IsSymbol(value) || + type_IsTemplateLiteral(value) || + type_IsThis(value) || + type_IsTuple(value) || + type_IsUndefined(value) || + type_IsUnion(value) || + type_IsUint8Array(value) || + type_IsUnknown(value) || + type_IsUnsafe(value) || + type_IsVoid(value) || + type_IsKind(value)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.mjs + + + + + + + + + + +class ExtendsResolverError extends error_TypeBoxError { +} +var ExtendsResult; +(function (ExtendsResult) { + ExtendsResult[ExtendsResult["Union"] = 0] = "Union"; + ExtendsResult[ExtendsResult["True"] = 1] = "True"; + ExtendsResult[ExtendsResult["False"] = 2] = "False"; +})(ExtendsResult || (ExtendsResult = {})); +// ------------------------------------------------------------------ +// IntoBooleanResult +// ------------------------------------------------------------------ +// prettier-ignore +function IntoBooleanResult(result) { + return result === ExtendsResult.False ? result : ExtendsResult.True; +} +// ------------------------------------------------------------------ +// Throw +// ------------------------------------------------------------------ +// prettier-ignore +function Throw(message) { + throw new ExtendsResolverError(message); +} +// ------------------------------------------------------------------ +// StructuralRight +// ------------------------------------------------------------------ +// prettier-ignore +function IsStructuralRight(right) { + return (type_IsNever(right) || + type_IsIntersect(right) || + type_IsUnion(right) || + type_IsUnknown(right) || + type_IsAny(right)); +} +// prettier-ignore +function StructuralRight(left, right) { + return (type_IsNever(right) ? FromNeverRight(left, right) : + type_IsIntersect(right) ? FromIntersectRight(left, right) : + type_IsUnion(right) ? FromUnionRight(left, right) : + type_IsUnknown(right) ? FromUnknownRight(left, right) : + type_IsAny(right) ? FromAnyRight(left, right) : + Throw('StructuralRight')); +} +// ------------------------------------------------------------------ +// Any +// ------------------------------------------------------------------ +// prettier-ignore +function FromAnyRight(left, right) { + return ExtendsResult.True; +} +// prettier-ignore +function FromAny(left, right) { + return (type_IsIntersect(right) ? FromIntersectRight(left, right) : + (type_IsUnion(right) && right.anyOf.some((schema) => type_IsAny(schema) || type_IsUnknown(schema))) ? ExtendsResult.True : + type_IsUnion(right) ? ExtendsResult.Union : + type_IsUnknown(right) ? ExtendsResult.True : + type_IsAny(right) ? ExtendsResult.True : + ExtendsResult.Union); +} +// ------------------------------------------------------------------ +// Array +// ------------------------------------------------------------------ +// prettier-ignore +function FromArrayRight(left, right) { + return (type_IsUnknown(left) ? ExtendsResult.False : + type_IsAny(left) ? ExtendsResult.Union : + type_IsNever(left) ? ExtendsResult.True : + ExtendsResult.False); +} +// prettier-ignore +function extends_check_FromArray(left, right) { + return (type_IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True : + IsStructuralRight(right) ? StructuralRight(left, right) : + !type_IsArray(right) ? ExtendsResult.False : + IntoBooleanResult(extends_check_Visit(left.items, right.items))); +} +// ------------------------------------------------------------------ +// AsyncIterator +// ------------------------------------------------------------------ +// prettier-ignore +function FromAsyncIterator(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + !type_IsAsyncIterator(right) ? ExtendsResult.False : + IntoBooleanResult(extends_check_Visit(left.items, right.items))); +} +// ------------------------------------------------------------------ +// BigInt +// ------------------------------------------------------------------ +// prettier-ignore +function FromBigInt(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsBigInt(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Boolean +// ------------------------------------------------------------------ +// prettier-ignore +function FromBooleanRight(left, right) { + return (type_IsLiteralBoolean(left) ? ExtendsResult.True : + type_IsBoolean(left) ? ExtendsResult.True : + ExtendsResult.False); +} +// prettier-ignore +function FromBoolean(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsBoolean(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Constructor +// ------------------------------------------------------------------ +// prettier-ignore +function FromConstructor(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + !type_IsConstructor(right) ? ExtendsResult.False : + left.parameters.length > right.parameters.length ? ExtendsResult.False : + (!left.parameters.every((schema, index) => IntoBooleanResult(extends_check_Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False : + IntoBooleanResult(extends_check_Visit(left.returns, right.returns))); +} +// ------------------------------------------------------------------ +// Date +// ------------------------------------------------------------------ +// prettier-ignore +function FromDate(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsDate(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Function +// ------------------------------------------------------------------ +// prettier-ignore +function FromFunction(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + !type_IsFunction(right) ? ExtendsResult.False : + left.parameters.length > right.parameters.length ? ExtendsResult.False : + (!left.parameters.every((schema, index) => IntoBooleanResult(extends_check_Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False : + IntoBooleanResult(extends_check_Visit(left.returns, right.returns))); +} +// ------------------------------------------------------------------ +// Integer +// ------------------------------------------------------------------ +// prettier-ignore +function FromIntegerRight(left, right) { + return (type_IsLiteral(left) && value_IsNumber(left.const) ? ExtendsResult.True : + type_IsNumber(left) || type_IsInteger(left) ? ExtendsResult.True : + ExtendsResult.False); +} +// prettier-ignore +function FromInteger(left, right) { + return (type_IsInteger(right) || type_IsNumber(right) ? ExtendsResult.True : + IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Intersect +// ------------------------------------------------------------------ +// prettier-ignore +function FromIntersectRight(left, right) { + return right.allOf.every((schema) => extends_check_Visit(left, schema) === ExtendsResult.True) + ? ExtendsResult.True + : ExtendsResult.False; +} +// prettier-ignore +function extends_check_FromIntersect(left, right) { + return left.allOf.some((schema) => extends_check_Visit(schema, right) === ExtendsResult.True) + ? ExtendsResult.True + : ExtendsResult.False; +} +// ------------------------------------------------------------------ +// Iterator +// ------------------------------------------------------------------ +// prettier-ignore +function FromIterator(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + !type_IsIterator(right) ? ExtendsResult.False : + IntoBooleanResult(extends_check_Visit(left.items, right.items))); +} +// ------------------------------------------------------------------ +// Literal +// ------------------------------------------------------------------ +// prettier-ignore +function extends_check_FromLiteral(left, right) { + return (type_IsLiteral(right) && right.const === left.const ? ExtendsResult.True : + IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsString(right) ? FromStringRight(left, right) : + type_IsNumber(right) ? FromNumberRight(left, right) : + type_IsInteger(right) ? FromIntegerRight(left, right) : + type_IsBoolean(right) ? FromBooleanRight(left, right) : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Never +// ------------------------------------------------------------------ +// prettier-ignore +function FromNeverRight(left, right) { + return ExtendsResult.False; +} +// prettier-ignore +function FromNever(left, right) { + return ExtendsResult.True; +} +// ------------------------------------------------------------------ +// Not +// ------------------------------------------------------------------ +// prettier-ignore +function UnwrapTNot(schema) { + let [current, depth] = [schema, 0]; + while (true) { + if (!type_IsNot(current)) + break; + current = current.not; + depth += 1; + } + return depth % 2 === 0 ? current : Unknown(); +} +// prettier-ignore +function FromNot(left, right) { + // TypeScript has no concept of negated types, and attempts to correctly check the negated + // type at runtime would put TypeBox at odds with TypeScripts ability to statically infer + // the type. Instead we unwrap to either unknown or T and continue evaluating. + // prettier-ignore + return (type_IsNot(left) ? extends_check_Visit(UnwrapTNot(left), right) : + type_IsNot(right) ? extends_check_Visit(left, UnwrapTNot(right)) : + Throw('Invalid fallthrough for Not')); +} +// ------------------------------------------------------------------ +// Null +// ------------------------------------------------------------------ +// prettier-ignore +function FromNull(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsNull(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Number +// ------------------------------------------------------------------ +// prettier-ignore +function FromNumberRight(left, right) { + return (type_IsLiteralNumber(left) ? ExtendsResult.True : + type_IsNumber(left) || type_IsInteger(left) ? ExtendsResult.True : + ExtendsResult.False); +} +// prettier-ignore +function FromNumber(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsInteger(right) || type_IsNumber(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Object +// ------------------------------------------------------------------ +// prettier-ignore +function IsObjectPropertyCount(schema, count) { + return Object.getOwnPropertyNames(schema.properties).length === count; +} +// prettier-ignore +function IsObjectStringLike(schema) { + return IsObjectArrayLike(schema); +} +// prettier-ignore +function IsObjectSymbolLike(schema) { + return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'description' in schema.properties && type_IsUnion(schema.properties.description) && schema.properties.description.anyOf.length === 2 && ((type_IsString(schema.properties.description.anyOf[0]) && + type_IsUndefined(schema.properties.description.anyOf[1])) || (type_IsString(schema.properties.description.anyOf[1]) && + type_IsUndefined(schema.properties.description.anyOf[0])))); +} +// prettier-ignore +function IsObjectNumberLike(schema) { + return IsObjectPropertyCount(schema, 0); +} +// prettier-ignore +function IsObjectBooleanLike(schema) { + return IsObjectPropertyCount(schema, 0); +} +// prettier-ignore +function IsObjectBigIntLike(schema) { + return IsObjectPropertyCount(schema, 0); +} +// prettier-ignore +function IsObjectDateLike(schema) { + return IsObjectPropertyCount(schema, 0); +} +// prettier-ignore +function IsObjectUint8ArrayLike(schema) { + return IsObjectArrayLike(schema); +} +// prettier-ignore +function IsObjectFunctionLike(schema) { + const length = number_Number(); + return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(extends_check_Visit(schema.properties['length'], length)) === ExtendsResult.True); +} +// prettier-ignore +function IsObjectConstructorLike(schema) { + return IsObjectPropertyCount(schema, 0); +} +// prettier-ignore +function IsObjectArrayLike(schema) { + const length = number_Number(); + return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(extends_check_Visit(schema.properties['length'], length)) === ExtendsResult.True); +} +// prettier-ignore +function IsObjectPromiseLike(schema) { + const then = function_Function([Any()], Any()); + return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'then' in schema.properties && IntoBooleanResult(extends_check_Visit(schema.properties['then'], then)) === ExtendsResult.True); +} +// ------------------------------------------------------------------ +// Property +// ------------------------------------------------------------------ +// prettier-ignore +function Property(left, right) { + return (extends_check_Visit(left, right) === ExtendsResult.False ? ExtendsResult.False : + type_IsOptional(left) && !type_IsOptional(right) ? ExtendsResult.False : + ExtendsResult.True); +} +// prettier-ignore +function FromObjectRight(left, right) { + return (type_IsUnknown(left) ? ExtendsResult.False : + type_IsAny(left) ? ExtendsResult.Union : (type_IsNever(left) || + (type_IsLiteralString(left) && IsObjectStringLike(right)) || + (type_IsLiteralNumber(left) && IsObjectNumberLike(right)) || + (type_IsLiteralBoolean(left) && IsObjectBooleanLike(right)) || + (type_IsSymbol(left) && IsObjectSymbolLike(right)) || + (type_IsBigInt(left) && IsObjectBigIntLike(right)) || + (type_IsString(left) && IsObjectStringLike(right)) || + (type_IsSymbol(left) && IsObjectSymbolLike(right)) || + (type_IsNumber(left) && IsObjectNumberLike(right)) || + (type_IsInteger(left) && IsObjectNumberLike(right)) || + (type_IsBoolean(left) && IsObjectBooleanLike(right)) || + (type_IsUint8Array(left) && IsObjectUint8ArrayLike(right)) || + (type_IsDate(left) && IsObjectDateLike(right)) || + (type_IsConstructor(left) && IsObjectConstructorLike(right)) || + (type_IsFunction(left) && IsObjectFunctionLike(right))) ? ExtendsResult.True : + (type_IsRecord(left) && type_IsString(RecordKey(left))) ? (() => { + // When expressing a Record with literal key values, the Record is converted into a Object with + // the Hint assigned as `Record`. This is used to invert the extends logic. + return right[symbols_Hint] === 'Record' ? ExtendsResult.True : ExtendsResult.False; + })() : + (type_IsRecord(left) && type_IsNumber(RecordKey(left))) ? (() => { + return IsObjectPropertyCount(right, 0) ? ExtendsResult.True : ExtendsResult.False; + })() : + ExtendsResult.False); +} +// prettier-ignore +function FromObject(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + !type_IsObject(right) ? ExtendsResult.False : + (() => { + for (const key of Object.getOwnPropertyNames(right.properties)) { + if (!(key in left.properties) && !type_IsOptional(right.properties[key])) { + return ExtendsResult.False; + } + if (type_IsOptional(right.properties[key])) { + return ExtendsResult.True; + } + if (Property(left.properties[key], right.properties[key]) === ExtendsResult.False) { + return ExtendsResult.False; + } + } + return ExtendsResult.True; + })()); +} +// ------------------------------------------------------------------ +// Promise +// ------------------------------------------------------------------ +// prettier-ignore +function extends_check_FromPromise(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) && IsObjectPromiseLike(right) ? ExtendsResult.True : + !type_IsPromise(right) ? ExtendsResult.False : + IntoBooleanResult(extends_check_Visit(left.item, right.item))); +} +// ------------------------------------------------------------------ +// Record +// ------------------------------------------------------------------ +// prettier-ignore +function RecordKey(schema) { + return (PatternNumberExact in schema.patternProperties ? number_Number() : + PatternStringExact in schema.patternProperties ? string_String() : + Throw('Unknown record key pattern')); +} +// prettier-ignore +function RecordValue(schema) { + return (PatternNumberExact in schema.patternProperties ? schema.patternProperties[PatternNumberExact] : + PatternStringExact in schema.patternProperties ? schema.patternProperties[PatternStringExact] : + Throw('Unable to get record value schema')); +} +// prettier-ignore +function FromRecordRight(left, right) { + const [Key, Value] = [RecordKey(right), RecordValue(right)]; + return ((type_IsLiteralString(left) && type_IsNumber(Key) && IntoBooleanResult(extends_check_Visit(left, Value)) === ExtendsResult.True) ? ExtendsResult.True : + type_IsUint8Array(left) && type_IsNumber(Key) ? extends_check_Visit(left, Value) : + type_IsString(left) && type_IsNumber(Key) ? extends_check_Visit(left, Value) : + type_IsArray(left) && type_IsNumber(Key) ? extends_check_Visit(left, Value) : + type_IsObject(left) ? (() => { + for (const key of Object.getOwnPropertyNames(left.properties)) { + if (Property(Value, left.properties[key]) === ExtendsResult.False) { + return ExtendsResult.False; + } + } + return ExtendsResult.True; + })() : + ExtendsResult.False); +} +// prettier-ignore +function FromRecord(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + !type_IsRecord(right) ? ExtendsResult.False : + extends_check_Visit(RecordValue(left), RecordValue(right))); +} +// ------------------------------------------------------------------ +// RegExp +// ------------------------------------------------------------------ +// prettier-ignore +function FromRegExp(left, right) { + // Note: RegExp types evaluate as strings, not RegExp objects. + // Here we remap either into string and continue evaluating. + const L = type_IsRegExp(left) ? string_String() : left; + const R = type_IsRegExp(right) ? string_String() : right; + return extends_check_Visit(L, R); +} +// ------------------------------------------------------------------ +// String +// ------------------------------------------------------------------ +// prettier-ignore +function FromStringRight(left, right) { + return (type_IsLiteral(left) && value_IsString(left.const) ? ExtendsResult.True : + type_IsString(left) ? ExtendsResult.True : + ExtendsResult.False); +} +// prettier-ignore +function FromString(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsString(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Symbol +// ------------------------------------------------------------------ +// prettier-ignore +function FromSymbol(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsSymbol(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// TemplateLiteral +// ------------------------------------------------------------------ +// prettier-ignore +function extends_check_FromTemplateLiteral(left, right) { + // TemplateLiteral types are resolved to either unions for finite expressions or string + // for infinite expressions. Here we call to TemplateLiteralResolver to resolve for + // either type and continue evaluating. + return (type_IsTemplateLiteral(left) ? extends_check_Visit(TemplateLiteralToUnion(left), right) : + type_IsTemplateLiteral(right) ? extends_check_Visit(left, TemplateLiteralToUnion(right)) : + Throw('Invalid fallthrough for TemplateLiteral')); +} +// ------------------------------------------------------------------ +// Tuple +// ------------------------------------------------------------------ +// prettier-ignore +function IsArrayOfTuple(left, right) { + return (type_IsArray(right) && + left.items !== undefined && + left.items.every((schema) => extends_check_Visit(schema, right.items) === ExtendsResult.True)); +} +// prettier-ignore +function FromTupleRight(left, right) { + return (type_IsNever(left) ? ExtendsResult.True : + type_IsUnknown(left) ? ExtendsResult.False : + type_IsAny(left) ? ExtendsResult.Union : + ExtendsResult.False); +} +// prettier-ignore +function extends_check_FromTuple(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True : + type_IsArray(right) && IsArrayOfTuple(left, right) ? ExtendsResult.True : + !type_IsTuple(right) ? ExtendsResult.False : + (value_IsUndefined(left.items) && !value_IsUndefined(right.items)) || (!value_IsUndefined(left.items) && value_IsUndefined(right.items)) ? ExtendsResult.False : + (value_IsUndefined(left.items) && !value_IsUndefined(right.items)) ? ExtendsResult.True : + left.items.every((schema, index) => extends_check_Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Uint8Array +// ------------------------------------------------------------------ +// prettier-ignore +function FromUint8Array(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsUint8Array(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Undefined +// ------------------------------------------------------------------ +// prettier-ignore +function FromUndefined(left, right) { + return (IsStructuralRight(right) ? StructuralRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsRecord(right) ? FromRecordRight(left, right) : + type_IsVoid(right) ? FromVoidRight(left, right) : + type_IsUndefined(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Union +// ------------------------------------------------------------------ +// prettier-ignore +function FromUnionRight(left, right) { + return right.anyOf.some((schema) => extends_check_Visit(left, schema) === ExtendsResult.True) + ? ExtendsResult.True + : ExtendsResult.False; +} +// prettier-ignore +function extends_check_FromUnion(left, right) { + return left.anyOf.every((schema) => extends_check_Visit(schema, right) === ExtendsResult.True) + ? ExtendsResult.True + : ExtendsResult.False; +} +// ------------------------------------------------------------------ +// Unknown +// ------------------------------------------------------------------ +// prettier-ignore +function FromUnknownRight(left, right) { + return ExtendsResult.True; +} +// prettier-ignore +function FromUnknown(left, right) { + return (type_IsNever(right) ? FromNeverRight(left, right) : + type_IsIntersect(right) ? FromIntersectRight(left, right) : + type_IsUnion(right) ? FromUnionRight(left, right) : + type_IsAny(right) ? FromAnyRight(left, right) : + type_IsString(right) ? FromStringRight(left, right) : + type_IsNumber(right) ? FromNumberRight(left, right) : + type_IsInteger(right) ? FromIntegerRight(left, right) : + type_IsBoolean(right) ? FromBooleanRight(left, right) : + type_IsArray(right) ? FromArrayRight(left, right) : + type_IsTuple(right) ? FromTupleRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsUnknown(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// ------------------------------------------------------------------ +// Void +// ------------------------------------------------------------------ +// prettier-ignore +function FromVoidRight(left, right) { + return (type_IsUndefined(left) ? ExtendsResult.True : + type_IsUndefined(left) ? ExtendsResult.True : + ExtendsResult.False); +} +// prettier-ignore +function FromVoid(left, right) { + return (type_IsIntersect(right) ? FromIntersectRight(left, right) : + type_IsUnion(right) ? FromUnionRight(left, right) : + type_IsUnknown(right) ? FromUnknownRight(left, right) : + type_IsAny(right) ? FromAnyRight(left, right) : + type_IsObject(right) ? FromObjectRight(left, right) : + type_IsVoid(right) ? ExtendsResult.True : + ExtendsResult.False); +} +// prettier-ignore +function extends_check_Visit(left, right) { + return ( + // resolvable + (type_IsTemplateLiteral(left) || type_IsTemplateLiteral(right)) ? extends_check_FromTemplateLiteral(left, right) : + (type_IsRegExp(left) || type_IsRegExp(right)) ? FromRegExp(left, right) : + (type_IsNot(left) || type_IsNot(right)) ? FromNot(left, right) : + // standard + type_IsAny(left) ? FromAny(left, right) : + type_IsArray(left) ? extends_check_FromArray(left, right) : + type_IsBigInt(left) ? FromBigInt(left, right) : + type_IsBoolean(left) ? FromBoolean(left, right) : + type_IsAsyncIterator(left) ? FromAsyncIterator(left, right) : + type_IsConstructor(left) ? FromConstructor(left, right) : + type_IsDate(left) ? FromDate(left, right) : + type_IsFunction(left) ? FromFunction(left, right) : + type_IsInteger(left) ? FromInteger(left, right) : + type_IsIntersect(left) ? extends_check_FromIntersect(left, right) : + type_IsIterator(left) ? FromIterator(left, right) : + type_IsLiteral(left) ? extends_check_FromLiteral(left, right) : + type_IsNever(left) ? FromNever(left, right) : + type_IsNull(left) ? FromNull(left, right) : + type_IsNumber(left) ? FromNumber(left, right) : + type_IsObject(left) ? FromObject(left, right) : + type_IsRecord(left) ? FromRecord(left, right) : + type_IsString(left) ? FromString(left, right) : + type_IsSymbol(left) ? FromSymbol(left, right) : + type_IsTuple(left) ? extends_check_FromTuple(left, right) : + type_IsPromise(left) ? extends_check_FromPromise(left, right) : + type_IsUint8Array(left) ? FromUint8Array(left, right) : + type_IsUndefined(left) ? FromUndefined(left, right) : + type_IsUnion(left) ? extends_check_FromUnion(left, right) : + type_IsUnknown(left) ? FromUnknown(left, right) : + type_IsVoid(left) ? FromVoid(left, right) : + Throw(`Unknown left type operand '${left[Kind]}'`)); +} +function ExtendsCheck(left, right) { + return extends_check_Visit(left, right); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs + + +// prettier-ignore +function exclude_from_mapped_result_FromProperties(P, U) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(P)) + Acc[K2] = Exclude(P[K2], U); + return Acc; +} +// prettier-ignore +function exclude_from_mapped_result_FromMappedResult(R, T) { + return exclude_from_mapped_result_FromProperties(R.properties, T); +} +// prettier-ignore +function ExcludeFromMappedResult(R, T) { + const P = exclude_from_mapped_result_FromMappedResult(R, T); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs + + +function ExcludeFromTemplateLiteral(L, R) { + return Exclude(TemplateLiteralToUnion(L), R); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.mjs + + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +function ExcludeRest(L, R) { + const excluded = L.filter((inner) => ExtendsCheck(inner, R) === ExtendsResult.False); + return excluded.length === 1 ? excluded[0] : Union(excluded); +} +/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */ +function Exclude(L, R, options = {}) { + // overloads + if (IsTemplateLiteral(L)) + return CreateType(ExcludeFromTemplateLiteral(L, R), options); + if (IsMappedResult(L)) + return CreateType(ExcludeFromMappedResult(L, R), options); + // prettier-ignore + return CreateType(IsUnion(L) ? ExcludeRest(L.anyOf, R) : + ExtendsCheck(L, R) !== ExtendsResult.False ? Never() : L, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs + + + + +// prettier-ignore +function FromPropertyKey(K, U, L, R, options) { + return { + [K]: Extends(Literal(K), U, L, R, Clone(options)) + }; +} +// prettier-ignore +function FromPropertyKeys(K, U, L, R, options) { + return K.reduce((Acc, LK) => { + return { ...Acc, ...FromPropertyKey(LK, U, L, R, options) }; + }, {}); +} +// prettier-ignore +function FromMappedKey(K, U, L, R, options) { + return FromPropertyKeys(K.keys, U, L, R, options); +} +// prettier-ignore +function ExtendsFromMappedKey(T, U, L, R, options) { + const P = FromMappedKey(T, U, L, R, options); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs + + + +// prettier-ignore +function extends_from_mapped_result_FromProperties(P, Right, True, False, options) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(P)) + Acc[K2] = Extends(P[K2], Right, True, False, Clone(options)); + return Acc; +} +// prettier-ignore +function extends_from_mapped_result_FromMappedResult(Left, Right, True, False, options) { + return extends_from_mapped_result_FromProperties(Left.properties, Right, True, False, options); +} +// prettier-ignore +function ExtendsFromMappedResult(Left, Right, True, False, options) { + const P = extends_from_mapped_result_FromMappedResult(Left, Right, True, False, options); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends.mjs + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function ExtendsResolve(left, right, trueType, falseType) { + const R = ExtendsCheck(left, right); + return (R === ExtendsResult.Union ? Union([trueType, falseType]) : + R === ExtendsResult.True ? trueType : + falseType); +} +/** `[Json]` Creates a Conditional type */ +function Extends(L, R, T, F, options) { + // prettier-ignore + return (IsMappedResult(L) ? ExtendsFromMappedResult(L, R, T, F, options) : + IsMappedKey(L) ? CreateType(ExtendsFromMappedKey(L, R, T, F, options)) : + CreateType(ExtendsResolve(L, R, T, F), options)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs + + +// prettier-ignore +function extract_from_mapped_result_FromProperties(P, T) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(P)) + Acc[K2] = Extract(P[K2], T); + return Acc; +} +// prettier-ignore +function extract_from_mapped_result_FromMappedResult(R, T) { + return extract_from_mapped_result_FromProperties(R.properties, T); +} +// prettier-ignore +function ExtractFromMappedResult(R, T) { + const P = extract_from_mapped_result_FromMappedResult(R, T); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs + + +function ExtractFromTemplateLiteral(L, R) { + return Extract(TemplateLiteralToUnion(L), R); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extract/extract.mjs + + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +function ExtractRest(L, R) { + const extracted = L.filter((inner) => ExtendsCheck(inner, R) !== ExtendsResult.False); + return extracted.length === 1 ? extracted[0] : Union(extracted); +} +/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */ +function Extract(L, R, options) { + // overloads + if (IsTemplateLiteral(L)) + return CreateType(ExtractFromTemplateLiteral(L, R), options); + if (IsMappedResult(L)) + return CreateType(ExtractFromMappedResult(L, R), options); + // prettier-ignore + return CreateType(IsUnion(L) ? ExtractRest(L.anyOf, R) : + ExtendsCheck(L, R) !== ExtendsResult.False ? L : Never(), options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs + +/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */ +function InstanceType(schema, options) { + return CreateType(schema.returns, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/integer/integer.mjs + + +/** `[Json]` Creates an Integer type */ +function Integer(options) { + return CreateType({ [Kind]: 'Integer', type: 'integer' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs + + + + + + + +// ------------------------------------------------------------------ +// SyntaxParsers +// ------------------------------------------------------------------ +// prettier-ignore +function* syntax_FromUnion(syntax) { + const trim = syntax.trim().replace(/"|'/g, ''); + return (trim === 'boolean' ? yield boolean_Boolean() : + trim === 'number' ? yield number_Number() : + trim === 'bigint' ? yield bigint_BigInt() : + trim === 'string' ? yield string_String() : + yield (() => { + const literals = trim.split('|').map((literal) => Literal(literal.trim())); + return (literals.length === 0 ? Never() : + literals.length === 1 ? literals[0] : + UnionEvaluated(literals)); + })()); +} +// prettier-ignore +function* FromTerminal(syntax) { + if (syntax[1] !== '{') { + const L = Literal('$'); + const R = FromSyntax(syntax.slice(1)); + return yield* [L, ...R]; + } + for (let i = 2; i < syntax.length; i++) { + if (syntax[i] === '}') { + const L = syntax_FromUnion(syntax.slice(2, i)); + const R = FromSyntax(syntax.slice(i + 1)); + return yield* [...L, ...R]; + } + } + yield Literal(syntax); +} +// prettier-ignore +function* FromSyntax(syntax) { + for (let i = 0; i < syntax.length; i++) { + if (syntax[i] === '$') { + const L = Literal(syntax.slice(0, i)); + const R = FromTerminal(syntax.slice(i)); + return yield* [L, ...R]; + } + } + yield Literal(syntax); +} +/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */ +function TemplateLiteralSyntax(syntax) { + return [...FromSyntax(syntax)]; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// TemplateLiteralPatternError +// ------------------------------------------------------------------ +class TemplateLiteralPatternError extends error_TypeBoxError { +} +// ------------------------------------------------------------------ +// TemplateLiteralPattern +// ------------------------------------------------------------------ +function Escape(value) { + return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} +// prettier-ignore +function pattern_Visit(schema, acc) { + return (IsTemplateLiteral(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) : + IsUnion(schema) ? `(${schema.anyOf.map((schema) => pattern_Visit(schema, acc)).join('|')})` : + kind_IsNumber(schema) ? `${acc}${PatternNumber}` : + kind_IsInteger(schema) ? `${acc}${PatternNumber}` : + kind_IsBigInt(schema) ? `${acc}${PatternNumber}` : + kind_IsString(schema) ? `${acc}${PatternString}` : + IsLiteral(schema) ? `${acc}${Escape(schema.const.toString())}` : + kind_IsBoolean(schema) ? `${acc}${PatternBoolean}` : + (() => { throw new TemplateLiteralPatternError(`Unexpected Kind '${schema[Kind]}'`); })()); +} +function TemplateLiteralPattern(kinds) { + return `^${kinds.map((schema) => pattern_Visit(schema, '')).join('')}\$`; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs + + + + + +/** `[Json]` Creates a TemplateLiteral type */ +// prettier-ignore +function TemplateLiteral(unresolved, options) { + const pattern = value_IsString(unresolved) + ? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved)) + : TemplateLiteralPattern(unresolved); + return CreateType({ [Kind]: 'TemplateLiteral', type: 'string', pattern }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs + + + + +// prettier-ignore +function MappedIntrinsicPropertyKey(K, M, options) { + return { + [K]: Intrinsic(Literal(K), M, Clone(options)) + }; +} +// prettier-ignore +function MappedIntrinsicPropertyKeys(K, M, options) { + const result = K.reduce((Acc, L) => { + return { ...Acc, ...MappedIntrinsicPropertyKey(L, M, options) }; + }, {}); + return result; +} +// prettier-ignore +function MappedIntrinsicProperties(T, M, options) { + return MappedIntrinsicPropertyKeys(T['keys'], M, options); +} +// prettier-ignore +function IntrinsicFromMappedKey(T, M, options) { + const P = MappedIntrinsicProperties(T, M, options); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// Apply +// ------------------------------------------------------------------ +function ApplyUncapitalize(value) { + const [first, rest] = [value.slice(0, 1), value.slice(1)]; + return [first.toLowerCase(), rest].join(''); +} +function ApplyCapitalize(value) { + const [first, rest] = [value.slice(0, 1), value.slice(1)]; + return [first.toUpperCase(), rest].join(''); +} +function ApplyUppercase(value) { + return value.toUpperCase(); +} +function ApplyLowercase(value) { + return value.toLowerCase(); +} +function intrinsic_FromTemplateLiteral(schema, mode, options) { + // note: template literals require special runtime handling as they are encoded in string patterns. + // This diverges from the mapped type which would otherwise map on the template literal kind. + const expression = TemplateLiteralParseExact(schema.pattern); + const finite = IsTemplateLiteralExpressionFinite(expression); + if (!finite) + return { ...schema, pattern: FromLiteralValue(schema.pattern, mode) }; + const strings = [...TemplateLiteralExpressionGenerate(expression)]; + const literals = strings.map((value) => Literal(value)); + const mapped = intrinsic_FromRest(literals, mode); + const union = Union(mapped); + return TemplateLiteral([union], options); +} +// prettier-ignore +function FromLiteralValue(value, mode) { + return (typeof value === 'string' ? (mode === 'Uncapitalize' ? ApplyUncapitalize(value) : + mode === 'Capitalize' ? ApplyCapitalize(value) : + mode === 'Uppercase' ? ApplyUppercase(value) : + mode === 'Lowercase' ? ApplyLowercase(value) : + value) : value.toString()); +} +// prettier-ignore +function intrinsic_FromRest(T, M) { + return T.map(L => Intrinsic(L, M)); +} +/** Applies an intrinsic string manipulation to the given type. */ +function Intrinsic(schema, mode, options = {}) { + // prettier-ignore + return ( + // Intrinsic-Mapped-Inference + IsMappedKey(schema) ? IntrinsicFromMappedKey(schema, mode, options) : + // Standard-Inference + IsTemplateLiteral(schema) ? intrinsic_FromTemplateLiteral(schema, mode, options) : + IsUnion(schema) ? Union(intrinsic_FromRest(schema.anyOf, mode), options) : + IsLiteral(schema) ? Literal(FromLiteralValue(schema.const, mode), options) : + // Default Type + CreateType(schema, options)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs + +/** `[Json]` Intrinsic function to Capitalize LiteralString types */ +function Capitalize(T, options = {}) { + return Intrinsic(T, 'Capitalize', options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs + +/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */ +function Uncapitalize(T, options = {}) { + return Intrinsic(T, 'Uncapitalize', options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs + +/** `[Json]` Intrinsic function to Lowercase LiteralString types */ +function Lowercase(T, options = {}) { + return Intrinsic(T, 'Lowercase', options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs + +/** `[Json]` Intrinsic function to Uppercase LiteralString types */ +function Uppercase(T, options = {}) { + return Intrinsic(T, 'Uppercase', options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.mjs + + +/** `[JavaScript]` Creates an Iterator type */ +function src_Iterator(items, options) { + return CreateType({ [Kind]: 'Iterator', type: 'Iterator', items }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs + + + +// prettier-ignore +function keyof_from_mapped_result_FromProperties(properties, options) { + const result = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(properties)) + result[K2] = KeyOf(properties[K2], Clone(options)); + return result; +} +// prettier-ignore +function keyof_from_mapped_result_FromMappedResult(mappedResult, options) { + return keyof_from_mapped_result_FromProperties(mappedResult.properties, options); +} +// prettier-ignore +function KeyOfFromMappedResult(mappedResult, options) { + const properties = keyof_from_mapped_result_FromMappedResult(mappedResult, options); + return MappedResult(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.mjs + + + + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function keyof_FromComputed(target, parameters) { + return Computed('KeyOf', [Computed(target, parameters)]); +} +// prettier-ignore +function keyof_FromRef($ref) { + return Computed('KeyOf', [Ref($ref)]); +} +// prettier-ignore +function KeyOfFromType(type, options) { + const propertyKeys = KeyOfPropertyKeys(type); + const propertyKeyTypes = KeyOfPropertyKeysToRest(propertyKeys); + const result = UnionEvaluated(propertyKeyTypes); + return CreateType(result, options); +} +// prettier-ignore +function KeyOfPropertyKeysToRest(propertyKeys) { + return propertyKeys.map(L => L === '[number]' ? number_Number() : Literal(L)); +} +/** `[Json]` Creates a KeyOf type */ +function KeyOf(type, options) { + return (IsComputed(type) ? keyof_FromComputed(type.target, type.parameters) : IsRef(type) ? keyof_FromRef(type.$ref) : IsMappedResult(type) ? KeyOfFromMappedResult(type, options) : KeyOfFromType(type, options)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/promise/promise.mjs + + +/** `[JavaScript]` Creates a Promise type */ +function promise_Promise(item, options) { + return CreateType({ [Kind]: 'Promise', type: 'Promise', item }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs + + +// evaluation types + + + + + + + + + + + + + + +// operator + +// mapping types + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function mapped_FromMappedResult(K, P) { + return (K in P + ? FromSchemaType(K, P[K]) + : MappedResult(P)); +} +// prettier-ignore +function MappedKeyToKnownMappedResultProperties(K) { + return { [K]: Literal(K) }; +} +// prettier-ignore +function MappedKeyToUnknownMappedResultProperties(P) { + const Acc = {}; + for (const L of P) + Acc[L] = Literal(L); + return Acc; +} +// prettier-ignore +function MappedKeyToMappedResultProperties(K, P) { + return (SetIncludes(P, K) + ? MappedKeyToKnownMappedResultProperties(K) + : MappedKeyToUnknownMappedResultProperties(P)); +} +// prettier-ignore +function mapped_FromMappedKey(K, P) { + const R = MappedKeyToMappedResultProperties(K, P); + return mapped_FromMappedResult(K, R); +} +// prettier-ignore +function mapped_FromRest(K, T) { + return T.map(L => FromSchemaType(K, L)); +} +// prettier-ignore +function mapped_FromProperties(K, T) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(T)) + Acc[K2] = FromSchemaType(K, T[K2]); + return Acc; +} +// prettier-ignore +function FromSchemaType(K, T) { + // required to retain user defined options for mapped type + const options = { ...T }; + return ( + // unevaluated modifier types + IsOptional(T) ? Optional(FromSchemaType(K, Discard(T, [OptionalKind]))) : + IsReadonly(T) ? Readonly(FromSchemaType(K, Discard(T, [symbols_ReadonlyKind]))) : + // unevaluated mapped types + IsMappedResult(T) ? mapped_FromMappedResult(K, T.properties) : + IsMappedKey(T) ? mapped_FromMappedKey(K, T.keys) : + // unevaluated types + IsConstructor(T) ? Constructor(mapped_FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) : + kind_IsFunction(T) ? function_Function(mapped_FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) : + kind_IsAsyncIterator(T) ? src_AsyncIterator(FromSchemaType(K, T.items), options) : + kind_IsIterator(T) ? src_Iterator(FromSchemaType(K, T.items), options) : + IsIntersect(T) ? Intersect(mapped_FromRest(K, T.allOf), options) : + IsUnion(T) ? Union(mapped_FromRest(K, T.anyOf), options) : + IsTuple(T) ? Tuple(mapped_FromRest(K, T.items ?? []), options) : + kind_IsObject(T) ? object_Object(mapped_FromProperties(K, T.properties), options) : + kind_IsArray(T) ? array_Array(FromSchemaType(K, T.items), options) : + kind_IsPromise(T) ? promise_Promise(FromSchemaType(K, T.item), options) : + T); +} +// prettier-ignore +function MappedFunctionReturnType(K, T) { + const Acc = {}; + for (const L of K) + Acc[L] = FromSchemaType(L, T); + return Acc; +} +/** `[Json]` Creates a Mapped object type */ +function Mapped(key, map, options) { + const K = IsSchema(key) ? IndexPropertyKeys(key) : key; + const RT = map({ [Kind]: 'MappedKey', keys: K }); + const R = MappedFunctionReturnType(K, RT); + return object_Object(R, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs + + + +// prettier-ignore +function omit_from_mapped_key_FromPropertyKey(type, key, options) { + return { [key]: Omit(type, [key], Clone(options)) }; +} +// prettier-ignore +function omit_from_mapped_key_FromPropertyKeys(type, propertyKeys, options) { + return propertyKeys.reduce((Acc, LK) => { + return { ...Acc, ...omit_from_mapped_key_FromPropertyKey(type, LK, options) }; + }, {}); +} +// prettier-ignore +function omit_from_mapped_key_FromMappedKey(type, mappedKey, options) { + return omit_from_mapped_key_FromPropertyKeys(type, mappedKey.keys, options); +} +// prettier-ignore +function OmitFromMappedKey(type, mappedKey, options) { + const properties = omit_from_mapped_key_FromMappedKey(type, mappedKey, options); + return MappedResult(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs + + + +// prettier-ignore +function omit_from_mapped_result_FromProperties(properties, propertyKeys, options) { + const result = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(properties)) + result[K2] = Omit(properties[K2], propertyKeys, Clone(options)); + return result; +} +// prettier-ignore +function omit_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options) { + return omit_from_mapped_result_FromProperties(mappedResult.properties, propertyKeys, options); +} +// prettier-ignore +function OmitFromMappedResult(mappedResult, propertyKeys, options) { + const properties = omit_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options); + return MappedResult(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/omit/omit.mjs + + + + + + + + + +// ------------------------------------------------------------------ +// Mapped +// ------------------------------------------------------------------ + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + + +// prettier-ignore +function omit_FromIntersect(types, propertyKeys) { + return types.map((type) => OmitResolve(type, propertyKeys)); +} +// prettier-ignore +function omit_FromUnion(types, propertyKeys) { + return types.map((type) => OmitResolve(type, propertyKeys)); +} +// ------------------------------------------------------------------ +// FromProperty +// ------------------------------------------------------------------ +// prettier-ignore +function omit_FromProperty(properties, key) { + const { [key]: _, ...R } = properties; + return R; +} +// prettier-ignore +function omit_FromProperties(properties, propertyKeys) { + return propertyKeys.reduce((T, K2) => omit_FromProperty(T, K2), properties); +} +// prettier-ignore +function omit_FromObject(properties, propertyKeys) { + const options = Discard(properties, [TransformKind, '$id', 'required', 'properties']); + const omittedProperties = omit_FromProperties(properties['properties'], propertyKeys); + return object_Object(omittedProperties, options); +} +// prettier-ignore +function omit_UnionFromPropertyKeys(propertyKeys) { + const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []); + return Union(result); +} +// prettier-ignore +function OmitResolve(properties, propertyKeys) { + return (IsIntersect(properties) ? Intersect(omit_FromIntersect(properties.allOf, propertyKeys)) : + IsUnion(properties) ? Union(omit_FromUnion(properties.anyOf, propertyKeys)) : + kind_IsObject(properties) ? omit_FromObject(properties, propertyKeys) : + object_Object({})); +} +/** `[Json]` Constructs a type whose keys are picked from the given type */ +// prettier-ignore +function Omit(type, key, options) { + const typeKey = value_IsArray(key) ? omit_UnionFromPropertyKeys(key) : key; + const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key; + const isTypeRef = IsRef(type); + const isKeyRef = IsRef(key); + return (IsMappedResult(type) ? OmitFromMappedResult(type, propertyKeys, options) : + IsMappedKey(key) ? OmitFromMappedKey(type, key, options) : + (isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) : + (!isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) : + (isTypeRef && !isKeyRef) ? Computed('Omit', [type, typeKey], options) : + CreateType({ ...OmitResolve(type, propertyKeys), ...options })); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs + + + +// prettier-ignore +function pick_from_mapped_key_FromPropertyKey(type, key, options) { + return { + [key]: Pick(type, [key], Clone(options)) + }; +} +// prettier-ignore +function pick_from_mapped_key_FromPropertyKeys(type, propertyKeys, options) { + return propertyKeys.reduce((result, leftKey) => { + return { ...result, ...pick_from_mapped_key_FromPropertyKey(type, leftKey, options) }; + }, {}); +} +// prettier-ignore +function pick_from_mapped_key_FromMappedKey(type, mappedKey, options) { + return pick_from_mapped_key_FromPropertyKeys(type, mappedKey.keys, options); +} +// prettier-ignore +function PickFromMappedKey(type, mappedKey, options) { + const properties = pick_from_mapped_key_FromMappedKey(type, mappedKey, options); + return MappedResult(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs + + + +// prettier-ignore +function pick_from_mapped_result_FromProperties(properties, propertyKeys, options) { + const result = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(properties)) + result[K2] = Pick(properties[K2], propertyKeys, Clone(options)); + return result; +} +// prettier-ignore +function pick_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options) { + return pick_from_mapped_result_FromProperties(mappedResult.properties, propertyKeys, options); +} +// prettier-ignore +function PickFromMappedResult(mappedResult, propertyKeys, options) { + const properties = pick_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options); + return MappedResult(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/pick/pick.mjs + + + + + + + + + +// ------------------------------------------------------------------ +// Guards +// ------------------------------------------------------------------ + + +// ------------------------------------------------------------------ +// Infrastructure +// ------------------------------------------------------------------ + + +function pick_FromIntersect(types, propertyKeys) { + return types.map((type) => PickResolve(type, propertyKeys)); +} +// prettier-ignore +function pick_FromUnion(types, propertyKeys) { + return types.map((type) => PickResolve(type, propertyKeys)); +} +// prettier-ignore +function pick_FromProperties(properties, propertyKeys) { + const result = {}; + for (const K2 of propertyKeys) + if (K2 in properties) + result[K2] = properties[K2]; + return result; +} +// prettier-ignore +function pick_FromObject(T, K) { + const options = Discard(T, [TransformKind, '$id', 'required', 'properties']); + const properties = pick_FromProperties(T['properties'], K); + return object_Object(properties, options); +} +// prettier-ignore +function pick_UnionFromPropertyKeys(propertyKeys) { + const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []); + return Union(result); +} +// prettier-ignore +function PickResolve(properties, propertyKeys) { + return (IsIntersect(properties) ? Intersect(pick_FromIntersect(properties.allOf, propertyKeys)) : + IsUnion(properties) ? Union(pick_FromUnion(properties.anyOf, propertyKeys)) : + kind_IsObject(properties) ? pick_FromObject(properties, propertyKeys) : + object_Object({})); +} +/** `[Json]` Constructs a type whose keys are picked from the given type */ +// prettier-ignore +function Pick(type, key, options) { + const typeKey = value_IsArray(key) ? pick_UnionFromPropertyKeys(key) : key; + const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key; + const isTypeRef = IsRef(type); + const isKeyRef = IsRef(key); + return (IsMappedResult(type) ? PickFromMappedResult(type, propertyKeys, options) : + IsMappedKey(key) ? PickFromMappedKey(type, key, options) : + (isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) : + (!isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) : + (isTypeRef && !isKeyRef) ? Computed('Pick', [type, typeKey], options) : + CreateType({ ...PickResolve(type, propertyKeys), ...options })); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs + + + +// prettier-ignore +function partial_from_mapped_result_FromProperties(K, options) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(K)) + Acc[K2] = Partial(K[K2], Clone(options)); + return Acc; +} +// prettier-ignore +function partial_from_mapped_result_FromMappedResult(R, options) { + return partial_from_mapped_result_FromProperties(R.properties, options); +} +// prettier-ignore +function PartialFromMappedResult(R, options) { + const P = partial_from_mapped_result_FromMappedResult(R, options); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/partial/partial.mjs + + + + + + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function partial_FromComputed(target, parameters) { + return Computed('Partial', [Computed(target, parameters)]); +} +// prettier-ignore +function partial_FromRef($ref) { + return Computed('Partial', [Ref($ref)]); +} +// prettier-ignore +function partial_FromProperties(properties) { + const partialProperties = {}; + for (const K of globalThis.Object.getOwnPropertyNames(properties)) + partialProperties[K] = Optional(properties[K]); + return partialProperties; +} +// prettier-ignore +function partial_FromObject(T) { + const options = Discard(T, [TransformKind, '$id', 'required', 'properties']); + const properties = partial_FromProperties(T['properties']); + return object_Object(properties, options); +} +// prettier-ignore +function partial_FromRest(types) { + return types.map(type => PartialResolve(type)); +} +// ------------------------------------------------------------------ +// PartialResolve +// ------------------------------------------------------------------ +// prettier-ignore +function PartialResolve(type) { + return (IsComputed(type) ? partial_FromComputed(type.target, type.parameters) : + IsRef(type) ? partial_FromRef(type.$ref) : + IsIntersect(type) ? Intersect(partial_FromRest(type.allOf)) : + IsUnion(type) ? Union(partial_FromRest(type.anyOf)) : + kind_IsObject(type) ? partial_FromObject(type) : + object_Object({})); +} +/** `[Json]` Constructs a type where all properties are optional */ +function Partial(type, options) { + if (IsMappedResult(type)) { + return PartialFromMappedResult(type, options); + } + else { + // special: mapping types require overridable options + return CreateType({ ...PartialResolve(type), ...options }); + } +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/record/record.mjs + + + + + + + + + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// RecordCreateFromPattern +// ------------------------------------------------------------------ +// prettier-ignore +function RecordCreateFromPattern(pattern, T, options) { + return CreateType({ + [Kind]: 'Record', + type: 'object', + patternProperties: { [pattern]: T } + }, options); +} +// ------------------------------------------------------------------ +// RecordCreateFromKeys +// ------------------------------------------------------------------ +// prettier-ignore +function RecordCreateFromKeys(K, T, options) { + const Acc = {}; + for (const K2 of K) + Acc[K2] = T; + return object_Object(Acc, { ...options, [symbols_Hint]: 'Record' }); +} +// prettier-ignore +function FromTemplateLiteralKey(K, T, options) { + return (IsTemplateLiteralFinite(K) + ? RecordCreateFromKeys(IndexPropertyKeys(K), T, options) + : RecordCreateFromPattern(K.pattern, T, options)); +} +// prettier-ignore +function FromUnionKey(K, T, options) { + return RecordCreateFromKeys(IndexPropertyKeys(Union(K)), T, options); +} +// prettier-ignore +function FromLiteralKey(K, T, options) { + return RecordCreateFromKeys([K.toString()], T, options); +} +// prettier-ignore +function FromRegExpKey(K, T, options) { + return RecordCreateFromPattern(K.source, T, options); +} +// prettier-ignore +function FromStringKey(K, T, options) { + const pattern = value_IsUndefined(K.pattern) ? PatternStringExact : K.pattern; + return RecordCreateFromPattern(pattern, T, options); +} +// prettier-ignore +function FromAnyKey(K, T, options) { + return RecordCreateFromPattern(PatternStringExact, T, options); +} +// prettier-ignore +function FromNeverKey(K, T, options) { + return RecordCreateFromPattern(PatternNeverExact, T, options); +} +// prettier-ignore +function FromIntegerKey(_, T, options) { + return RecordCreateFromPattern(PatternNumberExact, T, options); +} +// prettier-ignore +function FromNumberKey(_, T, options) { + return RecordCreateFromPattern(PatternNumberExact, T, options); +} +// ------------------------------------------------------------------ +// TRecordOrObject +// ------------------------------------------------------------------ +/** `[Json]` Creates a Record type */ +function Record(key, type, options = {}) { + // prettier-ignore + return (IsRef(type) ? Computed('Record', [key, type]) : + IsRef(key) ? Computed('Record', [key, type]) : + IsUnion(key) ? FromUnionKey(key.anyOf, type, options) : + IsTemplateLiteral(key) ? FromTemplateLiteralKey(key, type, options) : + IsLiteral(key) ? FromLiteralKey(key.const, type, options) : + kind_IsInteger(key) ? FromIntegerKey(key, type, options) : + kind_IsNumber(key) ? FromNumberKey(key, type, options) : + kind_IsRegExp(key) ? FromRegExpKey(key, type, options) : + kind_IsString(key) ? FromStringKey(key, type, options) : + IsAny(key) ? FromAnyKey(key, type, options) : + IsNever(key) ? FromNeverKey(key, type, options) : + Never(options)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs + + +// prettier-ignore +function required_from_mapped_result_FromProperties(P, options) { + const Acc = {}; + for (const K2 of globalThis.Object.getOwnPropertyNames(P)) + Acc[K2] = Required(P[K2], options); + return Acc; +} +// prettier-ignore +function required_from_mapped_result_FromMappedResult(R, options) { + return required_from_mapped_result_FromProperties(R.properties, options); +} +// prettier-ignore +function RequiredFromMappedResult(R, options) { + const P = required_from_mapped_result_FromMappedResult(R, options); + return MappedResult(P); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/required/required.mjs + + + + + + + + + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function required_FromComputed(target, parameters) { + return Computed('Required', [Computed(target, parameters)]); +} +// prettier-ignore +function required_FromRef($ref) { + return Computed('Required', [Ref($ref)]); +} +// prettier-ignore +function required_FromProperties(properties) { + const requiredProperties = {}; + for (const K of globalThis.Object.getOwnPropertyNames(properties)) + requiredProperties[K] = Discard(properties[K], [OptionalKind]); + return requiredProperties; +} +// prettier-ignore +function required_FromObject(type) { + const options = Discard(type, [TransformKind, '$id', 'required', 'properties']); + const properties = required_FromProperties(type['properties']); + return object_Object(properties, options); +} +// prettier-ignore +function required_FromRest(types) { + return types.map(type => RequiredResolve(type)); +} +// ------------------------------------------------------------------ +// RequiredResolve +// ------------------------------------------------------------------ +// prettier-ignore +function RequiredResolve(type) { + return (IsComputed(type) ? required_FromComputed(type.target, type.parameters) : + IsRef(type) ? required_FromRef(type.$ref) : + IsIntersect(type) ? Intersect(required_FromRest(type.allOf)) : + IsUnion(type) ? Union(required_FromRest(type.anyOf)) : + kind_IsObject(type) ? required_FromObject(type) : + object_Object({})); +} +/** `[Json]` Constructs a type where all properties are required */ +function Required(type, options) { + if (IsMappedResult(type)) { + return RequiredFromMappedResult(type, options); + } + else { + // special: mapping types require overridable options + return CreateType({ ...RequiredResolve(type), ...options }); + } +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/module/compute.mjs + + + + + + + + + + + + + + + + + + + +// ------------------------------------------------------------------ +// KindGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function DerefParameters(moduleProperties, types) { + return types.map((type) => { + return IsRef(type) + ? Deref(moduleProperties, type.$ref) + : compute_FromType(moduleProperties, type); + }); +} +// prettier-ignore +function Deref(moduleProperties, ref) { + return (ref in moduleProperties + ? IsRef(moduleProperties[ref]) + ? Deref(moduleProperties, moduleProperties[ref].$ref) + : compute_FromType(moduleProperties, moduleProperties[ref]) + : Never()); +} +// prettier-ignore +function FromAwaited(parameters) { + return Awaited(parameters[0]); +} +// prettier-ignore +function FromIndex(parameters) { + return Index(parameters[0], parameters[1]); +} +// prettier-ignore +function FromKeyOf(parameters) { + return KeyOf(parameters[0]); +} +// prettier-ignore +function FromPartial(parameters) { + return Partial(parameters[0]); +} +// prettier-ignore +function FromOmit(parameters) { + return Omit(parameters[0], parameters[1]); +} +// prettier-ignore +function FromPick(parameters) { + return Pick(parameters[0], parameters[1]); +} +// prettier-ignore +function compute_FromRecord(parameters) { + return Record(parameters[0], parameters[1]); +} +// prettier-ignore +function FromRequired(parameters) { + return Required(parameters[0]); +} +// prettier-ignore +function compute_FromComputed(moduleProperties, target, parameters) { + const dereferenced = DerefParameters(moduleProperties, parameters); + return (target === 'Awaited' ? FromAwaited(dereferenced) : + target === 'Index' ? FromIndex(dereferenced) : + target === 'KeyOf' ? FromKeyOf(dereferenced) : + target === 'Partial' ? FromPartial(dereferenced) : + target === 'Omit' ? FromOmit(dereferenced) : + target === 'Pick' ? FromPick(dereferenced) : + target === 'Record' ? compute_FromRecord(dereferenced) : + target === 'Required' ? FromRequired(dereferenced) : + Never()); +} +function compute_FromObject(moduleProperties, properties) { + return object_Object(globalThis.Object.keys(properties).reduce((result, key) => { + return { ...result, [key]: compute_FromType(moduleProperties, properties[key]) }; + }, {})); +} +// prettier-ignore +function compute_FromConstructor(moduleProperties, parameters, instanceType) { + return Constructor(compute_FromRest(moduleProperties, parameters), compute_FromType(moduleProperties, instanceType)); +} +// prettier-ignore +function compute_FromFunction(moduleProperties, parameters, returnType) { + return function_Function(compute_FromRest(moduleProperties, parameters), compute_FromType(moduleProperties, returnType)); +} +function compute_FromTuple(moduleProperties, types) { + return Tuple(compute_FromRest(moduleProperties, types)); +} +function compute_FromIntersect(moduleProperties, types) { + return Intersect(compute_FromRest(moduleProperties, types)); +} +function compute_FromUnion(moduleProperties, types) { + return Union(compute_FromRest(moduleProperties, types)); +} +function compute_FromArray(moduleProperties, type) { + return array_Array(compute_FromType(moduleProperties, type)); +} +function compute_FromAsyncIterator(moduleProperties, type) { + return src_AsyncIterator(compute_FromType(moduleProperties, type)); +} +function compute_FromIterator(moduleProperties, type) { + return src_Iterator(compute_FromType(moduleProperties, type)); +} +function compute_FromRest(moduleProperties, types) { + return types.map((type) => compute_FromType(moduleProperties, type)); +} +// prettier-ignore +function compute_FromType(moduleProperties, type) { + return ( + // Note: The 'as never' is required due to excessive resolution of TIndex. In fact TIndex, TPick, TOmit and + // all need re-implementation to remove the PropertyKey[] selector. Reimplementation of these types should + // be a priority as there is a potential for the current inference to break on TS compiler changes. + IsComputed(type) ? CreateType(compute_FromComputed(moduleProperties, type.target, type.parameters)) : + kind_IsObject(type) ? CreateType(compute_FromObject(moduleProperties, type.properties), type) : + IsConstructor(type) ? CreateType(compute_FromConstructor(moduleProperties, type.parameters, type.returns), type) : + kind_IsFunction(type) ? CreateType(compute_FromFunction(moduleProperties, type.parameters, type.returns), type) : + IsTuple(type) ? CreateType(compute_FromTuple(moduleProperties, type.items || []), type) : + IsIntersect(type) ? CreateType(compute_FromIntersect(moduleProperties, type.allOf), type) : + IsUnion(type) ? CreateType(compute_FromUnion(moduleProperties, type.anyOf), type) : + kind_IsArray(type) ? CreateType(compute_FromArray(moduleProperties, type.items), type) : + kind_IsAsyncIterator(type) ? CreateType(compute_FromAsyncIterator(moduleProperties, type.items), type) : + kind_IsIterator(type) ? CreateType(compute_FromIterator(moduleProperties, type.items), type) : + type); +} +// prettier-ignore +function ComputeType(moduleProperties, key) { + return (key in moduleProperties + ? compute_FromType(moduleProperties, moduleProperties[key]) + : Never()); +} +// prettier-ignore +function ComputeModuleProperties(moduleProperties) { + return globalThis.Object.getOwnPropertyNames(moduleProperties).reduce((result, key) => { + return { ...result, [key]: ComputeType(moduleProperties, key) }; + }, {}); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/module/module.mjs + + +// ------------------------------------------------------------------ +// Module Infrastructure Types +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// Module +// ------------------------------------------------------------------ +// prettier-ignore +class TModule { + constructor($defs) { + const computed = ComputeModuleProperties($defs); + const identified = this.WithIdentifiers(computed); + this.$defs = identified; + } + /** `[Json]` Imports a Type by Key. */ + Import(key, options) { + return CreateType({ [Kind]: 'Import', $defs: this.$defs, $ref: key }, options); + } + // prettier-ignore + WithIdentifiers($defs) { + return globalThis.Object.getOwnPropertyNames($defs).reduce((result, key) => { + return { ...result, [key]: { ...$defs[key], $id: key } }; + }, {}); + } +} +/** `[Json]` Creates a Type Definition Module. */ +function Module(properties) { + return new TModule(properties); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/not/not.mjs + + +/** `[Json]` Creates a Not type */ +function Not(type, options) { + return CreateType({ [Kind]: 'Not', not: type }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.mjs + +/** `[JavaScript]` Extracts the Parameters from the given Function type */ +function Parameters(schema, options) { + return Tuple(schema.parameters, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs + + +/** `[Json]` Creates a Readonly and Optional property */ +function ReadonlyOptional(schema) { + return Readonly(Optional(schema)); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/clone/type.mjs + +/** Clones a Rest */ +function CloneRest(schemas) { + return schemas.map((schema) => CloneType(schema)); +} +/** Clones a Type */ +function CloneType(schema, options) { + return options === undefined ? Clone(schema) : Clone({ ...options, ...schema }); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.mjs + + + + +// Auto Tracked For Recursive Types without ID's +let Ordinal = 0; +/** `[Json]` Creates a Recursive type */ +function Recursive(callback, options = {}) { + if (value_IsUndefined(options.$id)) + options.$id = `T${Ordinal++}`; + const thisType = CloneType(callback({ [Kind]: 'This', $ref: `${options.$id}` })); + thisType.$id = options.$id; + // prettier-ignore + return CreateType({ [symbols_Hint]: 'Recursive', ...thisType }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.mjs + + + +/** `[JavaScript]` Creates a RegExp type */ +function regexp_RegExp(unresolved, options) { + const expr = value_IsString(unresolved) ? new globalThis.RegExp(unresolved) : unresolved; + return CreateType({ [Kind]: 'RegExp', type: 'RegExp', source: expr.source, flags: expr.flags }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/rest/rest.mjs +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function RestResolve(T) { + return (IsIntersect(T) ? T.allOf : + IsUnion(T) ? T.anyOf : + IsTuple(T) ? T.items ?? [] : + []); +} +/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */ +function Rest(T) { + return RestResolve(T); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.mjs + +/** `[JavaScript]` Extracts the ReturnType from the given Function type */ +function ReturnType(schema, options) { + return CreateType(schema.returns, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/transform/transform.mjs + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// TransformBuilders +// ------------------------------------------------------------------ +class TransformDecodeBuilder { + constructor(schema) { + this.schema = schema; + } + Decode(decode) { + return new TransformEncodeBuilder(this.schema, decode); + } +} +// prettier-ignore +class TransformEncodeBuilder { + constructor(schema, decode) { + this.schema = schema; + this.decode = decode; + } + EncodeTransform(encode, schema) { + const Encode = (value) => schema[TransformKind].Encode(encode(value)); + const Decode = (value) => this.decode(schema[TransformKind].Decode(value)); + const Codec = { Encode: Encode, Decode: Decode }; + return { ...schema, [TransformKind]: Codec }; + } + EncodeSchema(encode, schema) { + const Codec = { Decode: this.decode, Encode: encode }; + return { ...schema, [TransformKind]: Codec }; + } + Encode(encode) { + return (IsTransform(this.schema) ? this.EncodeTransform(encode, this.schema) : this.EncodeSchema(encode, this.schema)); + } +} +/** `[Json]` Creates a Transform type */ +function Transform(schema) { + return new TransformDecodeBuilder(schema); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs + + +/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */ +function Unsafe(options = {}) { + return CreateType({ [Kind]: options[Kind] ?? 'Unsafe' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/void/void.mjs + + +/** `[JavaScript]` Creates a Void type */ +function Void(options) { + return CreateType({ [Kind]: 'Void', type: 'void' }, options); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/type/type.mjs +// ------------------------------------------------------------------ +// Type: Module +// ------------------------------------------------------------------ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/type/index.mjs +// ------------------------------------------------------------------ +// JsonTypeBuilder +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// JavaScriptTypeBuilder +// ------------------------------------------------------------------ + + +/** JavaScript Type Builder with Static Resolution for TypeScript */ +const Type = type_type_namespaceObject; + + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/utils/body.js +// src/utils/body.ts + +var parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => { + const { all = false, dot = false } = options; + const headers = request instanceof HonoRequest ? request.raw.headers : request.headers; + const contentType = headers.get("Content-Type"); + if (contentType?.startsWith("multipart/form-data") || contentType?.startsWith("application/x-www-form-urlencoded")) { + return parseFormData(request, { all, dot }); + } + return {}; +}; +async function parseFormData(request, options) { + const formData = await request.formData(); + if (formData) { + return convertFormDataToBodyData(formData, options); + } + return {}; +} +function convertFormDataToBodyData(formData, options) { + const form = /* @__PURE__ */ Object.create(null); + formData.forEach((value, key) => { + const shouldParseAllValues = options.all || key.endsWith("[]"); + if (!shouldParseAllValues) { + form[key] = value; + } else { + handleParsingAllValues(form, key, value); + } + }); + if (options.dot) { + Object.entries(form).forEach(([key, value]) => { + const shouldParseDotValues = key.includes("."); + if (shouldParseDotValues) { + handleParsingNestedValues(form, key, value); + delete form[key]; + } + }); + } + return form; +} +var handleParsingAllValues = (form, key, value) => { + if (form[key] !== void 0) { + if (Array.isArray(form[key])) { + ; + form[key].push(value); + } else { + form[key] = [form[key], value]; + } + } else { + form[key] = value; + } +}; +var handleParsingNestedValues = (form, key, value) => { + let nestedForm = form; + const keys = key.split("."); + keys.forEach((key2, index) => { + if (index === keys.length - 1) { + nestedForm[key2] = value; + } else { + if (!nestedForm[key2] || typeof nestedForm[key2] !== "object" || Array.isArray(nestedForm[key2]) || nestedForm[key2] instanceof File) { + nestedForm[key2] = /* @__PURE__ */ Object.create(null); + } + nestedForm = nestedForm[key2]; + } + }); +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/utils/url.js +// src/utils/url.ts +var splitPath = (path) => { + const paths = path.split("/"); + if (paths[0] === "") { + paths.shift(); + } + return paths; +}; +var splitRoutingPath = (routePath) => { + const { groups, path } = extractGroupsFromPath(routePath); + const paths = splitPath(path); + return replaceGroupMarks(paths, groups); +}; +var extractGroupsFromPath = (path) => { + const groups = []; + path = path.replace(/\{[^}]+\}/g, (match, index) => { + const mark = `@${index}`; + groups.push([mark, match]); + return mark; + }); + return { groups, path }; +}; +var replaceGroupMarks = (paths, groups) => { + for (let i = groups.length - 1; i >= 0; i--) { + const [mark] = groups[i]; + for (let j = paths.length - 1; j >= 0; j--) { + if (paths[j].includes(mark)) { + paths[j] = paths[j].replace(mark, groups[i][1]); + break; + } + } + } + return paths; +}; +var patternCache = {}; +var getPattern = (label) => { + if (label === "*") { + return "*"; + } + const match = label.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/); + if (match) { + if (!patternCache[label]) { + if (match[2]) { + patternCache[label] = [label, match[1], new RegExp("^" + match[2] + "$")]; + } else { + patternCache[label] = [label, match[1], true]; + } + } + return patternCache[label]; + } + return null; +}; +var tryDecode = (str, decoder) => { + try { + return decoder(str); + } catch { + return str.replace(/(?:%[0-9A-Fa-f]{2})+/g, (match) => { + try { + return decoder(match); + } catch { + return match; + } + }); + } +}; +var tryDecodeURI = (str) => tryDecode(str, decodeURI); +var getPath = (request) => { + const url = request.url; + const start = url.indexOf("/", 8); + let i = start; + for (; i < url.length; i++) { + const charCode = url.charCodeAt(i); + if (charCode === 37) { + const queryIndex = url.indexOf("?", i); + const path = url.slice(start, queryIndex === -1 ? void 0 : queryIndex); + return tryDecodeURI(path.includes("%25") ? path.replace(/%25/g, "%2525") : path); + } else if (charCode === 63) { + break; + } + } + return url.slice(start, i); +}; +var getQueryStrings = (url) => { + const queryIndex = url.indexOf("?", 8); + return queryIndex === -1 ? "" : "?" + url.slice(queryIndex + 1); +}; +var getPathNoStrict = (request) => { + const result = getPath(request); + return result.length > 1 && result[result.length - 1] === "/" ? result.slice(0, -1) : result; +}; +var mergePath = (...paths) => { + let p = ""; + let endsWithSlash = false; + for (let path of paths) { + if (p[p.length - 1] === "/") { + p = p.slice(0, -1); + endsWithSlash = true; + } + if (path[0] !== "/") { + path = `/${path}`; + } + if (path === "/" && endsWithSlash) { + p = `${p}/`; + } else if (path !== "/") { + p = `${p}${path}`; + } + if (path === "/" && p === "") { + p = "/"; + } + } + return p; +}; +var checkOptionalParameter = (path) => { + if (!path.match(/\:.+\?$/)) { + return null; + } + const segments = path.split("/"); + const results = []; + let basePath = ""; + segments.forEach((segment) => { + if (segment !== "" && !/\:/.test(segment)) { + basePath += "/" + segment; + } else if (/\:/.test(segment)) { + if (/\?/.test(segment)) { + if (results.length === 0 && basePath === "") { + results.push("/"); + } else { + results.push(basePath); + } + const optionalSegment = segment.replace("?", ""); + basePath += "/" + optionalSegment; + results.push(basePath); + } else { + basePath += "/" + segment; + } + } + }); + return results.filter((v, i, a) => a.indexOf(v) === i); +}; +var _decodeURI = (value) => { + if (!/[%+]/.test(value)) { + return value; + } + if (value.indexOf("+") !== -1) { + value = value.replace(/\+/g, " "); + } + return value.indexOf("%") !== -1 ? decodeURIComponent_(value) : value; +}; +var _getQueryParam = (url, key, multiple) => { + let encoded; + if (!multiple && key && !/[%+]/.test(key)) { + let keyIndex2 = url.indexOf(`?${key}`, 8); + if (keyIndex2 === -1) { + keyIndex2 = url.indexOf(`&${key}`, 8); + } + while (keyIndex2 !== -1) { + const trailingKeyCode = url.charCodeAt(keyIndex2 + key.length + 1); + if (trailingKeyCode === 61) { + const valueIndex = keyIndex2 + key.length + 2; + const endIndex = url.indexOf("&", valueIndex); + return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex)); + } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) { + return ""; + } + keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1); + } + encoded = /[%+]/.test(url); + if (!encoded) { + return void 0; + } + } + const results = {}; + encoded ??= /[%+]/.test(url); + let keyIndex = url.indexOf("?", 8); + while (keyIndex !== -1) { + const nextKeyIndex = url.indexOf("&", keyIndex + 1); + let valueIndex = url.indexOf("=", keyIndex); + if (valueIndex > nextKeyIndex && nextKeyIndex !== -1) { + valueIndex = -1; + } + let name = url.slice( + keyIndex + 1, + valueIndex === -1 ? nextKeyIndex === -1 ? void 0 : nextKeyIndex : valueIndex + ); + if (encoded) { + name = _decodeURI(name); + } + keyIndex = nextKeyIndex; + if (name === "") { + continue; + } + let value; + if (valueIndex === -1) { + value = ""; + } else { + value = url.slice(valueIndex + 1, nextKeyIndex === -1 ? void 0 : nextKeyIndex); + if (encoded) { + value = _decodeURI(value); + } + } + if (multiple) { + if (!(results[name] && Array.isArray(results[name]))) { + results[name] = []; + } + ; + results[name].push(value); + } else { + results[name] ??= value; + } + } + return key ? results[key] : results; +}; +var getQueryParam = _getQueryParam; +var getQueryParams = (url, key) => { + return _getQueryParam(url, key, true); +}; +var decodeURIComponent_ = decodeURIComponent; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/request.js +// src/request.ts + + +var tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_); +var HonoRequest = class { + raw; + #validatedData; + #matchResult; + routeIndex = 0; + path; + bodyCache = {}; + constructor(request, path = "/", matchResult = [[]]) { + this.raw = request; + this.path = path; + this.#matchResult = matchResult; + this.#validatedData = {}; + } + param(key) { + return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams(); + } + #getDecodedParam(key) { + const paramKey = this.#matchResult[0][this.routeIndex][1][key]; + const param = this.#getParamValue(paramKey); + return param ? /\%/.test(param) ? tryDecodeURIComponent(param) : param : void 0; + } + #getAllDecodedParams() { + const decoded = {}; + const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]); + for (const key of keys) { + const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]); + if (value && typeof value === "string") { + decoded[key] = /\%/.test(value) ? tryDecodeURIComponent(value) : value; + } + } + return decoded; + } + #getParamValue(paramKey) { + return this.#matchResult[1] ? this.#matchResult[1][paramKey] : paramKey; + } + query(key) { + return getQueryParam(this.url, key); + } + queries(key) { + return getQueryParams(this.url, key); + } + header(name) { + if (name) { + return this.raw.headers.get(name.toLowerCase()) ?? void 0; + } + const headerData = {}; + this.raw.headers.forEach((value, key) => { + headerData[key] = value; + }); + return headerData; + } + async parseBody(options) { + return this.bodyCache.parsedBody ??= await parseBody(this, options); + } + #cachedBody = (key) => { + const { bodyCache, raw } = this; + const cachedBody = bodyCache[key]; + if (cachedBody) { + return cachedBody; + } + const anyCachedKey = Object.keys(bodyCache)[0]; + if (anyCachedKey) { + return bodyCache[anyCachedKey].then((body) => { + if (anyCachedKey === "json") { + body = JSON.stringify(body); + } + return new Response(body)[key](); + }); + } + return bodyCache[key] = raw[key](); + }; + json() { + return this.#cachedBody("json"); + } + text() { + return this.#cachedBody("text"); + } + arrayBuffer() { + return this.#cachedBody("arrayBuffer"); + } + blob() { + return this.#cachedBody("blob"); + } + formData() { + return this.#cachedBody("formData"); + } + addValidatedData(target, data) { + this.#validatedData[target] = data; + } + valid(target) { + return this.#validatedData[target]; + } + get url() { + return this.raw.url; + } + get method() { + return this.raw.method; + } + get matchedRoutes() { + return this.#matchResult[0].map(([[, route]]) => route); + } + get routePath() { + return this.#matchResult[0].map(([[, route]]) => route)[this.routeIndex].path; + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/utils/html.js +// src/utils/html.ts +var HtmlEscapedCallbackPhase = { + Stringify: 1, + BeforeStream: 2, + Stream: 3 +}; +var raw = (value, callbacks) => { + const escapedString = new String(value); + escapedString.isEscaped = true; + escapedString.callbacks = callbacks; + return escapedString; +}; +var escapeRe = /[&<>'"]/; +var stringBufferToString = async (buffer, callbacks) => { + let str = ""; + callbacks ||= []; + const resolvedBuffer = await Promise.all(buffer); + for (let i = resolvedBuffer.length - 1; ; i--) { + str += resolvedBuffer[i]; + i--; + if (i < 0) { + break; + } + let r = resolvedBuffer[i]; + if (typeof r === "object") { + callbacks.push(...r.callbacks || []); + } + const isEscaped = r.isEscaped; + r = await (typeof r === "object" ? r.toString() : r); + if (typeof r === "object") { + callbacks.push(...r.callbacks || []); + } + if (r.isEscaped ?? isEscaped) { + str += r; + } else { + const buf = [str]; + escapeToBuffer(r, buf); + str = buf[0]; + } + } + return raw(str, callbacks); +}; +var escapeToBuffer = (str, buffer) => { + const match = str.search(escapeRe); + if (match === -1) { + buffer[0] += str; + return; + } + let escape; + let index; + let lastIndex = 0; + for (index = match; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escape = """; + break; + case 39: + escape = "'"; + break; + case 38: + escape = "&"; + break; + case 60: + escape = "<"; + break; + case 62: + escape = ">"; + break; + default: + continue; + } + buffer[0] += str.substring(lastIndex, index) + escape; + lastIndex = index + 1; + } + buffer[0] += str.substring(lastIndex, index); +}; +var resolveCallbackSync = (str) => { + const callbacks = str.callbacks; + if (!callbacks?.length) { + return str; + } + const buffer = [str]; + const context = {}; + callbacks.forEach((c) => c({ phase: HtmlEscapedCallbackPhase.Stringify, buffer, context })); + return buffer[0]; +}; +var resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => { + if (typeof str === "object" && !(str instanceof String)) { + if (!(str instanceof Promise)) { + str = str.toString(); + } + if (str instanceof Promise) { + str = await str; + } + } + const callbacks = str.callbacks; + if (!callbacks?.length) { + return Promise.resolve(str); + } + if (buffer) { + buffer[0] += str; + } else { + buffer = [str]; + } + const resStr = Promise.all(callbacks.map((c) => c({ phase, buffer, context }))).then( + (res) => Promise.all( + res.filter(Boolean).map((str2) => resolveCallback(str2, phase, false, context, buffer)) + ).then(() => buffer[0]) + ); + if (preserveCallbacks) { + return raw(await resStr, callbacks); + } else { + return resStr; + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/context.js +// src/context.ts + + +var TEXT_PLAIN = "text/plain; charset=UTF-8"; +var setHeaders = (headers, map = {}) => { + for (const key of Object.keys(map)) { + headers.set(key, map[key]); + } + return headers; +}; +var Context = class { + #rawRequest; + #req; + env = {}; + #var; + finalized = false; + error; + #status = 200; + #executionCtx; + #headers; + #preparedHeaders; + #res; + #isFresh = true; + #layout; + #renderer; + #notFoundHandler; + #matchResult; + #path; + constructor(req, options) { + this.#rawRequest = req; + if (options) { + this.#executionCtx = options.executionCtx; + this.env = options.env; + this.#notFoundHandler = options.notFoundHandler; + this.#path = options.path; + this.#matchResult = options.matchResult; + } + } + get req() { + this.#req ??= new HonoRequest(this.#rawRequest, this.#path, this.#matchResult); + return this.#req; + } + get event() { + if (this.#executionCtx && "respondWith" in this.#executionCtx) { + return this.#executionCtx; + } else { + throw Error("This context has no FetchEvent"); + } + } + get executionCtx() { + if (this.#executionCtx) { + return this.#executionCtx; + } else { + throw Error("This context has no ExecutionContext"); + } + } + get res() { + this.#isFresh = false; + return this.#res ||= new Response("404 Not Found", { status: 404 }); + } + set res(_res) { + this.#isFresh = false; + if (this.#res && _res) { + try { + for (const [k, v] of this.#res.headers.entries()) { + if (k === "content-type") { + continue; + } + if (k === "set-cookie") { + const cookies = this.#res.headers.getSetCookie(); + _res.headers.delete("set-cookie"); + for (const cookie of cookies) { + _res.headers.append("set-cookie", cookie); + } + } else { + _res.headers.set(k, v); + } + } + } catch (e) { + if (e instanceof TypeError && e.message.includes("immutable")) { + this.res = new Response(_res.body, { + headers: _res.headers, + status: _res.status + }); + return; + } else { + throw e; + } + } + } + this.#res = _res; + this.finalized = true; + } + render = (...args) => { + this.#renderer ??= (content) => this.html(content); + return this.#renderer(...args); + }; + setLayout = (layout) => this.#layout = layout; + getLayout = () => this.#layout; + setRenderer = (renderer) => { + this.#renderer = renderer; + }; + header = (name, value, options) => { + if (value === void 0) { + if (this.#headers) { + this.#headers.delete(name); + } else if (this.#preparedHeaders) { + delete this.#preparedHeaders[name.toLocaleLowerCase()]; + } + if (this.finalized) { + this.res.headers.delete(name); + } + return; + } + if (options?.append) { + if (!this.#headers) { + this.#isFresh = false; + this.#headers = new Headers(this.#preparedHeaders); + this.#preparedHeaders = {}; + } + this.#headers.append(name, value); + } else { + if (this.#headers) { + this.#headers.set(name, value); + } else { + this.#preparedHeaders ??= {}; + this.#preparedHeaders[name.toLowerCase()] = value; + } + } + if (this.finalized) { + if (options?.append) { + this.res.headers.append(name, value); + } else { + this.res.headers.set(name, value); + } + } + }; + status = (status) => { + this.#isFresh = false; + this.#status = status; + }; + set = (key, value) => { + this.#var ??= /* @__PURE__ */ new Map(); + this.#var.set(key, value); + }; + get = (key) => { + return this.#var ? this.#var.get(key) : void 0; + }; + get var() { + if (!this.#var) { + return {}; + } + return Object.fromEntries(this.#var); + } + #newResponse(data, arg, headers) { + if (this.#isFresh && !headers && !arg && this.#status === 200) { + return new Response(data, { + headers: this.#preparedHeaders + }); + } + if (arg && typeof arg !== "number") { + const header = new Headers(arg.headers); + if (this.#headers) { + this.#headers.forEach((v, k) => { + if (k === "set-cookie") { + header.append(k, v); + } else { + header.set(k, v); + } + }); + } + const headers2 = setHeaders(header, this.#preparedHeaders); + return new Response(data, { + headers: headers2, + status: arg.status ?? this.#status + }); + } + const status = typeof arg === "number" ? arg : this.#status; + this.#preparedHeaders ??= {}; + this.#headers ??= new Headers(); + setHeaders(this.#headers, this.#preparedHeaders); + if (this.#res) { + this.#res.headers.forEach((v, k) => { + if (k === "set-cookie") { + this.#headers?.append(k, v); + } else { + this.#headers?.set(k, v); + } + }); + setHeaders(this.#headers, this.#preparedHeaders); + } + headers ??= {}; + for (const [k, v] of Object.entries(headers)) { + if (typeof v === "string") { + this.#headers.set(k, v); + } else { + this.#headers.delete(k); + for (const v2 of v) { + this.#headers.append(k, v2); + } + } + } + return new Response(data, { + status, + headers: this.#headers + }); + } + newResponse = (...args) => this.#newResponse(...args); + body = (data, arg, headers) => { + return typeof arg === "number" ? this.#newResponse(data, arg, headers) : this.#newResponse(data, arg); + }; + text = (text, arg, headers) => { + if (!this.#preparedHeaders) { + if (this.#isFresh && !headers && !arg) { + return new Response(text); + } + this.#preparedHeaders = {}; + } + this.#preparedHeaders["content-type"] = TEXT_PLAIN; + return typeof arg === "number" ? this.#newResponse(text, arg, headers) : this.#newResponse(text, arg); + }; + json = (object, arg, headers) => { + const body = JSON.stringify(object); + this.#preparedHeaders ??= {}; + this.#preparedHeaders["content-type"] = "application/json; charset=UTF-8"; + return typeof arg === "number" ? this.#newResponse(body, arg, headers) : this.#newResponse(body, arg); + }; + html = (html, arg, headers) => { + this.#preparedHeaders ??= {}; + this.#preparedHeaders["content-type"] = "text/html; charset=UTF-8"; + if (typeof html === "object") { + return resolveCallback(html, HtmlEscapedCallbackPhase.Stringify, false, {}).then((html2) => { + return typeof arg === "number" ? this.#newResponse(html2, arg, headers) : this.#newResponse(html2, arg); + }); + } + return typeof arg === "number" ? this.#newResponse(html, arg, headers) : this.#newResponse(html, arg); + }; + redirect = (location, status) => { + this.#headers ??= new Headers(); + this.#headers.set("Location", String(location)); + return this.newResponse(null, status ?? 302); + }; + notFound = () => { + this.#notFoundHandler ??= () => new Response(); + return this.#notFoundHandler(this); + }; +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/compose.js +// src/compose.ts + +var compose = (middleware, onError, onNotFound) => { + return (context, next) => { + let index = -1; + const isContext = context instanceof Context; + return dispatch(0); + async function dispatch(i) { + if (i <= index) { + throw new Error("next() called multiple times"); + } + index = i; + let res; + let isError = false; + let handler; + if (middleware[i]) { + handler = middleware[i][0][0]; + if (isContext) { + context.req.routeIndex = i; + } + } else { + handler = i === middleware.length && next || void 0; + } + if (!handler) { + if (isContext && context.finalized === false && onNotFound) { + res = await onNotFound(context); + } + } else { + try { + res = await handler(context, () => { + return dispatch(i + 1); + }); + } catch (err) { + if (err instanceof Error && isContext && onError) { + context.error = err; + res = await onError(err, context); + isError = true; + } else { + throw err; + } + } + } + if (res && (context.finalized === false || isError)) { + context.res = res; + } + return context; + } + }; +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router.js +// src/router.ts +var METHOD_NAME_ALL = "ALL"; +var METHOD_NAME_ALL_LOWERCASE = "all"; +var METHODS = ["get", "post", "put", "delete", "options", "patch"]; +var MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is already built."; +var UnsupportedPathError = class extends Error { +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/hono-base.js +// src/hono-base.ts + + + + +var COMPOSED_HANDLER = Symbol("composedHandler"); +var notFoundHandler = (c) => { + return c.text("404 Not Found", 404); +}; +var errorHandler = (err, c) => { + if ("getResponse" in err) { + return err.getResponse(); + } + console.error(err); + return c.text("Internal Server Error", 500); +}; +var hono_base_Hono = class { + get; + post; + put; + delete; + options; + patch; + all; + on; + use; + router; + getPath; + _basePath = "/"; + #path = "/"; + routes = []; + constructor(options = {}) { + const allMethods = [...METHODS, METHOD_NAME_ALL_LOWERCASE]; + allMethods.forEach((method) => { + this[method] = (args1, ...args) => { + if (typeof args1 === "string") { + this.#path = args1; + } else { + this.#addRoute(method, this.#path, args1); + } + args.forEach((handler) => { + this.#addRoute(method, this.#path, handler); + }); + return this; + }; + }); + this.on = (method, path, ...handlers) => { + for (const p of [path].flat()) { + this.#path = p; + for (const m of [method].flat()) { + handlers.map((handler) => { + this.#addRoute(m.toUpperCase(), this.#path, handler); + }); + } + } + return this; + }; + this.use = (arg1, ...handlers) => { + if (typeof arg1 === "string") { + this.#path = arg1; + } else { + this.#path = "*"; + handlers.unshift(arg1); + } + handlers.forEach((handler) => { + this.#addRoute(METHOD_NAME_ALL, this.#path, handler); + }); + return this; + }; + const strict = options.strict ?? true; + delete options.strict; + Object.assign(this, options); + this.getPath = strict ? options.getPath ?? getPath : getPathNoStrict; + } + #clone() { + const clone = new hono_base_Hono({ + router: this.router, + getPath: this.getPath + }); + clone.routes = this.routes; + return clone; + } + #notFoundHandler = notFoundHandler; + errorHandler = errorHandler; + route(path, app) { + const subApp = this.basePath(path); + app.routes.map((r) => { + let handler; + if (app.errorHandler === errorHandler) { + handler = r.handler; + } else { + handler = async (c, next) => (await compose([], app.errorHandler)(c, () => r.handler(c, next))).res; + handler[COMPOSED_HANDLER] = r.handler; + } + subApp.#addRoute(r.method, r.path, handler); + }); + return this; + } + basePath(path) { + const subApp = this.#clone(); + subApp._basePath = mergePath(this._basePath, path); + return subApp; + } + onError = (handler) => { + this.errorHandler = handler; + return this; + }; + notFound = (handler) => { + this.#notFoundHandler = handler; + return this; + }; + mount(path, applicationHandler, options) { + let replaceRequest; + let optionHandler; + if (options) { + if (typeof options === "function") { + optionHandler = options; + } else { + optionHandler = options.optionHandler; + replaceRequest = options.replaceRequest; + } + } + const getOptions = optionHandler ? (c) => { + const options2 = optionHandler(c); + return Array.isArray(options2) ? options2 : [options2]; + } : (c) => { + let executionContext = void 0; + try { + executionContext = c.executionCtx; + } catch { + } + return [c.env, executionContext]; + }; + replaceRequest ||= (() => { + const mergedPath = mergePath(this._basePath, path); + const pathPrefixLength = mergedPath === "/" ? 0 : mergedPath.length; + return (request) => { + const url = new URL(request.url); + url.pathname = url.pathname.slice(pathPrefixLength) || "/"; + return new Request(url, request); + }; + })(); + const handler = async (c, next) => { + const res = await applicationHandler(replaceRequest(c.req.raw), ...getOptions(c)); + if (res) { + return res; + } + await next(); + }; + this.#addRoute(METHOD_NAME_ALL, mergePath(path, "*"), handler); + return this; + } + #addRoute(method, path, handler) { + method = method.toUpperCase(); + path = mergePath(this._basePath, path); + const r = { path, method, handler }; + this.router.add(method, path, [handler, r]); + this.routes.push(r); + } + #handleError(err, c) { + if (err instanceof Error) { + return this.errorHandler(err, c); + } + throw err; + } + #dispatch(request, executionCtx, env, method) { + if (method === "HEAD") { + return (async () => new Response(null, await this.#dispatch(request, executionCtx, env, "GET")))(); + } + const path = this.getPath(request, { env }); + const matchResult = this.router.match(method, path); + const c = new Context(request, { + path, + matchResult, + env, + executionCtx, + notFoundHandler: this.#notFoundHandler + }); + if (matchResult[0].length === 1) { + let res; + try { + res = matchResult[0][0][0][0](c, async () => { + c.res = await this.#notFoundHandler(c); + }); + } catch (err) { + return this.#handleError(err, c); + } + return res instanceof Promise ? res.then( + (resolved) => resolved || (c.finalized ? c.res : this.#notFoundHandler(c)) + ).catch((err) => this.#handleError(err, c)) : res ?? this.#notFoundHandler(c); + } + const composed = compose(matchResult[0], this.errorHandler, this.#notFoundHandler); + return (async () => { + try { + const context = await composed(c); + if (!context.finalized) { + throw new Error( + "Context is not finalized. Did you forget to return a Response object or `await next()`?" + ); + } + return context.res; + } catch (err) { + return this.#handleError(err, c); + } + })(); + } + fetch = (request, ...rest) => { + return this.#dispatch(request, rest[1], rest[0], request.method); + }; + request = (input, requestInit, Env, executionCtx) => { + if (input instanceof Request) { + return this.fetch(requestInit ? new Request(input, requestInit) : input, Env, executionCtx); + } + input = input.toString(); + return this.fetch( + new Request( + /^https?:\/\//.test(input) ? input : `http://localhost${mergePath("/", input)}`, + requestInit + ), + Env, + executionCtx + ); + }; + fire = () => { + addEventListener("fetch", (event) => { + event.respondWith(this.#dispatch(event.request, event, void 0, event.request.method)); + }); + }; +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/node.js +// src/router/reg-exp-router/node.ts +var LABEL_REG_EXP_STR = "[^/]+"; +var ONLY_WILDCARD_REG_EXP_STR = ".*"; +var TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)"; +var PATH_ERROR = Symbol(); +var regExpMetaChars = new Set(".\\+*[^]$()"); +function compareKey(a, b) { + if (a.length === 1) { + return b.length === 1 ? a < b ? -1 : 1 : -1; + } + if (b.length === 1) { + return 1; + } + if (a === ONLY_WILDCARD_REG_EXP_STR || a === TAIL_WILDCARD_REG_EXP_STR) { + return 1; + } else if (b === ONLY_WILDCARD_REG_EXP_STR || b === TAIL_WILDCARD_REG_EXP_STR) { + return -1; + } + if (a === LABEL_REG_EXP_STR) { + return 1; + } else if (b === LABEL_REG_EXP_STR) { + return -1; + } + return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length; +} +var Node = class { + #index; + #varIndex; + #children = /* @__PURE__ */ Object.create(null); + insert(tokens, index, paramMap, context, pathErrorCheckOnly) { + if (tokens.length === 0) { + if (this.#index !== void 0) { + throw PATH_ERROR; + } + if (pathErrorCheckOnly) { + return; + } + this.#index = index; + return; + } + const [token, ...restTokens] = tokens; + const pattern = token === "*" ? restTokens.length === 0 ? ["", "", ONLY_WILDCARD_REG_EXP_STR] : ["", "", LABEL_REG_EXP_STR] : token === "/*" ? ["", "", TAIL_WILDCARD_REG_EXP_STR] : token.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/); + let node; + if (pattern) { + const name = pattern[1]; + let regexpStr = pattern[2] || LABEL_REG_EXP_STR; + if (name && pattern[2]) { + regexpStr = regexpStr.replace(/^\((?!\?:)(?=[^)]+\)$)/, "(?:"); + if (/\((?!\?:)/.test(regexpStr)) { + throw PATH_ERROR; + } + } + node = this.#children[regexpStr]; + if (!node) { + if (Object.keys(this.#children).some( + (k) => k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR + )) { + throw PATH_ERROR; + } + if (pathErrorCheckOnly) { + return; + } + node = this.#children[regexpStr] = new Node(); + if (name !== "") { + node.#varIndex = context.varIndex++; + } + } + if (!pathErrorCheckOnly && name !== "") { + paramMap.push([name, node.#varIndex]); + } + } else { + node = this.#children[token]; + if (!node) { + if (Object.keys(this.#children).some( + (k) => k.length > 1 && k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR + )) { + throw PATH_ERROR; + } + if (pathErrorCheckOnly) { + return; + } + node = this.#children[token] = new Node(); + } + } + node.insert(restTokens, index, paramMap, context, pathErrorCheckOnly); + } + buildRegExpStr() { + const childKeys = Object.keys(this.#children).sort(compareKey); + const strList = childKeys.map((k) => { + const c = this.#children[k]; + return (typeof c.#varIndex === "number" ? `(${k})@${c.#varIndex}` : regExpMetaChars.has(k) ? `\\${k}` : k) + c.buildRegExpStr(); + }); + if (typeof this.#index === "number") { + strList.unshift(`#${this.#index}`); + } + if (strList.length === 0) { + return ""; + } + if (strList.length === 1) { + return strList[0]; + } + return "(?:" + strList.join("|") + ")"; + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/trie.js +// src/router/reg-exp-router/trie.ts + +var Trie = class { + #context = { varIndex: 0 }; + #root = new Node(); + insert(path, index, pathErrorCheckOnly) { + const paramAssoc = []; + const groups = []; + for (let i = 0; ; ) { + let replaced = false; + path = path.replace(/\{[^}]+\}/g, (m) => { + const mark = `@\\${i}`; + groups[i] = [mark, m]; + i++; + replaced = true; + return mark; + }); + if (!replaced) { + break; + } + } + const tokens = path.match(/(?::[^\/]+)|(?:\/\*$)|./g) || []; + for (let i = groups.length - 1; i >= 0; i--) { + const [mark] = groups[i]; + for (let j = tokens.length - 1; j >= 0; j--) { + if (tokens[j].indexOf(mark) !== -1) { + tokens[j] = tokens[j].replace(mark, groups[i][1]); + break; + } + } + } + this.#root.insert(tokens, index, paramAssoc, this.#context, pathErrorCheckOnly); + return paramAssoc; + } + buildRegExp() { + let regexp = this.#root.buildRegExpStr(); + if (regexp === "") { + return [/^$/, [], []]; + } + let captureIndex = 0; + const indexReplacementMap = []; + const paramReplacementMap = []; + regexp = regexp.replace(/#(\d+)|@(\d+)|\.\*\$/g, (_, handlerIndex, paramIndex) => { + if (handlerIndex !== void 0) { + indexReplacementMap[++captureIndex] = Number(handlerIndex); + return "$()"; + } + if (paramIndex !== void 0) { + paramReplacementMap[Number(paramIndex)] = ++captureIndex; + return ""; + } + return ""; + }); + return [new RegExp(`^${regexp}`), indexReplacementMap, paramReplacementMap]; + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/router.js +// src/router/reg-exp-router/router.ts + + + + +var emptyParam = []; +var nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)]; +var wildcardRegExpCache = /* @__PURE__ */ Object.create(null); +function buildWildcardRegExp(path) { + return wildcardRegExpCache[path] ??= new RegExp( + path === "*" ? "" : `^${path.replace( + /\/\*$|([.\\+*[^\]$()])/g, + (_, metaChar) => metaChar ? `\\${metaChar}` : "(?:|/.*)" + )}$` + ); +} +function clearWildcardRegExpCache() { + wildcardRegExpCache = /* @__PURE__ */ Object.create(null); +} +function buildMatcherFromPreprocessedRoutes(routes) { + const trie = new Trie(); + const handlerData = []; + if (routes.length === 0) { + return nullMatcher; + } + const routesWithStaticPathFlag = routes.map( + (route) => [!/\*|\/:/.test(route[0]), ...route] + ).sort( + ([isStaticA, pathA], [isStaticB, pathB]) => isStaticA ? 1 : isStaticB ? -1 : pathA.length - pathB.length + ); + const staticMap = /* @__PURE__ */ Object.create(null); + for (let i = 0, j = -1, len = routesWithStaticPathFlag.length; i < len; i++) { + const [pathErrorCheckOnly, path, handlers] = routesWithStaticPathFlag[i]; + if (pathErrorCheckOnly) { + staticMap[path] = [handlers.map(([h]) => [h, /* @__PURE__ */ Object.create(null)]), emptyParam]; + } else { + j++; + } + let paramAssoc; + try { + paramAssoc = trie.insert(path, j, pathErrorCheckOnly); + } catch (e) { + throw e === PATH_ERROR ? new UnsupportedPathError(path) : e; + } + if (pathErrorCheckOnly) { + continue; + } + handlerData[j] = handlers.map(([h, paramCount]) => { + const paramIndexMap = /* @__PURE__ */ Object.create(null); + paramCount -= 1; + for (; paramCount >= 0; paramCount--) { + const [key, value] = paramAssoc[paramCount]; + paramIndexMap[key] = value; + } + return [h, paramIndexMap]; + }); + } + const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp(); + for (let i = 0, len = handlerData.length; i < len; i++) { + for (let j = 0, len2 = handlerData[i].length; j < len2; j++) { + const map = handlerData[i][j]?.[1]; + if (!map) { + continue; + } + const keys = Object.keys(map); + for (let k = 0, len3 = keys.length; k < len3; k++) { + map[keys[k]] = paramReplacementMap[map[keys[k]]]; + } + } + } + const handlerMap = []; + for (const i in indexReplacementMap) { + handlerMap[i] = handlerData[indexReplacementMap[i]]; + } + return [regexp, handlerMap, staticMap]; +} +function findMiddleware(middleware, path) { + if (!middleware) { + return void 0; + } + for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) { + if (buildWildcardRegExp(k).test(path)) { + return [...middleware[k]]; + } + } + return void 0; +} +var RegExpRouter = class { + name = "RegExpRouter"; + #middleware; + #routes; + constructor() { + this.#middleware = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) }; + this.#routes = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) }; + } + add(method, path, handler) { + const middleware = this.#middleware; + const routes = this.#routes; + if (!middleware || !routes) { + throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT); + } + if (!middleware[method]) { + ; + [middleware, routes].forEach((handlerMap) => { + handlerMap[method] = /* @__PURE__ */ Object.create(null); + Object.keys(handlerMap[METHOD_NAME_ALL]).forEach((p) => { + handlerMap[method][p] = [...handlerMap[METHOD_NAME_ALL][p]]; + }); + }); + } + if (path === "/*") { + path = "*"; + } + const paramCount = (path.match(/\/:/g) || []).length; + if (/\*$/.test(path)) { + const re = buildWildcardRegExp(path); + if (method === METHOD_NAME_ALL) { + Object.keys(middleware).forEach((m) => { + middleware[m][path] ||= findMiddleware(middleware[m], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || []; + }); + } else { + middleware[method][path] ||= findMiddleware(middleware[method], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || []; + } + Object.keys(middleware).forEach((m) => { + if (method === METHOD_NAME_ALL || method === m) { + Object.keys(middleware[m]).forEach((p) => { + re.test(p) && middleware[m][p].push([handler, paramCount]); + }); + } + }); + Object.keys(routes).forEach((m) => { + if (method === METHOD_NAME_ALL || method === m) { + Object.keys(routes[m]).forEach( + (p) => re.test(p) && routes[m][p].push([handler, paramCount]) + ); + } + }); + return; + } + const paths = checkOptionalParameter(path) || [path]; + for (let i = 0, len = paths.length; i < len; i++) { + const path2 = paths[i]; + Object.keys(routes).forEach((m) => { + if (method === METHOD_NAME_ALL || method === m) { + routes[m][path2] ||= [ + ...findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || [] + ]; + routes[m][path2].push([handler, paramCount - len + i + 1]); + } + }); + } + } + match(method, path) { + clearWildcardRegExpCache(); + const matchers = this.#buildAllMatchers(); + this.match = (method2, path2) => { + const matcher = matchers[method2] || matchers[METHOD_NAME_ALL]; + const staticMatch = matcher[2][path2]; + if (staticMatch) { + return staticMatch; + } + const match = path2.match(matcher[0]); + if (!match) { + return [[], emptyParam]; + } + const index = match.indexOf("", 1); + return [matcher[1][index], match]; + }; + return this.match(method, path); + } + #buildAllMatchers() { + const matchers = /* @__PURE__ */ Object.create(null); + Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach((method) => { + matchers[method] ||= this.#buildMatcher(method); + }); + this.#middleware = this.#routes = void 0; + return matchers; + } + #buildMatcher(method) { + const routes = []; + let hasOwnRoute = method === METHOD_NAME_ALL; + [this.#middleware, this.#routes].forEach((r) => { + const ownRoute = r[method] ? Object.keys(r[method]).map((path) => [path, r[method][path]]) : []; + if (ownRoute.length !== 0) { + hasOwnRoute ||= true; + routes.push(...ownRoute); + } else if (method !== METHOD_NAME_ALL) { + routes.push( + ...Object.keys(r[METHOD_NAME_ALL]).map((path) => [path, r[METHOD_NAME_ALL][path]]) + ); + } + }); + if (!hasOwnRoute) { + return null; + } else { + return buildMatcherFromPreprocessedRoutes(routes); + } + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/index.js +// src/router/reg-exp-router/index.ts + + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/smart-router/router.js +// src/router/smart-router/router.ts + +var SmartRouter = class { + name = "SmartRouter"; + #routers = []; + #routes = []; + constructor(init) { + this.#routers = init.routers; + } + add(method, path, handler) { + if (!this.#routes) { + throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT); + } + this.#routes.push([method, path, handler]); + } + match(method, path) { + if (!this.#routes) { + throw new Error("Fatal error"); + } + const routers = this.#routers; + const routes = this.#routes; + const len = routers.length; + let i = 0; + let res; + for (; i < len; i++) { + const router = routers[i]; + try { + for (let i2 = 0, len2 = routes.length; i2 < len2; i2++) { + router.add(...routes[i2]); + } + res = router.match(method, path); + } catch (e) { + if (e instanceof UnsupportedPathError) { + continue; + } + throw e; + } + this.match = router.match.bind(router); + this.#routers = [router]; + this.#routes = void 0; + break; + } + if (i === len) { + throw new Error("Fatal error"); + } + this.name = `SmartRouter + ${this.activeRouter.name}`; + return res; + } + get activeRouter() { + if (this.#routes || this.#routers.length !== 1) { + throw new Error("No active router has been determined yet."); + } + return this.#routers[0]; + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/trie-router/node.js +// src/router/trie-router/node.ts + + +var node_Node = class { + #methods; + #children; + #patterns; + #order = 0; + #params = /* @__PURE__ */ Object.create(null); + constructor(method, handler, children) { + this.#children = children || /* @__PURE__ */ Object.create(null); + this.#methods = []; + if (method && handler) { + const m = /* @__PURE__ */ Object.create(null); + m[method] = { handler, possibleKeys: [], score: 0 }; + this.#methods = [m]; + } + this.#patterns = []; + } + insert(method, path, handler) { + this.#order = ++this.#order; + let curNode = this; + const parts = splitRoutingPath(path); + const possibleKeys = []; + for (let i = 0, len = parts.length; i < len; i++) { + const p = parts[i]; + if (Object.keys(curNode.#children).includes(p)) { + curNode = curNode.#children[p]; + const pattern2 = getPattern(p); + if (pattern2) { + possibleKeys.push(pattern2[1]); + } + continue; + } + curNode.#children[p] = new node_Node(); + const pattern = getPattern(p); + if (pattern) { + curNode.#patterns.push(pattern); + possibleKeys.push(pattern[1]); + } + curNode = curNode.#children[p]; + } + const m = /* @__PURE__ */ Object.create(null); + const handlerSet = { + handler, + possibleKeys: possibleKeys.filter((v, i, a) => a.indexOf(v) === i), + score: this.#order + }; + m[method] = handlerSet; + curNode.#methods.push(m); + return curNode; + } + #getHandlerSets(node, method, nodeParams, params) { + const handlerSets = []; + for (let i = 0, len = node.#methods.length; i < len; i++) { + const m = node.#methods[i]; + const handlerSet = m[method] || m[METHOD_NAME_ALL]; + const processedSet = {}; + if (handlerSet !== void 0) { + handlerSet.params = /* @__PURE__ */ Object.create(null); + for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) { + const key = handlerSet.possibleKeys[i2]; + const processed = processedSet[handlerSet.score]; + handlerSet.params[key] = params[key] && !processed ? params[key] : nodeParams[key] ?? params[key]; + processedSet[handlerSet.score] = true; + } + handlerSets.push(handlerSet); + } + } + return handlerSets; + } + search(method, path) { + const handlerSets = []; + this.#params = /* @__PURE__ */ Object.create(null); + const curNode = this; + let curNodes = [curNode]; + const parts = splitPath(path); + for (let i = 0, len = parts.length; i < len; i++) { + const part = parts[i]; + const isLast = i === len - 1; + const tempNodes = []; + for (let j = 0, len2 = curNodes.length; j < len2; j++) { + const node = curNodes[j]; + const nextNode = node.#children[part]; + if (nextNode) { + nextNode.#params = node.#params; + if (isLast) { + if (nextNode.#children["*"]) { + handlerSets.push( + ...this.#getHandlerSets( + nextNode.#children["*"], + method, + node.#params, + /* @__PURE__ */ Object.create(null) + ) + ); + } + handlerSets.push( + ...this.#getHandlerSets(nextNode, method, node.#params, /* @__PURE__ */ Object.create(null)) + ); + } else { + tempNodes.push(nextNode); + } + } + for (let k = 0, len3 = node.#patterns.length; k < len3; k++) { + const pattern = node.#patterns[k]; + const params = { ...node.#params }; + if (pattern === "*") { + const astNode = node.#children["*"]; + if (astNode) { + handlerSets.push( + ...this.#getHandlerSets(astNode, method, node.#params, /* @__PURE__ */ Object.create(null)) + ); + tempNodes.push(astNode); + } + continue; + } + if (part === "") { + continue; + } + const [key, name, matcher] = pattern; + const child = node.#children[key]; + const restPathString = parts.slice(i).join("/"); + if (matcher instanceof RegExp && matcher.test(restPathString)) { + params[name] = restPathString; + handlerSets.push(...this.#getHandlerSets(child, method, node.#params, params)); + continue; + } + if (matcher === true || matcher.test(part)) { + params[name] = part; + if (isLast) { + handlerSets.push(...this.#getHandlerSets(child, method, params, node.#params)); + if (child.#children["*"]) { + handlerSets.push( + ...this.#getHandlerSets(child.#children["*"], method, params, node.#params) + ); + } + } else { + child.#params = params; + tempNodes.push(child); + } + } + } + } + curNodes = tempNodes; + } + if (handlerSets.length > 1) { + handlerSets.sort((a, b) => { + return a.score - b.score; + }); + } + return [handlerSets.map(({ handler, params }) => [handler, params])]; + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/trie-router/router.js +// src/router/trie-router/router.ts + + +var TrieRouter = class { + name = "TrieRouter"; + #node; + constructor() { + this.#node = new node_Node(); + } + add(method, path, handler) { + const results = checkOptionalParameter(path); + if (results) { + for (let i = 0, len = results.length; i < len; i++) { + this.#node.insert(method, results[i], handler); + } + return; + } + this.#node.insert(method, path, handler); + } + match(method, path) { + return this.#node.search(method, path); + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/router/trie-router/index.js +// src/router/trie-router/index.ts + + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/hono.js +// src/hono.ts + + + + +var hono_Hono = class extends hono_base_Hono { + constructor(options = {}) { + super(options); + this.router = options.router ?? new SmartRouter({ + routers: [new RegExpRouter(), new TrieRouter()] + }); + } +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/index.js +// src/index.ts + + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/helper/adapter/index.js +// src/helper/adapter/index.ts +var env = (c, runtime) => { + const global = globalThis; + const globalEnv = global?.process?.env; + runtime ??= getRuntimeKey(); + const runtimeEnvHandlers = { + bun: () => globalEnv, + node: () => globalEnv, + "edge-light": () => globalEnv, + deno: () => { + return Deno.env.toObject(); + }, + workerd: () => c.env, + fastly: () => ({}), + other: () => ({}) + }; + return runtimeEnvHandlers[runtime](); +}; +var knownUserAgents = { + deno: "Deno", + bun: "Bun", + workerd: "Cloudflare-Workers", + node: "Node.js" +}; +var getRuntimeKey = () => { + const global = globalThis; + const userAgentSupported = typeof navigator !== "undefined" && typeof navigator.userAgent === "string"; + if (userAgentSupported) { + for (const [runtimeKey, userAgent] of Object.entries(knownUserAgents)) { + if (checkUserAgentEquals(userAgent)) { + return runtimeKey; + } + } + } + if (typeof global?.EdgeRuntime === "string") { + return "edge-light"; + } + if (global?.fastly !== void 0) { + return "fastly"; + } + if (global?.process?.release?.name === "node") { + return "node"; + } + return "other"; +}; +var checkUserAgentEquals = (platform) => { + const userAgent = navigator.userAgent; + return userAgent.startsWith(platform); +}; + + +;// CONCATENATED MODULE: ./node_modules/hono/dist/http-exception.js +// src/http-exception.ts +var http_exception_HTTPException = class extends Error { + res; + status; + constructor(status = 500, options) { + super(options?.message, { cause: options?.cause }); + this.res = options?.res; + this.status = status; + } + getResponse() { + if (this.res) { + const newResponse = new Response(this.res.body, { + status: this.status, + headers: this.res.headers + }); + return newResponse; + } + return new Response(this.message, { + status: this.status + }); + } +}; + + +;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && process.version !== undefined) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${ + process.arch + })`; + } + + return ""; +} + +;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/register.js +// @ts-check + +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } + + if (!options) { + options = {}; + } + + if (Array.isArray(name)) { + return name.reverse().reduce((callback, name) => { + return register.bind(null, state, name, callback, options); + }, method)(); + } + + return Promise.resolve().then(() => { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce((method, registered) => { + return registered.hook.bind(null, method, options); + }, method)(); + }); +} + +;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/add.js +// @ts-check + +function addHook(state, kind, name, hook) { + const orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } + + if (kind === "before") { + hook = (method, options) => { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } + + if (kind === "after") { + hook = (method, options) => { + let result; + return Promise.resolve() + .then(method.bind(null, options)) + .then((result_) => { + result = result_; + return orig(result, options); + }) + .then(() => { + return result; + }); + }; + } + + if (kind === "error") { + hook = (method, options) => { + return Promise.resolve() + .then(method.bind(null, options)) + .catch((error) => { + return orig(error, options); + }); + }; + } + + state.registry[name].push({ + hook: hook, + orig: orig, + }); +} + +;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/remove.js +// @ts-check + +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } + + const index = state.registry[name] + .map((registered) => { + return registered.orig; + }) + .indexOf(method); + + if (index === -1) { + return; + } + + state.registry[name].splice(index, 1); +} + +;// CONCATENATED MODULE: ./node_modules/before-after-hook/index.js +// @ts-check + + + + + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +const bind = Function.bind; +const bindable = bind.bind(bind); + +function bindApi(hook, state, name) { + const removeHookRef = bindable(removeHook, null).apply( + null, + name ? [state, name] : [state] + ); + hook.api = { remove: removeHookRef }; + hook.remove = removeHookRef; + ["before", "error", "after", "wrap"].forEach((kind) => { + const args = name ? [state, kind, name] : [state, kind]; + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); + }); +} + +function Singular() { + const singularHookName = Symbol("Singular"); + const singularHookState = { + registry: {}, + }; + const singularHook = register.bind(null, singularHookState, singularHookName); + bindApi(singularHook, singularHookState, singularHookName); + return singularHook; +} + +function Collection() { + const state = { + registry: {}, + }; + + const hook = register.bind(null, state); + bindApi(hook, state); + + return hook; +} + +/* harmony default export */ const before_after_hook = ({ Singular, Collection }); + +;// CONCATENATED MODULE: ./node_modules/@octokit/endpoint/dist-bundle/index.js +// pkg/dist-src/defaults.js + + +// pkg/dist-src/version.js +var VERSION = "0.0.0-development"; + +// pkg/dist-src/defaults.js +var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +var DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "" + } +}; + +// pkg/dist-src/util/lowercase-keys.js +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +// pkg/dist-src/util/is-plain-object.js +function isPlainObject(value) { + if (typeof value !== "object" || value === null) + return false; + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + const proto = Object.getPrototypeOf(value); + if (proto === null) + return true; + const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); +} + +// pkg/dist-src/util/merge-deep.js +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +// pkg/dist-src/util/remove-undefined-properties.js +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === void 0) { + delete obj[key]; + } + } + return obj; +} + +// pkg/dist-src/merge.js +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } else { + options = Object.assign({}, route); + } + options.headers = lowercaseKeys(options.headers); + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + if (options.url === "/graphql") { + if (defaults && defaults.mediaType.previews?.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( + (preview) => !mergedOptions.mediaType.previews.includes(preview) + ).concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); + } + return mergedOptions; +} + +// pkg/dist-src/util/add-query-parameters.js +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return url + separator + names.map((name) => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +// pkg/dist-src/util/extract-url-variable-names.js +var urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +// pkg/dist-src/util/omit.js +function omit(object, keysToOmit) { + const result = { __proto__: null }; + for (const key of Object.keys(object)) { + if (keysToOmit.indexOf(key) === -1) { + result[key] = object[key]; + } + } + return result; +} + +// pkg/dist-src/util/url-template.js +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }).join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} +function isDefined(value) { + return value !== void 0 && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + result.push( + encodeValue(operator, value2, isKeyOperator(operator) ? key : "") + ); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function(value2) { + tmp.push(encodeValue(operator, value2)); + }); + } else { + Object.keys(value).forEach(function(k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + template = template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function(_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function(variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + if (template === "/") { + return template; + } else { + return template.replace(/\/$/, ""); + } +} + +// pkg/dist-src/parse.js +function parse(options) { + let method = options.method.toUpperCase(); + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + headers.accept = headers.accept.split(/,/).map( + (format) => format.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ).join(","); + } + if (url.endsWith("/graphql")) { + if (options.mediaType.previews?.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } + } + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + } + } + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + return Object.assign( + { method, url, headers }, + typeof body !== "undefined" ? { body } : null, + options.request ? { request: options.request } : null + ); +} + +// pkg/dist-src/endpoint-with-defaults.js +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +// pkg/dist-src/with-defaults.js +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS2 = merge(oldDefaults, newDefaults); + const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); + return Object.assign(endpoint2, { + DEFAULTS: DEFAULTS2, + defaults: withDefaults.bind(null, DEFAULTS2), + merge: merge.bind(null, DEFAULTS2), + parse + }); +} + +// pkg/dist-src/index.js +var endpoint = withDefaults(null, DEFAULTS); + + +;// CONCATENATED MODULE: ./node_modules/@octokit/request-error/dist-src/index.js +class RequestError extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + / .*$/, + " [REDACTED]" + ) + }); + } + requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } +} + + +;// CONCATENATED MODULE: ./node_modules/@octokit/request/dist-bundle/index.js +// pkg/dist-src/index.js + + +// pkg/dist-src/defaults.js + + +// pkg/dist-src/version.js +var dist_bundle_VERSION = "0.0.0-development"; + +// pkg/dist-src/defaults.js +var defaults_default = { + headers: { + "user-agent": `octokit-request.js/${dist_bundle_VERSION} ${getUserAgent()}` + } +}; + +// pkg/dist-src/is-plain-object.js +function dist_bundle_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); +} + +// pkg/dist-src/fetch-wrapper.js + +async function fetchWrapper(requestOptions) { + const fetch = requestOptions.request?.fetch || globalThis.fetch; + if (!fetch) { + throw new Error( + "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" + ); + } + const log = requestOptions.request?.log || console; + const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; + const body = dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSON.stringify(requestOptions.body) : requestOptions.body; + const requestHeaders = Object.fromEntries( + Object.entries(requestOptions.headers).map(([name, value]) => [ + name, + String(value) + ]) + ); + let fetchResponse; + try { + fetchResponse = await fetch(requestOptions.url, { + method: requestOptions.method, + body, + redirect: requestOptions.request?.redirect, + headers: requestHeaders, + signal: requestOptions.request?.signal, + // duplex must be set if request.body is ReadableStream or Async Iterables. + // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. + ...requestOptions.body && { duplex: "half" } + }); + } catch (error) { + let message = "Unknown Error"; + if (error instanceof Error) { + if (error.name === "AbortError") { + error.status = 500; + throw error; + } + message = error.message; + if (error.name === "TypeError" && "cause" in error) { + if (error.cause instanceof Error) { + message = error.cause.message; + } else if (typeof error.cause === "string") { + message = error.cause; + } + } + } + const requestError = new RequestError(message, 500, { + request: requestOptions + }); + requestError.cause = error; + throw requestError; + } + const status = fetchResponse.status; + const url = fetchResponse.url; + const responseHeaders = {}; + for (const [key, value] of fetchResponse.headers) { + responseHeaders[key] = value; + } + const octokitResponse = { + url, + status, + headers: responseHeaders, + data: "" + }; + if ("deprecation" in responseHeaders) { + const matches = responseHeaders.link && responseHeaders.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return octokitResponse; + } + if (requestOptions.method === "HEAD") { + if (status < 400) { + return octokitResponse; + } + throw new RequestError(fetchResponse.statusText, status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status === 304) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError("Not modified", status, { + response: octokitResponse, + request: requestOptions + }); + } + if (status >= 400) { + octokitResponse.data = await getResponseData(fetchResponse); + throw new RequestError(toErrorMessage(octokitResponse.data), status, { + response: octokitResponse, + request: requestOptions + }); + } + octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body; + return octokitResponse; +} +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json().catch(() => response.text()).catch(() => ""); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return response.arrayBuffer(); +} +function toErrorMessage(data) { + if (typeof data === "string") { + return data; + } + if (data instanceof ArrayBuffer) { + return "Unknown error"; + } + if ("message" in data) { + const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; + return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`; + } + return `Unknown error: ${JSON.stringify(data)}`; +} + +// pkg/dist-src/with-defaults.js +function dist_bundle_withDefaults(oldEndpoint, newDefaults) { + const endpoint2 = oldEndpoint.defaults(newDefaults); + const newApi = function(route, parameters) { + const endpointOptions = endpoint2.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint2.parse(endpointOptions)); + } + const request2 = (route2, parameters2) => { + return fetchWrapper( + endpoint2.parse(endpoint2.merge(route2, parameters2)) + ); + }; + Object.assign(request2, { + endpoint: endpoint2, + defaults: dist_bundle_withDefaults.bind(null, endpoint2) + }); + return endpointOptions.request.hook(request2, endpointOptions); + }; + return Object.assign(newApi, { + endpoint: endpoint2, + defaults: dist_bundle_withDefaults.bind(null, endpoint2) + }); +} + +// pkg/dist-src/index.js +var request = dist_bundle_withDefaults(endpoint, defaults_default); + + +;// CONCATENATED MODULE: ./node_modules/@octokit/graphql/dist-bundle/index.js +// pkg/dist-src/index.js + + + +// pkg/dist-src/version.js +var graphql_dist_bundle_VERSION = "0.0.0-development"; + +// pkg/dist-src/with-defaults.js + + +// pkg/dist-src/graphql.js + + +// pkg/dist-src/error.js +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors: +` + data.errors.map((e) => ` - ${e.message}`).join("\n"); +} +var GraphqlResponseError = class extends Error { + constructor(request2, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request2; + this.headers = headers; + this.response = response; + this.errors = response.errors; + this.data = response.data; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + name = "GraphqlResponseError"; + errors; + data; +}; + +// pkg/dist-src/graphql.js +var NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType" +]; +var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request2, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error(`[@octokit/graphql] "query" cannot be used as variable name`) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) + continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys( + parsedOptions + ).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request2(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlResponseError( + requestOptions, + headers, + response.data + ); + } + return response.data.data; + }); +} + +// pkg/dist-src/with-defaults.js +function graphql_dist_bundle_withDefaults(request2, newDefaults) { + const newRequest = request2.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: graphql_dist_bundle_withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint + }); +} + +// pkg/dist-src/index.js +var graphql2 = graphql_dist_bundle_withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${graphql_dist_bundle_VERSION} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return graphql_dist_bundle_withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + + +;// CONCATENATED MODULE: ./node_modules/@octokit/auth-token/dist-bundle/index.js +// pkg/dist-src/auth.js +var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +var REGEX_IS_INSTALLATION = /^ghs_/; +var 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, + tokenType + }; +} + +// pkg/dist-src/with-authorization-prefix.js +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +// pkg/dist-src/hook.js +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge( + route, + parameters + ); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +// pkg/dist-src/index.js +var createTokenAuth = function createTokenAuth2(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + + +;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/version.js +const version_VERSION = "6.1.2"; + + +;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/index.js + + + + + + +const noop = () => { +}; +const consoleWarn = console.warn.bind(console); +const consoleError = console.error.bind(console); +const userAgentTrail = `octokit-core.js/${version_VERSION} ${getUserAgent()}`; +class Octokit { + static VERSION = version_VERSION; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null + ) + ); + } + }; + return OctokitWithDefaults; + } + static plugins = []; + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + const currentPlugins = this.plugins; + const NewOctokit = class extends this { + static plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + ); + }; + return NewOctokit; + } + constructor(options = {}) { + const hook = new before_after_hook.Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; + requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign( + { + debug: noop, + info: noop, + warn: consoleWarn, + error: consoleError + }, + options.log + ); + this.hook = hook; + if (!options.authStrategy) { + if (!options.auth) { + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + const auth = createTokenAuth(options.auth); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, + options.auth + ) + ); + hook.wrap("request", auth.hook); + this.auth = auth; + } + const classConstructor = this.constructor; + for (let i = 0; i < classConstructor.plugins.length; ++i) { + Object.assign(this, classConstructor.plugins[i](this, options)); + } + } + // assigned during constructor + request; + graphql; + log; + hook; + // TODO: type `octokit.auth` based on passed options.authStrategy + auth; +} + + +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-paginate-rest/dist-bundle/index.js +// pkg/dist-src/version.js +var plugin_paginate_rest_dist_bundle_VERSION = "0.0.0-development"; + +// pkg/dist-src/normalize-paginated-list-response.js +function normalizePaginatedListResponse(response) { + if (!response.data) { + return { + ...response, + data: [] + }; + } + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} + +// pkg/dist-src/iterator.js +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) return { done: true }; + try { + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + url = ((normalizedResponse.headers.link || "").match( + /<([^>]+)>;\s*rel="next"/ + ) || [])[1]; + return { value: normalizedResponse }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + }) + }; +} + +// pkg/dist-src/paginate.js +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = void 0; + } + return gather( + octokit, + [], + iterator(octokit, route, parameters)[Symbol.asyncIterator](), + mapFn + ); +} +function gather(octokit, results, iterator2, mapFn) { + return iterator2.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat( + mapFn ? mapFn(result.value, done) : result.value.data + ); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator2, mapFn); + }); +} + +// pkg/dist-src/compose-paginate.js +var composePaginateRest = Object.assign(paginate, { + iterator +}); + +// pkg/dist-src/generated/paginating-endpoints.js +var paginatingEndpoints = (/* unused pure expression or super */ null && ([ + "GET /advisories", + "GET /app/hook/deliveries", + "GET /app/installation-requests", + "GET /app/installations", + "GET /assignments/{assignment_id}/accepted_assignments", + "GET /classrooms", + "GET /classrooms/{classroom_id}/assignments", + "GET /enterprises/{enterprise}/copilot/usage", + "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/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}/copilot/billing/seats", + "GET /orgs/{org}/copilot/usage", + "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}/organization-roles/{role_id}/teams", + "GET /orgs/{org}/organization-roles/{role_id}/users", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/personal-access-token-requests", + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", + "GET /orgs/{org}/personal-access-tokens", + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/properties/values", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/rulesets", + "GET /orgs/{org}/rulesets/rule-suites", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/security-advisories", + "GET /orgs/{org}/team/{team_slug}/copilot/usage", + "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/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/organization-secrets", + "GET /repos/{owner}/{repo}/actions/organization-variables", + "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}/activity", + "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}/environments/{environment_name}/deployment_protection_rules/apps", + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets", + "GET /repos/{owner}/{repo}/environments/{environment_name}/variables", + "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}/rules/branches/{branch}", + "GET /repos/{owner}/{repo}/rulesets", + "GET /repos/{owner}/{repo}/rulesets/rule-suites", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/security-advisories", + "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 /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/social_accounts", + "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}/social_accounts", + "GET /users/{username}/ssh_signing_keys", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions" +])); + +// pkg/dist-src/paginating-endpoints.js +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +// pkg/dist-src/index.js +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = plugin_paginate_rest_dist_bundle_VERSION; + + +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js +const dist_src_version_VERSION = "13.2.6"; + +//# sourceMappingURL=version.js.map + +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: [ + "POST /orgs/{org}/actions/runners/{runner_id}/labels" + ], + addCustomLabelsToSelfHostedRunnerForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + approveWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" + ], + createEnvironmentVariable: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/variables" + ], + createOrUpdateEnvironmentSecret: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + createOrgVariable: ["POST /orgs/{org}/actions/variables"], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token" + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token" + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token" + ], + createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" + ], + deleteActionsCacheById: [ + "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" + ], + deleteActionsCacheByKey: [ + "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" + ], + deleteEnvironmentSecret: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" + ], + deleteEnvironmentVariable: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" + ], + deleteRepoVariable: [ + "DELETE /repos/{owner}/{repo}/actions/variables/{name}" + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}" + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" + ], + downloadWorkflowRunAttemptLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" + ], + forceCancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" + ], + generateRunnerJitconfigForOrg: [ + "POST /orgs/{org}/actions/runners/generate-jitconfig" + ], + generateRunnerJitconfigForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" + ], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: [ + "GET /orgs/{org}/actions/cache/usage-by-repository" + ], + getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions" + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getCustomOidcSubClaimForRepo: [ + "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + getEnvironmentPublicKey: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key" + ], + getEnvironmentSecret: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" + ], + getEnvironmentVariable: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" + ], + getGithubActionsDefaultWorkflowPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions/workflow" + ], + getGithubActionsDefaultWorkflowPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/workflow" + ], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions" + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions" + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], + getPendingDeploymentsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] } + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], + getReviewsForRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" + ], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowAccessToRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/access" + ], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" + ], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets" + ], + listEnvironmentVariables: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/variables" + ], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" + ], + listJobsForWorkflowRunAttempt: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" + ], + listLabelsForSelfHostedRunnerForOrg: [ + "GET /orgs/{org}/actions/runners/{runner_id}/labels" + ], + listLabelsForSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listOrgVariables: ["GET /orgs/{org}/actions/variables"], + listRepoOrganizationSecrets: [ + "GET /repos/{owner}/{repo}/actions/organization-secrets" + ], + listRepoOrganizationVariables: [ + "GET /repos/{owner}/{repo}/actions/organization-variables" + ], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads" + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + listSelectedReposForOrgVariable: [ + "GET /orgs/{org}/actions/variables/{name}/repositories" + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories" + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunJobForWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" + ], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + reRunWorkflowFailedJobs: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" + ], + removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" + ], + removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + removeCustomLabelFromSelfHostedRunnerForOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" + ], + removeCustomLabelFromSelfHostedRunnerForRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgVariable: [ + "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" + ], + reviewCustomGatesForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" + ], + reviewPendingDeploymentsForRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions" + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" + ], + setCustomLabelsForSelfHostedRunnerForOrg: [ + "PUT /orgs/{org}/actions/runners/{runner_id}/labels" + ], + setCustomLabelsForSelfHostedRunnerForRepo: [ + "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" + ], + setCustomOidcSubClaimForRepo: [ + "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" + ], + setGithubActionsDefaultWorkflowPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/workflow" + ], + setGithubActionsDefaultWorkflowPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/workflow" + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions" + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgVariable: [ + "PUT /orgs/{org}/actions/variables/{name}/repositories" + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories" + ], + setWorkflowAccessToRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/access" + ], + updateEnvironmentVariable: [ + "PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" + ], + updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], + updateRepoVariable: [ + "PATCH /repos/{owner}/{repo}/actions/variables/{name}" + ] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription" + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription" + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}" + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public" + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications" + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription" + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } + ], + addRepoToInstallationForAuthenticatedUser: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}" + ], + checkToken: ["POST /applications/{client_id}/token"], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens" + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}" + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}" + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories" + ], + listInstallationRequestsForAuthenticatedApp: [ + "GET /app/installation-requests" + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed" + ], + listWebhookDeliveries: ["GET /app/hook/deliveries"], + redeliverWebhookDelivery: [ + "POST /app/hook/deliveries/{delivery_id}/attempts" + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + {}, + { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } + ], + removeRepoFromInstallationForAuthenticatedUser: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}" + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended" + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions" + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages" + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage" + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage" + ] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestRun: [ + "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" + ], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences" + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: [ + "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" + ], + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } } + ], + getAnalysis: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" + ], + getCodeqlDatabase: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" + ], + getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" + ], + listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + {}, + { renamed: ["codeScanning", "listAlertInstances"] } + ], + listCodeqlDatabases: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" + ], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" + ], + updateDefaultSetup: [ + "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + checkPermissionsForDevcontainer: [ + "GET /repos/{owner}/{repo}/codespaces/permissions_check" + ], + codespaceMachinesForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/machines" + ], + createForAuthenticatedUser: ["POST /user/codespaces"], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + createOrUpdateSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}" + ], + createWithPrForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" + ], + createWithRepoForAuthenticatedUser: [ + "POST /repos/{owner}/{repo}/codespaces" + ], + deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], + deleteFromOrganization: [ + "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + deleteSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}" + ], + exportForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/exports" + ], + getCodespacesForUserInOrg: [ + "GET /orgs/{org}/members/{username}/codespaces" + ], + getExportDetailsForAuthenticatedUser: [ + "GET /user/codespaces/{codespace_name}/exports/{export_id}" + ], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], + getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], + getPublicKeyForAuthenticatedUser: [ + "GET /user/codespaces/secrets/public-key" + ], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" + ], + getSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}" + ], + listDevcontainersInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/devcontainers" + ], + listForAuthenticatedUser: ["GET /user/codespaces"], + listInOrganization: [ + "GET /orgs/{org}/codespaces", + {}, + { renamedParameters: { org_id: "org" } } + ], + listInRepositoryForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces" + ], + listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: [ + "GET /user/codespaces/secrets/{secret_name}/repositories" + ], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + preFlightWithRepoForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/new" + ], + publishForAuthenticatedUser: [ + "POST /user/codespaces/{codespace_name}/publish" + ], + removeRepositoryForSecretForAuthenticatedUser: [ + "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" + ], + repoMachinesForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/codespaces/machines" + ], + setRepositoriesForSecretForAuthenticatedUser: [ + "PUT /user/codespaces/secrets/{secret_name}/repositories" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" + ], + startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], + stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], + stopInOrganization: [ + "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" + ], + updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] + }, + copilot: { + addCopilotSeatsForTeams: [ + "POST /orgs/{org}/copilot/billing/selected_teams" + ], + addCopilotSeatsForUsers: [ + "POST /orgs/{org}/copilot/billing/selected_users" + ], + cancelCopilotSeatAssignmentForTeams: [ + "DELETE /orgs/{org}/copilot/billing/selected_teams" + ], + cancelCopilotSeatAssignmentForUsers: [ + "DELETE /orgs/{org}/copilot/billing/selected_users" + ], + getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], + getCopilotSeatDetailsForUser: [ + "GET /orgs/{org}/members/{username}/copilot" + ], + listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"], + usageMetricsForEnterprise: ["GET /enterprises/{enterprise}/copilot/usage"], + usageMetricsForOrg: ["GET /orgs/{org}/copilot/usage"], + usageMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/usage"] + }, + dependabot: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + createOrUpdateOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}" + ], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], + getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/dependabot/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], + listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" + ] + }, + dependencyGraph: { + createRepositorySnapshot: [ + "POST /repos/{owner}/{repo}/dependency-graph/snapshots" + ], + diffRange: [ + "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" + ], + exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] + }, + emojis: { get: ["GET /emojis"] }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: [ + "GET /user/interaction-limits", + {}, + { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } + ], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits" + ], + removeRestrictionsForYourPublicRepos: [ + "DELETE /user/interaction-limits", + {}, + { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } + ], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: [ + "PUT /user/interaction-limits", + {}, + { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } + ] + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + checkUserCanBeAssignedToIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" + ], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" + ] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } } + ] + }, + meta: { + get: ["GET /meta"], + getAllVersions: ["GET /versions"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive" + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive" + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive" + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive" + ], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], + listForAuthenticatedUser: ["GET /user/migrations"], + listForOrg: ["GET /orgs/{org}/migrations"], + listReposForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/repositories" + ], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + {}, + { renamed: ["migrations", "listReposForAuthenticatedUser"] } + ], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" + ] + }, + oidc: { + getOidcCustomSubTemplateForOrg: [ + "GET /orgs/{org}/actions/oidc/customization/sub" + ], + updateOidcCustomSubTemplateForOrg: [ + "PUT /orgs/{org}/actions/oidc/customization/sub" + ] + }, + orgs: { + addSecurityManagerTeam: [ + "PUT /orgs/{org}/security-managers/teams/{team_slug}" + ], + assignTeamToOrgRole: [ + "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + assignUserToOrgRole: [ + "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}" + ], + createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], + createInvitation: ["POST /orgs/{org}/invitations"], + createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], + createOrUpdateCustomPropertiesValuesForRepos: [ + "PATCH /orgs/{org}/properties/values" + ], + createOrUpdateCustomProperty: [ + "PUT /orgs/{org}/properties/schema/{custom_property_name}" + ], + createWebhook: ["POST /orgs/{org}/hooks"], + delete: ["DELETE /orgs/{org}"], + deleteCustomOrganizationRole: [ + "DELETE /orgs/{org}/organization-roles/{role_id}" + ], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + enableOrDisableSecurityProductOnAllOrgRepos: [ + "POST /orgs/{org}/{security_product}/{enablement}" + ], + get: ["GET /orgs/{org}"], + getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], + getCustomProperty: [ + "GET /orgs/{org}/properties/schema/{custom_property_name}" + ], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + getWebhookDelivery: [ + "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], + listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], + listOrgRoles: ["GET /orgs/{org}/organization-roles"], + listOrganizationFineGrainedPermissions: [ + "GET /orgs/{org}/organization-fine-grained-permissions" + ], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPatGrantRepositories: [ + "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" + ], + listPatGrantRequestRepositories: [ + "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" + ], + listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], + listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], + listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /orgs/{org}/hooks"], + patchCustomOrganizationRole: [ + "PATCH /orgs/{org}/organization-roles/{role_id}" + ], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeCustomProperty: [ + "DELETE /orgs/{org}/properties/schema/{custom_property_name}" + ], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}" + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}" + ], + removeSecurityManagerTeam: [ + "DELETE /orgs/{org}/security-managers/teams/{team_slug}" + ], + reviewPatGrantRequest: [ + "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" + ], + reviewPatGrantRequestsInBulk: [ + "POST /orgs/{org}/personal-access-token-requests" + ], + revokeAllOrgRolesTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" + ], + revokeAllOrgRolesUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}" + ], + revokeOrgRoleTeam: [ + "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" + ], + revokeOrgRoleUser: [ + "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}" + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}" + ], + updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], + updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}" + ], + deletePackageForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}" + ], + deletePackageForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}" + ], + deletePackageVersionForAuthenticatedUser: [ + "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForOrg: [ + "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + deletePackageVersionForUser: [ + "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getAllPackageVersionsForAPackageOwnedByAnOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + {}, + { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } + ], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions", + {}, + { + renamed: [ + "packages", + "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" + ] + } + ], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByOrg: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" + ], + getAllPackageVersionsForPackageOwnedByUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions" + ], + getPackageForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}" + ], + getPackageForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}" + ], + getPackageForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}" + ], + getPackageVersionForAuthenticatedUser: [ + "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForOrganization: [ + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + getPackageVersionForUser: [ + "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" + ], + listDockerMigrationConflictingPackagesForAuthenticatedUser: [ + "GET /user/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForOrganization: [ + "GET /orgs/{org}/docker/conflicts" + ], + listDockerMigrationConflictingPackagesForUser: [ + "GET /users/{username}/docker/conflicts" + ], + listPackagesForAuthenticatedUser: ["GET /user/packages"], + listPackagesForOrganization: ["GET /orgs/{org}/packages"], + listPackagesForUser: ["GET /users/{username}/packages"], + restorePackageForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" + ], + restorePackageVersionForAuthenticatedUser: [ + "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForOrg: [ + "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ], + restorePackageVersionForUser: [ + "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" + ] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], + createCard: ["POST /projects/columns/{column_id}/cards"], + createColumn: ["POST /projects/{project_id}/columns"], + createForAuthenticatedUser: ["POST /user/projects"], + createForOrg: ["POST /orgs/{org}/projects"], + createForRepo: ["POST /repos/{owner}/{repo}/projects"], + delete: ["DELETE /projects/{project_id}"], + deleteCard: ["DELETE /projects/columns/cards/{card_id}"], + deleteColumn: ["DELETE /projects/columns/{column_id}"], + get: ["GET /projects/{project_id}"], + getCard: ["GET /projects/columns/cards/{card_id}"], + getColumn: ["GET /projects/columns/{column_id}"], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission" + ], + listCards: ["GET /projects/columns/{column_id}/cards"], + listCollaborators: ["GET /projects/{project_id}/collaborators"], + listColumns: ["GET /projects/{project_id}/columns"], + listForOrg: ["GET /orgs/{org}/projects"], + listForRepo: ["GET /repos/{owner}/{repo}/projects"], + listForUser: ["GET /users/{username}/projects"], + moveCard: ["POST /projects/columns/cards/{card_id}/moves"], + moveColumn: ["POST /projects/columns/{column_id}/moves"], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}" + ], + update: ["PATCH /projects/{project_id}"], + updateCard: ["PATCH /projects/columns/cards/{card_id}"], + updateColumn: ["PATCH /projects/columns/{column_id}"] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" + ] + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + createForRelease: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" + ], + deleteForRelease: [ + "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" + ], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" + ], + listForRelease: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" + ] + }, + repos: { + acceptInvitation: [ + "PATCH /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } + ], + acceptInvitationForAuthenticatedUser: [ + "PATCH /user/repository_invitations/{invitation_id}" + ], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + cancelPagesDeployment: [ + "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" + ], + checkAutomatedSecurityFixes: [ + "GET /repos/{owner}/{repo}/automated-security-fixes" + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkPrivateVulnerabilityReporting: [ + "GET /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts" + ], + codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + compareCommitsWithBasehead: [ + "GET /repos/{owner}/{repo}/compare/{basehead}" + ], + createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentBranchPolicy: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + createDeploymentProtectionRule: [ + "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateCustomPropertiesValues: [ + "PATCH /repos/{owner}/{repo}/properties/values" + ], + createOrUpdateEnvironment: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}" + ], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createOrgRuleset: ["POST /orgs/{org}/rulesets"], + createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], + createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate" + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: [ + "DELETE /user/repository_invitations/{invitation_id}", + {}, + { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } + ], + declineInvitationForAuthenticatedUser: [ + "DELETE /user/repository_invitations/{invitation_id}" + ], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + deleteAnEnvironment: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}" + ], + deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" + ], + deleteDeploymentBranchPolicy: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + deleteTagProtection: [ + "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes" + ], + disableDeploymentProtectionRule: [ + "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + disablePrivateVulnerabilityReporting: [ + "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts" + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] } + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes" + ], + enablePrivateVulnerabilityReporting: [ + "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts" + ], + generateReleaseNotes: [ + "POST /repos/{owner}/{repo}/releases/generate-notes" + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + getAllDeploymentProtectionRules: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" + ], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" + ], + getAllTopics: ["GET /repos/{owner}/{repo}/topics"], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" + ], + getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection" + ], + getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission" + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getCustomDeploymentProtectionRule: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" + ], + getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentBranchPolicy: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" + ], + getEnvironment: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}" + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], + getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], + getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], + getOrgRulesets: ["GET /orgs/{org}/rulesets"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getPagesDeployment: [ + "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" + ], + getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getRepoRuleSuite: [ + "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" + ], + getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], + getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + getWebhookDelivery: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" + ], + listActivities: ["GET /repos/{owner}/{repo}/activity"], + listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses" + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listCustomDeploymentRuleIntegrations: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" + ], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentBranchPolicies: [ + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" + ], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets" + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhookDeliveries: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" + ], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: [ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" + ], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}" + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" } + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" } + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" } + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" } + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection" + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateDeploymentBranchPolicy: [ + "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" + ], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" + ], + updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" + ], + updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] } + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" } + ] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits"], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ], + listAlertsForEnterprise: [ + "GET /enterprises/{enterprise}/secret-scanning/alerts" + ], + listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + listLocationsForAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" + ] + }, + securityAdvisories: { + createFork: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" + ], + createPrivateVulnerabilityReport: [ + "POST /repos/{owner}/{repo}/security-advisories/reports" + ], + createRepositoryAdvisory: [ + "POST /repos/{owner}/{repo}/security-advisories" + ], + createRepositoryAdvisoryCveRequest: [ + "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" + ], + getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], + getRepositoryAdvisory: [ + "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ], + listGlobalAdvisories: ["GET /advisories"], + listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], + listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], + updateRepositoryAdvisory: [ + "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" + ] + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations" + ], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: [ + "POST /user/emails", + {}, + { renamed: ["users", "addEmailForAuthenticatedUser"] } + ], + addEmailForAuthenticatedUser: ["POST /user/emails"], + addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: [ + "POST /user/gpg_keys", + {}, + { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } + ], + createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: [ + "POST /user/keys", + {}, + { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } + ], + createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], + createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], + deleteEmailForAuthenticated: [ + "DELETE /user/emails", + {}, + { renamed: ["users", "deleteEmailForAuthenticatedUser"] } + ], + deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: [ + "DELETE /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } + ], + deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: [ + "DELETE /user/keys/{key_id}", + {}, + { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } + ], + deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], + deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], + deleteSshSigningKeyForAuthenticatedUser: [ + "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: [ + "GET /user/gpg_keys/{gpg_key_id}", + {}, + { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } + ], + getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: [ + "GET /user/keys/{key_id}", + {}, + { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } + ], + getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], + getSshSigningKeyForAuthenticatedUser: [ + "GET /user/ssh_signing_keys/{ssh_signing_key_id}" + ], + list: ["GET /users"], + listBlockedByAuthenticated: [ + "GET /user/blocks", + {}, + { renamed: ["users", "listBlockedByAuthenticatedUser"] } + ], + listBlockedByAuthenticatedUser: ["GET /user/blocks"], + listEmailsForAuthenticated: [ + "GET /user/emails", + {}, + { renamed: ["users", "listEmailsForAuthenticatedUser"] } + ], + listEmailsForAuthenticatedUser: ["GET /user/emails"], + listFollowedByAuthenticated: [ + "GET /user/following", + {}, + { renamed: ["users", "listFollowedByAuthenticatedUser"] } + ], + listFollowedByAuthenticatedUser: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: [ + "GET /user/gpg_keys", + {}, + { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } + ], + listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: [ + "GET /user/public_emails", + {}, + { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } + ], + listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: [ + "GET /user/keys", + {}, + { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } + ], + listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], + listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], + listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], + listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], + listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], + setPrimaryEmailVisibilityForAuthenticated: [ + "PATCH /user/email/visibility", + {}, + { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } + ], + setPrimaryEmailVisibilityForAuthenticatedUser: [ + "PATCH /user/email/visibility" + ], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; +var endpoints_default = Endpoints; + +//# sourceMappingURL=endpoints.js.map + +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js + +const endpointMethodsMap = /* @__PURE__ */ new Map(); +for (const [scope, endpoints] of Object.entries(endpoints_default)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign( + { + method, + url + }, + defaults + ); + if (!endpointMethodsMap.has(scope)) { + endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); + } + endpointMethodsMap.get(scope).set(methodName, { + scope, + methodName, + endpointDefaults, + decorations + }); + } +} +const handler = { + has({ scope }, methodName) { + return endpointMethodsMap.get(scope).has(methodName); + }, + getOwnPropertyDescriptor(target, methodName) { + return { + value: this.get(target, methodName), + // ensures method is in the cache + configurable: true, + writable: true, + enumerable: true + }; + }, + defineProperty(target, methodName, descriptor) { + Object.defineProperty(target.cache, methodName, descriptor); + return true; + }, + deleteProperty(target, methodName) { + delete target.cache[methodName]; + return true; + }, + ownKeys({ scope }) { + return [...endpointMethodsMap.get(scope).keys()]; + }, + set(target, methodName, value) { + return target.cache[methodName] = value; + }, + get({ octokit, scope, cache }, methodName) { + if (cache[methodName]) { + return cache[methodName]; + } + const method = endpointMethodsMap.get(scope).get(methodName); + if (!method) { + return void 0; + } + const { endpointDefaults, decorations } = method; + if (decorations) { + cache[methodName] = decorate( + octokit, + scope, + methodName, + endpointDefaults, + decorations + ); + } else { + cache[methodName] = octokit.request.defaults(endpointDefaults); + } + return cache[methodName]; + } +}; +function endpointsToMethods(octokit) { + const newMethods = {}; + for (const scope of endpointMethodsMap.keys()) { + newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + function withDecorations(...args) { + let options = requestWithDefaults.endpoint.merge(...args); + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: void 0 + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn( + `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` + ); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + const options2 = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries( + decorations.renamedParameters + )) { + if (name in options2) { + octokit.log.warn( + `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` + ); + if (!(alias in options2)) { + options2[alias] = options2[name]; + } + delete options2[name]; + } + } + return requestWithDefaults(options2); + } + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} + +//# sourceMappingURL=endpoints-to-methods.js.map + +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js + + +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + rest: api + }; +} +restEndpointMethods.VERSION = dist_src_version_VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit); + return { + ...api, + rest: api + }; +} +legacyRestEndpointMethods.VERSION = dist_src_version_VERSION; + +//# sourceMappingURL=index.js.map + +// EXTERNAL MODULE: ./node_modules/bottleneck/light.js +var light = __nccwpck_require__(2029); +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-retry/dist-bundle/index.js +// pkg/dist-src/version.js +var plugin_retry_dist_bundle_VERSION = "0.0.0-development"; + +// pkg/dist-src/error-request.js +async function errorRequest(state, octokit, error, options) { + if (!error.request || !error.request.request) { + throw error; + } + if (error.status >= 400 && !state.doNotRetry.includes(error.status)) { + const retries = options.request.retries != null ? options.request.retries : state.retries; + const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2); + throw octokit.retry.retryRequest(error, retries, retryAfter); + } + throw error; +} + +// pkg/dist-src/wrap-request.js + + +async function wrapRequest(state, octokit, request, options) { + const limiter = new light(); + limiter.on("failed", function(error, info) { + const maxRetries = ~~error.request.request.retries; + const after = ~~error.request.request.retryAfter; + options.request.retryCount = info.retryCount + 1; + if (maxRetries > info.retryCount) { + return after * state.retryAfterBaseValue; + } + }); + return limiter.schedule( + requestWithGraphqlErrorHandling.bind(null, state, octokit, request), + options + ); +} +async function requestWithGraphqlErrorHandling(state, octokit, request, options) { + const response = await request(request, options); + if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( + response.data.errors[0].message + )) { + const error = new RequestError(response.data.errors[0].message, 500, { + request: options, + response + }); + return errorRequest(state, octokit, error, options); + } + return response; +} + +// pkg/dist-src/index.js +function retry(octokit, octokitOptions) { + const state = Object.assign( + { + enabled: true, + retryAfterBaseValue: 1e3, + doNotRetry: [400, 401, 403, 404, 422, 451], + retries: 3 + }, + octokitOptions.retry + ); + if (state.enabled) { + octokit.hook.error("request", errorRequest.bind(null, state, octokit)); + octokit.hook.wrap("request", wrapRequest.bind(null, state, octokit)); + } + return { + retry: { + retryRequest: (error, retries, retryAfter) => { + error.request.request = Object.assign({}, error.request.request, { + retries, + retryAfter + }); + return error; + } + } + }; +} +retry.VERSION = plugin_retry_dist_bundle_VERSION; + + +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-throttling/dist-bundle/index.js +// pkg/dist-src/index.js + + +// pkg/dist-src/version.js +var plugin_throttling_dist_bundle_VERSION = "0.0.0-development"; + +// pkg/dist-src/wrap-request.js +var dist_bundle_noop = () => Promise.resolve(); +function dist_bundle_wrapRequest(state, request, options) { + return state.retryLimiter.schedule(doRequest, state, request, options); +} +async function doRequest(state, request, options) { + const isWrite = options.method !== "GET" && options.method !== "HEAD"; + const { pathname } = new URL(options.url, "http://github.test"); + const isSearch = options.method === "GET" && pathname.startsWith("/search/"); + const isGraphQL = pathname.startsWith("/graphql"); + const retryCount = ~~request.retryCount; + const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {}; + if (state.clustering) { + jobOptions.expiration = 1e3 * 60; + } + if (isWrite || isGraphQL) { + await state.write.key(state.id).schedule(jobOptions, dist_bundle_noop); + } + if (isWrite && state.triggersNotification(pathname)) { + await state.notifications.key(state.id).schedule(jobOptions, dist_bundle_noop); + } + if (isSearch) { + await state.search.key(state.id).schedule(jobOptions, dist_bundle_noop); + } + const req = state.global.key(state.id).schedule(jobOptions, request, options); + if (isGraphQL) { + const res = await req; + if (res.data.errors != null && res.data.errors.some((error) => error.type === "RATE_LIMITED")) { + const error = Object.assign(new Error("GraphQL Rate Limit Exceeded"), { + response: res, + data: res.data + }); + throw error; + } + } + return req; +} + +// pkg/dist-src/generated/triggers-notification-paths.js +var triggers_notification_paths_default = [ + "/orgs/{org}/invitations", + "/orgs/{org}/invitations/{invitation_id}", + "/orgs/{org}/teams/{team_slug}/discussions", + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + "/repos/{owner}/{repo}/collaborators/{username}", + "/repos/{owner}/{repo}/commits/{commit_sha}/comments", + "/repos/{owner}/{repo}/issues", + "/repos/{owner}/{repo}/issues/{issue_number}/comments", + "/repos/{owner}/{repo}/pulls", + "/repos/{owner}/{repo}/pulls/{pull_number}/comments", + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", + "/repos/{owner}/{repo}/pulls/{pull_number}/merge", + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "/repos/{owner}/{repo}/releases", + "/teams/{team_id}/discussions", + "/teams/{team_id}/discussions/{discussion_number}/comments" +]; + +// pkg/dist-src/route-matcher.js +function routeMatcher(paths) { + const regexes = paths.map( + (path) => path.split("/").map((c) => c.startsWith("{") ? "(?:.+?)" : c).join("/") + ); + const regex2 = `^(?:${regexes.map((r) => `(?:${r})`).join("|")})[^/]*$`; + return new RegExp(regex2, "i"); +} + +// pkg/dist-src/index.js +var regex = routeMatcher(triggers_notification_paths_default); +var triggersNotification = regex.test.bind(regex); +var groups = {}; +var createGroups = function(Bottleneck, common) { + groups.global = new Bottleneck.Group({ + id: "octokit-global", + maxConcurrent: 10, + ...common + }); + groups.search = new Bottleneck.Group({ + id: "octokit-search", + maxConcurrent: 1, + minTime: 2e3, + ...common + }); + groups.write = new Bottleneck.Group({ + id: "octokit-write", + maxConcurrent: 1, + minTime: 1e3, + ...common + }); + groups.notifications = new Bottleneck.Group({ + id: "octokit-notifications", + maxConcurrent: 1, + minTime: 3e3, + ...common + }); +}; +function throttling(octokit, octokitOptions) { + const { + enabled = true, + Bottleneck = light, + id = "no-id", + timeout = 1e3 * 60 * 2, + // Redis TTL: 2 minutes + connection + } = octokitOptions.throttle || {}; + if (!enabled) { + return {}; + } + const common = { timeout }; + if (typeof connection !== "undefined") { + common.connection = connection; + } + if (groups.global == null) { + createGroups(Bottleneck, common); + } + const state = Object.assign( + { + clustering: connection != null, + triggersNotification, + fallbackSecondaryRateRetryAfter: 60, + retryAfterBaseValue: 1e3, + retryLimiter: new Bottleneck(), + id, + ...groups + }, + octokitOptions.throttle + ); + if (typeof state.onSecondaryRateLimit !== "function" || typeof state.onRateLimit !== "function") { + throw new Error(`octokit/plugin-throttling error: + You must pass the onSecondaryRateLimit and onRateLimit error handlers. + See https://octokit.github.io/rest.js/#throttling + + const octokit = new Octokit({ + throttle: { + onSecondaryRateLimit: (retryAfter, options) => {/* ... */}, + onRateLimit: (retryAfter, options) => {/* ... */} + } + }) + `); + } + const events = {}; + const emitter = new Bottleneck.Events(events); + events.on("secondary-limit", state.onSecondaryRateLimit); + events.on("rate-limit", state.onRateLimit); + events.on( + "error", + (e) => octokit.log.warn("Error in throttling-plugin limit handler", e) + ); + state.retryLimiter.on("failed", async function(error, info) { + const [state2, request, options] = info.args; + const { pathname } = new URL(options.url, "http://github.test"); + const shouldRetryGraphQL = pathname.startsWith("/graphql") && error.status !== 401; + if (!(shouldRetryGraphQL || error.status === 403 || error.status === 429)) { + return; + } + const retryCount = ~~request.retryCount; + request.retryCount = retryCount; + options.request.retryCount = retryCount; + const { wantRetry, retryAfter = 0 } = await async function() { + if (/\bsecondary rate\b/i.test(error.message)) { + const retryAfter2 = Number(error.response.headers["retry-after"]) || state2.fallbackSecondaryRateRetryAfter; + const wantRetry2 = await emitter.trigger( + "secondary-limit", + retryAfter2, + options, + octokit, + retryCount + ); + return { wantRetry: wantRetry2, retryAfter: retryAfter2 }; + } + if (error.response.headers != null && error.response.headers["x-ratelimit-remaining"] === "0" || (error.response.data?.errors ?? []).some( + (error2) => error2.type === "RATE_LIMITED" + )) { + const rateLimitReset = new Date( + ~~error.response.headers["x-ratelimit-reset"] * 1e3 + ).getTime(); + const retryAfter2 = Math.max( + // Add one second so we retry _after_ the reset time + // https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#exceeding-the-rate-limit + Math.ceil((rateLimitReset - Date.now()) / 1e3) + 1, + 0 + ); + const wantRetry2 = await emitter.trigger( + "rate-limit", + retryAfter2, + options, + octokit, + retryCount + ); + return { wantRetry: wantRetry2, retryAfter: retryAfter2 }; + } + return {}; + }(); + if (wantRetry) { + request.retryCount++; + return retryAfter * state2.retryAfterBaseValue; + } + }); + octokit.hook.wrap("request", dist_bundle_wrapRequest.bind(null, state)); + return {}; +} +throttling.VERSION = plugin_throttling_dist_bundle_VERSION; +throttling.triggersNotification = triggersNotification; + + +;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-paginate-graphql/dist-bundle/index.js +// pkg/dist-src/errors.js +var generateMessage = (path, cursorValue) => `The cursor at "${path.join( + "," +)}" did not change its value "${cursorValue}" after a page transition. Please make sure your that your query is set up correctly.`; +var MissingCursorChange = class extends Error { + constructor(pageInfo, cursorValue) { + super(generateMessage(pageInfo.pathInQuery, cursorValue)); + this.pageInfo = pageInfo; + this.cursorValue = cursorValue; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + name = "MissingCursorChangeError"; +}; +var MissingPageInfo = class extends Error { + constructor(response) { + super( + `No pageInfo property found in response. Please make sure to specify the pageInfo in your query. Response-Data: ${JSON.stringify( + response, + null, + 2 + )}` + ); + this.response = response; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + name = "MissingPageInfo"; +}; + +// pkg/dist-src/object-helpers.js +var isObject = (value) => Object.prototype.toString.call(value) === "[object Object]"; +function findPaginatedResourcePath(responseData) { + const paginatedResourcePath = deepFindPathToProperty( + responseData, + "pageInfo" + ); + if (paginatedResourcePath.length === 0) { + throw new MissingPageInfo(responseData); + } + return paginatedResourcePath; +} +var deepFindPathToProperty = (object, searchProp, path = []) => { + for (const key of Object.keys(object)) { + const currentPath = [...path, key]; + const currentValue = object[key]; + if (isObject(currentValue)) { + if (currentValue.hasOwnProperty(searchProp)) { + return currentPath; + } + const result = deepFindPathToProperty( + currentValue, + searchProp, + currentPath + ); + if (result.length > 0) { + return result; + } + } + } + return []; +}; +var get = (object, path) => { + return path.reduce((current, nextProperty) => current[nextProperty], object); +}; +var set = (object, path, mutator) => { + const lastProperty = path[path.length - 1]; + const parentPath = [...path].slice(0, -1); + const parent = get(object, parentPath); + if (typeof mutator === "function") { + parent[lastProperty] = mutator(parent[lastProperty]); + } else { + parent[lastProperty] = mutator; + } +}; + +// pkg/dist-src/extract-page-info.js +var extractPageInfos = (responseData) => { + const pageInfoPath = findPaginatedResourcePath(responseData); + return { + pathInQuery: pageInfoPath, + pageInfo: get(responseData, [...pageInfoPath, "pageInfo"]) + }; +}; + +// pkg/dist-src/page-info.js +var isForwardSearch = (givenPageInfo) => { + return givenPageInfo.hasOwnProperty("hasNextPage"); +}; +var getCursorFrom = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.endCursor : pageInfo.startCursor; +var hasAnotherPage = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.hasNextPage : pageInfo.hasPreviousPage; + +// pkg/dist-src/iterator.js +var createIterator = (octokit) => { + return (query, initialParameters = {}) => { + let nextPageExists = true; + let parameters = { ...initialParameters }; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!nextPageExists) return { done: true, value: {} }; + const response = await octokit.graphql( + query, + parameters + ); + const pageInfoContext = extractPageInfos(response); + const nextCursorValue = getCursorFrom(pageInfoContext.pageInfo); + nextPageExists = hasAnotherPage(pageInfoContext.pageInfo); + if (nextPageExists && nextCursorValue === parameters.cursor) { + throw new MissingCursorChange(pageInfoContext, nextCursorValue); + } + parameters = { + ...parameters, + cursor: nextCursorValue + }; + return { done: false, value: response }; + } + }) + }; + }; +}; + +// pkg/dist-src/merge-responses.js +var mergeResponses = (response1, response2) => { + if (Object.keys(response1).length === 0) { + return Object.assign(response1, response2); + } + const path = findPaginatedResourcePath(response1); + const nodesPath = [...path, "nodes"]; + const newNodes = get(response2, nodesPath); + if (newNodes) { + set(response1, nodesPath, (values) => { + return [...values, ...newNodes]; + }); + } + const edgesPath = [...path, "edges"]; + const newEdges = get(response2, edgesPath); + if (newEdges) { + set(response1, edgesPath, (values) => { + return [...values, ...newEdges]; + }); + } + const pageInfoPath = [...path, "pageInfo"]; + set(response1, pageInfoPath, get(response2, pageInfoPath)); + return response1; +}; + +// pkg/dist-src/paginate.js +var createPaginate = (octokit) => { + const iterator = createIterator(octokit); + return async (query, initialParameters = {}) => { + let mergedResponse = {}; + for await (const response of iterator( + query, + initialParameters + )) { + mergedResponse = mergeResponses(mergedResponse, response); + } + return mergedResponse; + }; +}; + +// pkg/dist-src/version.js +var plugin_paginate_graphql_dist_bundle_VERSION = "0.0.0-development"; + +// pkg/dist-src/index.js +function paginateGraphQL(octokit) { + return { + graphql: Object.assign(octokit.graphql, { + paginate: Object.assign(createPaginate(octokit), { + iterator: createIterator(octokit) + }) + }) + }; +} + + +// EXTERNAL MODULE: ./node_modules/@actions/core/lib/core.js +var core = __nccwpck_require__(2738); +// EXTERNAL MODULE: ./node_modules/@actions/github/lib/github.js +var github = __nccwpck_require__(3098); +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/registry/format.mjs +/** A registry for user defined string formats */ +const map = new Map(); +/** Returns the entries in this registry */ +function Entries() { + return new Map(map); +} +/** Clears all user defined string formats */ +function Clear() { + return map.clear(); +} +/** Deletes a registered format */ +function Delete(format) { + return map.delete(format); +} +/** Returns true if the user defined string format exists */ +function Has(format) { + return map.has(format); +} +/** Sets a validation function for a user defined string format */ +function format_Set(format, func) { + map.set(format, func); +} +/** Gets a validation function for a user defined string format */ +function Get(format) { + return map.get(format); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs +/** A registry for user defined types */ +const type_map = new Map(); +/** Returns the entries in this registry */ +function type_Entries() { + return new Map(type_map); +} +/** Clears all user defined types */ +function type_Clear() { + return type_map.clear(); +} +/** Deletes a registered type */ +function type_Delete(kind) { + return type_map.delete(kind); +} +/** Returns true if this registry contains this kind */ +function type_Has(kind) { + return type_map.has(kind); +} +/** Sets a validation function for a user defined type */ +function type_Set(kind, func) { + type_map.set(kind, func); +} +/** Gets a custom validation function for a user defined type */ +function type_Get(kind) { + return type_map.get(kind); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs + +/** Fast undefined check used for properties of type undefined */ +function extends_undefined_Intersect(schema) { + return schema.allOf.every((schema) => ExtendsUndefinedCheck(schema)); +} +function extends_undefined_Union(schema) { + return schema.anyOf.some((schema) => ExtendsUndefinedCheck(schema)); +} +function extends_undefined_Not(schema) { + return !ExtendsUndefinedCheck(schema.not); +} +/** Fast undefined check used for properties of type undefined */ +// prettier-ignore +function ExtendsUndefinedCheck(schema) { + return (schema[Kind] === 'Intersect' ? extends_undefined_Intersect(schema) : + schema[Kind] === 'Union' ? extends_undefined_Union(schema) : + schema[Kind] === 'Not' ? extends_undefined_Not(schema) : + schema[Kind] === 'Undefined' ? true : + false); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/errors/function.mjs + + +/** Creates an error message using en-US as the default locale */ +function DefaultErrorFunction(error) { + switch (error.errorType) { + case ValueErrorType.ArrayContains: + return 'Expected array to contain at least one matching value'; + case ValueErrorType.ArrayMaxContains: + return `Expected array to contain no more than ${error.schema.maxContains} matching values`; + case ValueErrorType.ArrayMinContains: + return `Expected array to contain at least ${error.schema.minContains} matching values`; + case ValueErrorType.ArrayMaxItems: + return `Expected array length to be less or equal to ${error.schema.maxItems}`; + case ValueErrorType.ArrayMinItems: + return `Expected array length to be greater or equal to ${error.schema.minItems}`; + case ValueErrorType.ArrayUniqueItems: + return 'Expected array elements to be unique'; + case ValueErrorType.Array: + return 'Expected array'; + case ValueErrorType.AsyncIterator: + return 'Expected AsyncIterator'; + case ValueErrorType.BigIntExclusiveMaximum: + return `Expected bigint to be less than ${error.schema.exclusiveMaximum}`; + case ValueErrorType.BigIntExclusiveMinimum: + return `Expected bigint to be greater than ${error.schema.exclusiveMinimum}`; + case ValueErrorType.BigIntMaximum: + return `Expected bigint to be less or equal to ${error.schema.maximum}`; + case ValueErrorType.BigIntMinimum: + return `Expected bigint to be greater or equal to ${error.schema.minimum}`; + case ValueErrorType.BigIntMultipleOf: + return `Expected bigint to be a multiple of ${error.schema.multipleOf}`; + case ValueErrorType.BigInt: + return 'Expected bigint'; + case ValueErrorType.Boolean: + return 'Expected boolean'; + case ValueErrorType.DateExclusiveMinimumTimestamp: + return `Expected Date timestamp to be greater than ${error.schema.exclusiveMinimumTimestamp}`; + case ValueErrorType.DateExclusiveMaximumTimestamp: + return `Expected Date timestamp to be less than ${error.schema.exclusiveMaximumTimestamp}`; + case ValueErrorType.DateMinimumTimestamp: + return `Expected Date timestamp to be greater or equal to ${error.schema.minimumTimestamp}`; + case ValueErrorType.DateMaximumTimestamp: + return `Expected Date timestamp to be less or equal to ${error.schema.maximumTimestamp}`; + case ValueErrorType.DateMultipleOfTimestamp: + return `Expected Date timestamp to be a multiple of ${error.schema.multipleOfTimestamp}`; + case ValueErrorType.Date: + return 'Expected Date'; + case ValueErrorType.Function: + return 'Expected function'; + case ValueErrorType.IntegerExclusiveMaximum: + return `Expected integer to be less than ${error.schema.exclusiveMaximum}`; + case ValueErrorType.IntegerExclusiveMinimum: + return `Expected integer to be greater than ${error.schema.exclusiveMinimum}`; + case ValueErrorType.IntegerMaximum: + return `Expected integer to be less or equal to ${error.schema.maximum}`; + case ValueErrorType.IntegerMinimum: + return `Expected integer to be greater or equal to ${error.schema.minimum}`; + case ValueErrorType.IntegerMultipleOf: + return `Expected integer to be a multiple of ${error.schema.multipleOf}`; + case ValueErrorType.Integer: + return 'Expected integer'; + case ValueErrorType.IntersectUnevaluatedProperties: + return 'Unexpected property'; + case ValueErrorType.Intersect: + return 'Expected all values to match'; + case ValueErrorType.Iterator: + return 'Expected Iterator'; + case ValueErrorType.Literal: + return `Expected ${typeof error.schema.const === 'string' ? `'${error.schema.const}'` : error.schema.const}`; + case ValueErrorType.Never: + return 'Never'; + case ValueErrorType.Not: + return 'Value should not match'; + case ValueErrorType.Null: + return 'Expected null'; + case ValueErrorType.NumberExclusiveMaximum: + return `Expected number to be less than ${error.schema.exclusiveMaximum}`; + case ValueErrorType.NumberExclusiveMinimum: + return `Expected number to be greater than ${error.schema.exclusiveMinimum}`; + case ValueErrorType.NumberMaximum: + return `Expected number to be less or equal to ${error.schema.maximum}`; + case ValueErrorType.NumberMinimum: + return `Expected number to be greater or equal to ${error.schema.minimum}`; + case ValueErrorType.NumberMultipleOf: + return `Expected number to be a multiple of ${error.schema.multipleOf}`; + case ValueErrorType.Number: + return 'Expected number'; + case ValueErrorType.Object: + return 'Expected object'; + case ValueErrorType.ObjectAdditionalProperties: + return 'Unexpected property'; + case ValueErrorType.ObjectMaxProperties: + return `Expected object to have no more than ${error.schema.maxProperties} properties`; + case ValueErrorType.ObjectMinProperties: + return `Expected object to have at least ${error.schema.minProperties} properties`; + case ValueErrorType.ObjectRequiredProperty: + return 'Expected required property'; + case ValueErrorType.Promise: + return 'Expected Promise'; + case ValueErrorType.RegExp: + return 'Expected string to match regular expression'; + case ValueErrorType.StringFormatUnknown: + return `Unknown format '${error.schema.format}'`; + case ValueErrorType.StringFormat: + return `Expected string to match '${error.schema.format}' format`; + case ValueErrorType.StringMaxLength: + return `Expected string length less or equal to ${error.schema.maxLength}`; + case ValueErrorType.StringMinLength: + return `Expected string length greater or equal to ${error.schema.minLength}`; + case ValueErrorType.StringPattern: + return `Expected string to match '${error.schema.pattern}'`; + case ValueErrorType.String: + return 'Expected string'; + case ValueErrorType.Symbol: + return 'Expected symbol'; + case ValueErrorType.TupleLength: + return `Expected tuple to have ${error.schema.maxItems || 0} elements`; + case ValueErrorType.Tuple: + return 'Expected tuple'; + case ValueErrorType.Uint8ArrayMaxByteLength: + return `Expected byte length less or equal to ${error.schema.maxByteLength}`; + case ValueErrorType.Uint8ArrayMinByteLength: + return `Expected byte length greater or equal to ${error.schema.minByteLength}`; + case ValueErrorType.Uint8Array: + return 'Expected Uint8Array'; + case ValueErrorType.Undefined: + return 'Expected undefined'; + case ValueErrorType.Union: + return 'Expected union value'; + case ValueErrorType.Void: + return 'Expected void'; + case ValueErrorType.Kind: + return `Expected kind '${error.schema[Kind]}'`; + default: + return 'Unknown error type'; + } +} +/** Manages error message providers */ +let errorFunction = DefaultErrorFunction; +/** Sets the error function used to generate error messages. */ +function SetErrorFunction(callback) { + errorFunction = callback; +} +/** Gets the error function used to generate error messages */ +function GetErrorFunction() { + return errorFunction; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/deref/deref.mjs + + + +class TypeDereferenceError extends error_TypeBoxError { + constructor(schema) { + super(`Unable to dereference schema with $id '${schema.$ref}'`); + this.schema = schema; + } +} +function Resolve(schema, references) { + const target = references.find((target) => target.$id === schema.$ref); + if (target === undefined) + throw new TypeDereferenceError(schema); + return deref_Deref(target, references); +} +/** `[Internal]` Pushes a schema onto references if the schema has an $id and does not exist on references */ +function Pushref(schema, references) { + if (!IsString(schema.$id) || references.some((target) => target.$id === schema.$id)) + return references; + references.push(schema); + return references; +} +/** `[Internal]` Dereferences a schema from the references array or throws if not found */ +function deref_Deref(schema, references) { + // prettier-ignore + return (schema[Kind] === 'This' || schema[Kind] === 'Ref') + ? Resolve(schema, references) + : schema; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/hash/hash.mjs + + +// ------------------------------------------------------------------ +// Errors +// ------------------------------------------------------------------ +class ValueHashError extends error_TypeBoxError { + constructor(value) { + super(`Unable to hash value`); + this.value = value; + } +} +// ------------------------------------------------------------------ +// ByteMarker +// ------------------------------------------------------------------ +var ByteMarker; +(function (ByteMarker) { + ByteMarker[ByteMarker["Undefined"] = 0] = "Undefined"; + ByteMarker[ByteMarker["Null"] = 1] = "Null"; + ByteMarker[ByteMarker["Boolean"] = 2] = "Boolean"; + ByteMarker[ByteMarker["Number"] = 3] = "Number"; + ByteMarker[ByteMarker["String"] = 4] = "String"; + ByteMarker[ByteMarker["Object"] = 5] = "Object"; + ByteMarker[ByteMarker["Array"] = 6] = "Array"; + ByteMarker[ByteMarker["Date"] = 7] = "Date"; + ByteMarker[ByteMarker["Uint8Array"] = 8] = "Uint8Array"; + ByteMarker[ByteMarker["Symbol"] = 9] = "Symbol"; + ByteMarker[ByteMarker["BigInt"] = 10] = "BigInt"; +})(ByteMarker || (ByteMarker = {})); +// ------------------------------------------------------------------ +// State +// ------------------------------------------------------------------ +let Accumulator = BigInt('14695981039346656037'); +const [Prime, Size] = [BigInt('1099511628211'), BigInt('18446744073709551616' /* 2 ^ 64 */)]; +const Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i)); +const F64 = new Float64Array(1); +const F64In = new DataView(F64.buffer); +const F64Out = new Uint8Array(F64.buffer); +// ------------------------------------------------------------------ +// NumberToBytes +// ------------------------------------------------------------------ +function* NumberToBytes(value) { + const byteCount = value === 0 ? 1 : Math.ceil(Math.floor(Math.log2(value) + 1) / 8); + for (let i = 0; i < byteCount; i++) { + yield (value >> (8 * (byteCount - 1 - i))) & 0xff; + } +} +// ------------------------------------------------------------------ +// Hashing Functions +// ------------------------------------------------------------------ +function hash_ArrayType(value) { + FNV1A64(ByteMarker.Array); + for (const item of value) { + hash_Visit(item); + } +} +function BooleanType(value) { + FNV1A64(ByteMarker.Boolean); + FNV1A64(value ? 1 : 0); +} +function BigIntType(value) { + FNV1A64(ByteMarker.BigInt); + F64In.setBigInt64(0, value); + for (const byte of F64Out) { + FNV1A64(byte); + } +} +function hash_DateType(value) { + FNV1A64(ByteMarker.Date); + hash_Visit(value.getTime()); +} +function NullType(value) { + FNV1A64(ByteMarker.Null); +} +function NumberType(value) { + FNV1A64(ByteMarker.Number); + F64In.setFloat64(0, value); + for (const byte of F64Out) { + FNV1A64(byte); + } +} +function hash_ObjectType(value) { + FNV1A64(ByteMarker.Object); + for (const key of globalThis.Object.getOwnPropertyNames(value).sort()) { + hash_Visit(key); + hash_Visit(value[key]); + } +} +function StringType(value) { + FNV1A64(ByteMarker.String); + for (let i = 0; i < value.length; i++) { + for (const byte of NumberToBytes(value.charCodeAt(i))) { + FNV1A64(byte); + } + } +} +function SymbolType(value) { + FNV1A64(ByteMarker.Symbol); + hash_Visit(value.description); +} +function hash_Uint8ArrayType(value) { + FNV1A64(ByteMarker.Uint8Array); + for (let i = 0; i < value.length; i++) { + FNV1A64(value[i]); + } +} +function UndefinedType(value) { + return FNV1A64(ByteMarker.Undefined); +} +function hash_Visit(value) { + if (IsArray(value)) + return hash_ArrayType(value); + if (IsBoolean(value)) + return BooleanType(value); + if (IsBigInt(value)) + return BigIntType(value); + if (IsDate(value)) + return hash_DateType(value); + if (IsNull(value)) + return NullType(value); + if (IsNumber(value)) + return NumberType(value); + if (IsObject(value)) + return hash_ObjectType(value); + if (IsString(value)) + return StringType(value); + if (IsSymbol(value)) + return SymbolType(value); + if (IsUint8Array(value)) + return hash_Uint8ArrayType(value); + if (IsUndefined(value)) + return UndefinedType(value); + throw new ValueHashError(value); +} +function FNV1A64(byte) { + Accumulator = Accumulator ^ Bytes[byte]; + Accumulator = (Accumulator * Prime) % Size; +} +// ------------------------------------------------------------------ +// Hash +// ------------------------------------------------------------------ +/** Creates a FNV1A-64 non cryptographic hash of the given value */ +function Hash(value) { + Accumulator = BigInt('14695981039346656037'); + hash_Visit(value); + return Accumulator; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/check/check.mjs + + + + + + + + + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// KindGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// Errors +// ------------------------------------------------------------------ +class ValueCheckUnknownTypeError extends error_TypeBoxError { + constructor(schema) { + super(`Unknown type`); + this.schema = schema; + } +} +// ------------------------------------------------------------------ +// TypeGuards +// ------------------------------------------------------------------ +function IsAnyOrUnknown(schema) { + return schema[Kind] === 'Any' || schema[Kind] === 'Unknown'; +} +// ------------------------------------------------------------------ +// Guards +// ------------------------------------------------------------------ +function IsDefined(value) { + return value !== undefined; +} +// ------------------------------------------------------------------ +// Types +// ------------------------------------------------------------------ +function check_FromAny(schema, references, value) { + return true; +} +function check_FromArray(schema, references, value) { + if (!IsArray(value)) + return false; + if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) { + return false; + } + if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) { + return false; + } + if (!value.every((value) => check_Visit(schema.items, references, value))) { + return false; + } + // prettier-ignore + if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) { + const hashed = Hash(element); + if (set.has(hashed)) { + return false; + } + else { + set.add(hashed); + } + } return true; })())) { + return false; + } + // contains + if (!(IsDefined(schema.contains) || IsNumber(schema.minContains) || IsNumber(schema.maxContains))) { + return true; // exit + } + const containsSchema = IsDefined(schema.contains) ? schema.contains : Never(); + const containsCount = value.reduce((acc, value) => (check_Visit(containsSchema, references, value) ? acc + 1 : acc), 0); + if (containsCount === 0) { + return false; + } + if (IsNumber(schema.minContains) && containsCount < schema.minContains) { + return false; + } + if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) { + return false; + } + return true; +} +function check_FromAsyncIterator(schema, references, value) { + return IsAsyncIterator(value); +} +function check_FromBigInt(schema, references, value) { + if (!IsBigInt(value)) + return false; + if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { + return false; + } + if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { + return false; + } + if (IsDefined(schema.maximum) && !(value <= schema.maximum)) { + return false; + } + if (IsDefined(schema.minimum) && !(value >= schema.minimum)) { + return false; + } + if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) { + return false; + } + return true; +} +function check_FromBoolean(schema, references, value) { + return IsBoolean(value); +} +function check_FromConstructor(schema, references, value) { + return check_Visit(schema.returns, references, value.prototype); +} +function check_FromDate(schema, references, value) { + if (!IsDate(value)) + return false; + if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) { + return false; + } + if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) { + return false; + } + if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) { + return false; + } + if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) { + return false; + } + if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) { + return false; + } + return true; +} +function check_FromFunction(schema, references, value) { + return IsFunction(value); +} +function FromImport(schema, references, value) { + const definitions = globalThis.Object.values(schema.$defs); + const target = schema.$defs[schema.$ref]; + return check_Visit(target, [...references, ...definitions], value); +} +function check_FromInteger(schema, references, value) { + if (!IsInteger(value)) { + return false; + } + if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { + return false; + } + if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { + return false; + } + if (IsDefined(schema.maximum) && !(value <= schema.maximum)) { + return false; + } + if (IsDefined(schema.minimum) && !(value >= schema.minimum)) { + return false; + } + if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { + return false; + } + return true; +} +function check_FromIntersect(schema, references, value) { + const check1 = schema.allOf.every((schema) => check_Visit(schema, references, value)); + if (schema.unevaluatedProperties === false) { + const keyPattern = new RegExp(KeyOfPattern(schema)); + const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key)); + return check1 && check2; + } + else if (IsSchema(schema.unevaluatedProperties)) { + const keyCheck = new RegExp(KeyOfPattern(schema)); + const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || check_Visit(schema.unevaluatedProperties, references, value[key])); + return check1 && check2; + } + else { + return check1; + } +} +function check_FromIterator(schema, references, value) { + return IsIterator(value); +} +function check_FromLiteral(schema, references, value) { + return value === schema.const; +} +function check_FromNever(schema, references, value) { + return false; +} +function check_FromNot(schema, references, value) { + return !check_Visit(schema.not, references, value); +} +function check_FromNull(schema, references, value) { + return IsNull(value); +} +function check_FromNumber(schema, references, value) { + if (!TypeSystemPolicy.IsNumberLike(value)) + return false; + if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { + return false; + } + if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { + return false; + } + if (IsDefined(schema.minimum) && !(value >= schema.minimum)) { + return false; + } + if (IsDefined(schema.maximum) && !(value <= schema.maximum)) { + return false; + } + if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { + return false; + } + return true; +} +function check_FromObject(schema, references, value) { + if (!TypeSystemPolicy.IsObjectLike(value)) + return false; + if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { + return false; + } + if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { + return false; + } + const knownKeys = Object.getOwnPropertyNames(schema.properties); + for (const knownKey of knownKeys) { + const property = schema.properties[knownKey]; + if (schema.required && schema.required.includes(knownKey)) { + if (!check_Visit(property, references, value[knownKey])) { + return false; + } + if ((ExtendsUndefinedCheck(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) { + return false; + } + } + else { + if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !check_Visit(property, references, value[knownKey])) { + return false; + } + } + } + if (schema.additionalProperties === false) { + const valueKeys = Object.getOwnPropertyNames(value); + // optimization: value is valid if schemaKey length matches the valueKey length + if (schema.required && schema.required.length === knownKeys.length && valueKeys.length === knownKeys.length) { + return true; + } + else { + return valueKeys.every((valueKey) => knownKeys.includes(valueKey)); + } + } + else if (typeof schema.additionalProperties === 'object') { + const valueKeys = Object.getOwnPropertyNames(value); + return valueKeys.every((key) => knownKeys.includes(key) || check_Visit(schema.additionalProperties, references, value[key])); + } + else { + return true; + } +} +function check_FromPromise(schema, references, value) { + return IsPromise(value); +} +function check_FromRecord(schema, references, value) { + if (!TypeSystemPolicy.IsRecordLike(value)) { + return false; + } + if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { + return false; + } + if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { + return false; + } + const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0]; + const regex = new RegExp(patternKey); + // prettier-ignore + const check1 = Object.entries(value).every(([key, value]) => { + return (regex.test(key)) ? check_Visit(patternSchema, references, value) : true; + }); + // prettier-ignore + const check2 = typeof schema.additionalProperties === 'object' ? Object.entries(value).every(([key, value]) => { + return (!regex.test(key)) ? check_Visit(schema.additionalProperties, references, value) : true; + }) : true; + const check3 = schema.additionalProperties === false + ? Object.getOwnPropertyNames(value).every((key) => { + return regex.test(key); + }) + : true; + return check1 && check2 && check3; +} +function check_FromRef(schema, references, value) { + return check_Visit(deref_Deref(schema, references), references, value); +} +function check_FromRegExp(schema, references, value) { + const regex = new RegExp(schema.source, schema.flags); + if (IsDefined(schema.minLength)) { + if (!(value.length >= schema.minLength)) + return false; + } + if (IsDefined(schema.maxLength)) { + if (!(value.length <= schema.maxLength)) + return false; + } + return regex.test(value); +} +function check_FromString(schema, references, value) { + if (!IsString(value)) { + return false; + } + if (IsDefined(schema.minLength)) { + if (!(value.length >= schema.minLength)) + return false; + } + if (IsDefined(schema.maxLength)) { + if (!(value.length <= schema.maxLength)) + return false; + } + if (IsDefined(schema.pattern)) { + const regex = new RegExp(schema.pattern); + if (!regex.test(value)) + return false; + } + if (IsDefined(schema.format)) { + if (!Has(schema.format)) + return false; + const func = Get(schema.format); + return func(value); + } + return true; +} +function check_FromSymbol(schema, references, value) { + return IsSymbol(value); +} +function check_FromTemplateLiteral(schema, references, value) { + return IsString(value) && new RegExp(schema.pattern).test(value); +} +function FromThis(schema, references, value) { + return check_Visit(deref_Deref(schema, references), references, value); +} +function check_FromTuple(schema, references, value) { + if (!IsArray(value)) { + return false; + } + if (schema.items === undefined && !(value.length === 0)) { + return false; + } + if (!(value.length === schema.maxItems)) { + return false; + } + if (!schema.items) { + return true; + } + for (let i = 0; i < schema.items.length; i++) { + if (!check_Visit(schema.items[i], references, value[i])) + return false; + } + return true; +} +function check_FromUndefined(schema, references, value) { + return IsUndefined(value); +} +function check_FromUnion(schema, references, value) { + return schema.anyOf.some((inner) => check_Visit(inner, references, value)); +} +function check_FromUint8Array(schema, references, value) { + if (!IsUint8Array(value)) { + return false; + } + if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) { + return false; + } + if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) { + return false; + } + return true; +} +function check_FromUnknown(schema, references, value) { + return true; +} +function check_FromVoid(schema, references, value) { + return TypeSystemPolicy.IsVoidLike(value); +} +function FromKind(schema, references, value) { + if (!type_Has(schema[Kind])) + return false; + const func = type_Get(schema[Kind]); + return func(schema, value); +} +function check_Visit(schema, references, value) { + const references_ = IsDefined(schema.$id) ? Pushref(schema, references) : references; + const schema_ = schema; + switch (schema_[Kind]) { + case 'Any': + return check_FromAny(schema_, references_, value); + case 'Array': + return check_FromArray(schema_, references_, value); + case 'AsyncIterator': + return check_FromAsyncIterator(schema_, references_, value); + case 'BigInt': + return check_FromBigInt(schema_, references_, value); + case 'Boolean': + return check_FromBoolean(schema_, references_, value); + case 'Constructor': + return check_FromConstructor(schema_, references_, value); + case 'Date': + return check_FromDate(schema_, references_, value); + case 'Function': + return check_FromFunction(schema_, references_, value); + case 'Import': + return FromImport(schema_, references_, value); + case 'Integer': + return check_FromInteger(schema_, references_, value); + case 'Intersect': + return check_FromIntersect(schema_, references_, value); + case 'Iterator': + return check_FromIterator(schema_, references_, value); + case 'Literal': + return check_FromLiteral(schema_, references_, value); + case 'Never': + return check_FromNever(schema_, references_, value); + case 'Not': + return check_FromNot(schema_, references_, value); + case 'Null': + return check_FromNull(schema_, references_, value); + case 'Number': + return check_FromNumber(schema_, references_, value); + case 'Object': + return check_FromObject(schema_, references_, value); + case 'Promise': + return check_FromPromise(schema_, references_, value); + case 'Record': + return check_FromRecord(schema_, references_, value); + case 'Ref': + return check_FromRef(schema_, references_, value); + case 'RegExp': + return check_FromRegExp(schema_, references_, value); + case 'String': + return check_FromString(schema_, references_, value); + case 'Symbol': + return check_FromSymbol(schema_, references_, value); + case 'TemplateLiteral': + return check_FromTemplateLiteral(schema_, references_, value); + case 'This': + return FromThis(schema_, references_, value); + case 'Tuple': + return check_FromTuple(schema_, references_, value); + case 'Undefined': + return check_FromUndefined(schema_, references_, value); + case 'Union': + return check_FromUnion(schema_, references_, value); + case 'Uint8Array': + return check_FromUint8Array(schema_, references_, value); + case 'Unknown': + return check_FromUnknown(schema_, references_, value); + case 'Void': + return check_FromVoid(schema_, references_, value); + default: + if (!type_Has(schema_[Kind])) + throw new ValueCheckUnknownTypeError(schema_); + return FromKind(schema_, references_, value); + } +} +/** Returns true if the value matches the given type. */ +function Check(...args) { + return args.length === 3 ? check_Visit(args[0], args[1], args[2]) : check_Visit(args[0], [], args[1]); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/errors/errors.mjs + + + + + + + + + + + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ +// prettier-ignore + +// ------------------------------------------------------------------ +// ValueErrorType +// ------------------------------------------------------------------ +var ValueErrorType; +(function (ValueErrorType) { + ValueErrorType[ValueErrorType["ArrayContains"] = 0] = "ArrayContains"; + ValueErrorType[ValueErrorType["ArrayMaxContains"] = 1] = "ArrayMaxContains"; + ValueErrorType[ValueErrorType["ArrayMaxItems"] = 2] = "ArrayMaxItems"; + ValueErrorType[ValueErrorType["ArrayMinContains"] = 3] = "ArrayMinContains"; + ValueErrorType[ValueErrorType["ArrayMinItems"] = 4] = "ArrayMinItems"; + ValueErrorType[ValueErrorType["ArrayUniqueItems"] = 5] = "ArrayUniqueItems"; + ValueErrorType[ValueErrorType["Array"] = 6] = "Array"; + ValueErrorType[ValueErrorType["AsyncIterator"] = 7] = "AsyncIterator"; + ValueErrorType[ValueErrorType["BigIntExclusiveMaximum"] = 8] = "BigIntExclusiveMaximum"; + ValueErrorType[ValueErrorType["BigIntExclusiveMinimum"] = 9] = "BigIntExclusiveMinimum"; + ValueErrorType[ValueErrorType["BigIntMaximum"] = 10] = "BigIntMaximum"; + ValueErrorType[ValueErrorType["BigIntMinimum"] = 11] = "BigIntMinimum"; + ValueErrorType[ValueErrorType["BigIntMultipleOf"] = 12] = "BigIntMultipleOf"; + ValueErrorType[ValueErrorType["BigInt"] = 13] = "BigInt"; + ValueErrorType[ValueErrorType["Boolean"] = 14] = "Boolean"; + ValueErrorType[ValueErrorType["DateExclusiveMaximumTimestamp"] = 15] = "DateExclusiveMaximumTimestamp"; + ValueErrorType[ValueErrorType["DateExclusiveMinimumTimestamp"] = 16] = "DateExclusiveMinimumTimestamp"; + ValueErrorType[ValueErrorType["DateMaximumTimestamp"] = 17] = "DateMaximumTimestamp"; + ValueErrorType[ValueErrorType["DateMinimumTimestamp"] = 18] = "DateMinimumTimestamp"; + ValueErrorType[ValueErrorType["DateMultipleOfTimestamp"] = 19] = "DateMultipleOfTimestamp"; + ValueErrorType[ValueErrorType["Date"] = 20] = "Date"; + ValueErrorType[ValueErrorType["Function"] = 21] = "Function"; + ValueErrorType[ValueErrorType["IntegerExclusiveMaximum"] = 22] = "IntegerExclusiveMaximum"; + ValueErrorType[ValueErrorType["IntegerExclusiveMinimum"] = 23] = "IntegerExclusiveMinimum"; + ValueErrorType[ValueErrorType["IntegerMaximum"] = 24] = "IntegerMaximum"; + ValueErrorType[ValueErrorType["IntegerMinimum"] = 25] = "IntegerMinimum"; + ValueErrorType[ValueErrorType["IntegerMultipleOf"] = 26] = "IntegerMultipleOf"; + ValueErrorType[ValueErrorType["Integer"] = 27] = "Integer"; + ValueErrorType[ValueErrorType["IntersectUnevaluatedProperties"] = 28] = "IntersectUnevaluatedProperties"; + ValueErrorType[ValueErrorType["Intersect"] = 29] = "Intersect"; + ValueErrorType[ValueErrorType["Iterator"] = 30] = "Iterator"; + ValueErrorType[ValueErrorType["Kind"] = 31] = "Kind"; + ValueErrorType[ValueErrorType["Literal"] = 32] = "Literal"; + ValueErrorType[ValueErrorType["Never"] = 33] = "Never"; + ValueErrorType[ValueErrorType["Not"] = 34] = "Not"; + ValueErrorType[ValueErrorType["Null"] = 35] = "Null"; + ValueErrorType[ValueErrorType["NumberExclusiveMaximum"] = 36] = "NumberExclusiveMaximum"; + ValueErrorType[ValueErrorType["NumberExclusiveMinimum"] = 37] = "NumberExclusiveMinimum"; + ValueErrorType[ValueErrorType["NumberMaximum"] = 38] = "NumberMaximum"; + ValueErrorType[ValueErrorType["NumberMinimum"] = 39] = "NumberMinimum"; + ValueErrorType[ValueErrorType["NumberMultipleOf"] = 40] = "NumberMultipleOf"; + ValueErrorType[ValueErrorType["Number"] = 41] = "Number"; + ValueErrorType[ValueErrorType["ObjectAdditionalProperties"] = 42] = "ObjectAdditionalProperties"; + ValueErrorType[ValueErrorType["ObjectMaxProperties"] = 43] = "ObjectMaxProperties"; + ValueErrorType[ValueErrorType["ObjectMinProperties"] = 44] = "ObjectMinProperties"; + ValueErrorType[ValueErrorType["ObjectRequiredProperty"] = 45] = "ObjectRequiredProperty"; + ValueErrorType[ValueErrorType["Object"] = 46] = "Object"; + ValueErrorType[ValueErrorType["Promise"] = 47] = "Promise"; + ValueErrorType[ValueErrorType["RegExp"] = 48] = "RegExp"; + ValueErrorType[ValueErrorType["StringFormatUnknown"] = 49] = "StringFormatUnknown"; + ValueErrorType[ValueErrorType["StringFormat"] = 50] = "StringFormat"; + ValueErrorType[ValueErrorType["StringMaxLength"] = 51] = "StringMaxLength"; + ValueErrorType[ValueErrorType["StringMinLength"] = 52] = "StringMinLength"; + ValueErrorType[ValueErrorType["StringPattern"] = 53] = "StringPattern"; + ValueErrorType[ValueErrorType["String"] = 54] = "String"; + ValueErrorType[ValueErrorType["Symbol"] = 55] = "Symbol"; + ValueErrorType[ValueErrorType["TupleLength"] = 56] = "TupleLength"; + ValueErrorType[ValueErrorType["Tuple"] = 57] = "Tuple"; + ValueErrorType[ValueErrorType["Uint8ArrayMaxByteLength"] = 58] = "Uint8ArrayMaxByteLength"; + ValueErrorType[ValueErrorType["Uint8ArrayMinByteLength"] = 59] = "Uint8ArrayMinByteLength"; + ValueErrorType[ValueErrorType["Uint8Array"] = 60] = "Uint8Array"; + ValueErrorType[ValueErrorType["Undefined"] = 61] = "Undefined"; + ValueErrorType[ValueErrorType["Union"] = 62] = "Union"; + ValueErrorType[ValueErrorType["Void"] = 63] = "Void"; +})(ValueErrorType || (ValueErrorType = {})); +// ------------------------------------------------------------------ +// ValueErrors +// ------------------------------------------------------------------ +class ValueErrorsUnknownTypeError extends error_TypeBoxError { + constructor(schema) { + super('Unknown type'); + this.schema = schema; + } +} +// ------------------------------------------------------------------ +// EscapeKey +// ------------------------------------------------------------------ +function EscapeKey(key) { + return key.replace(/~/g, '~0').replace(/\//g, '~1'); // RFC6901 Path +} +// ------------------------------------------------------------------ +// Guards +// ------------------------------------------------------------------ +function errors_IsDefined(value) { + return value !== undefined; +} +// ------------------------------------------------------------------ +// ValueErrorIterator +// ------------------------------------------------------------------ +class ValueErrorIterator { + constructor(iterator) { + this.iterator = iterator; + } + [Symbol.iterator]() { + return this.iterator; + } + /** Returns the first value error or undefined if no errors */ + First() { + const next = this.iterator.next(); + return next.done ? undefined : next.value; + } +} +// -------------------------------------------------------------------------- +// Create +// -------------------------------------------------------------------------- +function Create(errorType, schema, path, value, errors = []) { + return { + type: errorType, + schema, + path, + value, + message: GetErrorFunction()({ errorType, path, schema, value, errors }), + errors, + }; +} +// -------------------------------------------------------------------------- +// Types +// -------------------------------------------------------------------------- +function* errors_FromAny(schema, references, path, value) { } +function* errors_FromArray(schema, references, path, value) { + if (!IsArray(value)) { + return yield Create(ValueErrorType.Array, schema, path, value); + } + if (errors_IsDefined(schema.minItems) && !(value.length >= schema.minItems)) { + yield Create(ValueErrorType.ArrayMinItems, schema, path, value); + } + if (errors_IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) { + yield Create(ValueErrorType.ArrayMaxItems, schema, path, value); + } + for (let i = 0; i < value.length; i++) { + yield* errors_Visit(schema.items, references, `${path}/${i}`, value[i]); + } + // prettier-ignore + if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) { + const hashed = Hash(element); + if (set.has(hashed)) { + return false; + } + else { + set.add(hashed); + } + } return true; })())) { + yield Create(ValueErrorType.ArrayUniqueItems, schema, path, value); + } + // contains + if (!(errors_IsDefined(schema.contains) || errors_IsDefined(schema.minContains) || errors_IsDefined(schema.maxContains))) { + return; + } + const containsSchema = errors_IsDefined(schema.contains) ? schema.contains : Never(); + const containsCount = value.reduce((acc, value, index) => (errors_Visit(containsSchema, references, `${path}${index}`, value).next().done === true ? acc + 1 : acc), 0); + if (containsCount === 0) { + yield Create(ValueErrorType.ArrayContains, schema, path, value); + } + if (IsNumber(schema.minContains) && containsCount < schema.minContains) { + yield Create(ValueErrorType.ArrayMinContains, schema, path, value); + } + if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) { + yield Create(ValueErrorType.ArrayMaxContains, schema, path, value); + } +} +function* errors_FromAsyncIterator(schema, references, path, value) { + if (!IsAsyncIterator(value)) + yield Create(ValueErrorType.AsyncIterator, schema, path, value); +} +function* errors_FromBigInt(schema, references, path, value) { + if (!IsBigInt(value)) + return yield Create(ValueErrorType.BigInt, schema, path, value); + if (errors_IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { + yield Create(ValueErrorType.BigIntExclusiveMaximum, schema, path, value); + } + if (errors_IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { + yield Create(ValueErrorType.BigIntExclusiveMinimum, schema, path, value); + } + if (errors_IsDefined(schema.maximum) && !(value <= schema.maximum)) { + yield Create(ValueErrorType.BigIntMaximum, schema, path, value); + } + if (errors_IsDefined(schema.minimum) && !(value >= schema.minimum)) { + yield Create(ValueErrorType.BigIntMinimum, schema, path, value); + } + if (errors_IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) { + yield Create(ValueErrorType.BigIntMultipleOf, schema, path, value); + } +} +function* errors_FromBoolean(schema, references, path, value) { + if (!IsBoolean(value)) + yield Create(ValueErrorType.Boolean, schema, path, value); +} +function* errors_FromConstructor(schema, references, path, value) { + yield* errors_Visit(schema.returns, references, path, value.prototype); +} +function* errors_FromDate(schema, references, path, value) { + if (!IsDate(value)) + return yield Create(ValueErrorType.Date, schema, path, value); + if (errors_IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) { + yield Create(ValueErrorType.DateExclusiveMaximumTimestamp, schema, path, value); + } + if (errors_IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) { + yield Create(ValueErrorType.DateExclusiveMinimumTimestamp, schema, path, value); + } + if (errors_IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) { + yield Create(ValueErrorType.DateMaximumTimestamp, schema, path, value); + } + if (errors_IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) { + yield Create(ValueErrorType.DateMinimumTimestamp, schema, path, value); + } + if (errors_IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) { + yield Create(ValueErrorType.DateMultipleOfTimestamp, schema, path, value); + } +} +function* errors_FromFunction(schema, references, path, value) { + if (!IsFunction(value)) + yield Create(ValueErrorType.Function, schema, path, value); +} +function* errors_FromImport(schema, references, path, value) { + const definitions = globalThis.Object.values(schema.$defs); + const target = schema.$defs[schema.$ref]; + yield* errors_Visit(target, [...references, ...definitions], path, value); +} +function* errors_FromInteger(schema, references, path, value) { + if (!IsInteger(value)) + return yield Create(ValueErrorType.Integer, schema, path, value); + if (errors_IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { + yield Create(ValueErrorType.IntegerExclusiveMaximum, schema, path, value); + } + if (errors_IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { + yield Create(ValueErrorType.IntegerExclusiveMinimum, schema, path, value); + } + if (errors_IsDefined(schema.maximum) && !(value <= schema.maximum)) { + yield Create(ValueErrorType.IntegerMaximum, schema, path, value); + } + if (errors_IsDefined(schema.minimum) && !(value >= schema.minimum)) { + yield Create(ValueErrorType.IntegerMinimum, schema, path, value); + } + if (errors_IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { + yield Create(ValueErrorType.IntegerMultipleOf, schema, path, value); + } +} +function* errors_FromIntersect(schema, references, path, value) { + let hasError = false; + for (const inner of schema.allOf) { + for (const error of errors_Visit(inner, references, path, value)) { + hasError = true; + yield error; + } + } + if (hasError) { + return yield Create(ValueErrorType.Intersect, schema, path, value); + } + if (schema.unevaluatedProperties === false) { + const keyCheck = new RegExp(KeyOfPattern(schema)); + for (const valueKey of Object.getOwnPropertyNames(value)) { + if (!keyCheck.test(valueKey)) { + yield Create(ValueErrorType.IntersectUnevaluatedProperties, schema, `${path}/${valueKey}`, value); + } + } + } + if (typeof schema.unevaluatedProperties === 'object') { + const keyCheck = new RegExp(KeyOfPattern(schema)); + for (const valueKey of Object.getOwnPropertyNames(value)) { + if (!keyCheck.test(valueKey)) { + const next = errors_Visit(schema.unevaluatedProperties, references, `${path}/${valueKey}`, value[valueKey]).next(); + if (!next.done) + yield next.value; // yield interior + } + } + } +} +function* errors_FromIterator(schema, references, path, value) { + if (!IsIterator(value)) + yield Create(ValueErrorType.Iterator, schema, path, value); +} +function* errors_FromLiteral(schema, references, path, value) { + if (!(value === schema.const)) + yield Create(ValueErrorType.Literal, schema, path, value); +} +function* errors_FromNever(schema, references, path, value) { + yield Create(ValueErrorType.Never, schema, path, value); +} +function* errors_FromNot(schema, references, path, value) { + if (errors_Visit(schema.not, references, path, value).next().done === true) + yield Create(ValueErrorType.Not, schema, path, value); +} +function* errors_FromNull(schema, references, path, value) { + if (!IsNull(value)) + yield Create(ValueErrorType.Null, schema, path, value); +} +function* errors_FromNumber(schema, references, path, value) { + if (!TypeSystemPolicy.IsNumberLike(value)) + return yield Create(ValueErrorType.Number, schema, path, value); + if (errors_IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { + yield Create(ValueErrorType.NumberExclusiveMaximum, schema, path, value); + } + if (errors_IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { + yield Create(ValueErrorType.NumberExclusiveMinimum, schema, path, value); + } + if (errors_IsDefined(schema.maximum) && !(value <= schema.maximum)) { + yield Create(ValueErrorType.NumberMaximum, schema, path, value); + } + if (errors_IsDefined(schema.minimum) && !(value >= schema.minimum)) { + yield Create(ValueErrorType.NumberMinimum, schema, path, value); + } + if (errors_IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { + yield Create(ValueErrorType.NumberMultipleOf, schema, path, value); + } +} +function* errors_FromObject(schema, references, path, value) { + if (!TypeSystemPolicy.IsObjectLike(value)) + return yield Create(ValueErrorType.Object, schema, path, value); + if (errors_IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { + yield Create(ValueErrorType.ObjectMinProperties, schema, path, value); + } + if (errors_IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { + yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value); + } + const requiredKeys = Array.isArray(schema.required) ? schema.required : []; + const knownKeys = Object.getOwnPropertyNames(schema.properties); + const unknownKeys = Object.getOwnPropertyNames(value); + for (const requiredKey of requiredKeys) { + if (unknownKeys.includes(requiredKey)) + continue; + yield Create(ValueErrorType.ObjectRequiredProperty, schema.properties[requiredKey], `${path}/${EscapeKey(requiredKey)}`, undefined); + } + if (schema.additionalProperties === false) { + for (const valueKey of unknownKeys) { + if (!knownKeys.includes(valueKey)) { + yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(valueKey)}`, value[valueKey]); + } + } + } + if (typeof schema.additionalProperties === 'object') { + for (const valueKey of unknownKeys) { + if (knownKeys.includes(valueKey)) + continue; + yield* errors_Visit(schema.additionalProperties, references, `${path}/${EscapeKey(valueKey)}`, value[valueKey]); + } + } + for (const knownKey of knownKeys) { + const property = schema.properties[knownKey]; + if (schema.required && schema.required.includes(knownKey)) { + yield* errors_Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]); + if (ExtendsUndefinedCheck(schema) && !(knownKey in value)) { + yield Create(ValueErrorType.ObjectRequiredProperty, property, `${path}/${EscapeKey(knownKey)}`, undefined); + } + } + else { + if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey)) { + yield* errors_Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]); + } + } + } +} +function* errors_FromPromise(schema, references, path, value) { + if (!IsPromise(value)) + yield Create(ValueErrorType.Promise, schema, path, value); +} +function* errors_FromRecord(schema, references, path, value) { + if (!TypeSystemPolicy.IsRecordLike(value)) + return yield Create(ValueErrorType.Object, schema, path, value); + if (errors_IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { + yield Create(ValueErrorType.ObjectMinProperties, schema, path, value); + } + if (errors_IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { + yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value); + } + const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0]; + const regex = new RegExp(patternKey); + for (const [propertyKey, propertyValue] of Object.entries(value)) { + if (regex.test(propertyKey)) + yield* errors_Visit(patternSchema, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue); + } + if (typeof schema.additionalProperties === 'object') { + for (const [propertyKey, propertyValue] of Object.entries(value)) { + if (!regex.test(propertyKey)) + yield* errors_Visit(schema.additionalProperties, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue); + } + } + if (schema.additionalProperties === false) { + for (const [propertyKey, propertyValue] of Object.entries(value)) { + if (regex.test(propertyKey)) + continue; + return yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(propertyKey)}`, propertyValue); + } + } +} +function* errors_FromRef(schema, references, path, value) { + yield* errors_Visit(deref_Deref(schema, references), references, path, value); +} +function* errors_FromRegExp(schema, references, path, value) { + if (!IsString(value)) + return yield Create(ValueErrorType.String, schema, path, value); + if (errors_IsDefined(schema.minLength) && !(value.length >= schema.minLength)) { + yield Create(ValueErrorType.StringMinLength, schema, path, value); + } + if (errors_IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) { + yield Create(ValueErrorType.StringMaxLength, schema, path, value); + } + const regex = new RegExp(schema.source, schema.flags); + if (!regex.test(value)) { + return yield Create(ValueErrorType.RegExp, schema, path, value); + } +} +function* errors_FromString(schema, references, path, value) { + if (!IsString(value)) + return yield Create(ValueErrorType.String, schema, path, value); + if (errors_IsDefined(schema.minLength) && !(value.length >= schema.minLength)) { + yield Create(ValueErrorType.StringMinLength, schema, path, value); + } + if (errors_IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) { + yield Create(ValueErrorType.StringMaxLength, schema, path, value); + } + if (IsString(schema.pattern)) { + const regex = new RegExp(schema.pattern); + if (!regex.test(value)) { + yield Create(ValueErrorType.StringPattern, schema, path, value); + } + } + if (IsString(schema.format)) { + if (!Has(schema.format)) { + yield Create(ValueErrorType.StringFormatUnknown, schema, path, value); + } + else { + const format = Get(schema.format); + if (!format(value)) { + yield Create(ValueErrorType.StringFormat, schema, path, value); + } + } + } +} +function* errors_FromSymbol(schema, references, path, value) { + if (!IsSymbol(value)) + yield Create(ValueErrorType.Symbol, schema, path, value); +} +function* errors_FromTemplateLiteral(schema, references, path, value) { + if (!IsString(value)) + return yield Create(ValueErrorType.String, schema, path, value); + const regex = new RegExp(schema.pattern); + if (!regex.test(value)) { + yield Create(ValueErrorType.StringPattern, schema, path, value); + } +} +function* errors_FromThis(schema, references, path, value) { + yield* errors_Visit(deref_Deref(schema, references), references, path, value); +} +function* errors_FromTuple(schema, references, path, value) { + if (!IsArray(value)) + return yield Create(ValueErrorType.Tuple, schema, path, value); + if (schema.items === undefined && !(value.length === 0)) { + return yield Create(ValueErrorType.TupleLength, schema, path, value); + } + if (!(value.length === schema.maxItems)) { + return yield Create(ValueErrorType.TupleLength, schema, path, value); + } + if (!schema.items) { + return; + } + for (let i = 0; i < schema.items.length; i++) { + yield* errors_Visit(schema.items[i], references, `${path}/${i}`, value[i]); + } +} +function* errors_FromUndefined(schema, references, path, value) { + if (!IsUndefined(value)) + yield Create(ValueErrorType.Undefined, schema, path, value); +} +function* errors_FromUnion(schema, references, path, value) { + if (Check(schema, references, value)) + return; + const errors = schema.anyOf.map((variant) => new ValueErrorIterator(errors_Visit(variant, references, path, value))); + yield Create(ValueErrorType.Union, schema, path, value, errors); +} +function* errors_FromUint8Array(schema, references, path, value) { + if (!IsUint8Array(value)) + return yield Create(ValueErrorType.Uint8Array, schema, path, value); + if (errors_IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) { + yield Create(ValueErrorType.Uint8ArrayMaxByteLength, schema, path, value); + } + if (errors_IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) { + yield Create(ValueErrorType.Uint8ArrayMinByteLength, schema, path, value); + } +} +function* errors_FromUnknown(schema, references, path, value) { } +function* errors_FromVoid(schema, references, path, value) { + if (!TypeSystemPolicy.IsVoidLike(value)) + yield Create(ValueErrorType.Void, schema, path, value); +} +function* errors_FromKind(schema, references, path, value) { + const check = type_Get(schema[Kind]); + if (!check(schema, value)) + yield Create(ValueErrorType.Kind, schema, path, value); +} +function* errors_Visit(schema, references, path, value) { + const references_ = errors_IsDefined(schema.$id) ? [...references, schema] : references; + const schema_ = schema; + switch (schema_[Kind]) { + case 'Any': + return yield* errors_FromAny(schema_, references_, path, value); + case 'Array': + return yield* errors_FromArray(schema_, references_, path, value); + case 'AsyncIterator': + return yield* errors_FromAsyncIterator(schema_, references_, path, value); + case 'BigInt': + return yield* errors_FromBigInt(schema_, references_, path, value); + case 'Boolean': + return yield* errors_FromBoolean(schema_, references_, path, value); + case 'Constructor': + return yield* errors_FromConstructor(schema_, references_, path, value); + case 'Date': + return yield* errors_FromDate(schema_, references_, path, value); + case 'Function': + return yield* errors_FromFunction(schema_, references_, path, value); + case 'Import': + return yield* errors_FromImport(schema_, references_, path, value); + case 'Integer': + return yield* errors_FromInteger(schema_, references_, path, value); + case 'Intersect': + return yield* errors_FromIntersect(schema_, references_, path, value); + case 'Iterator': + return yield* errors_FromIterator(schema_, references_, path, value); + case 'Literal': + return yield* errors_FromLiteral(schema_, references_, path, value); + case 'Never': + return yield* errors_FromNever(schema_, references_, path, value); + case 'Not': + return yield* errors_FromNot(schema_, references_, path, value); + case 'Null': + return yield* errors_FromNull(schema_, references_, path, value); + case 'Number': + return yield* errors_FromNumber(schema_, references_, path, value); + case 'Object': + return yield* errors_FromObject(schema_, references_, path, value); + case 'Promise': + return yield* errors_FromPromise(schema_, references_, path, value); + case 'Record': + return yield* errors_FromRecord(schema_, references_, path, value); + case 'Ref': + return yield* errors_FromRef(schema_, references_, path, value); + case 'RegExp': + return yield* errors_FromRegExp(schema_, references_, path, value); + case 'String': + return yield* errors_FromString(schema_, references_, path, value); + case 'Symbol': + return yield* errors_FromSymbol(schema_, references_, path, value); + case 'TemplateLiteral': + return yield* errors_FromTemplateLiteral(schema_, references_, path, value); + case 'This': + return yield* errors_FromThis(schema_, references_, path, value); + case 'Tuple': + return yield* errors_FromTuple(schema_, references_, path, value); + case 'Undefined': + return yield* errors_FromUndefined(schema_, references_, path, value); + case 'Union': + return yield* errors_FromUnion(schema_, references_, path, value); + case 'Uint8Array': + return yield* errors_FromUint8Array(schema_, references_, path, value); + case 'Unknown': + return yield* errors_FromUnknown(schema_, references_, path, value); + case 'Void': + return yield* errors_FromVoid(schema_, references_, path, value); + default: + if (!type_Has(schema_[Kind])) + throw new ValueErrorsUnknownTypeError(schema); + return yield* errors_FromKind(schema_, references_, path, value); + } +} +/** Returns an iterator for each error in this value. */ +function Errors(...args) { + const iterator = args.length === 3 ? errors_Visit(args[0], args[1], '', args[2]) : errors_Visit(args[0], [], '', args[1]); + return new ValueErrorIterator(iterator); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.mjs + + +/** + * `[Utility]` Resolves an array of keys and schemas from the given schema. This method is faster + * than obtaining the keys and resolving each individually via indexing. This method was written + * accellerate Intersect and Union encoding. + */ +function KeyOfPropertyEntries(schema) { + const keys = KeyOfPropertyKeys(schema); + const schemas = IndexFromPropertyKeys(schema, keys); + return keys.map((_, index) => [keys[index], schemas[index]]); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/transform/decode.mjs + + + + + + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// KindGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// Errors +// ------------------------------------------------------------------ +// thrown externally +// prettier-ignore +class TransformDecodeCheckError extends error_TypeBoxError { + constructor(schema, value, error) { + super(`Unable to decode value as it does not match the expected schema`); + this.schema = schema; + this.value = value; + this.error = error; + } +} +// prettier-ignore +class TransformDecodeError extends error_TypeBoxError { + constructor(schema, path, value, error) { + super(error instanceof Error ? error.message : 'Unknown error'); + this.schema = schema; + this.path = path; + this.value = value; + this.error = error; + } +} +// ------------------------------------------------------------------ +// Decode +// ------------------------------------------------------------------ +// prettier-ignore +function Default(schema, path, value) { + try { + return IsTransform(schema) ? schema[TransformKind].Decode(value) : value; + } + catch (error) { + throw new TransformDecodeError(schema, path, value, error); + } +} +// prettier-ignore +function decode_FromArray(schema, references, path, value) { + return (IsArray(value)) + ? Default(schema, path, value.map((value, index) => decode_Visit(schema.items, references, `${path}/${index}`, value))) + : Default(schema, path, value); +} +// prettier-ignore +function decode_FromIntersect(schema, references, path, value) { + if (!IsObject(value) || IsValueType(value)) + return Default(schema, path, value); + const knownEntries = KeyOfPropertyEntries(schema); + const knownKeys = knownEntries.map(entry => entry[0]); + const knownProperties = { ...value }; + for (const [knownKey, knownSchema] of knownEntries) + if (knownKey in knownProperties) { + knownProperties[knownKey] = decode_Visit(knownSchema, references, `${path}/${knownKey}`, knownProperties[knownKey]); + } + if (!IsTransform(schema.unevaluatedProperties)) { + return Default(schema, path, knownProperties); + } + const unknownKeys = Object.getOwnPropertyNames(knownProperties); + const unevaluatedProperties = schema.unevaluatedProperties; + const unknownProperties = { ...knownProperties }; + for (const key of unknownKeys) + if (!knownKeys.includes(key)) { + unknownProperties[key] = Default(unevaluatedProperties, `${path}/${key}`, unknownProperties[key]); + } + return Default(schema, path, unknownProperties); +} +// prettier-ignore +function decode_FromImport(schema, references, path, value) { + const definitions = globalThis.Object.values(schema.$defs); + const target = schema.$defs[schema.$ref]; + const transform = schema[TransformKind]; + // Note: we need to re-spec the target as TSchema + [TransformKind] + const transformTarget = { [TransformKind]: transform, ...target }; + return decode_Visit(transformTarget, [...references, ...definitions], path, value); +} +function decode_FromNot(schema, references, path, value) { + return Default(schema, path, decode_Visit(schema.not, references, path, value)); +} +// prettier-ignore +function decode_FromObject(schema, references, path, value) { + if (!IsObject(value)) + return Default(schema, path, value); + const knownKeys = KeyOfPropertyKeys(schema); + const knownProperties = { ...value }; + for (const key of knownKeys) { + if (!HasPropertyKey(knownProperties, key)) + continue; + // if the property value is undefined, but the target is not, nor does it satisfy exact optional + // property policy, then we need to continue. This is a special case for optional property handling + // where a transforms wrapped in a optional modifiers should not run. + if (IsUndefined(knownProperties[key]) && (!kind_IsUndefined(schema.properties[key]) || + TypeSystemPolicy.IsExactOptionalProperty(knownProperties, key))) + continue; + // decode property + knownProperties[key] = decode_Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]); + } + if (!IsSchema(schema.additionalProperties)) { + return Default(schema, path, knownProperties); + } + const unknownKeys = Object.getOwnPropertyNames(knownProperties); + const additionalProperties = schema.additionalProperties; + const unknownProperties = { ...knownProperties }; + for (const key of unknownKeys) + if (!knownKeys.includes(key)) { + unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]); + } + return Default(schema, path, unknownProperties); +} +// prettier-ignore +function decode_FromRecord(schema, references, path, value) { + if (!IsObject(value)) + return Default(schema, path, value); + const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0]; + const knownKeys = new RegExp(pattern); + const knownProperties = { ...value }; + for (const key of Object.getOwnPropertyNames(value)) + if (knownKeys.test(key)) { + knownProperties[key] = decode_Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]); + } + if (!IsSchema(schema.additionalProperties)) { + return Default(schema, path, knownProperties); + } + const unknownKeys = Object.getOwnPropertyNames(knownProperties); + const additionalProperties = schema.additionalProperties; + const unknownProperties = { ...knownProperties }; + for (const key of unknownKeys) + if (!knownKeys.test(key)) { + unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]); + } + return Default(schema, path, unknownProperties); +} +// prettier-ignore +function decode_FromRef(schema, references, path, value) { + const target = deref_Deref(schema, references); + return Default(schema, path, decode_Visit(target, references, path, value)); +} +// prettier-ignore +function decode_FromThis(schema, references, path, value) { + const target = deref_Deref(schema, references); + return Default(schema, path, decode_Visit(target, references, path, value)); +} +// prettier-ignore +function decode_FromTuple(schema, references, path, value) { + return (IsArray(value) && IsArray(schema.items)) + ? Default(schema, path, schema.items.map((schema, index) => decode_Visit(schema, references, `${path}/${index}`, value[index]))) + : Default(schema, path, value); +} +// prettier-ignore +function decode_FromUnion(schema, references, path, value) { + for (const subschema of schema.anyOf) { + if (!Check(subschema, references, value)) + continue; + // note: ensure interior is decoded first + const decoded = decode_Visit(subschema, references, path, value); + return Default(schema, path, decoded); + } + return Default(schema, path, value); +} +// prettier-ignore +function decode_Visit(schema, references, path, value) { + const references_ = Pushref(schema, references); + const schema_ = schema; + switch (schema[Kind]) { + case 'Array': + return decode_FromArray(schema_, references_, path, value); + case 'Import': + return decode_FromImport(schema_, references_, path, value); + case 'Intersect': + return decode_FromIntersect(schema_, references_, path, value); + case 'Not': + return decode_FromNot(schema_, references_, path, value); + case 'Object': + return decode_FromObject(schema_, references_, path, value); + case 'Record': + return decode_FromRecord(schema_, references_, path, value); + case 'Ref': + return decode_FromRef(schema_, references_, path, value); + case 'Symbol': + return Default(schema_, path, value); + case 'This': + return decode_FromThis(schema_, references_, path, value); + case 'Tuple': + return decode_FromTuple(schema_, references_, path, value); + case 'Union': + return decode_FromUnion(schema_, references_, path, value); + default: + return Default(schema_, path, value); + } +} +/** + * `[Internal]` Decodes the value and returns the result. This function requires that + * the caller `Check` the value before use. Passing unchecked values may result in + * undefined behavior. Refer to the `Value.Decode()` for implementation details. + */ +function TransformDecode(schema, references, value) { + return decode_Visit(schema, references, '', value); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/transform/has.mjs + + +// ------------------------------------------------------------------ +// KindGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +// prettier-ignore +function has_FromArray(schema, references) { + return IsTransform(schema) || has_Visit(schema.items, references); +} +// prettier-ignore +function has_FromAsyncIterator(schema, references) { + return IsTransform(schema) || has_Visit(schema.items, references); +} +// prettier-ignore +function has_FromConstructor(schema, references) { + return IsTransform(schema) || has_Visit(schema.returns, references) || schema.parameters.some((schema) => has_Visit(schema, references)); +} +// prettier-ignore +function has_FromFunction(schema, references) { + return IsTransform(schema) || has_Visit(schema.returns, references) || schema.parameters.some((schema) => has_Visit(schema, references)); +} +// prettier-ignore +function has_FromIntersect(schema, references) { + return IsTransform(schema) || IsTransform(schema.unevaluatedProperties) || schema.allOf.some((schema) => has_Visit(schema, references)); +} +// prettier-ignore +function has_FromIterator(schema, references) { + return IsTransform(schema) || has_Visit(schema.items, references); +} +// prettier-ignore +function has_FromNot(schema, references) { + return IsTransform(schema) || has_Visit(schema.not, references); +} +// prettier-ignore +function has_FromObject(schema, references) { + return (IsTransform(schema) || + Object.values(schema.properties).some((schema) => has_Visit(schema, references)) || + (IsSchema(schema.additionalProperties) && has_Visit(schema.additionalProperties, references))); +} +// prettier-ignore +function has_FromPromise(schema, references) { + return IsTransform(schema) || has_Visit(schema.item, references); +} +// prettier-ignore +function has_FromRecord(schema, references) { + const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0]; + const property = schema.patternProperties[pattern]; + return IsTransform(schema) || has_Visit(property, references) || (IsSchema(schema.additionalProperties) && IsTransform(schema.additionalProperties)); +} +// prettier-ignore +function has_FromRef(schema, references) { + if (IsTransform(schema)) + return true; + return has_Visit(deref_Deref(schema, references), references); +} +// prettier-ignore +function has_FromThis(schema, references) { + if (IsTransform(schema)) + return true; + return has_Visit(deref_Deref(schema, references), references); +} +// prettier-ignore +function has_FromTuple(schema, references) { + return IsTransform(schema) || (!IsUndefined(schema.items) && schema.items.some((schema) => has_Visit(schema, references))); +} +// prettier-ignore +function has_FromUnion(schema, references) { + return IsTransform(schema) || schema.anyOf.some((schema) => has_Visit(schema, references)); +} +// prettier-ignore +function has_Visit(schema, references) { + const references_ = Pushref(schema, references); + const schema_ = schema; + if (schema.$id && visited.has(schema.$id)) + return false; + if (schema.$id) + visited.add(schema.$id); + switch (schema[Kind]) { + case 'Array': + return has_FromArray(schema_, references_); + case 'AsyncIterator': + return has_FromAsyncIterator(schema_, references_); + case 'Constructor': + return has_FromConstructor(schema_, references_); + case 'Function': + return has_FromFunction(schema_, references_); + case 'Intersect': + return has_FromIntersect(schema_, references_); + case 'Iterator': + return has_FromIterator(schema_, references_); + case 'Not': + return has_FromNot(schema_, references_); + case 'Object': + return has_FromObject(schema_, references_); + case 'Promise': + return has_FromPromise(schema_, references_); + case 'Record': + return has_FromRecord(schema_, references_); + case 'Ref': + return has_FromRef(schema_, references_); + case 'This': + return has_FromThis(schema_, references_); + case 'Tuple': + return has_FromTuple(schema_, references_); + case 'Union': + return has_FromUnion(schema_, references_); + default: + return IsTransform(schema); + } +} +const visited = new Set(); +/** Returns true if this schema contains a transform codec */ +function HasTransform(schema, references) { + visited.clear(); + return has_Visit(schema, references); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/decode/decode.mjs + + + +/** Decodes a value or throws if error */ +function Decode(...args) { + const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]]; + if (!Check(schema, references, value)) + throw new TransformDecodeCheckError(schema, value, Errors(schema, references, value).First()); + return HasTransform(schema, references) ? TransformDecode(schema, references, value) : value; +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/clone/clone.mjs +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// Clonable +// ------------------------------------------------------------------ +function clone_FromObject(value) { + const Acc = {}; + for (const key of Object.getOwnPropertyNames(value)) { + Acc[key] = clone_Clone(value[key]); + } + for (const key of Object.getOwnPropertySymbols(value)) { + Acc[key] = clone_Clone(value[key]); + } + return Acc; +} +function clone_FromArray(value) { + return value.map((element) => clone_Clone(element)); +} +function FromTypedArray(value) { + return value.slice(); +} +function FromMap(value) { + return new Map(clone_Clone([...value.entries()])); +} +function FromSet(value) { + return new Set(clone_Clone([...value.entries()])); +} +function clone_FromDate(value) { + return new Date(value.toISOString()); +} +function clone_FromValue(value) { + return value; +} +// ------------------------------------------------------------------ +// Clone +// ------------------------------------------------------------------ +/** Returns a clone of the given value */ +function clone_Clone(value) { + if (IsArray(value)) + return clone_FromArray(value); + if (IsDate(value)) + return clone_FromDate(value); + if (IsTypedArray(value)) + return FromTypedArray(value); + if (IsMap(value)) + return FromMap(value); + if (IsSet(value)) + return FromSet(value); + if (IsObject(value)) + return clone_FromObject(value); + if (IsValueType(value)) + return clone_FromValue(value); + throw new Error('ValueClone: Unable to clone value'); +} + +;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/default/default.mjs + + + + +// ------------------------------------------------------------------ +// ValueGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// TypeGuard +// ------------------------------------------------------------------ + +// ------------------------------------------------------------------ +// ValueOrDefault +// ------------------------------------------------------------------ +function ValueOrDefault(schema, value) { + const defaultValue = HasPropertyKey(schema, 'default') ? schema.default : undefined; + const clone = IsFunction(defaultValue) ? defaultValue() : clone_Clone(defaultValue); + return IsUndefined(value) ? clone : IsObject(value) && IsObject(clone) ? Object.assign(clone, value) : value; +} +// ------------------------------------------------------------------ +// HasDefaultProperty +// ------------------------------------------------------------------ +function HasDefaultProperty(schema) { + return IsKind(schema) && 'default' in schema; +} +// ------------------------------------------------------------------ +// Types +// ------------------------------------------------------------------ +function default_FromArray(schema, references, value) { + // if the value is an array, we attempt to initialize it's elements + if (IsArray(value)) { + for (let i = 0; i < value.length; i++) { + value[i] = default_Visit(schema.items, references, value[i]); + } + return value; + } + // ... otherwise use default initialization + const defaulted = ValueOrDefault(schema, value); + if (!IsArray(defaulted)) + return defaulted; + for (let i = 0; i < defaulted.length; i++) { + defaulted[i] = default_Visit(schema.items, references, defaulted[i]); + } + return defaulted; +} +function default_FromDate(schema, references, value) { + // special case intercept for dates + return IsDate(value) ? value : ValueOrDefault(schema, value); +} +function default_FromImport(schema, references, value) { + const definitions = globalThis.Object.values(schema.$defs); + const target = schema.$defs[schema.$ref]; + return default_Visit(target, [...references, ...definitions], value); +} +function default_FromIntersect(schema, references, value) { + const defaulted = ValueOrDefault(schema, value); + return schema.allOf.reduce((acc, schema) => { + const next = default_Visit(schema, references, defaulted); + return IsObject(next) ? { ...acc, ...next } : next; + }, {}); +} +function default_FromObject(schema, references, value) { + const defaulted = ValueOrDefault(schema, value); + // return defaulted + if (!IsObject(defaulted)) + return defaulted; + const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties); + // properties + for (const key of knownPropertyKeys) { + // note: we need to traverse into the object and test if the return value + // yielded a non undefined result. Here we interpret an undefined result as + // a non assignable property and continue. + const propertyValue = default_Visit(schema.properties[key], references, defaulted[key]); + if (IsUndefined(propertyValue)) + continue; + defaulted[key] = default_Visit(schema.properties[key], references, defaulted[key]); + } + // return if not additional properties + if (!HasDefaultProperty(schema.additionalProperties)) + return defaulted; + // additional properties + for (const key of Object.getOwnPropertyNames(defaulted)) { + if (knownPropertyKeys.includes(key)) + continue; + defaulted[key] = default_Visit(schema.additionalProperties, references, defaulted[key]); + } + return defaulted; +} +function default_FromRecord(schema, references, value) { + const defaulted = ValueOrDefault(schema, value); + if (!IsObject(defaulted)) + return defaulted; + const additionalPropertiesSchema = schema.additionalProperties; + const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0]; + const knownPropertyKey = new RegExp(propertyKeyPattern); + // properties + for (const key of Object.getOwnPropertyNames(defaulted)) { + if (!(knownPropertyKey.test(key) && HasDefaultProperty(propertySchema))) + continue; + defaulted[key] = default_Visit(propertySchema, references, defaulted[key]); + } + // return if not additional properties + if (!HasDefaultProperty(additionalPropertiesSchema)) + return defaulted; + // additional properties + for (const key of Object.getOwnPropertyNames(defaulted)) { + if (knownPropertyKey.test(key)) + continue; + defaulted[key] = default_Visit(additionalPropertiesSchema, references, defaulted[key]); + } + return defaulted; +} +function default_FromRef(schema, references, value) { + return default_Visit(deref_Deref(schema, references), references, ValueOrDefault(schema, value)); +} +function default_FromThis(schema, references, value) { + return default_Visit(deref_Deref(schema, references), references, value); +} +function default_FromTuple(schema, references, value) { + const defaulted = ValueOrDefault(schema, value); + if (!IsArray(defaulted) || IsUndefined(schema.items)) + return defaulted; + const [items, max] = [schema.items, Math.max(schema.items.length, defaulted.length)]; + for (let i = 0; i < max; i++) { + if (i < items.length) + defaulted[i] = default_Visit(items[i], references, defaulted[i]); + } + return defaulted; +} +function default_FromUnion(schema, references, value) { + const defaulted = ValueOrDefault(schema, value); + for (const inner of schema.anyOf) { + const result = default_Visit(inner, references, clone_Clone(defaulted)); + if (Check(inner, references, result)) { + return result; + } + } + return defaulted; +} +function default_Visit(schema, references, value) { + const references_ = Pushref(schema, references); + const schema_ = schema; + switch (schema_[Kind]) { + case 'Array': + return default_FromArray(schema_, references_, value); + case 'Date': + return default_FromDate(schema_, references_, value); + case 'Import': + return default_FromImport(schema_, references_, value); + case 'Intersect': + return default_FromIntersect(schema_, references_, value); + case 'Object': + return default_FromObject(schema_, references_, value); + case 'Record': + return default_FromRecord(schema_, references_, value); + case 'Ref': + return default_FromRef(schema_, references_, value); + case 'This': + return default_FromThis(schema_, references_, value); + case 'Tuple': + return default_FromTuple(schema_, references_, value); + case 'Union': + return default_FromUnion(schema_, references_, value); + default: + return ValueOrDefault(schema_, value); + } +} +/** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */ +function default_Default(...args) { + return args.length === 3 ? default_Visit(args[0], args[1], args[2]) : default_Visit(args[0], [], args[1]); +} + +// EXTERNAL MODULE: ./node_modules/dotenv/lib/main.js +var main = __nccwpck_require__(7159); +;// CONCATENATED MODULE: ./node_modules/@ubiquity-os/plugin-sdk/dist/index.mjs +// src/server.ts + + + + + + + +// src/util.ts +function sanitizeMetadata(obj) { + return JSON.stringify(obj, null, 2).replace(//g, ">").replace(/--/g, "--"); +} + +// src/comment.ts +var HEADER_NAME = "Ubiquity"; +async function postComment(context2, message) { + if ("issue" in context2.payload && context2.payload.repository?.owner?.login) { + const metadata = createStructuredMetadata(message.metadata?.name, message); + await context2.octokit.rest.issues.createComment({ + owner: context2.payload.repository.owner.login, + repo: context2.payload.repository.name, + issue_number: context2.payload.issue.number, + body: [message.logMessage.diff, metadata].join("\n") + }); + } else { + context2.logger.info("Cannot post comment because issue is not found in the payload"); + } +} +function createStructuredMetadata(className, logReturn) { + const logMessage = logReturn.logMessage; + const metadata = logReturn.metadata; + const jsonPretty = sanitizeMetadata(metadata); + const stack = logReturn.metadata?.stack; + const stackLine = (Array.isArray(stack) ? stack.join("\n") : stack)?.split("\n")[2] ?? ""; + const caller = stackLine.match(/at (\S+)/)?.[1] ?? ""; + const ubiquityMetadataHeader = `"].join("\n"); + if (logMessage?.type === "fatal") { + metadataSerialized = [metadataSerializedVisible, metadataSerializedHidden].join("\n"); + } else { + metadataSerialized = metadataSerializedHidden; + } + return ` +${metadataSerialized} +`; +} + +// src/constants.ts +var KERNEL_PUBLIC_KEY = `-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs96DOU+JqM8SyNXOB6u3 +uBKIFiyrcST/LZTYN6y7LeJlyCuGPqSDrWCfjU9Ph5PLf9TWiNmeM8DGaOpwEFC7 +U3NRxOSglo4plnQ5zRwIHHXvxyK400sQP2oISXymISuBQWjEIqkC9DybQrKwNzf+ +I0JHWPqmwMIw26UvVOtXGOOWBqTkk+N2+/9f8eDIJP5QQVwwszc8s1rXOsLMlVIf +wShw7GO4E2jyK8TSJKpyjV8eb1JJMDwFhPiRrtZfQJUtDf2mV/67shQww61BH2Y/ +Plnalo58kWIbkqZoq1yJrL5sFb73osM5+vADTXVn79bkvea7W19nSkdMiarYt4Hq +JQIDAQAB +-----END PUBLIC KEY----- +`; + +// src/octokit.ts + + + + + + +var defaultOptions = { + throttle: { + onAbuseLimit: (retryAfter, options, octokit) => { + octokit.log.warn(`Abuse limit hit with "${options.method} ${options.url}", retrying in ${retryAfter} seconds.`); + return true; + }, + onRateLimit: (retryAfter, options, octokit) => { + octokit.log.warn(`Rate limit hit with "${options.method} ${options.url}", retrying in ${retryAfter} seconds.`); + return true; + }, + onSecondaryRateLimit: (retryAfter, options, octokit) => { + octokit.log.warn(`Secondary rate limit hit with "${options.method} ${options.url}", retrying in ${retryAfter} seconds.`); + return true; + } + } +}; +var customOctokit = Octokit.plugin(throttling, retry, paginateRest, restEndpointMethods, paginateGraphQL).defaults((instanceOptions) => { + return { ...defaultOptions, ...instanceOptions }; +}); + +// src/signature.ts +async function verifySignature(publicKeyPem, inputs, signature) { + try { + const inputsOrdered = { + stateId: inputs.stateId, + eventName: inputs.eventName, + eventPayload: inputs.eventPayload, + settings: inputs.settings, + authToken: inputs.authToken, + ref: inputs.ref, + command: inputs.command + }; + const pemContents = publicKeyPem.replace("-----BEGIN PUBLIC KEY-----", "").replace("-----END PUBLIC KEY-----", "").trim(); + const binaryDer = Uint8Array.from(atob(pemContents), (c) => c.charCodeAt(0)); + const publicKey = await crypto.subtle.importKey( + "spki", + binaryDer, + { + name: "RSASSA-PKCS1-v1_5", + hash: "SHA-256" + }, + true, + ["verify"] + ); + const signatureArray = Uint8Array.from(atob(signature), (c) => c.charCodeAt(0)); + const dataArray = new TextEncoder().encode(JSON.stringify(inputsOrdered)); + return await crypto.subtle.verify("RSASSA-PKCS1-v1_5", publicKey, signatureArray, dataArray); + } catch (error) { + console.error(error); + return false; + } +} + +// src/server.ts +var inputSchema = Type.Object({ + stateId: Type.String(), + eventName: Type.String(), + eventPayload: Type.Record(Type.String(), Type.Any()), + command: Type.Union([Type.Null(), Type.Object({ name: Type.String(), parameters: Type.Unknown() })]), + authToken: Type.String(), + settings: Type.Record(Type.String(), Type.Any()), + ref: Type.String(), + signature: Type.String() +}); +function createPlugin(handler, manifest, options) { + const pluginOptions = { + kernelPublicKey: options?.kernelPublicKey ?? KERNEL_PUBLIC_KEY, + logLevel: options?.logLevel ?? LOG_LEVEL.INFO, + postCommentOnError: options?.postCommentOnError ?? true, + settingsSchema: options?.settingsSchema, + envSchema: options?.envSchema, + commandSchema: options?.commandSchema, + bypassSignatureVerification: options?.bypassSignatureVerification || false + }; + const app = new Hono(); + app.get("/manifest.json", (ctx) => { + return ctx.json(manifest); + }); + app.post("/", async (ctx) => { + if (ctx.req.header("content-type") !== "application/json") { + throw new HTTPException(400, { message: "Content-Type must be application/json" }); + } + const body = await ctx.req.json(); + const inputSchemaErrors = [...Value.Errors(inputSchema, body)]; + if (inputSchemaErrors.length) { + console.log(inputSchemaErrors, { depth: null }); + throw new HTTPException(400, { message: "Invalid body" }); + } + const inputs = Value.Decode(inputSchema, body); + const signature = inputs.signature; + if (!pluginOptions.bypassSignatureVerification && !await verifySignature(pluginOptions.kernelPublicKey, inputs, signature)) { + throw new HTTPException(400, { message: "Invalid signature" }); + } + let config2; + if (pluginOptions.settingsSchema) { + try { + config2 = Value.Decode(pluginOptions.settingsSchema, Value.Default(pluginOptions.settingsSchema, inputs.settings)); + } catch (e) { + console.log(...Value.Errors(pluginOptions.settingsSchema, inputs.settings), { depth: null }); + throw e; + } + } else { + config2 = inputs.settings; + } + let env; + const honoEnvironment = honoEnv(ctx); + if (pluginOptions.envSchema) { + try { + env = Value.Decode(pluginOptions.envSchema, Value.Default(pluginOptions.envSchema, honoEnvironment)); + } catch (e) { + console.log(...Value.Errors(pluginOptions.envSchema, honoEnvironment), { depth: null }); + throw e; + } + } else { + env = ctx.env; + } + let command = null; + if (inputs.command && pluginOptions.commandSchema) { + try { + command = Value.Decode(pluginOptions.commandSchema, Value.Default(pluginOptions.commandSchema, inputs.command)); + } catch (e) { + console.log(...Value.Errors(pluginOptions.commandSchema, inputs.command), { depth: null }); + throw e; + } + } else if (inputs.command) { + command = inputs.command; + } + const context2 = { + eventName: inputs.eventName, + payload: inputs.eventPayload, + command, + octokit: new customOctokit({ auth: inputs.authToken }), + config: config2, + env, + logger: new Logs(pluginOptions.logLevel) + }; + try { + const result = await handler(context2); + return ctx.json({ stateId: inputs.stateId, output: result ?? {} }); + } catch (error) { + console.error(error); + let loggerError; + if (error instanceof Error) { + loggerError = context2.logger.error(`Error: ${error}`, { error }); + } else if (error instanceof LogReturn) { + loggerError = error; + } else { + loggerError = context2.logger.error(`Error: ${error}`); + } + if (pluginOptions.postCommentOnError && loggerError) { + await postComment(context2, loggerError); + } + throw new HTTPException(500, { message: "Unexpected error" }); + } + }); + return app; +} + +// src/actions.ts + + + + + + + +// src/types/util.ts + + +function jsonType(type) { + return Type.Transform(Type.String()).Decode((value) => { + const parsed = JSON.parse(value); + return Decode(type, default_Default(type, parsed)); + }).Encode((value) => JSON.stringify(value)); +} + +// src/types/command.ts + +var commandCallSchema = Type.Union([Type.Null(), Type.Object({ name: Type.String(), parameters: Type.Unknown() })]); + +// src/actions.ts +(0,main.config)(); +var inputSchema2 = Type.Object({ + stateId: Type.String(), + eventName: Type.String(), + eventPayload: jsonType(Type.Record(Type.String(), Type.Any())), + command: jsonType(commandCallSchema), + authToken: Type.String(), + settings: jsonType(Type.Record(Type.String(), Type.Any())), + ref: Type.String(), + signature: Type.String() +}); +async function createActionsPlugin(handler, options) { + const pluginOptions = { + logLevel: options?.logLevel ?? dist_LOG_LEVEL.INFO, + postCommentOnError: options?.postCommentOnError ?? true, + settingsSchema: options?.settingsSchema, + envSchema: options?.envSchema, + commandSchema: options?.commandSchema, + kernelPublicKey: options?.kernelPublicKey ?? KERNEL_PUBLIC_KEY, + bypassSignatureVerification: options?.bypassSignatureVerification || false + }; + const pluginGithubToken = process.env.PLUGIN_GITHUB_TOKEN; + if (!pluginGithubToken) { + core.setFailed("Error: PLUGIN_GITHUB_TOKEN env is not set"); + return; + } + const body = github.context.payload.inputs; + const signature = body.signature; + if (!pluginOptions.bypassSignatureVerification && !await verifySignature(pluginOptions.kernelPublicKey, body, signature)) { + core.setFailed(`Error: Invalid signature`); + return; + } + const inputPayload = github.context.payload.inputs; + const inputSchemaErrors = [...Errors(inputSchema2, inputPayload)]; + if (inputSchemaErrors.length) { + console.dir(inputSchemaErrors, { depth: null }); + core.setFailed(`Error: Invalid inputs payload: ${inputSchemaErrors.join(",")}`); + return; + } + const inputs = Decode(inputSchema2, inputPayload); + let config2; + if (pluginOptions.settingsSchema) { + try { + config2 = Decode(pluginOptions.settingsSchema, default_Default(pluginOptions.settingsSchema, inputs.settings)); + } catch (e) { + console.dir(...Errors(pluginOptions.settingsSchema, inputs.settings), { depth: null }); + throw e; + } + } else { + config2 = inputs.settings; + } + let env; + if (pluginOptions.envSchema) { + try { + env = Decode(pluginOptions.envSchema, default_Default(pluginOptions.envSchema, process.env)); + } catch (e) { + console.dir(...Errors(pluginOptions.envSchema, process.env), { depth: null }); + throw e; + } + } else { + env = process.env; + } + let command = null; + if (inputs.command && pluginOptions.commandSchema) { + try { + command = Decode(pluginOptions.commandSchema, default_Default(pluginOptions.commandSchema, inputs.command)); + } catch (e) { + console.dir(...Errors(pluginOptions.commandSchema, inputs.command), { depth: null }); + throw e; + } + } else if (inputs.command) { + command = inputs.command; + } + const context2 = { + eventName: inputs.eventName, + payload: inputs.eventPayload, + command, + octokit: new customOctokit({ auth: inputs.authToken }), + config: config2, + env, + logger: new dist_Logs(pluginOptions.logLevel) + }; + try { + const result = await handler(context2); + core.setOutput("result", result); + await returnDataToKernel(pluginGithubToken, inputs.stateId, result); + } catch (error) { + console.error(error); + let loggerError; + if (error instanceof Error) { + core.setFailed(error); + loggerError = context2.logger.error(`Error: ${error}`, { error }); + } else if (error instanceof dist_LogReturn) { + core.setFailed(error.logMessage.raw); + loggerError = error; + } else { + core.setFailed(`Error: ${error}`); + loggerError = context2.logger.error(`Error: ${error}`); + } + if (pluginOptions.postCommentOnError && loggerError) { + await postErrorComment(context2, loggerError); + } + } +} +async function postErrorComment(context2, error) { + if ("issue" in context2.payload && context2.payload.repository?.owner?.login) { + await context2.octokit.rest.issues.createComment({ + owner: context2.payload.repository.owner.login, + repo: context2.payload.repository.name, + issue_number: context2.payload.issue.number, + body: `${error.logMessage.diff} +` + }); + } else { + context2.logger.info("Cannot post error comment because issue is not found in the payload"); + } +} +function getGithubWorkflowRunUrl() { + return `${github.context.payload.repository?.html_url}/actions/runs/${github.context.runId}`; +} +async function returnDataToKernel(repoToken, stateId, output) { + const octokit = new customOctokit({ auth: repoToken }); + await octokit.rest.repos.createDispatchEvent({ + owner: github.context.repo.owner, + repo: github.context.repo.repo, + event_type: "return-data-to-ubiquity-os-kernel", + client_payload: { + state_id: stateId, + output: output ? JSON.stringify(output) : null + } + }); +} + + +;// CONCATENATED MODULE: ./src/helpers/get-watched-repos.ts +async function getWatchedRepos(context) { + const { config: { watch: { optOut }, }, } = context; + const repoNames = new Set(); + const owner = context.payload.repository.owner?.login; + if (!owner) { + throw new Error("No owner found in the payload"); + } + const orgRepos = await getReposForOrg(context, owner); + orgRepos.forEach((repo) => repoNames.add(repo.name.toLowerCase())); + for (const repo of optOut) { + repoNames.forEach((name) => (name.includes(repo) ? repoNames.delete(name) : null)); + } + return Array.from(repoNames) + .map((name) => orgRepos.find((repo) => repo.name.toLowerCase() === name)) + .filter((repo) => repo !== undefined); +} +async function getReposForOrg(context, orgOrRepo) { + const { octokit } = context; + try { + return await octokit.paginate(octokit.rest.repos.listForOrg, { + org: orgOrRepo, + per_page: 100, + }); + } + catch (er) { + throw new Error(`Error getting repositories for org ${orgOrRepo}: ` + JSON.stringify(er)); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/errors.js +// these aren't really private, but nor are they really useful to document + +/** + * @private + */ +class LuxonError extends Error {} + +/** + * @private + */ +class InvalidDateTimeError extends LuxonError { + constructor(reason) { + super(`Invalid DateTime: ${reason.toMessage()}`); + } +} + +/** + * @private + */ +class InvalidIntervalError extends LuxonError { + constructor(reason) { + super(`Invalid Interval: ${reason.toMessage()}`); + } +} + +/** + * @private + */ +class InvalidDurationError extends LuxonError { + constructor(reason) { + super(`Invalid Duration: ${reason.toMessage()}`); + } +} + +/** + * @private + */ +class ConflictingSpecificationError extends LuxonError {} + +/** + * @private + */ +class InvalidUnitError extends LuxonError { + constructor(unit) { + super(`Invalid unit ${unit}`); + } +} + +/** + * @private + */ +class InvalidArgumentError extends LuxonError {} + +/** + * @private + */ +class ZoneIsAbstractError extends LuxonError { + constructor() { + super("Zone is an abstract class"); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/formats.js +/** + * @private + */ + +const n = "numeric", + s = "short", + l = "long"; + +const DATE_SHORT = { + year: n, + month: n, + day: n, +}; + +const DATE_MED = { + year: n, + month: s, + day: n, +}; + +const DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s, +}; + +const DATE_FULL = { + year: n, + month: l, + day: n, +}; + +const DATE_HUGE = { + year: n, + month: l, + day: n, + weekday: l, +}; + +const TIME_SIMPLE = { + hour: n, + minute: n, +}; + +const TIME_WITH_SECONDS = { + hour: n, + minute: n, + second: n, +}; + +const TIME_WITH_SHORT_OFFSET = { + hour: n, + minute: n, + second: n, + timeZoneName: s, +}; + +const TIME_WITH_LONG_OFFSET = { + hour: n, + minute: n, + second: n, + timeZoneName: l, +}; + +const TIME_24_SIMPLE = { + hour: n, + minute: n, + hourCycle: "h23", +}; + +const TIME_24_WITH_SECONDS = { + hour: n, + minute: n, + second: n, + hourCycle: "h23", +}; + +const TIME_24_WITH_SHORT_OFFSET = { + hour: n, + minute: n, + second: n, + hourCycle: "h23", + timeZoneName: s, +}; + +const TIME_24_WITH_LONG_OFFSET = { + hour: n, + minute: n, + second: n, + hourCycle: "h23", + timeZoneName: l, +}; + +const DATETIME_SHORT = { + year: n, + month: n, + day: n, + hour: n, + minute: n, +}; + +const DATETIME_SHORT_WITH_SECONDS = { + year: n, + month: n, + day: n, + hour: n, + minute: n, + second: n, +}; + +const DATETIME_MED = { + year: n, + month: s, + day: n, + hour: n, + minute: n, +}; + +const DATETIME_MED_WITH_SECONDS = { + year: n, + month: s, + day: n, + hour: n, + minute: n, + second: n, +}; + +const DATETIME_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s, + hour: n, + minute: n, +}; + +const DATETIME_FULL = { + year: n, + month: l, + day: n, + hour: n, + minute: n, + timeZoneName: s, +}; + +const DATETIME_FULL_WITH_SECONDS = { + year: n, + month: l, + day: n, + hour: n, + minute: n, + second: n, + timeZoneName: s, +}; + +const DATETIME_HUGE = { + year: n, + month: l, + day: n, + weekday: l, + hour: n, + minute: n, + timeZoneName: l, +}; + +const DATETIME_HUGE_WITH_SECONDS = { + year: n, + month: l, + day: n, + weekday: l, + hour: n, + minute: n, + second: n, + timeZoneName: l, +}; + +;// CONCATENATED MODULE: ./node_modules/luxon/src/zone.js + + +/** + * @interface + */ +class Zone { + /** + * The type of zone + * @abstract + * @type {string} + */ + get type() { + throw new ZoneIsAbstractError(); + } + + /** + * The name of this zone. + * @abstract + * @type {string} + */ + get name() { + throw new ZoneIsAbstractError(); + } + + get ianaName() { + return this.name; + } + + /** + * Returns whether the offset is known to be fixed for the whole year. + * @abstract + * @type {boolean} + */ + get isUniversal() { + throw new ZoneIsAbstractError(); + } + + /** + * Returns the offset's common name (such as EST) at the specified timestamp + * @abstract + * @param {number} ts - Epoch milliseconds for which to get the name + * @param {Object} opts - Options to affect the format + * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'. + * @param {string} opts.locale - What locale to return the offset name in. + * @return {string} + */ + offsetName(ts, opts) { + throw new ZoneIsAbstractError(); + } + + /** + * Returns the offset's value as a string + * @abstract + * @param {number} ts - Epoch milliseconds for which to get the offset + * @param {string} format - What style of offset to return. + * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively + * @return {string} + */ + formatOffset(ts, format) { + throw new ZoneIsAbstractError(); + } + + /** + * Return the offset in minutes for this zone at the specified timestamp. + * @abstract + * @param {number} ts - Epoch milliseconds for which to compute the offset + * @return {number} + */ + offset(ts) { + throw new ZoneIsAbstractError(); + } + + /** + * Return whether this Zone is equal to another zone + * @abstract + * @param {Zone} otherZone - the zone to compare + * @return {boolean} + */ + equals(otherZone) { + throw new ZoneIsAbstractError(); + } + + /** + * Return whether this Zone is valid. + * @abstract + * @type {boolean} + */ + get isValid() { + throw new ZoneIsAbstractError(); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/systemZone.js + + + +let singleton = null; + +/** + * Represents the local zone for this JavaScript environment. + * @implements {Zone} + */ +class SystemZone extends Zone { + /** + * Get a singleton instance of the local zone + * @return {SystemZone} + */ + static get instance() { + if (singleton === null) { + singleton = new SystemZone(); + } + return singleton; + } + + /** @override **/ + get type() { + return "system"; + } + + /** @override **/ + get name() { + return new Intl.DateTimeFormat().resolvedOptions().timeZone; + } + + /** @override **/ + get isUniversal() { + return false; + } + + /** @override **/ + offsetName(ts, { format, locale }) { + return parseZoneInfo(ts, format, locale); + } + + /** @override **/ + formatOffset(ts, format) { + return formatOffset(this.offset(ts), format); + } + + /** @override **/ + offset(ts) { + return -new Date(ts).getTimezoneOffset(); + } + + /** @override **/ + equals(otherZone) { + return otherZone.type === "system"; + } + + /** @override **/ + get isValid() { + return true; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/IANAZone.js + + + +let dtfCache = {}; +function makeDTF(zone) { + if (!dtfCache[zone]) { + dtfCache[zone] = new Intl.DateTimeFormat("en-US", { + hour12: false, + timeZone: zone, + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + era: "short", + }); + } + return dtfCache[zone]; +} + +const typeToPos = { + year: 0, + month: 1, + day: 2, + era: 3, + hour: 4, + minute: 5, + second: 6, +}; + +function hackyOffset(dtf, date) { + const formatted = dtf.format(date).replace(/\u200E/g, ""), + parsed = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted), + [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed; + return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond]; +} + +function partsOffset(dtf, date) { + const formatted = dtf.formatToParts(date); + const filled = []; + for (let i = 0; i < formatted.length; i++) { + const { type, value } = formatted[i]; + const pos = typeToPos[type]; + + if (type === "era") { + filled[pos] = value; + } else if (!isUndefined(pos)) { + filled[pos] = parseInt(value, 10); + } + } + return filled; +} + +let ianaZoneCache = {}; +/** + * A zone identified by an IANA identifier, like America/New_York + * @implements {Zone} + */ +class IANAZone extends Zone { + /** + * @param {string} name - Zone name + * @return {IANAZone} + */ + static create(name) { + if (!ianaZoneCache[name]) { + ianaZoneCache[name] = new IANAZone(name); + } + return ianaZoneCache[name]; + } + + /** + * Reset local caches. Should only be necessary in testing scenarios. + * @return {void} + */ + static resetCache() { + ianaZoneCache = {}; + dtfCache = {}; + } + + /** + * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that. + * @param {string} s - The string to check validity on + * @example IANAZone.isValidSpecifier("America/New_York") //=> true + * @example IANAZone.isValidSpecifier("Sport~~blorp") //=> false + * @deprecated This method returns false for some valid IANA names. Use isValidZone instead. + * @return {boolean} + */ + static isValidSpecifier(s) { + return this.isValidZone(s); + } + + /** + * Returns whether the provided string identifies a real zone + * @param {string} zone - The string to check + * @example IANAZone.isValidZone("America/New_York") //=> true + * @example IANAZone.isValidZone("Fantasia/Castle") //=> false + * @example IANAZone.isValidZone("Sport~~blorp") //=> false + * @return {boolean} + */ + static isValidZone(zone) { + if (!zone) { + return false; + } + try { + new Intl.DateTimeFormat("en-US", { timeZone: zone }).format(); + return true; + } catch (e) { + return false; + } + } + + constructor(name) { + super(); + /** @private **/ + this.zoneName = name; + /** @private **/ + this.valid = IANAZone.isValidZone(name); + } + + /** @override **/ + get type() { + return "iana"; + } + + /** @override **/ + get name() { + return this.zoneName; + } + + /** @override **/ + get isUniversal() { + return false; + } + + /** @override **/ + offsetName(ts, { format, locale }) { + return parseZoneInfo(ts, format, locale, this.name); + } + + /** @override **/ + formatOffset(ts, format) { + return formatOffset(this.offset(ts), format); + } + + /** @override **/ + offset(ts) { + const date = new Date(ts); + + if (isNaN(date)) return NaN; + + const dtf = makeDTF(this.name); + let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts + ? partsOffset(dtf, date) + : hackyOffset(dtf, date); + + if (adOrBc === "BC") { + year = -Math.abs(year) + 1; + } + + // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat + const adjustedHour = hour === 24 ? 0 : hour; + + const asUTC = objToLocalTS({ + year, + month, + day, + hour: adjustedHour, + minute, + second, + millisecond: 0, + }); + + let asTS = +date; + const over = asTS % 1000; + asTS -= over >= 0 ? over : 1000 + over; + return (asUTC - asTS) / (60 * 1000); + } + + /** @override **/ + equals(otherZone) { + return otherZone.type === "iana" && otherZone.name === this.name; + } + + /** @override **/ + get isValid() { + return this.valid; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/locale.js + + + + + + +// todo - remap caching + +let intlLFCache = {}; +function getCachedLF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let dtf = intlLFCache[key]; + if (!dtf) { + dtf = new Intl.ListFormat(locString, opts); + intlLFCache[key] = dtf; + } + return dtf; +} + +let intlDTCache = {}; +function getCachedDTF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let dtf = intlDTCache[key]; + if (!dtf) { + dtf = new Intl.DateTimeFormat(locString, opts); + intlDTCache[key] = dtf; + } + return dtf; +} + +let intlNumCache = {}; +function getCachedINF(locString, opts = {}) { + const key = JSON.stringify([locString, opts]); + let inf = intlNumCache[key]; + if (!inf) { + inf = new Intl.NumberFormat(locString, opts); + intlNumCache[key] = inf; + } + return inf; +} + +let intlRelCache = {}; +function getCachedRTF(locString, opts = {}) { + const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options + const key = JSON.stringify([locString, cacheKeyOpts]); + let inf = intlRelCache[key]; + if (!inf) { + inf = new Intl.RelativeTimeFormat(locString, opts); + intlRelCache[key] = inf; + } + return inf; +} + +let sysLocaleCache = null; +function systemLocale() { + if (sysLocaleCache) { + return sysLocaleCache; + } else { + sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale; + return sysLocaleCache; + } +} + +let weekInfoCache = {}; +function getCachedWeekInfo(locString) { + let data = weekInfoCache[locString]; + if (!data) { + const locale = new Intl.Locale(locString); + // browsers currently implement this as a property, but spec says it should be a getter function + data = "getWeekInfo" in locale ? locale.getWeekInfo() : locale.weekInfo; + weekInfoCache[locString] = data; + } + return data; +} + +function parseLocaleString(localeStr) { + // I really want to avoid writing a BCP 47 parser + // see, e.g. https://github.com/wooorm/bcp-47 + // Instead, we'll do this: + + // a) if the string has no -u extensions, just leave it alone + // b) if it does, use Intl to resolve everything + // c) if Intl fails, try again without the -u + + // private subtags and unicode subtags have ordering requirements, + // and we're not properly parsing this, so just strip out the + // private ones if they exist. + const xIndex = localeStr.indexOf("-x-"); + if (xIndex !== -1) { + localeStr = localeStr.substring(0, xIndex); + } + + const uIndex = localeStr.indexOf("-u-"); + if (uIndex === -1) { + return [localeStr]; + } else { + let options; + let selectedStr; + try { + options = getCachedDTF(localeStr).resolvedOptions(); + selectedStr = localeStr; + } catch (e) { + const smaller = localeStr.substring(0, uIndex); + options = getCachedDTF(smaller).resolvedOptions(); + selectedStr = smaller; + } + + const { numberingSystem, calendar } = options; + return [selectedStr, numberingSystem, calendar]; + } +} + +function intlConfigString(localeStr, numberingSystem, outputCalendar) { + if (outputCalendar || numberingSystem) { + if (!localeStr.includes("-u-")) { + localeStr += "-u"; + } + + if (outputCalendar) { + localeStr += `-ca-${outputCalendar}`; + } + + if (numberingSystem) { + localeStr += `-nu-${numberingSystem}`; + } + return localeStr; + } else { + return localeStr; + } +} + +function mapMonths(f) { + const ms = []; + for (let i = 1; i <= 12; i++) { + const dt = DateTime.utc(2009, i, 1); + ms.push(f(dt)); + } + return ms; +} + +function mapWeekdays(f) { + const ms = []; + for (let i = 1; i <= 7; i++) { + const dt = DateTime.utc(2016, 11, 13 + i); + ms.push(f(dt)); + } + return ms; +} + +function listStuff(loc, length, englishFn, intlFn) { + const mode = loc.listingMode(); + + if (mode === "error") { + return null; + } else if (mode === "en") { + return englishFn(length); + } else { + return intlFn(length); + } +} + +function supportsFastNumbers(loc) { + if (loc.numberingSystem && loc.numberingSystem !== "latn") { + return false; + } else { + return ( + loc.numberingSystem === "latn" || + !loc.locale || + loc.locale.startsWith("en") || + new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === "latn" + ); + } +} + +/** + * @private + */ + +class PolyNumberFormatter { + constructor(intl, forceSimple, opts) { + this.padTo = opts.padTo || 0; + this.floor = opts.floor || false; + + const { padTo, floor, ...otherOpts } = opts; + + if (!forceSimple || Object.keys(otherOpts).length > 0) { + const intlOpts = { useGrouping: false, ...opts }; + if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo; + this.inf = getCachedINF(intl, intlOpts); + } + } + + format(i) { + if (this.inf) { + const fixed = this.floor ? Math.floor(i) : i; + return this.inf.format(fixed); + } else { + // to match the browser's numberformatter defaults + const fixed = this.floor ? Math.floor(i) : roundTo(i, 3); + return padStart(fixed, this.padTo); + } + } +} + +/** + * @private + */ + +class PolyDateFormatter { + constructor(dt, intl, opts) { + this.opts = opts; + this.originalZone = undefined; + + let z = undefined; + if (this.opts.timeZone) { + // Don't apply any workarounds if a timeZone is explicitly provided in opts + this.dt = dt; + } else if (dt.zone.type === "fixed") { + // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like. + // That is why fixed-offset TZ is set to that unless it is: + // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT. + // 2. Unsupported by the browser: + // - some do not support Etc/ + // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata + const gmtOffset = -1 * (dt.offset / 60); + const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`; + if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) { + z = offsetZ; + this.dt = dt; + } else { + // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so + // we manually apply the offset and substitute the zone as needed. + z = "UTC"; + this.dt = dt.offset === 0 ? dt : dt.setZone("UTC").plus({ minutes: dt.offset }); + this.originalZone = dt.zone; + } + } else if (dt.zone.type === "system") { + this.dt = dt; + } else if (dt.zone.type === "iana") { + this.dt = dt; + z = dt.zone.name; + } else { + // Custom zones can have any offset / offsetName so we just manually + // apply the offset and substitute the zone as needed. + z = "UTC"; + this.dt = dt.setZone("UTC").plus({ minutes: dt.offset }); + this.originalZone = dt.zone; + } + + const intlOpts = { ...this.opts }; + intlOpts.timeZone = intlOpts.timeZone || z; + this.dtf = getCachedDTF(intl, intlOpts); + } + + format() { + if (this.originalZone) { + // If we have to substitute in the actual zone name, we have to use + // formatToParts so that the timezone can be replaced. + return this.formatToParts() + .map(({ value }) => value) + .join(""); + } + return this.dtf.format(this.dt.toJSDate()); + } + + formatToParts() { + const parts = this.dtf.formatToParts(this.dt.toJSDate()); + if (this.originalZone) { + return parts.map((part) => { + if (part.type === "timeZoneName") { + const offsetName = this.originalZone.offsetName(this.dt.ts, { + locale: this.dt.locale, + format: this.opts.timeZoneName, + }); + return { + ...part, + value: offsetName, + }; + } else { + return part; + } + }); + } + return parts; + } + + resolvedOptions() { + return this.dtf.resolvedOptions(); + } +} + +/** + * @private + */ +class PolyRelFormatter { + constructor(intl, isEnglish, opts) { + this.opts = { style: "long", ...opts }; + if (!isEnglish && hasRelative()) { + this.rtf = getCachedRTF(intl, opts); + } + } + + format(count, unit) { + if (this.rtf) { + return this.rtf.format(count, unit); + } else { + return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== "long"); + } + } + + formatToParts(count, unit) { + if (this.rtf) { + return this.rtf.formatToParts(count, unit); + } else { + return []; + } + } +} + +const fallbackWeekSettings = { + firstDay: 1, + minimalDays: 4, + weekend: [6, 7], +}; + +/** + * @private + */ + +class Locale { + static fromOpts(opts) { + return Locale.create( + opts.locale, + opts.numberingSystem, + opts.outputCalendar, + opts.weekSettings, + opts.defaultToEN + ); + } + + static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) { + const specifiedLocale = locale || Settings.defaultLocale; + // the system locale is useful for human readable strings but annoying for parsing/formatting known formats + const localeR = specifiedLocale || (defaultToEN ? "en-US" : systemLocale()); + const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem; + const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar; + const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings; + return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale); + } + + static resetCache() { + sysLocaleCache = null; + intlDTCache = {}; + intlNumCache = {}; + intlRelCache = {}; + } + + static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) { + return Locale.create(locale, numberingSystem, outputCalendar, weekSettings); + } + + constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) { + const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale); + + this.locale = parsedLocale; + this.numberingSystem = numbering || parsedNumberingSystem || null; + this.outputCalendar = outputCalendar || parsedOutputCalendar || null; + this.weekSettings = weekSettings; + this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar); + + this.weekdaysCache = { format: {}, standalone: {} }; + this.monthsCache = { format: {}, standalone: {} }; + this.meridiemCache = null; + this.eraCache = {}; + + this.specifiedLocale = specifiedLocale; + this.fastNumbersCached = null; + } + + get fastNumbers() { + if (this.fastNumbersCached == null) { + this.fastNumbersCached = supportsFastNumbers(this); + } + + return this.fastNumbersCached; + } + + listingMode() { + const isActuallyEn = this.isEnglish(); + const hasNoWeirdness = + (this.numberingSystem === null || this.numberingSystem === "latn") && + (this.outputCalendar === null || this.outputCalendar === "gregory"); + return isActuallyEn && hasNoWeirdness ? "en" : "intl"; + } + + clone(alts) { + if (!alts || Object.getOwnPropertyNames(alts).length === 0) { + return this; + } else { + return Locale.create( + alts.locale || this.specifiedLocale, + alts.numberingSystem || this.numberingSystem, + alts.outputCalendar || this.outputCalendar, + validateWeekSettings(alts.weekSettings) || this.weekSettings, + alts.defaultToEN || false + ); + } + } + + redefaultToEN(alts = {}) { + return this.clone({ ...alts, defaultToEN: true }); + } + + redefaultToSystem(alts = {}) { + return this.clone({ ...alts, defaultToEN: false }); + } + + months(length, format = false) { + return listStuff(this, length, months, () => { + const intl = format ? { month: length, day: "numeric" } : { month: length }, + formatStr = format ? "format" : "standalone"; + if (!this.monthsCache[formatStr][length]) { + this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, "month")); + } + return this.monthsCache[formatStr][length]; + }); + } + + weekdays(length, format = false) { + return listStuff(this, length, weekdays, () => { + const intl = format + ? { weekday: length, year: "numeric", month: "long", day: "numeric" } + : { weekday: length }, + formatStr = format ? "format" : "standalone"; + if (!this.weekdaysCache[formatStr][length]) { + this.weekdaysCache[formatStr][length] = mapWeekdays((dt) => + this.extract(dt, intl, "weekday") + ); + } + return this.weekdaysCache[formatStr][length]; + }); + } + + meridiems() { + return listStuff( + this, + undefined, + () => meridiems, + () => { + // In theory there could be aribitrary day periods. We're gonna assume there are exactly two + // for AM and PM. This is probably wrong, but it's makes parsing way easier. + if (!this.meridiemCache) { + const intl = { hour: "numeric", hourCycle: "h12" }; + this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map( + (dt) => this.extract(dt, intl, "dayperiod") + ); + } + + return this.meridiemCache; + } + ); + } + + eras(length) { + return listStuff(this, length, eras, () => { + const intl = { era: length }; + + // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates + // to definitely enumerate them. + if (!this.eraCache[length]) { + this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) => + this.extract(dt, intl, "era") + ); + } + + return this.eraCache[length]; + }); + } + + extract(dt, intlOpts, field) { + const df = this.dtFormatter(dt, intlOpts), + results = df.formatToParts(), + matching = results.find((m) => m.type.toLowerCase() === field); + return matching ? matching.value : null; + } + + numberFormatter(opts = {}) { + // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave) + // (in contrast, the rest of the condition is used heavily) + return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts); + } + + dtFormatter(dt, intlOpts = {}) { + return new PolyDateFormatter(dt, this.intl, intlOpts); + } + + relFormatter(opts = {}) { + return new PolyRelFormatter(this.intl, this.isEnglish(), opts); + } + + listFormatter(opts = {}) { + return getCachedLF(this.intl, opts); + } + + isEnglish() { + return ( + this.locale === "en" || + this.locale.toLowerCase() === "en-us" || + new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us") + ); + } + + getWeekSettings() { + if (this.weekSettings) { + return this.weekSettings; + } else if (!hasLocaleWeekInfo()) { + return fallbackWeekSettings; + } else { + return getCachedWeekInfo(this.locale); + } + } + + getStartOfWeek() { + return this.getWeekSettings().firstDay; + } + + getMinDaysInFirstWeek() { + return this.getWeekSettings().minimalDays; + } + + getWeekendDays() { + return this.getWeekSettings().weekend; + } + + equals(other) { + return ( + this.locale === other.locale && + this.numberingSystem === other.numberingSystem && + this.outputCalendar === other.outputCalendar + ); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/fixedOffsetZone.js + + + +let fixedOffsetZone_singleton = null; + +/** + * A zone with a fixed offset (meaning no DST) + * @implements {Zone} + */ +class FixedOffsetZone extends Zone { + /** + * Get a singleton instance of UTC + * @return {FixedOffsetZone} + */ + static get utcInstance() { + if (fixedOffsetZone_singleton === null) { + fixedOffsetZone_singleton = new FixedOffsetZone(0); + } + return fixedOffsetZone_singleton; + } + + /** + * Get an instance with a specified offset + * @param {number} offset - The offset in minutes + * @return {FixedOffsetZone} + */ + static instance(offset) { + return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset); + } + + /** + * Get an instance of FixedOffsetZone from a UTC offset string, like "UTC+6" + * @param {string} s - The offset string to parse + * @example FixedOffsetZone.parseSpecifier("UTC+6") + * @example FixedOffsetZone.parseSpecifier("UTC+06") + * @example FixedOffsetZone.parseSpecifier("UTC-6:00") + * @return {FixedOffsetZone} + */ + static parseSpecifier(s) { + if (s) { + const r = s.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i); + if (r) { + return new FixedOffsetZone(signedOffset(r[1], r[2])); + } + } + return null; + } + + constructor(offset) { + super(); + /** @private **/ + this.fixed = offset; + } + + /** @override **/ + get type() { + return "fixed"; + } + + /** @override **/ + get name() { + return this.fixed === 0 ? "UTC" : `UTC${formatOffset(this.fixed, "narrow")}`; + } + + get ianaName() { + if (this.fixed === 0) { + return "Etc/UTC"; + } else { + return `Etc/GMT${formatOffset(-this.fixed, "narrow")}`; + } + } + + /** @override **/ + offsetName() { + return this.name; + } + + /** @override **/ + formatOffset(ts, format) { + return formatOffset(this.fixed, format); + } + + /** @override **/ + get isUniversal() { + return true; + } + + /** @override **/ + offset() { + return this.fixed; + } + + /** @override **/ + equals(otherZone) { + return otherZone.type === "fixed" && otherZone.fixed === this.fixed; + } + + /** @override **/ + get isValid() { + return true; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/invalidZone.js + + +/** + * A zone that failed to parse. You should never need to instantiate this. + * @implements {Zone} + */ +class InvalidZone extends Zone { + constructor(zoneName) { + super(); + /** @private */ + this.zoneName = zoneName; + } + + /** @override **/ + get type() { + return "invalid"; + } + + /** @override **/ + get name() { + return this.zoneName; + } + + /** @override **/ + get isUniversal() { + return false; + } + + /** @override **/ + offsetName() { + return null; + } + + /** @override **/ + formatOffset() { + return ""; + } + + /** @override **/ + offset() { + return NaN; + } + + /** @override **/ + equals() { + return false; + } + + /** @override **/ + get isValid() { + return false; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/zoneUtil.js +/** + * @private + */ + + + + + + + + + +function normalizeZone(input, defaultZone) { + let offset; + if (isUndefined(input) || input === null) { + return defaultZone; + } else if (input instanceof Zone) { + return input; + } else if (isString(input)) { + const lowered = input.toLowerCase(); + if (lowered === "default") return defaultZone; + else if (lowered === "local" || lowered === "system") return SystemZone.instance; + else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance; + else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input); + } else if (isNumber(input)) { + return FixedOffsetZone.instance(input); + } else if (typeof input === "object" && "offset" in input && typeof input.offset === "function") { + // This is dumb, but the instanceof check above doesn't seem to really work + // so we're duck checking it + return input; + } else { + return new InvalidZone(input); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/settings.js + + + + + + + +let now = () => Date.now(), + defaultZone = "system", + defaultLocale = null, + defaultNumberingSystem = null, + defaultOutputCalendar = null, + twoDigitCutoffYear = 60, + throwOnInvalid, + defaultWeekSettings = null; + +/** + * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here. + */ +class Settings { + /** + * Get the callback for returning the current timestamp. + * @type {function} + */ + static get now() { + return now; + } + + /** + * Set the callback for returning the current timestamp. + * The function should return a number, which will be interpreted as an Epoch millisecond count + * @type {function} + * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future + * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time + */ + static set now(n) { + now = n; + } + + /** + * Set the default time zone to create DateTimes in. Does not affect existing instances. + * Use the value "system" to reset this value to the system's time zone. + * @type {string} + */ + static set defaultZone(zone) { + defaultZone = zone; + } + + /** + * Get the default time zone object currently used to create DateTimes. Does not affect existing instances. + * The default value is the system's time zone (the one set on the machine that runs this code). + * @type {Zone} + */ + static get defaultZone() { + return normalizeZone(defaultZone, SystemZone.instance); + } + + /** + * Get the default locale to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultLocale() { + return defaultLocale; + } + + /** + * Set the default locale to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultLocale(locale) { + defaultLocale = locale; + } + + /** + * Get the default numbering system to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultNumberingSystem() { + return defaultNumberingSystem; + } + + /** + * Set the default numbering system to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultNumberingSystem(numberingSystem) { + defaultNumberingSystem = numberingSystem; + } + + /** + * Get the default output calendar to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultOutputCalendar() { + return defaultOutputCalendar; + } + + /** + * Set the default output calendar to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultOutputCalendar(outputCalendar) { + defaultOutputCalendar = outputCalendar; + } + + /** + * @typedef {Object} WeekSettings + * @property {number} firstDay + * @property {number} minimalDays + * @property {number[]} weekend + */ + + /** + * @return {WeekSettings|null} + */ + static get defaultWeekSettings() { + return defaultWeekSettings; + } + + /** + * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and + * how many days are required in the first week of a year. + * Does not affect existing instances. + * + * @param {WeekSettings|null} weekSettings + */ + static set defaultWeekSettings(weekSettings) { + defaultWeekSettings = validateWeekSettings(weekSettings); + } + + /** + * Get the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century. + * @type {number} + */ + static get twoDigitCutoffYear() { + return twoDigitCutoffYear; + } + + /** + * Set the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century. + * @type {number} + * @example Settings.twoDigitCutoffYear = 0 // cut-off year is 0, so all 'yy' are interpreted as current century + * @example Settings.twoDigitCutoffYear = 50 // '49' -> 1949; '50' -> 2050 + * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50 + * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50 + */ + static set twoDigitCutoffYear(cutoffYear) { + twoDigitCutoffYear = cutoffYear % 100; + } + + /** + * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals + * @type {boolean} + */ + static get throwOnInvalid() { + return throwOnInvalid; + } + + /** + * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals + * @type {boolean} + */ + static set throwOnInvalid(t) { + throwOnInvalid = t; + } + + /** + * Reset Luxon's global caches. Should only be necessary in testing scenarios. + * @return {void} + */ + static resetCaches() { + Locale.resetCache(); + IANAZone.resetCache(); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/invalid.js +class Invalid { + constructor(reason, explanation) { + this.reason = reason; + this.explanation = explanation; + } + + toMessage() { + if (this.explanation) { + return `${this.reason}: ${this.explanation}`; + } else { + return this.reason; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/conversions.js + + + + +const nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], + leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]; + +function unitOutOfRange(unit, value) { + return new Invalid( + "unit out of range", + `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid` + ); +} + +function dayOfWeek(year, month, day) { + const d = new Date(Date.UTC(year, month - 1, day)); + + if (year < 100 && year >= 0) { + d.setUTCFullYear(d.getUTCFullYear() - 1900); + } + + const js = d.getUTCDay(); + + return js === 0 ? 7 : js; +} + +function computeOrdinal(year, month, day) { + return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1]; +} + +function uncomputeOrdinal(year, ordinal) { + const table = isLeapYear(year) ? leapLadder : nonLeapLadder, + month0 = table.findIndex((i) => i < ordinal), + day = ordinal - table[month0]; + return { month: month0 + 1, day }; +} + +function isoWeekdayToLocal(isoWeekday, startOfWeek) { + return ((isoWeekday - startOfWeek + 7) % 7) + 1; +} + +/** + * @private + */ + +function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) { + const { year, month, day } = gregObj, + ordinal = computeOrdinal(year, month, day), + weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek); + + let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7), + weekYear; + + if (weekNumber < 1) { + weekYear = year - 1; + weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek); + } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) { + weekYear = year + 1; + weekNumber = 1; + } else { + weekYear = year; + } + + return { weekYear, weekNumber, weekday, ...timeObject(gregObj) }; +} + +function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) { + const { weekYear, weekNumber, weekday } = weekData, + weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek), + yearInDays = daysInYear(weekYear); + + let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek, + year; + + if (ordinal < 1) { + year = weekYear - 1; + ordinal += daysInYear(year); + } else if (ordinal > yearInDays) { + year = weekYear + 1; + ordinal -= daysInYear(weekYear); + } else { + year = weekYear; + } + + const { month, day } = uncomputeOrdinal(year, ordinal); + return { year, month, day, ...timeObject(weekData) }; +} + +function gregorianToOrdinal(gregData) { + const { year, month, day } = gregData; + const ordinal = computeOrdinal(year, month, day); + return { year, ordinal, ...timeObject(gregData) }; +} + +function ordinalToGregorian(ordinalData) { + const { year, ordinal } = ordinalData; + const { month, day } = uncomputeOrdinal(year, ordinal); + return { year, month, day, ...timeObject(ordinalData) }; +} + +/** + * Check if local week units like localWeekday are used in obj. + * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties. + * Modifies obj in-place! + * @param obj the object values + */ +function usesLocalWeekValues(obj, loc) { + const hasLocaleWeekData = + !isUndefined(obj.localWeekday) || + !isUndefined(obj.localWeekNumber) || + !isUndefined(obj.localWeekYear); + if (hasLocaleWeekData) { + const hasIsoWeekData = + !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear); + + if (hasIsoWeekData) { + throw new ConflictingSpecificationError( + "Cannot mix locale-based week fields with ISO-based week fields" + ); + } + if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday; + if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber; + if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear; + delete obj.localWeekday; + delete obj.localWeekNumber; + delete obj.localWeekYear; + return { + minDaysInFirstWeek: loc.getMinDaysInFirstWeek(), + startOfWeek: loc.getStartOfWeek(), + }; + } else { + return { minDaysInFirstWeek: 4, startOfWeek: 1 }; + } +} + +function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) { + const validYear = isInteger(obj.weekYear), + validWeek = integerBetween( + obj.weekNumber, + 1, + weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek) + ), + validWeekday = integerBetween(obj.weekday, 1, 7); + + if (!validYear) { + return unitOutOfRange("weekYear", obj.weekYear); + } else if (!validWeek) { + return unitOutOfRange("week", obj.weekNumber); + } else if (!validWeekday) { + return unitOutOfRange("weekday", obj.weekday); + } else return false; +} + +function hasInvalidOrdinalData(obj) { + const validYear = isInteger(obj.year), + validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year)); + + if (!validYear) { + return unitOutOfRange("year", obj.year); + } else if (!validOrdinal) { + return unitOutOfRange("ordinal", obj.ordinal); + } else return false; +} + +function hasInvalidGregorianData(obj) { + const validYear = isInteger(obj.year), + validMonth = integerBetween(obj.month, 1, 12), + validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month)); + + if (!validYear) { + return unitOutOfRange("year", obj.year); + } else if (!validMonth) { + return unitOutOfRange("month", obj.month); + } else if (!validDay) { + return unitOutOfRange("day", obj.day); + } else return false; +} + +function hasInvalidTimeData(obj) { + const { hour, minute, second, millisecond } = obj; + const validHour = + integerBetween(hour, 0, 23) || + (hour === 24 && minute === 0 && second === 0 && millisecond === 0), + validMinute = integerBetween(minute, 0, 59), + validSecond = integerBetween(second, 0, 59), + validMillisecond = integerBetween(millisecond, 0, 999); + + if (!validHour) { + return unitOutOfRange("hour", hour); + } else if (!validMinute) { + return unitOutOfRange("minute", minute); + } else if (!validSecond) { + return unitOutOfRange("second", second); + } else if (!validMillisecond) { + return unitOutOfRange("millisecond", millisecond); + } else return false; +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/util.js +/* + This is just a junk drawer, containing anything used across multiple classes. + Because Luxon is small(ish), this should stay small and we won't worry about splitting + it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area. +*/ + + + + + +/** + * @private + */ + +// TYPES + +function isUndefined(o) { + return typeof o === "undefined"; +} + +function isNumber(o) { + return typeof o === "number"; +} + +function isInteger(o) { + return typeof o === "number" && o % 1 === 0; +} + +function isString(o) { + return typeof o === "string"; +} + +function isDate(o) { + return Object.prototype.toString.call(o) === "[object Date]"; +} + +// CAPABILITIES + +function hasRelative() { + try { + return typeof Intl !== "undefined" && !!Intl.RelativeTimeFormat; + } catch (e) { + return false; + } +} + +function hasLocaleWeekInfo() { + try { + return ( + typeof Intl !== "undefined" && + !!Intl.Locale && + ("weekInfo" in Intl.Locale.prototype || "getWeekInfo" in Intl.Locale.prototype) + ); + } catch (e) { + return false; + } +} + +// OBJECTS AND ARRAYS + +function maybeArray(thing) { + return Array.isArray(thing) ? thing : [thing]; +} + +function bestBy(arr, by, compare) { + if (arr.length === 0) { + return undefined; + } + return arr.reduce((best, next) => { + const pair = [by(next), next]; + if (!best) { + return pair; + } else if (compare(best[0], pair[0]) === best[0]) { + return best; + } else { + return pair; + } + }, null)[1]; +} + +function util_pick(obj, keys) { + return keys.reduce((a, k) => { + a[k] = obj[k]; + return a; + }, {}); +} + +function util_hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +function validateWeekSettings(settings) { + if (settings == null) { + return null; + } else if (typeof settings !== "object") { + throw new InvalidArgumentError("Week settings must be an object"); + } else { + if ( + !integerBetween(settings.firstDay, 1, 7) || + !integerBetween(settings.minimalDays, 1, 7) || + !Array.isArray(settings.weekend) || + settings.weekend.some((v) => !integerBetween(v, 1, 7)) + ) { + throw new InvalidArgumentError("Invalid week settings"); + } + return { + firstDay: settings.firstDay, + minimalDays: settings.minimalDays, + weekend: Array.from(settings.weekend), + }; + } +} + +// NUMBERS AND STRINGS + +function integerBetween(thing, bottom, top) { + return isInteger(thing) && thing >= bottom && thing <= top; +} + +// x % n but takes the sign of n instead of x +function floorMod(x, n) { + return x - n * Math.floor(x / n); +} + +function padStart(input, n = 2) { + const isNeg = input < 0; + let padded; + if (isNeg) { + padded = "-" + ("" + -input).padStart(n, "0"); + } else { + padded = ("" + input).padStart(n, "0"); + } + return padded; +} + +function parseInteger(string) { + if (isUndefined(string) || string === null || string === "") { + return undefined; + } else { + return parseInt(string, 10); + } +} + +function parseFloating(string) { + if (isUndefined(string) || string === null || string === "") { + return undefined; + } else { + return parseFloat(string); + } +} + +function parseMillis(fraction) { + // Return undefined (instead of 0) in these cases, where fraction is not set + if (isUndefined(fraction) || fraction === null || fraction === "") { + return undefined; + } else { + const f = parseFloat("0." + fraction) * 1000; + return Math.floor(f); + } +} + +function roundTo(number, digits, towardZero = false) { + const factor = 10 ** digits, + rounder = towardZero ? Math.trunc : Math.round; + return rounder(number * factor) / factor; +} + +// DATE BASICS + +function isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); +} + +function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; +} + +function daysInMonth(year, month) { + const modMonth = floorMod(month - 1, 12) + 1, + modYear = year + (month - modMonth) / 12; + + if (modMonth === 2) { + return isLeapYear(modYear) ? 29 : 28; + } else { + return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1]; + } +} + +// convert a calendar object to a local timestamp (epoch, but with the offset baked in) +function objToLocalTS(obj) { + let d = Date.UTC( + obj.year, + obj.month - 1, + obj.day, + obj.hour, + obj.minute, + obj.second, + obj.millisecond + ); + + // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that + if (obj.year < 100 && obj.year >= 0) { + d = new Date(d); + // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not + // so if obj.year is in 99, but obj.day makes it roll over into year 100, + // the calculations done by Date.UTC are using year 2000 - which is incorrect + d.setUTCFullYear(obj.year, obj.month - 1, obj.day); + } + return +d; +} + +// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js +function firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) { + const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek); + return -fwdlw + minDaysInFirstWeek - 1; +} + +function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) { + const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek); + const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek); + return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7; +} + +function untruncateYear(year) { + if (year > 99) { + return year; + } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year; +} + +// PARSING + +function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) { + const date = new Date(ts), + intlOpts = { + hourCycle: "h23", + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + }; + + if (timeZone) { + intlOpts.timeZone = timeZone; + } + + const modified = { timeZoneName: offsetFormat, ...intlOpts }; + + const parsed = new Intl.DateTimeFormat(locale, modified) + .formatToParts(date) + .find((m) => m.type.toLowerCase() === "timezonename"); + return parsed ? parsed.value : null; +} + +// signedOffset('-5', '30') -> -330 +function signedOffset(offHourStr, offMinuteStr) { + let offHour = parseInt(offHourStr, 10); + + // don't || this because we want to preserve -0 + if (Number.isNaN(offHour)) { + offHour = 0; + } + + const offMin = parseInt(offMinuteStr, 10) || 0, + offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin; + return offHour * 60 + offMinSigned; +} + +// COERCION + +function asNumber(value) { + const numericValue = Number(value); + if (typeof value === "boolean" || value === "" || Number.isNaN(numericValue)) + throw new InvalidArgumentError(`Invalid unit value ${value}`); + return numericValue; +} + +function normalizeObject(obj, normalizer) { + const normalized = {}; + for (const u in obj) { + if (util_hasOwnProperty(obj, u)) { + const v = obj[u]; + if (v === undefined || v === null) continue; + normalized[normalizer(u)] = asNumber(v); + } + } + return normalized; +} + +function formatOffset(offset, format) { + const hours = Math.trunc(Math.abs(offset / 60)), + minutes = Math.trunc(Math.abs(offset % 60)), + sign = offset >= 0 ? "+" : "-"; + + switch (format) { + case "short": + return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`; + case "narrow": + return `${sign}${hours}${minutes > 0 ? `:${minutes}` : ""}`; + case "techie": + return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`; + default: + throw new RangeError(`Value format ${format} is out of range for property format`); + } +} + +function timeObject(obj) { + return util_pick(obj, ["hour", "minute", "second", "millisecond"]); +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/english.js + + + +function stringify(obj) { + return JSON.stringify(obj, Object.keys(obj).sort()); +} + +/** + * @private + */ + +const monthsLong = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", +]; + +const monthsShort = [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", +]; + +const monthsNarrow = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"]; + +function months(length) { + switch (length) { + case "narrow": + return [...monthsNarrow]; + case "short": + return [...monthsShort]; + case "long": + return [...monthsLong]; + case "numeric": + return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; + case "2-digit": + return ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]; + default: + return null; + } +} + +const weekdaysLong = [ + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday", +]; + +const weekdaysShort = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; + +const weekdaysNarrow = ["M", "T", "W", "T", "F", "S", "S"]; + +function weekdays(length) { + switch (length) { + case "narrow": + return [...weekdaysNarrow]; + case "short": + return [...weekdaysShort]; + case "long": + return [...weekdaysLong]; + case "numeric": + return ["1", "2", "3", "4", "5", "6", "7"]; + default: + return null; + } +} + +const meridiems = ["AM", "PM"]; + +const erasLong = ["Before Christ", "Anno Domini"]; + +const erasShort = ["BC", "AD"]; + +const erasNarrow = ["B", "A"]; + +function eras(length) { + switch (length) { + case "narrow": + return [...erasNarrow]; + case "short": + return [...erasShort]; + case "long": + return [...erasLong]; + default: + return null; + } +} + +function meridiemForDateTime(dt) { + return meridiems[dt.hour < 12 ? 0 : 1]; +} + +function weekdayForDateTime(dt, length) { + return weekdays(length)[dt.weekday - 1]; +} + +function monthForDateTime(dt, length) { + return months(length)[dt.month - 1]; +} + +function eraForDateTime(dt, length) { + return eras(length)[dt.year < 0 ? 0 : 1]; +} + +function formatRelativeTime(unit, count, numeric = "always", narrow = false) { + const units = { + years: ["year", "yr."], + quarters: ["quarter", "qtr."], + months: ["month", "mo."], + weeks: ["week", "wk."], + days: ["day", "day", "days"], + hours: ["hour", "hr."], + minutes: ["minute", "min."], + seconds: ["second", "sec."], + }; + + const lastable = ["hours", "minutes", "seconds"].indexOf(unit) === -1; + + if (numeric === "auto" && lastable) { + const isDay = unit === "days"; + switch (count) { + case 1: + return isDay ? "tomorrow" : `next ${units[unit][0]}`; + case -1: + return isDay ? "yesterday" : `last ${units[unit][0]}`; + case 0: + return isDay ? "today" : `this ${units[unit][0]}`; + default: // fall through + } + } + + const isInPast = Object.is(count, -0) || count < 0, + fmtValue = Math.abs(count), + singular = fmtValue === 1, + lilUnits = units[unit], + fmtUnit = narrow + ? singular + ? lilUnits[1] + : lilUnits[2] || lilUnits[1] + : singular + ? units[unit][0] + : unit; + return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`; +} + +function formatString(knownFormat) { + // these all have the offsets removed because we don't have access to them + // without all the intl stuff this is backfilling + const filtered = pick(knownFormat, [ + "weekday", + "era", + "year", + "month", + "day", + "hour", + "minute", + "second", + "timeZoneName", + "hourCycle", + ]), + key = stringify(filtered), + dateTimeHuge = "EEEE, LLLL d, yyyy, h:mm a"; + switch (key) { + case stringify(Formats.DATE_SHORT): + return "M/d/yyyy"; + case stringify(Formats.DATE_MED): + return "LLL d, yyyy"; + case stringify(Formats.DATE_MED_WITH_WEEKDAY): + return "EEE, LLL d, yyyy"; + case stringify(Formats.DATE_FULL): + return "LLLL d, yyyy"; + case stringify(Formats.DATE_HUGE): + return "EEEE, LLLL d, yyyy"; + case stringify(Formats.TIME_SIMPLE): + return "h:mm a"; + case stringify(Formats.TIME_WITH_SECONDS): + return "h:mm:ss a"; + case stringify(Formats.TIME_WITH_SHORT_OFFSET): + return "h:mm a"; + case stringify(Formats.TIME_WITH_LONG_OFFSET): + return "h:mm a"; + case stringify(Formats.TIME_24_SIMPLE): + return "HH:mm"; + case stringify(Formats.TIME_24_WITH_SECONDS): + return "HH:mm:ss"; + case stringify(Formats.TIME_24_WITH_SHORT_OFFSET): + return "HH:mm"; + case stringify(Formats.TIME_24_WITH_LONG_OFFSET): + return "HH:mm"; + case stringify(Formats.DATETIME_SHORT): + return "M/d/yyyy, h:mm a"; + case stringify(Formats.DATETIME_MED): + return "LLL d, yyyy, h:mm a"; + case stringify(Formats.DATETIME_FULL): + return "LLLL d, yyyy, h:mm a"; + case stringify(Formats.DATETIME_HUGE): + return dateTimeHuge; + case stringify(Formats.DATETIME_SHORT_WITH_SECONDS): + return "M/d/yyyy, h:mm:ss a"; + case stringify(Formats.DATETIME_MED_WITH_SECONDS): + return "LLL d, yyyy, h:mm:ss a"; + case stringify(Formats.DATETIME_MED_WITH_WEEKDAY): + return "EEE, d LLL yyyy, h:mm a"; + case stringify(Formats.DATETIME_FULL_WITH_SECONDS): + return "LLLL d, yyyy, h:mm:ss a"; + case stringify(Formats.DATETIME_HUGE_WITH_SECONDS): + return "EEEE, LLLL d, yyyy, h:mm:ss a"; + default: + return dateTimeHuge; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/formatter.js + + + + +function stringifyTokens(splits, tokenToString) { + let s = ""; + for (const token of splits) { + if (token.literal) { + s += token.val; + } else { + s += tokenToString(token.val); + } + } + return s; +} + +const macroTokenToFormatOpts = { + D: DATE_SHORT, + DD: DATE_MED, + DDD: DATE_FULL, + DDDD: DATE_HUGE, + t: TIME_SIMPLE, + tt: TIME_WITH_SECONDS, + ttt: TIME_WITH_SHORT_OFFSET, + tttt: TIME_WITH_LONG_OFFSET, + T: TIME_24_SIMPLE, + TT: TIME_24_WITH_SECONDS, + TTT: TIME_24_WITH_SHORT_OFFSET, + TTTT: TIME_24_WITH_LONG_OFFSET, + f: DATETIME_SHORT, + ff: DATETIME_MED, + fff: DATETIME_FULL, + ffff: DATETIME_HUGE, + F: DATETIME_SHORT_WITH_SECONDS, + FF: DATETIME_MED_WITH_SECONDS, + FFF: DATETIME_FULL_WITH_SECONDS, + FFFF: DATETIME_HUGE_WITH_SECONDS, +}; + +/** + * @private + */ + +class Formatter { + static create(locale, opts = {}) { + return new Formatter(locale, opts); + } + + static parseFormat(fmt) { + // white-space is always considered a literal in user-provided formats + // the " " token has a special meaning (see unitForToken) + + let current = null, + currentFull = "", + bracketed = false; + const splits = []; + for (let i = 0; i < fmt.length; i++) { + const c = fmt.charAt(i); + if (c === "'") { + if (currentFull.length > 0) { + splits.push({ literal: bracketed || /^\s+$/.test(currentFull), val: currentFull }); + } + current = null; + currentFull = ""; + bracketed = !bracketed; + } else if (bracketed) { + currentFull += c; + } else if (c === current) { + currentFull += c; + } else { + if (currentFull.length > 0) { + splits.push({ literal: /^\s+$/.test(currentFull), val: currentFull }); + } + currentFull = c; + current = c; + } + } + + if (currentFull.length > 0) { + splits.push({ literal: bracketed || /^\s+$/.test(currentFull), val: currentFull }); + } + + return splits; + } + + static macroTokenToFormatOpts(token) { + return macroTokenToFormatOpts[token]; + } + + constructor(locale, formatOpts) { + this.opts = formatOpts; + this.loc = locale; + this.systemLoc = null; + } + + formatWithSystemDefault(dt, opts) { + if (this.systemLoc === null) { + this.systemLoc = this.loc.redefaultToSystem(); + } + const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts }); + return df.format(); + } + + dtFormatter(dt, opts = {}) { + return this.loc.dtFormatter(dt, { ...this.opts, ...opts }); + } + + formatDateTime(dt, opts) { + return this.dtFormatter(dt, opts).format(); + } + + formatDateTimeParts(dt, opts) { + return this.dtFormatter(dt, opts).formatToParts(); + } + + formatInterval(interval, opts) { + const df = this.dtFormatter(interval.start, opts); + return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate()); + } + + resolvedOptions(dt, opts) { + return this.dtFormatter(dt, opts).resolvedOptions(); + } + + num(n, p = 0) { + // we get some perf out of doing this here, annoyingly + if (this.opts.forceSimple) { + return padStart(n, p); + } + + const opts = { ...this.opts }; + + if (p > 0) { + opts.padTo = p; + } + + return this.loc.numberFormatter(opts).format(n); + } + + formatDateTimeFromString(dt, fmt) { + const knownEnglish = this.loc.listingMode() === "en", + useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory", + string = (opts, extract) => this.loc.extract(dt, opts, extract), + formatOffset = (opts) => { + if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) { + return "Z"; + } + + return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : ""; + }, + meridiem = () => + knownEnglish + ? meridiemForDateTime(dt) + : string({ hour: "numeric", hourCycle: "h12" }, "dayperiod"), + month = (length, standalone) => + knownEnglish + ? monthForDateTime(dt, length) + : string(standalone ? { month: length } : { month: length, day: "numeric" }, "month"), + weekday = (length, standalone) => + knownEnglish + ? weekdayForDateTime(dt, length) + : string( + standalone ? { weekday: length } : { weekday: length, month: "long", day: "numeric" }, + "weekday" + ), + maybeMacro = (token) => { + const formatOpts = Formatter.macroTokenToFormatOpts(token); + if (formatOpts) { + return this.formatWithSystemDefault(dt, formatOpts); + } else { + return token; + } + }, + era = (length) => + knownEnglish ? eraForDateTime(dt, length) : string({ era: length }, "era"), + tokenToString = (token) => { + // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols + switch (token) { + // ms + case "S": + return this.num(dt.millisecond); + case "u": + // falls through + case "SSS": + return this.num(dt.millisecond, 3); + // seconds + case "s": + return this.num(dt.second); + case "ss": + return this.num(dt.second, 2); + // fractional seconds + case "uu": + return this.num(Math.floor(dt.millisecond / 10), 2); + case "uuu": + return this.num(Math.floor(dt.millisecond / 100)); + // minutes + case "m": + return this.num(dt.minute); + case "mm": + return this.num(dt.minute, 2); + // hours + case "h": + return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12); + case "hh": + return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2); + case "H": + return this.num(dt.hour); + case "HH": + return this.num(dt.hour, 2); + // offset + case "Z": + // like +6 + return formatOffset({ format: "narrow", allowZ: this.opts.allowZ }); + case "ZZ": + // like +06:00 + return formatOffset({ format: "short", allowZ: this.opts.allowZ }); + case "ZZZ": + // like +0600 + return formatOffset({ format: "techie", allowZ: this.opts.allowZ }); + case "ZZZZ": + // like EST + return dt.zone.offsetName(dt.ts, { format: "short", locale: this.loc.locale }); + case "ZZZZZ": + // like Eastern Standard Time + return dt.zone.offsetName(dt.ts, { format: "long", locale: this.loc.locale }); + // zone + case "z": + // like America/New_York + return dt.zoneName; + // meridiems + case "a": + return meridiem(); + // dates + case "d": + return useDateTimeFormatter ? string({ day: "numeric" }, "day") : this.num(dt.day); + case "dd": + return useDateTimeFormatter ? string({ day: "2-digit" }, "day") : this.num(dt.day, 2); + // weekdays - standalone + case "c": + // like 1 + return this.num(dt.weekday); + case "ccc": + // like 'Tues' + return weekday("short", true); + case "cccc": + // like 'Tuesday' + return weekday("long", true); + case "ccccc": + // like 'T' + return weekday("narrow", true); + // weekdays - format + case "E": + // like 1 + return this.num(dt.weekday); + case "EEE": + // like 'Tues' + return weekday("short", false); + case "EEEE": + // like 'Tuesday' + return weekday("long", false); + case "EEEEE": + // like 'T' + return weekday("narrow", false); + // months - standalone + case "L": + // like 1 + return useDateTimeFormatter + ? string({ month: "numeric", day: "numeric" }, "month") + : this.num(dt.month); + case "LL": + // like 01, doesn't seem to work + return useDateTimeFormatter + ? string({ month: "2-digit", day: "numeric" }, "month") + : this.num(dt.month, 2); + case "LLL": + // like Jan + return month("short", true); + case "LLLL": + // like January + return month("long", true); + case "LLLLL": + // like J + return month("narrow", true); + // months - format + case "M": + // like 1 + return useDateTimeFormatter + ? string({ month: "numeric" }, "month") + : this.num(dt.month); + case "MM": + // like 01 + return useDateTimeFormatter + ? string({ month: "2-digit" }, "month") + : this.num(dt.month, 2); + case "MMM": + // like Jan + return month("short", false); + case "MMMM": + // like January + return month("long", false); + case "MMMMM": + // like J + return month("narrow", false); + // years + case "y": + // like 2014 + return useDateTimeFormatter ? string({ year: "numeric" }, "year") : this.num(dt.year); + case "yy": + // like 14 + return useDateTimeFormatter + ? string({ year: "2-digit" }, "year") + : this.num(dt.year.toString().slice(-2), 2); + case "yyyy": + // like 0012 + return useDateTimeFormatter + ? string({ year: "numeric" }, "year") + : this.num(dt.year, 4); + case "yyyyyy": + // like 000012 + return useDateTimeFormatter + ? string({ year: "numeric" }, "year") + : this.num(dt.year, 6); + // eras + case "G": + // like AD + return era("short"); + case "GG": + // like Anno Domini + return era("long"); + case "GGGGG": + return era("narrow"); + case "kk": + return this.num(dt.weekYear.toString().slice(-2), 2); + case "kkkk": + return this.num(dt.weekYear, 4); + case "W": + return this.num(dt.weekNumber); + case "WW": + return this.num(dt.weekNumber, 2); + case "n": + return this.num(dt.localWeekNumber); + case "nn": + return this.num(dt.localWeekNumber, 2); + case "ii": + return this.num(dt.localWeekYear.toString().slice(-2), 2); + case "iiii": + return this.num(dt.localWeekYear, 4); + case "o": + return this.num(dt.ordinal); + case "ooo": + return this.num(dt.ordinal, 3); + case "q": + // like 1 + return this.num(dt.quarter); + case "qq": + // like 01 + return this.num(dt.quarter, 2); + case "X": + return this.num(Math.floor(dt.ts / 1000)); + case "x": + return this.num(dt.ts); + default: + return maybeMacro(token); + } + }; + + return stringifyTokens(Formatter.parseFormat(fmt), tokenToString); + } + + formatDurationFromString(dur, fmt) { + const tokenToField = (token) => { + switch (token[0]) { + case "S": + return "millisecond"; + case "s": + return "second"; + case "m": + return "minute"; + case "h": + return "hour"; + case "d": + return "day"; + case "w": + return "week"; + case "M": + return "month"; + case "y": + return "year"; + default: + return null; + } + }, + tokenToString = (lildur) => (token) => { + const mapped = tokenToField(token); + if (mapped) { + return this.num(lildur.get(mapped), token.length); + } else { + return token; + } + }, + tokens = Formatter.parseFormat(fmt), + realTokens = tokens.reduce( + (found, { literal, val }) => (literal ? found : found.concat(val)), + [] + ), + collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t)); + return stringifyTokens(tokens, tokenToString(collapsed)); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/regexParser.js + + + + + +/* + * This file handles parsing for well-specified formats. Here's how it works: + * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match. + * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object + * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence. + * Extractors can take a "cursor" representing the offset in the match to look at. This makes it easy to combine extractors. + * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions. + * Some extractions are super dumb and simpleParse and fromStrings help DRY them. + */ + +const ianaRegex = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/; + +function combineRegexes(...regexes) { + const full = regexes.reduce((f, r) => f + r.source, ""); + return RegExp(`^${full}$`); +} + +function combineExtractors(...extractors) { + return (m) => + extractors + .reduce( + ([mergedVals, mergedZone, cursor], ex) => { + const [val, zone, next] = ex(m, cursor); + return [{ ...mergedVals, ...val }, zone || mergedZone, next]; + }, + [{}, null, 1] + ) + .slice(0, 2); +} + +function regexParser_parse(s, ...patterns) { + if (s == null) { + return [null, null]; + } + + for (const [regex, extractor] of patterns) { + const m = regex.exec(s); + if (m) { + return extractor(m); + } + } + return [null, null]; +} + +function simpleParse(...keys) { + return (match, cursor) => { + const ret = {}; + let i; + + for (i = 0; i < keys.length; i++) { + ret[keys[i]] = parseInteger(match[cursor + i]); + } + return [ret, null, cursor + i]; + }; +} + +// ISO and SQL parsing +const offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/; +const isoExtendedZone = `(?:${offsetRegex.source}?(?:\\[(${ianaRegex.source})\\])?)?`; +const isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/; +const isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`); +const isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`); +const isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/; +const isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/; +const isoOrdinalRegex = /(\d{4})-?(\d{3})/; +const extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"); +const extractISOOrdinalData = simpleParse("year", "ordinal"); +const sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/; // dumbed-down version of the ISO one +const sqlTimeRegex = RegExp( + `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?` +); +const sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`); + +function regexParser_int(match, pos, fallback) { + const m = match[pos]; + return isUndefined(m) ? fallback : parseInteger(m); +} + +function extractISOYmd(match, cursor) { + const item = { + year: regexParser_int(match, cursor), + month: regexParser_int(match, cursor + 1, 1), + day: regexParser_int(match, cursor + 2, 1), + }; + + return [item, null, cursor + 3]; +} + +function extractISOTime(match, cursor) { + const item = { + hours: regexParser_int(match, cursor, 0), + minutes: regexParser_int(match, cursor + 1, 0), + seconds: regexParser_int(match, cursor + 2, 0), + milliseconds: parseMillis(match[cursor + 3]), + }; + + return [item, null, cursor + 4]; +} + +function extractISOOffset(match, cursor) { + const local = !match[cursor] && !match[cursor + 1], + fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]), + zone = local ? null : FixedOffsetZone.instance(fullOffset); + return [{}, zone, cursor + 3]; +} + +function extractIANAZone(match, cursor) { + const zone = match[cursor] ? IANAZone.create(match[cursor]) : null; + return [{}, zone, cursor + 1]; +} + +// ISO time parsing + +const isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`); + +// ISO duration parsing + +const isoDuration = + /^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/; + +function extractISODuration(match) { + const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] = + match; + + const hasNegativePrefix = s[0] === "-"; + const negativeSeconds = secondStr && secondStr[0] === "-"; + + const maybeNegate = (num, force = false) => + num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num; + + return [ + { + years: maybeNegate(parseFloating(yearStr)), + months: maybeNegate(parseFloating(monthStr)), + weeks: maybeNegate(parseFloating(weekStr)), + days: maybeNegate(parseFloating(dayStr)), + hours: maybeNegate(parseFloating(hourStr)), + minutes: maybeNegate(parseFloating(minuteStr)), + seconds: maybeNegate(parseFloating(secondStr), secondStr === "-0"), + milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds), + }, + ]; +} + +// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York +// and not just that we're in -240 *right now*. But since I don't think these are used that often +// I'm just going to ignore that +const obsOffsets = { + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, +}; + +function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { + const result = { + year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr), + month: monthsShort.indexOf(monthStr) + 1, + day: parseInteger(dayStr), + hour: parseInteger(hourStr), + minute: parseInteger(minuteStr), + }; + + if (secondStr) result.second = parseInteger(secondStr); + if (weekdayStr) { + result.weekday = + weekdayStr.length > 3 + ? weekdaysLong.indexOf(weekdayStr) + 1 + : weekdaysShort.indexOf(weekdayStr) + 1; + } + + return result; +} + +// RFC 2822/5322 +const rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/; + +function extractRFC2822(match) { + const [ + , + weekdayStr, + dayStr, + monthStr, + yearStr, + hourStr, + minuteStr, + secondStr, + obsOffset, + milOffset, + offHourStr, + offMinuteStr, + ] = match, + result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + + let offset; + if (obsOffset) { + offset = obsOffsets[obsOffset]; + } else if (milOffset) { + offset = 0; + } else { + offset = signedOffset(offHourStr, offMinuteStr); + } + + return [result, new FixedOffsetZone(offset)]; +} + +function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, " ") + .replace(/(\s\s+)/g, " ") + .trim(); +} + +// http date + +const rfc1123 = + /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/, + rfc850 = + /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/, + ascii = + /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/; + +function extractRFC1123Or850(match) { + const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match, + result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + return [result, FixedOffsetZone.utcInstance]; +} + +function extractASCII(match) { + const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match, + result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); + return [result, FixedOffsetZone.utcInstance]; +} + +const isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex); +const isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex); +const isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex); +const isoTimeCombinedRegex = combineRegexes(isoTimeRegex); + +const extractISOYmdTimeAndOffset = combineExtractors( + extractISOYmd, + extractISOTime, + extractISOOffset, + extractIANAZone +); +const extractISOWeekTimeAndOffset = combineExtractors( + extractISOWeekData, + extractISOTime, + extractISOOffset, + extractIANAZone +); +const extractISOOrdinalDateAndTime = combineExtractors( + extractISOOrdinalData, + extractISOTime, + extractISOOffset, + extractIANAZone +); +const extractISOTimeAndOffset = combineExtractors( + extractISOTime, + extractISOOffset, + extractIANAZone +); + +/* + * @private + */ + +function parseISODate(s) { + return regexParser_parse( + s, + [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], + [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], + [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], + [isoTimeCombinedRegex, extractISOTimeAndOffset] + ); +} + +function parseRFC2822Date(s) { + return regexParser_parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]); +} + +function parseHTTPDate(s) { + return regexParser_parse( + s, + [rfc1123, extractRFC1123Or850], + [rfc850, extractRFC1123Or850], + [ascii, extractASCII] + ); +} + +function parseISODuration(s) { + return regexParser_parse(s, [isoDuration, extractISODuration]); +} + +const extractISOTimeOnly = combineExtractors(extractISOTime); + +function parseISOTimeOnly(s) { + return regexParser_parse(s, [isoTimeOnly, extractISOTimeOnly]); +} + +const sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex); +const sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex); + +const extractISOTimeOffsetAndIANAZone = combineExtractors( + extractISOTime, + extractISOOffset, + extractIANAZone +); + +function parseSQL(s) { + return regexParser_parse( + s, + [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], + [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone] + ); +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/duration.js + + + + + + + + + +const INVALID = "Invalid Duration"; + +// unit conversion constants +const lowOrderMatrix = { + weeks: { + days: 7, + hours: 7 * 24, + minutes: 7 * 24 * 60, + seconds: 7 * 24 * 60 * 60, + milliseconds: 7 * 24 * 60 * 60 * 1000, + }, + days: { + hours: 24, + minutes: 24 * 60, + seconds: 24 * 60 * 60, + milliseconds: 24 * 60 * 60 * 1000, + }, + hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 }, + minutes: { seconds: 60, milliseconds: 60 * 1000 }, + seconds: { milliseconds: 1000 }, + }, + casualMatrix = { + years: { + quarters: 4, + months: 12, + weeks: 52, + days: 365, + hours: 365 * 24, + minutes: 365 * 24 * 60, + seconds: 365 * 24 * 60 * 60, + milliseconds: 365 * 24 * 60 * 60 * 1000, + }, + quarters: { + months: 3, + weeks: 13, + days: 91, + hours: 91 * 24, + minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, + milliseconds: 91 * 24 * 60 * 60 * 1000, + }, + months: { + weeks: 4, + days: 30, + hours: 30 * 24, + minutes: 30 * 24 * 60, + seconds: 30 * 24 * 60 * 60, + milliseconds: 30 * 24 * 60 * 60 * 1000, + }, + + ...lowOrderMatrix, + }, + daysInYearAccurate = 146097.0 / 400, + daysInMonthAccurate = 146097.0 / 4800, + accurateMatrix = { + years: { + quarters: 4, + months: 12, + weeks: daysInYearAccurate / 7, + days: daysInYearAccurate, + hours: daysInYearAccurate * 24, + minutes: daysInYearAccurate * 24 * 60, + seconds: daysInYearAccurate * 24 * 60 * 60, + milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000, + }, + quarters: { + months: 3, + weeks: daysInYearAccurate / 28, + days: daysInYearAccurate / 4, + hours: (daysInYearAccurate * 24) / 4, + minutes: (daysInYearAccurate * 24 * 60) / 4, + seconds: (daysInYearAccurate * 24 * 60 * 60) / 4, + milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4, + }, + months: { + weeks: daysInMonthAccurate / 7, + days: daysInMonthAccurate, + hours: daysInMonthAccurate * 24, + minutes: daysInMonthAccurate * 24 * 60, + seconds: daysInMonthAccurate * 24 * 60 * 60, + milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000, + }, + ...lowOrderMatrix, + }; + +// units ordered by size +const orderedUnits = [ + "years", + "quarters", + "months", + "weeks", + "days", + "hours", + "minutes", + "seconds", + "milliseconds", +]; + +const reverseUnits = orderedUnits.slice(0).reverse(); + +// clone really means "create another instance just like this one, but with these changes" +function clone(dur, alts, clear = false) { + // deep merge for vals + const conf = { + values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) }, + loc: dur.loc.clone(alts.loc), + conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy, + matrix: alts.matrix || dur.matrix, + }; + return new Duration(conf); +} + +function durationToMillis(matrix, vals) { + let sum = vals.milliseconds ?? 0; + for (const unit of reverseUnits.slice(1)) { + if (vals[unit]) { + sum += vals[unit] * matrix[unit]["milliseconds"]; + } + } + return sum; +} + +// NB: mutates parameters +function normalizeValues(matrix, vals) { + // the logic below assumes the overall value of the duration is positive + // if this is not the case, factor is used to make it so + const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1; + + orderedUnits.reduceRight((previous, current) => { + if (!isUndefined(vals[current])) { + if (previous) { + const previousVal = vals[previous] * factor; + const conv = matrix[current][previous]; + + // if (previousVal < 0): + // lower order unit is negative (e.g. { years: 2, days: -2 }) + // normalize this by reducing the higher order unit by the appropriate amount + // and increasing the lower order unit + // this can never make the higher order unit negative, because this function only operates + // on positive durations, so the amount of time represented by the lower order unit cannot + // be larger than the higher order unit + // else: + // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 }) + // in this case we attempt to convert as much as possible from the lower order unit into + // the higher order one + // + // Math.floor takes care of both of these cases, rounding away from 0 + // if previousVal < 0 it makes the absolute value larger + // if previousVal >= it makes the absolute value smaller + const rollUp = Math.floor(previousVal / conv); + vals[current] += rollUp * factor; + vals[previous] -= rollUp * conv * factor; + } + return current; + } else { + return previous; + } + }, null); + + // try to convert any decimals into smaller units if possible + // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 } + orderedUnits.reduce((previous, current) => { + if (!isUndefined(vals[current])) { + if (previous) { + const fraction = vals[previous] % 1; + vals[previous] -= fraction; + vals[current] += fraction * matrix[previous][current]; + } + return current; + } else { + return previous; + } + }, null); +} + +// Remove all properties with a value of 0 from an object +function removeZeroes(vals) { + const newVals = {}; + for (const [key, value] of Object.entries(vals)) { + if (value !== 0) { + newVals[key] = value; + } + } + return newVals; +} + +/** + * A Duration object represents a period of time, like "2 months" or "1 day, 1 hour". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime. + * + * Here is a brief overview of commonly used methods and getters in Duration: + * + * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}. + * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors. + * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors. + * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}. + * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON} + * + * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation. + */ +class Duration { + /** + * @private + */ + constructor(config) { + const accurate = config.conversionAccuracy === "longterm" || false; + let matrix = accurate ? accurateMatrix : casualMatrix; + + if (config.matrix) { + matrix = config.matrix; + } + + /** + * @access private + */ + this.values = config.values; + /** + * @access private + */ + this.loc = config.loc || Locale.create(); + /** + * @access private + */ + this.conversionAccuracy = accurate ? "longterm" : "casual"; + /** + * @access private + */ + this.invalid = config.invalid || null; + /** + * @access private + */ + this.matrix = matrix; + /** + * @access private + */ + this.isLuxonDuration = true; + } + + /** + * Create Duration from a number of milliseconds. + * @param {number} count of milliseconds + * @param {Object} opts - options for parsing + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @return {Duration} + */ + static fromMillis(count, opts) { + return Duration.fromObject({ milliseconds: count }, opts); + } + + /** + * Create a Duration from a JavaScript object with keys like 'years' and 'hours'. + * If this object is empty then a zero milliseconds duration is returned. + * @param {Object} obj - the object to create the DateTime from + * @param {number} obj.years + * @param {number} obj.quarters + * @param {number} obj.months + * @param {number} obj.weeks + * @param {number} obj.days + * @param {number} obj.hours + * @param {number} obj.minutes + * @param {number} obj.seconds + * @param {number} obj.milliseconds + * @param {Object} [opts=[]] - options for creating this Duration + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use + * @param {string} [opts.matrix=Object] - the custom conversion system to use + * @return {Duration} + */ + static fromObject(obj, opts = {}) { + if (obj == null || typeof obj !== "object") { + throw new InvalidArgumentError( + `Duration.fromObject: argument expected to be an object, got ${ + obj === null ? "null" : typeof obj + }` + ); + } + + return new Duration({ + values: normalizeObject(obj, Duration.normalizeUnit), + loc: Locale.fromObject(opts), + conversionAccuracy: opts.conversionAccuracy, + matrix: opts.matrix, + }); + } + + /** + * Create a Duration from DurationLike. + * + * @param {Object | number | Duration} durationLike + * One of: + * - object with keys like 'years' and 'hours'. + * - number representing milliseconds + * - Duration instance + * @return {Duration} + */ + static fromDurationLike(durationLike) { + if (isNumber(durationLike)) { + return Duration.fromMillis(durationLike); + } else if (Duration.isDuration(durationLike)) { + return durationLike; + } else if (typeof durationLike === "object") { + return Duration.fromObject(durationLike); + } else { + throw new InvalidArgumentError( + `Unknown duration argument ${durationLike} of type ${typeof durationLike}` + ); + } + } + + /** + * Create a Duration from an ISO 8601 duration string. + * @param {string} text - text to parse + * @param {Object} opts - options for parsing + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use + * @param {string} [opts.matrix=Object] - the preset conversion system to use + * @see https://en.wikipedia.org/wiki/ISO_8601#Durations + * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 } + * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 } + * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 } + * @return {Duration} + */ + static fromISO(text, opts) { + const [parsed] = parseISODuration(text); + if (parsed) { + return Duration.fromObject(parsed, opts); + } else { + return Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + } + + /** + * Create a Duration from an ISO 8601 time string. + * @param {string} text - text to parse + * @param {Object} opts - options for parsing + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use + * @param {string} [opts.matrix=Object] - the conversion system to use + * @see https://en.wikipedia.org/wiki/ISO_8601#Times + * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 } + * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @return {Duration} + */ + static fromISOTime(text, opts) { + const [parsed] = parseISOTimeOnly(text); + if (parsed) { + return Duration.fromObject(parsed, opts); + } else { + return Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + } + + /** + * Create an invalid Duration. + * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent + * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information + * @return {Duration} + */ + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the Duration is invalid"); + } + + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + + if (Settings.throwOnInvalid) { + throw new InvalidDurationError(invalid); + } else { + return new Duration({ invalid }); + } + } + + /** + * @private + */ + static normalizeUnit(unit) { + const normalized = { + year: "years", + years: "years", + quarter: "quarters", + quarters: "quarters", + month: "months", + months: "months", + week: "weeks", + weeks: "weeks", + day: "days", + days: "days", + hour: "hours", + hours: "hours", + minute: "minutes", + minutes: "minutes", + second: "seconds", + seconds: "seconds", + millisecond: "milliseconds", + milliseconds: "milliseconds", + }[unit ? unit.toLowerCase() : unit]; + + if (!normalized) throw new InvalidUnitError(unit); + + return normalized; + } + + /** + * Check if an object is a Duration. Works across context boundaries + * @param {object} o + * @return {boolean} + */ + static isDuration(o) { + return (o && o.isLuxonDuration) || false; + } + + /** + * Get the locale of a Duration, such 'en-GB' + * @type {string} + */ + get locale() { + return this.isValid ? this.loc.locale : null; + } + + /** + * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration + * + * @type {string} + */ + get numberingSystem() { + return this.isValid ? this.loc.numberingSystem : null; + } + + /** + * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens: + * * `S` for milliseconds + * * `s` for seconds + * * `m` for minutes + * * `h` for hours + * * `d` for days + * * `w` for weeks + * * `M` for months + * * `y` for years + * Notes: + * * Add padding by repeating the token, e.g. "yy" pads the years to two digits, "hhhh" pads the hours out to four digits + * * Tokens can be escaped by wrapping with single quotes. + * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting. + * @param {string} fmt - the format string + * @param {Object} opts - options + * @param {boolean} [opts.floor=true] - floor numerical values + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("y d s") //=> "1 6 2" + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("yy dd sss") //=> "01 06 002" + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("M S") //=> "12 518402000" + * @return {string} + */ + toFormat(fmt, opts = {}) { + // reverse-compat since 1.2; we always round down now, never up, and we do it by default + const fmtOpts = { + ...opts, + floor: opts.round !== false && opts.floor !== false, + }; + return this.isValid + ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) + : INVALID; + } + + /** + * Returns a string representation of a Duration with all units included. + * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options + * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`. + * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor. + * @example + * ```js + * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 }) + * dur.toHuman() //=> '1 day, 5 hours, 6 minutes' + * dur.toHuman({ listStyle: "long" }) //=> '1 day, 5 hours, and 6 minutes' + * dur.toHuman({ unitDisplay: "short" }) //=> '1 day, 5 hr, 6 min' + * ``` + */ + toHuman(opts = {}) { + if (!this.isValid) return INVALID; + + const l = orderedUnits + .map((unit) => { + const val = this.values[unit]; + if (isUndefined(val)) { + return null; + } + return this.loc + .numberFormatter({ style: "unit", unitDisplay: "long", ...opts, unit: unit.slice(0, -1) }) + .format(val); + }) + .filter((n) => n); + + return this.loc + .listFormatter({ type: "conjunction", style: opts.listStyle || "narrow", ...opts }) + .format(l); + } + + /** + * Returns a JavaScript object with this Duration's values. + * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 } + * @return {Object} + */ + toObject() { + if (!this.isValid) return {}; + return { ...this.values }; + } + + /** + * Returns an ISO 8601-compliant string representation of this Duration. + * @see https://en.wikipedia.org/wiki/ISO_8601#Durations + * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S' + * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S' + * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M' + * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M' + * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S' + * @return {string} + */ + toISO() { + // we could use the formatter, but this is an easier way to get the minimum string + if (!this.isValid) return null; + + let s = "P"; + if (this.years !== 0) s += this.years + "Y"; + if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + "M"; + if (this.weeks !== 0) s += this.weeks + "W"; + if (this.days !== 0) s += this.days + "D"; + if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) + s += "T"; + if (this.hours !== 0) s += this.hours + "H"; + if (this.minutes !== 0) s += this.minutes + "M"; + if (this.seconds !== 0 || this.milliseconds !== 0) + // this will handle "floating point madness" by removing extra decimal places + // https://stackoverflow.com/questions/588004/is-floating-point-math-broken + s += roundTo(this.seconds + this.milliseconds / 1000, 3) + "S"; + if (s === "P") s += "T0S"; + return s; + } + + /** + * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day. + * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours. + * @see https://en.wikipedia.org/wiki/ISO_8601#Times + * @param {Object} opts - options + * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 + * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 + * @param {boolean} [opts.includePrefix=false] - include the `T` prefix + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000' + * @return {string} + */ + toISOTime(opts = {}) { + if (!this.isValid) return null; + + const millis = this.toMillis(); + if (millis < 0 || millis >= 86400000) return null; + + opts = { + suppressMilliseconds: false, + suppressSeconds: false, + includePrefix: false, + format: "extended", + ...opts, + includeOffset: false, + }; + + const dateTime = DateTime.fromMillis(millis, { zone: "UTC" }); + return dateTime.toISOTime(opts); + } + + /** + * Returns an ISO 8601 representation of this Duration appropriate for use in JSON. + * @return {string} + */ + toJSON() { + return this.toISO(); + } + + /** + * Returns an ISO 8601 representation of this Duration appropriate for use in debugging. + * @return {string} + */ + toString() { + return this.toISO(); + } + + /** + * Returns a string representation of this Duration appropriate for the REPL. + * @return {string} + */ + [Symbol.for("nodejs.util.inspect.custom")]() { + if (this.isValid) { + return `Duration { values: ${JSON.stringify(this.values)} }`; + } else { + return `Duration { Invalid, reason: ${this.invalidReason} }`; + } + } + + /** + * Returns an milliseconds value of this Duration. + * @return {number} + */ + toMillis() { + if (!this.isValid) return NaN; + + return durationToMillis(this.matrix, this.values); + } + + /** + * Returns an milliseconds value of this Duration. Alias of {@link toMillis} + * @return {number} + */ + valueOf() { + return this.toMillis(); + } + + /** + * Make this Duration longer by the specified amount. Return a newly-constructed Duration. + * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + * @return {Duration} + */ + plus(duration) { + if (!this.isValid) return this; + + const dur = Duration.fromDurationLike(duration), + result = {}; + + for (const k of orderedUnits) { + if (util_hasOwnProperty(dur.values, k) || util_hasOwnProperty(this.values, k)) { + result[k] = dur.get(k) + this.get(k); + } + } + + return clone(this, { values: result }, true); + } + + /** + * Make this Duration shorter by the specified amount. Return a newly-constructed Duration. + * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + * @return {Duration} + */ + minus(duration) { + if (!this.isValid) return this; + + const dur = Duration.fromDurationLike(duration); + return this.plus(dur.negate()); + } + + /** + * Scale this Duration by the specified amount. Return a newly-constructed Duration. + * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number. + * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 } + * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === "hours" ? x * 2 : x) //=> { hours: 2, minutes: 30 } + * @return {Duration} + */ + mapUnits(fn) { + if (!this.isValid) return this; + const result = {}; + for (const k of Object.keys(this.values)) { + result[k] = asNumber(fn(this.values[k], k)); + } + return clone(this, { values: result }, true); + } + + /** + * Get the value of unit. + * @param {string} unit - a unit such as 'minute' or 'day' + * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2 + * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0 + * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3 + * @return {number} + */ + get(unit) { + return this[Duration.normalizeUnit(unit)]; + } + + /** + * "Set" the values of specified units. Return a newly-constructed Duration. + * @param {Object} values - a mapping of units to numbers + * @example dur.set({ years: 2017 }) + * @example dur.set({ hours: 8, minutes: 30 }) + * @return {Duration} + */ + set(values) { + if (!this.isValid) return this; + + const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) }; + return clone(this, { values: mixed }); + } + + /** + * "Set" the locale and/or numberingSystem. Returns a newly-constructed Duration. + * @example dur.reconfigure({ locale: 'en-GB' }) + * @return {Duration} + */ + reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) { + const loc = this.loc.clone({ locale, numberingSystem }); + const opts = { loc, matrix, conversionAccuracy }; + return clone(this, opts); + } + + /** + * Return the length of the duration in the specified unit. + * @param {string} unit - a unit such as 'minutes' or 'days' + * @example Duration.fromObject({years: 1}).as('days') //=> 365 + * @example Duration.fromObject({years: 1}).as('months') //=> 12 + * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5 + * @return {number} + */ + as(unit) { + return this.isValid ? this.shiftTo(unit).get(unit) : NaN; + } + + /** + * Reduce this Duration to its canonical representation in its current units. + * Assuming the overall value of the Duration is positive, this means: + * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example) + * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise + * the overall value would be negative, see third example) + * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example) + * + * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`. + * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 } + * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 } + * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 } + * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 } + * @return {Duration} + */ + normalize() { + if (!this.isValid) return this; + const vals = this.toObject(); + normalizeValues(this.matrix, vals); + return clone(this, { values: vals }, true); + } + + /** + * Rescale units to its largest representation + * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 } + * @return {Duration} + */ + rescale() { + if (!this.isValid) return this; + const vals = removeZeroes(this.normalize().shiftToAll().toObject()); + return clone(this, { values: vals }, true); + } + + /** + * Convert this Duration into its representation in a different set of units. + * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 } + * @return {Duration} + */ + shiftTo(...units) { + if (!this.isValid) return this; + + if (units.length === 0) { + return this; + } + + units = units.map((u) => Duration.normalizeUnit(u)); + + const built = {}, + accumulated = {}, + vals = this.toObject(); + let lastUnit; + + for (const k of orderedUnits) { + if (units.indexOf(k) >= 0) { + lastUnit = k; + + let own = 0; + + // anything we haven't boiled down yet should get boiled to this unit + for (const ak in accumulated) { + own += this.matrix[ak][k] * accumulated[ak]; + accumulated[ak] = 0; + } + + // plus anything that's already in this unit + if (isNumber(vals[k])) { + own += vals[k]; + } + + // only keep the integer part for now in the hopes of putting any decimal part + // into a smaller unit later + const i = Math.trunc(own); + built[k] = i; + accumulated[k] = (own * 1000 - i * 1000) / 1000; + + // otherwise, keep it in the wings to boil it later + } else if (isNumber(vals[k])) { + accumulated[k] = vals[k]; + } + } + + // anything leftover becomes the decimal for the last unit + // lastUnit must be defined since units is not empty + for (const key in accumulated) { + if (accumulated[key] !== 0) { + built[lastUnit] += + key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key]; + } + } + + normalizeValues(this.matrix, built); + return clone(this, { values: built }, true); + } + + /** + * Shift this Duration to all available units. + * Same as shiftTo("years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds") + * @return {Duration} + */ + shiftToAll() { + if (!this.isValid) return this; + return this.shiftTo( + "years", + "months", + "weeks", + "days", + "hours", + "minutes", + "seconds", + "milliseconds" + ); + } + + /** + * Return the negative of this Duration. + * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 } + * @return {Duration} + */ + negate() { + if (!this.isValid) return this; + const negated = {}; + for (const k of Object.keys(this.values)) { + negated[k] = this.values[k] === 0 ? 0 : -this.values[k]; + } + return clone(this, { values: negated }, true); + } + + /** + * Get the years. + * @type {number} + */ + get years() { + return this.isValid ? this.values.years || 0 : NaN; + } + + /** + * Get the quarters. + * @type {number} + */ + get quarters() { + return this.isValid ? this.values.quarters || 0 : NaN; + } + + /** + * Get the months. + * @type {number} + */ + get months() { + return this.isValid ? this.values.months || 0 : NaN; + } + + /** + * Get the weeks + * @type {number} + */ + get weeks() { + return this.isValid ? this.values.weeks || 0 : NaN; + } + + /** + * Get the days. + * @type {number} + */ + get days() { + return this.isValid ? this.values.days || 0 : NaN; + } + + /** + * Get the hours. + * @type {number} + */ + get hours() { + return this.isValid ? this.values.hours || 0 : NaN; + } + + /** + * Get the minutes. + * @type {number} + */ + get minutes() { + return this.isValid ? this.values.minutes || 0 : NaN; + } + + /** + * Get the seconds. + * @return {number} + */ + get seconds() { + return this.isValid ? this.values.seconds || 0 : NaN; + } + + /** + * Get the milliseconds. + * @return {number} + */ + get milliseconds() { + return this.isValid ? this.values.milliseconds || 0 : NaN; + } + + /** + * Returns whether the Duration is invalid. Invalid durations are returned by diff operations + * on invalid DateTimes or Intervals. + * @return {boolean} + */ + get isValid() { + return this.invalid === null; + } + + /** + * Returns an error code if this Duration became invalid, or null if the Duration is valid + * @return {string} + */ + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + + /** + * Returns an explanation of why this Duration became invalid, or null if the Duration is valid + * @type {string} + */ + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + + /** + * Equality check + * Two Durations are equal iff they have the same units and the same values for each unit. + * @param {Duration} other + * @return {boolean} + */ + equals(other) { + if (!this.isValid || !other.isValid) { + return false; + } + + if (!this.loc.equals(other.loc)) { + return false; + } + + function eq(v1, v2) { + // Consider 0 and undefined as equal + if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0; + return v1 === v2; + } + + for (const u of orderedUnits) { + if (!eq(this.values[u], other.values[u])) { + return false; + } + } + return true; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/interval.js + + + + + + + + +const interval_INVALID = "Invalid Interval"; + +// checks if the start is equal to or before the end +function validateStartEnd(start, end) { + if (!start || !start.isValid) { + return Interval.invalid("missing or invalid start"); + } else if (!end || !end.isValid) { + return Interval.invalid("missing or invalid end"); + } else if (end < start) { + return Interval.invalid( + "end before start", + `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}` + ); + } else { + return null; + } +} + +/** + * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them. + * + * Here is a brief overview of the most commonly used methods and getters in Interval: + * + * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}. + * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end. + * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}. + * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}. + * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs} + * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}. + */ +class Interval { + /** + * @private + */ + constructor(config) { + /** + * @access private + */ + this.s = config.start; + /** + * @access private + */ + this.e = config.end; + /** + * @access private + */ + this.invalid = config.invalid || null; + /** + * @access private + */ + this.isLuxonInterval = true; + } + + /** + * Create an invalid Interval. + * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent + * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information + * @return {Interval} + */ + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the Interval is invalid"); + } + + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + + if (Settings.throwOnInvalid) { + throw new InvalidIntervalError(invalid); + } else { + return new Interval({ invalid }); + } + } + + /** + * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end. + * @param {DateTime|Date|Object} start + * @param {DateTime|Date|Object} end + * @return {Interval} + */ + static fromDateTimes(start, end) { + const builtStart = friendlyDateTime(start), + builtEnd = friendlyDateTime(end); + + const validateError = validateStartEnd(builtStart, builtEnd); + + if (validateError == null) { + return new Interval({ + start: builtStart, + end: builtEnd, + }); + } else { + return validateError; + } + } + + /** + * Create an Interval from a start DateTime and a Duration to extend to. + * @param {DateTime|Date|Object} start + * @param {Duration|Object|number} duration - the length of the Interval. + * @return {Interval} + */ + static after(start, duration) { + const dur = Duration.fromDurationLike(duration), + dt = friendlyDateTime(start); + return Interval.fromDateTimes(dt, dt.plus(dur)); + } + + /** + * Create an Interval from an end DateTime and a Duration to extend backwards to. + * @param {DateTime|Date|Object} end + * @param {Duration|Object|number} duration - the length of the Interval. + * @return {Interval} + */ + static before(end, duration) { + const dur = Duration.fromDurationLike(duration), + dt = friendlyDateTime(end); + return Interval.fromDateTimes(dt.minus(dur), dt); + } + + /** + * Create an Interval from an ISO 8601 string. + * Accepts `/`, `/`, and `/` formats. + * @param {string} text - the ISO string to parse + * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO} + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @return {Interval} + */ + static fromISO(text, opts) { + const [s, e] = (text || "").split("/", 2); + if (s && e) { + let start, startIsValid; + try { + start = DateTime.fromISO(s, opts); + startIsValid = start.isValid; + } catch (e) { + startIsValid = false; + } + + let end, endIsValid; + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e) { + endIsValid = false; + } + + if (startIsValid && endIsValid) { + return Interval.fromDateTimes(start, end); + } + + if (startIsValid) { + const dur = Duration.fromISO(e, opts); + if (dur.isValid) { + return Interval.after(start, dur); + } + } else if (endIsValid) { + const dur = Duration.fromISO(s, opts); + if (dur.isValid) { + return Interval.before(end, dur); + } + } + } + return Interval.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); + } + + /** + * Check if an object is an Interval. Works across context boundaries + * @param {object} o + * @return {boolean} + */ + static isInterval(o) { + return (o && o.isLuxonInterval) || false; + } + + /** + * Returns the start of the Interval + * @type {DateTime} + */ + get start() { + return this.isValid ? this.s : null; + } + + /** + * Returns the end of the Interval + * @type {DateTime} + */ + get end() { + return this.isValid ? this.e : null; + } + + /** + * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'. + * @type {boolean} + */ + get isValid() { + return this.invalidReason === null; + } + + /** + * Returns an error code if this Interval is invalid, or null if the Interval is valid + * @type {string} + */ + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + + /** + * Returns an explanation of why this Interval became invalid, or null if the Interval is valid + * @type {string} + */ + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + + /** + * Returns the length of the Interval in the specified unit. + * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in. + * @return {number} + */ + length(unit = "milliseconds") { + return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN; + } + + /** + * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part. + * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day' + * asks 'what dates are included in this interval?', not 'how many days long is this interval?' + * @param {string} [unit='milliseconds'] - the unit of time to count. + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime + * @return {number} + */ + count(unit = "milliseconds", opts) { + if (!this.isValid) return NaN; + const start = this.start.startOf(unit, opts); + let end; + if (opts?.useLocaleWeeks) { + end = this.end.reconfigure({ locale: start.locale }); + } else { + end = this.end; + } + end = end.startOf(unit, opts); + return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf()); + } + + /** + * Returns whether this Interval's start and end are both in the same unit of time + * @param {string} unit - the unit of time to check sameness on + * @return {boolean} + */ + hasSame(unit) { + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; + } + + /** + * Return whether this Interval has the same start and end DateTimes. + * @return {boolean} + */ + isEmpty() { + return this.s.valueOf() === this.e.valueOf(); + } + + /** + * Return whether this Interval's start is after the specified DateTime. + * @param {DateTime} dateTime + * @return {boolean} + */ + isAfter(dateTime) { + if (!this.isValid) return false; + return this.s > dateTime; + } + + /** + * Return whether this Interval's end is before the specified DateTime. + * @param {DateTime} dateTime + * @return {boolean} + */ + isBefore(dateTime) { + if (!this.isValid) return false; + return this.e <= dateTime; + } + + /** + * Return whether this Interval contains the specified DateTime. + * @param {DateTime} dateTime + * @return {boolean} + */ + contains(dateTime) { + if (!this.isValid) return false; + return this.s <= dateTime && this.e > dateTime; + } + + /** + * "Sets" the start and/or end dates. Returns a newly-constructed Interval. + * @param {Object} values - the values to set + * @param {DateTime} values.start - the starting DateTime + * @param {DateTime} values.end - the ending DateTime + * @return {Interval} + */ + set({ start, end } = {}) { + if (!this.isValid) return this; + return Interval.fromDateTimes(start || this.s, end || this.e); + } + + /** + * Split this Interval at each of the specified DateTimes + * @param {...DateTime} dateTimes - the unit of time to count. + * @return {Array} + */ + splitAt(...dateTimes) { + if (!this.isValid) return []; + const sorted = dateTimes + .map(friendlyDateTime) + .filter((d) => this.contains(d)) + .sort((a, b) => a.toMillis() - b.toMillis()), + results = []; + let { s } = this, + i = 0; + + while (s < this.e) { + const added = sorted[i] || this.e, + next = +added > +this.e ? this.e : added; + results.push(Interval.fromDateTimes(s, next)); + s = next; + i += 1; + } + + return results; + } + + /** + * Split this Interval into smaller Intervals, each of the specified length. + * Left over time is grouped into a smaller interval + * @param {Duration|Object|number} duration - The length of each resulting interval. + * @return {Array} + */ + splitBy(duration) { + const dur = Duration.fromDurationLike(duration); + + if (!this.isValid || !dur.isValid || dur.as("milliseconds") === 0) { + return []; + } + + let { s } = this, + idx = 1, + next; + + const results = []; + while (s < this.e) { + const added = this.start.plus(dur.mapUnits((x) => x * idx)); + next = +added > +this.e ? this.e : added; + results.push(Interval.fromDateTimes(s, next)); + s = next; + idx += 1; + } + + return results; + } + + /** + * Split this Interval into the specified number of smaller intervals. + * @param {number} numberOfParts - The number of Intervals to divide the Interval into. + * @return {Array} + */ + divideEqually(numberOfParts) { + if (!this.isValid) return []; + return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts); + } + + /** + * Return whether this Interval overlaps with the specified Interval + * @param {Interval} other + * @return {boolean} + */ + overlaps(other) { + return this.e > other.s && this.s < other.e; + } + + /** + * Return whether this Interval's end is adjacent to the specified Interval's start. + * @param {Interval} other + * @return {boolean} + */ + abutsStart(other) { + if (!this.isValid) return false; + return +this.e === +other.s; + } + + /** + * Return whether this Interval's start is adjacent to the specified Interval's end. + * @param {Interval} other + * @return {boolean} + */ + abutsEnd(other) { + if (!this.isValid) return false; + return +other.e === +this.s; + } + + /** + * Return whether this Interval engulfs the start and end of the specified Interval. + * @param {Interval} other + * @return {boolean} + */ + engulfs(other) { + if (!this.isValid) return false; + return this.s <= other.s && this.e >= other.e; + } + + /** + * Return whether this Interval has the same start and end as the specified Interval. + * @param {Interval} other + * @return {boolean} + */ + equals(other) { + if (!this.isValid || !other.isValid) { + return false; + } + + return this.s.equals(other.s) && this.e.equals(other.e); + } + + /** + * Return an Interval representing the intersection of this Interval and the specified Interval. + * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals. + * Returns null if the intersection is empty, meaning, the intervals don't intersect. + * @param {Interval} other + * @return {Interval} + */ + intersection(other) { + if (!this.isValid) return this; + const s = this.s > other.s ? this.s : other.s, + e = this.e < other.e ? this.e : other.e; + + if (s >= e) { + return null; + } else { + return Interval.fromDateTimes(s, e); + } + } + + /** + * Return an Interval representing the union of this Interval and the specified Interval. + * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals. + * @param {Interval} other + * @return {Interval} + */ + union(other) { + if (!this.isValid) return this; + const s = this.s < other.s ? this.s : other.s, + e = this.e > other.e ? this.e : other.e; + return Interval.fromDateTimes(s, e); + } + + /** + * Merge an array of Intervals into a equivalent minimal set of Intervals. + * Combines overlapping and adjacent Intervals. + * @param {Array} intervals + * @return {Array} + */ + static merge(intervals) { + const [found, final] = intervals + .sort((a, b) => a.s - b.s) + .reduce( + ([sofar, current], item) => { + if (!current) { + return [sofar, item]; + } else if (current.overlaps(item) || current.abutsStart(item)) { + return [sofar, current.union(item)]; + } else { + return [sofar.concat([current]), item]; + } + }, + [[], null] + ); + if (final) { + found.push(final); + } + return found; + } + + /** + * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals. + * @param {Array} intervals + * @return {Array} + */ + static xor(intervals) { + let start = null, + currentCount = 0; + const results = [], + ends = intervals.map((i) => [ + { time: i.s, type: "s" }, + { time: i.e, type: "e" }, + ]), + flattened = Array.prototype.concat(...ends), + arr = flattened.sort((a, b) => a.time - b.time); + + for (const i of arr) { + currentCount += i.type === "s" ? 1 : -1; + + if (currentCount === 1) { + start = i.time; + } else { + if (start && +start !== +i.time) { + results.push(Interval.fromDateTimes(start, i.time)); + } + + start = null; + } + } + + return Interval.merge(results); + } + + /** + * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals. + * @param {...Interval} intervals + * @return {Array} + */ + difference(...intervals) { + return Interval.xor([this].concat(intervals)) + .map((i) => this.intersection(i)) + .filter((i) => i && !i.isEmpty()); + } + + /** + * Returns a string representation of this Interval appropriate for debugging. + * @return {string} + */ + toString() { + if (!this.isValid) return interval_INVALID; + return `[${this.s.toISO()} – ${this.e.toISO()})`; + } + + /** + * Returns a string representation of this Interval appropriate for the REPL. + * @return {string} + */ + [Symbol.for("nodejs.util.inspect.custom")]() { + if (this.isValid) { + return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`; + } else { + return `Interval { Invalid, reason: ${this.invalidReason} }`; + } + } + + /** + * Returns a localized string representing this Interval. Accepts the same options as the + * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as + * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method + * is browser-specific, but in general it will return an appropriate representation of the + * Interval in the assigned locale. Defaults to the system's locale if no locale has been + * specified. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or + * Intl.DateTimeFormat constructor options. + * @param {Object} opts - Options to override the configuration of the start DateTime. + * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022 + * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022 + * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022 + * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM + * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p + * @return {string} + */ + toLocaleString(formatOpts = DATE_SHORT, opts = {}) { + return this.isValid + ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this) + : interval_INVALID; + } + + /** + * Returns an ISO 8601-compliant string representation of this Interval. + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @param {Object} opts - The same options as {@link DateTime#toISO} + * @return {string} + */ + toISO(opts) { + if (!this.isValid) return interval_INVALID; + return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`; + } + + /** + * Returns an ISO 8601-compliant string representation of date of this Interval. + * The time components are ignored. + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @return {string} + */ + toISODate() { + if (!this.isValid) return interval_INVALID; + return `${this.s.toISODate()}/${this.e.toISODate()}`; + } + + /** + * Returns an ISO 8601-compliant string representation of time of this Interval. + * The date components are ignored. + * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals + * @param {Object} opts - The same options as {@link DateTime#toISO} + * @return {string} + */ + toISOTime(opts) { + if (!this.isValid) return interval_INVALID; + return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`; + } + + /** + * Returns a string representation of this Interval formatted according to the specified format + * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible + * formatting tool. + * @param {string} dateFormat - The format string. This string formats the start and end time. + * See {@link DateTime#toFormat} for details. + * @param {Object} opts - Options. + * @param {string} [opts.separator = ' – '] - A separator to place between the start and end + * representations. + * @return {string} + */ + toFormat(dateFormat, { separator = " – " } = {}) { + if (!this.isValid) return interval_INVALID; + return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`; + } + + /** + * Return a Duration representing the time spanned by this interval. + * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration. + * @param {Object} opts - options that affect the creation of the Duration + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 } + * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 } + * @return {Duration} + */ + toDuration(unit, opts) { + if (!this.isValid) { + return Duration.invalid(this.invalidReason); + } + return this.e.diff(this.s, unit, opts); + } + + /** + * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes + * @param {function} mapFn + * @return {Interval} + * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC()) + * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 })) + */ + mapEndpoints(mapFn) { + return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e)); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/info.js + + + + + + + + +/** + * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment. + */ +class Info { + /** + * Return whether the specified zone contains a DST. + * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone. + * @return {boolean} + */ + static hasDST(zone = Settings.defaultZone) { + const proto = DateTime.now().setZone(zone).set({ month: 12 }); + + return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset; + } + + /** + * Return whether the specified zone is a valid IANA specifier. + * @param {string} zone - Zone to check + * @return {boolean} + */ + static isValidIANAZone(zone) { + return IANAZone.isValidZone(zone); + } + + /** + * Converts the input into a {@link Zone} instance. + * + * * If `input` is already a Zone instance, it is returned unchanged. + * * If `input` is a string containing a valid time zone name, a Zone instance + * with that name is returned. + * * If `input` is a string that doesn't refer to a known time zone, a Zone + * instance with {@link Zone#isValid} == false is returned. + * * If `input is a number, a Zone instance with the specified fixed offset + * in minutes is returned. + * * If `input` is `null` or `undefined`, the default zone is returned. + * @param {string|Zone|number} [input] - the value to be converted + * @return {Zone} + */ + static normalizeZone(input) { + return normalizeZone(input, Settings.defaultZone); + } + + /** + * Get the weekday on which the week starts according to the given locale. + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.locObj=null] - an existing locale object to use + * @returns {number} the start of the week, 1 for Monday through 7 for Sunday + */ + static getStartOfWeek({ locale = null, locObj = null } = {}) { + return (locObj || Locale.create(locale)).getStartOfWeek(); + } + + /** + * Get the minimum number of days necessary in a week before it is considered part of the next year according + * to the given locale. + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.locObj=null] - an existing locale object to use + * @returns {number} + */ + static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) { + return (locObj || Locale.create(locale)).getMinDaysInFirstWeek(); + } + + /** + * Get the weekdays, which are considered the weekend according to the given locale + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.locObj=null] - an existing locale object to use + * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday + */ + static getWeekendWeekdays({ locale = null, locObj = null } = {}) { + // copy the array, because we cache it internally + return (locObj || Locale.create(locale)).getWeekendDays().slice(); + } + + /** + * Return an array of standalone month names. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param {string} [length='long'] - the length of the month representation, such as "numeric", "2-digit", "narrow", "short", "long" + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @param {string} [opts.outputCalendar='gregory'] - the calendar + * @example Info.months()[0] //=> 'January' + * @example Info.months('short')[0] //=> 'Jan' + * @example Info.months('numeric')[0] //=> '1' + * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.' + * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١' + * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I' + * @return {Array} + */ + static months( + length = "long", + { locale = null, numberingSystem = null, locObj = null, outputCalendar = "gregory" } = {} + ) { + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length); + } + + /** + * Return an array of format month names. + * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that + * changes the string. + * See {@link Info#months} + * @param {string} [length='long'] - the length of the month representation, such as "numeric", "2-digit", "narrow", "short", "long" + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @param {string} [opts.outputCalendar='gregory'] - the calendar + * @return {Array} + */ + static monthsFormat( + length = "long", + { locale = null, numberingSystem = null, locObj = null, outputCalendar = "gregory" } = {} + ) { + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true); + } + + /** + * Return an array of standalone week names. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @example Info.weekdays()[0] //=> 'Monday' + * @example Info.weekdays('short')[0] //=> 'Mon' + * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.' + * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين' + * @return {Array} + */ + static weekdays(length = "long", { locale = null, numberingSystem = null, locObj = null } = {}) { + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length); + } + + /** + * Return an array of format week names. + * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that + * changes the string. + * See {@link Info#weekdays} + * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {Object} opts - options + * @param {string} [opts.locale=null] - the locale code + * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use + * @return {Array} + */ + static weekdaysFormat( + length = "long", + { locale = null, numberingSystem = null, locObj = null } = {} + ) { + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true); + } + + /** + * Return an array of meridiems. + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @example Info.meridiems() //=> [ 'AM', 'PM' ] + * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ] + * @return {Array} + */ + static meridiems({ locale = null } = {}) { + return Locale.create(locale).meridiems(); + } + + /** + * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian. + * @param {string} [length='short'] - the length of the era representation, such as "short" or "long". + * @param {Object} opts - options + * @param {string} [opts.locale] - the locale code + * @example Info.eras() //=> [ 'BC', 'AD' ] + * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ] + * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ] + * @return {Array} + */ + static eras(length = "short", { locale = null } = {}) { + return Locale.create(locale, null, "gregory").eras(length); + } + + /** + * Return the set of available features in this environment. + * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case. + * Keys: + * * `relative`: whether this environment supports relative time formatting + * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale + * @example Info.features() //=> { relative: false, localeWeek: true } + * @return {Object} + */ + static features() { + return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() }; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/diff.js + + +function dayDiff(earlier, later) { + const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf("day").valueOf(), + ms = utcDayStart(later) - utcDayStart(earlier); + return Math.floor(Duration.fromMillis(ms).as("days")); +} + +function highOrderDiffs(cursor, later, units) { + const differs = [ + ["years", (a, b) => b.year - a.year], + ["quarters", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4], + ["months", (a, b) => b.month - a.month + (b.year - a.year) * 12], + [ + "weeks", + (a, b) => { + const days = dayDiff(a, b); + return (days - (days % 7)) / 7; + }, + ], + ["days", dayDiff], + ]; + + const results = {}; + const earlier = cursor; + let lowestOrder, highWater; + + /* This loop tries to diff using larger units first. + If we overshoot, we backtrack and try the next smaller unit. + "cursor" starts out at the earlier timestamp and moves closer and closer to "later" + as we use smaller and smaller units. + highWater keeps track of where we would be if we added one more of the smallest unit, + this is used later to potentially convert any difference smaller than the smallest higher order unit + into a fraction of that smallest higher order unit + */ + for (const [unit, differ] of differs) { + if (units.indexOf(unit) >= 0) { + lowestOrder = unit; + + results[unit] = differ(cursor, later); + highWater = earlier.plus(results); + + if (highWater > later) { + // we overshot the end point, backtrack cursor by 1 + results[unit]--; + cursor = earlier.plus(results); + + // if we are still overshooting now, we need to backtrack again + // this happens in certain situations when diffing times in different zones, + // because this calculation ignores time zones + if (cursor > later) { + // keep the "overshot by 1" around as highWater + highWater = cursor; + // backtrack cursor by 1 + results[unit]--; + cursor = earlier.plus(results); + } + } else { + cursor = highWater; + } + } + } + + return [cursor, results, highWater, lowestOrder]; +} + +/* harmony default export */ function diff(earlier, later, units, opts) { + let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units); + + const remainingMillis = later - cursor; + + const lowerOrderUnits = units.filter( + (u) => ["hours", "minutes", "seconds", "milliseconds"].indexOf(u) >= 0 + ); + + if (lowerOrderUnits.length === 0) { + if (highWater < later) { + highWater = cursor.plus({ [lowestOrder]: 1 }); + } + + if (highWater !== cursor) { + results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor); + } + } + + const duration = Duration.fromObject(results, opts); + + if (lowerOrderUnits.length > 0) { + return Duration.fromMillis(remainingMillis, opts) + .shiftTo(...lowerOrderUnits) + .plus(duration); + } else { + return duration; + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/digits.js +const numberingSystems = { + arab: "[\u0660-\u0669]", + arabext: "[\u06F0-\u06F9]", + bali: "[\u1B50-\u1B59]", + beng: "[\u09E6-\u09EF]", + deva: "[\u0966-\u096F]", + fullwide: "[\uFF10-\uFF19]", + gujr: "[\u0AE6-\u0AEF]", + hanidec: "[〇|一|二|三|四|五|六|七|八|九]", + khmr: "[\u17E0-\u17E9]", + knda: "[\u0CE6-\u0CEF]", + laoo: "[\u0ED0-\u0ED9]", + limb: "[\u1946-\u194F]", + mlym: "[\u0D66-\u0D6F]", + mong: "[\u1810-\u1819]", + mymr: "[\u1040-\u1049]", + orya: "[\u0B66-\u0B6F]", + tamldec: "[\u0BE6-\u0BEF]", + telu: "[\u0C66-\u0C6F]", + thai: "[\u0E50-\u0E59]", + tibt: "[\u0F20-\u0F29]", + latn: "\\d", +}; + +const numberingSystemsUTF16 = { + arab: [1632, 1641], + arabext: [1776, 1785], + bali: [6992, 7001], + beng: [2534, 2543], + deva: [2406, 2415], + fullwide: [65296, 65303], + gujr: [2790, 2799], + khmr: [6112, 6121], + knda: [3302, 3311], + laoo: [3792, 3801], + limb: [6470, 6479], + mlym: [3430, 3439], + mong: [6160, 6169], + mymr: [4160, 4169], + orya: [2918, 2927], + tamldec: [3046, 3055], + telu: [3174, 3183], + thai: [3664, 3673], + tibt: [3872, 3881], +}; + +const hanidecChars = numberingSystems.hanidec.replace(/[\[|\]]/g, "").split(""); + +function parseDigits(str) { + let value = parseInt(str, 10); + if (isNaN(value)) { + value = ""; + for (let i = 0; i < str.length; i++) { + const code = str.charCodeAt(i); + + if (str[i].search(numberingSystems.hanidec) !== -1) { + value += hanidecChars.indexOf(str[i]); + } else { + for (const key in numberingSystemsUTF16) { + const [min, max] = numberingSystemsUTF16[key]; + if (code >= min && code <= max) { + value += code - min; + } + } + } + } + return parseInt(value, 10); + } else { + return value; + } +} + +function digitRegex({ numberingSystem }, append = "") { + return new RegExp(`${numberingSystems[numberingSystem || "latn"]}${append}`); +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/tokenParser.js + + + + + + + + +const MISSING_FTP = "missing Intl.DateTimeFormat.formatToParts support"; + +function intUnit(regex, post = (i) => i) { + return { regex, deser: ([s]) => post(parseDigits(s)) }; +} + +const NBSP = String.fromCharCode(160); +const spaceOrNBSP = `[ ${NBSP}]`; +const spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + +function fixListRegex(s) { + // make dots optional and also make them literal + // make space and non breakable space characters interchangeable + return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); +} + +function stripInsensitivities(s) { + return s + .replace(/\./g, "") // ignore dots that were made optional + .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp + .toLowerCase(); +} + +function oneOf(strings, startIndex) { + if (strings === null) { + return null; + } else { + return { + regex: RegExp(strings.map(fixListRegex).join("|")), + deser: ([s]) => + strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex, + }; + } +} + +function offset(regex, groups) { + return { regex, deser: ([, h, m]) => signedOffset(h, m), groups }; +} + +function simple(regex) { + return { regex, deser: ([s]) => s }; +} + +function escapeToken(value) { + return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); +} + +/** + * @param token + * @param {Locale} loc + */ +function unitForToken(token, loc) { + const one = digitRegex(loc), + two = digitRegex(loc, "{2}"), + three = digitRegex(loc, "{3}"), + four = digitRegex(loc, "{4}"), + six = digitRegex(loc, "{6}"), + oneOrTwo = digitRegex(loc, "{1,2}"), + oneToThree = digitRegex(loc, "{1,3}"), + oneToSix = digitRegex(loc, "{1,6}"), + oneToNine = digitRegex(loc, "{1,9}"), + twoToFour = digitRegex(loc, "{2,4}"), + fourToSix = digitRegex(loc, "{4,6}"), + literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }), + unitate = (t) => { + if (token.literal) { + return literal(t); + } + switch (t.val) { + // era + case "G": + return oneOf(loc.eras("short"), 0); + case "GG": + return oneOf(loc.eras("long"), 0); + // years + case "y": + return intUnit(oneToSix); + case "yy": + return intUnit(twoToFour, untruncateYear); + case "yyyy": + return intUnit(four); + case "yyyyy": + return intUnit(fourToSix); + case "yyyyyy": + return intUnit(six); + // months + case "M": + return intUnit(oneOrTwo); + case "MM": + return intUnit(two); + case "MMM": + return oneOf(loc.months("short", true), 1); + case "MMMM": + return oneOf(loc.months("long", true), 1); + case "L": + return intUnit(oneOrTwo); + case "LL": + return intUnit(two); + case "LLL": + return oneOf(loc.months("short", false), 1); + case "LLLL": + return oneOf(loc.months("long", false), 1); + // dates + case "d": + return intUnit(oneOrTwo); + case "dd": + return intUnit(two); + // ordinals + case "o": + return intUnit(oneToThree); + case "ooo": + return intUnit(three); + // time + case "HH": + return intUnit(two); + case "H": + return intUnit(oneOrTwo); + case "hh": + return intUnit(two); + case "h": + return intUnit(oneOrTwo); + case "mm": + return intUnit(two); + case "m": + return intUnit(oneOrTwo); + case "q": + return intUnit(oneOrTwo); + case "qq": + return intUnit(two); + case "s": + return intUnit(oneOrTwo); + case "ss": + return intUnit(two); + case "S": + return intUnit(oneToThree); + case "SSS": + return intUnit(three); + case "u": + return simple(oneToNine); + case "uu": + return simple(oneOrTwo); + case "uuu": + return intUnit(one); + // meridiem + case "a": + return oneOf(loc.meridiems(), 0); + // weekYear (k) + case "kkkk": + return intUnit(four); + case "kk": + return intUnit(twoToFour, untruncateYear); + // weekNumber (W) + case "W": + return intUnit(oneOrTwo); + case "WW": + return intUnit(two); + // weekdays + case "E": + case "c": + return intUnit(one); + case "EEE": + return oneOf(loc.weekdays("short", false), 1); + case "EEEE": + return oneOf(loc.weekdays("long", false), 1); + case "ccc": + return oneOf(loc.weekdays("short", true), 1); + case "cccc": + return oneOf(loc.weekdays("long", true), 1); + // offset/zone + case "Z": + case "ZZ": + return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2); + case "ZZZ": + return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2); + // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing + // because we don't have any way to figure out what they are + case "z": + return simple(/[a-z_+-/]{1,256}?/i); + // this special-case "token" represents a place where a macro-token expanded into a white-space literal + // in this case we accept any non-newline white-space + case " ": + return simple(/[^\S\n\r]/); + default: + return literal(t); + } + }; + + const unit = unitate(token) || { + invalidReason: MISSING_FTP, + }; + + unit.token = token; + + return unit; +} + +const partTypeStyleToTokenVal = { + year: { + "2-digit": "yy", + numeric: "yyyyy", + }, + month: { + numeric: "M", + "2-digit": "MM", + short: "MMM", + long: "MMMM", + }, + day: { + numeric: "d", + "2-digit": "dd", + }, + weekday: { + short: "EEE", + long: "EEEE", + }, + dayperiod: "a", + dayPeriod: "a", + hour12: { + numeric: "h", + "2-digit": "hh", + }, + hour24: { + numeric: "H", + "2-digit": "HH", + }, + minute: { + numeric: "m", + "2-digit": "mm", + }, + second: { + numeric: "s", + "2-digit": "ss", + }, + timeZoneName: { + long: "ZZZZZ", + short: "ZZZ", + }, +}; + +function tokenForPart(part, formatOpts, resolvedOpts) { + const { type, value } = part; + + if (type === "literal") { + const isSpace = /^\s+$/.test(value); + return { + literal: !isSpace, + val: isSpace ? " " : value, + }; + } + + const style = formatOpts[type]; + + // The user might have explicitly specified hour12 or hourCycle + // if so, respect their decision + // if not, refer back to the resolvedOpts, which are based on the locale + let actualType = type; + if (type === "hour") { + if (formatOpts.hour12 != null) { + actualType = formatOpts.hour12 ? "hour12" : "hour24"; + } else if (formatOpts.hourCycle != null) { + if (formatOpts.hourCycle === "h11" || formatOpts.hourCycle === "h12") { + actualType = "hour12"; + } else { + actualType = "hour24"; + } + } else { + // tokens only differentiate between 24 hours or not, + // so we do not need to check hourCycle here, which is less supported anyways + actualType = resolvedOpts.hour12 ? "hour12" : "hour24"; + } + } + let val = partTypeStyleToTokenVal[actualType]; + if (typeof val === "object") { + val = val[style]; + } + + if (val) { + return { + literal: false, + val, + }; + } + + return undefined; +} + +function buildRegex(units) { + const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, ""); + return [`^${re}$`, units]; +} + +function match(input, regex, handlers) { + const matches = input.match(regex); + + if (matches) { + const all = {}; + let matchIndex = 1; + for (const i in handlers) { + if (util_hasOwnProperty(handlers, i)) { + const h = handlers[i], + groups = h.groups ? h.groups + 1 : 1; + if (!h.literal && h.token) { + all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups)); + } + matchIndex += groups; + } + } + return [matches, all]; + } else { + return [matches, {}]; + } +} + +function dateTimeFromMatches(matches) { + const toField = (token) => { + switch (token) { + case "S": + return "millisecond"; + case "s": + return "second"; + case "m": + return "minute"; + case "h": + case "H": + return "hour"; + case "d": + return "day"; + case "o": + return "ordinal"; + case "L": + case "M": + return "month"; + case "y": + return "year"; + case "E": + case "c": + return "weekday"; + case "W": + return "weekNumber"; + case "k": + return "weekYear"; + case "q": + return "quarter"; + default: + return null; + } + }; + + let zone = null; + let specificOffset; + if (!isUndefined(matches.z)) { + zone = IANAZone.create(matches.z); + } + + if (!isUndefined(matches.Z)) { + if (!zone) { + zone = new FixedOffsetZone(matches.Z); + } + specificOffset = matches.Z; + } + + if (!isUndefined(matches.q)) { + matches.M = (matches.q - 1) * 3 + 1; + } + + if (!isUndefined(matches.h)) { + if (matches.h < 12 && matches.a === 1) { + matches.h += 12; + } else if (matches.h === 12 && matches.a === 0) { + matches.h = 0; + } + } + + if (matches.G === 0 && matches.y) { + matches.y = -matches.y; + } + + if (!isUndefined(matches.u)) { + matches.S = parseMillis(matches.u); + } + + const vals = Object.keys(matches).reduce((r, k) => { + const f = toField(k); + if (f) { + r[f] = matches[k]; + } + + return r; + }, {}); + + return [vals, zone, specificOffset]; +} + +let dummyDateTimeCache = null; + +function getDummyDateTime() { + if (!dummyDateTimeCache) { + dummyDateTimeCache = DateTime.fromMillis(1555555555555); + } + + return dummyDateTimeCache; +} + +function maybeExpandMacroToken(token, locale) { + if (token.literal) { + return token; + } + + const formatOpts = Formatter.macroTokenToFormatOpts(token.val); + const tokens = formatOptsToTokens(formatOpts, locale); + + if (tokens == null || tokens.includes(undefined)) { + return token; + } + + return tokens; +} + +function expandMacroTokens(tokens, locale) { + return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale))); +} + +/** + * @private + */ + +function explainFromTokens(locale, input, format) { + const tokens = expandMacroTokens(Formatter.parseFormat(format), locale), + units = tokens.map((t) => unitForToken(t, locale)), + disqualifyingUnit = units.find((t) => t.invalidReason); + + if (disqualifyingUnit) { + return { input, tokens, invalidReason: disqualifyingUnit.invalidReason }; + } else { + const [regexString, handlers] = buildRegex(units), + regex = RegExp(regexString, "i"), + [rawMatches, matches] = match(input, regex, handlers), + [result, zone, specificOffset] = matches + ? dateTimeFromMatches(matches) + : [null, null, undefined]; + if (util_hasOwnProperty(matches, "a") && util_hasOwnProperty(matches, "H")) { + throw new ConflictingSpecificationError( + "Can't include meridiem when specifying 24-hour format" + ); + } + return { input, tokens, regex, rawMatches, matches, result, zone, specificOffset }; + } +} + +function parseFromTokens(locale, input, format) { + const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format); + return [result, zone, specificOffset, invalidReason]; +} + +function formatOptsToTokens(formatOpts, locale) { + if (!formatOpts) { + return null; + } + + const formatter = Formatter.create(locale, formatOpts); + const df = formatter.dtFormatter(getDummyDateTime()); + const parts = df.formatToParts(); + const resolvedOpts = df.resolvedOptions(); + return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts)); +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/datetime.js + + + + + + + + + + + + + + + + + +const datetime_INVALID = "Invalid DateTime"; +const MAX_DATE = 8.64e15; + +function unsupportedZone(zone) { + return new Invalid("unsupported zone", `the zone "${zone.name}" is not supported`); +} + +// we cache week data on the DT object and this intermediates the cache +/** + * @param {DateTime} dt + */ +function possiblyCachedWeekData(dt) { + if (dt.weekData === null) { + dt.weekData = gregorianToWeek(dt.c); + } + return dt.weekData; +} + +/** + * @param {DateTime} dt + */ +function possiblyCachedLocalWeekData(dt) { + if (dt.localWeekData === null) { + dt.localWeekData = gregorianToWeek( + dt.c, + dt.loc.getMinDaysInFirstWeek(), + dt.loc.getStartOfWeek() + ); + } + return dt.localWeekData; +} + +// clone really means, "make a new object with these modifications". all "setters" really use this +// to create a new object while only changing some of the properties +function datetime_clone(inst, alts) { + const current = { + ts: inst.ts, + zone: inst.zone, + c: inst.c, + o: inst.o, + loc: inst.loc, + invalid: inst.invalid, + }; + return new DateTime({ ...current, ...alts, old: current }); +} + +// find the right offset a given local time. The o input is our guess, which determines which +// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST) +function fixOffset(localTS, o, tz) { + // Our UTC time is just a guess because our offset is just a guess + let utcGuess = localTS - o * 60 * 1000; + + // Test whether the zone matches the offset for this ts + const o2 = tz.offset(utcGuess); + + // If so, offset didn't change and we're done + if (o === o2) { + return [utcGuess, o]; + } + + // If not, change the ts by the difference in the offset + utcGuess -= (o2 - o) * 60 * 1000; + + // If that gives us the local time we want, we're done + const o3 = tz.offset(utcGuess); + if (o2 === o3) { + return [utcGuess, o2]; + } + + // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time + return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)]; +} + +// convert an epoch timestamp into a calendar object with the given offset +function tsToObj(ts, offset) { + ts += offset * 60 * 1000; + + const d = new Date(ts); + + return { + year: d.getUTCFullYear(), + month: d.getUTCMonth() + 1, + day: d.getUTCDate(), + hour: d.getUTCHours(), + minute: d.getUTCMinutes(), + second: d.getUTCSeconds(), + millisecond: d.getUTCMilliseconds(), + }; +} + +// convert a calendar object to a epoch timestamp +function objToTS(obj, offset, zone) { + return fixOffset(objToLocalTS(obj), offset, zone); +} + +// create a new DT instance by adding a duration, adjusting for DSTs +function adjustTime(inst, dur) { + const oPre = inst.o, + year = inst.c.year + Math.trunc(dur.years), + month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, + c = { + ...inst.c, + year, + month, + day: + Math.min(inst.c.day, daysInMonth(year, month)) + + Math.trunc(dur.days) + + Math.trunc(dur.weeks) * 7, + }, + millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), + hours: dur.hours, + minutes: dur.minutes, + seconds: dur.seconds, + milliseconds: dur.milliseconds, + }).as("milliseconds"), + localTS = objToLocalTS(c); + + let [ts, o] = fixOffset(localTS, oPre, inst.zone); + + if (millisToAdd !== 0) { + ts += millisToAdd; + // that could have changed the offset by going over a DST, but we want to keep the ts the same + o = inst.zone.offset(ts); + } + + return { ts, o }; +} + +// helper useful in turning the results of parsing into real dates +// by handling the zone options +function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) { + const { setZone, zone } = opts; + if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) { + const interpretationZone = parsedZone || zone, + inst = DateTime.fromObject(parsed, { + ...opts, + zone: interpretationZone, + specificOffset, + }); + return setZone ? inst : inst.setZone(zone); + } else { + return DateTime.invalid( + new Invalid("unparsable", `the input "${text}" can't be parsed as ${format}`) + ); + } +} + +// if you want to output a technical format (e.g. RFC 2822), this helper +// helps handle the details +function toTechFormat(dt, format, allowZ = true) { + return dt.isValid + ? Formatter.create(Locale.create("en-US"), { + allowZ, + forceSimple: true, + }).formatDateTimeFromString(dt, format) + : null; +} + +function toISODate(o, extended) { + const longFormat = o.c.year > 9999 || o.c.year < 0; + let c = ""; + if (longFormat && o.c.year >= 0) c += "+"; + c += padStart(o.c.year, longFormat ? 6 : 4); + + if (extended) { + c += "-"; + c += padStart(o.c.month); + c += "-"; + c += padStart(o.c.day); + } else { + c += padStart(o.c.month); + c += padStart(o.c.day); + } + return c; +} + +function toISOTime( + o, + extended, + suppressSeconds, + suppressMilliseconds, + includeOffset, + extendedZone +) { + let c = padStart(o.c.hour); + if (extended) { + c += ":"; + c += padStart(o.c.minute); + if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) { + c += ":"; + } + } else { + c += padStart(o.c.minute); + } + + if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) { + c += padStart(o.c.second); + + if (o.c.millisecond !== 0 || !suppressMilliseconds) { + c += "."; + c += padStart(o.c.millisecond, 3); + } + } + + if (includeOffset) { + if (o.isOffsetFixed && o.offset === 0 && !extendedZone) { + c += "Z"; + } else if (o.o < 0) { + c += "-"; + c += padStart(Math.trunc(-o.o / 60)); + c += ":"; + c += padStart(Math.trunc(-o.o % 60)); + } else { + c += "+"; + c += padStart(Math.trunc(o.o / 60)); + c += ":"; + c += padStart(Math.trunc(o.o % 60)); + } + } + + if (extendedZone) { + c += "[" + o.zone.ianaName + "]"; + } + return c; +} + +// defaults for unspecified units in the supported calendars +const defaultUnitValues = { + month: 1, + day: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0, + }, + defaultWeekUnitValues = { + weekNumber: 1, + weekday: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0, + }, + defaultOrdinalUnitValues = { + ordinal: 1, + hour: 0, + minute: 0, + second: 0, + millisecond: 0, + }; + +// Units in the supported calendars, sorted by bigness +const datetime_orderedUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"], + orderedWeekUnits = [ + "weekYear", + "weekNumber", + "weekday", + "hour", + "minute", + "second", + "millisecond", + ], + orderedOrdinalUnits = ["year", "ordinal", "hour", "minute", "second", "millisecond"]; + +// standardize case and plurality in units +function normalizeUnit(unit) { + const normalized = { + year: "year", + years: "year", + month: "month", + months: "month", + day: "day", + days: "day", + hour: "hour", + hours: "hour", + minute: "minute", + minutes: "minute", + quarter: "quarter", + quarters: "quarter", + second: "second", + seconds: "second", + millisecond: "millisecond", + milliseconds: "millisecond", + weekday: "weekday", + weekdays: "weekday", + weeknumber: "weekNumber", + weeksnumber: "weekNumber", + weeknumbers: "weekNumber", + weekyear: "weekYear", + weekyears: "weekYear", + ordinal: "ordinal", + }[unit.toLowerCase()]; + + if (!normalized) throw new InvalidUnitError(unit); + + return normalized; +} + +function normalizeUnitWithLocalWeeks(unit) { + switch (unit.toLowerCase()) { + case "localweekday": + case "localweekdays": + return "localWeekday"; + case "localweeknumber": + case "localweeknumbers": + return "localWeekNumber"; + case "localweekyear": + case "localweekyears": + return "localWeekYear"; + default: + return normalizeUnit(unit); + } +} + +// this is a dumbed down version of fromObject() that runs about 60% faster +// but doesn't do any validation, makes a bunch of assumptions about what units +// are present, and so on. +function quickDT(obj, opts) { + const zone = normalizeZone(opts.zone, Settings.defaultZone), + loc = Locale.fromObject(opts), + tsNow = Settings.now(); + + let ts, o; + + // assume we have the higher-order units + if (!isUndefined(obj.year)) { + for (const u of datetime_orderedUnits) { + if (isUndefined(obj[u])) { + obj[u] = defaultUnitValues[u]; + } + } + + const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj); + if (invalid) { + return DateTime.invalid(invalid); + } + + const offsetProvis = zone.offset(tsNow); + [ts, o] = objToTS(obj, offsetProvis, zone); + } else { + ts = tsNow; + } + + return new DateTime({ ts, zone, loc, o }); +} + +function diffRelative(start, end, opts) { + const round = isUndefined(opts.round) ? true : opts.round, + format = (c, unit) => { + c = roundTo(c, round || opts.calendary ? 0 : 2, true); + const formatter = end.loc.clone(opts).relFormatter(opts); + return formatter.format(c, unit); + }, + differ = (unit) => { + if (opts.calendary) { + if (!end.hasSame(start, unit)) { + return end.startOf(unit).diff(start.startOf(unit), unit).get(unit); + } else return 0; + } else { + return end.diff(start, unit).get(unit); + } + }; + + if (opts.unit) { + return format(differ(opts.unit), opts.unit); + } + + for (const unit of opts.units) { + const count = differ(unit); + if (Math.abs(count) >= 1) { + return format(count, unit); + } + } + return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]); +} + +function lastOpts(argList) { + let opts = {}, + args; + if (argList.length > 0 && typeof argList[argList.length - 1] === "object") { + opts = argList[argList.length - 1]; + args = Array.from(argList).slice(0, argList.length - 1); + } else { + args = Array.from(argList); + } + return [opts, args]; +} + +/** + * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them. + * + * A DateTime comprises of: + * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch. + * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone). + * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`. + * + * Here is a brief overview of the most commonly used functionality it provides: + * + * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}. + * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month}, + * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors. + * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors. + * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors. + * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}. + * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}. + * + * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation. + */ +class DateTime { + /** + * @access private + */ + constructor(config) { + const zone = config.zone || Settings.defaultZone; + + let invalid = + config.invalid || + (Number.isNaN(config.ts) ? new Invalid("invalid input") : null) || + (!zone.isValid ? unsupportedZone(zone) : null); + /** + * @access private + */ + this.ts = isUndefined(config.ts) ? Settings.now() : config.ts; + + let c = null, + o = null; + if (!invalid) { + const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone); + + if (unchanged) { + [c, o] = [config.old.c, config.old.o]; + } else { + const ot = zone.offset(this.ts); + c = tsToObj(this.ts, ot); + invalid = Number.isNaN(c.year) ? new Invalid("invalid input") : null; + c = invalid ? null : c; + o = invalid ? null : ot; + } + } + + /** + * @access private + */ + this._zone = zone; + /** + * @access private + */ + this.loc = config.loc || Locale.create(); + /** + * @access private + */ + this.invalid = invalid; + /** + * @access private + */ + this.weekData = null; + /** + * @access private + */ + this.localWeekData = null; + /** + * @access private + */ + this.c = c; + /** + * @access private + */ + this.o = o; + /** + * @access private + */ + this.isLuxonDateTime = true; + } + + // CONSTRUCT + + /** + * Create a DateTime for the current instant, in the system's time zone. + * + * Use Settings to override these default values if needed. + * @example DateTime.now().toISO() //~> now in the ISO format + * @return {DateTime} + */ + static now() { + return new DateTime({}); + } + + /** + * Create a local DateTime + * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used + * @param {number} [month=1] - The month, 1-indexed + * @param {number} [day=1] - The day of the month, 1-indexed + * @param {number} [hour=0] - The hour of the day, in 24-hour time + * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 + * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 + * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 + * @example DateTime.local() //~> now + * @example DateTime.local({ zone: "America/New_York" }) //~> now, in US east coast time + * @example DateTime.local(2017) //~> 2017-01-01T00:00:00 + * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00 + * @example DateTime.local(2017, 3, 12, { locale: "fr" }) //~> 2017-03-12T00:00:00, with a French locale + * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00 + * @example DateTime.local(2017, 3, 12, 5, { zone: "utc" }) //~> 2017-03-12T05:00:00, in UTC + * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00 + * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10 + * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765 + * @return {DateTime} + */ + static local() { + const [opts, args] = lastOpts(arguments), + [year, month, day, hour, minute, second, millisecond] = args; + return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); + } + + /** + * Create a DateTime in UTC + * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used + * @param {number} [month=1] - The month, 1-indexed + * @param {number} [day=1] - The day of the month + * @param {number} [hour=0] - The hour of the day, in 24-hour time + * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 + * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 + * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 + * @param {Object} options - configuration options for the DateTime + * @param {string} [options.locale] - a locale to set on the resulting DateTime instance + * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance + * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance + * @example DateTime.utc() //~> now + * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z + * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z + * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z + * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z + * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z + * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: "fr" }) //~> 2017-03-12T05:45:00Z with a French locale + * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z + * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: "fr" }) //~> 2017-03-12T05:45:10.765Z with a French locale + * @return {DateTime} + */ + static utc() { + const [opts, args] = lastOpts(arguments), + [year, month, day, hour, minute, second, millisecond] = args; + + opts.zone = FixedOffsetZone.utcInstance; + return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); + } + + /** + * Create a DateTime from a JavaScript Date object. Uses the default zone. + * @param {Date} date - a JavaScript Date object + * @param {Object} options - configuration options for the DateTime + * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into + * @return {DateTime} + */ + static fromJSDate(date, options = {}) { + const ts = isDate(date) ? date.valueOf() : NaN; + if (Number.isNaN(ts)) { + return DateTime.invalid("invalid input"); + } + + const zoneToUse = normalizeZone(options.zone, Settings.defaultZone); + if (!zoneToUse.isValid) { + return DateTime.invalid(unsupportedZone(zoneToUse)); + } + + return new DateTime({ + ts: ts, + zone: zoneToUse, + loc: Locale.fromObject(options), + }); + } + + /** + * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone. + * @param {number} milliseconds - a number of milliseconds since 1970 UTC + * @param {Object} options - configuration options for the DateTime + * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into + * @param {string} [options.locale] - a locale to set on the resulting DateTime instance + * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance + * @return {DateTime} + */ + static fromMillis(milliseconds, options = {}) { + if (!isNumber(milliseconds)) { + throw new InvalidArgumentError( + `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}` + ); + } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) { + // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start + return DateTime.invalid("Timestamp out of range"); + } else { + return new DateTime({ + ts: milliseconds, + zone: normalizeZone(options.zone, Settings.defaultZone), + loc: Locale.fromObject(options), + }); + } + } + + /** + * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone. + * @param {number} seconds - a number of seconds since 1970 UTC + * @param {Object} options - configuration options for the DateTime + * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into + * @param {string} [options.locale] - a locale to set on the resulting DateTime instance + * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance + * @return {DateTime} + */ + static fromSeconds(seconds, options = {}) { + if (!isNumber(seconds)) { + throw new InvalidArgumentError("fromSeconds requires a numerical input"); + } else { + return new DateTime({ + ts: seconds * 1000, + zone: normalizeZone(options.zone, Settings.defaultZone), + loc: Locale.fromObject(options), + }); + } + } + + /** + * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults. + * @param {Object} obj - the object to create the DateTime from + * @param {number} obj.year - a year, such as 1987 + * @param {number} obj.month - a month, 1-12 + * @param {number} obj.day - a day of the month, 1-31, depending on the month + * @param {number} obj.ordinal - day of the year, 1-365 or 366 + * @param {number} obj.weekYear - an ISO week year + * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year + * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday + * @param {number} obj.localWeekYear - a week year, according to the locale + * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale + * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale + * @param {number} obj.hour - hour of the day, 0-23 + * @param {number} obj.minute - minute of the hour, 0-59 + * @param {number} obj.second - second of the minute, 0-59 + * @param {number} obj.millisecond - millisecond of the second, 0-999 + * @param {Object} opts - options for creating this DateTime + * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone() + * @param {string} [opts.locale='system\'s locale'] - a locale to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance + * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25' + * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01' + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06 + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }), + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' }) + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' }) + * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13' + * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: "en-US" }).toISODate() //=> '2021-12-26' + * @return {DateTime} + */ + static fromObject(obj, opts = {}) { + obj = obj || {}; + const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone); + if (!zoneToUse.isValid) { + return DateTime.invalid(unsupportedZone(zoneToUse)); + } + + const loc = Locale.fromObject(opts); + const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks); + const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc); + + const tsNow = Settings.now(), + offsetProvis = !isUndefined(opts.specificOffset) + ? opts.specificOffset + : zoneToUse.offset(tsNow), + containsOrdinal = !isUndefined(normalized.ordinal), + containsGregorYear = !isUndefined(normalized.year), + containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), + containsGregor = containsGregorYear || containsGregorMD, + definiteWeekDef = normalized.weekYear || normalized.weekNumber; + + // cases: + // just a weekday -> this week's instance of that weekday, no worries + // (gregorian data or ordinal) + (weekYear or weekNumber) -> error + // (gregorian month or day) + ordinal -> error + // otherwise just use weeks or ordinals or gregorian, depending on what's specified + + if ((containsGregor || containsOrdinal) && definiteWeekDef) { + throw new ConflictingSpecificationError( + "Can't mix weekYear/weekNumber units with year/month/day or ordinals" + ); + } + + if (containsGregorMD && containsOrdinal) { + throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); + } + + const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor); + + // configure ourselves to deal with gregorian dates or week stuff + let units, + defaultValues, + objNow = tsToObj(tsNow, offsetProvis); + if (useWeekData) { + units = orderedWeekUnits; + defaultValues = defaultWeekUnitValues; + objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek); + } else if (containsOrdinal) { + units = orderedOrdinalUnits; + defaultValues = defaultOrdinalUnitValues; + objNow = gregorianToOrdinal(objNow); + } else { + units = datetime_orderedUnits; + defaultValues = defaultUnitValues; + } + + // set default values for missing stuff + let foundFirst = false; + for (const u of units) { + const v = normalized[u]; + if (!isUndefined(v)) { + foundFirst = true; + } else if (foundFirst) { + normalized[u] = defaultValues[u]; + } else { + normalized[u] = objNow[u]; + } + } + + // make sure the values we have are in range + const higherOrderInvalid = useWeekData + ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek) + : containsOrdinal + ? hasInvalidOrdinalData(normalized) + : hasInvalidGregorianData(normalized), + invalid = higherOrderInvalid || hasInvalidTimeData(normalized); + + if (invalid) { + return DateTime.invalid(invalid); + } + + // compute the actual time + const gregorian = useWeekData + ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek) + : containsOrdinal + ? ordinalToGregorian(normalized) + : normalized, + [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse), + inst = new DateTime({ + ts: tsFinal, + zone: zoneToUse, + o: offsetFinal, + loc, + }); + + // gregorian data + weekday serves only to validate + if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) { + return DateTime.invalid( + "mismatched weekday", + `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}` + ); + } + + return inst; + } + + /** + * Create a DateTime from an ISO 8601 string + * @param {string} text - the ISO string + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone + * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance + * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance + * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance + * @example DateTime.fromISO('2016-05-25T09:08:34.123') + * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00') + * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true}) + * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'}) + * @example DateTime.fromISO('2016-W05-4') + * @return {DateTime} + */ + static fromISO(text, opts = {}) { + const [vals, parsedZone] = parseISODate(text); + return parseDataToDateTime(vals, parsedZone, opts, "ISO 8601", text); + } + + /** + * Create a DateTime from an RFC 2822 string + * @param {string} text - the RFC 2822 string + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in. + * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance + * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT') + * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600') + * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z') + * @return {DateTime} + */ + static fromRFC2822(text, opts = {}) { + const [vals, parsedZone] = parseRFC2822Date(text); + return parseDataToDateTime(vals, parsedZone, opts, "RFC 2822", text); + } + + /** + * Create a DateTime from an HTTP header date + * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 + * @param {string} text - the HTTP header date + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in. + * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods. + * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance + * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT') + * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT') + * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994') + * @return {DateTime} + */ + static fromHTTP(text, opts = {}) { + const [vals, parsedZone] = parseHTTPDate(text); + return parseDataToDateTime(vals, parsedZone, opts, "HTTP", opts); + } + + /** + * Create a DateTime from an input string and format string. + * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens). + * @param {string} text - the string to parse + * @param {string} fmt - the format the string is expected to be in (see the link below for the formats) + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone + * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale + * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @return {DateTime} + */ + static fromFormat(text, fmt, opts = {}) { + if (isUndefined(text) || isUndefined(fmt)) { + throw new InvalidArgumentError("fromFormat requires an input string and a format"); + } + + const { locale = null, numberingSystem = null } = opts, + localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true, + }), + [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt); + if (invalid) { + return DateTime.invalid(invalid); + } else { + return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset); + } + } + + /** + * @deprecated use fromFormat instead + */ + static fromString(text, fmt, opts = {}) { + return DateTime.fromFormat(text, fmt, opts); + } + + /** + * Create a DateTime from a SQL date, time, or datetime + * Defaults to en-US if no locale has been specified, regardless of the system's locale + * @param {string} text - the string to parse + * @param {Object} opts - options to affect the creation + * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone + * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one + * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale + * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @example DateTime.fromSQL('2017-05-15') + * @example DateTime.fromSQL('2017-05-15 09:12:34') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles') + * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true }) + * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' }) + * @example DateTime.fromSQL('09:12:34.342') + * @return {DateTime} + */ + static fromSQL(text, opts = {}) { + const [vals, parsedZone] = parseSQL(text); + return parseDataToDateTime(vals, parsedZone, opts, "SQL", text); + } + + /** + * Create an invalid DateTime. + * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent. + * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information + * @return {DateTime} + */ + static invalid(reason, explanation = null) { + if (!reason) { + throw new InvalidArgumentError("need to specify a reason the DateTime is invalid"); + } + + const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); + + if (Settings.throwOnInvalid) { + throw new InvalidDateTimeError(invalid); + } else { + return new DateTime({ invalid }); + } + } + + /** + * Check if an object is an instance of DateTime. Works across context boundaries + * @param {object} o + * @return {boolean} + */ + static isDateTime(o) { + return (o && o.isLuxonDateTime) || false; + } + + /** + * Produce the format string for a set of options + * @param formatOpts + * @param localeOpts + * @returns {string} + */ + static parseFormatForOpts(formatOpts, localeOpts = {}) { + const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts)); + return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(""); + } + + /** + * Produce the the fully expanded format token for the locale + * Does NOT quote characters, so quoted tokens will not round trip correctly + * @param fmt + * @param localeOpts + * @returns {string} + */ + static expandFormat(fmt, localeOpts = {}) { + const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts)); + return expanded.map((t) => t.val).join(""); + } + + // INFO + + /** + * Get the value of unit. + * @param {string} unit - a unit such as 'minute' or 'day' + * @example DateTime.local(2017, 7, 4).get('month'); //=> 7 + * @example DateTime.local(2017, 7, 4).get('day'); //=> 4 + * @return {number} + */ + get(unit) { + return this[unit]; + } + + /** + * Returns whether the DateTime is valid. Invalid DateTimes occur when: + * * The DateTime was created from invalid calendar information, such as the 13th month or February 30 + * * The DateTime was created by an operation on another invalid date + * @type {boolean} + */ + get isValid() { + return this.invalid === null; + } + + /** + * Returns an error code if this DateTime is invalid, or null if the DateTime is valid + * @type {string} + */ + get invalidReason() { + return this.invalid ? this.invalid.reason : null; + } + + /** + * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid + * @type {string} + */ + get invalidExplanation() { + return this.invalid ? this.invalid.explanation : null; + } + + /** + * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime + * + * @type {string} + */ + get locale() { + return this.isValid ? this.loc.locale : null; + } + + /** + * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime + * + * @type {string} + */ + get numberingSystem() { + return this.isValid ? this.loc.numberingSystem : null; + } + + /** + * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime + * + * @type {string} + */ + get outputCalendar() { + return this.isValid ? this.loc.outputCalendar : null; + } + + /** + * Get the time zone associated with this DateTime. + * @type {Zone} + */ + get zone() { + return this._zone; + } + + /** + * Get the name of the time zone. + * @type {string} + */ + get zoneName() { + return this.isValid ? this.zone.name : null; + } + + /** + * Get the year + * @example DateTime.local(2017, 5, 25).year //=> 2017 + * @type {number} + */ + get year() { + return this.isValid ? this.c.year : NaN; + } + + /** + * Get the quarter + * @example DateTime.local(2017, 5, 25).quarter //=> 2 + * @type {number} + */ + get quarter() { + return this.isValid ? Math.ceil(this.c.month / 3) : NaN; + } + + /** + * Get the month (1-12). + * @example DateTime.local(2017, 5, 25).month //=> 5 + * @type {number} + */ + get month() { + return this.isValid ? this.c.month : NaN; + } + + /** + * Get the day of the month (1-30ish). + * @example DateTime.local(2017, 5, 25).day //=> 25 + * @type {number} + */ + get day() { + return this.isValid ? this.c.day : NaN; + } + + /** + * Get the hour of the day (0-23). + * @example DateTime.local(2017, 5, 25, 9).hour //=> 9 + * @type {number} + */ + get hour() { + return this.isValid ? this.c.hour : NaN; + } + + /** + * Get the minute of the hour (0-59). + * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30 + * @type {number} + */ + get minute() { + return this.isValid ? this.c.minute : NaN; + } + + /** + * Get the second of the minute (0-59). + * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52 + * @type {number} + */ + get second() { + return this.isValid ? this.c.second : NaN; + } + + /** + * Get the millisecond of the second (0-999). + * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654 + * @type {number} + */ + get millisecond() { + return this.isValid ? this.c.millisecond : NaN; + } + + /** + * Get the week year + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2014, 12, 31).weekYear //=> 2015 + * @type {number} + */ + get weekYear() { + return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN; + } + + /** + * Get the week number of the week year (1-52ish). + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2017, 5, 25).weekNumber //=> 21 + * @type {number} + */ + get weekNumber() { + return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN; + } + + /** + * Get the day of the week. + * 1 is Monday and 7 is Sunday + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2014, 11, 31).weekday //=> 4 + * @type {number} + */ + get weekday() { + return this.isValid ? possiblyCachedWeekData(this).weekday : NaN; + } + + /** + * Returns true if this date is on a weekend according to the locale, false otherwise + * @returns {boolean} + */ + get isWeekend() { + return this.isValid && this.loc.getWeekendDays().includes(this.weekday); + } + + /** + * Get the day of the week according to the locale. + * 1 is the first day of the week and 7 is the last day of the week. + * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1, + * @returns {number} + */ + get localWeekday() { + return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN; + } + + /** + * Get the week number of the week year according to the locale. Different locales assign week numbers differently, + * because the week can start on different days of the week (see localWeekday) and because a different number of days + * is required for a week to count as the first week of a year. + * @returns {number} + */ + get localWeekNumber() { + return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN; + } + + /** + * Get the week year according to the locale. Different locales assign week numbers (and therefor week years) + * differently, see localWeekNumber. + * @returns {number} + */ + get localWeekYear() { + return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN; + } + + /** + * Get the ordinal (meaning the day of the year) + * @example DateTime.local(2017, 5, 25).ordinal //=> 145 + * @type {number|DateTime} + */ + get ordinal() { + return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN; + } + + /** + * Get the human readable short month name, such as 'Oct'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).monthShort //=> Oct + * @type {string} + */ + get monthShort() { + return this.isValid ? Info.months("short", { locObj: this.loc })[this.month - 1] : null; + } + + /** + * Get the human readable long month name, such as 'October'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).monthLong //=> October + * @type {string} + */ + get monthLong() { + return this.isValid ? Info.months("long", { locObj: this.loc })[this.month - 1] : null; + } + + /** + * Get the human readable short weekday, such as 'Mon'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon + * @type {string} + */ + get weekdayShort() { + return this.isValid ? Info.weekdays("short", { locObj: this.loc })[this.weekday - 1] : null; + } + + /** + * Get the human readable long weekday, such as 'Monday'. + * Defaults to the system's locale if no locale has been specified + * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday + * @type {string} + */ + get weekdayLong() { + return this.isValid ? Info.weekdays("long", { locObj: this.loc })[this.weekday - 1] : null; + } + + /** + * Get the UTC offset of this DateTime in minutes + * @example DateTime.now().offset //=> -240 + * @example DateTime.utc().offset //=> 0 + * @type {number} + */ + get offset() { + return this.isValid ? +this.o : NaN; + } + + /** + * Get the short human name for the zone's current offset, for example "EST" or "EDT". + * Defaults to the system's locale if no locale has been specified + * @type {string} + */ + get offsetNameShort() { + if (this.isValid) { + return this.zone.offsetName(this.ts, { + format: "short", + locale: this.locale, + }); + } else { + return null; + } + } + + /** + * Get the long human name for the zone's current offset, for example "Eastern Standard Time" or "Eastern Daylight Time". + * Defaults to the system's locale if no locale has been specified + * @type {string} + */ + get offsetNameLong() { + if (this.isValid) { + return this.zone.offsetName(this.ts, { + format: "long", + locale: this.locale, + }); + } else { + return null; + } + } + + /** + * Get whether this zone's offset ever changes, as in a DST. + * @type {boolean} + */ + get isOffsetFixed() { + return this.isValid ? this.zone.isUniversal : null; + } + + /** + * Get whether the DateTime is in a DST. + * @type {boolean} + */ + get isInDST() { + if (this.isOffsetFixed) { + return false; + } else { + return ( + this.offset > this.set({ month: 1, day: 1 }).offset || + this.offset > this.set({ month: 5 }).offset + ); + } + } + + /** + * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC + * in this DateTime's zone. During DST changes local time can be ambiguous, for example + * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`. + * This method will return both possible DateTimes if this DateTime's local time is ambiguous. + * @returns {DateTime[]} + */ + getPossibleOffsets() { + if (!this.isValid || this.isOffsetFixed) { + return [this]; + } + const dayMs = 86400000; + const minuteMs = 60000; + const localTS = objToLocalTS(this.c); + const oEarlier = this.zone.offset(localTS - dayMs); + const oLater = this.zone.offset(localTS + dayMs); + + const o1 = this.zone.offset(localTS - oEarlier * minuteMs); + const o2 = this.zone.offset(localTS - oLater * minuteMs); + if (o1 === o2) { + return [this]; + } + const ts1 = localTS - o1 * minuteMs; + const ts2 = localTS - o2 * minuteMs; + const c1 = tsToObj(ts1, o1); + const c2 = tsToObj(ts2, o2); + if ( + c1.hour === c2.hour && + c1.minute === c2.minute && + c1.second === c2.second && + c1.millisecond === c2.millisecond + ) { + return [datetime_clone(this, { ts: ts1 }), datetime_clone(this, { ts: ts2 })]; + } + return [this]; + } + + /** + * Returns true if this DateTime is in a leap year, false otherwise + * @example DateTime.local(2016).isInLeapYear //=> true + * @example DateTime.local(2013).isInLeapYear //=> false + * @type {boolean} + */ + get isInLeapYear() { + return isLeapYear(this.year); + } + + /** + * Returns the number of days in this DateTime's month + * @example DateTime.local(2016, 2).daysInMonth //=> 29 + * @example DateTime.local(2016, 3).daysInMonth //=> 31 + * @type {number} + */ + get daysInMonth() { + return daysInMonth(this.year, this.month); + } + + /** + * Returns the number of days in this DateTime's year + * @example DateTime.local(2016).daysInYear //=> 366 + * @example DateTime.local(2013).daysInYear //=> 365 + * @type {number} + */ + get daysInYear() { + return this.isValid ? daysInYear(this.year) : NaN; + } + + /** + * Returns the number of weeks in this DateTime's year + * @see https://en.wikipedia.org/wiki/ISO_week_date + * @example DateTime.local(2004).weeksInWeekYear //=> 53 + * @example DateTime.local(2013).weeksInWeekYear //=> 52 + * @type {number} + */ + get weeksInWeekYear() { + return this.isValid ? weeksInWeekYear(this.weekYear) : NaN; + } + + /** + * Returns the number of weeks in this DateTime's local week year + * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52 + * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53 + * @type {number} + */ + get weeksInLocalWeekYear() { + return this.isValid + ? weeksInWeekYear( + this.localWeekYear, + this.loc.getMinDaysInFirstWeek(), + this.loc.getStartOfWeek() + ) + : NaN; + } + + /** + * Returns the resolved Intl options for this DateTime. + * This is useful in understanding the behavior of formatting methods + * @param {Object} opts - the same options as toLocaleString + * @return {Object} + */ + resolvedLocaleOptions(opts = {}) { + const { locale, numberingSystem, calendar } = Formatter.create( + this.loc.clone(opts), + opts + ).resolvedOptions(this); + return { locale, numberingSystem, outputCalendar: calendar }; + } + + // TRANSFORM + + /** + * "Set" the DateTime's zone to UTC. Returns a newly-constructed DateTime. + * + * Equivalent to {@link DateTime#setZone}('utc') + * @param {number} [offset=0] - optionally, an offset from UTC in minutes + * @param {Object} [opts={}] - options to pass to `setZone()` + * @return {DateTime} + */ + toUTC(offset = 0, opts = {}) { + return this.setZone(FixedOffsetZone.instance(offset), opts); + } + + /** + * "Set" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime. + * + * Equivalent to `setZone('local')` + * @return {DateTime} + */ + toLocal() { + return this.setZone(Settings.defaultZone); + } + + /** + * "Set" the DateTime's zone to specified zone. Returns a newly-constructed DateTime. + * + * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones. + * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class. + * @param {Object} opts - options + * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this. + * @return {DateTime} + */ + setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) { + zone = normalizeZone(zone, Settings.defaultZone); + if (zone.equals(this.zone)) { + return this; + } else if (!zone.isValid) { + return DateTime.invalid(unsupportedZone(zone)); + } else { + let newTS = this.ts; + if (keepLocalTime || keepCalendarTime) { + const offsetGuess = zone.offset(this.ts); + const asObj = this.toObject(); + [newTS] = objToTS(asObj, offsetGuess, zone); + } + return datetime_clone(this, { ts: newTS, zone }); + } + } + + /** + * "Set" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime. + * @param {Object} properties - the properties to set + * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' }) + * @return {DateTime} + */ + reconfigure({ locale, numberingSystem, outputCalendar } = {}) { + const loc = this.loc.clone({ locale, numberingSystem, outputCalendar }); + return datetime_clone(this, { loc }); + } + + /** + * "Set" the locale. Returns a newly-constructed DateTime. + * Just a convenient alias for reconfigure({ locale }) + * @example DateTime.local(2017, 5, 25).setLocale('en-GB') + * @return {DateTime} + */ + setLocale(locale) { + return this.reconfigure({ locale }); + } + + /** + * "Set" the values of specified units. Returns a newly-constructed DateTime. + * You can only set units with this method; for "setting" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}. + * + * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`. + * They cannot be mixed with ISO-week units like `weekday`. + * @param {Object} values - a mapping of units to numbers + * @example dt.set({ year: 2017 }) + * @example dt.set({ hour: 8, minute: 30 }) + * @example dt.set({ weekday: 5 }) + * @example dt.set({ year: 2005, ordinal: 234 }) + * @return {DateTime} + */ + set(values) { + if (!this.isValid) return this; + + const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks); + const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc); + + const settingWeekStuff = + !isUndefined(normalized.weekYear) || + !isUndefined(normalized.weekNumber) || + !isUndefined(normalized.weekday), + containsOrdinal = !isUndefined(normalized.ordinal), + containsGregorYear = !isUndefined(normalized.year), + containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), + containsGregor = containsGregorYear || containsGregorMD, + definiteWeekDef = normalized.weekYear || normalized.weekNumber; + + if ((containsGregor || containsOrdinal) && definiteWeekDef) { + throw new ConflictingSpecificationError( + "Can't mix weekYear/weekNumber units with year/month/day or ordinals" + ); + } + + if (containsGregorMD && containsOrdinal) { + throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); + } + + let mixed; + if (settingWeekStuff) { + mixed = weekToGregorian( + { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized }, + minDaysInFirstWeek, + startOfWeek + ); + } else if (!isUndefined(normalized.ordinal)) { + mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized }); + } else { + mixed = { ...this.toObject(), ...normalized }; + + // if we didn't set the day but we ended up on an overflow date, + // use the last day of the right month + if (isUndefined(normalized.day)) { + mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day); + } + } + + const [ts, o] = objToTS(mixed, this.o, this.zone); + return datetime_clone(this, { ts, o }); + } + + /** + * Add a period of time to this DateTime and return the resulting DateTime + * + * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between. + * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + * @example DateTime.now().plus(123) //~> in 123 milliseconds + * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes + * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow + * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday + * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min + * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min + * @return {DateTime} + */ + plus(duration) { + if (!this.isValid) return this; + const dur = Duration.fromDurationLike(duration); + return datetime_clone(this, adjustTime(this, dur)); + } + + /** + * Subtract a period of time to this DateTime and return the resulting DateTime + * See {@link DateTime#plus} + * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() + @return {DateTime} + */ + minus(duration) { + if (!this.isValid) return this; + const dur = Duration.fromDurationLike(duration).negate(); + return datetime_clone(this, adjustTime(this, dur)); + } + + /** + * "Set" this DateTime to the beginning of a unit of time. + * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week + * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01' + * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01' + * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays + * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00' + * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00' + * @return {DateTime} + */ + startOf(unit, { useLocaleWeeks = false } = {}) { + if (!this.isValid) return this; + + const o = {}, + normalizedUnit = Duration.normalizeUnit(unit); + switch (normalizedUnit) { + case "years": + o.month = 1; + // falls through + case "quarters": + case "months": + o.day = 1; + // falls through + case "weeks": + case "days": + o.hour = 0; + // falls through + case "hours": + o.minute = 0; + // falls through + case "minutes": + o.second = 0; + // falls through + case "seconds": + o.millisecond = 0; + break; + case "milliseconds": + break; + // no default, invalid units throw in normalizeUnit() + } + + if (normalizedUnit === "weeks") { + if (useLocaleWeeks) { + const startOfWeek = this.loc.getStartOfWeek(); + const { weekday } = this; + if (weekday < startOfWeek) { + o.weekNumber = this.weekNumber - 1; + } + o.weekday = startOfWeek; + } else { + o.weekday = 1; + } + } + + if (normalizedUnit === "quarters") { + const q = Math.ceil(this.month / 3); + o.month = (q - 1) * 3 + 1; + } + + return this.set(o); + } + + /** + * "Set" this DateTime to the end (meaning the last millisecond) of a unit of time + * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week + * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00' + * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00' + * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays + * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00' + * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00' + * @return {DateTime} + */ + endOf(unit, opts) { + return this.isValid + ? this.plus({ [unit]: 1 }) + .startOf(unit, opts) + .minus(1) + : this; + } + + // OUTPUT + + /** + * Returns a string representation of this DateTime formatted according to the specified format string. + * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens). + * Defaults to en-US if no locale has been specified, regardless of the system's locale. + * @param {string} fmt - the format string + * @param {Object} opts - opts to override the configuration options on this DateTime + * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22' + * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22' + * @example DateTime.now().toFormat('yyyy LLL dd', { locale: "fr" }) //=> '2017 avr. 22' + * @example DateTime.now().toFormat("HH 'hours and' mm 'minutes'") //=> '20 hours and 55 minutes' + * @return {string} + */ + toFormat(fmt, opts = {}) { + return this.isValid + ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) + : datetime_INVALID; + } + + /** + * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`. + * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation + * of the DateTime in the assigned locale. + * Defaults to the system's locale if no locale has been specified + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat + * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options + * @param {Object} opts - opts to override the configuration options on this DateTime + * @example DateTime.now().toLocaleString(); //=> 4/20/2017 + * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017' + * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017' + * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022' + * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM' + * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM' + * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20' + * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM' + * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32' + * @return {string} + */ + toLocaleString(formatOpts = DATE_SHORT, opts = {}) { + return this.isValid + ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this) + : datetime_INVALID; + } + + /** + * Returns an array of format "parts", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output. + * Defaults to the system's locale if no locale has been specified + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts + * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`. + * @example DateTime.now().toLocaleParts(); //=> [ + * //=> { type: 'day', value: '25' }, + * //=> { type: 'literal', value: '/' }, + * //=> { type: 'month', value: '05' }, + * //=> { type: 'literal', value: '/' }, + * //=> { type: 'year', value: '1982' } + * //=> ] + */ + toLocaleParts(opts = {}) { + return this.isValid + ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) + : []; + } + + /** + * Returns an ISO 8601-compliant string representation of this DateTime + * @param {Object} opts - options + * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 + * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.extendedZone=false] - add the time zone format extension + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z' + * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00' + * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335' + * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400' + * @return {string} + */ + toISO({ + format = "extended", + suppressSeconds = false, + suppressMilliseconds = false, + includeOffset = true, + extendedZone = false, + } = {}) { + if (!this.isValid) { + return null; + } + + const ext = format === "extended"; + + let c = toISODate(this, ext); + c += "T"; + c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); + return c; + } + + /** + * Returns an ISO 8601-compliant string representation of this DateTime's date component + * @param {Object} opts - options + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25' + * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525' + * @return {string} + */ + toISODate({ format = "extended" } = {}) { + if (!this.isValid) { + return null; + } + + return toISODate(this, format === "extended"); + } + + /** + * Returns an ISO 8601-compliant string representation of this DateTime's week date + * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2' + * @return {string} + */ + toISOWeekDate() { + return toTechFormat(this, "kkkk-'W'WW-c"); + } + + /** + * Returns an ISO 8601-compliant string representation of this DateTime's time component + * @param {Object} opts - options + * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 + * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.extendedZone=true] - add the time zone format extension + * @param {boolean} [opts.includePrefix=false] - include the `T` prefix + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z' + * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z' + * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z' + * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z' + * @return {string} + */ + toISOTime({ + suppressMilliseconds = false, + suppressSeconds = false, + includeOffset = true, + includePrefix = false, + extendedZone = false, + format = "extended", + } = {}) { + if (!this.isValid) { + return null; + } + + let c = includePrefix ? "T" : ""; + return ( + c + + toISOTime( + this, + format === "extended", + suppressSeconds, + suppressMilliseconds, + includeOffset, + extendedZone + ) + ); + } + + /** + * Returns an RFC 2822-compatible string representation of this DateTime + * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000' + * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400' + * @return {string} + */ + toRFC2822() { + return toTechFormat(this, "EEE, dd LLL yyyy HH:mm:ss ZZZ", false); + } + + /** + * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT. + * Specifically, the string conforms to RFC 1123. + * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 + * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT' + * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT' + * @return {string} + */ + toHTTP() { + return toTechFormat(this.toUTC(), "EEE, dd LLL yyyy HH:mm:ss 'GMT'"); + } + + /** + * Returns a string representation of this DateTime appropriate for use in SQL Date + * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13' + * @return {string} + */ + toSQLDate() { + if (!this.isValid) { + return null; + } + return toISODate(this, true); + } + + /** + * Returns a string representation of this DateTime appropriate for use in SQL Time + * @param {Object} opts - options + * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' + * @example DateTime.utc().toSQL() //=> '05:15:16.345' + * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00' + * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345' + * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York' + * @return {string} + */ + toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) { + let fmt = "HH:mm:ss.SSS"; + + if (includeZone || includeOffset) { + if (includeOffsetSpace) { + fmt += " "; + } + if (includeZone) { + fmt += "z"; + } else if (includeOffset) { + fmt += "ZZ"; + } + } + + return toTechFormat(this, fmt, true); + } + + /** + * Returns a string representation of this DateTime appropriate for use in SQL DateTime + * @param {Object} opts - options + * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. + * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' + * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z' + * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00' + * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000' + * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York' + * @return {string} + */ + toSQL(opts = {}) { + if (!this.isValid) { + return null; + } + + return `${this.toSQLDate()} ${this.toSQLTime(opts)}`; + } + + /** + * Returns a string representation of this DateTime appropriate for debugging + * @return {string} + */ + toString() { + return this.isValid ? this.toISO() : datetime_INVALID; + } + + /** + * Returns a string representation of this DateTime appropriate for the REPL. + * @return {string} + */ + [Symbol.for("nodejs.util.inspect.custom")]() { + if (this.isValid) { + return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`; + } else { + return `DateTime { Invalid, reason: ${this.invalidReason} }`; + } + } + + /** + * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis} + * @return {number} + */ + valueOf() { + return this.toMillis(); + } + + /** + * Returns the epoch milliseconds of this DateTime. + * @return {number} + */ + toMillis() { + return this.isValid ? this.ts : NaN; + } + + /** + * Returns the epoch seconds of this DateTime. + * @return {number} + */ + toSeconds() { + return this.isValid ? this.ts / 1000 : NaN; + } + + /** + * Returns the epoch seconds (as a whole number) of this DateTime. + * @return {number} + */ + toUnixInteger() { + return this.isValid ? Math.floor(this.ts / 1000) : NaN; + } + + /** + * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON. + * @return {string} + */ + toJSON() { + return this.toISO(); + } + + /** + * Returns a BSON serializable equivalent to this DateTime. + * @return {Date} + */ + toBSON() { + return this.toJSDate(); + } + + /** + * Returns a JavaScript object with this DateTime's year, month, day, and so on. + * @param opts - options for generating the object + * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output + * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 } + * @return {Object} + */ + toObject(opts = {}) { + if (!this.isValid) return {}; + + const base = { ...this.c }; + + if (opts.includeConfig) { + base.outputCalendar = this.outputCalendar; + base.numberingSystem = this.loc.numberingSystem; + base.locale = this.loc.locale; + } + return base; + } + + /** + * Returns a JavaScript Date equivalent to this DateTime. + * @return {Date} + */ + toJSDate() { + return new Date(this.isValid ? this.ts : NaN); + } + + // COMPARE + + /** + * Return the difference between two DateTimes as a Duration. + * @param {DateTime} otherDateTime - the DateTime to compare this one to + * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration. + * @param {Object} opts - options that affect the creation of the Duration + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @example + * var i1 = DateTime.fromISO('1982-05-25T09:45'), + * i2 = DateTime.fromISO('1983-10-14T10:30'); + * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 } + * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 } + * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 } + * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 } + * @return {Duration} + */ + diff(otherDateTime, unit = "milliseconds", opts = {}) { + if (!this.isValid || !otherDateTime.isValid) { + return Duration.invalid("created by diffing an invalid DateTime"); + } + + const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts }; + + const units = maybeArray(unit).map(Duration.normalizeUnit), + otherIsLater = otherDateTime.valueOf() > this.valueOf(), + earlier = otherIsLater ? this : otherDateTime, + later = otherIsLater ? otherDateTime : this, + diffed = diff(earlier, later, units, durOpts); + + return otherIsLater ? diffed.negate() : diffed; + } + + /** + * Return the difference between this DateTime and right now. + * See {@link DateTime#diff} + * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration + * @param {Object} opts - options that affect the creation of the Duration + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @return {Duration} + */ + diffNow(unit = "milliseconds", opts = {}) { + return this.diff(DateTime.now(), unit, opts); + } + + /** + * Return an Interval spanning between this DateTime and another DateTime + * @param {DateTime} otherDateTime - the other end point of the Interval + * @return {Interval} + */ + until(otherDateTime) { + return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this; + } + + /** + * Return whether this DateTime is in the same unit of time as another DateTime. + * Higher-order units must also be identical for this function to return `true`. + * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed. + * @param {DateTime} otherDateTime - the other DateTime + * @param {string} unit - the unit of time to check sameness on + * @param {Object} opts - options + * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used + * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day + * @return {boolean} + */ + hasSame(otherDateTime, unit, opts) { + if (!this.isValid) return false; + + const inputMs = otherDateTime.valueOf(); + const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true }); + return ( + adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts) + ); + } + + /** + * Equality check + * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid. + * To compare just the millisecond values, use `+dt1 === +dt2`. + * @param {DateTime} other - the other DateTime + * @return {boolean} + */ + equals(other) { + return ( + this.isValid && + other.isValid && + this.valueOf() === other.valueOf() && + this.zone.equals(other.zone) && + this.loc.equals(other.loc) + ); + } + + /** + * Returns a string representation of a this time relative to now, such as "in two days". Can only internationalize if your + * platform supports Intl.RelativeTimeFormat. Rounds down by default. + * @param {Object} options - options that affect the output + * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. + * @param {string} [options.style="long"] - the style of units, must be "long", "short", or "narrow" + * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of "years", "quarters", "months", "weeks", "days", "hours", "minutes", or "seconds" + * @param {boolean} [options.round=true] - whether to round the numbers in the output. + * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding. + * @param {string} options.locale - override the locale of this DateTime + * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this + * @example DateTime.now().plus({ days: 1 }).toRelative() //=> "in 1 day" + * @example DateTime.now().setLocale("es").toRelative({ days: 1 }) //=> "dentro de 1 día" + * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: "fr" }) //=> "dans 23 heures" + * @example DateTime.now().minus({ days: 2 }).toRelative() //=> "2 days ago" + * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: "hours" }) //=> "48 hours ago" + * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> "1.5 days ago" + */ + toRelative(options = {}) { + if (!this.isValid) return null; + const base = options.base || DateTime.fromObject({}, { zone: this.zone }), + padding = options.padding ? (this < base ? -options.padding : options.padding) : 0; + let units = ["years", "months", "days", "hours", "minutes", "seconds"]; + let unit = options.unit; + if (Array.isArray(options.unit)) { + units = options.unit; + unit = undefined; + } + return diffRelative(base, this.plus(padding), { + ...options, + numeric: "always", + units, + unit, + }); + } + + /** + * Returns a string representation of this date relative to today, such as "yesterday" or "next month". + * Only internationalizes on platforms that supports Intl.RelativeTimeFormat. + * @param {Object} options - options that affect the output + * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. + * @param {string} options.locale - override the locale of this DateTime + * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of "years", "quarters", "months", "weeks", or "days" + * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this + * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> "tomorrow" + * @example DateTime.now().setLocale("es").plus({ days: 1 }).toRelative() //=> ""mañana" + * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: "fr" }) //=> "demain" + * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> "2 days ago" + */ + toRelativeCalendar(options = {}) { + if (!this.isValid) return null; + + return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, { + ...options, + numeric: "auto", + units: ["years", "months", "days"], + calendary: true, + }); + } + + /** + * Return the min of several date times + * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum + * @return {DateTime} the min DateTime, or undefined if called with no argument + */ + static min(...dateTimes) { + if (!dateTimes.every(DateTime.isDateTime)) { + throw new InvalidArgumentError("min requires all arguments be DateTimes"); + } + return bestBy(dateTimes, (i) => i.valueOf(), Math.min); + } + + /** + * Return the max of several date times + * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum + * @return {DateTime} the max DateTime, or undefined if called with no argument + */ + static max(...dateTimes) { + if (!dateTimes.every(DateTime.isDateTime)) { + throw new InvalidArgumentError("max requires all arguments be DateTimes"); + } + return bestBy(dateTimes, (i) => i.valueOf(), Math.max); + } + + // MISC + + /** + * Explain how a string would be parsed by fromFormat() + * @param {string} text - the string to parse + * @param {string} fmt - the format the string is expected to be in (see description) + * @param {Object} options - options taken by fromFormat() + * @return {Object} + */ + static fromFormatExplain(text, fmt, options = {}) { + const { locale = null, numberingSystem = null } = options, + localeToUse = Locale.fromOpts({ + locale, + numberingSystem, + defaultToEN: true, + }); + return explainFromTokens(localeToUse, text, fmt); + } + + /** + * @deprecated use fromFormatExplain instead + */ + static fromStringExplain(text, fmt, options = {}) { + return DateTime.fromFormatExplain(text, fmt, options); + } + + // FORMAT PRESETS + + /** + * {@link DateTime#toLocaleString} format like 10/14/1983 + * @type {Object} + */ + static get DATE_SHORT() { + return DATE_SHORT; + } + + /** + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983' + * @type {Object} + */ + static get DATE_MED() { + return DATE_MED; + } + + /** + * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + static get DATE_MED_WITH_WEEKDAY() { + return DATE_MED_WITH_WEEKDAY; + } + + /** + * {@link DateTime#toLocaleString} format like 'October 14, 1983' + * @type {Object} + */ + static get DATE_FULL() { + return DATE_FULL; + } + + /** + * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983' + * @type {Object} + */ + static get DATE_HUGE() { + return DATE_HUGE; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_SIMPLE() { + return TIME_SIMPLE; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_WITH_SECONDS() { + return TIME_WITH_SECONDS; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_WITH_SHORT_OFFSET() { + return TIME_WITH_SHORT_OFFSET; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * @type {Object} + */ + static get TIME_WITH_LONG_OFFSET() { + return TIME_WITH_LONG_OFFSET; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30', always 24-hour. + * @type {Object} + */ + static get TIME_24_SIMPLE() { + return TIME_24_SIMPLE; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour. + * @type {Object} + */ + static get TIME_24_WITH_SECONDS() { + return TIME_24_WITH_SECONDS; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour. + * @type {Object} + */ + static get TIME_24_WITH_SHORT_OFFSET() { + return TIME_24_WITH_SHORT_OFFSET; + } + + /** + * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour. + * @type {Object} + */ + static get TIME_24_WITH_LONG_OFFSET() { + return TIME_24_WITH_LONG_OFFSET; + } + + /** + * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_SHORT() { + return DATETIME_SHORT; + } + + /** + * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_SHORT_WITH_SECONDS() { + return DATETIME_SHORT_WITH_SECONDS; + } + + /** + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_MED() { + return DATETIME_MED; + } + + /** + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_MED_WITH_SECONDS() { + return DATETIME_MED_WITH_SECONDS; + } + + /** + * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_MED_WITH_WEEKDAY() { + return DATETIME_MED_WITH_WEEKDAY; + } + + /** + * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_FULL() { + return DATETIME_FULL; + } + + /** + * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_FULL_WITH_SECONDS() { + return DATETIME_FULL_WITH_SECONDS; + } + + /** + * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_HUGE() { + return DATETIME_HUGE; + } + + /** + * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * @type {Object} + */ + static get DATETIME_HUGE_WITH_SECONDS() { + return DATETIME_HUGE_WITH_SECONDS; + } +} + +/** + * @private + */ +function friendlyDateTime(dateTimeish) { + if (DateTime.isDateTime(dateTimeish)) { + return dateTimeish; + } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) { + return DateTime.fromJSDate(dateTimeish); + } else if (dateTimeish && typeof dateTimeish === "object") { + return DateTime.fromObject(dateTimeish); + } else { + throw new InvalidArgumentError( + `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}` + ); + } +} + +;// CONCATENATED MODULE: ./node_modules/luxon/src/luxon.js + + + + + + + + + + + +const luxon_VERSION = "3.4.4"; + + + +;// CONCATENATED MODULE: ./src/types/constants.ts +const FOLLOWUP_HEADER = "Followup"; +const UNASSIGN_HEADER = "Unassign"; + +;// CONCATENATED MODULE: external "node:fs" +const external_node_fs_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:fs"); +// EXTERNAL MODULE: ./node_modules/graphql/index.js +var node_modules_graphql = __nccwpck_require__(9727); +// EXTERNAL MODULE: ./node_modules/graphql-tag/main.js +var graphql_tag_main = __nccwpck_require__(7593); +;// CONCATENATED MODULE: ./node_modules/@octokit/graphql-schema/lib/validate.js +/* harmony default export */ const validate = (validateQuery); + + + + + +const schema = (0,node_modules_graphql.buildClientSchema)( + JSON.parse((0,external_node_fs_namespaceObject.readFileSync)(__nccwpck_require__.ab + "schema.json", "utf8")), +); + +function validateQuery(query) { + return (0,node_modules_graphql.validate)(schema, graphql_tag_main(query)); +} + +;// CONCATENATED MODULE: ./src/helpers/collect-linked-pulls.ts + +const query = /* GraphQL */ ` + query collectLinkedPullRequests($owner: String!, $repo: String!, $issue_number: Int!) { + repository(owner: $owner, name: $repo) { + issue(number: $issue_number) { + closedByPullRequestsReferences(first: 100, includeClosedPrs: false) { + edges { + node { + url + title + body + state + number + author { + login + ... on User { + id: databaseId + } + } + } + } + } + } + } + } +`; +const queryErrors = validate(query); +/** + * > 1 because the schema package is slightly out of date and does not include the + * `closedByPullRequestsReferences` object in the schema as it is a recent addition to the GitHub API. + */ +if (queryErrors.length > 1) { + throw new Error(`Invalid query: ${queryErrors.join(", ")}`); +} +async function collectLinkedPullRequests(context, issue) { + const { owner, repo, issue_number } = issue; + const result = await context.octokit.graphql(query, { + owner, + repo, + issue_number, + }); + return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node); +} + +;// CONCATENATED MODULE: ./src/helpers/github-url.ts +function parseIssueUrl(url) { + const path = new URL(url).pathname.split("/"); + if (path.length !== 5) { + throw new Error(`[parseGitHubUrl] Invalid url: [${url}]`); + } + return { + owner: path[1], + repo: path[2], + issue_number: Number(path[4]), + }; +} + +;// CONCATENATED MODULE: ./src/helpers/get-assignee-activity.ts + + + +/** + * Retrieves all the activity for users that are assigned to the issue. Also takes into account linked pull requests. + */ +async function getAssigneesActivityForIssue(context, issue, assigneeIds) { + const gitHubUrl = parseIssueUrl(issue.html_url); + const issueEvents = await context.octokit.paginate(context.octokit.rest.issues.listEventsForTimeline, { + owner: gitHubUrl.owner, + repo: gitHubUrl.repo, + issue_number: gitHubUrl.issue_number, + per_page: 100, + }); + const linkedPullRequests = await collectLinkedPullRequests(context, gitHubUrl); + for (const linkedPullRequest of linkedPullRequests) { + const { owner, repo, issue_number } = parseIssueUrl(linkedPullRequest.url || ""); + const events = await context.octokit.paginate(context.octokit.rest.issues.listEventsForTimeline, { + owner, + repo, + issue_number, + per_page: 100, + }); + issueEvents.push(...events); + } + return filterEvents(issueEvents, assigneeIds); +} +function filterEvents(issueEvents, assigneeIds) { + const userIdMap = new Map(); + const assigneeEvents = []; + for (const event of issueEvents) { + let actorId = null; + let actorLogin = null; + let createdAt = null; + const eventName = event.event; + if ("actor" in event && event.actor) { + actorLogin = event.actor.login.toLowerCase(); + if (!userIdMap.has(actorLogin)) { + userIdMap.set(actorLogin, event.actor.id); + } + actorId = userIdMap.get(actorLogin); + createdAt = event.created_at; + } + else if ((event.event === "committed" || event.event === "commented") && "author" in event) { + const commitAuthor = "author" in event ? event.author : null; + const commitCommitter = "committer" in event ? event.committer : null; + if (commitAuthor || commitCommitter) { + assigneeEvents.push({ + event: eventName, + created_at: event.author.date, + author: event.author.email, + }); + continue; + } + } + if (actorId && assigneeIds.includes(actorId)) { + assigneeEvents.push({ + event: eventName, + created_at: createdAt, + author: actorLogin, + }); + } + } + return assigneeEvents.sort((a, b) => { + if (!a.created_at || !b.created_at) { + return 0; + } + return DateTime.fromISO(b.created_at).toMillis() - DateTime.fromISO(a.created_at).toMillis(); + }); +} + +;// CONCATENATED MODULE: ./src/helpers/structured-metadata.ts +const structured_metadata_HEADER_NAME = "Ubiquity"; +function structured_metadata_createStructuredMetadata(className, logReturn) { + let logMessage, metadata; + if (logReturn) { + logMessage = logReturn.logMessage; + metadata = logReturn.metadata; + } + const jsonPretty = JSON.stringify(metadata, null, 2); + const stackLine = new Error().stack?.split("\n")[2] ?? ""; + const caller = stackLine.match(/at (\S+)/)?.[1] ?? ""; + const ubiquityMetadataHeader = `"].join("\n"); + if (logMessage?.type === "fatal") { + // if the log message is fatal, then we want to show the metadata + metadataSerialized = [metadataSerializedVisible, metadataSerializedHidden].join("\n"); + } + else { + // otherwise we want to hide it + metadataSerialized = metadataSerializedHidden; + } + return metadataSerialized; +} +async function getCommentsFromMetadata(context, issueNumber, repoOwner, repoName, className) { + const { octokit } = context; + const ubiquityMetadataHeaderPattern = new RegExp(``); + return await octokit.paginate(octokit.rest.issues.listComments, { + owner: repoOwner, + repo: repoName, + issue_number: issueNumber, + }, (response) => response.data.filter((comment) => comment.performed_via_github_app && comment.body && comment.user?.type === "Bot" && ubiquityMetadataHeaderPattern.test(comment.body))); +} + +;// CONCATENATED MODULE: ./src/helpers/remind-and-remove.ts + + + + +async function unassignUserFromIssue(context, issue) { + const { logger, config } = context; + if (config.disqualification <= 0) { + logger.info("The unassign threshold is <= 0, won't unassign users."); + } + else { + await removeAllAssignees(context, issue); + } +} +async function remindAssigneesForIssue(context, issue) { + const { logger, config } = context; + const issueItem = parseIssueUrl(issue.html_url); + const hasLinkedPr = !!(await collectLinkedPullRequests(context, issueItem)).length; + if (config.warning <= 0) { + logger.info("The reminder threshold is <= 0, won't send any reminder."); + } + else if (config.pullRequestRequired && !hasLinkedPr) { + await unassignUserFromIssue(context, issue); + } + else { + logger.info(`Passed the reminder threshold on ${issue.html_url} sending a reminder.`); + await remindAssignees(context, issue); + } +} +async function remindAssignees(context, issue) { + const { octokit, logger, config } = context; + const { repo, owner, issue_number } = parseIssueUrl(issue.html_url); + if (!issue?.assignees?.length) { + logger.error(`Missing Assignees from ${issue.html_url}`); + return false; + } + const logins = issue.assignees + .map((o) => o?.login) + .filter((o) => !!o) + .join(", @"); + const logMessage = logger.info(`@${logins}, this task has been idle for a while. Please provide an update.\n\n`, { + taskAssignees: issue.assignees.map((o) => o?.id), + }); + const metadata = structured_metadata_createStructuredMetadata(FOLLOWUP_HEADER, logMessage); + if (!config.pullRequestRequired) { + await octokit.rest.issues.createComment({ + owner, + repo, + issue_number, + body: [logMessage.logMessage.raw, metadata].join("\n"), + }); + } + else { + const pullRequests = await collectLinkedPullRequests(context, { repo, owner, issue_number }); + let shouldPostToMainIssue = false; + for (const pullRequest of pullRequests) { + const { owner: prOwner, repo: prRepo, issue_number: prNumber } = parseIssueUrl(pullRequest.url); + try { + await octokit.rest.issues.createComment({ + owner: prOwner, + repo: prRepo, + issue_number: prNumber, + body: [logMessage.logMessage.raw, metadata].join("\n"), + }); + } + catch (e) { + logger.error(`Could not post to ${pullRequest.url} will post to the issue instead.`, { e }); + shouldPostToMainIssue = true; + } + } + // This is a fallback if we failed to post the reminder to a pull-request, which can happen when posting cross + // organizations, so we post to the parent issue instead, to make sure the user got a reminder. + if (shouldPostToMainIssue) { + await octokit.rest.issues.createComment({ + owner, + repo, + issue_number, + body: [logMessage.logMessage.raw, metadata].join("\n"), + }); + } + } + return true; +} +async function removeAllAssignees(context, issue) { + const { octokit, logger } = context; + const { repo, owner, issue_number } = parseIssueUrl(issue.html_url); + if (!issue?.assignees?.length) { + logger.error(`Missing Assignees from ${issue.html_url}`); + return false; + } + const logins = issue.assignees.map((o) => o?.login).filter((o) => !!o); + const logMessage = logger.info(`Passed the deadline and no activity is detected, removing assignees: ${logins.map((o) => `@${o}`).join(", ")}.`, { + issue: issue.html_url, + }); + const metadata = structured_metadata_createStructuredMetadata(UNASSIGN_HEADER, logMessage); + await octokit.rest.issues.createComment({ + owner, + repo, + issue_number, + body: [logMessage.logMessage.raw, metadata].join("\n"), + }); + await octokit.rest.issues.removeAssignees({ + owner, + repo, + issue_number, + assignees: logins, + }); + return true; +} + +// EXTERNAL MODULE: ./node_modules/ms/index.js +var ms = __nccwpck_require__(717); +var ms_default = /*#__PURE__*/__nccwpck_require__.n(ms); +;// CONCATENATED MODULE: ./src/helpers/task-metadata.ts + + +/** + * Retrieves assignment events from the timeline of an issue and calculates the deadline based on the time label. + * + * It does not care about previous updates, comments or other events that might have happened on the issue. + * + * It returns who is assigned and the initial calculated deadline (start + time label duration). + */ +async function getTaskAssignmentDetails(context, repo, issue) { + const { logger, octokit } = context; + const assignmentEvents = await octokit.paginate(octokit.rest.issues.listEvents, { + owner: repo.owner.login, + repo: repo.name, + issue_number: issue.number, + }); + const assignedEvents = assignmentEvents + .filter((o) => o.event === "assigned") + .sort((a, b) => DateTime.fromISO(b.created_at).toMillis() - DateTime.fromISO(a.created_at).toMillis()); + const latestUserAssignment = assignedEvents.find((o) => o.actor?.type === "User"); + const latestBotAssignment = assignedEvents.find((o) => o.actor?.type === "Bot"); + let mostRecentAssignmentEvent = latestUserAssignment || latestBotAssignment; + if (latestUserAssignment && latestBotAssignment && DateTime.fromISO(latestUserAssignment.created_at) > DateTime.fromISO(latestBotAssignment.created_at)) { + mostRecentAssignmentEvent = latestUserAssignment; + } + else { + mostRecentAssignmentEvent = latestBotAssignment; + } + const metadata = { + startPlusLabelDuration: DateTime.fromISO(issue.created_at).toISO() || "", + taskAssignees: issue.assignees ? issue.assignees.map((o) => o.id) : issue.assignee ? [issue.assignee.id] : [], + }; + if (!metadata.taskAssignees?.length) { + logger.error(`Missing Assignees from ${issue.html_url}`); + return false; + } + const durationInMs = parseTimeLabel(issue.labels); + if (durationInMs === 0) { + // it could mean there was no time label set on the issue + // but it could still be workable and priced + } + else if (durationInMs < 0 || !durationInMs) { + logger.error(`Invalid deadline found on ${issue.html_url}`); + return false; + } + // if there are no assignment events, we can assume the deadline is the issue creation date + metadata.startPlusLabelDuration = + DateTime.fromISO(mostRecentAssignmentEvent?.created_at || issue.created_at) + .plus({ milliseconds: durationInMs }) + .toISO() || ""; + return metadata; +} +function parseTimeLabel(labels) { + let taskTimeEstimate = 0; + for (const label of labels) { + let timeLabel = ""; + if (typeof label === "string") { + timeLabel = label; + } + else { + timeLabel = label.name || ""; + } + if (timeLabel.startsWith("Time:")) { + const matched = timeLabel.match(/Time: <(\d+) (\w+)/i); + if (!matched) { + return 0; + } + const [_, duration, unit] = matched; + taskTimeEstimate = ms_default()(`${duration} ${unit}`); + } + if (taskTimeEstimate) { + break; + } + } + return taskTimeEstimate; +} +function parsePriorityLabel(labels) { + for (const label of labels) { + let priorityLabel = ""; + if (typeof label === "string") { + priorityLabel = label; + } + else { + priorityLabel = label.name || ""; + } + if (priorityLabel.startsWith("Priority:")) { + const matched = priorityLabel.match(/Priority: (\d+)/i); + if (!matched) { + return 1; + } + return Number(matched[1]); + } + } + return 1; +} + +;// CONCATENATED MODULE: ./src/helpers/task-update.ts + + + + + + + + +const getMostRecentActivityDate = (assignedEventDate, activityEventDate) => { + return activityEventDate && activityEventDate > assignedEventDate ? activityEventDate : assignedEventDate; +}; +async function updateTaskReminder(context, repo, issue) { + const { octokit, logger, config: { eventWhitelist, warning, disqualification, prioritySpeed }, } = context; + const handledMetadata = await getTaskAssignmentDetails(context, repo, issue); + const now = DateTime.local(); + if (!handledMetadata) + return; + const assignmentEvents = await octokit.paginate(octokit.rest.issues.listEvents, { + owner: repo.owner.login, + repo: repo.name, + issue_number: issue.number, + }); + const assignedEvent = assignmentEvents + .filter((o) => o.event === "assigned" && handledMetadata.taskAssignees.includes(o.actor.id)) + .sort((a, b) => DateTime.fromISO(b.created_at).toMillis() - DateTime.fromISO(a.created_at).toMillis()) + .shift(); + if (!assignedEvent) { + logger.error(`Failed to update activity for ${issue.html_url}, there is no assigned event.`); + return; + } + const activityEvent = (await getAssigneesActivityForIssue(context, issue, handledMetadata.taskAssignees)) + .filter((o) => eventWhitelist.includes(o.event)) + .shift(); + const assignedDate = DateTime.fromISO(assignedEvent.created_at); + const priorityValue = parsePriorityLabel(issue.labels); + const priorityLevel = Math.max(1, priorityValue); + const activityDate = activityEvent?.created_at ? DateTime.fromISO(activityEvent.created_at) : undefined; + let mostRecentActivityDate = getMostRecentActivityDate(assignedDate, activityDate); + const linkedPrUrls = (await collectLinkedPullRequests(context, { issue_number: issue.number, repo: repo.name, owner: repo.owner.login })).map((o) => o.url); + linkedPrUrls.push(issue.html_url); + const lastReminders = await Promise.all(linkedPrUrls.map(async (url) => { + const { issue_number, owner, repo } = parseIssueUrl(url); + const comments = await getCommentsFromMetadata(context, issue_number, owner, repo, FOLLOWUP_HEADER); + return comments.filter((o) => DateTime.fromISO(o.created_at) > mostRecentActivityDate); + })); + const lastReminderComment = lastReminders.flat().shift(); + logger.debug(`Handling metadata and deadline for ${issue.html_url}`, { + now: now.toLocaleString(DateTime.DATETIME_MED), + assignedDate: DateTime.fromISO(assignedEvent.created_at).toLocaleString(DateTime.DATETIME_MED), + lastReminderComment: lastReminderComment ? DateTime.fromISO(lastReminderComment.created_at).toLocaleString(DateTime.DATETIME_MED) : "none", + mostRecentActivityDate: mostRecentActivityDate.toLocaleString(DateTime.DATETIME_MED), + }); + const disqualificationTimeDifference = disqualification - warning; + if (lastReminderComment) { + const lastReminderTime = DateTime.fromISO(lastReminderComment.created_at); + mostRecentActivityDate = lastReminderTime > mostRecentActivityDate ? lastReminderTime : mostRecentActivityDate; + if (mostRecentActivityDate.plus({ milliseconds: prioritySpeed ? disqualificationTimeDifference / priorityLevel : disqualificationTimeDifference }) <= now) { + await unassignUserFromIssue(context, issue); + } + else { + logger.info(`Reminder was sent for ${issue.html_url} already, not beyond disqualification deadline yet.`, { + now: now.toLocaleString(DateTime.DATETIME_MED), + assignedDate: DateTime.fromISO(assignedEvent.created_at).toLocaleString(DateTime.DATETIME_MED), + lastReminderComment: lastReminderComment ? DateTime.fromISO(lastReminderComment.created_at).toLocaleString(DateTime.DATETIME_MED) : "none", + mostRecentActivityDate: mostRecentActivityDate.toLocaleString(DateTime.DATETIME_MED), + }); + } + } + else { + if (mostRecentActivityDate.plus({ milliseconds: prioritySpeed ? warning / priorityLevel : warning }) <= now) { + await remindAssigneesForIssue(context, issue); + } + else { + logger.info(`Nothing to do for ${issue.html_url} still within due-time.`, { + now: now.toLocaleString(DateTime.DATETIME_MED), + assignedDate: DateTime.fromISO(assignedEvent.created_at).toLocaleString(DateTime.DATETIME_MED), + lastReminderComment: "none", + mostRecentActivityDate: mostRecentActivityDate.toLocaleString(DateTime.DATETIME_MED), + }); + } + } +} + +;// CONCATENATED MODULE: ./src/handlers/watch-user-activity.ts + + +async function watchUserActivity(context) { + const { logger } = context; + const repos = await getWatchedRepos(context); + if (!repos?.length) { + return { message: logger.info("No watched repos have been found, no work to do.").logMessage.raw }; + } + await Promise.all(repos.map(async (repo) => { + logger.debug(`> Watching user activity for repo: ${repo.name} (${repo.html_url})`); + await updateReminders(context, repo); + })); + return { message: "OK" }; +} +async function updateReminders(context, repo) { + const { logger, octokit, payload } = context; + const owner = payload.repository.owner?.login; + if (!owner) { + throw new Error("No owner found in the payload"); + } + const issues = await octokit.paginate(octokit.rest.issues.listForRepo, { + owner, + repo: repo.name, + per_page: 100, + state: "open", + }); + await Promise.all(issues.map(async (issue) => { + // I think we can safely ignore the following + if (issue.draft || issue.pull_request || issue.locked || issue.state !== "open") { + logger.debug(`Skipping issue ${issue.html_url} due to the issue not meeting the right criteria.`, { + draft: issue.draft, + pullRequest: !!issue.pull_request, + locked: issue.locked, + state: issue.state, + }); + return; + } + if (issue.assignees?.length || issue.assignee) { + logger.debug(`Checking assigned issue: ${issue.html_url}`); + await updateTaskReminder(context, repo, issue); + } + else { + logger.info(`Skipping issue ${issue.html_url} because no user is assigned.`); + } + })); +} + +;// CONCATENATED MODULE: ./src/run.ts + +async function run(context) { + context.logger.debug("Will run with the following configuration:", { configuration: context.config }); + return watchUserActivity(context); +} + +;// CONCATENATED MODULE: ./src/types/plugin-input.ts + + +function thresholdType(options) { + return Type.Transform(Type.String(options)) + .Decode((value) => { + const milliseconds = ms_default()(value); + if (milliseconds === undefined) { + throw new error_TypeBoxError(`Invalid threshold value: [${value}]`); + } + return milliseconds; + }) + .Encode((value) => { + const textThreshold = ms_default()(value, { long: true }); + if (textThreshold === undefined) { + throw new error_TypeBoxError(`Invalid threshold value: [${value}]`); + } + return textThreshold; + }); +} +const eventWhitelist = [ + "pull_request.review_requested", + "pull_request.ready_for_review", + "pull_request_review_comment.created", + "issue_comment.created", + "push", +]; +function mapWebhookToEvent(webhook) { + const roleMap = new Map([ + ["pull_request.review_requested", "review_requested"], + ["pull_request.ready_for_review", "ready_for_review"], + ["pull_request_review_comment.created", "commented"], + ["issue_comment.created", "commented"], + ["push", "committed"], + ]); + return roleMap.get(webhook); +} +const EventWhitelistType = Type.Union(eventWhitelist.map((event) => Type.Literal(event))); +const pluginSettingsSchema = Type.Object({ + /** + * Delay to send reminders. 0 means disabled. Any other value is counted in days, e.g. 1,5 days + */ + warning: thresholdType({ default: "3.5 days" }), + /** + * By default, all repositories are watched. Use this option to opt-out from watching specific repositories + * within your organization. The value is an array of repository names. + */ + watch: Type.Object({ + optOut: Type.Array(Type.String(), { default: [] }), + }, { default: {} }), + /* + * Whether to rush the follow ups by the priority level + */ + prioritySpeed: Type.Boolean({ default: true }), + /** + * Delay to unassign users. 0 means disabled. Any other value is counted in days, e.g. 7 days + */ + disqualification: thresholdType({ + default: "7 days", + }), + /** + * Whether a pull request is required for the given issue on disqualify. + */ + pullRequestRequired: Type.Boolean({ default: true }), + /** + * List of events to consider as valid activity on a task + */ + eventWhitelist: Type.Transform(Type.Array(Type.String(), { default: eventWhitelist })) + .Decode((value) => { + const validEvents = Object.values(eventWhitelist); + const eventsStripped = []; + for (const event of value) { + if (!validEvents.includes(event)) { + throw new error_TypeBoxError(`Invalid event [${event}] (unknown event)`); + } + const mappedEvent = mapWebhookToEvent(event); + if (!mappedEvent) { + throw new error_TypeBoxError(`Invalid event [${event}] (unmapped event)`); + } + if (!eventsStripped.includes(mappedEvent)) { + eventsStripped.push(mappedEvent); + } + } + return eventsStripped; + }) + .Encode((value) => value.map((event) => { + const roleMap = new Map([ + ["review_requested", "pull_request.review_requested"], + ["ready_for_review", "pull_request.ready_for_review"], + ["commented", "pull_request_review_comment.created"], + ["commented", "issue_comment.created"], + ["committed", "push"], + ]); + return roleMap.get(event); + })), +}, { default: {} }); +const envSchema = Type.Object({}); + +;// CONCATENATED MODULE: ./src/index.ts + + + + +createActionsPlugin((context) => { + return run(context); +}, { + envSchema: envSchema, + settingsSchema: pluginSettingsSchema, + logLevel: process.env.LOG_LEVEL || dist_LOG_LEVEL.INFO, + postCommentOnError: false, + ...(process.env.KERNEL_PUBLIC_KEY && { kernelPublicKey: process.env.KERNEL_PUBLIC_KEY }), +}).catch(console.error); + diff --git a/eslint.config.cjs b/eslint.config.cjs deleted file mode 100644 index 1e44234..0000000 --- a/eslint.config.cjs +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @type {import("eslint").Linter.Config} - */ -module.exports = { - root: true, - parser: "@typescript-eslint/parser", - parserOptions: { - project: ["./tsconfig.json"], - }, - plugins: ["@typescript-eslint", "sonarjs", "filename-rules"], - extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:sonarjs/recommended"], - ignorePatterns: ["**/*.js", "src/types/database.ts"], - rules: { - "filename-rules/match": [2, /^(e2e\.ts$|.*\/e2e\.ts$|[a-z]+(?:[-._a-z]+)*\.ts|\.[a-z]+)$/], - "prefer-arrow-callback": ["warn", { allowNamedFunctions: true }], - "func-style": ["warn", "declaration", { allowArrowFunctions: false }], - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-non-null-assertion": "error", - "constructor-super": "error", - "no-invalid-this": "off", - "@typescript-eslint/no-invalid-this": ["error"], - "no-restricted-syntax": ["error", "ForInStatement"], - "use-isnan": "error", - "no-unneeded-ternary": "error", - "no-nested-ternary": "error", - "@typescript-eslint/no-unused-vars": [ - "error", - { - args: "after-used", - ignoreRestSiblings: true, - vars: "all", - varsIgnorePattern: "^_", - argsIgnorePattern: "^_", - }, - ], - "@typescript-eslint/await-thenable": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "sonarjs/no-all-duplicated-branches": "error", - "sonarjs/no-collection-size-mischeck": "error", - "sonarjs/no-duplicated-branches": "error", - "sonarjs/no-element-overwrite": "error", - "sonarjs/no-identical-conditions": "error", - "sonarjs/no-identical-expressions": "error", - "@typescript-eslint/naming-convention": [ - "error", - { selector: "interface", format: ["StrictPascalCase"], custom: { regex: "^I[A-Z]", match: false } }, - { selector: "memberLike", modifiers: ["private"], format: ["strictCamelCase"], leadingUnderscore: "require" }, - { selector: "typeLike", format: ["StrictPascalCase"] }, - { selector: "typeParameter", format: ["StrictPascalCase"], prefix: ["T"] }, - { selector: "variable", format: ["strictCamelCase", "UPPER_CASE"], leadingUnderscore: "allow", trailingUnderscore: "allow" }, - { selector: "variable", format: ["strictCamelCase"], leadingUnderscore: "allow", trailingUnderscore: "allow" }, - { selector: "variable", modifiers: ["destructured"], format: null }, - { selector: "variable", types: ["boolean"], format: ["StrictPascalCase"], prefix: ["is", "should", "has", "can", "did", "will", "does"] }, - { selector: "variableLike", format: ["strictCamelCase"] }, - { selector: ["function", "variable"], format: ["strictCamelCase"] }, - ], - }, -}; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..847bd75 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,130 @@ +import tsEslint from "typescript-eslint"; +import eslint from "@eslint/js"; +import sonarjs from "eslint-plugin-sonarjs"; +import checkFile from "eslint-plugin-check-file"; + +export default tsEslint.config({ + plugins: { + "@typescript-eslint": tsEslint.plugin, + "check-file": checkFile, + }, + ignores: [".github/knip.ts", "src/adapters/supabase/types/database.ts", ".wrangler/**", "dist/**", "coverage/**", "tests/**"], + extends: [eslint.configs.recommended, ...tsEslint.configs.recommended, sonarjs.configs.recommended], + languageOptions: { + parser: tsEslint.parser, + parserOptions: { + projectService: { + defaultProject: "tsconfig.json", + allowDefaultProject: ["*.mjs"], + }, + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + "check-file/filename-naming-convention": [ + "error", + { + "**/*.{js,ts}": "+([-._a-z0-9])", + }, + ], + "prefer-arrow-callback": [ + "warn", + { + allowNamedFunctions: true, + }, + ], + "func-style": [ + "warn", + "declaration", + { + allowArrowFunctions: false, + }, + ], + "@typescript-eslint/no-floating-promises": "error", + "@typescript-eslint/no-non-null-assertion": "error", + "constructor-super": "error", + "no-invalid-this": "off", + "@typescript-eslint/no-invalid-this": ["error"], + "no-restricted-syntax": ["error", "ForInStatement"], + "use-isnan": "error", + "no-unneeded-ternary": "error", + "@typescript-eslint/no-unused-vars": [ + "error", + { + args: "after-used", + ignoreRestSiblings: true, + vars: "all", + varsIgnorePattern: "^_", + argsIgnorePattern: "^_", + }, + ], + "@typescript-eslint/await-thenable": "error", + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/restrict-plus-operands": "error", + "sonarjs/no-all-duplicated-branches": "error", + "sonarjs/no-collection-size-mischeck": "error", + "sonarjs/no-duplicated-branches": "error", + "sonarjs/no-element-overwrite": "error", + "sonarjs/no-identical-conditions": "error", + "sonarjs/no-identical-expressions": "error", + "sonarjs/new-cap": "off", + "sonarjs/different-types-comparison": "off", + "sonarjs/sonar-prefer-regexp-exec": "off", + "sonarjs/function-return-type": "off", + "sonarjs/no-misleading-array-reverse": "off", + "sonarjs/slow-regex": "off", + "sonarjs/no-nested-template-literals": "off", + "sonarjs/no-duplicate-string": "off", + "@typescript-eslint/naming-convention": [ + "error", + { + selector: "interface", + format: ["StrictPascalCase"], + custom: { + regex: "^I[A-Z]", + match: false, + }, + }, + { + selector: "memberLike", + modifiers: ["private"], + format: ["strictCamelCase"], + leadingUnderscore: "require", + }, + { + selector: "typeLike", + format: ["StrictPascalCase"], + }, + { + selector: "typeParameter", + format: ["StrictPascalCase"], + prefix: ["T"], + }, + { + selector: "variable", + format: ["strictCamelCase", "UPPER_CASE"], + leadingUnderscore: "allow", + trailingUnderscore: "allow", + }, + { + selector: "variable", + format: ["strictCamelCase"], + leadingUnderscore: "allow", + trailingUnderscore: "allow", + }, + { + selector: "variable", + modifiers: ["destructured"], + format: null, + }, + { + selector: "variableLike", + format: ["strictCamelCase"], + }, + { + selector: ["function", "variable"], + format: ["strictCamelCase"], + }, + ], + }, +}); diff --git a/jest.config.json b/jest.config.json deleted file mode 100644 index 6968f17..0000000 --- a/jest.config.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "preset": "ts-jest", - "testEnvironment": "node", - "roots": ["./tests"], - "coveragePathIgnorePatterns": ["node_modules", "mocks"], - "collectCoverage": true, - "coverageReporters": ["json", "lcov", "text", "clover", "json-summary"], - "reporters": ["default", "jest-junit", "jest-md-dashboard"], - "coverageDirectory": "coverage", - "setupFiles": ["dotenv/config"], - "extensionsToTreatAsEsm": [".ts"], - "moduleFileExtensions": ["ts", "js", "json", "node"], - "transform": { - "^.+\\.ts?$": [ - "ts-jest", - { - "useESM": true - } - ] - }, - "moduleNameMapper": { - "^(\\.{1,2}/.*)\\.js$": "$1" - } -} diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 0000000..5bb35e7 --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,24 @@ +import { JestConfigWithTsJest } from "ts-jest"; + +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + roots: ["./tests"], + coveragePathIgnorePatterns: ["node_modules", "mocks"], + collectCoverage: true, + coverageReporters: ["json", "lcov", "text", "clover", "json-summary"], + reporters: ["default", "jest-junit", "jest-md-dashboard"], + coverageDirectory: "coverage", + extensionsToTreatAsEsm: [".ts"], + moduleNameMapper: { + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + transform: { + "^.+\\.tsx?$": [ + "ts-jest", + { + useESM: true, + }, + ], + }, +} as JestConfigWithTsJest; diff --git a/package.json b/package.json index 252ef0a..e9cac9a 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "knip": "knip --config .github/knip.ts", "knip-ci": "knip --no-exit-code --reporter json --config .github/knip.ts", "prepare": "husky install", - "test": "yarn node --experimental-vm-modules $(yarn bin jest)", + "test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --setupFiles dotenv/config --coverage", "supabase:generate:local": "supabase gen types typescript --local > src/types/database.ts", "supabase:generate:remote": "cross-env-shell \"supabase gen types typescript --project-id $SUPABASE_PROJECT_ID --schema public > src/types/database.ts\"" }, @@ -32,9 +32,8 @@ "dependencies": { "@octokit/graphql-schema": "^15.25.0", "@octokit/rest": "^21.0.2", - "@octokit/webhooks": "^13.3.0", - "@sinclair/typebox": "^0.32.35", - "@ubiquity-os/ubiquity-os-kernel": "^2.5.2", + "@sinclair/typebox": "0.34.3", + "@ubiquity-os/plugin-sdk": "^1.1.0", "@ubiquity-os/ubiquity-os-logger": "^1.3.2", "dotenv": "16.4.5", "luxon": "3.4.4", @@ -45,8 +44,9 @@ "@commitlint/cli": "19.3.0", "@commitlint/config-conventional": "19.2.2", "@cspell/dict-node": "5.0.1", - "@cspell/dict-software-terms": "3.4.0", + "@cspell/dict-software-terms": "4.1.17", "@cspell/dict-typescript": "3.1.5", + "@eslint/js": "9.15.0", "@jest/globals": "^29.7.0", "@mswjs/data": "0.16.1", "@types/jest": "29.5.12", @@ -56,8 +56,9 @@ "cross-env": "7.0.3", "cspell": "8.8.3", "dotenv-cli": "7.4.2", - "eslint": "9.4.0", + "eslint": "9.15.0", "eslint-config-prettier": "9.1.0", + "eslint-plugin-check-file": "^2.8.0", "eslint-plugin-filename-rules": "1.3.1", "eslint-plugin-prettier": "5.1.3", "eslint-plugin-sonarjs": "1.0.3", @@ -71,7 +72,9 @@ "prettier": "3.3.0", "supabase": "1.176.9", "ts-jest": "29.1.4", - "typescript": "5.5.4" + "ts-node": "^10.9.2", + "typescript": "5.5.4", + "typescript-eslint": "^8.16.0" }, "lint-staged": { "*.ts": [ @@ -86,6 +89,5 @@ "extends": [ "@commitlint/config-conventional" ] - }, - "packageManager": "yarn@1.22.22" + } } diff --git a/src/handlers/watch-user-activity.ts b/src/handlers/watch-user-activity.ts index e654e0a..e3974ab 100644 --- a/src/handlers/watch-user-activity.ts +++ b/src/handlers/watch-user-activity.ts @@ -1,6 +1,6 @@ import { getWatchedRepos } from "../helpers/get-watched-repos"; import { updateTaskReminder } from "../helpers/task-update"; -import { ListForOrg, ListIssueForRepo } from "../types/github-types"; +import { ListForOrg } from "../types/github-types"; import { ContextPlugin } from "../types/plugin-input"; export async function watchUserActivity(context: ContextPlugin) { @@ -28,12 +28,12 @@ async function updateReminders(context: ContextPlugin, repo: ListForOrg["data"][ if (!owner) { throw new Error("No owner found in the payload"); } - const issues = (await octokit.paginate(octokit.rest.issues.listForRepo, { + const issues = await octokit.paginate(octokit.rest.issues.listForRepo, { owner, repo: repo.name, per_page: 100, state: "open", - })) as ListIssueForRepo[]; + }); await Promise.all( issues.map(async (issue) => { diff --git a/src/helpers/collect-linked-pulls.ts b/src/helpers/collect-linked-pulls.ts index dd79c9f..012871a 100644 --- a/src/helpers/collect-linked-pulls.ts +++ b/src/helpers/collect-linked-pulls.ts @@ -1,15 +1,15 @@ import { PullRequest, User, validate } from "@octokit/graphql-schema"; import { ContextPlugin } from "../types/plugin-input"; -type closedByPullRequestsReferences = { +type ClosedByPullRequestsReferences = { node: Pick & Pick; }; -type IssueWithClosedByPRs = { +type IssueWithClosedByPrs = { repository: { issue: { closedByPullRequestsReferences: { - edges: closedByPullRequestsReferences[]; + edges: ClosedByPullRequestsReferences[]; }; }; }; @@ -60,7 +60,7 @@ export async function collectLinkedPullRequests( } ) { const { owner, repo, issue_number } = issue; - const result = await context.octokit.graphql(query, { + const result = await context.octokit.graphql(query, { owner, repo, issue_number, diff --git a/src/helpers/get-assignee-activity.ts b/src/helpers/get-assignee-activity.ts index 95c9ceb..cee2d7d 100644 --- a/src/helpers/get-assignee-activity.ts +++ b/src/helpers/get-assignee-activity.ts @@ -33,13 +33,13 @@ export async function getAssigneesActivityForIssue(context: ContextPlugin, issue function filterEvents(issueEvents: GitHubTimelineEvents[], assigneeIds: number[]) { const userIdMap = new Map(); - let assigneeEvents = []; + const assigneeEvents = []; for (const event of issueEvents) { let actorId = null; let actorLogin = null; let createdAt = null; - let eventName = event.event; + const eventName = event.event; if ("actor" in event && event.actor) { actorLogin = event.actor.login.toLowerCase(); diff --git a/src/helpers/get-watched-repos.ts b/src/helpers/get-watched-repos.ts index 34753d0..f239829 100644 --- a/src/helpers/get-watched-repos.ts +++ b/src/helpers/get-watched-repos.ts @@ -1,5 +1,3 @@ -import { Context } from "@ubiquity-os/ubiquity-os-kernel"; -import { ListForOrg } from "../types/github-types"; import { ContextPlugin } from "../types/plugin-input"; export async function getWatchedRepos(context: ContextPlugin) { @@ -22,16 +20,16 @@ export async function getWatchedRepos(context: ContextPlugin) { return Array.from(repoNames) .map((name) => orgRepos.find((repo) => repo.name.toLowerCase() === name)) - .filter((repo) => repo !== undefined) as ListForOrg["data"]; + .filter((repo) => repo !== undefined); } -export async function getReposForOrg(context: Context, orgOrRepo: string) { +export async function getReposForOrg(context: ContextPlugin, orgOrRepo: string) { const { octokit } = context; try { - return (await octokit.paginate(octokit.rest.repos.listForOrg, { + return await octokit.paginate(octokit.rest.repos.listForOrg, { org: orgOrRepo, per_page: 100, - })) as ListForOrg["data"]; + }); } catch (er) { throw new Error(`Error getting repositories for org ${orgOrRepo}: ` + JSON.stringify(er)); } diff --git a/src/helpers/remind-and-remove.ts b/src/helpers/remind-and-remove.ts index 6fd57b0..02f6c55 100644 --- a/src/helpers/remind-and-remove.ts +++ b/src/helpers/remind-and-remove.ts @@ -1,4 +1,4 @@ -import { FOLLOWUP_HEADER, UNASSIGN_HEADER } from "../types/context"; +import { FOLLOWUP_HEADER, UNASSIGN_HEADER } from "../types/constants"; import { ListIssueForRepo } from "../types/github-types"; import { ContextPlugin } from "../types/plugin-input"; import { collectLinkedPullRequests } from "./collect-linked-pulls"; diff --git a/src/helpers/task-update.ts b/src/helpers/task-update.ts index 2d7ad0c..221ac37 100644 --- a/src/helpers/task-update.ts +++ b/src/helpers/task-update.ts @@ -1,6 +1,6 @@ import { RestEndpointMethodTypes } from "@octokit/rest"; import { DateTime } from "luxon"; -import { FOLLOWUP_HEADER } from "../types/context"; +import { FOLLOWUP_HEADER } from "../types/constants"; import { ListForOrg, ListIssueForRepo } from "../types/github-types"; import { ContextPlugin, TimelineEvent } from "../types/plugin-input"; import { collectLinkedPullRequests } from "./collect-linked-pulls"; diff --git a/src/index.ts b/src/index.ts index f43eab6..b47eb5b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,9 @@ import { LOG_LEVEL } from "@ubiquity-os/ubiquity-os-logger"; -import { createActionsPlugin } from "@ubiquity-os/ubiquity-os-kernel"; +import { createActionsPlugin } from "@ubiquity-os/plugin-sdk"; import { run } from "./run"; import { Env, envSchema, PluginSettings, pluginSettingsSchema, SupportedEvents } from "./types/plugin-input"; -createActionsPlugin( +createActionsPlugin( (context) => { return run(context); }, diff --git a/src/types/constants.ts b/src/types/constants.ts new file mode 100644 index 0000000..06afb06 --- /dev/null +++ b/src/types/constants.ts @@ -0,0 +1,2 @@ +export const FOLLOWUP_HEADER = "Followup"; +export const UNASSIGN_HEADER = "Unassign"; diff --git a/src/types/context.ts b/src/types/context.ts deleted file mode 100644 index 1a4adff..0000000 --- a/src/types/context.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Octokit } from "@octokit/rest"; -import { EmitterWebhookEvent as WebhookEvent } from "@octokit/webhooks"; -import { Logs } from "@ubiquity-os/ubiquity-os-logger"; -import { PluginSettings, SupportedEvents } from "./plugin-input"; - -export interface Context { - eventName: T; - payload: WebhookEvent["payload"]; - octokit: InstanceType; - config: PluginSettings; - logger: Logs; -} - -export const FOLLOWUP_HEADER = "Followup"; -export const UNASSIGN_HEADER = "Unassign"; diff --git a/src/types/plugin-input.ts b/src/types/plugin-input.ts index 97509b7..5ee1176 100644 --- a/src/types/plugin-input.ts +++ b/src/types/plugin-input.ts @@ -1,10 +1,10 @@ import { StaticDecode, StringOptions, Type as T, TypeBoxError } from "@sinclair/typebox"; -import { Context } from "@ubiquity-os/ubiquity-os-kernel"; +import { Context } from "@ubiquity-os/plugin-sdk"; import ms from "ms"; export type SupportedEvents = "pull_request_review_comment.created" | "issue_comment.created" | "push"; -export type ContextPlugin = Context; +export type ContextPlugin = Context; function thresholdType(options?: StringOptions) { return T.Transform(T.String(options)) @@ -48,8 +48,6 @@ function mapWebhookToEvent(webhook: WhitelistEvent) { return roleMap.get(webhook); } -const EventWhitelistType = T.Union(eventWhitelist.map((event) => T.Literal(event))); - export const pluginSettingsSchema = T.Object( { /** @@ -86,7 +84,7 @@ export const pluginSettingsSchema = T.Object( eventWhitelist: T.Transform(T.Array(T.String(), { default: eventWhitelist })) .Decode((value) => { const validEvents = Object.values(eventWhitelist); - let eventsStripped: TimelineEvent[] = []; + const eventsStripped: TimelineEvent[] = []; for (const event of value) { if (!validEvents.includes(event as WhitelistEvent)) { throw new TypeBoxError(`Invalid event [${event}] (unknown event)`); diff --git a/tests/__mocks__/helpers.ts b/tests/__mocks__/helpers.ts index 096112a..9fecfa2 100644 --- a/tests/__mocks__/helpers.ts +++ b/tests/__mocks__/helpers.ts @@ -1,7 +1,7 @@ import { db } from "./db"; import issueTemplate from "./issue-template"; import repoTemplate from "./repo-template"; -import { STRINGS, getIssueUrl, getIssueHtmlUrl } from "./strings"; +import { STRINGS, getIssueHtmlUrl } from "./strings"; export const ONE_DAY = 1000 * 60 * 60 * 24; diff --git a/tests/__mocks__/strings.ts b/tests/__mocks__/strings.ts index 1c596f4..8164b1c 100644 --- a/tests/__mocks__/strings.ts +++ b/tests/__mocks__/strings.ts @@ -1,4 +1,4 @@ -import { FOLLOWUP_HEADER } from "../../src/types/context"; +import { FOLLOWUP_HEADER } from "../../src/types/constants"; export const STRINGS = { UBIQUITY: "ubiquity", diff --git a/tests/main.test.ts b/tests/main.test.ts index cd4864d..f87ccac 100644 --- a/tests/main.test.ts +++ b/tests/main.test.ts @@ -1,6 +1,6 @@ import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, jest } from "@jest/globals"; import { drop } from "@mswjs/data"; -import { Octokit } from "@octokit/rest"; +import { customOctokit as Octokit } from "@ubiquity-os/plugin-sdk/octokit"; import { TypeBoxError } from "@sinclair/typebox"; import { TransformDecodeError, Value } from "@sinclair/typebox/value"; import { Logs } from "@ubiquity-os/ubiquity-os-logger"; @@ -8,14 +8,13 @@ import dotenv from "dotenv"; import ms from "ms"; import { collectLinkedPullRequests } from "../src/helpers/collect-linked-pulls"; import { run } from "../src/run"; -import { Context } from "../src/types/context"; import { ContextPlugin, pluginSettingsSchema } from "../src/types/plugin-input"; import { db } from "./__mocks__/db"; import { createComment, createEvent, createIssue, createRepo, ONE_DAY } from "./__mocks__/helpers"; import mockUsers from "./__mocks__/mock-users"; import { server } from "./__mocks__/node"; import cfg from "./__mocks__/results/valid-configuration.json"; -import { botAssignmentComment, botReminderComment, getIssueHtmlUrl, STRINGS } from "./__mocks__/strings"; +import { botReminderComment, getIssueHtmlUrl, STRINGS } from "./__mocks__/strings"; dotenv.config(); @@ -272,13 +271,15 @@ function daysPriorToNow(days: number) { function createContext(issueId: number, senderId: number, optOut = [STRINGS.PRIVATE_REPO_NAME]): ContextPlugin { return { payload: { - issue: db.issue.findFirst({ where: { id: { equals: issueId } } }) as unknown as Context<"issue_comment.created">["payload"]["issue"], - sender: db.users.findFirst({ where: { id: { equals: senderId } } }) as unknown as Context<"issue_comment.created">["payload"]["sender"], - repository: db.repo.findFirst({ where: { id: { equals: 1 } } }) as unknown as Context<"issue_comment.created">["payload"]["repository"], + issue: db.issue.findFirst({ where: { id: { equals: issueId } } }) as unknown as ContextPlugin<"issue_comment.created">["payload"]["issue"], + sender: db.users.findFirst({ where: { id: { equals: senderId } } }) as unknown as ContextPlugin<"issue_comment.created">["payload"]["sender"], + repository: db.repo.findFirst({ where: { id: { equals: 1 } } }) as unknown as ContextPlugin<"issue_comment.created">["payload"]["repository"], action: "created", - installation: { id: 1 } as unknown as Context["payload"]["installation"], - organization: { login: STRINGS.UBIQUITY } as unknown as Context["payload"]["organization"], - comment: db.issueComments.findFirst({ where: { issueId: { equals: issueId } } }) as unknown as Context<"issue_comment.created">["payload"]["comment"], + installation: { id: 1 } as unknown as ContextPlugin["payload"]["installation"], + organization: { login: STRINGS.UBIQUITY } as unknown as ContextPlugin["payload"]["organization"], + comment: db.issueComments.findFirst({ + where: { issueId: { equals: issueId } }, + }) as unknown as ContextPlugin<"issue_comment.created">["payload"]["comment"], }, logger: new Logs("debug"), config: { @@ -289,9 +290,9 @@ function createContext(issueId: number, senderId: number, optOut = [STRINGS.PRIV eventWhitelist: ["review_requested", "ready_for_review", "commented", "committed"], pullRequestRequired: false, }, - // @ts-expect-error ESM causes types to not match - octokit: new Octokit(), + octokit: new Octokit({ throttle: { enabled: false } }), eventName: "issue_comment.created", env: {}, + command: null, }; } diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 543f657..0000000 --- a/yarn.lock +++ /dev/null @@ -1,5856 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@actions/core@1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a" - integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g== - dependencies: - "@actions/http-client" "^2.0.1" - uuid "^8.3.2" - -"@actions/github@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@actions/github/-/github-6.0.0.tgz#65883433f9d81521b782a64cc1fd45eef2191ea7" - integrity sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g== - dependencies: - "@actions/http-client" "^2.2.0" - "@octokit/core" "^5.0.1" - "@octokit/plugin-paginate-rest" "^9.0.0" - "@octokit/plugin-rest-endpoint-methods" "^10.0.0" - -"@actions/http-client@^2.0.1", "@actions/http-client@^2.2.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.3.tgz#31fc0b25c0e665754ed39a9f19a8611fc6dab674" - integrity sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA== - dependencies: - tunnel "^0.0.6" - undici "^5.25.4" - -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.7.tgz#438f2c524071531d643c6f0188e1e28f130cebc7" - integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== - dependencies: - "@babel/highlight" "^7.25.7" - picocolors "^1.0.0" - -"@babel/compat-data@^7.25.7": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.8.tgz#0376e83df5ab0eb0da18885c0140041f0747a402" - integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.8.tgz#a57137d2a51bbcffcfaeba43cb4dd33ae3e0e1c6" - integrity sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.25.7" - "@babel/generator" "^7.25.7" - "@babel/helper-compilation-targets" "^7.25.7" - "@babel/helper-module-transforms" "^7.25.7" - "@babel/helpers" "^7.25.7" - "@babel/parser" "^7.25.8" - "@babel/template" "^7.25.7" - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.8" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.25.7", "@babel/generator@^7.7.2": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.7.tgz#de86acbeb975a3e11ee92dd52223e6b03b479c56" - integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA== - dependencies: - "@babel/types" "^7.25.7" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" - -"@babel/helper-compilation-targets@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz#11260ac3322dda0ef53edfae6e97b961449f5fa4" - integrity sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A== - dependencies: - "@babel/compat-data" "^7.25.7" - "@babel/helper-validator-option" "^7.25.7" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-module-imports@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz#dba00d9523539152906ba49263e36d7261040472" - integrity sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw== - dependencies: - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/helper-module-transforms@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz#2ac9372c5e001b19bc62f1fe7d96a18cb0901d1a" - integrity sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ== - dependencies: - "@babel/helper-module-imports" "^7.25.7" - "@babel/helper-simple-access" "^7.25.7" - "@babel/helper-validator-identifier" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.8.0": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz#8ec5b21812d992e1ef88a9b068260537b6f0e36c" - integrity sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw== - -"@babel/helper-simple-access@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz#5eb9f6a60c5d6b2e0f76057004f8dacbddfae1c0" - integrity sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ== - dependencies: - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/helper-string-parser@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54" - integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== - -"@babel/helper-validator-identifier@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5" - integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== - -"@babel/helper-validator-option@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz#97d1d684448228b30b506d90cace495d6f492729" - integrity sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ== - -"@babel/helpers@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.7.tgz#091b52cb697a171fe0136ab62e54e407211f09c2" - integrity sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA== - dependencies: - "@babel/template" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/highlight@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.7.tgz#20383b5f442aa606e7b5e3043b0b1aafe9f37de5" - integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== - dependencies: - "@babel/helper-validator-identifier" "^7.25.7" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.7", "@babel/parser@^7.25.8": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.8.tgz#f6aaf38e80c36129460c1657c0762db584c9d5e2" - integrity sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ== - dependencies: - "@babel/types" "^7.25.8" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz#d78dd0499d30df19a598e63ab895e21b909bc43f" - integrity sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz#5352d398d11ea5e7ef330c854dea1dae0bf18165" - integrity sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz#bfc05b0cc31ebd8af09964650cee723bb228108b" - integrity sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/runtime@^7.21.0": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.7.tgz#7ffb53c37a8f247c8c4d335e89cdf16a2e0d0fb6" - integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.25.7", "@babel/template@^7.3.3": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.7.tgz#27f69ce382855d915b14ab0fe5fb4cbf88fa0769" - integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA== - dependencies: - "@babel/code-frame" "^7.25.7" - "@babel/parser" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/traverse@^7.25.7": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8" - integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== - dependencies: - "@babel/code-frame" "^7.25.7" - "@babel/generator" "^7.25.7" - "@babel/parser" "^7.25.7" - "@babel/template" "^7.25.7" - "@babel/types" "^7.25.7" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.7", "@babel/types@^7.25.8", "@babel/types@^7.3.3": - version "7.25.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.8.tgz#5cf6037258e8a9bcad533f4979025140cb9993e1" - integrity sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg== - dependencies: - "@babel/helper-string-parser" "^7.25.7" - "@babel/helper-validator-identifier" "^7.25.7" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@bundled-es-modules/cookie@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz#c3b82703969a61cf6a46e959a012b2c257f6b164" - integrity sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw== - dependencies: - cookie "^0.5.0" - -"@bundled-es-modules/statuses@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz#761d10f44e51a94902c4da48675b71a76cc98872" - integrity sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg== - dependencies: - statuses "^2.0.1" - -"@bundled-es-modules/tough-cookie@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz#fa9cd3cedfeecd6783e8b0d378b4a99e52bde5d3" - integrity sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw== - dependencies: - "@types/tough-cookie" "^4.0.5" - tough-cookie "^4.1.4" - -"@cfworker/json-schema@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@cfworker/json-schema/-/json-schema-2.0.1.tgz#563463393a1f19b06732491e604e0cc8255baf8a" - integrity sha512-1w7xVrTFjAWBVaOWRH5AMdKpJdltF4iy/d93E7qj8Rox6yY9OzEW1aC7T5eONrDOxXrlnsclPw9v24XW2c0mkg== - -"@commitlint/cli@19.3.0": - version "19.3.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.3.0.tgz#44e6da9823a01f0cdcc43054bbefdd2c6c5ddf39" - integrity sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g== - dependencies: - "@commitlint/format" "^19.3.0" - "@commitlint/lint" "^19.2.2" - "@commitlint/load" "^19.2.0" - "@commitlint/read" "^19.2.1" - "@commitlint/types" "^19.0.3" - execa "^8.0.1" - yargs "^17.0.0" - -"@commitlint/config-conventional@19.2.2": - version "19.2.2" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-19.2.2.tgz#1f4e6975d428985deacf2b3ff6547e02c9302054" - integrity sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw== - dependencies: - "@commitlint/types" "^19.0.3" - conventional-changelog-conventionalcommits "^7.0.2" - -"@commitlint/config-validator@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-19.5.0.tgz#f0a4eda2109fc716ef01bb8831af9b02e3a1e568" - integrity sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw== - dependencies: - "@commitlint/types" "^19.5.0" - ajv "^8.11.0" - -"@commitlint/ensure@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-19.5.0.tgz#b087374a6a0a0140e5925a82901d234885d9f6dd" - integrity sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg== - dependencies: - "@commitlint/types" "^19.5.0" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.upperfirst "^4.3.1" - -"@commitlint/execute-rule@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz#c13da8c03ea0379f30856111e27d57518e25b8a2" - integrity sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg== - -"@commitlint/format@^19.3.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-19.5.0.tgz#d879db2d97d70ae622397839fb8603d56e85a250" - integrity sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A== - dependencies: - "@commitlint/types" "^19.5.0" - chalk "^5.3.0" - -"@commitlint/is-ignored@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz#f8b7f365887acc1e3bdb31b17117bb435585dddf" - integrity sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w== - dependencies: - "@commitlint/types" "^19.5.0" - semver "^7.6.0" - -"@commitlint/lint@^19.2.2": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-19.5.0.tgz#f4e162e7857a1c0694b20b92527704897558ff70" - integrity sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg== - dependencies: - "@commitlint/is-ignored" "^19.5.0" - "@commitlint/parse" "^19.5.0" - "@commitlint/rules" "^19.5.0" - "@commitlint/types" "^19.5.0" - -"@commitlint/load@^19.2.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.5.0.tgz#67f90a294894d1f99b930b6152bed2df44a81794" - integrity sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA== - dependencies: - "@commitlint/config-validator" "^19.5.0" - "@commitlint/execute-rule" "^19.5.0" - "@commitlint/resolve-extends" "^19.5.0" - "@commitlint/types" "^19.5.0" - chalk "^5.3.0" - cosmiconfig "^9.0.0" - cosmiconfig-typescript-loader "^5.0.0" - lodash.isplainobject "^4.0.6" - lodash.merge "^4.6.2" - lodash.uniq "^4.5.0" - -"@commitlint/message@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-19.5.0.tgz#c062d9a1d2b3302c3a8cac25d6d1125ea9c019b2" - integrity sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ== - -"@commitlint/parse@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-19.5.0.tgz#b450dad9b5a95ac5ba472d6d0fdab822dce946fc" - integrity sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw== - dependencies: - "@commitlint/types" "^19.5.0" - conventional-changelog-angular "^7.0.0" - conventional-commits-parser "^5.0.0" - -"@commitlint/read@^19.2.1": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-19.5.0.tgz#601f9f1afe69852b0f28aa81cd455b40979fad6b" - integrity sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ== - dependencies: - "@commitlint/top-level" "^19.5.0" - "@commitlint/types" "^19.5.0" - git-raw-commits "^4.0.0" - minimist "^1.2.8" - tinyexec "^0.3.0" - -"@commitlint/resolve-extends@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz#f3ec33e12d10df90cae0bfad8e593431fb61b18e" - integrity sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA== - dependencies: - "@commitlint/config-validator" "^19.5.0" - "@commitlint/types" "^19.5.0" - global-directory "^4.0.1" - import-meta-resolve "^4.0.0" - lodash.mergewith "^4.6.2" - resolve-from "^5.0.0" - -"@commitlint/rules@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-19.5.0.tgz#2a72ab506d49d7f33eda56f0ae072a3479429e74" - integrity sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw== - dependencies: - "@commitlint/ensure" "^19.5.0" - "@commitlint/message" "^19.5.0" - "@commitlint/to-lines" "^19.5.0" - "@commitlint/types" "^19.5.0" - -"@commitlint/to-lines@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-19.5.0.tgz#e4b7f34f09064568c96a74de4f1fc9f466c4d472" - integrity sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ== - -"@commitlint/top-level@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-19.5.0.tgz#0017ffe39b5ba3611a1debd62efe28803601a14f" - integrity sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng== - dependencies: - find-up "^7.0.0" - -"@commitlint/types@^19.0.3", "@commitlint/types@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-19.5.0.tgz#c5084d1231d4dd50e40bdb656ee7601f691400b3" - integrity sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg== - dependencies: - "@types/conventional-commits-parser" "^5.0.0" - chalk "^5.3.0" - -"@cspell/cspell-bundled-dicts@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.8.3.tgz#829f9dfeb019bbf23b84c985e139985b3267d423" - integrity sha512-nRa30TQwE4R5xcM6CBibM2l7D359ympexjm7OrykzYmStIiiudDIsuNOIXGBrDouxRFgKGAa/ETo1g+Pxz7kNA== - dependencies: - "@cspell/dict-ada" "^4.0.2" - "@cspell/dict-aws" "^4.0.2" - "@cspell/dict-bash" "^4.1.3" - "@cspell/dict-companies" "^3.1.0" - "@cspell/dict-cpp" "^5.1.6" - "@cspell/dict-cryptocurrencies" "^5.0.0" - "@cspell/dict-csharp" "^4.0.2" - "@cspell/dict-css" "^4.0.12" - "@cspell/dict-dart" "^2.0.3" - "@cspell/dict-django" "^4.1.0" - "@cspell/dict-docker" "^1.1.7" - "@cspell/dict-dotnet" "^5.0.2" - "@cspell/dict-elixir" "^4.0.3" - "@cspell/dict-en-common-misspellings" "^2.0.1" - "@cspell/dict-en-gb" "1.1.33" - "@cspell/dict-en_us" "^4.3.20" - "@cspell/dict-filetypes" "^3.0.4" - "@cspell/dict-fonts" "^4.0.0" - "@cspell/dict-fsharp" "^1.0.1" - "@cspell/dict-fullstack" "^3.1.8" - "@cspell/dict-gaming-terms" "^1.0.5" - "@cspell/dict-git" "^3.0.0" - "@cspell/dict-golang" "^6.0.9" - "@cspell/dict-google" "^1.0.0" - "@cspell/dict-haskell" "^4.0.1" - "@cspell/dict-html" "^4.0.5" - "@cspell/dict-html-symbol-entities" "^4.0.0" - "@cspell/dict-java" "^5.0.6" - "@cspell/dict-julia" "^1.0.1" - "@cspell/dict-k8s" "^1.0.3" - "@cspell/dict-latex" "^4.0.0" - "@cspell/dict-lorem-ipsum" "^4.0.0" - "@cspell/dict-lua" "^4.0.3" - "@cspell/dict-makefile" "^1.0.0" - "@cspell/dict-monkeyc" "^1.0.6" - "@cspell/dict-node" "^5.0.1" - "@cspell/dict-npm" "^5.0.16" - "@cspell/dict-php" "^4.0.7" - "@cspell/dict-powershell" "^5.0.4" - "@cspell/dict-public-licenses" "^2.0.6" - "@cspell/dict-python" "^4.1.11" - "@cspell/dict-r" "^2.0.1" - "@cspell/dict-ruby" "^5.0.2" - "@cspell/dict-rust" "^4.0.3" - "@cspell/dict-scala" "^5.0.2" - "@cspell/dict-software-terms" "^3.3.23" - "@cspell/dict-sql" "^2.1.3" - "@cspell/dict-svelte" "^1.0.2" - "@cspell/dict-swift" "^2.0.1" - "@cspell/dict-terraform" "^1.0.0" - "@cspell/dict-typescript" "^3.1.5" - "@cspell/dict-vue" "^3.0.0" - -"@cspell/cspell-json-reporter@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.8.3.tgz#65cf01f6ccde66a2af44b3523ba188cbb0393eff" - integrity sha512-XP8x446IO9iHKvEN1IrJwOC5wC2uwmbdgFiUiXfzPSAlPfRWBmzOR68UR0Z6LNpm1GB4sUxxQkx2CRqDyGaSng== - dependencies: - "@cspell/cspell-types" "8.8.3" - -"@cspell/cspell-pipe@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-8.8.3.tgz#7f4bbd62634b4d1ea3f3bd83cc6bac458f91e9cd" - integrity sha512-tzngpFKXeUsdTZEErffTlwUnPIKYgyRKy0YTrD77EkhyDSbUnaS8JWqtGZbKV7iQ+R4CL7tiaubPjUzkbWj+kQ== - -"@cspell/cspell-resolver@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-resolver/-/cspell-resolver-8.8.3.tgz#7d6e5eae2d776ba7dac1ffd400c47fa5b4991392" - integrity sha512-pMOB2MJYeria0DeW1dsehRPIHLzoOXCm1Cdjp1kRZ931PbqNCYaE/GM6laWpUTAbS9Ly2tv4g0jK3PUH8ZTtJA== - dependencies: - global-directory "^4.0.1" - -"@cspell/cspell-service-bus@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-service-bus/-/cspell-service-bus-8.8.3.tgz#e215940851fd32fc2c1a8c5f8eaf820d69217648" - integrity sha512-QVKe/JZvoTaaBAMXG40HjZib1g6rGgxk03e070GmdfCiMRUCWFtK+9DKVYJfSqjQhzj/eDCrq8aWplHWy66umg== - -"@cspell/cspell-types@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-8.8.3.tgz#61cc8a279858bc7d7a3589ca2efc1cd11ae3b2ef" - integrity sha512-31wYSBPinhqKi9TSzPg50fWHJmMQwD1d5p26yM/NAfNQvjAfBQlrg4pqix8pxOJkAK5W/TnoaVXjzJ5XCg6arQ== - -"@cspell/dict-ada@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-ada/-/dict-ada-4.0.5.tgz#c14aae2faaecbad2d99f0d701e4700a48c68ef60" - integrity sha512-6/RtZ/a+lhFVmrx/B7bfP7rzC4yjEYe8o74EybXcvu4Oue6J4Ey2WSYj96iuodloj1LWrkNCQyX5h4Pmcj0Iag== - -"@cspell/dict-aws@^4.0.2": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-4.0.7.tgz#f96f3b70cd52a25b895eb08e297de5a5cc3fc5b6" - integrity sha512-PoaPpa2NXtSkhGIMIKhsJUXB6UbtTt6Ao3x9JdU9kn7fRZkwD4RjHDGqulucIOz7KeEX/dNRafap6oK9xHe4RA== - -"@cspell/dict-bash@^4.1.3": - version "4.1.8" - resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-4.1.8.tgz#26dc898e06eddea069cf1ad475ee0e867c89e632" - integrity sha512-I2CM2pTNthQwW069lKcrVxchJGMVQBzru2ygsHCwgidXRnJL/NTjAPOFTxN58Jc1bf7THWghfEDyKX/oyfc0yg== - -"@cspell/dict-companies@^3.1.0": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.1.7.tgz#c9abd6f5293f103062f54dde01f2bee939189f79" - integrity sha512-ncVs/efuAkP1/tLDhWbXukBjgZ5xOUfe03neHMWsE8zvXXc5+Lw6TX5jaJXZLOoES/f4j4AhRE20jsPCF5pm+A== - -"@cspell/dict-cpp@^5.1.6": - version "5.1.22" - resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.1.22.tgz#ee14d2b193c0a25dc58c609979f1500cd2f6e870" - integrity sha512-g1/8P5/Q+xnIc8Js4UtBg3XOhcFrFlFbG3UWVtyEx49YTf0r9eyDtDt1qMMDBZT91pyCwLcAEbwS+4i5PIfNZw== - -"@cspell/dict-cryptocurrencies@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.3.tgz#502f9fffcb2835a3379668ddebdc487678ce6207" - integrity sha512-bl5q+Mk+T3xOZ12+FG37dB30GDxStza49Rmoax95n37MTLksk9wBo1ICOlPJ6PnDUSyeuv4SIVKgRKMKkJJglA== - -"@cspell/dict-csharp@^4.0.2": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-csharp/-/dict-csharp-4.0.5.tgz#c677c50be09ca5bb3a2cc0be15f3cd05141fd2f7" - integrity sha512-c/sFnNgtRwRJxtC3JHKkyOm+U3/sUrltFeNwml9VsxKBHVmvlg4tk4ar58PdpW9/zTlGUkWi2i85//DN1EsUCA== - -"@cspell/dict-css@^4.0.12": - version "4.0.16" - resolved "https://registry.yarnpkg.com/@cspell/dict-css/-/dict-css-4.0.16.tgz#b7b87b5ea0f1157b023205bdb00070a7d231e367" - integrity sha512-70qu7L9z/JR6QLyJPk38fNTKitlIHnfunx0wjpWQUQ8/jGADIhMCrz6hInBjqPNdtGpYm8d1dNFyF8taEkOgrQ== - -"@cspell/dict-dart@^2.0.3": - version "2.2.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-dart/-/dict-dart-2.2.4.tgz#8b877161ccdc65cead912b742b71aa55099c1706" - integrity sha512-of/cVuUIZZK/+iqefGln8G3bVpfyN6ZtH+LyLkHMoR5tEj+2vtilGNk9ngwyR8L4lEqbKuzSkOxgfVjsXf5PsQ== - -"@cspell/dict-data-science@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-data-science/-/dict-data-science-2.0.5.tgz#816e9b394c2a423d14cdc9a5de5d6fc6141d3900" - integrity sha512-nNSILXmhSJox9/QoXICPQgm8q5PbiSQP4afpbkBqPi/u/b3K9MbNH5HvOOa6230gxcGdbZ9Argl2hY/U8siBlg== - -"@cspell/dict-django@^4.1.0": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-django/-/dict-django-4.1.3.tgz#a02a4a9ef8c9f47344f2d4a0c3964bcb62069ef5" - integrity sha512-yBspeL3roJlO0a1vKKNaWABURuHdHZ9b1L8d3AukX0AsBy9snSggc8xCavPmSzNfeMDXbH+1lgQiYBd3IW03fg== - -"@cspell/dict-docker@^1.1.7": - version "1.1.11" - resolved "https://registry.yarnpkg.com/@cspell/dict-docker/-/dict-docker-1.1.11.tgz#6fce86eb6d86d73f77e18d3e7b9747bad3ca98de" - integrity sha512-s0Yhb16/R+UT1y727ekbR/itWQF3Qz275DR1ahOa66wYtPjHUXmhM3B/LT3aPaX+hD6AWmK23v57SuyfYHUjsw== - -"@cspell/dict-dotnet@^5.0.2": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@cspell/dict-dotnet/-/dict-dotnet-5.0.8.tgz#8a110ca302946025e0273a9940079483ec33a88a" - integrity sha512-MD8CmMgMEdJAIPl2Py3iqrx3B708MbCIXAuOeZ0Mzzb8YmLmiisY7QEYSZPg08D7xuwARycP0Ki+bb0GAkFSqg== - -"@cspell/dict-elixir@^4.0.3": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@cspell/dict-elixir/-/dict-elixir-4.0.6.tgz#3d8965c558d8afd190356e9a900b02c546741feb" - integrity sha512-TfqSTxMHZ2jhiqnXlVKM0bUADtCvwKQv2XZL/DI0rx3doG8mEMS8SGPOmiyyGkHpR/pGOq18AFH3BEm4lViHIw== - -"@cspell/dict-en-common-misspellings@^2.0.1": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.7.tgz#62861cc9e813c947ebd71c7a50fc720767b4b543" - integrity sha512-qNFo3G4wyabcwnM+hDrMYKN9vNVg/k9QkhqSlSst6pULjdvPyPs1mqz1689xO/v9t8e6sR4IKc3CgUXDMTYOpA== - -"@cspell/dict-en-gb@1.1.33": - version "1.1.33" - resolved "https://registry.yarnpkg.com/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz#7f1fd90fc364a5cb77111b5438fc9fcf9cc6da0e" - integrity sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g== - -"@cspell/dict-en_us@^4.3.20": - version "4.3.26" - resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.26.tgz#f0d2c9492715e85b60a78f62f03918525639aa48" - integrity sha512-hDbHYJsi3UgU1J++B0WLiYhWQdsmve3CH53FIaMRAdhrWOHcuw7h1dYkQXHFEP5lOjaq53KUHp/oh5su6VkIZg== - -"@cspell/dict-filetypes@^3.0.4": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@cspell/dict-filetypes/-/dict-filetypes-3.0.7.tgz#bd79078e35f01ee6d86bb9c5ebe811cb7ee1c0d9" - integrity sha512-/DN0Ujp9/EXvpTcgih9JmBaE8n+G0wtsspyNdvHT5luRfpfol1xm/CIQb6xloCXCiLkWX+EMPeLSiVIZq+24dA== - -"@cspell/dict-fonts@^4.0.0": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-fonts/-/dict-fonts-4.0.3.tgz#abf578c10a2e7b2bd8f4374002677625288560d9" - integrity sha512-sPd17kV5qgYXLteuHFPn5mbp/oCHKgitNfsZLFC3W2fWEgZlhg4hK+UGig3KzrYhhvQ8wBnmZrAQm0TFKCKzsA== - -"@cspell/dict-fsharp@^1.0.1": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-fsharp/-/dict-fsharp-1.0.4.tgz#19a7263a61ca89cd3ec9c17537e424907b81ef38" - integrity sha512-G5wk0o1qyHUNi9nVgdE1h5wl5ylq7pcBjX8vhjHcO4XBq20D5eMoXjwqMo/+szKAqzJ+WV3BgAL50akLKrT9Rw== - -"@cspell/dict-fullstack@^3.1.8": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-3.2.3.tgz#f6fff74eff00c6759cba510168acada0619004cc" - integrity sha512-62PbndIyQPH11mAv0PyiyT0vbwD0AXEocPpHlCHzfb5v9SspzCCbzQ/LIBiFmyRa+q5LMW35CnSVu6OXdT+LKg== - -"@cspell/dict-gaming-terms@^1.0.5": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.8.tgz#fb8a737f61e7cf560b4de7b2aaeae952f2550398" - integrity sha512-7OL0zTl93WFWhhtpXFrtm9uZXItC3ncAs8d0iQDMMFVNU1rBr6raBNxJskxE5wx2Ant12fgI66ZGVagXfN+yfA== - -"@cspell/dict-git@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-3.0.3.tgz#3a3805ab9902bffc9255ec48f648145b957eb30b" - integrity sha512-LSxB+psZ0qoj83GkyjeEH/ZViyVsGEF/A6BAo8Nqc0w0HjD2qX/QR4sfA6JHUgQ3Yi/ccxdK7xNIo67L2ScW5A== - -"@cspell/dict-golang@^6.0.9": - version "6.0.16" - resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-6.0.16.tgz#b247a801404f9a65e7c8674893bdb5aad42353a2" - integrity sha512-hZOBlgcguv2Hdc93n2zjdAQm1j3grsN9T9WhPnQ1wh2vUDoCLEujg+6gWhjcLb8ECOcwZTWgNyQLWeOxEsAj/w== - -"@cspell/dict-google@^1.0.0": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-google/-/dict-google-1.0.4.tgz#e15a7ea2dee73800231a81840a59d3b50d49346f" - integrity sha512-JThUT9eiguCja1mHHLwYESgxkhk17Gv7P3b1S7ZJzXw86QyVHPrbpVoMpozHk0C9o+Ym764B7gZGKmw9uMGduQ== - -"@cspell/dict-haskell@^4.0.1": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-haskell/-/dict-haskell-4.0.4.tgz#37e9cb9a7f5be337a697bcffd0a0d25e80aab50d" - integrity sha512-EwQsedEEnND/vY6tqRfg9y7tsnZdxNqOxLXSXTsFA6JRhUlr8Qs88iUUAfsUzWc4nNmmzQH2UbtT25ooG9x4nA== - -"@cspell/dict-html-symbol-entities@^4.0.0": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.3.tgz#bf2887020ca4774413d8b1f27c9b6824ba89e9ef" - integrity sha512-aABXX7dMLNFdSE8aY844X4+hvfK7977sOWgZXo4MTGAmOzR8524fjbJPswIBK7GaD3+SgFZ2yP2o0CFvXDGF+A== - -"@cspell/dict-html@^4.0.5": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-4.0.9.tgz#b400a777e347e9437105f088d48f44eb268a5a9f" - integrity sha512-BNp7w3m910K4qIVyOBOZxHuFNbVojUY6ES8Y8r7YjYgJkm2lCuQoVwwhPjurnomJ7BPmZTb+3LLJ58XIkgF7JQ== - -"@cspell/dict-java@^5.0.6": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@cspell/dict-java/-/dict-java-5.0.10.tgz#e6383ca645046b9f05a04a2c2e858fcc80c6fc63" - integrity sha512-pVNcOnmoGiNL8GSVq4WbX/Vs2FGS0Nej+1aEeGuUY9CU14X8yAVCG+oih5ZoLt1jaR8YfR8byUF8wdp4qG4XIw== - -"@cspell/dict-julia@^1.0.1": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-julia/-/dict-julia-1.0.4.tgz#e478c20d742cd6857b6de41dc61a92036dafb4bc" - integrity sha512-bFVgNX35MD3kZRbXbJVzdnN7OuEqmQXGpdOi9jzB40TSgBTlJWA4nxeAKV4CPCZxNRUGnLH0p05T/AD7Aom9/w== - -"@cspell/dict-k8s@^1.0.3": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@cspell/dict-k8s/-/dict-k8s-1.0.9.tgz#e9392a002797c67ffc3e96893156cc15af3774d1" - integrity sha512-Q7GELSQIzo+BERl2ya/nBEnZeQC+zJP19SN1pI6gqDYraM51uYJacbbcWLYYO2Y+5joDjNt/sd/lJtLaQwoSlA== - -"@cspell/dict-latex@^4.0.0": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-latex/-/dict-latex-4.0.3.tgz#a1254c7d9c3a2d70cd6391a9f2f7694431b1b2cb" - integrity sha512-2KXBt9fSpymYHxHfvhUpjUFyzrmN4c4P8mwIzweLyvqntBT3k0YGZJSriOdjfUjwSygrfEwiuPI1EMrvgrOMJw== - -"@cspell/dict-lorem-ipsum@^4.0.0": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.3.tgz#c5fc631d934f1daf8b10c88b795278701a2469ec" - integrity sha512-WFpDi/PDYHXft6p0eCXuYnn7mzMEQLVeqpO+wHSUd+kz5ADusZ4cpslAA4wUZJstF1/1kMCQCZM6HLZic9bT8A== - -"@cspell/dict-lua@^4.0.3": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@cspell/dict-lua/-/dict-lua-4.0.6.tgz#7de412bfaead794445e26d566aec222e20ad69ba" - integrity sha512-Jwvh1jmAd9b+SP9e1GkS2ACbqKKRo9E1f9GdjF/ijmooZuHU0hPyqvnhZzUAxO1egbnNjxS/J2T6iUtjAUK2KQ== - -"@cspell/dict-makefile@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-makefile/-/dict-makefile-1.0.3.tgz#08d3349bf7cbd8f5dacf8641f3d35092ca0b8b38" - integrity sha512-R3U0DSpvTs6qdqfyBATnePj9Q/pypkje0Nj26mQJ8TOBQutCRAJbr2ZFAeDjgRx5EAJU/+8txiyVF97fbVRViw== - -"@cspell/dict-monkeyc@^1.0.6": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@cspell/dict-monkeyc/-/dict-monkeyc-1.0.9.tgz#58b5f6f15fc7c11ce0eeffd0742fba4b39fc0b8b" - integrity sha512-Jvf6g5xlB4+za3ThvenYKREXTEgzx5gMUSzrAxIiPleVG4hmRb/GBSoSjtkGaibN3XxGx5x809gSTYCA/IHCpA== - -"@cspell/dict-node@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@cspell/dict-node/-/dict-node-5.0.1.tgz#77e17c576a897a3391fce01c1cc5da60bb4c2268" - integrity sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg== - -"@cspell/dict-node@^5.0.1": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-node/-/dict-node-5.0.4.tgz#dfe1f159a1ffb1c4f389ec43b15f705123113658" - integrity sha512-Hz5hiuOvZTd7Cp1IBqUZ7/ChwJeQpD5BJuwCaDn4mPNq4iMcQ1iWBYMThvNVqCEDgKv63X52nT8RAWacss98qg== - -"@cspell/dict-npm@^5.0.16": - version "5.1.8" - resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.1.8.tgz#d179e555d351aecd4c7e5a87756f3b1192701ee8" - integrity sha512-AJELYXeB4fQdIoNfmuaQxB1Hli3cX6XPsQCjfBxlu0QYXhrjB/IrCLLQAjWIywDqJiWyGUFTz4DqaANm8C/r9Q== - -"@cspell/dict-php@^4.0.7": - version "4.0.13" - resolved "https://registry.yarnpkg.com/@cspell/dict-php/-/dict-php-4.0.13.tgz#86f1e6fb2174b2b0fa012baf86c448b2730f04f9" - integrity sha512-P6sREMZkhElzz/HhXAjahnICYIqB/HSGp1EhZh+Y6IhvC15AzgtDP8B8VYCIsQof6rPF1SQrFwunxOv8H1e2eg== - -"@cspell/dict-powershell@^5.0.4": - version "5.0.13" - resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.13.tgz#f557aa04ee9bda4fe091308a0bcaea09ed12fa76" - integrity sha512-0qdj0XZIPmb77nRTynKidRJKTU0Fl+10jyLbAhFTuBWKMypVY06EaYFnwhsgsws/7nNX8MTEQuewbl9bWFAbsg== - -"@cspell/dict-public-licenses@^2.0.6": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.11.tgz#37550c4e0cd445991caba528bf4ba58ce7a935c3" - integrity sha512-rR5KjRUSnVKdfs5G+gJ4oIvQvm8+NJ6cHWY2N+GE69/FSGWDOPHxulCzeGnQU/c6WWZMSimG9o49i9r//lUQyA== - -"@cspell/dict-python@^4.1.11": - version "4.2.12" - resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.2.12.tgz#ea6298bb72a6bcf2c188d5c55142e0afab8a6c1c" - integrity sha512-U25eOFu+RE0aEcF2AsxZmq3Lic7y9zspJ9SzjrC0mfJz+yr3YmSCw4E0blMD3mZoNcf7H/vMshuKIY5AY36U+Q== - dependencies: - "@cspell/dict-data-science" "^2.0.5" - -"@cspell/dict-r@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-r/-/dict-r-2.0.4.tgz#31b5abd91cc12aebfffdde4be4d2902668789311" - integrity sha512-cBpRsE/U0d9BRhiNRMLMH1PpWgw+N+1A2jumgt1if9nBGmQw4MUpg2u9I0xlFVhstTIdzXiLXMxP45cABuiUeQ== - -"@cspell/dict-ruby@^5.0.2": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@cspell/dict-ruby/-/dict-ruby-5.0.7.tgz#3593a955baaffe3c5d28fb178b72fdf93c7eec71" - integrity sha512-4/d0hcoPzi5Alk0FmcyqlzFW9lQnZh9j07MJzPcyVO62nYJJAGKaPZL2o4qHeCS/od/ctJC5AHRdoUm0ktsw6Q== - -"@cspell/dict-rust@^4.0.3": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@cspell/dict-rust/-/dict-rust-4.0.9.tgz#8af5e405f3280afffe41f212da3ae0e777243842" - integrity sha512-Dhr6TIZsMV92xcikKIWei6p/qswS4M+gTkivpWwz4/1oaVk2nRrxJmCdRoVkJlZkkAc17rjxrS12mpnJZI0iWw== - -"@cspell/dict-scala@^5.0.2": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.6.tgz#5e925def2fe6dc27ee2ad1c452941c3d6790fb6d" - integrity sha512-tl0YWAfjUVb4LyyE4JIMVE8DlLzb1ecHRmIWc4eT6nkyDqQgHKzdHsnusxFEFMVLIQomgSg0Zz6hJ5S1E4W4ww== - -"@cspell/dict-software-terms@3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.4.0.tgz#92d5fb342d3be790213ed6960f4950ff7a5f9243" - integrity sha512-RfrSrvKBaUZ1q3R6eksWe+SMUDNFzAthqXGJuZeylZBO3LdaYdhRDcqFzeMwksfCYjvBYeJ1Ady6NSpdXzESjQ== - -"@cspell/dict-software-terms@^3.3.23": - version "3.4.10" - resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.4.10.tgz#1e461abf6a639b8771763a5953dbcfd611bc6dc0" - integrity sha512-S5S2sz98v4GWJ9TMo62Vp4L5RM/329e5UQfFn7yJfieTcrfXRH4IweVdz34rZcK9o5coGptgBUIv/Jcrd4cMpg== - -"@cspell/dict-sql@^2.1.3": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.8.tgz#45ea53b3e57fd2cc5f839f49b644aa743dac4990" - integrity sha512-dJRE4JV1qmXTbbGm6WIcg1knmR6K5RXnQxF4XHs5HA3LAjc/zf77F95i5LC+guOGppVF6Hdl66S2UyxT+SAF3A== - -"@cspell/dict-svelte@^1.0.2": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-svelte/-/dict-svelte-1.0.5.tgz#09752e01ff6667e737566d9dfc704c8dcc9a6492" - integrity sha512-sseHlcXOqWE4Ner9sg8KsjxwSJ2yssoJNqFHR9liWVbDV+m7kBiUtn2EB690TihzVsEmDr/0Yxrbb5Bniz70mA== - -"@cspell/dict-swift@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-swift/-/dict-swift-2.0.4.tgz#bc19522418ed68cf914736b612c4e4febbf07e8d" - integrity sha512-CsFF0IFAbRtYNg0yZcdaYbADF5F3DsM8C4wHnZefQy8YcHP/qjAF/GdGfBFBLx+XSthYuBlo2b2XQVdz3cJZBw== - -"@cspell/dict-terraform@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-terraform/-/dict-terraform-1.0.5.tgz#14c427ae47d2f78b4acd6fe9ed12bcae53aec441" - integrity sha512-qH3epPB2d6d5w1l4hR2OsnN8qDQ4P0z6oDB7+YiNH+BoECXv4Z38MIV1H8cxIzD2wkzkt2JTcFYaVW72MDZAlg== - -"@cspell/dict-typescript@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.5.tgz#15bd74651fb2cf0eff1150f07afee9543206bfab" - integrity sha512-EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw== - -"@cspell/dict-typescript@^3.1.5": - version "3.1.10" - resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.10.tgz#aa297c3f910cde8e644eaf9f711598a85763aaf8" - integrity sha512-7Zek3w4Rh3ZYyhihJ34FdnUBwP3OmRldnEq3hZ+FgQ0PyYZjXv5ztEViRBBxXjiFx1nHozr6pLi74TxToD8xsg== - -"@cspell/dict-vue@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-3.0.3.tgz#295c288f6fd363879898223202ec3be048663b98" - integrity sha512-akmYbrgAGumqk1xXALtDJcEcOMYBYMnkjpmGzH13Ozhq1mkPF4VgllFQlm1xYde+BUKNnzMgPEzxrL2qZllgYA== - -"@cspell/dynamic-import@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/dynamic-import/-/dynamic-import-8.8.3.tgz#b2a1cbca4b1812482f6c9f1a752d069e19cdef00" - integrity sha512-qpxGC2hGVfbSaLJkaEu//rqbgAOjYnMlbxD75Fk9ny96sr+ZI1YC0nmUErWlgXSbtjVY/DHCOu26Usweo5iRgA== - dependencies: - import-meta-resolve "^4.1.0" - -"@cspell/strong-weak-map@8.8.3": - version "8.8.3" - resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-8.8.3.tgz#5a0856dfd0c003df833fb69855322aeb95107b87" - integrity sha512-y/pL7Zex8iHQ54qDYvg9oCiCgfZ9DAUTOI/VtPFVC+42JqLx6YufYxJS2uAsFlfAXIPiRV8qnnG6BHImD1Ix6g== - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@ericcornelissen/bash-parser@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@ericcornelissen/bash-parser/-/bash-parser-0.5.2.tgz#5eb3bc52020d97fbaebc63b5168ca0aa0b2e8418" - integrity sha512-4pIMTa1nEFfMXitv7oaNEWOdM+zpOZavesa5GaiWTgda6Zk32CFGxjUp/iIaN0PwgUW1yTq/fztSjbpE8SLGZQ== - dependencies: - array-last "^1.1.1" - babylon "^6.9.1" - compose-function "^3.0.3" - deep-freeze "0.0.1" - filter-iterator "0.0.1" - filter-obj "^1.1.0" - has-own-property "^0.1.0" - identity-function "^1.0.0" - is-iterable "^1.1.0" - iterable-lookahead "^1.0.0" - lodash.curry "^4.1.1" - magic-string "^0.16.0" - map-obj "^2.0.0" - object-pairs "^0.1.0" - object-values "^1.0.0" - reverse-arguments "^1.0.0" - shell-quote-word "^1.0.1" - to-pascal-case "^1.0.0" - unescape-js "^1.0.5" - -"@esbuild/aix-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" - integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== - -"@esbuild/android-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" - integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== - -"@esbuild/android-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" - integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== - -"@esbuild/android-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" - integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== - -"@esbuild/darwin-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" - integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== - -"@esbuild/darwin-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" - integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== - -"@esbuild/freebsd-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" - integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== - -"@esbuild/freebsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" - integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== - -"@esbuild/linux-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" - integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== - -"@esbuild/linux-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" - integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== - -"@esbuild/linux-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" - integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== - -"@esbuild/linux-loong64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" - integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== - -"@esbuild/linux-mips64el@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" - integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== - -"@esbuild/linux-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" - integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== - -"@esbuild/linux-riscv64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" - integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== - -"@esbuild/linux-s390x@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" - integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== - -"@esbuild/linux-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" - integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== - -"@esbuild/netbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" - integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== - -"@esbuild/openbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" - integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== - -"@esbuild/sunos-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" - integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== - -"@esbuild/win32-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" - integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== - -"@esbuild/win32-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" - integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== - -"@esbuild/win32-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" - integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.6.1": - version "4.11.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.1.tgz#a547badfc719eb3e5f4b556325e542fbe9d7a18f" - integrity sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q== - -"@eslint/config-array@^0.15.1": - version "0.15.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.15.1.tgz#1fa78b422d98f4e7979f2211a1fde137e26c7d61" - integrity sha512-K4gzNq+yymn/EVsXYmf+SBcBro8MTf+aXJZUphM96CdzUEr+ClGDvAbpmaEK+cGVigVXIgs9gNmvHAlrzzY5JQ== - dependencies: - "@eslint/object-schema" "^2.1.3" - debug "^4.3.1" - minimatch "^3.0.5" - -"@eslint/eslintrc@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" - integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^10.0.1" - globals "^14.0.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@9.4.0": - version "9.4.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.4.0.tgz#96a2edd37ec0551ce5f9540705be23951c008a0c" - integrity sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg== - -"@eslint/object-schema@^2.1.3": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" - integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== - -"@fastify/busboy@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" - integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/retry@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" - integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== - -"@inquirer/confirm@^3.0.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.2.0.tgz#6af1284670ea7c7d95e3f1253684cfbd7228ad6a" - integrity sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw== - dependencies: - "@inquirer/core" "^9.1.0" - "@inquirer/type" "^1.5.3" - -"@inquirer/core@^9.1.0": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.2.1.tgz#677c49dee399c9063f31e0c93f0f37bddc67add1" - integrity sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg== - dependencies: - "@inquirer/figures" "^1.0.6" - "@inquirer/type" "^2.0.0" - "@types/mute-stream" "^0.0.4" - "@types/node" "^22.5.5" - "@types/wrap-ansi" "^3.0.0" - ansi-escapes "^4.3.2" - cli-width "^4.1.0" - mute-stream "^1.0.0" - signal-exit "^4.1.0" - strip-ansi "^6.0.1" - wrap-ansi "^6.2.0" - yoctocolors-cjs "^2.1.2" - -"@inquirer/figures@^1.0.6": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.7.tgz#d050ccc0eabfacc0248c4ff647a9dfba1b01594b" - integrity sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw== - -"@inquirer/type@^1.5.3": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.5.tgz#303ea04ce7ad2e585b921b662b3be36ef7b4f09b" - integrity sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA== - dependencies: - mute-stream "^1.0.0" - -"@inquirer/type@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-2.0.0.tgz#08fa513dca2cb6264fe1b0a2fabade051444e3f6" - integrity sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag== - dependencies: - mute-stream "^1.0.0" - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@isaacs/fs-minipass@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32" - integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== - dependencies: - minipass "^7.0.4" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== - dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@mswjs/cookies@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@mswjs/cookies/-/cookies-1.1.1.tgz#8b519e2bd8f1577c530beed44a25578eb9a6e72c" - integrity sha512-W68qOHEjx1iD+4VjQudlx26CPIoxmIAtK4ZCexU0/UJBG6jYhcuyzKJx+Iw8uhBIGd9eba64XgWVgo20it1qwA== - -"@mswjs/data@0.16.1": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@mswjs/data/-/data-0.16.1.tgz#ee41b95b8f2e954a07b0eb54154592a2459064d1" - integrity sha512-VhJvL/VmgAuU9/tDOcKcxHfNd+8nxYntZnrkaQEQPvZZnFwQQR9bzI1FTRROGxCHVoyfv9v84AEkl/7CIw4FAg== - dependencies: - "@types/lodash" "^4.14.172" - "@types/md5" "^2.3.0" - "@types/pluralize" "^0.0.29" - "@types/uuid" "^8.3.0" - date-fns "^2.21.1" - debug "^4.3.1" - graphql "^16.8.1" - lodash "^4.17.21" - md5 "^2.3.0" - outvariant "^1.2.1" - pluralize "^8.0.0" - strict-event-emitter "^0.5.0" - uuid "^8.3.1" - optionalDependencies: - msw "^2.0.8" - -"@mswjs/interceptors@^0.29.0": - version "0.29.1" - resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.29.1.tgz#e77fc58b5188569041d0440b25c9e9ebb1ccd60a" - integrity sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw== - dependencies: - "@open-draft/deferred-promise" "^2.2.0" - "@open-draft/logger" "^0.3.0" - "@open-draft/until" "^2.0.0" - is-node-process "^1.2.0" - outvariant "^1.2.1" - strict-event-emitter "^0.5.1" - -"@mswjs/interceptors@^0.35.8": - version "0.35.9" - resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.35.9.tgz#1e1488ff2f333683d374eccc8c0f4d5d851c6d3d" - integrity sha512-SSnyl/4ni/2ViHKkiZb8eajA/eN1DNFaHjhGiLUdZvDz6PKF4COSf/17xqSz64nOo2Ia29SA6B2KNCsyCbVmaQ== - dependencies: - "@open-draft/deferred-promise" "^2.2.0" - "@open-draft/logger" "^0.3.0" - "@open-draft/until" "^2.0.0" - is-node-process "^1.2.0" - outvariant "^1.4.3" - strict-event-emitter "^0.5.1" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.scandir@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-3.0.0.tgz#91c0a33e1aeaedcd4bab2bf31be5d1962a55d2a7" - integrity sha512-ktI9+PxfHYtKjF3cLTUAh2N+b8MijCRPNwKJNqTVdL0gB0QxLU2rIRaZ1t71oEa3YBDE6bukH1sR0+CDnpp/Mg== - dependencies: - "@nodelib/fs.stat" "3.0.0" - run-parallel "^1.2.0" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.stat@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-3.0.0.tgz#ef6c829f2b05f42595d88854ebd777d4335ff0a9" - integrity sha512-2tQOI38s19P9i7X/Drt0v8iMA+KMsgdhB/dyPER+e+2Y8L1Z7QvnuRdW/uLuf5YRFUYmnj4bMA6qCuZHFI1GDQ== - -"@nodelib/fs.walk@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-2.0.0.tgz#10499ac2210f6399770b465ba728adafc7d44bb1" - integrity sha512-54voNDBobGdMl3BUXSu7UaDh1P85PGHWlJ5e0XhPugo1JulOyCtp2I+5ri4wplGDJ8QGwPEQW7/x3yTLU7yF1A== - dependencies: - "@nodelib/fs.scandir" "3.0.0" - fastq "^1.15.0" - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@octokit/auth-app@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-app/-/auth-app-7.1.0.tgz#55a3d3b3b3607b9d375abbe946163dca3a25c2c9" - integrity sha512-cazGaJPSgeZ8NkVYeM/C5l/6IQ5vZnsI8p1aMucadCkt/bndI+q+VqwrlnWbASRmenjOkf1t1RpCKrif53U8gw== - dependencies: - "@octokit/auth-oauth-app" "^8.1.0" - "@octokit/auth-oauth-user" "^5.1.0" - "@octokit/request" "^9.1.1" - "@octokit/request-error" "^6.1.1" - "@octokit/types" "^13.4.1" - lru-cache "^10.0.0" - universal-github-app-jwt "^2.2.0" - universal-user-agent "^7.0.0" - -"@octokit/auth-oauth-app@^8.1.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-app/-/auth-oauth-app-8.1.1.tgz#6204affa6e86f535016799cadf2af9befe5e893c" - integrity sha512-5UtmxXAvU2wfcHIPPDWzVSAWXVJzG3NWsxb7zCFplCWEmMCArSZV0UQu5jw5goLQXbFyOr5onzEH37UJB3zQQg== - dependencies: - "@octokit/auth-oauth-device" "^7.0.0" - "@octokit/auth-oauth-user" "^5.0.1" - "@octokit/request" "^9.0.0" - "@octokit/types" "^13.0.0" - universal-user-agent "^7.0.0" - -"@octokit/auth-oauth-device@^7.0.0", "@octokit/auth-oauth-device@^7.0.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-device/-/auth-oauth-device-7.1.1.tgz#7b4f8f97cbcadbe9894d48cde4406dbdef39875a" - integrity sha512-HWl8lYueHonuyjrKKIup/1tiy0xcmQCdq5ikvMO1YwkNNkxb6DXfrPjrMYItNLyCP/o2H87WuijuE+SlBTT8eg== - dependencies: - "@octokit/oauth-methods" "^5.0.0" - "@octokit/request" "^9.0.0" - "@octokit/types" "^13.0.0" - universal-user-agent "^7.0.0" - -"@octokit/auth-oauth-user@^5.0.1", "@octokit/auth-oauth-user@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-user/-/auth-oauth-user-5.1.1.tgz#4f1570c6ee15bb9ddc3dcca83308dcaa159e3848" - integrity sha512-rRkMz0ErOppdvEfnemHJXgZ9vTPhBuC6yASeFaB7I2yLMd7QpjfrL1mnvRPlyKo+M6eeLxrKanXJ9Qte29SRsw== - dependencies: - "@octokit/auth-oauth-device" "^7.0.1" - "@octokit/oauth-methods" "^5.0.0" - "@octokit/request" "^9.0.1" - "@octokit/types" "^13.0.0" - universal-user-agent "^7.0.0" - -"@octokit/auth-token@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" - integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== - -"@octokit/auth-token@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-5.1.1.tgz#3bbfe905111332a17f72d80bd0b51a3e2fa2cf07" - integrity sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA== - -"@octokit/core@6.1.2", "@octokit/core@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-6.1.2.tgz#20442d0a97c411612da206411e356014d1d1bd17" - integrity sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg== - dependencies: - "@octokit/auth-token" "^5.0.0" - "@octokit/graphql" "^8.0.0" - "@octokit/request" "^9.0.0" - "@octokit/request-error" "^6.0.1" - "@octokit/types" "^13.0.0" - before-after-hook "^3.0.2" - universal-user-agent "^7.0.0" - -"@octokit/core@^5.0.1": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.2.0.tgz#ddbeaefc6b44a39834e1bb2e58a49a117672a7ea" - integrity sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg== - dependencies: - "@octokit/auth-token" "^4.0.0" - "@octokit/graphql" "^7.1.0" - "@octokit/request" "^8.3.1" - "@octokit/request-error" "^5.1.0" - "@octokit/types" "^13.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^10.0.0": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-10.1.1.tgz#1a9694e7aef6aa9d854dc78dd062945945869bcc" - integrity sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q== - dependencies: - "@octokit/types" "^13.0.0" - universal-user-agent "^7.0.2" - -"@octokit/endpoint@^9.0.1": - version "9.0.5" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.5.tgz#e6c0ee684e307614c02fc6ac12274c50da465c44" - integrity sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw== - dependencies: - "@octokit/types" "^13.1.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql-schema@^15.25.0": - version "15.25.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql-schema/-/graphql-schema-15.25.0.tgz#30bb8ecc494c249650991b33f2f0d9332dbe87e9" - integrity sha512-aqz9WECtdxVWSqgKroUu9uu+CRt5KnfErWs0dBPKlTdrreAeWzS5NRu22ZVcGdPP7s3XDg2Gnf5iyoZPCRZWmQ== - dependencies: - graphql "^16.0.0" - graphql-tag "^2.10.3" - -"@octokit/graphql@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.0.tgz#9bc1c5de92f026648131f04101cab949eeffe4e0" - integrity sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ== - dependencies: - "@octokit/request" "^8.3.0" - "@octokit/types" "^13.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^8.0.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.1.tgz#3cacab5f2e55d91c733e3bf481d3a3f8a5f639c4" - integrity sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg== - dependencies: - "@octokit/request" "^9.0.0" - "@octokit/types" "^13.0.0" - universal-user-agent "^7.0.0" - -"@octokit/oauth-authorization-url@^7.0.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@octokit/oauth-authorization-url/-/oauth-authorization-url-7.1.1.tgz#0e17c2225eb66b58ec902d02b6f1315ffe9ff04b" - integrity sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA== - -"@octokit/oauth-methods@^5.0.0": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@octokit/oauth-methods/-/oauth-methods-5.1.2.tgz#fd31d2a69f4c91d1abc1ed1814dda5252c697e02" - integrity sha512-C5lglRD+sBlbrhCUTxgJAFjWgJlmTx5bQ7Ch0+2uqRjYv7Cfb5xpX4WuSC9UgQna3sqRGBL9EImX9PvTpMaQ7g== - dependencies: - "@octokit/oauth-authorization-url" "^7.0.0" - "@octokit/request" "^9.1.0" - "@octokit/request-error" "^6.1.0" - "@octokit/types" "^13.0.0" - -"@octokit/openapi-types@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-20.0.0.tgz#9ec2daa0090eeb865ee147636e0c00f73790c6e5" - integrity sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA== - -"@octokit/openapi-types@^22.2.0": - version "22.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e" - integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg== - -"@octokit/openapi-webhooks-types@8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-8.3.0.tgz#a7a4da00c0f27f7f5708eb3fcebefa08f8d51125" - integrity sha512-vKLsoR4xQxg4Z+6rU/F65ItTUz/EXbD+j/d4mlq2GW8TsA4Tc8Kdma2JTAAJ5hrKWUQzkR/Esn2fjsqiVRYaQg== - -"@octokit/plugin-paginate-rest@11.3.3": - version "11.3.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.3.tgz#efc97ba66aae6797e2807a082f99b9cfc0e05aba" - integrity sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA== - dependencies: - "@octokit/types" "^13.5.0" - -"@octokit/plugin-paginate-rest@^11.0.0": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.5.tgz#a1929b3ba3dc7b63bc73bb6d3c7a3faf2a9c7649" - integrity sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ== - dependencies: - "@octokit/types" "^13.6.0" - -"@octokit/plugin-paginate-rest@^9.0.0": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz#2e2a2f0f52c9a4b1da1a3aa17dabe3c459b9e401" - integrity sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw== - dependencies: - "@octokit/types" "^12.6.0" - -"@octokit/plugin-request-log@^5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-5.3.1.tgz#ccb75d9705de769b2aa82bcd105cc96eb0c00f69" - integrity sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw== - -"@octokit/plugin-rest-endpoint-methods@13.2.4": - version "13.2.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.4.tgz#543add032d3fe3f5d2839bfd619cf66d85469f01" - integrity sha512-gusyAVgTrPiuXOdfqOySMDztQHv6928PQ3E4dqVGEtOvRXAKRbJR4b1zQyniIT9waqaWk/UDaoJ2dyPr7Bk7Iw== - dependencies: - "@octokit/types" "^13.5.0" - -"@octokit/plugin-rest-endpoint-methods@^10.0.0": - version "10.4.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz#41ba478a558b9f554793075b2e20cd2ef973be17" - integrity sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg== - dependencies: - "@octokit/types" "^12.6.0" - -"@octokit/plugin-rest-endpoint-methods@^13.0.0": - version "13.2.6" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.6.tgz#b9d343dbe88a6cb70cc7fa16faa98f0a29ffe654" - integrity sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw== - dependencies: - "@octokit/types" "^13.6.1" - -"@octokit/plugin-retry@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-7.1.1.tgz#a84483e4afdd068dd71da81abe206a9e442c1288" - integrity sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw== - dependencies: - "@octokit/request-error" "^6.0.0" - "@octokit/types" "^13.0.0" - bottleneck "^2.15.3" - -"@octokit/plugin-throttling@9.3.1": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz#5648165e1e70e861625f3a16af6c55cafe861061" - integrity sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ== - dependencies: - "@octokit/types" "^13.0.0" - bottleneck "^2.15.3" - -"@octokit/request-error@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.0.tgz#ee4138538d08c81a60be3f320cd71063064a3b30" - integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== - dependencies: - "@octokit/types" "^13.1.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request-error@^6.0.0", "@octokit/request-error@^6.0.1", "@octokit/request-error@^6.1.0", "@octokit/request-error@^6.1.1": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-6.1.5.tgz#907099e341c4e6179db623a0328d678024f54653" - integrity sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ== - dependencies: - "@octokit/types" "^13.0.0" - -"@octokit/request@^8.3.0", "@octokit/request@^8.3.1": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.0.tgz#7f4b7b1daa3d1f48c0977ad8fffa2c18adef8974" - integrity sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw== - dependencies: - "@octokit/endpoint" "^9.0.1" - "@octokit/request-error" "^5.1.0" - "@octokit/types" "^13.1.0" - universal-user-agent "^6.0.0" - -"@octokit/request@^9.0.0", "@octokit/request@^9.0.1", "@octokit/request@^9.1.0", "@octokit/request@^9.1.1": - version "9.1.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-9.1.3.tgz#42b693bc06238f43af3c037ebfd35621c6457838" - integrity sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA== - dependencies: - "@octokit/endpoint" "^10.0.0" - "@octokit/request-error" "^6.0.1" - "@octokit/types" "^13.1.0" - universal-user-agent "^7.0.2" - -"@octokit/rest@^21.0.2": - version "21.0.2" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-21.0.2.tgz#9b767dbc1098daea8310fd8b76bf7a97215d5972" - integrity sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ== - dependencies: - "@octokit/core" "^6.1.2" - "@octokit/plugin-paginate-rest" "^11.0.0" - "@octokit/plugin-request-log" "^5.3.1" - "@octokit/plugin-rest-endpoint-methods" "^13.0.0" - -"@octokit/types@^12.6.0": - version "12.6.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.6.0.tgz#8100fb9eeedfe083aae66473bd97b15b62aedcb2" - integrity sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw== - dependencies: - "@octokit/openapi-types" "^20.0.0" - -"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.4.1", "@octokit/types@^13.5.0", "@octokit/types@^13.6.0", "@octokit/types@^13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.6.1.tgz#432fc6c0aaae54318e5b2d3e15c22ac97fc9b15f" - integrity sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g== - dependencies: - "@octokit/openapi-types" "^22.2.0" - -"@octokit/webhooks-methods@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@octokit/webhooks-methods/-/webhooks-methods-5.1.0.tgz#13b6c08f89902c1ab0ddf31c6eeeec9c2772cfe6" - integrity sha512-yFZa3UH11VIxYnnoOYCVoJ3q4ChuSOk2IVBBQ0O3xtKX4x9bmKb/1t+Mxixv2iUhzMdOl1qeWJqEhouXXzB3rQ== - -"@octokit/webhooks-types@7.5.1": - version "7.5.1" - resolved "https://registry.yarnpkg.com/@octokit/webhooks-types/-/webhooks-types-7.5.1.tgz#e05399ab6bbbef8b78eb6bfc1a2cb138ea861104" - integrity sha512-1dozxWEP8lKGbtEu7HkRbK1F/nIPuJXNfT0gd96y6d3LcHZTtRtlf8xz3nicSJfesADxJyDh+mWBOsdLkqgzYw== - -"@octokit/webhooks@13.3.0", "@octokit/webhooks@^13.3.0": - version "13.3.0" - resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-13.3.0.tgz#fd5d54d47c789c75d60a00eb04e982152d7c654a" - integrity sha512-TUkJLtI163Bz5+JK0O+zDkQpn4gKwN+BovclUvCj6pI/6RXrFqQvUMRS2M+Rt8Rv0qR3wjoMoOPmpJKeOh0nBg== - dependencies: - "@octokit/openapi-webhooks-types" "8.3.0" - "@octokit/request-error" "^6.0.1" - "@octokit/webhooks-methods" "^5.0.0" - -"@open-draft/deferred-promise@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd" - integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA== - -"@open-draft/logger@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@open-draft/logger/-/logger-0.3.0.tgz#2b3ab1242b360aa0adb28b85f5d7da1c133a0954" - integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ== - dependencies: - is-node-process "^1.2.0" - outvariant "^1.4.0" - -"@open-draft/until@^2.0.0", "@open-draft/until@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-2.1.0.tgz#0acf32f470af2ceaf47f095cdecd40d68666efda" - integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - -"@sinclair/typebox@0.32.35", "@sinclair/typebox@^0.32.35": - version "0.32.35" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.32.35.tgz#41c04473509478df9895800018a3d3ae7d40fb3c" - integrity sha512-Ul3YyOTU++to8cgNkttakC0dWvpERr6RYoHO2W47DLbFvrwBDJUY31B1sImH6JZSYc4Kt4PyHtoPNu+vL2r2dA== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - -"@snyk/github-codeowners@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@snyk/github-codeowners/-/github-codeowners-1.1.0.tgz#45b99732c3c38b5f5b47e43d2b0c9db67a6d2bcc" - integrity sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw== - dependencies: - commander "^4.1.1" - ignore "^5.1.8" - p-map "^4.0.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/babel__core@^7.1.14": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" - integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== - dependencies: - "@babel/types" "^7.20.7" - -"@types/conventional-commits-parser@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#8c9d23e0b415b24b91626d07017303755d542dc8" - integrity sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ== - dependencies: - "@types/node" "*" - -"@types/cookie@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" - integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== - -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@29.5.12": - version "29.5.12" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" - integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/lodash@^4.14.172": - version "4.17.12" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.12.tgz#25d71312bf66512105d71e55d42e22c36bcfc689" - integrity sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ== - -"@types/luxon@3.4.2": - version "3.4.2" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.4.2.tgz#e4fc7214a420173cea47739c33cdf10874694db7" - integrity sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA== - -"@types/md5@^2.3.0": - version "2.3.5" - resolved "https://registry.yarnpkg.com/@types/md5/-/md5-2.3.5.tgz#481cef0a896e3a5dcbfc5a8a8b02c05958af48a5" - integrity sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw== - -"@types/ms@0.7.34": - version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - -"@types/mute-stream@^0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478" - integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow== - dependencies: - "@types/node" "*" - -"@types/node@*", "@types/node@^22.5.5", "@types/node@^22.7.7": - version "22.7.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.7.tgz#6cd9541c3dccb4f7e8b141b491443f4a1570e307" - integrity sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q== - dependencies: - undici-types "~6.19.2" - -"@types/pluralize@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/pluralize/-/pluralize-0.0.29.tgz#6ffa33ed1fc8813c469b859681d09707eb40d03c" - integrity sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA== - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - -"@types/statuses@^2.0.4": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.5.tgz#f61ab46d5352fd73c863a1ea4e1cef3b0b51ae63" - integrity sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A== - -"@types/tough-cookie@^4.0.5": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" - integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== - -"@types/uuid@^8.3.0": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/wrap-ansi@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd" - integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== - dependencies: - "@types/yargs-parser" "*" - -"@ubiquity-os/ubiquity-os-kernel@^2.5.2": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@ubiquity-os/ubiquity-os-kernel/-/ubiquity-os-kernel-2.5.2.tgz#8a660ee5e18768118b748b05146b85e2fe3b8e07" - integrity sha512-OStUT7zrE/siu/kUs/flcCUVWelt1kI6uBICNeYrreDw3IirRmUAoogFg5n+byu3RW37bpDGlmWrT5Q3jeXwLQ== - dependencies: - "@actions/core" "1.10.1" - "@actions/github" "6.0.0" - "@cfworker/json-schema" "2.0.1" - "@octokit/auth-app" "7.1.0" - "@octokit/core" "6.1.2" - "@octokit/plugin-paginate-rest" "11.3.3" - "@octokit/plugin-rest-endpoint-methods" "13.2.4" - "@octokit/plugin-retry" "7.1.1" - "@octokit/plugin-throttling" "9.3.1" - "@octokit/rest" "^21.0.2" - "@octokit/types" "^13.5.0" - "@octokit/webhooks" "13.3.0" - "@octokit/webhooks-types" "7.5.1" - "@sinclair/typebox" "0.32.35" - "@ubiquity-os/ubiquity-os-logger" "^1.3.2" - dotenv "16.4.5" - hono "4.4.13" - smee-client "2.0.1" - ts-node "^10.9.2" - typebox-validators "0.3.5" - yaml "2.4.5" - -"@ubiquity-os/ubiquity-os-logger@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@ubiquity-os/ubiquity-os-logger/-/ubiquity-os-logger-1.3.2.tgz#4423bc0baeac5c2f73123d15fd961310521163cd" - integrity sha512-oTIzR8z4jAQmaeJp98t1bZUKE3Ws9pas0sbxt58fC37MwXclPMWrLO+a0JlhPkdJYsvpv/q/79wC2MKVhOIVXQ== - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.12.0, acorn@^8.4.1: - version "8.13.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" - integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== - -agent-base@^7.0.2: - version "7.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" - integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== - dependencies: - debug "^4.3.4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.11.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-escapes@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" - integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== - dependencies: - environment "^1.0.0" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -anymatch@^3.0.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -arity-n@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" - integrity sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ== - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== - -array-last@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" - integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== - dependencies: - is-number "^4.0.0" - -array-timsort@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" - integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== - -async-lock@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.4.1.tgz#56b8718915a9b68b10fce2f2a9a3dddf765ef53f" - integrity sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ== - -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" - integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-import-attributes" "^7.24.7" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - -babylon@^6.9.1: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - -before-after-hook@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-3.0.2.tgz#d5665a5fa8b62294a5aa0a499f933f4a1016195d" - integrity sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A== - -bin-links@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.4.tgz#c3565832b8e287c85f109a02a17027d152a58a63" - integrity sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA== - dependencies: - cmd-shim "^6.0.0" - npm-normalize-package-bin "^3.0.0" - read-cmd-shim "^4.0.0" - write-file-atomic "^5.0.0" - -bottleneck@^2.15.3: - version "2.19.5" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" - integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browserslist@^4.24.0: - version "4.24.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.0.tgz#a1325fe4bc80b64fda169629fc01b3d6cecd38d4" - integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== - dependencies: - caniuse-lite "^1.0.30001663" - electron-to-chromium "^1.5.28" - node-releases "^2.0.18" - update-browserslist-db "^1.1.0" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -callsites@^3.0.0, callsites@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001663: - version "1.0.30001669" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz#fda8f1d29a8bfdc42de0c170d7f34a9cf19ed7a3" - integrity sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w== - -chalk-template@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" - integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== - dependencies: - chalk "^5.2.0" - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^5.2.0, chalk@^5.3.0, chalk@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - -chownr@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" - integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cjs-module-lexer@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170" - integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== - -clean-git-ref@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/clean-git-ref/-/clean-git-ref-2.0.1.tgz#dcc0ca093b90e527e67adb5a5e55b1af6816dcd9" - integrity sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -clear-module@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/clear-module/-/clear-module-4.1.2.tgz#5a58a5c9f8dccf363545ad7284cad3c887352a80" - integrity sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw== - dependencies: - parent-module "^2.0.0" - resolve-from "^5.0.0" - -cli-cursor@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" - integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== - dependencies: - restore-cursor "^5.0.0" - -cli-truncate@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" - integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== - dependencies: - slice-ansi "^5.0.0" - string-width "^7.0.0" - -cli-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" - integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -cmd-shim@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.3.tgz#c491e9656594ba17ac83c4bd931590a9d6e26033" - integrity sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -commander@^12.0.0, commander@^12.1.0, commander@~12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -commander@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -comment-json@^4.2.3: - version "4.2.5" - resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.5.tgz#482e085f759c2704b60bc6f97f55b8c01bc41e70" - integrity sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw== - dependencies: - array-timsort "^1.0.3" - core-util-is "^1.0.3" - esprima "^4.0.1" - has-own-prop "^2.0.0" - repeat-string "^1.6.1" - -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - -compose-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" - integrity sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg== - dependencies: - arity-n "^1.0.4" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -conventional-changelog-angular@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" - integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== - dependencies: - compare-func "^2.0.0" - -conventional-changelog-conventionalcommits@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz#aa5da0f1b2543094889e8cf7616ebe1a8f5c70d5" - integrity sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w== - dependencies: - compare-func "^2.0.0" - -conventional-commits-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" - integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== - dependencies: - JSONStream "^1.3.5" - is-text-path "^2.0.0" - meow "^12.0.1" - split2 "^4.0.0" - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-util-is@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig-typescript-loader@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.1.0.tgz#d8d02bff04e63faa2dc794d618168bd764c704be" - integrity sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA== - dependencies: - jiti "^1.21.6" - -cosmiconfig@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" - integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - dependencies: - env-paths "^2.2.1" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - -crc-32@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" - integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-env@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - -cspell-config-lib@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-config-lib/-/cspell-config-lib-8.8.3.tgz#b32d22da7a540d46acd947606a9fe2efe5722f67" - integrity sha512-61NKZrzTi9OLEEiZBggLQy9nswgR0gd6bKH06xXFQyRfNpAjaPOzOUFhSSfX1MQX+lQF3KtSYcHpppwbpPsL8w== - dependencies: - "@cspell/cspell-types" "8.8.3" - comment-json "^4.2.3" - yaml "^2.4.2" - -cspell-dictionary@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.8.3.tgz#91c84f2e50d0b9cb8ef45c2c7a6b89003f809840" - integrity sha512-g2G3uh8JbuJKAYFdFQENcbTIrK9SJRXBiQ/t+ch+9I/t5HmuGOVe+wxKEM/0c9M2CRLpzJShBvttH9rnw4Yqfg== - dependencies: - "@cspell/cspell-pipe" "8.8.3" - "@cspell/cspell-types" "8.8.3" - cspell-trie-lib "8.8.3" - fast-equals "^5.0.1" - gensequence "^7.0.0" - -cspell-gitignore@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-8.8.3.tgz#faf4f8d3e7688e021135de5ca1610aca33db07bc" - integrity sha512-+IeVPNnUJOj+D9rc4elbK4DK3p9qxvF/2BMtFsE7a75egeJjAnlzVGzqH2FVMsDj6dxe5bjc8/S4Nhw6B14xTQ== - dependencies: - cspell-glob "8.8.3" - find-up-simple "^1.0.0" - -cspell-glob@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-8.8.3.tgz#3b6fbd5e647b177fa31808ac2ad7db3aa05bc825" - integrity sha512-9c4Nw/bIsjKSuBuRrLa1sWtIzbXXvja+FVbUOE9c2IiZfh6K1I+UssiXTbRTMg6qgTdkfT4o3KOcFN0ZcbmCUQ== - dependencies: - micromatch "^4.0.7" - -cspell-grammar@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-grammar/-/cspell-grammar-8.8.3.tgz#230bf790fe193dc8ee15f19c075f419adc2eb95f" - integrity sha512-3RP7xQ/6IiIjbWQDuE+4b0ERKkSWGMY75bd0oEsh5HcFhhOYphmcpxLxRRM/yxYQaYgdvq0QIcwrpanx86KJ7A== - dependencies: - "@cspell/cspell-pipe" "8.8.3" - "@cspell/cspell-types" "8.8.3" - -cspell-io@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-8.8.3.tgz#9fd0360d3bc2dbe0e45fe51e796457a9c010ad4a" - integrity sha512-vO7BUa6i7tjmQr+9dw/Ic7tm4ECnSUlbuMv0zJs/SIrO9AcID2pCWPeZNZEGAmeutrEOi2iThZ/uS33aCuv7Jw== - dependencies: - "@cspell/cspell-service-bus" "8.8.3" - -cspell-lib@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-8.8.3.tgz#47d18ec102f25e28d1376c0a9e9d4c01428b965a" - integrity sha512-IqtTKBPug5Jzt9T8f/b6qGAbARRR5tpQkLjzsrfLzxM68ery23wEPDtmWToEyc9EslulZGLe0T78XuEU9AMF+g== - dependencies: - "@cspell/cspell-bundled-dicts" "8.8.3" - "@cspell/cspell-pipe" "8.8.3" - "@cspell/cspell-resolver" "8.8.3" - "@cspell/cspell-types" "8.8.3" - "@cspell/dynamic-import" "8.8.3" - "@cspell/strong-weak-map" "8.8.3" - clear-module "^4.1.2" - comment-json "^4.2.3" - cspell-config-lib "8.8.3" - cspell-dictionary "8.8.3" - cspell-glob "8.8.3" - cspell-grammar "8.8.3" - cspell-io "8.8.3" - cspell-trie-lib "8.8.3" - env-paths "^3.0.0" - fast-equals "^5.0.1" - gensequence "^7.0.0" - import-fresh "^3.3.0" - resolve-from "^5.0.0" - vscode-languageserver-textdocument "^1.0.11" - vscode-uri "^3.0.8" - xdg-basedir "^5.1.0" - -cspell-trie-lib@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-8.8.3.tgz#10689cb43e8244286fcdc8ae41cf52ce7960138f" - integrity sha512-0zrkrhrFLVajwo6++XD9a+r0Olml7UjPgbztjPKbXIJrZCradBF5rvt3wq5mPpsjq2+Dz0z6K5muZpbO+gqapQ== - dependencies: - "@cspell/cspell-pipe" "8.8.3" - "@cspell/cspell-types" "8.8.3" - gensequence "^7.0.0" - -cspell@8.8.3: - version "8.8.3" - resolved "https://registry.yarnpkg.com/cspell/-/cspell-8.8.3.tgz#ff22699ce3df16b8a270a4f94e3296fc703b1647" - integrity sha512-JVWI4MNALOuZ+igyJ54C6Iwe8s1ecMCgyGFGId5a0P6wi/V+TFYFhl7QkzIi1Uw4KtXSYrUSlHGUjC2dE0OZ9g== - dependencies: - "@cspell/cspell-json-reporter" "8.8.3" - "@cspell/cspell-pipe" "8.8.3" - "@cspell/cspell-types" "8.8.3" - "@cspell/dynamic-import" "8.8.3" - chalk "^5.3.0" - chalk-template "^1.1.0" - commander "^12.1.0" - cspell-gitignore "8.8.3" - cspell-glob "8.8.3" - cspell-io "8.8.3" - cspell-lib "8.8.3" - fast-glob "^3.3.2" - fast-json-stable-stringify "^2.1.0" - file-entry-cache "^8.0.0" - get-stdin "^9.0.0" - semver "^7.6.2" - strip-ansi "^7.1.0" - vscode-uri "^3.0.8" - -dargs@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-8.1.0.tgz#a34859ea509cbce45485e5aa356fef70bfcc7272" - integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== - -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - -date-fns@^2.21.1: - version "2.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" - integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== - dependencies: - "@babel/runtime" "^7.21.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.4: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -dedent@^1.0.0: - version "1.5.3" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" - integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== - -deep-freeze@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - -diff3@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/diff3/-/diff3-0.0.3.tgz#d4e5c3a4cdf4e5fe1211ab42e693fcb4321580fc" - integrity sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dot-prop@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotenv-cli@7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/dotenv-cli/-/dotenv-cli-7.4.2.tgz#c158a818de08e1fbc51d310f628cbace9075b734" - integrity sha512-SbUj8l61zIbzyhIbg0FwPJq6+wjbzdn9oEtozQpZ6kW2ihCcapKVZj49oCT3oPM+mgQm+itgvUQcG5szxVrZTA== - dependencies: - cross-spawn "^7.0.3" - dotenv "^16.3.0" - dotenv-expand "^10.0.0" - minimist "^1.2.6" - -dotenv-expand@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" - integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== - -dotenv@16.4.5, dotenv@^16.3.0: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -easy-table@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.2.0.tgz#ba9225d7138fee307bfd4f0b5bc3c04bdc7c54eb" - integrity sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww== - dependencies: - ansi-regex "^5.0.1" - optionalDependencies: - wcwidth "^1.0.1" - -electron-to-chromium@^1.5.28: - version "1.5.41" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz#eae1ba6c49a1a61d84cf8263351d3513b2bcc534" - integrity sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ== - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - -emoji-regex@^10.3.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" - integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -env-paths@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -env-paths@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da" - integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== - -environment@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" - integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -esbuild@~0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" - integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== - optionalDependencies: - "@esbuild/aix-ppc64" "0.20.2" - "@esbuild/android-arm" "0.20.2" - "@esbuild/android-arm64" "0.20.2" - "@esbuild/android-x64" "0.20.2" - "@esbuild/darwin-arm64" "0.20.2" - "@esbuild/darwin-x64" "0.20.2" - "@esbuild/freebsd-arm64" "0.20.2" - "@esbuild/freebsd-x64" "0.20.2" - "@esbuild/linux-arm" "0.20.2" - "@esbuild/linux-arm64" "0.20.2" - "@esbuild/linux-ia32" "0.20.2" - "@esbuild/linux-loong64" "0.20.2" - "@esbuild/linux-mips64el" "0.20.2" - "@esbuild/linux-ppc64" "0.20.2" - "@esbuild/linux-riscv64" "0.20.2" - "@esbuild/linux-s390x" "0.20.2" - "@esbuild/linux-x64" "0.20.2" - "@esbuild/netbsd-x64" "0.20.2" - "@esbuild/openbsd-x64" "0.20.2" - "@esbuild/sunos-x64" "0.20.2" - "@esbuild/win32-arm64" "0.20.2" - "@esbuild/win32-ia32" "0.20.2" - "@esbuild/win32-x64" "0.20.2" - -escalade@^3.1.1, escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-prettier@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-plugin-filename-rules@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-filename-rules/-/eslint-plugin-filename-rules-1.3.1.tgz#8fb769f2c19dc832b43c13d76c1442bca4a2f4a4" - integrity sha512-kBMxGFvK3QrRBHMurhFSNa+PFdszezVtBV6egg39TDzlj6D4jL3Xx6oyNjm5xE4C+TdQUBzWwymHJHBPyxOreA== - -eslint-plugin-prettier@5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" - -eslint-plugin-sonarjs@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-1.0.3.tgz#423de6f9244c886633ff36183c6fbc9fb1ed867d" - integrity sha512-6s41HLPYPyDrp+5+7Db5yFYbod6h9pC7yx+xfcNwHRcLe1EZwbbQT/tdOAkR7ekVUkNGEvN3GmYakIoQUX7dEg== - -eslint-scope@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.1.0.tgz#70214a174d4cbffbc3e8a26911d8bf51b9ae9d30" - integrity sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-visitor-keys@^4.0.0, eslint-visitor-keys@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz#1f785cc5e81eb7534523d85922248232077d2f8c" - integrity sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg== - -eslint@9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.4.0.tgz#79150c3610ae606eb131f1d648d5f43b3d45f3cd" - integrity sha512-sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/config-array" "^0.15.1" - "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.4.0" - "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.3.0" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - escape-string-regexp "^4.0.0" - eslint-scope "^8.0.1" - eslint-visitor-keys "^4.0.0" - espree "^10.0.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^8.0.0" - find-up "^5.0.0" - glob-parent "^6.0.2" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^10.0.1: - version "10.2.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.2.0.tgz#f4bcead9e05b0615c968e85f83816bc386a45df6" - integrity sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g== - dependencies: - acorn "^8.12.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.1.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -eventsource@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" - integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^8.0.1, execa@~8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-equals@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" - integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ== - -fast-glob@3.3.2, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241" - integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== - -fastq@^1.15.0, fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -file-entry-cache@8.0.0, file-entry-cache@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" - integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== - dependencies: - flat-cache "^4.0.0" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -filter-iterator@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/filter-iterator/-/filter-iterator-0.0.1.tgz#0a2ecf07d6c06f96bdeb6846f8e88b57b8da1f37" - integrity sha512-v4lhL7Qa8XpbW3LN46CEnmhGk3eHZwxfNl5at20aEkreesht4YKb/Ba3BUIbnPhAC/r3dmu7ABaGk6MAvh2alA== - -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - -find-up-simple@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368" - integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw== - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-7.0.0.tgz#e8dec1455f74f78d888ad65bf7ca13dd2b4e66fb" - integrity sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g== - dependencies: - locate-path "^7.2.0" - path-exists "^5.0.0" - unicorn-magic "^0.1.0" - -flat-cache@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" - integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.4" - -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== - -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -gensequence@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-7.0.0.tgz#bb6aedec8ff665e3a6c42f92823121e3a6ea7718" - integrity sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-east-asian-width@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" - integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stdin@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" - integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -get-tsconfig@^4.7.5: - version "4.8.1" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" - integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== - dependencies: - resolve-pkg-maps "^1.0.0" - -git-raw-commits@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-4.0.0.tgz#b212fd2bff9726d27c1283a1157e829490593285" - integrity sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== - dependencies: - dargs "^8.0.0" - meow "^12.0.1" - split2 "^4.0.0" - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^10.3.7: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-directory@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" - integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== - dependencies: - ini "4.1.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" - integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== - -graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphql-tag@^2.10.3: - version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" - integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== - dependencies: - tslib "^2.1.0" - -graphql@^16.0.0, graphql@^16.8.1: - version "16.9.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" - integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-own-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" - integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== - -has-own-property@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-own-property/-/has-own-property-0.1.0.tgz#992b0f5bb3a25416f8d4d0cde53f497b9d7b1ea5" - integrity sha512-14qdBKoonU99XDhWcFKZTShK+QV47qU97u8zzoVo9cL5TZ3BmBHXogItSt9qJjR0KUMFRhcCW8uGIGl8nkl7Aw== - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -headers-polyfill@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-4.0.3.tgz#922a0155de30ecc1f785bcf04be77844ca95ad07" - integrity sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ== - -hono@4.4.13: - version "4.4.13" - resolved "https://registry.yarnpkg.com/hono/-/hono-4.4.13.tgz#954e8f6e4bab14f3f9d7bac4eef4c56d23e7f900" - integrity sha512-c6qqenclmQ6wpXzqiElMa2jt423PVCmgBreDfC5s2lPPpGk7d0lOymd8QTzFZyYC5mSSs6imiTMPip+gLwuW/g== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -https-proxy-agent@^7.0.2: - version "7.0.5" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" - integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== - dependencies: - agent-base "^7.0.2" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -husky@9.0.11: - version "9.0.11" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9" - integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== - -identity-function@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/identity-function/-/identity-function-1.0.0.tgz#bea1159f0985239be3ca348edf40ce2f0dd2c21d" - integrity sha512-kNrgUK0qI+9qLTBidsH85HjDLpZfrrS0ElquKKe/fJFdB3D7VeKdXXEvOPDUHSHOzdZKCAAaQIWWyp0l2yq6pw== - -ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" - integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -import-meta-resolve@^4.0.0, import-meta-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" - integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" - integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-core-module@^2.13.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== - dependencies: - hasown "^2.0.2" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-fullwidth-code-point@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" - integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== - dependencies: - get-east-asian-width "^1.0.0" - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-iterable@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-iterable/-/is-iterable-1.1.1.tgz#71f9aa6f113e1d968ebe1d41cff4c8fb23a817bc" - integrity sha512-EdOZCr0NsGE00Pot+x1ZFx9MJK3C6wy91geZpXwvwexDLJvA4nzYyZf7r+EIwSeVsOLDdBz7ATg9NqKTzuNYuQ== - -is-node-process@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" - integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-text-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" - integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== - dependencies: - text-extensions "^2.0.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isomorphic-git@^1.25.6: - version "1.27.1" - resolved "https://registry.yarnpkg.com/isomorphic-git/-/isomorphic-git-1.27.1.tgz#a2752fce23a09f04baa590c41cfaf61e973405b3" - integrity sha512-X32ph5zIWfT75QAqW2l3JCIqnx9/GWd17bRRehmn3qmWc34OYbSXY6Cxv0o9bIIY+CWugoN4nQFHNA+2uYf2nA== - dependencies: - async-lock "^1.4.1" - clean-git-ref "^2.0.1" - crc-32 "^1.2.0" - diff3 "0.0.3" - ignore "^5.1.4" - minimisted "^2.0.0" - pako "^1.0.10" - pify "^4.0.1" - readable-stream "^3.4.0" - sha.js "^2.4.9" - simple-get "^4.0.1" - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" - integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== - dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" - integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -iterable-lookahead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/iterable-lookahead/-/iterable-lookahead-1.0.0.tgz#896dfcb78680bdb50036e97edb034c8b68a9737f" - integrity sha512-hJnEP2Xk4+44DDwJqUQGdXal5VbyeWLaPyDl2AQc242Zr7iqz4DgpQOrEzglWVMGHMDCkguLHEKxd1+rOsmgSQ== - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== - dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-junit@16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785" - integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ== - dependencies: - mkdirp "^1.0.4" - strip-ansi "^6.0.1" - uuid "^8.3.2" - xml "^1.0.1" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-md-dashboard@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/jest-md-dashboard/-/jest-md-dashboard-0.8.0.tgz#024eeaf2192cf93f3c6f7dad8fec1dc94e2b05e1" - integrity sha512-CaxG69pKBA9UauMHBxmsxNbbPMe3kcdTY17BUBM1hj3ZKyZSnKDnOqtnjMti4t9XKuf6Hc3Vn1pXBfll3bWn6A== - dependencies: - isomorphic-git "^1.25.6" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^29.0.0, jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== - dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== - dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" - -jiti@1.21.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== - -jiti@^1.21.6: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -keyv@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -knip@5.17.3: - version "5.17.3" - resolved "https://registry.yarnpkg.com/knip/-/knip-5.17.3.tgz#eb2c285bc513e679917fdddeb54842b90cd90299" - integrity sha512-x2paKB0BOzFjnetYolGwg9Dwa8ZIYwBuVP2V4bWRFfTeLs7BymARb7I00R3OCbr09gKKr8TPLQVx2GQ6RF9llQ== - dependencies: - "@ericcornelissen/bash-parser" "0.5.2" - "@nodelib/fs.walk" "2.0.0" - "@snyk/github-codeowners" "1.1.0" - easy-table "1.2.0" - fast-glob "3.3.2" - file-entry-cache "8.0.0" - jiti "1.21.0" - js-yaml "4.1.0" - minimist "1.2.8" - picocolors "1.0.0" - picomatch "^4.0.1" - pretty-ms "9.0.0" - resolve "1.22.8" - smol-toml "1.1.4" - strip-json-comments "5.0.1" - summary "2.1.0" - zod "^3.22.4" - zod-validation-error "^3.0.3" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lilconfig@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" - integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lint-staged@15.2.5: - version "15.2.5" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.5.tgz#8c342f211bdb34ffd3efd1311248fa6b50b43b50" - integrity sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA== - dependencies: - chalk "~5.3.0" - commander "~12.1.0" - debug "~4.3.4" - execa "~8.0.1" - lilconfig "~3.1.1" - listr2 "~8.2.1" - micromatch "~4.0.7" - pidtree "~0.6.0" - string-argv "~0.3.2" - yaml "~2.4.2" - -listr2@~8.2.1: - version "8.2.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.5.tgz#5c9db996e1afeb05db0448196d3d5f64fec2593d" - integrity sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ== - dependencies: - cli-truncate "^4.0.0" - colorette "^2.0.20" - eventemitter3 "^5.0.1" - log-update "^6.1.0" - rfdc "^1.4.1" - wrap-ansi "^9.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -locate-path@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.curry@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" - integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.mergewith@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" - integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== - -lodash.snakecase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash.upperfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-update@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" - integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== - dependencies: - ansi-escapes "^7.0.0" - cli-cursor "^5.0.0" - slice-ansi "^7.1.0" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - -lru-cache@^10.0.0, lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -luxon@3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" - integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== - -magic-string@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.16.0.tgz#970ebb0da7193301285fb1aa650f39bdd81eb45a" - integrity sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ== - dependencies: - vlq "^0.2.1" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@1.x, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ== - -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -meow@^12.0.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" - integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4, micromatch@^4.0.7, micromatch@~4.0.7: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-function@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" - integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@1.2.8, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minimisted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/minimisted/-/minimisted-2.0.1.tgz#d059fb905beecf0774bc3b308468699709805cb1" - integrity sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA== - dependencies: - minimist "^1.2.5" - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4, minipass@^7.1.0, minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -minizlib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012" - integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg== - dependencies: - minipass "^7.0.4" - rimraf "^5.0.5" - -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== - -ms@2.1.3, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -msw@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/msw/-/msw-2.3.1.tgz#bfc73e256ffc2c74ec4381b604abb258df35f32b" - integrity sha512-ocgvBCLn/5l3jpl1lssIb3cniuACJLoOfZu01e3n5dbJrpA5PeeWn28jCLgQDNt6d7QT8tF2fYRzm9JoEHtiig== - dependencies: - "@bundled-es-modules/cookie" "^2.0.0" - "@bundled-es-modules/statuses" "^1.0.1" - "@inquirer/confirm" "^3.0.0" - "@mswjs/cookies" "^1.1.0" - "@mswjs/interceptors" "^0.29.0" - "@open-draft/until" "^2.1.0" - "@types/cookie" "^0.6.0" - "@types/statuses" "^2.0.4" - chalk "^4.1.2" - graphql "^16.8.1" - headers-polyfill "^4.0.2" - is-node-process "^1.2.0" - outvariant "^1.4.2" - path-to-regexp "^6.2.0" - strict-event-emitter "^0.5.1" - type-fest "^4.9.0" - yargs "^17.7.2" - -msw@^2.0.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/msw/-/msw-2.4.11.tgz#17001366c7c8de1540436d06d194f8facffed0f4" - integrity sha512-TVEw9NOPTc6ufOQLJ53234S9NBRxQbu7xFMxs+OCP43JQcNEIOKiZHxEm2nDzYIrwccoIhUxUf8wr99SukD76A== - dependencies: - "@bundled-es-modules/cookie" "^2.0.0" - "@bundled-es-modules/statuses" "^1.0.1" - "@bundled-es-modules/tough-cookie" "^0.1.6" - "@inquirer/confirm" "^3.0.0" - "@mswjs/interceptors" "^0.35.8" - "@open-draft/until" "^2.1.0" - "@types/cookie" "^0.6.0" - "@types/statuses" "^2.0.4" - chalk "^4.1.2" - graphql "^16.8.1" - headers-polyfill "^4.0.2" - is-node-process "^1.2.0" - outvariant "^1.4.3" - path-to-regexp "^6.3.0" - strict-event-emitter "^0.5.1" - type-fest "^4.26.1" - yargs "^17.7.2" - -mute-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" - integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" - integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-normalize-package-bin@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" - integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" - integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - dependencies: - path-key "^4.0.0" - -object-pairs@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-pairs/-/object-pairs-0.1.0.tgz#8276eed81d60b8549d69c5f73a682ab9da4ff32f" - integrity sha512-3ECr6K831I4xX/Mduxr9UC+HPOz/d6WKKYj9p4cmC8Lg8p7g8gitzsxNX5IWlSIgFWN/a4JgrJaoAMKn20oKwA== - -object-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/object-values/-/object-values-1.0.0.tgz#72af839630119e5b98c3b02bb8c27e3237158105" - integrity sha512-+8hwcz/JnQ9EpLIXzN0Rs7DLsBpJNT/xYehtB/jU93tHYr5BFEO8E+JGQNOSqE7opVzz5cGksKFHt7uUJVLSjQ== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -onetime@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" - integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== - dependencies: - mimic-function "^5.0.0" - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -outvariant@^1.2.1, outvariant@^1.4.0, outvariant@^1.4.2, outvariant@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.3.tgz#221c1bfc093e8fec7075497e7799fdbf43d14873" - integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pako@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parent-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708" - integrity sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg== - dependencies: - callsites "^3.1.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-ms@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4" - integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-to-regexp@^6.2.0, path-to-regexp@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" - integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== - -picocolors@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picocolors@^1.0.0, picocolors@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -picomatch@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" - integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== - -pidtree@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.0.tgz#d173ea0524a691d4c0b1181752f2b46724328cdf" - integrity sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g== - -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-ms@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-9.0.0.tgz#53c57f81171c53be7ce3fd20bdd4265422bc5929" - integrity sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng== - dependencies: - parse-ms "^4.0.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -pure-rand@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" - integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - -read-cmd-shim@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" - integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== - -readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - -resolve.exports@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== - -resolve@1.22.8, resolve@^1.20.0: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" - integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== - dependencies: - onetime "^7.0.0" - signal-exit "^4.1.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -reverse-arguments@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/reverse-arguments/-/reverse-arguments-1.0.0.tgz#c28095a3a921ac715d61834ddece9027992667cd" - integrity sha512-/x8uIPdTafBqakK0TmPNJzgkLP+3H+yxpUJhCQHsLBg1rYEVNR2D8BRYNWQhVBjyOd7oo1dZRVzIkwMY2oqfYQ== - -rfdc@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -rimraf@^5.0.5: - version "5.0.10" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" - integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== - dependencies: - glob "^10.3.7" - -run-parallel@^1.1.9, run-parallel@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-buffer@^5.0.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -sha.js@^2.4.9: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote-word@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/shell-quote-word/-/shell-quote-word-1.0.1.tgz#e2bdfd22d599fd68886491677e38f560f9d469c9" - integrity sha512-lT297f1WLAdq0A4O+AknIFRP6kkiI3s8C913eJ0XqBxJbZPGWUNkRQk2u8zk4bEAjUJ5i+fSLwB6z1HzeT+DEg== - -signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1, signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -slice-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" - integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== - dependencies: - ansi-styles "^6.2.1" - is-fullwidth-code-point "^5.0.0" - -smee-client@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/smee-client/-/smee-client-2.0.1.tgz#348a644c3499cc7687fcb42fbbaeeeb3211a365d" - integrity sha512-s2+eG9vNMWQQvu8Jz+SfAiihpYsmaMtcyPnHtBuZEhaAAQOQV63xSSL9StWv2p08xKgvSC8pEZ28rXoy41FhLg== - dependencies: - commander "^12.0.0" - eventsource "^2.0.2" - validator "^13.11.0" - -smol-toml@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/smol-toml/-/smol-toml-1.1.4.tgz#08c23b105f56f17e57b0a77c7edcb10b75a62c5c" - integrity sha512-Y0OT8HezWsTNeEOSVxDnKOW/AyNXHQ4BwJNbAXlLTF5wWsBvrcHhIkE5Rf8kQMLmgf7nDX3PVOlgC6/Aiggu3Q== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -split2@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -strict-event-emitter@^0.5.0, strict-event-emitter@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93" - integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ== - -string-argv@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string-width@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" - integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -string.fromcodepoint@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz#8d978333c0bc92538f50f383e4888f3e5619d653" - integrity sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg== - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1, strip-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-5.0.1.tgz#0d8b7d01b23848ed7dbdf4baaaa31a8250d8cfa0" - integrity sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -summary@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/summary/-/summary-2.1.0.tgz#be8a49a0aa34eb6ceea56042cae88f8add4b0885" - integrity sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw== - -supabase@1.176.9: - version "1.176.9" - resolved "https://registry.yarnpkg.com/supabase/-/supabase-1.176.9.tgz#ebff62d9269715dc28387ad65c4388b1b6b2452a" - integrity sha512-VmMgKsbwBf7IjZ6HUV7YRteYYmrBKhguRCX6JPyDizj9Ui/dd/4sZ31z2cVkuCDePChaCDeNF1bogIBC6822GQ== - dependencies: - bin-links "^4.0.3" - https-proxy-agent "^7.0.2" - node-fetch "^3.3.2" - tar "7.2.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - -tar@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-7.2.0.tgz#f03ae6ecd2e2bab880f2ef33450f502e761d7548" - integrity sha512-hctwP0Nb4AB60bj8WQgRYaMOuJYRAPMGiQUAotms5igN8ppfQM+IvjQ5HcKu1MaZh2Wy2KWVTe563Yj8dfc14w== - dependencies: - "@isaacs/fs-minipass" "^4.0.0" - chownr "^3.0.0" - minipass "^7.1.0" - minizlib "^3.0.1" - mkdirp "^3.0.1" - yallist "^5.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-extensions@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" - integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tinyexec@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" - integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-no-case@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz#c722907164ef6b178132c8e69930212d1b4aa16a" - integrity sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg== - -to-pascal-case@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-pascal-case/-/to-pascal-case-1.0.0.tgz#0bbdc8df448886ba01535e543327048d0aa1ce78" - integrity sha512-QGMWHqM6xPrcQW57S23c5/3BbYb0Tbe9p+ur98ckRnGDwD4wbbtDiYI38CfmMKNB5Iv0REjs5SNDntTwvDxzZA== - dependencies: - to-space-case "^1.0.0" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-space-case@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-space-case/-/to-space-case-1.0.0.tgz#b052daafb1b2b29dc770cea0163e5ec0ebc9fc17" - integrity sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA== - dependencies: - to-no-case "^1.0.0" - -tough-cookie@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" - integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -ts-jest@29.1.4: - version "29.1.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.4.tgz#26f8a55ce31e4d2ef7a1fd47dc7fa127e92793ef" - integrity sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^29.0.0" - json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^2.1.0, tslib@^2.6.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.0.tgz#d124c86c3c05a40a91e6fdea4021bd31d377971b" - integrity sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA== - -tsx@4.11.2: - version "4.11.2" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.11.2.tgz#91791db82cbcd3f7515e623cc9ff288f2aa663dc" - integrity sha512-V5DL5v1BuItjsQ2FN9+4OjR7n5cr8hSgN+VGmm/fd2/0cgQdBIWHcQ3bFYm/5ZTmyxkTDBUIaRuW2divgfPe0A== - dependencies: - esbuild "~0.20.2" - get-tsconfig "^4.7.5" - optionalDependencies: - fsevents "~2.3.3" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^4.26.1, type-fest@^4.9.0: - version "4.26.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.1.tgz#a4a17fa314f976dd3e6d6675ef6c775c16d7955e" - integrity sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg== - -typebox-validators@0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/typebox-validators/-/typebox-validators-0.3.5.tgz#b913bad0a87571ffe0edd01d2b6090a268e1ecc9" - integrity sha512-FXrmSUAN6bSGxDANResNCZQ8VRRLr5bSyy73/HyqSXGdiVuogppGAoRocy7NTVZY4Wc2sWUofmWwwIXE6OxS6Q== - -typescript@5.5.4: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== - -undici-types@~6.19.2: - version "6.19.8" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" - integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== - -undici@^5.25.4: - version "5.28.4" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" - integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== - dependencies: - "@fastify/busboy" "^2.0.0" - -unescape-js@^1.0.5: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unescape-js/-/unescape-js-1.1.4.tgz#4bc6389c499cb055a98364a0b3094e1c3d5da395" - integrity sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g== - dependencies: - string.fromcodepoint "^0.2.1" - -unicorn-magic@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" - integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== - -universal-github-app-jwt@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/universal-github-app-jwt/-/universal-github-app-jwt-2.2.0.tgz#dc6c8929e76f1996a766ba2a08fb420f73365d77" - integrity sha512-G5o6f95b5BggDGuUfKDApKaCgNYy2x7OdHY0zSMF081O0EJobw+1130VONhrA7ezGSV2FNOGyM+KQpQZAr9bIQ== - -universal-user-agent@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" - integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== - -universal-user-agent@^7.0.0, universal-user-agent@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e" - integrity sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -update-browserslist-db@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^8.3.1, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-to-istanbul@^9.0.1: - version "9.3.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" - integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - -validator@^13.11.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f" - integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== - -vlq@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== - -vscode-languageserver-textdocument@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz#457ee04271ab38998a093c68c2342f53f6e4a631" - integrity sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA== - -vscode-uri@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" - integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -web-streams-polyfill@^3.0.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" - integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrap-ansi@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" - integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -write-file-atomic@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" - integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" - -xdg-basedir@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" - integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== - -xml@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" - integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" - integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== - -yaml@2.4.5, yaml@~2.4.2: - version "2.4.5" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" - integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== - -yaml@^2.4.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.0.tgz#14059ad9d0b1680d0f04d3a60fe00f3a857303c3" - integrity sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ== - -yargs-parser@^21.0.1, yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.0.0, yargs@^17.3.1, yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== - -yoctocolors-cjs@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz#f4b905a840a37506813a7acaa28febe97767a242" - integrity sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA== - -zod-validation-error@^3.0.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.4.0.tgz#3a8a1f55c65579822d7faa190b51336c61bee2a6" - integrity sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ== - -zod@^3.22.4: - version "3.23.8" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" - integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== From 6f174bf76eb2e922e2a6d5e3433888381fc11b48 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:22:02 +0000 Subject: [PATCH 2/3] chore: updated manifest.json and dist build --- dist/index.js | 79723 +----------------------------------------------- 1 file changed, 3 insertions(+), 79720 deletions(-) diff --git a/dist/index.js b/dist/index.js index 6d920c5..7113f85 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,79720 +1,3 @@ -import { createRequire as __WEBPACK_EXTERNAL_createRequire } from "module"; -/******/ var __webpack_modules__ = ({ - -/***/ 8612: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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.issue = exports.issueCommand = void 0; -const os = __importStar(__nccwpck_require__(857)); -const utils_1 = __nccwpck_require__(6088); -/** - * 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 += ' '; - 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)}`; - } - } - } - } - cmdStr += `${CMD_STRING}${escapeData(this.message)}`; - return cmdStr; - } -} -function escapeData(s) { - return (0, utils_1.toCommandValue)(s) - .replace(/%/g, '%25') - .replace(/\r/g, '%0D') - .replace(/\n/g, '%0A'); -} -function escapeProperty(s) { - return (0, 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 - -/***/ }), - -/***/ 2738: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.platform = exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = exports.markdownSummary = exports.summary = 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__(8612); -const file_command_1 = __nccwpck_require__(35); -const utils_1 = __nccwpck_require__(6088); -const os = __importStar(__nccwpck_require__(857)); -const path = __importStar(__nccwpck_require__(6928)); -const oidc_utils_1 = __nccwpck_require__(9528); -/** - * 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 = 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 = (0, utils_1.toCommandValue)(val); - process.env[name] = convertedVal; - const filePath = process.env['GITHUB_ENV'] || ''; - if (filePath) { - return (0, file_command_1.issueFileCommand)('ENV', (0, file_command_1.prepareKeyValueMessage)(name, val)); - } - (0, 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) { - (0, 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) { - (0, file_command_1.issueFileCommand)('PATH', inputPath); - } - else { - (0, 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 (0, file_command_1.issueFileCommand)('OUTPUT', (0, file_command_1.prepareKeyValueMessage)(name, value)); - } - process.stdout.write(os.EOL); - (0, command_1.issueCommand)('set-output', { name }, (0, 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) { - (0, 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) { - (0, 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 = {}) { - (0, command_1.issueCommand)('error', (0, 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 = {}) { - (0, command_1.issueCommand)('warning', (0, 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 = {}) { - (0, command_1.issueCommand)('notice', (0, 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) { - (0, command_1.issue)('group', name); -} -exports.startGroup = startGroup; -/** - * End an output group. - */ -function endGroup() { - (0, 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 (0, file_command_1.issueFileCommand)('STATE', (0, file_command_1.prepareKeyValueMessage)(name, value)); - } - (0, command_1.issueCommand)('save-state', { name }, (0, 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__(101); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(101); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2102); -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; } })); -/** - * Platform utilities exports - */ -exports.platform = __importStar(__nccwpck_require__(4385)); -//# sourceMappingURL=core.js.map - -/***/ }), - -/***/ 35: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -// For internal use, subject to change. -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.prepareKeyValueMessage = exports.issueFileCommand = void 0; -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ -const crypto = __importStar(__nccwpck_require__(6982)); -const fs = __importStar(__nccwpck_require__(9896)); -const os = __importStar(__nccwpck_require__(857)); -const utils_1 = __nccwpck_require__(6088); -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, `${(0, utils_1.toCommandValue)(message)}${os.EOL}`, { - encoding: 'utf8' - }); -} -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${crypto.randomUUID()}`; - const convertedValue = (0, 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 - -/***/ }), - -/***/ 9528: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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__(8278); -const auth_1 = __nccwpck_require__(66); -const core_1 = __nccwpck_require__(2738); -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 => { - throw new Error(`Failed to get ID Token. \n - Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); - }); - 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'); - } - return id_token; - }); - } - 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}`; - } - (0, core_1.debug)(`ID token url is ${id_token_url}`); - const id_token = yield OidcClient.getCall(id_token_url); - (0, core_1.setSecret)(id_token); - return id_token; - } - catch (error) { - throw new Error(`Error message: ${error.message}`); - } - }); - } -} -exports.OidcClient = OidcClient; -//# sourceMappingURL=oidc-utils.js.map - -/***/ }), - -/***/ 2102: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(6928)); -/** - * 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 - -/***/ }), - -/***/ 4385: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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 })); -exports.getDetails = exports.isLinux = exports.isMacOS = exports.isWindows = exports.arch = exports.platform = void 0; -const os_1 = __importDefault(__nccwpck_require__(857)); -const exec = __importStar(__nccwpck_require__(6610)); -const getWindowsInfo = () => __awaiter(void 0, void 0, void 0, function* () { - const { stdout: version } = yield exec.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"', undefined, { - silent: true - }); - const { stdout: name } = yield exec.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"', undefined, { - silent: true - }); - return { - name: name.trim(), - version: version.trim() - }; -}); -const getMacOsInfo = () => __awaiter(void 0, void 0, void 0, function* () { - var _a, _b, _c, _d; - const { stdout } = yield exec.getExecOutput('sw_vers', undefined, { - silent: true - }); - const version = (_b = (_a = stdout.match(/ProductVersion:\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : ''; - const name = (_d = (_c = stdout.match(/ProductName:\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : ''; - return { - name, - version - }; -}); -const getLinuxInfo = () => __awaiter(void 0, void 0, void 0, function* () { - const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], { - silent: true - }); - const [name, version] = stdout.trim().split('\n'); - return { - name, - version - }; -}); -exports.platform = os_1.default.platform(); -exports.arch = os_1.default.arch(); -exports.isWindows = exports.platform === 'win32'; -exports.isMacOS = exports.platform === 'darwin'; -exports.isLinux = exports.platform === 'linux'; -function getDetails() { - return __awaiter(this, void 0, void 0, function* () { - return Object.assign(Object.assign({}, (yield (exports.isWindows - ? getWindowsInfo() - : exports.isMacOS - ? getMacOsInfo() - : getLinuxInfo()))), { platform: exports.platform, - arch: exports.arch, - isWindows: exports.isWindows, - isMacOS: exports.isMacOS, - isLinux: exports.isLinux }); - }); -} -exports.getDetails = getDetails; -//# sourceMappingURL=platform.js.map - -/***/ }), - -/***/ 101: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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__(857); -const fs_1 = __nccwpck_require__(9896); -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; - } - 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.`); - } - 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.`); - } - 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); - const filePath = yield this.filePath(); - const writeFunc = overwrite ? writeFile : appendFile; - 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* () { - 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); - }) - .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) - ? 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 - -/***/ }), - -/***/ 6088: -/***/ ((__unused_webpack_module, exports) => { - - -// 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 - -/***/ }), - -/***/ 6610: -/***/ (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 __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.getExecOutput = exports.exec = void 0; -const string_decoder_1 = __nccwpck_require__(3193); -const tr = __importStar(__nccwpck_require__(7387)); -/** - * Exec a command. - * Output will be streamed to the live console. - * Returns promise with return code - * - * @param commandLine command to execute (can include additional args). Must be correctly escaped. - * @param args optional arguments for tool. Escaping is handled by the lib. - * @param options optional exec options. See ExecOptions - * @returns Promise exit code - */ -function exec(commandLine, args, options) { - return __awaiter(this, void 0, void 0, function* () { - const commandArgs = tr.argStringToArray(commandLine); - if (commandArgs.length === 0) { - throw new Error(`Parameter 'commandLine' cannot be null or empty.`); - } - // Path to tool to execute should be first arg - const toolPath = commandArgs[0]; - args = commandArgs.slice(1).concat(args || []); - const runner = new tr.ToolRunner(toolPath, args, options); - return runner.exec(); - }); -} -exports.exec = exec; -/** - * Exec a command and get the output. - * Output will be streamed to the live console. - * Returns promise with the exit code and collected stdout and stderr - * - * @param commandLine command to execute (can include additional args). Must be correctly escaped. - * @param args optional arguments for tool. Escaping is handled by the lib. - * @param options optional exec options. See ExecOptions - * @returns Promise exit code, stdout, and stderr - */ -function getExecOutput(commandLine, args, options) { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - let stdout = ''; - let stderr = ''; - //Using string decoder covers the case where a mult-byte character is split - const stdoutDecoder = new string_decoder_1.StringDecoder('utf8'); - const stderrDecoder = new string_decoder_1.StringDecoder('utf8'); - const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout; - const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr; - const stdErrListener = (data) => { - stderr += stderrDecoder.write(data); - if (originalStdErrListener) { - originalStdErrListener(data); - } - }; - const stdOutListener = (data) => { - stdout += stdoutDecoder.write(data); - if (originalStdoutListener) { - originalStdoutListener(data); - } - }; - const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener }); - const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners })); - //flush any remaining characters - stdout += stdoutDecoder.end(); - stderr += stderrDecoder.end(); - return { - exitCode, - stdout, - stderr - }; - }); -} -exports.getExecOutput = getExecOutput; -//# sourceMappingURL=exec.js.map - -/***/ }), - -/***/ 7387: -/***/ (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 __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.argStringToArray = exports.ToolRunner = void 0; -const os = __importStar(__nccwpck_require__(857)); -const events = __importStar(__nccwpck_require__(4434)); -const child = __importStar(__nccwpck_require__(5317)); -const path = __importStar(__nccwpck_require__(6928)); -const io = __importStar(__nccwpck_require__(1136)); -const ioUtil = __importStar(__nccwpck_require__(2553)); -const timers_1 = __nccwpck_require__(3557); -/* eslint-disable @typescript-eslint/unbound-method */ -const IS_WINDOWS = process.platform === 'win32'; -/* - * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way. - */ -class ToolRunner extends events.EventEmitter { - constructor(toolPath, args, options) { - super(); - if (!toolPath) { - throw new Error("Parameter 'toolPath' cannot be null or empty."); - } - this.toolPath = toolPath; - this.args = args || []; - this.options = options || {}; - } - _debug(message) { - if (this.options.listeners && this.options.listeners.debug) { - this.options.listeners.debug(message); - } - } - _getCommandString(options, noPrefix) { - const toolPath = this._getSpawnFileName(); - const args = this._getSpawnArgs(options); - let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool - if (IS_WINDOWS) { - // Windows + cmd file - if (this._isCmdFile()) { - cmd += toolPath; - for (const a of args) { - cmd += ` ${a}`; - } - } - // Windows + verbatim - else if (options.windowsVerbatimArguments) { - cmd += `"${toolPath}"`; - for (const a of args) { - cmd += ` ${a}`; - } - } - // Windows (regular) - else { - cmd += this._windowsQuoteCmdArg(toolPath); - for (const a of args) { - cmd += ` ${this._windowsQuoteCmdArg(a)}`; - } - } - } - else { - // OSX/Linux - this can likely be improved with some form of quoting. - // creating processes on Unix is fundamentally different than Windows. - // on Unix, execvp() takes an arg array. - cmd += toolPath; - for (const a of args) { - cmd += ` ${a}`; - } - } - return cmd; - } - _processLineBuffer(data, strBuffer, onLine) { - try { - let s = strBuffer + data.toString(); - let n = s.indexOf(os.EOL); - while (n > -1) { - const line = s.substring(0, n); - onLine(line); - // the rest of the string ... - s = s.substring(n + os.EOL.length); - n = s.indexOf(os.EOL); - } - return s; - } - catch (err) { - // streaming lines to console is best effort. Don't fail a build. - this._debug(`error processing line. Failed with error ${err}`); - return ''; - } - } - _getSpawnFileName() { - if (IS_WINDOWS) { - if (this._isCmdFile()) { - return process.env['COMSPEC'] || 'cmd.exe'; - } - } - return this.toolPath; - } - _getSpawnArgs(options) { - if (IS_WINDOWS) { - if (this._isCmdFile()) { - let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; - for (const a of this.args) { - argline += ' '; - argline += options.windowsVerbatimArguments - ? a - : this._windowsQuoteCmdArg(a); - } - argline += '"'; - return [argline]; - } - } - return this.args; - } - _endsWith(str, end) { - return str.endsWith(end); - } - _isCmdFile() { - const upperToolPath = this.toolPath.toUpperCase(); - return (this._endsWith(upperToolPath, '.CMD') || - this._endsWith(upperToolPath, '.BAT')); - } - _windowsQuoteCmdArg(arg) { - // for .exe, apply the normal quoting rules that libuv applies - if (!this._isCmdFile()) { - return this._uvQuoteCmdArg(arg); - } - // otherwise apply quoting rules specific to the cmd.exe command line parser. - // the libuv rules are generic and are not designed specifically for cmd.exe - // command line parser. - // - // for a detailed description of the cmd.exe command line parser, refer to - // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912 - // need quotes for empty arg - if (!arg) { - return '""'; - } - // determine whether the arg needs to be quoted - const cmdSpecialChars = [ - ' ', - '\t', - '&', - '(', - ')', - '[', - ']', - '{', - '}', - '^', - '=', - ';', - '!', - "'", - '+', - ',', - '`', - '~', - '|', - '<', - '>', - '"' - ]; - let needsQuotes = false; - for (const char of arg) { - if (cmdSpecialChars.some(x => x === char)) { - needsQuotes = true; - break; - } - } - // short-circuit if quotes not needed - if (!needsQuotes) { - return arg; - } - // the following quoting rules are very similar to the rules that by libuv applies. - // - // 1) wrap the string in quotes - // - // 2) double-up quotes - i.e. " => "" - // - // this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately - // doesn't work well with a cmd.exe command line. - // - // note, replacing " with "" also works well if the arg is passed to a downstream .NET console app. - // for example, the command line: - // foo.exe "myarg:""my val""" - // is parsed by a .NET console app into an arg array: - // [ "myarg:\"my val\"" ] - // which is the same end result when applying libuv quoting rules. although the actual - // command line from libuv quoting rules would look like: - // foo.exe "myarg:\"my val\"" - // - // 3) double-up slashes that precede a quote, - // e.g. hello \world => "hello \world" - // hello\"world => "hello\\""world" - // hello\\"world => "hello\\\\""world" - // hello world\ => "hello world\\" - // - // technically this is not required for a cmd.exe command line, or the batch argument parser. - // the reasons for including this as a .cmd quoting rule are: - // - // a) this is optimized for the scenario where the argument is passed from the .cmd file to an - // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule. - // - // b) it's what we've been doing previously (by deferring to node default behavior) and we - // haven't heard any complaints about that aspect. - // - // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be - // escaped when used on the command line directly - even though within a .cmd file % can be escaped - // by using %%. - // - // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts - // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing. - // - // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would - // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the - // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args - // to an external program. - // - // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file. - // % can be escaped within a .cmd file. - let reverse = '"'; - let quoteHit = true; - for (let i = arg.length; i > 0; i--) { - // walk the string in reverse - reverse += arg[i - 1]; - if (quoteHit && arg[i - 1] === '\\') { - reverse += '\\'; // double the slash - } - else if (arg[i - 1] === '"') { - quoteHit = true; - reverse += '"'; // double the quote - } - else { - quoteHit = false; - } - } - reverse += '"'; - return reverse - .split('') - .reverse() - .join(''); - } - _uvQuoteCmdArg(arg) { - // Tool runner wraps child_process.spawn() and needs to apply the same quoting as - // Node in certain cases where the undocumented spawn option windowsVerbatimArguments - // is used. - // - // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV, - // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details), - // pasting copyright notice from Node within this function: - // - // Copyright Joyent, Inc. and other Node contributors. All rights reserved. - // - // Permission is hereby granted, free of charge, to any person obtaining a copy - // of this software and associated documentation files (the "Software"), to - // deal in the Software without restriction, including without limitation the - // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - // sell copies of the Software, and to permit persons to whom the Software is - // furnished to do so, subject to the following conditions: - // - // The above copyright notice and this permission notice shall be included in - // all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - // IN THE SOFTWARE. - if (!arg) { - // Need double quotation for empty argument - return '""'; - } - if (!arg.includes(' ') && !arg.includes('\t') && !arg.includes('"')) { - // No quotation needed - return arg; - } - if (!arg.includes('"') && !arg.includes('\\')) { - // No embedded double quotes or backslashes, so I can just wrap - // quote marks around the whole thing. - return `"${arg}"`; - } - // Expected input/output: - // input : hello"world - // output: "hello\"world" - // input : hello""world - // output: "hello\"\"world" - // input : hello\world - // output: hello\world - // input : hello\\world - // output: hello\\world - // input : hello\"world - // output: "hello\\\"world" - // input : hello\\"world - // output: "hello\\\\\"world" - // input : hello world\ - // output: "hello world\\" - note the comment in libuv actually reads "hello world\" - // but it appears the comment is wrong, it should be "hello world\\" - let reverse = '"'; - let quoteHit = true; - for (let i = arg.length; i > 0; i--) { - // walk the string in reverse - reverse += arg[i - 1]; - if (quoteHit && arg[i - 1] === '\\') { - reverse += '\\'; - } - else if (arg[i - 1] === '"') { - quoteHit = true; - reverse += '\\'; - } - else { - quoteHit = false; - } - } - reverse += '"'; - return reverse - .split('') - .reverse() - .join(''); - } - _cloneExecOptions(options) { - options = options || {}; - const result = { - cwd: options.cwd || process.cwd(), - env: options.env || process.env, - silent: options.silent || false, - windowsVerbatimArguments: options.windowsVerbatimArguments || false, - failOnStdErr: options.failOnStdErr || false, - ignoreReturnCode: options.ignoreReturnCode || false, - delay: options.delay || 10000 - }; - result.outStream = options.outStream || process.stdout; - result.errStream = options.errStream || process.stderr; - return result; - } - _getSpawnOptions(options, toolPath) { - options = options || {}; - const result = {}; - result.cwd = options.cwd; - result.env = options.env; - result['windowsVerbatimArguments'] = - options.windowsVerbatimArguments || this._isCmdFile(); - if (options.windowsVerbatimArguments) { - result.argv0 = `"${toolPath}"`; - } - return result; - } - /** - * Exec a tool. - * Output will be streamed to the live console. - * Returns promise with return code - * - * @param tool path to tool to exec - * @param options optional exec options. See ExecOptions - * @returns number - */ - exec() { - return __awaiter(this, void 0, void 0, function* () { - // root the tool path if it is unrooted and contains relative pathing - if (!ioUtil.isRooted(this.toolPath) && - (this.toolPath.includes('/') || - (IS_WINDOWS && this.toolPath.includes('\\')))) { - // prefer options.cwd if it is specified, however options.cwd may also need to be rooted - this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); - } - // if the tool is only a file name, then resolve it from the PATH - // otherwise verify it exists (add extension on Windows if necessary) - this.toolPath = yield io.which(this.toolPath, true); - return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { - this._debug(`exec tool: ${this.toolPath}`); - this._debug('arguments:'); - for (const arg of this.args) { - this._debug(` ${arg}`); - } - const optionsNonNull = this._cloneExecOptions(this.options); - if (!optionsNonNull.silent && optionsNonNull.outStream) { - optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL); - } - const state = new ExecState(optionsNonNull, this.toolPath); - state.on('debug', (message) => { - this._debug(message); - }); - if (this.options.cwd && !(yield ioUtil.exists(this.options.cwd))) { - return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`)); - } - const fileName = this._getSpawnFileName(); - const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)); - let stdbuffer = ''; - if (cp.stdout) { - cp.stdout.on('data', (data) => { - if (this.options.listeners && this.options.listeners.stdout) { - this.options.listeners.stdout(data); - } - if (!optionsNonNull.silent && optionsNonNull.outStream) { - optionsNonNull.outStream.write(data); - } - stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => { - if (this.options.listeners && this.options.listeners.stdline) { - this.options.listeners.stdline(line); - } - }); - }); - } - let errbuffer = ''; - if (cp.stderr) { - cp.stderr.on('data', (data) => { - state.processStderr = true; - if (this.options.listeners && this.options.listeners.stderr) { - this.options.listeners.stderr(data); - } - if (!optionsNonNull.silent && - optionsNonNull.errStream && - optionsNonNull.outStream) { - const s = optionsNonNull.failOnStdErr - ? optionsNonNull.errStream - : optionsNonNull.outStream; - s.write(data); - } - errbuffer = this._processLineBuffer(data, errbuffer, (line) => { - if (this.options.listeners && this.options.listeners.errline) { - this.options.listeners.errline(line); - } - }); - }); - } - cp.on('error', (err) => { - state.processError = err.message; - state.processExited = true; - state.processClosed = true; - state.CheckComplete(); - }); - cp.on('exit', (code) => { - state.processExitCode = code; - state.processExited = true; - this._debug(`Exit code ${code} received from tool '${this.toolPath}'`); - state.CheckComplete(); - }); - cp.on('close', (code) => { - state.processExitCode = code; - state.processExited = true; - state.processClosed = true; - this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); - state.CheckComplete(); - }); - state.on('done', (error, exitCode) => { - if (stdbuffer.length > 0) { - this.emit('stdline', stdbuffer); - } - if (errbuffer.length > 0) { - this.emit('errline', errbuffer); - } - cp.removeAllListeners(); - if (error) { - reject(error); - } - else { - resolve(exitCode); - } - }); - if (this.options.input) { - if (!cp.stdin) { - throw new Error('child process missing stdin'); - } - cp.stdin.end(this.options.input); - } - })); - }); - } -} -exports.ToolRunner = ToolRunner; -/** - * Convert an arg string to an array of args. Handles escaping - * - * @param argString string of arguments - * @returns string[] array of arguments - */ -function argStringToArray(argString) { - const args = []; - let inQuotes = false; - let escaped = false; - let arg = ''; - function append(c) { - // we only escape double quotes. - if (escaped && c !== '"') { - arg += '\\'; - } - arg += c; - escaped = false; - } - for (let i = 0; i < argString.length; i++) { - const c = argString.charAt(i); - if (c === '"') { - if (!escaped) { - inQuotes = !inQuotes; - } - else { - append(c); - } - continue; - } - if (c === '\\' && escaped) { - append(c); - continue; - } - if (c === '\\' && inQuotes) { - escaped = true; - continue; - } - if (c === ' ' && !inQuotes) { - if (arg.length > 0) { - args.push(arg); - arg = ''; - } - continue; - } - append(c); - } - if (arg.length > 0) { - args.push(arg.trim()); - } - return args; -} -exports.argStringToArray = argStringToArray; -class ExecState extends events.EventEmitter { - constructor(options, toolPath) { - super(); - this.processClosed = false; // tracks whether the process has exited and stdio is closed - this.processError = ''; - this.processExitCode = 0; - this.processExited = false; // tracks whether the process has exited - this.processStderr = false; // tracks whether stderr was written to - this.delay = 10000; // 10 seconds - this.done = false; - this.timeout = null; - if (!toolPath) { - throw new Error('toolPath must not be empty'); - } - this.options = options; - this.toolPath = toolPath; - if (options.delay) { - this.delay = options.delay; - } - } - CheckComplete() { - if (this.done) { - return; - } - if (this.processClosed) { - this._setResult(); - } - else if (this.processExited) { - this.timeout = timers_1.setTimeout(ExecState.HandleTimeout, this.delay, this); - } - } - _debug(message) { - this.emit('debug', message); - } - _setResult() { - // determine whether there is an error - let error; - if (this.processExited) { - if (this.processError) { - error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`); - } - else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) { - error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`); - } - else if (this.processStderr && this.options.failOnStdErr) { - error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`); - } - } - // clear the timeout - if (this.timeout) { - clearTimeout(this.timeout); - this.timeout = null; - } - this.done = true; - this.emit('done', error, this.processExitCode); - } - static HandleTimeout(state) { - if (state.done) { - return; - } - if (!state.processClosed && state.processExited) { - const message = `The STDIO streams did not close within ${state.delay / - 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; - state._debug(message); - } - state._setResult(); - } -} -//# sourceMappingURL=toolrunner.js.map - -/***/ }), - -/***/ 2222: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Context = void 0; -const fs_1 = __nccwpck_require__(9896); -const os_1 = __nccwpck_require__(857); -class Context { - /** - * Hydrate the context from the environment - */ - constructor() { - var _a, _b, _c; - this.payload = {}; - if (process.env.GITHUB_EVENT_PATH) { - if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) { - this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); - } - else { - const path = process.env.GITHUB_EVENT_PATH; - process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); - } - } - this.eventName = process.env.GITHUB_EVENT_NAME; - this.sha = process.env.GITHUB_SHA; - this.ref = process.env.GITHUB_REF; - this.workflow = process.env.GITHUB_WORKFLOW; - this.action = process.env.GITHUB_ACTION; - this.actor = process.env.GITHUB_ACTOR; - this.job = process.env.GITHUB_JOB; - this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); - this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); - this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`; - this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`; - this.graphqlUrl = - (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`; - } - get issue() { - const payload = this.payload; - return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); - } - get repo() { - if (process.env.GITHUB_REPOSITORY) { - const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); - return { owner, repo }; - } - if (this.payload.repository) { - return { - owner: this.payload.repository.owner.login, - repo: this.payload.repository.name - }; - } - throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); - } -} -exports.Context = Context; -//# sourceMappingURL=context.js.map - -/***/ }), - -/***/ 3098: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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.getOctokit = exports.context = void 0; -const Context = __importStar(__nccwpck_require__(2222)); -const utils_1 = __nccwpck_require__(6684); -exports.context = new Context.Context(); -/** - * Returns a hydrated octokit ready to use for GitHub Actions - * - * @param token the repo PAT or GITHUB_TOKEN - * @param options other options to set - */ -function getOctokit(token, options, ...additionalPlugins) { - const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); - return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options)); -} -exports.getOctokit = getOctokit; -//# sourceMappingURL=github.js.map - -/***/ }), - -/***/ 6422: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getApiBaseUrl = exports.getProxyFetch = exports.getProxyAgentDispatcher = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(8278)); -const undici_1 = __nccwpck_require__(6630); -function getAuthString(token, options) { - if (!token && !options.auth) { - throw new Error('Parameter token or opts.auth is required'); - } - else if (token && options.auth) { - throw new Error('Parameters token and opts.auth may not both be specified'); - } - return typeof options.auth === 'string' ? options.auth : `token ${token}`; -} -exports.getAuthString = getAuthString; -function getProxyAgent(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgent(destinationUrl); -} -exports.getProxyAgent = getProxyAgent; -function getProxyAgentDispatcher(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgentDispatcher(destinationUrl); -} -exports.getProxyAgentDispatcher = getProxyAgentDispatcher; -function getProxyFetch(destinationUrl) { - const httpDispatcher = getProxyAgentDispatcher(destinationUrl); - const proxyFetch = (url, opts) => __awaiter(this, void 0, void 0, function* () { - return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { dispatcher: httpDispatcher })); - }); - return proxyFetch; -} -exports.getProxyFetch = getProxyFetch; -function getApiBaseUrl() { - return process.env['GITHUB_API_URL'] || 'https://api.github.com'; -} -exports.getApiBaseUrl = getApiBaseUrl; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 6684: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -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.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0; -const Context = __importStar(__nccwpck_require__(2222)); -const Utils = __importStar(__nccwpck_require__(6422)); -// octokit + plugins -const core_1 = __nccwpck_require__(1258); -const plugin_rest_endpoint_methods_1 = __nccwpck_require__(4988); -const plugin_paginate_rest_1 = __nccwpck_require__(157); -exports.context = new Context.Context(); -const baseUrl = Utils.getApiBaseUrl(); -exports.defaults = { - baseUrl, - request: { - agent: Utils.getProxyAgent(baseUrl), - fetch: Utils.getProxyFetch(baseUrl) - } -}; -exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults); -/** - * Convience function to correctly format Octokit Options to pass into the constructor. - * - * @param token the repo PAT or GITHUB_TOKEN - * @param options other options to set - */ -function getOctokitOptions(token, options) { - const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller - // Auth - const auth = Utils.getAuthString(token, opts); - if (auth) { - opts.auth = auth; - } - return opts; -} -exports.getOctokitOptions = getOctokitOptions; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 1258: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - Octokit: () => Octokit -}); -module.exports = __toCommonJS(dist_src_exports); -var import_universal_user_agent = __nccwpck_require__(2609); -var import_before_after_hook = __nccwpck_require__(1466); -var import_request = __nccwpck_require__(7985); -var import_graphql = __nccwpck_require__(937); -var import_auth_token = __nccwpck_require__(2658); - -// pkg/dist-src/version.js -var VERSION = "5.2.0"; - -// pkg/dist-src/index.js -var noop = () => { -}; -var consoleWarn = console.warn.bind(console); -var consoleError = console.error.bind(console); -var userAgentTrail = `octokit-core.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; -var Octokit = class { - static { - this.VERSION = VERSION; - } - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args) { - const options = args[0] || {}; - if (typeof defaults === "function") { - super(defaults(options)); - return; - } - super( - Object.assign( - {}, - defaults, - options, - options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null - ) - ); - } - }; - return OctokitWithDefaults; - } - static { - this.plugins = []; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - static plugin(...newPlugins) { - const currentPlugins = this.plugins; - const NewOctokit = class extends this { - static { - this.plugins = currentPlugins.concat( - newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) - ); - } - }; - return NewOctokit; - } - constructor(options = {}) { - const hook = new import_before_after_hook.Collection(); - const requestDefaults = { - baseUrl: import_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: "" - } - }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; - } - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; - } - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; - } - this.request = import_request.request.defaults(requestDefaults); - this.graphql = (0, import_graphql.withCustomRequest)(this.request).defaults(requestDefaults); - this.log = Object.assign( - { - debug: noop, - info: noop, - warn: consoleWarn, - error: consoleError - }, - options.log - ); - this.hook = hook; - if (!options.authStrategy) { - if (!options.auth) { - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - const auth = (0, import_auth_token.createTokenAuth)(options.auth); - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { authStrategy, ...otherOptions } = options; - const auth = authStrategy( - Object.assign( - { - request: this.request, - log: this.log, - // we pass the current octokit instance as well as its constructor options - // to allow for authentication strategies that return a new octokit instance - // that shares the same internal state as the current one. The original - // requirement for this was the "event-octokit" authentication strategy - // of https://github.com/probot/octokit-auth-probot. - octokit: this, - octokitOptions: otherOptions - }, - options.auth - ) - ); - hook.wrap("request", auth.hook); - this.auth = auth; - } - const classConstructor = this.constructor; - for (let i = 0; i < classConstructor.plugins.length; ++i) { - Object.assign(this, classConstructor.plugins[i](this, options)); - } - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 2658: -/***/ ((module) => { - - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - createTokenAuth: () => createTokenAuth -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/auth.js -var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -var REGEX_IS_INSTALLATION = /^ghs_/; -var 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, - tokenType - }; -} - -// pkg/dist-src/with-authorization-prefix.js -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - return `token ${token}`; -} - -// pkg/dist-src/hook.js -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge( - route, - parameters - ); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); -} - -// pkg/dist-src/index.js -var createTokenAuth = function createTokenAuth2(token) { - if (!token) { - throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); - } - if (typeof token !== "string") { - throw new Error( - "[@octokit/auth-token] Token passed to createTokenAuth is not a string" - ); - } - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) - }); -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 937: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - GraphqlResponseError: () => GraphqlResponseError, - graphql: () => graphql2, - withCustomRequest: () => withCustomRequest -}); -module.exports = __toCommonJS(dist_src_exports); -var import_request3 = __nccwpck_require__(7985); -var import_universal_user_agent = __nccwpck_require__(2609); - -// pkg/dist-src/version.js -var VERSION = "7.1.0"; - -// pkg/dist-src/with-defaults.js -var import_request2 = __nccwpck_require__(7985); - -// pkg/dist-src/graphql.js -var import_request = __nccwpck_require__(7985); - -// pkg/dist-src/error.js -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors: -` + data.errors.map((e) => ` - ${e.message}`).join("\n"); -} -var GraphqlResponseError = class extends Error { - constructor(request2, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request2; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; - this.errors = response.errors; - this.data = response.data; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } -}; - -// pkg/dist-src/graphql.js -var NON_VARIABLE_OPTIONS = [ - "method", - "baseUrl", - "url", - "headers", - "request", - "query", - "mediaType" -]; -var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request2, query, options) { - if (options) { - if (typeof query === "string" && "query" in options) { - return Promise.reject( - new Error(`[@octokit/graphql] "query" cannot be used as variable name`) - ); - } - for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) - continue; - return Promise.reject( - new Error( - `[@octokit/graphql] "${key}" cannot be used as variable name` - ) - ); - } - } - const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; - const requestOptions = Object.keys( - parsedOptions - ).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { - result[key] = parsedOptions[key]; - return result; - } - if (!result.variables) { - result.variables = {}; - } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); - const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); - } - return request2(requestOptions).then((response) => { - if (response.data.errors) { - const headers = {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } - throw new GraphqlResponseError( - requestOptions, - headers, - response.data - ); - } - return response.data.data; - }); -} - -// pkg/dist-src/with-defaults.js -function withDefaults(request2, newDefaults) { - const newRequest = request2.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: newRequest.endpoint - }); -} - -// pkg/dist-src/index.js -var graphql2 = withDefaults(import_request3.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); -} -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 9302: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - RequestError: () => RequestError -}); -module.exports = __toCommonJS(dist_src_exports); -var import_deprecation = __nccwpck_require__(1160); -var import_once = __toESM(__nccwpck_require__(5574)); -var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); -var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); -var RequestError = class extends Error { - constructor(message, statusCode, options) { - super(message); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - this.name = "HttpError"; - this.status = statusCode; - let headers; - if ("headers" in options && typeof options.headers !== "undefined") { - headers = options.headers; - } - if ("response" in options) { - this.response = options.response; - headers = options.response.headers; - } - const requestCopy = Object.assign({}, options.request); - if (options.request.headers.authorization) { - requestCopy.headers = Object.assign({}, options.request.headers, { - authorization: options.request.headers.authorization.replace( - / .*$/, - " [REDACTED]" - ) - }); - } - requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); - this.request = requestCopy; - Object.defineProperty(this, "code", { - get() { - logOnceCode( - new import_deprecation.Deprecation( - "[@octokit/request-error] `error.code` is deprecated, use `error.status`." - ) - ); - return statusCode; - } - }); - Object.defineProperty(this, "headers", { - get() { - logOnceHeaders( - new import_deprecation.Deprecation( - "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." - ) - ); - return headers || {}; - } - }); - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 7985: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - request: () => request -}); -module.exports = __toCommonJS(dist_src_exports); -var import_endpoint = __nccwpck_require__(7572); -var import_universal_user_agent = __nccwpck_require__(2609); - -// pkg/dist-src/version.js -var VERSION = "8.4.0"; - -// pkg/dist-src/is-plain-object.js -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); -} - -// pkg/dist-src/fetch-wrapper.js -var import_request_error = __nccwpck_require__(9302); - -// pkg/dist-src/get-buffer-response.js -function getBufferResponse(response) { - return response.arrayBuffer(); -} - -// pkg/dist-src/fetch-wrapper.js -function fetchWrapper(requestOptions) { - var _a, _b, _c, _d; - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - const parseSuccessResponseBody = ((_a = requestOptions.request) == null ? void 0 : _a.parseSuccessResponseBody) !== false; - if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { - requestOptions.body = JSON.stringify(requestOptions.body); - } - let headers = {}; - let status; - let url; - let { fetch } = globalThis; - if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) { - fetch = requestOptions.request.fetch; - } - if (!fetch) { - throw new Error( - "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" - ); - } - return fetch(requestOptions.url, { - method: requestOptions.method, - body: requestOptions.body, - redirect: (_c = requestOptions.request) == null ? void 0 : _c.redirect, - headers: requestOptions.headers, - signal: (_d = requestOptions.request) == null ? void 0 : _d.signal, - // duplex must be set if request.body is ReadableStream or Async Iterables. - // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. - ...requestOptions.body && { duplex: "half" } - }).then(async (response) => { - url = response.url; - status = response.status; - for (const keyAndValue of response.headers) { - headers[keyAndValue[0]] = keyAndValue[1]; - } - if ("deprecation" in headers) { - const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); - const deprecationLink = matches && matches.pop(); - log.warn( - `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` - ); - } - if (status === 204 || status === 205) { - return; - } - if (requestOptions.method === "HEAD") { - if (status < 400) { - return; - } - throw new import_request_error.RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: void 0 - }, - request: requestOptions - }); - } - if (status === 304) { - throw new import_request_error.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 import_request_error.RequestError(toErrorMessage(data), status, { - response: { - url, - status, - headers, - data - }, - request: requestOptions - }); - throw error; - } - return parseSuccessResponseBody ? await getResponseData(response) : response.body; - }).then((data) => { - return { - status, - url, - headers, - data - }; - }).catch((error) => { - if (error instanceof import_request_error.RequestError) - throw error; - else if (error.name === "AbortError") - throw error; - let message = error.message; - if (error.name === "TypeError" && "cause" in error) { - if (error.cause instanceof Error) { - message = error.cause.message; - } else if (typeof error.cause === "string") { - message = error.cause; - } - } - throw new import_request_error.RequestError(message, 500, { - request: requestOptions - }); - }); -} -async function getResponseData(response) { - const contentType = response.headers.get("content-type"); - if (/application\/json/.test(contentType)) { - return response.json().catch(() => response.text()).catch(() => ""); - } - if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { - return response.text(); - } - return getBufferResponse(response); -} -function toErrorMessage(data) { - if (typeof data === "string") - return data; - let suffix; - if ("documentation_url" in data) { - suffix = ` - ${data.documentation_url}`; - } else { - suffix = ""; - } - if ("message" in data) { - if (Array.isArray(data.errors)) { - return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; - } - return `${data.message}${suffix}`; - } - return `Unknown error: ${JSON.stringify(data)}`; -} - -// pkg/dist-src/with-defaults.js -function withDefaults(oldEndpoint, newDefaults) { - const endpoint2 = oldEndpoint.defaults(newDefaults); - const newApi = function(route, parameters) { - const endpointOptions = endpoint2.merge(route, parameters); - if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint2.parse(endpointOptions)); - } - const request2 = (route2, parameters2) => { - return fetchWrapper( - endpoint2.parse(endpoint2.merge(route2, parameters2)) - ); - }; - Object.assign(request2, { - endpoint: endpoint2, - defaults: withDefaults.bind(null, endpoint2) - }); - return endpointOptions.request.hook(request2, endpointOptions); - }; - return Object.assign(newApi, { - endpoint: endpoint2, - defaults: withDefaults.bind(null, endpoint2) - }); -} - -// pkg/dist-src/index.js -var request = withDefaults(import_endpoint.endpoint, { - headers: { - "user-agent": `octokit-request.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` - } -}); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 7572: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - endpoint: () => endpoint -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/defaults.js -var import_universal_user_agent = __nccwpck_require__(2609); - -// pkg/dist-src/version.js -var VERSION = "9.0.5"; - -// pkg/dist-src/defaults.js -var userAgent = `octokit-endpoint.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; -var DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "" - } -}; - -// pkg/dist-src/util/lowercase-keys.js -function lowercaseKeys(object) { - if (!object) { - return {}; - } - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -// pkg/dist-src/util/is-plain-object.js -function isPlainObject(value) { - if (typeof value !== "object" || value === null) - return false; - if (Object.prototype.toString.call(value) !== "[object Object]") - return false; - const proto = Object.getPrototypeOf(value); - if (proto === null) - return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); -} - -// pkg/dist-src/util/merge-deep.js -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach((key) => { - if (isPlainObject(options[key])) { - if (!(key in defaults)) - Object.assign(result, { [key]: options[key] }); - else - result[key] = mergeDeep(defaults[key], options[key]); - } else { - Object.assign(result, { [key]: options[key] }); - } - }); - return result; -} - -// pkg/dist-src/util/remove-undefined-properties.js -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === void 0) { - delete obj[key]; - } - } - return obj; -} - -// pkg/dist-src/merge.js -function merge(defaults, route, options) { - if (typeof route === "string") { - let [method, url] = route.split(" "); - options = Object.assign(url ? { method, url } : { url: method }, options); - } else { - options = Object.assign({}, route); - } - options.headers = lowercaseKeys(options.headers); - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); - if (options.url === "/graphql") { - if (defaults && defaults.mediaType.previews?.length) { - mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( - (preview) => !mergedOptions.mediaType.previews.includes(preview) - ).concat(mergedOptions.mediaType.previews); - } - mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); - } - return mergedOptions; -} - -// pkg/dist-src/util/add-query-parameters.js -function addQueryParameters(url, parameters) { - const separator = /\?/.test(url) ? "&" : "?"; - const names = Object.keys(parameters); - if (names.length === 0) { - return url; - } - return url + separator + names.map((name) => { - if (name === "q") { - return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); - } - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -// pkg/dist-src/util/extract-url-variable-names.js -var urlVariableRegex = /\{[^}]+\}/g; -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - if (!matches) { - return []; - } - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -// pkg/dist-src/util/omit.js -function omit(object, keysToOmit) { - const result = { __proto__: null }; - for (const key of Object.keys(object)) { - if (keysToOmit.indexOf(key) === -1) { - result[key] = object[key]; - } - } - return result; -} - -// pkg/dist-src/util/url-template.js -function encodeReserved(str) { - return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { - if (!/%[0-9A-Fa-f]/.test(part)) { - part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); - } - return part; - }).join(""); -} -function encodeUnreserved(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} -function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); - if (key) { - return encodeUnreserved(key) + "=" + value; - } else { - return value; - } -} -function isDefined(value) { - return value !== void 0 && value !== null; -} -function isKeyOperator(operator) { - return operator === ";" || operator === "&" || operator === "?"; -} -function getValues(context, operator, key, modifier) { - var value = context[key], result = []; - if (isDefined(value) && value !== "") { - if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { - value = value.toString(); - if (modifier && modifier !== "*") { - value = value.substring(0, parseInt(modifier, 10)); - } - result.push( - encodeValue(operator, value, isKeyOperator(operator) ? key : "") - ); - } else { - if (modifier === "*") { - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - result.push( - encodeValue(operator, value2, isKeyOperator(operator) ? key : "") - ); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); - } - } else { - const tmp = []; - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - tmp.push(encodeValue(operator, value2)); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); - } - }); - } - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); - } else if (tmp.length !== 0) { - result.push(tmp.join(",")); - } - } - } - } else { - if (operator === ";") { - if (isDefined(value)) { - result.push(encodeUnreserved(key)); - } - } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); - } else if (value === "") { - result.push(""); - } - } - return result; -} -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - template = template.replace( - /\{([^\{\}]+)\}|([^\{\}]+)/g, - function(_, expression, literal) { - if (expression) { - let operator = ""; - const values = []; - if (operators.indexOf(expression.charAt(0)) !== -1) { - operator = expression.charAt(0); - expression = expression.substr(1); - } - expression.split(/,/g).forEach(function(variable) { - var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); - }); - if (operator && operator !== "+") { - var separator = ","; - if (operator === "?") { - separator = "&"; - } else if (operator !== "#") { - separator = operator; - } - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); - } - } - ); - if (template === "/") { - return template; - } else { - return template.replace(/\/$/, ""); - } -} - -// pkg/dist-src/parse.js -function parse(options) { - let method = options.method.toUpperCase(); - let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); - let headers = Object.assign({}, options.headers); - let body; - let parameters = omit(options, [ - "method", - "baseUrl", - "url", - "headers", - "request", - "mediaType" - ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); - if (!/^http/.test(url)) { - url = options.baseUrl + url; - } - const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); - const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); - if (!isBinaryRequest) { - if (options.mediaType.format) { - headers.accept = headers.accept.split(/,/).map( - (format) => format.replace( - /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, - `application/vnd$1$2.${options.mediaType.format}` - ) - ).join(","); - } - if (url.endsWith("/graphql")) { - if (options.mediaType.previews?.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); - } - } - } - if (["GET", "HEAD"].includes(method)) { - url = addQueryParameters(url, remainingParameters); - } else { - if ("data" in remainingParameters) { - body = remainingParameters.data; - } else { - if (Object.keys(remainingParameters).length) { - body = remainingParameters; - } - } - } - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } - return Object.assign( - { method, url, headers }, - typeof body !== "undefined" ? { body } : null, - options.request ? { request: options.request } : null - ); -} - -// pkg/dist-src/endpoint-with-defaults.js -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); -} - -// pkg/dist-src/with-defaults.js -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS2 = merge(oldDefaults, newDefaults); - const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); - return Object.assign(endpoint2, { - DEFAULTS: DEFAULTS2, - defaults: withDefaults.bind(null, DEFAULTS2), - merge: merge.bind(null, DEFAULTS2), - parse - }); -} - -// pkg/dist-src/index.js -var endpoint = withDefaults(null, DEFAULTS); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 1466: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(2765); -var addHook = __nccwpck_require__(6749); -var removeHook = __nccwpck_require__(8712); - -// 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; - - -/***/ }), - -/***/ 6749: -/***/ ((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, - }); -} - - -/***/ }), - -/***/ 2765: -/***/ ((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)(); - }); -} - - -/***/ }), - -/***/ 8712: -/***/ ((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); -} - - -/***/ }), - -/***/ 2609: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && process.version !== undefined) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } - - return ""; -} - -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 157: -/***/ ((module) => { - - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - composePaginateRest: () => composePaginateRest, - isPaginatingEndpoint: () => isPaginatingEndpoint, - paginateRest: () => paginateRest, - paginatingEndpoints: () => paginatingEndpoints -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/version.js -var VERSION = "9.2.1"; - -// pkg/dist-src/normalize-paginated-list-response.js -function normalizePaginatedListResponse(response) { - if (!response.data) { - return { - ...response, - data: [] - }; - } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) - return response; - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; - } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } - response.data.total_count = totalCount; - return response; -} - -// pkg/dist-src/iterator.js -function iterator(octokit, route, parameters) { - const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = typeof route === "function" ? route : octokit.request; - const method = options.method; - const headers = options.headers; - let url = options.url; - return { - [Symbol.asyncIterator]: () => ({ - async next() { - if (!url) - return { done: true }; - try { - const response = await requestMethod({ method, url, headers }); - const normalizedResponse = normalizePaginatedListResponse(response); - url = ((normalizedResponse.headers.link || "").match( - /<([^>]+)>;\s*rel="next"/ - ) || [])[1]; - return { value: normalizedResponse }; - } catch (error) { - if (error.status !== 409) - throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } - }) - }; -} - -// pkg/dist-src/paginate.js -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = void 0; - } - return gather( - octokit, - [], - iterator(octokit, route, parameters)[Symbol.asyncIterator](), - mapFn - ); -} -function gather(octokit, results, iterator2, mapFn) { - return iterator2.next().then((result) => { - if (result.done) { - return results; - } - let earlyExit = false; - function done() { - earlyExit = true; - } - results = results.concat( - mapFn ? mapFn(result.value, done) : result.value.data - ); - if (earlyExit) { - return results; - } - return gather(octokit, results, iterator2, mapFn); - }); -} - -// pkg/dist-src/compose-paginate.js -var composePaginateRest = Object.assign(paginate, { - iterator -}); - -// pkg/dist-src/generated/paginating-endpoints.js -var paginatingEndpoints = [ - "GET /advisories", - "GET /app/hook/deliveries", - "GET /app/installation-requests", - "GET /app/installations", - "GET /assignments/{assignment_id}/accepted_assignments", - "GET /classrooms", - "GET /classrooms/{classroom_id}/assignments", - "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/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}/copilot/billing/seats", - "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}/organization-roles/{role_id}/teams", - "GET /orgs/{org}/organization-roles/{role_id}/users", - "GET /orgs/{org}/outside_collaborators", - "GET /orgs/{org}/packages", - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - "GET /orgs/{org}/personal-access-token-requests", - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", - "GET /orgs/{org}/personal-access-tokens", - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", - "GET /orgs/{org}/projects", - "GET /orgs/{org}/properties/values", - "GET /orgs/{org}/public_members", - "GET /orgs/{org}/repos", - "GET /orgs/{org}/rulesets", - "GET /orgs/{org}/rulesets/rule-suites", - "GET /orgs/{org}/secret-scanning/alerts", - "GET /orgs/{org}/security-advisories", - "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/{owner}/{repo}/actions/artifacts", - "GET /repos/{owner}/{repo}/actions/caches", - "GET /repos/{owner}/{repo}/actions/organization-secrets", - "GET /repos/{owner}/{repo}/actions/organization-variables", - "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}/activity", - "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}/environments/{environment_name}/deployment_protection_rules/apps", - "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}/rules/branches/{branch}", - "GET /repos/{owner}/{repo}/rulesets", - "GET /repos/{owner}/{repo}/rulesets/rule-suites", - "GET /repos/{owner}/{repo}/secret-scanning/alerts", - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", - "GET /repos/{owner}/{repo}/security-advisories", - "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/social_accounts", - "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}/social_accounts", - "GET /users/{username}/ssh_signing_keys", - "GET /users/{username}/starred", - "GET /users/{username}/subscriptions" -]; - -// pkg/dist-src/paginating-endpoints.js -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); - } else { - return false; - } -} - -// pkg/dist-src/index.js -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; -} -paginateRest.VERSION = VERSION; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 4988: -/***/ ((module) => { - - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - legacyRestEndpointMethods: () => legacyRestEndpointMethods, - restEndpointMethods: () => restEndpointMethods -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/version.js -var VERSION = "10.4.1"; - -// pkg/dist-src/generated/endpoints.js -var Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: [ - "POST /orgs/{org}/actions/runners/{runner_id}/labels" - ], - addCustomLabelsToSelfHostedRunnerForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - approveWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" - ], - cancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" - ], - createEnvironmentVariable: [ - "POST /repositories/{repository_id}/environments/{environment_name}/variables" - ], - createOrUpdateEnvironmentSecret: [ - "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - createOrgVariable: ["POST /orgs/{org}/actions/variables"], - createRegistrationTokenForOrg: [ - "POST /orgs/{org}/actions/runners/registration-token" - ], - createRegistrationTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/registration-token" - ], - createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], - createRemoveTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/remove-token" - ], - createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], - createWorkflowDispatch: [ - "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" - ], - deleteActionsCacheById: [ - "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" - ], - deleteActionsCacheByKey: [ - "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" - ], - deleteArtifact: [ - "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" - ], - deleteEnvironmentSecret: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - deleteEnvironmentVariable: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - deleteRepoVariable: [ - "DELETE /repos/{owner}/{repo}/actions/variables/{name}" - ], - deleteSelfHostedRunnerFromOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}" - ], - deleteSelfHostedRunnerFromRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], - deleteWorkflowRunLogs: [ - "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - disableSelectedRepositoryGithubActionsOrganization: [ - "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - disableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" - ], - downloadArtifact: [ - "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" - ], - downloadJobLogsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" - ], - downloadWorkflowRunAttemptLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" - ], - downloadWorkflowRunLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - enableSelectedRepositoryGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - enableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" - ], - forceCancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" - ], - generateRunnerJitconfigForOrg: [ - "POST /orgs/{org}/actions/runners/generate-jitconfig" - ], - generateRunnerJitconfigForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" - ], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: [ - "GET /orgs/{org}/actions/cache/usage-by-repository" - ], - getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], - getAllowedActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/selected-actions" - ], - getAllowedActionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], - getCustomOidcSubClaimForRepo: [ - "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - getEnvironmentPublicKey: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" - ], - getEnvironmentSecret: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - getEnvironmentVariable: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - getGithubActionsDefaultWorkflowPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions/workflow" - ], - getGithubActionsDefaultWorkflowPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/workflow" - ], - getGithubActionsPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions" - ], - getGithubActionsPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions" - ], - getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], - getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], - getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], - getPendingDeploymentsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - getRepoPermissions: [ - "GET /repos/{owner}/{repo}/actions/permissions", - {}, - { renamed: ["actions", "getGithubActionsPermissionsRepository"] } - ], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], - getReviewsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" - ], - getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], - getSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], - getWorkflowAccessToRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/access" - ], - getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], - getWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" - ], - getWorkflowRunUsage: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" - ], - getWorkflowUsage: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" - ], - listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], - listEnvironmentSecrets: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets" - ], - listEnvironmentVariables: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables" - ], - listJobsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" - ], - listJobsForWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" - ], - listLabelsForSelfHostedRunnerForOrg: [ - "GET /orgs/{org}/actions/runners/{runner_id}/labels" - ], - listLabelsForSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], - listOrgVariables: ["GET /orgs/{org}/actions/variables"], - listRepoOrganizationSecrets: [ - "GET /repos/{owner}/{repo}/actions/organization-secrets" - ], - listRepoOrganizationVariables: [ - "GET /repos/{owner}/{repo}/actions/organization-variables" - ], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], - listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], - listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], - listRunnerApplicationsForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/downloads" - ], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - listSelectedReposForOrgVariable: [ - "GET /orgs/{org}/actions/variables/{name}/repositories" - ], - listSelectedRepositoriesEnabledGithubActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/repositories" - ], - listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], - listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], - listWorkflowRunArtifacts: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" - ], - listWorkflowRuns: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" - ], - listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], - reRunJobForWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" - ], - reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], - reRunWorkflowFailedJobs: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" - ], - removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" - ], - removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - removeCustomLabelFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" - ], - removeCustomLabelFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgVariable: [ - "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - reviewCustomGatesForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" - ], - reviewPendingDeploymentsForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - setAllowedActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/selected-actions" - ], - setAllowedActionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - setCustomLabelsForSelfHostedRunnerForOrg: [ - "PUT /orgs/{org}/actions/runners/{runner_id}/labels" - ], - setCustomLabelsForSelfHostedRunnerForRepo: [ - "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - setCustomOidcSubClaimForRepo: [ - "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - setGithubActionsDefaultWorkflowPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/workflow" - ], - setGithubActionsDefaultWorkflowPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/workflow" - ], - setGithubActionsPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions" - ], - setGithubActionsPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories" - ], - setSelectedRepositoriesEnabledGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories" - ], - setWorkflowAccessToRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/access" - ], - updateEnvironmentVariable: [ - "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], - updateRepoVariable: [ - "PATCH /repos/{owner}/{repo}/actions/variables/{name}" - ] - }, - activity: { - checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], - deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], - deleteThreadSubscription: [ - "DELETE /notifications/threads/{thread_id}/subscription" - ], - getFeeds: ["GET /feeds"], - getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], - getThread: ["GET /notifications/threads/{thread_id}"], - getThreadSubscriptionForAuthenticatedUser: [ - "GET /notifications/threads/{thread_id}/subscription" - ], - listEventsForAuthenticatedUser: ["GET /users/{username}/events"], - listNotificationsForAuthenticatedUser: ["GET /notifications"], - listOrgEventsForAuthenticatedUser: [ - "GET /users/{username}/events/orgs/{org}" - ], - listPublicEvents: ["GET /events"], - listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], - listPublicEventsForUser: ["GET /users/{username}/events/public"], - listPublicOrgEvents: ["GET /orgs/{org}/events"], - listReceivedEventsForUser: ["GET /users/{username}/received_events"], - listReceivedPublicEventsForUser: [ - "GET /users/{username}/received_events/public" - ], - listRepoEvents: ["GET /repos/{owner}/{repo}/events"], - listRepoNotificationsForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/notifications" - ], - listReposStarredByAuthenticatedUser: ["GET /user/starred"], - listReposStarredByUser: ["GET /users/{username}/starred"], - listReposWatchedByUser: ["GET /users/{username}/subscriptions"], - listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], - listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], - listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], - markNotificationsAsRead: ["PUT /notifications"], - markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], - markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], - markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], - setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], - setThreadSubscription: [ - "PUT /notifications/threads/{thread_id}/subscription" - ], - starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], - unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] - }, - apps: { - addRepoToInstallation: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } - ], - addRepoToInstallationForAuthenticatedUser: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}" - ], - checkToken: ["POST /applications/{client_id}/token"], - createFromManifest: ["POST /app-manifests/{code}/conversions"], - createInstallationAccessToken: [ - "POST /app/installations/{installation_id}/access_tokens" - ], - deleteAuthorization: ["DELETE /applications/{client_id}/grant"], - deleteInstallation: ["DELETE /app/installations/{installation_id}"], - deleteToken: ["DELETE /applications/{client_id}/token"], - getAuthenticated: ["GET /app"], - getBySlug: ["GET /apps/{app_slug}"], - getInstallation: ["GET /app/installations/{installation_id}"], - getOrgInstallation: ["GET /orgs/{org}/installation"], - getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], - getSubscriptionPlanForAccount: [ - "GET /marketplace_listing/accounts/{account_id}" - ], - getSubscriptionPlanForAccountStubbed: [ - "GET /marketplace_listing/stubbed/accounts/{account_id}" - ], - getUserInstallation: ["GET /users/{username}/installation"], - getWebhookConfigForApp: ["GET /app/hook/config"], - getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], - listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], - listAccountsForPlanStubbed: [ - "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" - ], - listInstallationReposForAuthenticatedUser: [ - "GET /user/installations/{installation_id}/repositories" - ], - listInstallationRequestsForAuthenticatedApp: [ - "GET /app/installation-requests" - ], - listInstallations: ["GET /app/installations"], - listInstallationsForAuthenticatedUser: ["GET /user/installations"], - listPlans: ["GET /marketplace_listing/plans"], - listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], - listReposAccessibleToInstallation: ["GET /installation/repositories"], - listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], - listSubscriptionsForAuthenticatedUserStubbed: [ - "GET /user/marketplace_purchases/stubbed" - ], - listWebhookDeliveries: ["GET /app/hook/deliveries"], - redeliverWebhookDelivery: [ - "POST /app/hook/deliveries/{delivery_id}/attempts" - ], - removeRepoFromInstallation: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } - ], - removeRepoFromInstallationForAuthenticatedUser: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}" - ], - resetToken: ["PATCH /applications/{client_id}/token"], - revokeInstallationAccessToken: ["DELETE /installation/token"], - scopeToken: ["POST /applications/{client_id}/token/scoped"], - suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], - unsuspendInstallation: [ - "DELETE /app/installations/{installation_id}/suspended" - ], - updateWebhookConfigForApp: ["PATCH /app/hook/config"] - }, - billing: { - getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], - getGithubActionsBillingUser: [ - "GET /users/{username}/settings/billing/actions" - ], - getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], - getGithubPackagesBillingUser: [ - "GET /users/{username}/settings/billing/packages" - ], - getSharedStorageBillingOrg: [ - "GET /orgs/{org}/settings/billing/shared-storage" - ], - getSharedStorageBillingUser: [ - "GET /users/{username}/settings/billing/shared-storage" - ] - }, - checks: { - create: ["POST /repos/{owner}/{repo}/check-runs"], - createSuite: ["POST /repos/{owner}/{repo}/check-suites"], - get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], - getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], - listAnnotations: [ - "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" - ], - listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], - listForSuite: [ - "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" - ], - listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], - rerequestRun: [ - "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" - ], - rerequestSuite: [ - "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" - ], - setSuitesPreferences: [ - "PATCH /repos/{owner}/{repo}/check-suites/preferences" - ], - update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] - }, - codeScanning: { - deleteAnalysis: [ - "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" - ], - getAlert: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", - {}, - { renamedParameters: { alert_id: "alert_number" } } - ], - getAnalysis: [ - "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" - ], - getCodeqlDatabase: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" - ], - getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - listAlertInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" - ], - listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], - listAlertsInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", - {}, - { renamed: ["codeScanning", "listAlertInstances"] } - ], - listCodeqlDatabases: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" - ], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" - ], - updateDefaultSetup: [ - "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" - ], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - checkPermissionsForDevcontainer: [ - "GET /repos/{owner}/{repo}/codespaces/permissions_check" - ], - codespaceMachinesForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/machines" - ], - createForAuthenticatedUser: ["POST /user/codespaces"], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - createOrUpdateSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}" - ], - createWithPrForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" - ], - createWithRepoForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/codespaces" - ], - deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], - deleteFromOrganization: [ - "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - deleteSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}" - ], - exportForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/exports" - ], - getCodespacesForUserInOrg: [ - "GET /orgs/{org}/members/{username}/codespaces" - ], - getExportDetailsForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/exports/{export_id}" - ], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], - getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], - getPublicKeyForAuthenticatedUser: [ - "GET /user/codespaces/secrets/public-key" - ], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - getSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}" - ], - listDevcontainersInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/devcontainers" - ], - listForAuthenticatedUser: ["GET /user/codespaces"], - listInOrganization: [ - "GET /orgs/{org}/codespaces", - {}, - { renamedParameters: { org_id: "org" } } - ], - listInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces" - ], - listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}/repositories" - ], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - preFlightWithRepoForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/new" - ], - publishForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/publish" - ], - removeRepositoryForSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - repoMachinesForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/machines" - ], - setRepositoriesForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], - stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], - stopInOrganization: [ - "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" - ], - updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] - }, - copilot: { - addCopilotSeatsForTeams: [ - "POST /orgs/{org}/copilot/billing/selected_teams" - ], - addCopilotSeatsForUsers: [ - "POST /orgs/{org}/copilot/billing/selected_users" - ], - cancelCopilotSeatAssignmentForTeams: [ - "DELETE /orgs/{org}/copilot/billing/selected_teams" - ], - cancelCopilotSeatAssignmentForUsers: [ - "DELETE /orgs/{org}/copilot/billing/selected_users" - ], - getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], - getCopilotSeatDetailsForUser: [ - "GET /orgs/{org}/members/{username}/copilot" - ], - listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] - }, - dependabot: { - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/dependabot/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], - listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" - ] - }, - dependencyGraph: { - createRepositorySnapshot: [ - "POST /repos/{owner}/{repo}/dependency-graph/snapshots" - ], - diffRange: [ - "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" - ], - exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] - }, - emojis: { get: ["GET /emojis"] }, - gists: { - checkIsStarred: ["GET /gists/{gist_id}/star"], - create: ["POST /gists"], - createComment: ["POST /gists/{gist_id}/comments"], - delete: ["DELETE /gists/{gist_id}"], - deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], - fork: ["POST /gists/{gist_id}/forks"], - get: ["GET /gists/{gist_id}"], - getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], - getRevision: ["GET /gists/{gist_id}/{sha}"], - list: ["GET /gists"], - listComments: ["GET /gists/{gist_id}/comments"], - listCommits: ["GET /gists/{gist_id}/commits"], - listForUser: ["GET /users/{username}/gists"], - listForks: ["GET /gists/{gist_id}/forks"], - listPublic: ["GET /gists/public"], - listStarred: ["GET /gists/starred"], - star: ["PUT /gists/{gist_id}/star"], - unstar: ["DELETE /gists/{gist_id}/star"], - update: ["PATCH /gists/{gist_id}"], - updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] - }, - git: { - createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], - createCommit: ["POST /repos/{owner}/{repo}/git/commits"], - createRef: ["POST /repos/{owner}/{repo}/git/refs"], - createTag: ["POST /repos/{owner}/{repo}/git/tags"], - createTree: ["POST /repos/{owner}/{repo}/git/trees"], - deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], - getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], - getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], - getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], - getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], - getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], - listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], - updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] - }, - gitignore: { - getAllTemplates: ["GET /gitignore/templates"], - getTemplate: ["GET /gitignore/templates/{name}"] - }, - interactions: { - getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], - getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], - getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], - getRestrictionsForYourPublicRepos: [ - "GET /user/interaction-limits", - {}, - { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } - ], - removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], - removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], - removeRestrictionsForRepo: [ - "DELETE /repos/{owner}/{repo}/interaction-limits" - ], - removeRestrictionsForYourPublicRepos: [ - "DELETE /user/interaction-limits", - {}, - { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } - ], - setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], - setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], - setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], - setRestrictionsForYourPublicRepos: [ - "PUT /user/interaction-limits", - {}, - { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } - ] - }, - issues: { - addAssignees: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], - checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], - checkUserCanBeAssignedToIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" - ], - create: ["POST /repos/{owner}/{repo}/issues"], - createComment: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" - ], - createLabel: ["POST /repos/{owner}/{repo}/labels"], - createMilestone: ["POST /repos/{owner}/{repo}/milestones"], - deleteComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" - ], - deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], - deleteMilestone: [ - "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" - ], - get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], - getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], - getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], - getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], - getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], - list: ["GET /issues"], - listAssignees: ["GET /repos/{owner}/{repo}/assignees"], - listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], - listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], - listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], - listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], - listEventsForTimeline: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" - ], - listForAuthenticatedUser: ["GET /user/issues"], - listForOrg: ["GET /orgs/{org}/issues"], - listForRepo: ["GET /repos/{owner}/{repo}/issues"], - listLabelsForMilestone: [ - "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" - ], - listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], - listLabelsOnIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - listMilestones: ["GET /repos/{owner}/{repo}/milestones"], - lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], - removeAllLabels: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - removeAssignees: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - removeLabel: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" - ], - setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], - unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], - update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], - updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], - updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], - updateMilestone: [ - "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" - ] - }, - licenses: { - get: ["GET /licenses/{license}"], - getAllCommonlyUsed: ["GET /licenses"], - getForRepo: ["GET /repos/{owner}/{repo}/license"] - }, - markdown: { - render: ["POST /markdown"], - renderRaw: [ - "POST /markdown/raw", - { headers: { "content-type": "text/plain; charset=utf-8" } } - ] - }, - meta: { - get: ["GET /meta"], - getAllVersions: ["GET /versions"], - getOctocat: ["GET /octocat"], - getZen: ["GET /zen"], - root: ["GET /"] - }, - migrations: { - cancelImport: [ - "DELETE /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" - } - ], - deleteArchiveForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/archive" - ], - deleteArchiveForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/archive" - ], - downloadArchiveForOrg: [ - "GET /orgs/{org}/migrations/{migration_id}/archive" - ], - getArchiveForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/archive" - ], - getCommitAuthors: [ - "GET /repos/{owner}/{repo}/import/authors", - {}, - { - deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" - } - ], - getImportStatus: [ - "GET /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" - } - ], - getLargeFiles: [ - "GET /repos/{owner}/{repo}/import/large_files", - {}, - { - deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" - } - ], - getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], - getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], - listForAuthenticatedUser: ["GET /user/migrations"], - listForOrg: ["GET /orgs/{org}/migrations"], - listReposForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/repositories" - ], - listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], - listReposForUser: [ - "GET /user/migrations/{migration_id}/repositories", - {}, - { renamed: ["migrations", "listReposForAuthenticatedUser"] } - ], - mapCommitAuthor: [ - "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", - {}, - { - deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" - } - ], - setLfsPreference: [ - "PATCH /repos/{owner}/{repo}/import/lfs", - {}, - { - deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" - } - ], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - startImport: [ - "PUT /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" - } - ], - unlockRepoForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" - ], - unlockRepoForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" - ], - updateImport: [ - "PATCH /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" - } - ] - }, - oidc: { - getOidcCustomSubTemplateForOrg: [ - "GET /orgs/{org}/actions/oidc/customization/sub" - ], - updateOidcCustomSubTemplateForOrg: [ - "PUT /orgs/{org}/actions/oidc/customization/sub" - ] - }, - orgs: { - addSecurityManagerTeam: [ - "PUT /orgs/{org}/security-managers/teams/{team_slug}" - ], - assignTeamToOrgRole: [ - "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - assignUserToOrgRole: [ - "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - blockUser: ["PUT /orgs/{org}/blocks/{username}"], - cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], - checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], - checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], - checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], - convertMemberToOutsideCollaborator: [ - "PUT /orgs/{org}/outside_collaborators/{username}" - ], - createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], - createInvitation: ["POST /orgs/{org}/invitations"], - createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], - createOrUpdateCustomPropertiesValuesForRepos: [ - "PATCH /orgs/{org}/properties/values" - ], - createOrUpdateCustomProperty: [ - "PUT /orgs/{org}/properties/schema/{custom_property_name}" - ], - createWebhook: ["POST /orgs/{org}/hooks"], - delete: ["DELETE /orgs/{org}"], - deleteCustomOrganizationRole: [ - "DELETE /orgs/{org}/organization-roles/{role_id}" - ], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - enableOrDisableSecurityProductOnAllOrgRepos: [ - "POST /orgs/{org}/{security_product}/{enablement}" - ], - get: ["GET /orgs/{org}"], - getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], - getCustomProperty: [ - "GET /orgs/{org}/properties/schema/{custom_property_name}" - ], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], - getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], - getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], - getWebhookDelivery: [ - "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - list: ["GET /organizations"], - listAppInstallations: ["GET /orgs/{org}/installations"], - listBlockedUsers: ["GET /orgs/{org}/blocks"], - listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], - listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], - listForAuthenticatedUser: ["GET /user/orgs"], - listForUser: ["GET /users/{username}/orgs"], - listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], - listMembers: ["GET /orgs/{org}/members"], - listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], - listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], - listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], - listOrgRoles: ["GET /orgs/{org}/organization-roles"], - listOrganizationFineGrainedPermissions: [ - "GET /orgs/{org}/organization-fine-grained-permissions" - ], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - listPatGrantRepositories: [ - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" - ], - listPatGrantRequestRepositories: [ - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" - ], - listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], - listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], - listPendingInvitations: ["GET /orgs/{org}/invitations"], - listPublicMembers: ["GET /orgs/{org}/public_members"], - listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], - listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], - listWebhooks: ["GET /orgs/{org}/hooks"], - patchCustomOrganizationRole: [ - "PATCH /orgs/{org}/organization-roles/{role_id}" - ], - pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeCustomProperty: [ - "DELETE /orgs/{org}/properties/schema/{custom_property_name}" - ], - removeMember: ["DELETE /orgs/{org}/members/{username}"], - removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], - removeOutsideCollaborator: [ - "DELETE /orgs/{org}/outside_collaborators/{username}" - ], - removePublicMembershipForAuthenticatedUser: [ - "DELETE /orgs/{org}/public_members/{username}" - ], - removeSecurityManagerTeam: [ - "DELETE /orgs/{org}/security-managers/teams/{team_slug}" - ], - reviewPatGrantRequest: [ - "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" - ], - reviewPatGrantRequestsInBulk: [ - "POST /orgs/{org}/personal-access-token-requests" - ], - revokeAllOrgRolesTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" - ], - revokeAllOrgRolesUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}" - ], - revokeOrgRoleTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - revokeOrgRoleUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], - setPublicMembershipForAuthenticatedUser: [ - "PUT /orgs/{org}/public_members/{username}" - ], - unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], - update: ["PATCH /orgs/{org}"], - updateMembershipForAuthenticatedUser: [ - "PATCH /user/memberships/orgs/{org}" - ], - updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], - updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], - updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], - updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] - }, - packages: { - deletePackageForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}" - ], - deletePackageForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}" - ], - deletePackageForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}" - ], - deletePackageVersionForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getAllPackageVersionsForAPackageOwnedByAnOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - {}, - { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } - ], - getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions", - {}, - { - renamed: [ - "packages", - "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" - ] - } - ], - getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions" - ], - getPackageForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}" - ], - getPackageForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}" - ], - getPackageForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}" - ], - getPackageVersionForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - listDockerMigrationConflictingPackagesForAuthenticatedUser: [ - "GET /user/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForOrganization: [ - "GET /orgs/{org}/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForUser: [ - "GET /users/{username}/docker/conflicts" - ], - listPackagesForAuthenticatedUser: ["GET /user/packages"], - listPackagesForOrganization: ["GET /orgs/{org}/packages"], - listPackagesForUser: ["GET /users/{username}/packages"], - restorePackageForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageVersionForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ] - }, - projects: { - addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], - createCard: ["POST /projects/columns/{column_id}/cards"], - createColumn: ["POST /projects/{project_id}/columns"], - createForAuthenticatedUser: ["POST /user/projects"], - createForOrg: ["POST /orgs/{org}/projects"], - createForRepo: ["POST /repos/{owner}/{repo}/projects"], - delete: ["DELETE /projects/{project_id}"], - deleteCard: ["DELETE /projects/columns/cards/{card_id}"], - deleteColumn: ["DELETE /projects/columns/{column_id}"], - get: ["GET /projects/{project_id}"], - getCard: ["GET /projects/columns/cards/{card_id}"], - getColumn: ["GET /projects/columns/{column_id}"], - getPermissionForUser: [ - "GET /projects/{project_id}/collaborators/{username}/permission" - ], - listCards: ["GET /projects/columns/{column_id}/cards"], - listCollaborators: ["GET /projects/{project_id}/collaborators"], - listColumns: ["GET /projects/{project_id}/columns"], - listForOrg: ["GET /orgs/{org}/projects"], - listForRepo: ["GET /repos/{owner}/{repo}/projects"], - listForUser: ["GET /users/{username}/projects"], - moveCard: ["POST /projects/columns/cards/{card_id}/moves"], - moveColumn: ["POST /projects/columns/{column_id}/moves"], - removeCollaborator: [ - "DELETE /projects/{project_id}/collaborators/{username}" - ], - update: ["PATCH /projects/{project_id}"], - updateCard: ["PATCH /projects/columns/cards/{card_id}"], - updateColumn: ["PATCH /projects/columns/{column_id}"] - }, - pulls: { - checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - create: ["POST /repos/{owner}/{repo}/pulls"], - createReplyForReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" - ], - createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - createReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - deletePendingReview: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - deleteReviewComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ], - dismissReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" - ], - get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], - getReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], - list: ["GET /repos/{owner}/{repo}/pulls"], - listCommentsForReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" - ], - listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], - listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], - listRequestedReviewers: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - listReviewComments: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], - listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - removeRequestedReviewers: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - requestReviewers: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - submitReview: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" - ], - update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], - updateBranch: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" - ], - updateReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - updateReviewComment: [ - "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ] - }, - rateLimit: { get: ["GET /rate_limit"] }, - reactions: { - createForCommitComment: [ - "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - createForIssue: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" - ], - createForIssueComment: [ - "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - createForPullRequestReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - createForRelease: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - createForTeamDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - createForTeamDiscussionInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ], - deleteForCommitComment: [ - "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForIssue: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" - ], - deleteForIssueComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForPullRequestComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForRelease: [ - "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" - ], - deleteForTeamDiscussion: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" - ], - deleteForTeamDiscussionComment: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" - ], - listForCommitComment: [ - "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], - listForIssueComment: [ - "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - listForPullRequestReviewComment: [ - "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - listForRelease: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - listForTeamDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - listForTeamDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ] - }, - repos: { - acceptInvitation: [ - "PATCH /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } - ], - acceptInvitationForAuthenticatedUser: [ - "PATCH /user/repository_invitations/{invitation_id}" - ], - addAppAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], - addStatusCheckContexts: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - addTeamAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - addUserAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - cancelPagesDeployment: [ - "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" - ], - checkAutomatedSecurityFixes: [ - "GET /repos/{owner}/{repo}/automated-security-fixes" - ], - checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], - checkVulnerabilityAlerts: [ - "GET /repos/{owner}/{repo}/vulnerability-alerts" - ], - codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], - compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], - compareCommitsWithBasehead: [ - "GET /repos/{owner}/{repo}/compare/{basehead}" - ], - createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], - createCommitComment: [ - "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - createCommitSignatureProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], - createDeployKey: ["POST /repos/{owner}/{repo}/keys"], - createDeployment: ["POST /repos/{owner}/{repo}/deployments"], - createDeploymentBranchPolicy: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - createDeploymentProtectionRule: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - createDeploymentStatus: [ - "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], - createForAuthenticatedUser: ["POST /user/repos"], - createFork: ["POST /repos/{owner}/{repo}/forks"], - createInOrg: ["POST /orgs/{org}/repos"], - createOrUpdateCustomPropertiesValues: [ - "PATCH /repos/{owner}/{repo}/properties/values" - ], - createOrUpdateEnvironment: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}" - ], - createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], - createOrgRuleset: ["POST /orgs/{org}/rulesets"], - createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], - createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], - createUsingTemplate: [ - "POST /repos/{template_owner}/{template_repo}/generate" - ], - createWebhook: ["POST /repos/{owner}/{repo}/hooks"], - declineInvitation: [ - "DELETE /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } - ], - declineInvitationForAuthenticatedUser: [ - "DELETE /user/repository_invitations/{invitation_id}" - ], - delete: ["DELETE /repos/{owner}/{repo}"], - deleteAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - deleteAdminBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - deleteAnEnvironment: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}" - ], - deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], - deleteBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" - ], - deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], - deleteCommitSignatureProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], - deleteDeployment: [ - "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" - ], - deleteDeploymentBranchPolicy: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], - deleteInvitation: [ - "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], - deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], - deletePullRequestReviewProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], - deleteReleaseAsset: [ - "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - deleteTagProtection: [ - "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" - ], - deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], - disableAutomatedSecurityFixes: [ - "DELETE /repos/{owner}/{repo}/automated-security-fixes" - ], - disableDeploymentProtectionRule: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - disablePrivateVulnerabilityReporting: [ - "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - disableVulnerabilityAlerts: [ - "DELETE /repos/{owner}/{repo}/vulnerability-alerts" - ], - downloadArchive: [ - "GET /repos/{owner}/{repo}/zipball/{ref}", - {}, - { renamed: ["repos", "downloadZipballArchive"] } - ], - downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], - downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], - enableAutomatedSecurityFixes: [ - "PUT /repos/{owner}/{repo}/automated-security-fixes" - ], - enablePrivateVulnerabilityReporting: [ - "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - enableVulnerabilityAlerts: [ - "PUT /repos/{owner}/{repo}/vulnerability-alerts" - ], - generateReleaseNotes: [ - "POST /repos/{owner}/{repo}/releases/generate-notes" - ], - get: ["GET /repos/{owner}/{repo}"], - getAccessRestrictions: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - getAdminBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - getAllDeploymentProtectionRules: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], - getAllStatusCheckContexts: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" - ], - getAllTopics: ["GET /repos/{owner}/{repo}/topics"], - getAppsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" - ], - getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], - getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], - getBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection" - ], - getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], - getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], - getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], - getCollaboratorPermissionLevel: [ - "GET /repos/{owner}/{repo}/collaborators/{username}/permission" - ], - getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], - getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], - getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], - getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], - getCommitSignatureProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], - getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], - getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], - getCustomDeploymentProtectionRule: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], - getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], - getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], - getDeploymentBranchPolicy: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - getDeploymentStatus: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" - ], - getEnvironment: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}" - ], - getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], - getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], - getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], - getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], - getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], - getOrgRulesets: ["GET /orgs/{org}/rulesets"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], - getPagesDeployment: [ - "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" - ], - getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], - getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], - getPullRequestReviewProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], - getReadme: ["GET /repos/{owner}/{repo}/readme"], - getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], - getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], - getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], - getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], - getRepoRuleSuite: [ - "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" - ], - getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], - getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], - getStatusChecksProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - getTeamsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" - ], - getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], - getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], - getUsersWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" - ], - getViews: ["GET /repos/{owner}/{repo}/traffic/views"], - getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], - getWebhookConfigForRepo: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - getWebhookDelivery: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - listActivities: ["GET /repos/{owner}/{repo}/activity"], - listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], - listBranches: ["GET /repos/{owner}/{repo}/branches"], - listBranchesForHeadCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" - ], - listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], - listCommentsForCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], - listCommitStatusesForRef: [ - "GET /repos/{owner}/{repo}/commits/{ref}/statuses" - ], - listCommits: ["GET /repos/{owner}/{repo}/commits"], - listContributors: ["GET /repos/{owner}/{repo}/contributors"], - listCustomDeploymentRuleIntegrations: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" - ], - listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], - listDeploymentBranchPolicies: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - listDeploymentStatuses: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - listDeployments: ["GET /repos/{owner}/{repo}/deployments"], - listForAuthenticatedUser: ["GET /user/repos"], - listForOrg: ["GET /orgs/{org}/repos"], - listForUser: ["GET /users/{username}/repos"], - listForks: ["GET /repos/{owner}/{repo}/forks"], - listInvitations: ["GET /repos/{owner}/{repo}/invitations"], - listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], - listLanguages: ["GET /repos/{owner}/{repo}/languages"], - listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], - listPublic: ["GET /repositories"], - listPullRequestsAssociatedWithCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" - ], - listReleaseAssets: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/assets" - ], - listReleases: ["GET /repos/{owner}/{repo}/releases"], - listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], - listTags: ["GET /repos/{owner}/{repo}/tags"], - listTeams: ["GET /repos/{owner}/{repo}/teams"], - listWebhookDeliveries: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" - ], - listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], - merge: ["POST /repos/{owner}/{repo}/merges"], - mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], - pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeAppAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - removeCollaborator: [ - "DELETE /repos/{owner}/{repo}/collaborators/{username}" - ], - removeStatusCheckContexts: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - removeStatusCheckProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - removeTeamAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - removeUserAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], - replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], - requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], - setAdminBranchProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - setAppAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - setStatusCheckContexts: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - setTeamAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - setUserAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], - transfer: ["POST /repos/{owner}/{repo}/transfer"], - update: ["PATCH /repos/{owner}/{repo}"], - updateBranchProtection: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection" - ], - updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], - updateDeploymentBranchPolicy: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], - updateInvitation: [ - "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], - updatePullRequestReviewProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], - updateReleaseAsset: [ - "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - updateStatusCheckPotection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", - {}, - { renamed: ["repos", "updateStatusCheckProtection"] } - ], - updateStatusCheckProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], - updateWebhookConfigForRepo: [ - "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - uploadReleaseAsset: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", - { baseUrl: "https://uploads.github.com" } - ] - }, - search: { - code: ["GET /search/code"], - commits: ["GET /search/commits"], - issuesAndPullRequests: ["GET /search/issues"], - labels: ["GET /search/labels"], - repos: ["GET /search/repositories"], - topics: ["GET /search/topics"], - users: ["GET /search/users"] - }, - secretScanning: { - getAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/secret-scanning/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], - listLocationsForAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ] - }, - securityAdvisories: { - createFork: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" - ], - createPrivateVulnerabilityReport: [ - "POST /repos/{owner}/{repo}/security-advisories/reports" - ], - createRepositoryAdvisory: [ - "POST /repos/{owner}/{repo}/security-advisories" - ], - createRepositoryAdvisoryCveRequest: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" - ], - getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], - getRepositoryAdvisory: [ - "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ], - listGlobalAdvisories: ["GET /advisories"], - listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], - listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], - updateRepositoryAdvisory: [ - "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ] - }, - teams: { - addOrUpdateMembershipForUserInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - addOrUpdateProjectPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - addOrUpdateRepoPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - checkPermissionsForProjectInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - checkPermissionsForRepoInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - create: ["POST /orgs/{org}/teams"], - createDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], - deleteDiscussionCommentInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - deleteDiscussionInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], - getByName: ["GET /orgs/{org}/teams/{team_slug}"], - getDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - getDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - getMembershipForUserInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - list: ["GET /orgs/{org}/teams"], - listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], - listDiscussionCommentsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], - listForAuthenticatedUser: ["GET /user/teams"], - listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], - listPendingInvitationsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/invitations" - ], - listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], - listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], - removeMembershipForUserInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - removeProjectInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - removeRepoInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - updateDiscussionCommentInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - updateDiscussionInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] - }, - users: { - addEmailForAuthenticated: [ - "POST /user/emails", - {}, - { renamed: ["users", "addEmailForAuthenticatedUser"] } - ], - addEmailForAuthenticatedUser: ["POST /user/emails"], - addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], - block: ["PUT /user/blocks/{username}"], - checkBlocked: ["GET /user/blocks/{username}"], - checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], - checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], - createGpgKeyForAuthenticated: [ - "POST /user/gpg_keys", - {}, - { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } - ], - createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], - createPublicSshKeyForAuthenticated: [ - "POST /user/keys", - {}, - { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } - ], - createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], - createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], - deleteEmailForAuthenticated: [ - "DELETE /user/emails", - {}, - { renamed: ["users", "deleteEmailForAuthenticatedUser"] } - ], - deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], - deleteGpgKeyForAuthenticated: [ - "DELETE /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } - ], - deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], - deletePublicSshKeyForAuthenticated: [ - "DELETE /user/keys/{key_id}", - {}, - { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } - ], - deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], - deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], - deleteSshSigningKeyForAuthenticatedUser: [ - "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - follow: ["PUT /user/following/{username}"], - getAuthenticated: ["GET /user"], - getByUsername: ["GET /users/{username}"], - getContextForUser: ["GET /users/{username}/hovercard"], - getGpgKeyForAuthenticated: [ - "GET /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } - ], - getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], - getPublicSshKeyForAuthenticated: [ - "GET /user/keys/{key_id}", - {}, - { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } - ], - getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], - getSshSigningKeyForAuthenticatedUser: [ - "GET /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - list: ["GET /users"], - listBlockedByAuthenticated: [ - "GET /user/blocks", - {}, - { renamed: ["users", "listBlockedByAuthenticatedUser"] } - ], - listBlockedByAuthenticatedUser: ["GET /user/blocks"], - listEmailsForAuthenticated: [ - "GET /user/emails", - {}, - { renamed: ["users", "listEmailsForAuthenticatedUser"] } - ], - listEmailsForAuthenticatedUser: ["GET /user/emails"], - listFollowedByAuthenticated: [ - "GET /user/following", - {}, - { renamed: ["users", "listFollowedByAuthenticatedUser"] } - ], - listFollowedByAuthenticatedUser: ["GET /user/following"], - listFollowersForAuthenticatedUser: ["GET /user/followers"], - listFollowersForUser: ["GET /users/{username}/followers"], - listFollowingForUser: ["GET /users/{username}/following"], - listGpgKeysForAuthenticated: [ - "GET /user/gpg_keys", - {}, - { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } - ], - listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], - listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], - listPublicEmailsForAuthenticated: [ - "GET /user/public_emails", - {}, - { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } - ], - listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], - listPublicKeysForUser: ["GET /users/{username}/keys"], - listPublicSshKeysForAuthenticated: [ - "GET /user/keys", - {}, - { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } - ], - listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], - listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], - listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], - listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], - listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], - setPrimaryEmailVisibilityForAuthenticated: [ - "PATCH /user/email/visibility", - {}, - { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } - ], - setPrimaryEmailVisibilityForAuthenticatedUser: [ - "PATCH /user/email/visibility" - ], - unblock: ["DELETE /user/blocks/{username}"], - unfollow: ["DELETE /user/following/{username}"], - updateAuthenticated: ["PATCH /user"] - } -}; -var endpoints_default = Endpoints; - -// pkg/dist-src/endpoints-to-methods.js -var endpointMethodsMap = /* @__PURE__ */ new Map(); -for (const [scope, endpoints] of Object.entries(endpoints_default)) { - for (const [methodName, endpoint] of Object.entries(endpoints)) { - const [route, defaults, decorations] = endpoint; - const [method, url] = route.split(/ /); - const endpointDefaults = Object.assign( - { - method, - url - }, - defaults - ); - if (!endpointMethodsMap.has(scope)) { - endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); - } - endpointMethodsMap.get(scope).set(methodName, { - scope, - methodName, - endpointDefaults, - decorations - }); - } -} -var handler = { - has({ scope }, methodName) { - return endpointMethodsMap.get(scope).has(methodName); - }, - getOwnPropertyDescriptor(target, methodName) { - return { - value: this.get(target, methodName), - // ensures method is in the cache - configurable: true, - writable: true, - enumerable: true - }; - }, - defineProperty(target, methodName, descriptor) { - Object.defineProperty(target.cache, methodName, descriptor); - return true; - }, - deleteProperty(target, methodName) { - delete target.cache[methodName]; - return true; - }, - ownKeys({ scope }) { - return [...endpointMethodsMap.get(scope).keys()]; - }, - set(target, methodName, value) { - return target.cache[methodName] = value; - }, - get({ octokit, scope, cache }, methodName) { - if (cache[methodName]) { - return cache[methodName]; - } - const method = endpointMethodsMap.get(scope).get(methodName); - if (!method) { - return void 0; - } - const { endpointDefaults, decorations } = method; - if (decorations) { - cache[methodName] = decorate( - octokit, - scope, - methodName, - endpointDefaults, - decorations - ); - } else { - cache[methodName] = octokit.request.defaults(endpointDefaults); - } - return cache[methodName]; - } -}; -function endpointsToMethods(octokit) { - const newMethods = {}; - for (const scope of endpointMethodsMap.keys()) { - newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); - } - return newMethods; -} -function decorate(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - function withDecorations(...args) { - let options = requestWithDefaults.endpoint.merge(...args); - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: void 0 - }); - return requestWithDefaults(options); - } - if (decorations.renamed) { - const [newScope, newMethodName] = decorations.renamed; - octokit.log.warn( - `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` - ); - } - if (decorations.deprecated) { - octokit.log.warn(decorations.deprecated); - } - if (decorations.renamedParameters) { - const options2 = requestWithDefaults.endpoint.merge(...args); - for (const [name, alias] of Object.entries( - decorations.renamedParameters - )) { - if (name in options2) { - octokit.log.warn( - `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` - ); - if (!(alias in options2)) { - options2[alias] = options2[name]; - } - delete options2[name]; - } - } - return requestWithDefaults(options2); - } - return requestWithDefaults(...args); - } - return Object.assign(withDecorations, requestWithDefaults); -} - -// pkg/dist-src/index.js -function restEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - rest: api - }; -} -restEndpointMethods.VERSION = VERSION; -function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - ...api, - rest: api - }; -} -legacyRestEndpointMethods.VERSION = VERSION; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 66: -/***/ (function(__unused_webpack_module, exports) { - - -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 - -/***/ }), - -/***/ 8278: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - - -/* eslint-disable @typescript-eslint/no-explicit-any */ -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()); - }); -}; -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__(8611)); -const https = __importStar(__nccwpck_require__(5692)); -const pm = __importStar(__nccwpck_require__(1202)); -const tunnel = __importStar(__nccwpck_require__(4112)); -const undici_1 = __nccwpck_require__(6630); -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 = HttpCodes = {})); -var Headers; -(function (Headers) { - Headers["Accept"] = "accept"; - Headers["ContentType"] = "content-type"; -})(Headers || (exports.Headers = Headers = {})); -var MediaTypes; -(function (MediaTypes) { - MediaTypes["ApplicationJson"] = "application/json"; -})(MediaTypes || (exports.MediaTypes = 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('end', () => { - resolve(output.toString()); - }); - })); - }); - } - readBodyBuffer() { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { - const chunks = []; - this.message.on('data', (chunk) => { - chunks.push(chunk); - }); - this.message.on('end', () => { - resolve(Buffer.concat(chunks)); - }); - })); - }); - } -} -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._socketTimeout = requestOptions.socketTimeout; - if (requestOptions.allowRedirects != null) { - this._allowRedirects = requestOptions.allowRedirects; - } - if (requestOptions.allowRedirectDowngrade != null) { - this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; - } - if (requestOptions.maxRedirects != null) { - this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); - } - if (requestOptions.keepAlive != null) { - this._keepAlive = requestOptions.keepAlive; - } - if (requestOptions.allowRetries != null) { - this._allowRetries = requestOptions.allowRetries; - } - if (requestOptions.maxRetries != null) { - 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* () { - 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); - 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* () { - 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); - 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* () { - 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); - 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* () { - 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); - 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* () { - if (this._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) - ? 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); - 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) { - this._agent.destroy(); - } - this._disposed = true; - } - /** - * 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); - } - } - this.requestRawWithCallback(info, data, callbackForResult); - }); - }); - } - /** - * 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['Content-Length'] = Buffer.byteLength(data, 'utf8'); - } - let callbackCalled = false; - function handleResult(err, res) { - if (!callbackCalled) { - callbackCalled = true; - onResult(err, res); - } - } - const req = info.httpModule.request(info.options, (msg) => { - const res = new HttpClientResponse(msg); - handleResult(undefined, res); - }); - 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 (socket) { - socket.end(); - } - handleResult(new Error(`Request timeout: ${info.options.path}`)); - }); - 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(); - }); - data.pipe(req); - } - 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); - } - getAgentDispatcher(serverUrl) { - const parsedUrl = new URL(serverUrl); - const proxyUrl = pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; - if (!useProxy) { - return; - } - return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); - } - _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) { - for (const handler of this.handlers) { - handler.prepareRequest(info.options); - } - } - return info; - } - _mergeHeaders(headers) { - if (this.requestOptions && this.requestOptions.headers) { - return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); - } - return lowercaseKeys(headers || {}); - } - _getExistingOrDefaultHeader(additionalHeaders, header, _default) { - let clientHeader; - if (this.requestOptions && this.requestOptions.headers) { - clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; - } - return additionalHeaders[header] || clientHeader || _default; - } - _getAgent(parsedUrl) { - let agent; - const proxyUrl = pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; - if (this._keepAlive && useProxy) { - agent = this._proxyAgent; - } - if (!useProxy) { - agent = this._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 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 }) - }; - let tunnelAgent; - const overHttps = proxyUrl.protocol === 'https:'; - if (usingSsl) { - tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; - } - else { - tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; - } - agent = tunnelAgent(agentOptions); - this._proxyAgent = agent; - } - // if tunneling agent isn't assigned create a new agent - if (!agent) { - const options = { keepAlive: this._keepAlive, maxSockets }; - agent = usingSsl ? new https.Agent(options) : new http.Agent(options); - this._agent = agent; - } - 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 - }); - } - return agent; - } - _getProxyAgentDispatcher(parsedUrl, proxyUrl) { - let proxyAgent; - if (this._keepAlive) { - proxyAgent = this._proxyAgentDispatcher; - } - // if agent is already assigned use that agent. - if (proxyAgent) { - return proxyAgent; - } - const usingSsl = parsedUrl.protocol === 'https:'; - proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && { - token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}` - }))); - this._proxyAgentDispatcher = proxyAgent; - 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 - proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { - rejectUnauthorized: false - }); - } - return proxyAgent; - } - _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* () { - const statusCode = res.message.statusCode || 0; - const response = { - statusCode, - result: null, - headers: {} - }; - // not found leads to null obj returned - if (statusCode === HttpCodes.NotFound) { - 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; - } - } - 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; - } - 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); - } - 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 - -/***/ }), - -/***/ 1202: -/***/ ((__unused_webpack_module, exports) => { - - -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']; - } - })(); - if (proxyVar) { - try { - return new DecodedURL(proxyVar); - } - catch (_a) { - if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) - return new DecodedURL(`http://${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}`)))) { - 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]')); -} -class DecodedURL extends URL { - constructor(url, base) { - super(url, base); - this._decodedUsername = decodeURIComponent(super.username); - this._decodedPassword = decodeURIComponent(super.password); - } - get username() { - return this._decodedUsername; - } - get password() { - return this._decodedPassword; - } -} -//# sourceMappingURL=proxy.js.map - -/***/ }), - -/***/ 2553: -/***/ (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 __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()); - }); -}; -var _a; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0; -const fs = __importStar(__nccwpck_require__(9896)); -const path = __importStar(__nccwpck_require__(6928)); -_a = fs.promises -// export const {open} = 'fs' -, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink; -// export const {open} = 'fs' -exports.IS_WINDOWS = process.platform === 'win32'; -// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691 -exports.UV_FS_O_EXLOCK = 0x10000000; -exports.READONLY = fs.constants.O_RDONLY; -function exists(fsPath) { - return __awaiter(this, void 0, void 0, function* () { - try { - yield exports.stat(fsPath); - } - catch (err) { - if (err.code === 'ENOENT') { - return false; - } - throw err; - } - return true; - }); -} -exports.exists = exists; -function isDirectory(fsPath, useStat = false) { - return __awaiter(this, void 0, void 0, function* () { - const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath); - return stats.isDirectory(); - }); -} -exports.isDirectory = isDirectory; -/** - * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: - * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). - */ -function isRooted(p) { - p = normalizeSeparators(p); - if (!p) { - throw new Error('isRooted() parameter "p" cannot be empty'); - } - if (exports.IS_WINDOWS) { - return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello - ); // e.g. C: or C:\hello - } - return p.startsWith('/'); -} -exports.isRooted = isRooted; -/** - * Best effort attempt to determine whether a file exists and is executable. - * @param filePath file path to check - * @param extensions additional file extensions to try - * @return if file exists and is executable, returns the file path. otherwise empty string. - */ -function tryGetExecutablePath(filePath, extensions) { - return __awaiter(this, void 0, void 0, function* () { - let stats = undefined; - try { - // test file exists - stats = yield exports.stat(filePath); - } - catch (err) { - if (err.code !== 'ENOENT') { - - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - } - if (stats && stats.isFile()) { - if (exports.IS_WINDOWS) { - // on Windows, test for valid extension - const upperExt = path.extname(filePath).toUpperCase(); - if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) { - return filePath; - } - } - else { - if (isUnixExecutable(stats)) { - return filePath; - } - } - } - // try each extension - const originalFilePath = filePath; - for (const extension of extensions) { - filePath = originalFilePath + extension; - stats = undefined; - try { - stats = yield exports.stat(filePath); - } - catch (err) { - if (err.code !== 'ENOENT') { - - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - } - if (stats && stats.isFile()) { - if (exports.IS_WINDOWS) { - // preserve the case of the actual file (since an extension was appended) - try { - const directory = path.dirname(filePath); - const upperName = path.basename(filePath).toUpperCase(); - for (const actualName of yield exports.readdir(directory)) { - if (upperName === actualName.toUpperCase()) { - filePath = path.join(directory, actualName); - break; - } - } - } - catch (err) { - - console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); - } - return filePath; - } - else { - if (isUnixExecutable(stats)) { - return filePath; - } - } - } - } - return ''; - }); -} -exports.tryGetExecutablePath = tryGetExecutablePath; -function normalizeSeparators(p) { - p = p || ''; - if (exports.IS_WINDOWS) { - // convert slashes on Windows - p = p.replace(/\//g, '\\'); - // remove redundant slashes - return p.replace(/\\\\+/g, '\\'); - } - // remove redundant slashes - return p.replace(/\/\/+/g, '/'); -} -// on Mac/Linux, test the execute bit -// R W X R W X R W X -// 256 128 64 32 16 8 4 2 1 -function isUnixExecutable(stats) { - return ((stats.mode & 1) > 0 || - ((stats.mode & 8) > 0 && stats.gid === process.getgid()) || - ((stats.mode & 64) > 0 && stats.uid === process.getuid())); -} -// Get the path of cmd.exe in windows -function getCmdPath() { - var _a; - return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`; -} -exports.getCmdPath = getCmdPath; -//# sourceMappingURL=io-util.js.map - -/***/ }), - -/***/ 1136: -/***/ (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 __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.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0; -const assert_1 = __nccwpck_require__(2613); -const path = __importStar(__nccwpck_require__(6928)); -const ioUtil = __importStar(__nccwpck_require__(2553)); -/** - * Copies a file or folder. - * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js - * - * @param source source path - * @param dest destination path - * @param options optional. See CopyOptions. - */ -function cp(source, dest, options = {}) { - return __awaiter(this, void 0, void 0, function* () { - const { force, recursive, copySourceDirectory } = readCopyOptions(options); - const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null; - // Dest is an existing file, but not forcing - if (destStat && destStat.isFile() && !force) { - return; - } - // If dest is an existing directory, should copy inside. - const newDest = destStat && destStat.isDirectory() && copySourceDirectory - ? path.join(dest, path.basename(source)) - : dest; - if (!(yield ioUtil.exists(source))) { - throw new Error(`no such file or directory: ${source}`); - } - const sourceStat = yield ioUtil.stat(source); - if (sourceStat.isDirectory()) { - if (!recursive) { - throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); - } - else { - yield cpDirRecursive(source, newDest, 0, force); - } - } - else { - if (path.relative(source, newDest) === '') { - // a file cannot be copied to itself - throw new Error(`'${newDest}' and '${source}' are the same file`); - } - yield copyFile(source, newDest, force); - } - }); -} -exports.cp = cp; -/** - * Moves a path. - * - * @param source source path - * @param dest destination path - * @param options optional. See MoveOptions. - */ -function mv(source, dest, options = {}) { - return __awaiter(this, void 0, void 0, function* () { - if (yield ioUtil.exists(dest)) { - let destExists = true; - if (yield ioUtil.isDirectory(dest)) { - // If dest is directory copy src into dest - dest = path.join(dest, path.basename(source)); - destExists = yield ioUtil.exists(dest); - } - if (destExists) { - if (options.force == null || options.force) { - yield rmRF(dest); - } - else { - throw new Error('Destination already exists'); - } - } - } - yield mkdirP(path.dirname(dest)); - yield ioUtil.rename(source, dest); - }); -} -exports.mv = mv; -/** - * Remove a path recursively with force - * - * @param inputPath path to remove - */ -function rmRF(inputPath) { - return __awaiter(this, void 0, void 0, function* () { - if (ioUtil.IS_WINDOWS) { - // Check for invalid characters - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - if (/[*"<>|]/.test(inputPath)) { - throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows'); - } - } - try { - // note if path does not exist, error is silent - yield ioUtil.rm(inputPath, { - force: true, - maxRetries: 3, - recursive: true, - retryDelay: 300 - }); - } - catch (err) { - throw new Error(`File was unable to be removed ${err}`); - } - }); -} -exports.rmRF = rmRF; -/** - * Make a directory. Creates the full path with folders in between - * Will throw if it fails - * - * @param fsPath path to create - * @returns Promise - */ -function mkdirP(fsPath) { - return __awaiter(this, void 0, void 0, function* () { - assert_1.ok(fsPath, 'a path argument must be provided'); - yield ioUtil.mkdir(fsPath, { recursive: true }); - }); -} -exports.mkdirP = mkdirP; -/** - * Returns path of a tool had the tool actually been invoked. Resolves via paths. - * If you check and the tool does not exist, it will throw. - * - * @param tool name of the tool - * @param check whether to check if tool exists - * @returns Promise path to tool - */ -function which(tool, check) { - return __awaiter(this, void 0, void 0, function* () { - if (!tool) { - throw new Error("parameter 'tool' is required"); - } - // recursive when check=true - if (check) { - const result = yield which(tool, false); - if (!result) { - if (ioUtil.IS_WINDOWS) { - throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); - } - else { - throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); - } - } - return result; - } - const matches = yield findInPath(tool); - if (matches && matches.length > 0) { - return matches[0]; - } - return ''; - }); -} -exports.which = which; -/** - * Returns a list of all occurrences of the given tool on the system path. - * - * @returns Promise the paths of the tool - */ -function findInPath(tool) { - return __awaiter(this, void 0, void 0, function* () { - if (!tool) { - throw new Error("parameter 'tool' is required"); - } - // build the list of extensions to try - const extensions = []; - if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) { - for (const extension of process.env['PATHEXT'].split(path.delimiter)) { - if (extension) { - extensions.push(extension); - } - } - } - // if it's rooted, return it if exists. otherwise return empty. - if (ioUtil.isRooted(tool)) { - const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions); - if (filePath) { - return [filePath]; - } - return []; - } - // if any path separators, return empty - if (tool.includes(path.sep)) { - return []; - } - // build the list of directories - // - // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, - // it feels like we should not do this. Checking the current directory seems like more of a use - // case of a shell, and the which() function exposed by the toolkit should strive for consistency - // across platforms. - const directories = []; - if (process.env.PATH) { - for (const p of process.env.PATH.split(path.delimiter)) { - if (p) { - directories.push(p); - } - } - } - // find all matches - const matches = []; - for (const directory of directories) { - const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions); - if (filePath) { - matches.push(filePath); - } - } - return matches; - }); -} -exports.findInPath = findInPath; -function readCopyOptions(options) { - const force = options.force == null ? true : options.force; - const recursive = Boolean(options.recursive); - const copySourceDirectory = options.copySourceDirectory == null - ? true - : Boolean(options.copySourceDirectory); - return { force, recursive, copySourceDirectory }; -} -function cpDirRecursive(sourceDir, destDir, currentDepth, force) { - return __awaiter(this, void 0, void 0, function* () { - // Ensure there is not a run away recursive copy - if (currentDepth >= 255) - return; - currentDepth++; - yield mkdirP(destDir); - const files = yield ioUtil.readdir(sourceDir); - for (const fileName of files) { - const srcFile = `${sourceDir}/${fileName}`; - const destFile = `${destDir}/${fileName}`; - const srcFileStat = yield ioUtil.lstat(srcFile); - if (srcFileStat.isDirectory()) { - // Recurse - yield cpDirRecursive(srcFile, destFile, currentDepth, force); - } - else { - yield copyFile(srcFile, destFile, force); - } - } - // Change the mode for the newly created directory - yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode); - }); -} -// Buffered file copy -function copyFile(srcFile, destFile, force) { - return __awaiter(this, void 0, void 0, function* () { - if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) { - // unlink/re-link it - try { - yield ioUtil.lstat(destFile); - yield ioUtil.unlink(destFile); - } - catch (e) { - // Try to override file permission - if (e.code === 'EPERM') { - yield ioUtil.chmod(destFile, '0666'); - yield ioUtil.unlink(destFile); - } - // other errors = it doesn't exist, no work to do - } - // Copy over symlink - const symlinkFull = yield ioUtil.readlink(srcFile); - yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null); - } - else if (!(yield ioUtil.exists(destFile)) || force) { - yield ioUtil.copyFile(srcFile, destFile); - } - }); -} -//# sourceMappingURL=io.js.map - -/***/ }), - -/***/ 2029: -/***/ (function(module) { - -/** - * This file contains the Bottleneck library (MIT), compiled to ES2017, and without Clustering support. - * https://github.com/SGrondin/bottleneck - */ -(function (global, factory) { - true ? module.exports = factory() : - 0; -}(this, (function () { 'use strict'; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function getCjsExportFromNamespace (n) { - return n && n['default'] || n; - } - - var load = function(received, defaults, onto = {}) { - var k, ref, v; - for (k in defaults) { - v = defaults[k]; - onto[k] = (ref = received[k]) != null ? ref : v; - } - return onto; - }; - - var overwrite = function(received, defaults, onto = {}) { - var k, v; - for (k in received) { - v = received[k]; - if (defaults[k] !== void 0) { - onto[k] = v; - } - } - return onto; - }; - - var parser = { - load: load, - overwrite: overwrite - }; - - var DLList; - - DLList = class DLList { - constructor(incr, decr) { - this.incr = incr; - this.decr = decr; - this._first = null; - this._last = null; - this.length = 0; - } - - push(value) { - var node; - this.length++; - if (typeof this.incr === "function") { - this.incr(); - } - node = { - value, - prev: this._last, - next: null - }; - if (this._last != null) { - this._last.next = node; - this._last = node; - } else { - this._first = this._last = node; - } - return void 0; - } - - shift() { - var value; - if (this._first == null) { - return; - } else { - this.length--; - if (typeof this.decr === "function") { - this.decr(); - } - } - value = this._first.value; - if ((this._first = this._first.next) != null) { - this._first.prev = null; - } else { - this._last = null; - } - return value; - } - - first() { - if (this._first != null) { - return this._first.value; - } - } - - getArray() { - var node, ref, results; - node = this._first; - results = []; - while (node != null) { - results.push((ref = node, node = node.next, ref.value)); - } - return results; - } - - forEachShift(cb) { - var node; - node = this.shift(); - while (node != null) { - (cb(node), node = this.shift()); - } - return void 0; - } - - debug() { - var node, ref, ref1, ref2, results; - node = this._first; - results = []; - while (node != null) { - results.push((ref = node, node = node.next, { - value: ref.value, - prev: (ref1 = ref.prev) != null ? ref1.value : void 0, - next: (ref2 = ref.next) != null ? ref2.value : void 0 - })); - } - return results; - } - - }; - - var DLList_1 = DLList; - - var Events; - - Events = class Events { - constructor(instance) { - this.instance = instance; - this._events = {}; - if ((this.instance.on != null) || (this.instance.once != null) || (this.instance.removeAllListeners != null)) { - throw new Error("An Emitter already exists for this object"); - } - this.instance.on = (name, cb) => { - return this._addListener(name, "many", cb); - }; - this.instance.once = (name, cb) => { - return this._addListener(name, "once", cb); - }; - this.instance.removeAllListeners = (name = null) => { - if (name != null) { - return delete this._events[name]; - } else { - return this._events = {}; - } - }; - } - - _addListener(name, status, cb) { - var base; - if ((base = this._events)[name] == null) { - base[name] = []; - } - this._events[name].push({cb, status}); - return this.instance; - } - - listenerCount(name) { - if (this._events[name] != null) { - return this._events[name].length; - } else { - return 0; - } - } - - async trigger(name, ...args) { - var e, promises; - try { - if (name !== "debug") { - this.trigger("debug", `Event triggered: ${name}`, args); - } - if (this._events[name] == null) { - return; - } - this._events[name] = this._events[name].filter(function(listener) { - return listener.status !== "none"; - }); - promises = this._events[name].map(async(listener) => { - var e, returned; - if (listener.status === "none") { - return; - } - if (listener.status === "once") { - listener.status = "none"; - } - try { - returned = typeof listener.cb === "function" ? listener.cb(...args) : void 0; - if (typeof (returned != null ? returned.then : void 0) === "function") { - return (await returned); - } else { - return returned; - } - } catch (error) { - e = error; - { - this.trigger("error", e); - } - return null; - } - }); - return ((await Promise.all(promises))).find(function(x) { - return x != null; - }); - } catch (error) { - e = error; - { - this.trigger("error", e); - } - return null; - } - } - - }; - - var Events_1 = Events; - - var DLList$1, Events$1, Queues; - - DLList$1 = DLList_1; - - Events$1 = Events_1; - - Queues = class Queues { - constructor(num_priorities) { - var i; - this.Events = new Events$1(this); - this._length = 0; - this._lists = (function() { - var j, ref, results; - results = []; - for (i = j = 1, ref = num_priorities; (1 <= ref ? j <= ref : j >= ref); i = 1 <= ref ? ++j : --j) { - results.push(new DLList$1((() => { - return this.incr(); - }), (() => { - return this.decr(); - }))); - } - return results; - }).call(this); - } - - incr() { - if (this._length++ === 0) { - return this.Events.trigger("leftzero"); - } - } - - decr() { - if (--this._length === 0) { - return this.Events.trigger("zero"); - } - } - - push(job) { - return this._lists[job.options.priority].push(job); - } - - queued(priority) { - if (priority != null) { - return this._lists[priority].length; - } else { - return this._length; - } - } - - shiftAll(fn) { - return this._lists.forEach(function(list) { - return list.forEachShift(fn); - }); - } - - getFirst(arr = this._lists) { - var j, len, list; - for (j = 0, len = arr.length; j < len; j++) { - list = arr[j]; - if (list.length > 0) { - return list; - } - } - return []; - } - - shiftLastFrom(priority) { - return this.getFirst(this._lists.slice(priority).reverse()).shift(); - } - - }; - - var Queues_1 = Queues; - - var BottleneckError; - - BottleneckError = class BottleneckError extends Error {}; - - var BottleneckError_1 = BottleneckError; - - var BottleneckError$1, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser$1; - - NUM_PRIORITIES = 10; - - DEFAULT_PRIORITY = 5; - - parser$1 = parser; - - BottleneckError$1 = BottleneckError_1; - - Job = class Job { - constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) { - this.task = task; - this.args = args; - this.rejectOnDrop = rejectOnDrop; - this.Events = Events; - this._states = _states; - this.Promise = Promise; - this.options = parser$1.load(options, jobDefaults); - this.options.priority = this._sanitizePriority(this.options.priority); - if (this.options.id === jobDefaults.id) { - this.options.id = `${this.options.id}-${this._randomIndex()}`; - } - this.promise = new this.Promise((_resolve, _reject) => { - this._resolve = _resolve; - this._reject = _reject; - }); - this.retryCount = 0; - } - - _sanitizePriority(priority) { - var sProperty; - sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority; - if (sProperty < 0) { - return 0; - } else if (sProperty > NUM_PRIORITIES - 1) { - return NUM_PRIORITIES - 1; - } else { - return sProperty; - } - } - - _randomIndex() { - return Math.random().toString(36).slice(2); - } - - doDrop({error, message = "This job has been dropped by Bottleneck"} = {}) { - if (this._states.remove(this.options.id)) { - if (this.rejectOnDrop) { - this._reject(error != null ? error : new BottleneckError$1(message)); - } - this.Events.trigger("dropped", {args: this.args, options: this.options, task: this.task, promise: this.promise}); - return true; - } else { - return false; - } - } - - _assertStatus(expected) { - var status; - status = this._states.jobStatus(this.options.id); - if (!(status === expected || (expected === "DONE" && status === null))) { - throw new BottleneckError$1(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`); - } - } - - doReceive() { - this._states.start(this.options.id); - return this.Events.trigger("received", {args: this.args, options: this.options}); - } - - doQueue(reachedHWM, blocked) { - this._assertStatus("RECEIVED"); - this._states.next(this.options.id); - return this.Events.trigger("queued", {args: this.args, options: this.options, reachedHWM, blocked}); - } - - doRun() { - if (this.retryCount === 0) { - this._assertStatus("QUEUED"); - this._states.next(this.options.id); - } else { - this._assertStatus("EXECUTING"); - } - return this.Events.trigger("scheduled", {args: this.args, options: this.options}); - } - - async doExecute(chained, clearGlobalState, run, free) { - var error, eventInfo, passed; - if (this.retryCount === 0) { - this._assertStatus("RUNNING"); - this._states.next(this.options.id); - } else { - this._assertStatus("EXECUTING"); - } - eventInfo = {args: this.args, options: this.options, retryCount: this.retryCount}; - this.Events.trigger("executing", eventInfo); - try { - passed = (await (chained != null ? chained.schedule(this.options, this.task, ...this.args) : this.task(...this.args))); - if (clearGlobalState()) { - this.doDone(eventInfo); - await free(this.options, eventInfo); - this._assertStatus("DONE"); - return this._resolve(passed); - } - } catch (error1) { - error = error1; - return this._onFailure(error, eventInfo, clearGlobalState, run, free); - } - } - - doExpire(clearGlobalState, run, free) { - var error, eventInfo; - if (this._states.jobStatus(this.options.id === "RUNNING")) { - this._states.next(this.options.id); - } - this._assertStatus("EXECUTING"); - eventInfo = {args: this.args, options: this.options, retryCount: this.retryCount}; - error = new BottleneckError$1(`This job timed out after ${this.options.expiration} ms.`); - return this._onFailure(error, eventInfo, clearGlobalState, run, free); - } - - async _onFailure(error, eventInfo, clearGlobalState, run, free) { - var retry, retryAfter; - if (clearGlobalState()) { - retry = (await this.Events.trigger("failed", error, eventInfo)); - if (retry != null) { - retryAfter = ~~retry; - this.Events.trigger("retry", `Retrying ${this.options.id} after ${retryAfter} ms`, eventInfo); - this.retryCount++; - return run(retryAfter); - } else { - this.doDone(eventInfo); - await free(this.options, eventInfo); - this._assertStatus("DONE"); - return this._reject(error); - } - } - } - - doDone(eventInfo) { - this._assertStatus("EXECUTING"); - this._states.next(this.options.id); - return this.Events.trigger("done", eventInfo); - } - - }; - - var Job_1 = Job; - - var BottleneckError$2, LocalDatastore, parser$2; - - parser$2 = parser; - - BottleneckError$2 = BottleneckError_1; - - LocalDatastore = class LocalDatastore { - constructor(instance, storeOptions, storeInstanceOptions) { - this.instance = instance; - this.storeOptions = storeOptions; - this.clientId = this.instance._randomIndex(); - parser$2.load(storeInstanceOptions, storeInstanceOptions, this); - this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now(); - this._running = 0; - this._done = 0; - this._unblockTime = 0; - this.ready = this.Promise.resolve(); - this.clients = {}; - this._startHeartbeat(); - } - - _startHeartbeat() { - var base; - if ((this.heartbeat == null) && (((this.storeOptions.reservoirRefreshInterval != null) && (this.storeOptions.reservoirRefreshAmount != null)) || ((this.storeOptions.reservoirIncreaseInterval != null) && (this.storeOptions.reservoirIncreaseAmount != null)))) { - return typeof (base = (this.heartbeat = setInterval(() => { - var amount, incr, maximum, now, reservoir; - now = Date.now(); - if ((this.storeOptions.reservoirRefreshInterval != null) && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) { - this._lastReservoirRefresh = now; - this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount; - this.instance._drainAll(this.computeCapacity()); - } - if ((this.storeOptions.reservoirIncreaseInterval != null) && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) { - ({ - reservoirIncreaseAmount: amount, - reservoirIncreaseMaximum: maximum, - reservoir - } = this.storeOptions); - this._lastReservoirIncrease = now; - incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount; - if (incr > 0) { - this.storeOptions.reservoir += incr; - return this.instance._drainAll(this.computeCapacity()); - } - } - }, this.heartbeatInterval))).unref === "function" ? base.unref() : void 0; - } else { - return clearInterval(this.heartbeat); - } - } - - async __publish__(message) { - await this.yieldLoop(); - return this.instance.Events.trigger("message", message.toString()); - } - - async __disconnect__(flush) { - await this.yieldLoop(); - clearInterval(this.heartbeat); - return this.Promise.resolve(); - } - - yieldLoop(t = 0) { - return new this.Promise(function(resolve, reject) { - return setTimeout(resolve, t); - }); - } - - computePenalty() { - var ref; - return (ref = this.storeOptions.penalty) != null ? ref : (15 * this.storeOptions.minTime) || 5000; - } - - async __updateSettings__(options) { - await this.yieldLoop(); - parser$2.overwrite(options, options, this.storeOptions); - this._startHeartbeat(); - this.instance._drainAll(this.computeCapacity()); - return true; - } - - async __running__() { - await this.yieldLoop(); - return this._running; - } - - async __queued__() { - await this.yieldLoop(); - return this.instance.queued(); - } - - async __done__() { - await this.yieldLoop(); - return this._done; - } - - async __groupCheck__(time) { - await this.yieldLoop(); - return (this._nextRequest + this.timeout) < time; - } - - computeCapacity() { - var maxConcurrent, reservoir; - ({maxConcurrent, reservoir} = this.storeOptions); - if ((maxConcurrent != null) && (reservoir != null)) { - return Math.min(maxConcurrent - this._running, reservoir); - } else if (maxConcurrent != null) { - return maxConcurrent - this._running; - } else if (reservoir != null) { - return reservoir; - } else { - return null; - } - } - - conditionsCheck(weight) { - var capacity; - capacity = this.computeCapacity(); - return (capacity == null) || weight <= capacity; - } - - async __incrementReservoir__(incr) { - var reservoir; - await this.yieldLoop(); - reservoir = this.storeOptions.reservoir += incr; - this.instance._drainAll(this.computeCapacity()); - return reservoir; - } - - async __currentReservoir__() { - await this.yieldLoop(); - return this.storeOptions.reservoir; - } - - isBlocked(now) { - return this._unblockTime >= now; - } - - check(weight, now) { - return this.conditionsCheck(weight) && (this._nextRequest - now) <= 0; - } - - async __check__(weight) { - var now; - await this.yieldLoop(); - now = Date.now(); - return this.check(weight, now); - } - - async __register__(index, weight, expiration) { - var now, wait; - await this.yieldLoop(); - now = Date.now(); - if (this.conditionsCheck(weight)) { - this._running += weight; - if (this.storeOptions.reservoir != null) { - this.storeOptions.reservoir -= weight; - } - wait = Math.max(this._nextRequest - now, 0); - this._nextRequest = now + wait + this.storeOptions.minTime; - return { - success: true, - wait, - reservoir: this.storeOptions.reservoir - }; - } else { - return { - success: false - }; - } - } - - strategyIsBlock() { - return this.storeOptions.strategy === 3; - } - - async __submit__(queueLength, weight) { - var blocked, now, reachedHWM; - await this.yieldLoop(); - if ((this.storeOptions.maxConcurrent != null) && weight > this.storeOptions.maxConcurrent) { - throw new BottleneckError$2(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`); - } - now = Date.now(); - reachedHWM = (this.storeOptions.highWater != null) && queueLength === this.storeOptions.highWater && !this.check(weight, now); - blocked = this.strategyIsBlock() && (reachedHWM || this.isBlocked(now)); - if (blocked) { - this._unblockTime = now + this.computePenalty(); - this._nextRequest = this._unblockTime + this.storeOptions.minTime; - this.instance._dropAllQueued(); - } - return { - reachedHWM, - blocked, - strategy: this.storeOptions.strategy - }; - } - - async __free__(index, weight) { - await this.yieldLoop(); - this._running -= weight; - this._done += weight; - this.instance._drainAll(this.computeCapacity()); - return { - running: this._running - }; - } - - }; - - var LocalDatastore_1 = LocalDatastore; - - var BottleneckError$3, States; - - BottleneckError$3 = BottleneckError_1; - - States = class States { - constructor(status1) { - this.status = status1; - this._jobs = {}; - this.counts = this.status.map(function() { - return 0; - }); - } - - next(id) { - var current, next; - current = this._jobs[id]; - next = current + 1; - if ((current != null) && next < this.status.length) { - this.counts[current]--; - this.counts[next]++; - return this._jobs[id]++; - } else if (current != null) { - this.counts[current]--; - return delete this._jobs[id]; - } - } - - start(id) { - var initial; - initial = 0; - this._jobs[id] = initial; - return this.counts[initial]++; - } - - remove(id) { - var current; - current = this._jobs[id]; - if (current != null) { - this.counts[current]--; - delete this._jobs[id]; - } - return current != null; - } - - jobStatus(id) { - var ref; - return (ref = this.status[this._jobs[id]]) != null ? ref : null; - } - - statusJobs(status) { - var k, pos, ref, results, v; - if (status != null) { - pos = this.status.indexOf(status); - if (pos < 0) { - throw new BottleneckError$3(`status must be one of ${this.status.join(', ')}`); - } - ref = this._jobs; - results = []; - for (k in ref) { - v = ref[k]; - if (v === pos) { - results.push(k); - } - } - return results; - } else { - return Object.keys(this._jobs); - } - } - - statusCounts() { - return this.counts.reduce(((acc, v, i) => { - acc[this.status[i]] = v; - return acc; - }), {}); - } - - }; - - var States_1 = States; - - var DLList$2, Sync; - - DLList$2 = DLList_1; - - Sync = class Sync { - constructor(name, Promise) { - this.schedule = this.schedule.bind(this); - this.name = name; - this.Promise = Promise; - this._running = 0; - this._queue = new DLList$2(); - } - - isEmpty() { - return this._queue.length === 0; - } - - async _tryToRun() { - var args, cb, error, reject, resolve, returned, task; - if ((this._running < 1) && this._queue.length > 0) { - this._running++; - ({task, args, resolve, reject} = this._queue.shift()); - cb = (await (async function() { - try { - returned = (await task(...args)); - return function() { - return resolve(returned); - }; - } catch (error1) { - error = error1; - return function() { - return reject(error); - }; - } - })()); - this._running--; - this._tryToRun(); - return cb(); - } - } - - schedule(task, ...args) { - var promise, reject, resolve; - resolve = reject = null; - promise = new this.Promise(function(_resolve, _reject) { - resolve = _resolve; - return reject = _reject; - }); - this._queue.push({task, args, resolve, reject}); - this._tryToRun(); - return promise; - } - - }; - - var Sync_1 = Sync; - - var version = "2.19.5"; - var version$1 = { - version: version - }; - - var version$2 = /*#__PURE__*/Object.freeze({ - version: version, - default: version$1 - }); - - var require$$2 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); - - var require$$3 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); - - var require$$4 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); - - var Events$2, Group, IORedisConnection$1, RedisConnection$1, Scripts$1, parser$3; - - parser$3 = parser; - - Events$2 = Events_1; - - RedisConnection$1 = require$$2; - - IORedisConnection$1 = require$$3; - - Scripts$1 = require$$4; - - Group = (function() { - class Group { - constructor(limiterOptions = {}) { - this.deleteKey = this.deleteKey.bind(this); - this.limiterOptions = limiterOptions; - parser$3.load(this.limiterOptions, this.defaults, this); - this.Events = new Events$2(this); - this.instances = {}; - this.Bottleneck = Bottleneck_1; - this._startAutoCleanup(); - this.sharedConnection = this.connection != null; - if (this.connection == null) { - if (this.limiterOptions.datastore === "redis") { - this.connection = new RedisConnection$1(Object.assign({}, this.limiterOptions, {Events: this.Events})); - } else if (this.limiterOptions.datastore === "ioredis") { - this.connection = new IORedisConnection$1(Object.assign({}, this.limiterOptions, {Events: this.Events})); - } - } - } - - key(key = "") { - var ref; - return (ref = this.instances[key]) != null ? ref : (() => { - var limiter; - limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, { - id: `${this.id}-${key}`, - timeout: this.timeout, - connection: this.connection - })); - this.Events.trigger("created", limiter, key); - return limiter; - })(); - } - - async deleteKey(key = "") { - var deleted, instance; - instance = this.instances[key]; - if (this.connection) { - deleted = (await this.connection.__runCommand__(['del', ...Scripts$1.allKeys(`${this.id}-${key}`)])); - } - if (instance != null) { - delete this.instances[key]; - await instance.disconnect(); - } - return (instance != null) || deleted > 0; - } - - limiters() { - var k, ref, results, v; - ref = this.instances; - results = []; - for (k in ref) { - v = ref[k]; - results.push({ - key: k, - limiter: v - }); - } - return results; - } - - keys() { - return Object.keys(this.instances); - } - - async clusterKeys() { - var cursor, end, found, i, k, keys, len, next, start; - if (this.connection == null) { - return this.Promise.resolve(this.keys()); - } - keys = []; - cursor = null; - start = `b_${this.id}-`.length; - end = "_settings".length; - while (cursor !== 0) { - [next, found] = (await this.connection.__runCommand__(["scan", cursor != null ? cursor : 0, "match", `b_${this.id}-*_settings`, "count", 10000])); - cursor = ~~next; - for (i = 0, len = found.length; i < len; i++) { - k = found[i]; - keys.push(k.slice(start, -end)); - } - } - return keys; - } - - _startAutoCleanup() { - var base; - clearInterval(this.interval); - return typeof (base = (this.interval = setInterval(async() => { - var e, k, ref, results, time, v; - time = Date.now(); - ref = this.instances; - results = []; - for (k in ref) { - v = ref[k]; - try { - if ((await v._store.__groupCheck__(time))) { - results.push(this.deleteKey(k)); - } else { - results.push(void 0); - } - } catch (error) { - e = error; - results.push(v.Events.trigger("error", e)); - } - } - return results; - }, this.timeout / 2))).unref === "function" ? base.unref() : void 0; - } - - updateSettings(options = {}) { - parser$3.overwrite(options, this.defaults, this); - parser$3.overwrite(options, options, this.limiterOptions); - if (options.timeout != null) { - return this._startAutoCleanup(); - } - } - - disconnect(flush = true) { - var ref; - if (!this.sharedConnection) { - return (ref = this.connection) != null ? ref.disconnect(flush) : void 0; - } - } - - } - Group.prototype.defaults = { - timeout: 1000 * 60 * 5, - connection: null, - Promise: Promise, - id: "group-key" - }; - - return Group; - - }).call(commonjsGlobal); - - var Group_1 = Group; - - var Batcher, Events$3, parser$4; - - parser$4 = parser; - - Events$3 = Events_1; - - Batcher = (function() { - class Batcher { - constructor(options = {}) { - this.options = options; - parser$4.load(this.options, this.defaults, this); - this.Events = new Events$3(this); - this._arr = []; - this._resetPromise(); - this._lastFlush = Date.now(); - } - - _resetPromise() { - return this._promise = new this.Promise((res, rej) => { - return this._resolve = res; - }); - } - - _flush() { - clearTimeout(this._timeout); - this._lastFlush = Date.now(); - this._resolve(); - this.Events.trigger("batch", this._arr); - this._arr = []; - return this._resetPromise(); - } - - add(data) { - var ret; - this._arr.push(data); - ret = this._promise; - if (this._arr.length === this.maxSize) { - this._flush(); - } else if ((this.maxTime != null) && this._arr.length === 1) { - this._timeout = setTimeout(() => { - return this._flush(); - }, this.maxTime); - } - return ret; - } - - } - Batcher.prototype.defaults = { - maxTime: null, - maxSize: null, - Promise: Promise - }; - - return Batcher; - - }).call(commonjsGlobal); - - var Batcher_1 = Batcher; - - var require$$4$1 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); - - var require$$8 = getCjsExportFromNamespace(version$2); - - var Bottleneck, DEFAULT_PRIORITY$1, Events$4, Job$1, LocalDatastore$1, NUM_PRIORITIES$1, Queues$1, RedisDatastore$1, States$1, Sync$1, parser$5, - splice = [].splice; - - NUM_PRIORITIES$1 = 10; - - DEFAULT_PRIORITY$1 = 5; - - parser$5 = parser; - - Queues$1 = Queues_1; - - Job$1 = Job_1; - - LocalDatastore$1 = LocalDatastore_1; - - RedisDatastore$1 = require$$4$1; - - Events$4 = Events_1; - - States$1 = States_1; - - Sync$1 = Sync_1; - - Bottleneck = (function() { - class Bottleneck { - constructor(options = {}, ...invalid) { - var storeInstanceOptions, storeOptions; - this._addToQueue = this._addToQueue.bind(this); - this._validateOptions(options, invalid); - parser$5.load(options, this.instanceDefaults, this); - this._queues = new Queues$1(NUM_PRIORITIES$1); - this._scheduled = {}; - this._states = new States$1(["RECEIVED", "QUEUED", "RUNNING", "EXECUTING"].concat(this.trackDoneStatus ? ["DONE"] : [])); - this._limiter = null; - this.Events = new Events$4(this); - this._submitLock = new Sync$1("submit", this.Promise); - this._registerLock = new Sync$1("register", this.Promise); - storeOptions = parser$5.load(options, this.storeDefaults, {}); - this._store = (function() { - if (this.datastore === "redis" || this.datastore === "ioredis" || (this.connection != null)) { - storeInstanceOptions = parser$5.load(options, this.redisStoreDefaults, {}); - return new RedisDatastore$1(this, storeOptions, storeInstanceOptions); - } else if (this.datastore === "local") { - storeInstanceOptions = parser$5.load(options, this.localStoreDefaults, {}); - return new LocalDatastore$1(this, storeOptions, storeInstanceOptions); - } else { - throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`); - } - }).call(this); - this._queues.on("leftzero", () => { - var ref; - return (ref = this._store.heartbeat) != null ? typeof ref.ref === "function" ? ref.ref() : void 0 : void 0; - }); - this._queues.on("zero", () => { - var ref; - return (ref = this._store.heartbeat) != null ? typeof ref.unref === "function" ? ref.unref() : void 0 : void 0; - }); - } - - _validateOptions(options, invalid) { - if (!((options != null) && typeof options === "object" && invalid.length === 0)) { - throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1."); - } - } - - ready() { - return this._store.ready; - } - - clients() { - return this._store.clients; - } - - channel() { - return `b_${this.id}`; - } - - channel_client() { - return `b_${this.id}_${this._store.clientId}`; - } - - publish(message) { - return this._store.__publish__(message); - } - - disconnect(flush = true) { - return this._store.__disconnect__(flush); - } - - chain(_limiter) { - this._limiter = _limiter; - return this; - } - - queued(priority) { - return this._queues.queued(priority); - } - - clusterQueued() { - return this._store.__queued__(); - } - - empty() { - return this.queued() === 0 && this._submitLock.isEmpty(); - } - - running() { - return this._store.__running__(); - } - - done() { - return this._store.__done__(); - } - - jobStatus(id) { - return this._states.jobStatus(id); - } - - jobs(status) { - return this._states.statusJobs(status); - } - - counts() { - return this._states.statusCounts(); - } - - _randomIndex() { - return Math.random().toString(36).slice(2); - } - - check(weight = 1) { - return this._store.__check__(weight); - } - - _clearGlobalState(index) { - if (this._scheduled[index] != null) { - clearTimeout(this._scheduled[index].expiration); - delete this._scheduled[index]; - return true; - } else { - return false; - } - } - - async _free(index, job, options, eventInfo) { - var e, running; - try { - ({running} = (await this._store.__free__(index, options.weight))); - this.Events.trigger("debug", `Freed ${options.id}`, eventInfo); - if (running === 0 && this.empty()) { - return this.Events.trigger("idle"); - } - } catch (error1) { - e = error1; - return this.Events.trigger("error", e); - } - } - - _run(index, job, wait) { - var clearGlobalState, free, run; - job.doRun(); - clearGlobalState = this._clearGlobalState.bind(this, index); - run = this._run.bind(this, index, job); - free = this._free.bind(this, index, job); - return this._scheduled[index] = { - timeout: setTimeout(() => { - return job.doExecute(this._limiter, clearGlobalState, run, free); - }, wait), - expiration: job.options.expiration != null ? setTimeout(function() { - return job.doExpire(clearGlobalState, run, free); - }, wait + job.options.expiration) : void 0, - job: job - }; - } - - _drainOne(capacity) { - return this._registerLock.schedule(() => { - var args, index, next, options, queue; - if (this.queued() === 0) { - return this.Promise.resolve(null); - } - queue = this._queues.getFirst(); - ({options, args} = next = queue.first()); - if ((capacity != null) && options.weight > capacity) { - return this.Promise.resolve(null); - } - this.Events.trigger("debug", `Draining ${options.id}`, {args, options}); - index = this._randomIndex(); - return this._store.__register__(index, options.weight, options.expiration).then(({success, wait, reservoir}) => { - var empty; - this.Events.trigger("debug", `Drained ${options.id}`, {success, args, options}); - if (success) { - queue.shift(); - empty = this.empty(); - if (empty) { - this.Events.trigger("empty"); - } - if (reservoir === 0) { - this.Events.trigger("depleted", empty); - } - this._run(index, next, wait); - return this.Promise.resolve(options.weight); - } else { - return this.Promise.resolve(null); - } - }); - }); - } - - _drainAll(capacity, total = 0) { - return this._drainOne(capacity).then((drained) => { - var newCapacity; - if (drained != null) { - newCapacity = capacity != null ? capacity - drained : capacity; - return this._drainAll(newCapacity, total + drained); - } else { - return this.Promise.resolve(total); - } - }).catch((e) => { - return this.Events.trigger("error", e); - }); - } - - _dropAllQueued(message) { - return this._queues.shiftAll(function(job) { - return job.doDrop({message}); - }); - } - - stop(options = {}) { - var done, waitForExecuting; - options = parser$5.load(options, this.stopDefaults); - waitForExecuting = (at) => { - var finished; - finished = () => { - var counts; - counts = this._states.counts; - return (counts[0] + counts[1] + counts[2] + counts[3]) === at; - }; - return new this.Promise((resolve, reject) => { - if (finished()) { - return resolve(); - } else { - return this.on("done", () => { - if (finished()) { - this.removeAllListeners("done"); - return resolve(); - } - }); - } - }); - }; - done = options.dropWaitingJobs ? (this._run = function(index, next) { - return next.doDrop({ - message: options.dropErrorMessage - }); - }, this._drainOne = () => { - return this.Promise.resolve(null); - }, this._registerLock.schedule(() => { - return this._submitLock.schedule(() => { - var k, ref, v; - ref = this._scheduled; - for (k in ref) { - v = ref[k]; - if (this.jobStatus(v.job.options.id) === "RUNNING") { - clearTimeout(v.timeout); - clearTimeout(v.expiration); - v.job.doDrop({ - message: options.dropErrorMessage - }); - } - } - this._dropAllQueued(options.dropErrorMessage); - return waitForExecuting(0); - }); - })) : this.schedule({ - priority: NUM_PRIORITIES$1 - 1, - weight: 0 - }, () => { - return waitForExecuting(1); - }); - this._receive = function(job) { - return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage)); - }; - this.stop = () => { - return this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called")); - }; - return done; - } - - async _addToQueue(job) { - var args, blocked, error, options, reachedHWM, shifted, strategy; - ({args, options} = job); - try { - ({reachedHWM, blocked, strategy} = (await this._store.__submit__(this.queued(), options.weight))); - } catch (error1) { - error = error1; - this.Events.trigger("debug", `Could not queue ${options.id}`, {args, options, error}); - job.doDrop({error}); - return false; - } - if (blocked) { - job.doDrop(); - return true; - } else if (reachedHWM) { - shifted = strategy === Bottleneck.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0; - if (shifted != null) { - shifted.doDrop(); - } - if ((shifted == null) || strategy === Bottleneck.prototype.strategy.OVERFLOW) { - if (shifted == null) { - job.doDrop(); - } - return reachedHWM; - } - } - job.doQueue(reachedHWM, blocked); - this._queues.push(job); - await this._drainAll(); - return reachedHWM; - } - - _receive(job) { - if (this._states.jobStatus(job.options.id) != null) { - job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`)); - return false; - } else { - job.doReceive(); - return this._submitLock.schedule(this._addToQueue, job); - } - } - - submit(...args) { - var cb, fn, job, options, ref, ref1, task; - if (typeof args[0] === "function") { - ref = args, [fn, ...args] = ref, [cb] = splice.call(args, -1); - options = parser$5.load({}, this.jobDefaults); - } else { - ref1 = args, [options, fn, ...args] = ref1, [cb] = splice.call(args, -1); - options = parser$5.load(options, this.jobDefaults); - } - task = (...args) => { - return new this.Promise(function(resolve, reject) { - return fn(...args, function(...args) { - return (args[0] != null ? reject : resolve)(args); - }); - }); - }; - job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); - job.promise.then(function(args) { - return typeof cb === "function" ? cb(...args) : void 0; - }).catch(function(args) { - if (Array.isArray(args)) { - return typeof cb === "function" ? cb(...args) : void 0; - } else { - return typeof cb === "function" ? cb(args) : void 0; - } - }); - return this._receive(job); - } - - schedule(...args) { - var job, options, task; - if (typeof args[0] === "function") { - [task, ...args] = args; - options = {}; - } else { - [options, task, ...args] = args; - } - job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); - this._receive(job); - return job.promise; - } - - wrap(fn) { - var schedule, wrapped; - schedule = this.schedule.bind(this); - wrapped = function(...args) { - return schedule(fn.bind(this), ...args); - }; - wrapped.withOptions = function(options, ...args) { - return schedule(options, fn, ...args); - }; - return wrapped; - } - - async updateSettings(options = {}) { - await this._store.__updateSettings__(parser$5.overwrite(options, this.storeDefaults)); - parser$5.overwrite(options, this.instanceDefaults, this); - return this; - } - - currentReservoir() { - return this._store.__currentReservoir__(); - } - - incrementReservoir(incr = 0) { - return this._store.__incrementReservoir__(incr); - } - - } - Bottleneck.default = Bottleneck; - - Bottleneck.Events = Events$4; - - Bottleneck.version = Bottleneck.prototype.version = require$$8.version; - - Bottleneck.strategy = Bottleneck.prototype.strategy = { - LEAK: 1, - OVERFLOW: 2, - OVERFLOW_PRIORITY: 4, - BLOCK: 3 - }; - - Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = BottleneckError_1; - - Bottleneck.Group = Bottleneck.prototype.Group = Group_1; - - Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require$$2; - - Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require$$3; - - Bottleneck.Batcher = Bottleneck.prototype.Batcher = Batcher_1; - - Bottleneck.prototype.jobDefaults = { - priority: DEFAULT_PRIORITY$1, - weight: 1, - expiration: null, - id: "" - }; - - Bottleneck.prototype.storeDefaults = { - maxConcurrent: null, - minTime: 0, - highWater: null, - strategy: Bottleneck.prototype.strategy.LEAK, - penalty: null, - reservoir: null, - reservoirRefreshInterval: null, - reservoirRefreshAmount: null, - reservoirIncreaseInterval: null, - reservoirIncreaseAmount: null, - reservoirIncreaseMaximum: null - }; - - Bottleneck.prototype.localStoreDefaults = { - Promise: Promise, - timeout: null, - heartbeatInterval: 250 - }; - - Bottleneck.prototype.redisStoreDefaults = { - Promise: Promise, - timeout: null, - heartbeatInterval: 5000, - clientTimeout: 10000, - Redis: null, - clientOptions: {}, - clusterNodes: null, - clearDatastore: false, - connection: null - }; - - Bottleneck.prototype.instanceDefaults = { - datastore: "local", - connection: null, - id: "", - rejectOnDrop: true, - trackDoneStatus: false, - Promise: Promise - }; - - Bottleneck.prototype.stopDefaults = { - enqueueErrorMessage: "This limiter has been stopped and cannot accept new jobs.", - dropWaitingJobs: true, - dropErrorMessage: "This limiter has been stopped." - }; - - return Bottleneck; - - }).call(commonjsGlobal); - - var Bottleneck_1 = Bottleneck; - - var lib = Bottleneck_1; - - return lib; - -}))); - - -/***/ }), - -/***/ 1160: -/***/ ((__unused_webpack_module, exports) => { - - - -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; - - -/***/ }), - -/***/ 7159: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const fs = __nccwpck_require__(9896) -const path = __nccwpck_require__(6928) -const os = __nccwpck_require__(857) -const crypto = __nccwpck_require__(6982) -const packageJson = __nccwpck_require__(56) - -const version = packageJson.version - -const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg - -// Parse src into an Object -function parse (src) { - const obj = {} - - // Convert buffer to string - let lines = src.toString() - - // Convert line breaks to same format - lines = lines.replace(/\r\n?/mg, '\n') - - let match - while ((match = LINE.exec(lines)) != null) { - const key = match[1] - - // Default undefined or null to empty string - let value = (match[2] || '') - - // Remove whitespace - value = value.trim() - - // Check if double quoted - const maybeQuote = value[0] - - // Remove surrounding quotes - value = value.replace(/^(['"`])([\s\S]*)\1$/mg, '$2') - - // Expand newlines if double quoted - if (maybeQuote === '"') { - value = value.replace(/\\n/g, '\n') - value = value.replace(/\\r/g, '\r') - } - - // Add to object - obj[key] = value - } - - return obj -} - -function _parseVault (options) { - const vaultPath = _vaultPath(options) - - // Parse .env.vault - const result = DotenvModule.configDotenv({ path: vaultPath }) - if (!result.parsed) { - const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`) - err.code = 'MISSING_DATA' - throw err - } - - // handle scenario for comma separated keys - for use with key rotation - // example: DOTENV_KEY="dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod" - const keys = _dotenvKey(options).split(',') - const length = keys.length - - let decrypted - for (let i = 0; i < length; i++) { - try { - // Get full key - const key = keys[i].trim() - - // Get instructions for decrypt - const attrs = _instructions(result, key) - - // Decrypt - decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key) - - break - } catch (error) { - // last key - if (i + 1 >= length) { - throw error - } - // try next key - } - } - - // Parse decrypted .env string - return DotenvModule.parse(decrypted) -} - -function _log (message) { - console.log(`[dotenv@${version}][INFO] ${message}`) -} - -function _warn (message) { - console.log(`[dotenv@${version}][WARN] ${message}`) -} - -function _debug (message) { - console.log(`[dotenv@${version}][DEBUG] ${message}`) -} - -function _dotenvKey (options) { - // prioritize developer directly setting options.DOTENV_KEY - if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) { - return options.DOTENV_KEY - } - - // secondary infra already contains a DOTENV_KEY environment variable - if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) { - return process.env.DOTENV_KEY - } - - // fallback to empty string - return '' -} - -function _instructions (result, dotenvKey) { - // Parse DOTENV_KEY. Format is a URI - let uri - try { - uri = new URL(dotenvKey) - } catch (error) { - if (error.code === 'ERR_INVALID_URL') { - const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development') - err.code = 'INVALID_DOTENV_KEY' - throw err - } - - throw error - } - - // Get decrypt key - const key = uri.password - if (!key) { - const err = new Error('INVALID_DOTENV_KEY: Missing key part') - err.code = 'INVALID_DOTENV_KEY' - throw err - } - - // Get environment - const environment = uri.searchParams.get('environment') - if (!environment) { - const err = new Error('INVALID_DOTENV_KEY: Missing environment part') - err.code = 'INVALID_DOTENV_KEY' - throw err - } - - // Get ciphertext payload - const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}` - const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION - if (!ciphertext) { - const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`) - err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT' - throw err - } - - return { ciphertext, key } -} - -function _vaultPath (options) { - let possibleVaultPath = null - - if (options && options.path && options.path.length > 0) { - if (Array.isArray(options.path)) { - for (const filepath of options.path) { - if (fs.existsSync(filepath)) { - possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault` - } - } - } else { - possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault` - } - } else { - possibleVaultPath = path.resolve(process.cwd(), '.env.vault') - } - - if (fs.existsSync(possibleVaultPath)) { - return possibleVaultPath - } - - return null -} - -function _resolveHome (envPath) { - return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath -} - -function _configVault (options) { - _log('Loading env from encrypted .env.vault') - - const parsed = DotenvModule._parseVault(options) - - let processEnv = process.env - if (options && options.processEnv != null) { - processEnv = options.processEnv - } - - DotenvModule.populate(processEnv, parsed, options) - - return { parsed } -} - -function configDotenv (options) { - const dotenvPath = path.resolve(process.cwd(), '.env') - let encoding = 'utf8' - const debug = Boolean(options && options.debug) - - if (options && options.encoding) { - encoding = options.encoding - } else { - if (debug) { - _debug('No encoding is specified. UTF-8 is used by default') - } - } - - let optionPaths = [dotenvPath] // default, look for .env - if (options && options.path) { - if (!Array.isArray(options.path)) { - optionPaths = [_resolveHome(options.path)] - } else { - optionPaths = [] // reset default - for (const filepath of options.path) { - optionPaths.push(_resolveHome(filepath)) - } - } - } - - // Build the parsed data in a temporary object (because we need to return it). Once we have the final - // parsed data, we will combine it with process.env (or options.processEnv if provided). - let lastError - const parsedAll = {} - for (const path of optionPaths) { - try { - // Specifying an encoding returns a string instead of a buffer - const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding })) - - DotenvModule.populate(parsedAll, parsed, options) - } catch (e) { - if (debug) { - _debug(`Failed to load ${path} ${e.message}`) - } - lastError = e - } - } - - let processEnv = process.env - if (options && options.processEnv != null) { - processEnv = options.processEnv - } - - DotenvModule.populate(processEnv, parsedAll, options) - - if (lastError) { - return { parsed: parsedAll, error: lastError } - } else { - return { parsed: parsedAll } - } -} - -// Populates process.env from .env file -function config (options) { - // fallback to original dotenv if DOTENV_KEY is not set - if (_dotenvKey(options).length === 0) { - return DotenvModule.configDotenv(options) - } - - const vaultPath = _vaultPath(options) - - // dotenvKey exists but .env.vault file does not exist - if (!vaultPath) { - _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`) - - return DotenvModule.configDotenv(options) - } - - return DotenvModule._configVault(options) -} - -function decrypt (encrypted, keyStr) { - const key = Buffer.from(keyStr.slice(-64), 'hex') - let ciphertext = Buffer.from(encrypted, 'base64') - - const nonce = ciphertext.subarray(0, 12) - const authTag = ciphertext.subarray(-16) - ciphertext = ciphertext.subarray(12, -16) - - try { - const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce) - aesgcm.setAuthTag(authTag) - return `${aesgcm.update(ciphertext)}${aesgcm.final()}` - } catch (error) { - const isRange = error instanceof RangeError - const invalidKeyLength = error.message === 'Invalid key length' - const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data' - - if (isRange || invalidKeyLength) { - const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)') - err.code = 'INVALID_DOTENV_KEY' - throw err - } else if (decryptionFailed) { - const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY') - err.code = 'DECRYPTION_FAILED' - throw err - } else { - throw error - } - } -} - -// Populate process.env with parsed values -function populate (processEnv, parsed, options = {}) { - const debug = Boolean(options && options.debug) - const override = Boolean(options && options.override) - - if (typeof parsed !== 'object') { - const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate') - err.code = 'OBJECT_REQUIRED' - throw err - } - - // Set process.env - for (const key of Object.keys(parsed)) { - if (Object.prototype.hasOwnProperty.call(processEnv, key)) { - if (override === true) { - processEnv[key] = parsed[key] - } - - if (debug) { - if (override === true) { - _debug(`"${key}" is already defined and WAS overwritten`) - } else { - _debug(`"${key}" is already defined and was NOT overwritten`) - } - } - } else { - processEnv[key] = parsed[key] - } - } -} - -const DotenvModule = { - configDotenv, - _configVault, - _parseVault, - config, - decrypt, - parse, - populate -} - -module.exports.configDotenv = DotenvModule.configDotenv -module.exports._configVault = DotenvModule._configVault -module.exports._parseVault = DotenvModule._parseVault -module.exports.config = DotenvModule.config -module.exports.decrypt = DotenvModule.decrypt -module.exports.parse = DotenvModule.parse -module.exports.populate = DotenvModule.populate - -module.exports = DotenvModule - - -/***/ }), - -/***/ 9898: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -(function (global, factory) { - true ? factory(exports, __nccwpck_require__(3514), __nccwpck_require__(9727)) : - 0; -}(this, (function (exports, tslib, graphql) { 'use strict'; - - var docCache = new Map(); - var fragmentSourceMap = new Map(); - var printFragmentWarnings = true; - var experimentalFragmentVariables = false; - function normalize(string) { - return string.replace(/[\s,]+/g, ' ').trim(); - } - function cacheKeyFromLoc(loc) { - return normalize(loc.source.body.substring(loc.start, loc.end)); - } - function processFragments(ast) { - var seenKeys = new Set(); - var definitions = []; - ast.definitions.forEach(function (fragmentDefinition) { - if (fragmentDefinition.kind === 'FragmentDefinition') { - var fragmentName = fragmentDefinition.name.value; - var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc); - var sourceKeySet = fragmentSourceMap.get(fragmentName); - if (sourceKeySet && !sourceKeySet.has(sourceKey)) { - if (printFragmentWarnings) { - console.warn("Warning: fragment with name " + fragmentName + " already exists.\n" - + "graphql-tag enforces all fragment names across your application to be unique; read more about\n" - + "this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"); - } - } - else if (!sourceKeySet) { - fragmentSourceMap.set(fragmentName, sourceKeySet = new Set); - } - sourceKeySet.add(sourceKey); - if (!seenKeys.has(sourceKey)) { - seenKeys.add(sourceKey); - definitions.push(fragmentDefinition); - } - } - else { - definitions.push(fragmentDefinition); - } - }); - return tslib.__assign(tslib.__assign({}, ast), { definitions: definitions }); - } - function stripLoc(doc) { - var workSet = new Set(doc.definitions); - workSet.forEach(function (node) { - if (node.loc) - delete node.loc; - Object.keys(node).forEach(function (key) { - var value = node[key]; - if (value && typeof value === 'object') { - workSet.add(value); - } - }); - }); - var loc = doc.loc; - if (loc) { - delete loc.startToken; - delete loc.endToken; - } - return doc; - } - function parseDocument(source) { - var cacheKey = normalize(source); - if (!docCache.has(cacheKey)) { - var parsed = graphql.parse(source, { - experimentalFragmentVariables: experimentalFragmentVariables, - allowLegacyFragmentVariables: experimentalFragmentVariables - }); - if (!parsed || parsed.kind !== 'Document') { - throw new Error('Not a valid GraphQL document.'); - } - docCache.set(cacheKey, stripLoc(processFragments(parsed))); - } - return docCache.get(cacheKey); - } - function gql(literals) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - if (typeof literals === 'string') { - literals = [literals]; - } - var result = literals[0]; - args.forEach(function (arg, i) { - if (arg && arg.kind === 'Document') { - result += arg.loc.source.body; - } - else { - result += arg; - } - result += literals[i + 1]; - }); - return parseDocument(result); - } - function resetCaches() { - docCache.clear(); - fragmentSourceMap.clear(); - } - function disableFragmentWarnings() { - printFragmentWarnings = false; - } - function enableExperimentalFragmentVariables() { - experimentalFragmentVariables = true; - } - function disableExperimentalFragmentVariables() { - experimentalFragmentVariables = false; - } - var extras = { - gql: gql, - resetCaches: resetCaches, - disableFragmentWarnings: disableFragmentWarnings, - enableExperimentalFragmentVariables: enableExperimentalFragmentVariables, - disableExperimentalFragmentVariables: disableExperimentalFragmentVariables - }; - (function (gql_1) { - gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables; - })(gql || (gql = {})); - gql["default"] = gql; - var gql$1 = gql; - - exports.default = gql$1; - exports.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables; - exports.disableFragmentWarnings = disableFragmentWarnings; - exports.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables; - exports.gql = gql; - exports.resetCaches = resetCaches; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=graphql-tag.umd.js.map - - -/***/ }), - -/***/ 7593: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -// For backwards compatibility, make sure require("graphql-tag") returns -// the gql function, rather than an exports object. -module.exports = __nccwpck_require__(9898).gql; - - -/***/ }), - -/***/ 1753: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.GraphQLError = void 0; -exports.formatError = formatError; -exports.printError = printError; - -var _isObjectLike = __nccwpck_require__(7502); - -var _location = __nccwpck_require__(1955); - -var _printLocation = __nccwpck_require__(7098); - -function toNormalizedOptions(args) { - const firstArg = args[0]; - - if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) { - return { - nodes: firstArg, - source: args[1], - positions: args[2], - path: args[3], - originalError: args[4], - extensions: args[5], - }; - } - - return firstArg; -} -/** - * A GraphQLError describes an Error found during the parse, validate, or - * execute phases of performing a GraphQL operation. In addition to a message - * and stack trace, it also includes information about the locations in a - * GraphQL document and/or execution result that correspond to the Error. - */ - -class GraphQLError extends Error { - /** - * An array of `{ line, column }` locations within the source GraphQL document - * which correspond to this error. - * - * Errors during validation often contain multiple locations, for example to - * point out two things with the same name. Errors during execution include a - * single location, the field which produced the error. - * - * Enumerable, and appears in the result of JSON.stringify(). - */ - - /** - * An array describing the JSON-path into the execution response which - * corresponds to this error. Only included for errors during execution. - * - * Enumerable, and appears in the result of JSON.stringify(). - */ - - /** - * An array of GraphQL AST Nodes corresponding to this error. - */ - - /** - * The source GraphQL document for the first location of this error. - * - * Note that if this Error represents more than one node, the source may not - * represent nodes after the first node. - */ - - /** - * An array of character offsets within the source GraphQL document - * which correspond to this error. - */ - - /** - * The original error thrown from a field resolver during execution. - */ - - /** - * Extension fields to add to the formatted error. - */ - - /** - * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead. - */ - constructor(message, ...rawArgs) { - var _this$nodes, _nodeLocations$, _ref; - - const { nodes, source, positions, path, originalError, extensions } = - toNormalizedOptions(rawArgs); - super(message); - this.name = 'GraphQLError'; - this.path = path !== null && path !== void 0 ? path : undefined; - this.originalError = - originalError !== null && originalError !== void 0 - ? originalError - : undefined; // Compute list of blame nodes. - - this.nodes = undefinedIfEmpty( - Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined, - ); - const nodeLocations = undefinedIfEmpty( - (_this$nodes = this.nodes) === null || _this$nodes === void 0 - ? void 0 - : _this$nodes.map((node) => node.loc).filter((loc) => loc != null), - ); // Compute locations in the source for the given nodes/positions. - - this.source = - source !== null && source !== void 0 - ? source - : nodeLocations === null || nodeLocations === void 0 - ? void 0 - : (_nodeLocations$ = nodeLocations[0]) === null || - _nodeLocations$ === void 0 - ? void 0 - : _nodeLocations$.source; - this.positions = - positions !== null && positions !== void 0 - ? positions - : nodeLocations === null || nodeLocations === void 0 - ? void 0 - : nodeLocations.map((loc) => loc.start); - this.locations = - positions && source - ? positions.map((pos) => (0, _location.getLocation)(source, pos)) - : nodeLocations === null || nodeLocations === void 0 - ? void 0 - : nodeLocations.map((loc) => - (0, _location.getLocation)(loc.source, loc.start), - ); - const originalExtensions = (0, _isObjectLike.isObjectLike)( - originalError === null || originalError === void 0 - ? void 0 - : originalError.extensions, - ) - ? originalError === null || originalError === void 0 - ? void 0 - : originalError.extensions - : undefined; - this.extensions = - (_ref = - extensions !== null && extensions !== void 0 - ? extensions - : originalExtensions) !== null && _ref !== void 0 - ? _ref - : Object.create(null); // Only properties prescribed by the spec should be enumerable. - // Keep the rest as non-enumerable. - - Object.defineProperties(this, { - message: { - writable: true, - enumerable: true, - }, - name: { - enumerable: false, - }, - nodes: { - enumerable: false, - }, - source: { - enumerable: false, - }, - positions: { - enumerable: false, - }, - originalError: { - enumerable: false, - }, - }); // Include (non-enumerable) stack trace. - - /* c8 ignore start */ - // FIXME: https://github.com/graphql/graphql-js/issues/2317 - - if ( - originalError !== null && - originalError !== void 0 && - originalError.stack - ) { - Object.defineProperty(this, 'stack', { - value: originalError.stack, - writable: true, - configurable: true, - }); - } else if (Error.captureStackTrace) { - Error.captureStackTrace(this, GraphQLError); - } else { - Object.defineProperty(this, 'stack', { - value: Error().stack, - writable: true, - configurable: true, - }); - } - /* c8 ignore stop */ - } - - get [Symbol.toStringTag]() { - return 'GraphQLError'; - } - - toString() { - let output = this.message; - - if (this.nodes) { - for (const node of this.nodes) { - if (node.loc) { - output += '\n\n' + (0, _printLocation.printLocation)(node.loc); - } - } - } else if (this.source && this.locations) { - for (const location of this.locations) { - output += - '\n\n' + - (0, _printLocation.printSourceLocation)(this.source, location); - } - } - - return output; - } - - toJSON() { - const formattedError = { - message: this.message, - }; - - if (this.locations != null) { - formattedError.locations = this.locations; - } - - if (this.path != null) { - formattedError.path = this.path; - } - - if (this.extensions != null && Object.keys(this.extensions).length > 0) { - formattedError.extensions = this.extensions; - } - - return formattedError; - } -} - -exports.GraphQLError = GraphQLError; - -function undefinedIfEmpty(array) { - return array === undefined || array.length === 0 ? undefined : array; -} -/** - * See: https://spec.graphql.org/draft/#sec-Errors - */ - -/** - * Prints a GraphQLError to a string, representing useful location information - * about the error's position in the source. - * - * @deprecated Please use `error.toString` instead. Will be removed in v17 - */ -function printError(error) { - return error.toString(); -} -/** - * Given a GraphQLError, format it according to the rules described by the - * Response Format, Errors section of the GraphQL Specification. - * - * @deprecated Please use `error.toJSON` instead. Will be removed in v17 - */ - -function formatError(error) { - return error.toJSON(); -} - - -/***/ }), - -/***/ 774: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -Object.defineProperty(exports, "GraphQLError", ({ - enumerable: true, - get: function () { - return _GraphQLError.GraphQLError; - }, -})); -Object.defineProperty(exports, "formatError", ({ - enumerable: true, - get: function () { - return _GraphQLError.formatError; - }, -})); -Object.defineProperty(exports, "locatedError", ({ - enumerable: true, - get: function () { - return _locatedError.locatedError; - }, -})); -Object.defineProperty(exports, "printError", ({ - enumerable: true, - get: function () { - return _GraphQLError.printError; - }, -})); -Object.defineProperty(exports, "syntaxError", ({ - enumerable: true, - get: function () { - return _syntaxError.syntaxError; - }, -})); - -var _GraphQLError = __nccwpck_require__(1753); - -var _syntaxError = __nccwpck_require__(4141); - -var _locatedError = __nccwpck_require__(2012); - - -/***/ }), - -/***/ 2012: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.locatedError = locatedError; - -var _toError = __nccwpck_require__(1609); - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Given an arbitrary value, presumably thrown while attempting to execute a - * GraphQL operation, produce a new GraphQLError aware of the location in the - * document responsible for the original Error. - */ -function locatedError(rawOriginalError, nodes, path) { - var _nodes; - - const originalError = (0, _toError.toError)(rawOriginalError); // Note: this uses a brand-check to support GraphQL errors originating from other contexts. - - if (isLocatedGraphQLError(originalError)) { - return originalError; - } - - return new _GraphQLError.GraphQLError(originalError.message, { - nodes: - (_nodes = originalError.nodes) !== null && _nodes !== void 0 - ? _nodes - : nodes, - source: originalError.source, - positions: originalError.positions, - path, - originalError, - }); -} - -function isLocatedGraphQLError(error) { - return Array.isArray(error.path); -} - - -/***/ }), - -/***/ 4141: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.syntaxError = syntaxError; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Produces a GraphQLError representing a syntax error, containing useful - * descriptive information about the syntax error's position in the source. - */ -function syntaxError(source, position, description) { - return new _GraphQLError.GraphQLError(`Syntax Error: ${description}`, { - source, - positions: [position], - }); -} - - -/***/ }), - -/***/ 3685: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.collectFields = collectFields; -exports.collectSubfields = collectSubfields; - -var _kinds = __nccwpck_require__(2881); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _typeFromAST = __nccwpck_require__(2136); - -var _values = __nccwpck_require__(8198); - -/** - * Given a selectionSet, collects all of the fields and returns them. - * - * CollectFields requires the "runtime type" of an object. For a field that - * returns an Interface or Union type, the "runtime type" will be the actual - * object type returned by that field. - * - * @internal - */ -function collectFields( - schema, - fragments, - variableValues, - runtimeType, - selectionSet, -) { - const fields = new Map(); - collectFieldsImpl( - schema, - fragments, - variableValues, - runtimeType, - selectionSet, - fields, - new Set(), - ); - return fields; -} -/** - * Given an array of field nodes, collects all of the subfields of the passed - * in fields, and returns them at the end. - * - * CollectSubFields requires the "return type" of an object. For a field that - * returns an Interface or Union type, the "return type" will be the actual - * object type returned by that field. - * - * @internal - */ - -function collectSubfields( - schema, - fragments, - variableValues, - returnType, - fieldNodes, -) { - const subFieldNodes = new Map(); - const visitedFragmentNames = new Set(); - - for (const node of fieldNodes) { - if (node.selectionSet) { - collectFieldsImpl( - schema, - fragments, - variableValues, - returnType, - node.selectionSet, - subFieldNodes, - visitedFragmentNames, - ); - } - } - - return subFieldNodes; -} - -function collectFieldsImpl( - schema, - fragments, - variableValues, - runtimeType, - selectionSet, - fields, - visitedFragmentNames, -) { - for (const selection of selectionSet.selections) { - switch (selection.kind) { - case _kinds.Kind.FIELD: { - if (!shouldIncludeNode(variableValues, selection)) { - continue; - } - - const name = getFieldEntryKey(selection); - const fieldList = fields.get(name); - - if (fieldList !== undefined) { - fieldList.push(selection); - } else { - fields.set(name, [selection]); - } - - break; - } - - case _kinds.Kind.INLINE_FRAGMENT: { - if ( - !shouldIncludeNode(variableValues, selection) || - !doesFragmentConditionMatch(schema, selection, runtimeType) - ) { - continue; - } - - collectFieldsImpl( - schema, - fragments, - variableValues, - runtimeType, - selection.selectionSet, - fields, - visitedFragmentNames, - ); - break; - } - - case _kinds.Kind.FRAGMENT_SPREAD: { - const fragName = selection.name.value; - - if ( - visitedFragmentNames.has(fragName) || - !shouldIncludeNode(variableValues, selection) - ) { - continue; - } - - visitedFragmentNames.add(fragName); - const fragment = fragments[fragName]; - - if ( - !fragment || - !doesFragmentConditionMatch(schema, fragment, runtimeType) - ) { - continue; - } - - collectFieldsImpl( - schema, - fragments, - variableValues, - runtimeType, - fragment.selectionSet, - fields, - visitedFragmentNames, - ); - break; - } - } - } -} -/** - * Determines if a field should be included based on the `@include` and `@skip` - * directives, where `@skip` has higher precedence than `@include`. - */ - -function shouldIncludeNode(variableValues, node) { - const skip = (0, _values.getDirectiveValues)( - _directives.GraphQLSkipDirective, - node, - variableValues, - ); - - if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) { - return false; - } - - const include = (0, _values.getDirectiveValues)( - _directives.GraphQLIncludeDirective, - node, - variableValues, - ); - - if ( - (include === null || include === void 0 ? void 0 : include.if) === false - ) { - return false; - } - - return true; -} -/** - * Determines if a fragment is applicable to the given type. - */ - -function doesFragmentConditionMatch(schema, fragment, type) { - const typeConditionNode = fragment.typeCondition; - - if (!typeConditionNode) { - return true; - } - - const conditionalType = (0, _typeFromAST.typeFromAST)( - schema, - typeConditionNode, - ); - - if (conditionalType === type) { - return true; - } - - if ((0, _definition.isAbstractType)(conditionalType)) { - return schema.isSubType(conditionalType, type); - } - - return false; -} -/** - * Implements the logic to compute the key of a given field's entry - */ - -function getFieldEntryKey(node) { - return node.alias ? node.alias.value : node.name.value; -} - - -/***/ }), - -/***/ 7093: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.assertValidExecutionArguments = assertValidExecutionArguments; -exports.buildExecutionContext = buildExecutionContext; -exports.buildResolveInfo = buildResolveInfo; -exports.defaultTypeResolver = exports.defaultFieldResolver = void 0; -exports.execute = execute; -exports.executeSync = executeSync; -exports.getFieldDef = getFieldDef; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _isIterableObject = __nccwpck_require__(4507); - -var _isObjectLike = __nccwpck_require__(7502); - -var _isPromise = __nccwpck_require__(1273); - -var _memoize = __nccwpck_require__(1243); - -var _Path = __nccwpck_require__(2373); - -var _promiseForObject = __nccwpck_require__(2125); - -var _promiseReduce = __nccwpck_require__(3080); - -var _GraphQLError = __nccwpck_require__(1753); - -var _locatedError = __nccwpck_require__(2012); - -var _ast = __nccwpck_require__(906); - -var _kinds = __nccwpck_require__(2881); - -var _definition = __nccwpck_require__(699); - -var _introspection = __nccwpck_require__(2239); - -var _validate = __nccwpck_require__(3756); - -var _collectFields = __nccwpck_require__(3685); - -var _values = __nccwpck_require__(8198); - -/** - * A memoized collection of relevant subfields with regard to the return - * type. Memoizing ensures the subfields are not repeatedly calculated, which - * saves overhead when resolving lists of values. - */ -const collectSubfields = (0, _memoize.memoize3)( - (exeContext, returnType, fieldNodes) => - (0, _collectFields.collectSubfields)( - exeContext.schema, - exeContext.fragments, - exeContext.variableValues, - returnType, - fieldNodes, - ), -); -/** - * Terminology - * - * "Definitions" are the generic name for top-level statements in the document. - * Examples of this include: - * 1) Operations (such as a query) - * 2) Fragments - * - * "Operations" are a generic name for requests in the document. - * Examples of this include: - * 1) query, - * 2) mutation - * - * "Selections" are the definitions that can appear legally and at - * single level of the query. These include: - * 1) field references e.g `a` - * 2) fragment "spreads" e.g. `...c` - * 3) inline fragment "spreads" e.g. `...on Type { a }` - */ - -/** - * Data that must be available at all points during query execution. - * - * Namely, schema of the type system that is currently executing, - * and the fragments defined in the query document - */ - -/** - * Implements the "Executing requests" section of the GraphQL specification. - * - * Returns either a synchronous ExecutionResult (if all encountered resolvers - * are synchronous), or a Promise of an ExecutionResult that will eventually be - * resolved and never rejected. - * - * If the arguments to this function do not result in a legal execution context, - * a GraphQLError will be thrown immediately explaining the invalid input. - */ -function execute(args) { - // Temporary for v15 to v16 migration. Remove in v17 - arguments.length < 2 || - (0, _devAssert.devAssert)( - false, - 'graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.', - ); - const { schema, document, variableValues, rootValue } = args; // If arguments are missing or incorrect, throw an error. - - assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments, - // a "Response" with only errors is returned. - - const exeContext = buildExecutionContext(args); // Return early errors if execution context failed. - - if (!('schema' in exeContext)) { - return { - errors: exeContext, - }; - } // Return a Promise that will eventually resolve to the data described by - // The "Response" section of the GraphQL specification. - // - // If errors are encountered while executing a GraphQL field, only that - // field and its descendants will be omitted, and sibling fields will still - // be executed. An execution which encounters errors will still result in a - // resolved Promise. - // - // Errors from sub-fields of a NonNull type may propagate to the top level, - // at which point we still log the error and null the parent field, which - // in this case is the entire response. - - try { - const { operation } = exeContext; - const result = executeOperation(exeContext, operation, rootValue); - - if ((0, _isPromise.isPromise)(result)) { - return result.then( - (data) => buildResponse(data, exeContext.errors), - (error) => { - exeContext.errors.push(error); - return buildResponse(null, exeContext.errors); - }, - ); - } - - return buildResponse(result, exeContext.errors); - } catch (error) { - exeContext.errors.push(error); - return buildResponse(null, exeContext.errors); - } -} -/** - * Also implements the "Executing requests" section of the GraphQL specification. - * However, it guarantees to complete synchronously (or throw an error) assuming - * that all field resolvers are also synchronous. - */ - -function executeSync(args) { - const result = execute(args); // Assert that the execution was synchronous. - - if ((0, _isPromise.isPromise)(result)) { - throw new Error('GraphQL execution failed to complete synchronously.'); - } - - return result; -} -/** - * Given a completed execution context and data, build the `{ errors, data }` - * response defined by the "Response" section of the GraphQL specification. - */ - -function buildResponse(data, errors) { - return errors.length === 0 - ? { - data, - } - : { - errors, - data, - }; -} -/** - * Essential assertions before executing to provide developer feedback for - * improper use of the GraphQL library. - * - * @internal - */ - -function assertValidExecutionArguments(schema, document, rawVariableValues) { - document || (0, _devAssert.devAssert)(false, 'Must provide document.'); // If the schema used for execution is invalid, throw an error. - - (0, _validate.assertValidSchema)(schema); // Variables, if provided, must be an object. - - rawVariableValues == null || - (0, _isObjectLike.isObjectLike)(rawVariableValues) || - (0, _devAssert.devAssert)( - false, - 'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.', - ); -} -/** - * Constructs a ExecutionContext object from the arguments passed to - * execute, which we will pass throughout the other execution methods. - * - * Throws a GraphQLError if a valid execution context cannot be created. - * - * @internal - */ - -function buildExecutionContext(args) { - var _definition$name, _operation$variableDe; - - const { - schema, - document, - rootValue, - contextValue, - variableValues: rawVariableValues, - operationName, - fieldResolver, - typeResolver, - subscribeFieldResolver, - } = args; - let operation; - const fragments = Object.create(null); - - for (const definition of document.definitions) { - switch (definition.kind) { - case _kinds.Kind.OPERATION_DEFINITION: - if (operationName == null) { - if (operation !== undefined) { - return [ - new _GraphQLError.GraphQLError( - 'Must provide operation name if query contains multiple operations.', - ), - ]; - } - - operation = definition; - } else if ( - ((_definition$name = definition.name) === null || - _definition$name === void 0 - ? void 0 - : _definition$name.value) === operationName - ) { - operation = definition; - } - - break; - - case _kinds.Kind.FRAGMENT_DEFINITION: - fragments[definition.name.value] = definition; - break; - - default: // ignore non-executable definitions - } - } - - if (!operation) { - if (operationName != null) { - return [ - new _GraphQLError.GraphQLError( - `Unknown operation named "${operationName}".`, - ), - ]; - } - - return [new _GraphQLError.GraphQLError('Must provide an operation.')]; - } // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - - const variableDefinitions = - (_operation$variableDe = operation.variableDefinitions) !== null && - _operation$variableDe !== void 0 - ? _operation$variableDe - : []; - const coercedVariableValues = (0, _values.getVariableValues)( - schema, - variableDefinitions, - rawVariableValues !== null && rawVariableValues !== void 0 - ? rawVariableValues - : {}, - { - maxErrors: 50, - }, - ); - - if (coercedVariableValues.errors) { - return coercedVariableValues.errors; - } - - return { - schema, - fragments, - rootValue, - contextValue, - operation, - variableValues: coercedVariableValues.coerced, - fieldResolver: - fieldResolver !== null && fieldResolver !== void 0 - ? fieldResolver - : defaultFieldResolver, - typeResolver: - typeResolver !== null && typeResolver !== void 0 - ? typeResolver - : defaultTypeResolver, - subscribeFieldResolver: - subscribeFieldResolver !== null && subscribeFieldResolver !== void 0 - ? subscribeFieldResolver - : defaultFieldResolver, - errors: [], - }; -} -/** - * Implements the "Executing operations" section of the spec. - */ - -function executeOperation(exeContext, operation, rootValue) { - const rootType = exeContext.schema.getRootType(operation.operation); - - if (rootType == null) { - throw new _GraphQLError.GraphQLError( - `Schema is not configured to execute ${operation.operation} operation.`, - { - nodes: operation, - }, - ); - } - - const rootFields = (0, _collectFields.collectFields)( - exeContext.schema, - exeContext.fragments, - exeContext.variableValues, - rootType, - operation.selectionSet, - ); - const path = undefined; - - switch (operation.operation) { - case _ast.OperationTypeNode.QUERY: - return executeFields(exeContext, rootType, rootValue, path, rootFields); - - case _ast.OperationTypeNode.MUTATION: - return executeFieldsSerially( - exeContext, - rootType, - rootValue, - path, - rootFields, - ); - - case _ast.OperationTypeNode.SUBSCRIPTION: - // TODO: deprecate `subscribe` and move all logic here - // Temporary solution until we finish merging execute and subscribe together - return executeFields(exeContext, rootType, rootValue, path, rootFields); - } -} -/** - * Implements the "Executing selection sets" section of the spec - * for fields that must be executed serially. - */ - -function executeFieldsSerially( - exeContext, - parentType, - sourceValue, - path, - fields, -) { - return (0, _promiseReduce.promiseReduce)( - fields.entries(), - (results, [responseName, fieldNodes]) => { - const fieldPath = (0, _Path.addPath)(path, responseName, parentType.name); - const result = executeField( - exeContext, - parentType, - sourceValue, - fieldNodes, - fieldPath, - ); - - if (result === undefined) { - return results; - } - - if ((0, _isPromise.isPromise)(result)) { - return result.then((resolvedResult) => { - results[responseName] = resolvedResult; - return results; - }); - } - - results[responseName] = result; - return results; - }, - Object.create(null), - ); -} -/** - * Implements the "Executing selection sets" section of the spec - * for fields that may be executed in parallel. - */ - -function executeFields(exeContext, parentType, sourceValue, path, fields) { - const results = Object.create(null); - let containsPromise = false; - - try { - for (const [responseName, fieldNodes] of fields.entries()) { - const fieldPath = (0, _Path.addPath)(path, responseName, parentType.name); - const result = executeField( - exeContext, - parentType, - sourceValue, - fieldNodes, - fieldPath, - ); - - if (result !== undefined) { - results[responseName] = result; - - if ((0, _isPromise.isPromise)(result)) { - containsPromise = true; - } - } - } - } catch (error) { - if (containsPromise) { - // Ensure that any promises returned by other fields are handled, as they may also reject. - return (0, _promiseForObject.promiseForObject)(results).finally(() => { - throw error; - }); - } - - throw error; - } // If there are no promises, we can just return the object - - if (!containsPromise) { - return results; - } // Otherwise, results is a map from field name to the result of resolving that - // field, which is possibly a promise. Return a promise that will return this - // same map, but with any promises replaced with the values they resolved to. - - return (0, _promiseForObject.promiseForObject)(results); -} -/** - * Implements the "Executing fields" section of the spec - * In particular, this function figures out the value that the field returns by - * calling its resolve function, then calls completeValue to complete promises, - * serialize scalars, or execute the sub-selection-set for objects. - */ - -function executeField(exeContext, parentType, source, fieldNodes, path) { - var _fieldDef$resolve; - - const fieldDef = getFieldDef(exeContext.schema, parentType, fieldNodes[0]); - - if (!fieldDef) { - return; - } - - const returnType = fieldDef.type; - const resolveFn = - (_fieldDef$resolve = fieldDef.resolve) !== null && - _fieldDef$resolve !== void 0 - ? _fieldDef$resolve - : exeContext.fieldResolver; - const info = buildResolveInfo( - exeContext, - fieldDef, - fieldNodes, - parentType, - path, - ); // Get the resolve function, regardless of if its result is normal or abrupt (error). - - try { - // Build a JS object of arguments from the field.arguments AST, using the - // variables scope to fulfill any variable references. - // TODO: find a way to memoize, in case this field is within a List type. - const args = (0, _values.getArgumentValues)( - fieldDef, - fieldNodes[0], - exeContext.variableValues, - ); // The resolve function's optional third argument is a context value that - // is provided to every resolve function within an execution. It is commonly - // used to represent an authenticated user, or request-specific caches. - - const contextValue = exeContext.contextValue; - const result = resolveFn(source, args, contextValue, info); - let completed; - - if ((0, _isPromise.isPromise)(result)) { - completed = result.then((resolved) => - completeValue(exeContext, returnType, fieldNodes, info, path, resolved), - ); - } else { - completed = completeValue( - exeContext, - returnType, - fieldNodes, - info, - path, - result, - ); - } - - if ((0, _isPromise.isPromise)(completed)) { - // Note: we don't rely on a `catch` method, but we do expect "thenable" - // to take a second callback for the error case. - return completed.then(undefined, (rawError) => { - const error = (0, _locatedError.locatedError)( - rawError, - fieldNodes, - (0, _Path.pathToArray)(path), - ); - return handleFieldError(error, returnType, exeContext); - }); - } - - return completed; - } catch (rawError) { - const error = (0, _locatedError.locatedError)( - rawError, - fieldNodes, - (0, _Path.pathToArray)(path), - ); - return handleFieldError(error, returnType, exeContext); - } -} -/** - * @internal - */ - -function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) { - // The resolve function's optional fourth argument is a collection of - // information about the current execution state. - return { - fieldName: fieldDef.name, - fieldNodes, - returnType: fieldDef.type, - parentType, - path, - schema: exeContext.schema, - fragments: exeContext.fragments, - rootValue: exeContext.rootValue, - operation: exeContext.operation, - variableValues: exeContext.variableValues, - }; -} - -function handleFieldError(error, returnType, exeContext) { - // If the field type is non-nullable, then it is resolved without any - // protection from errors, however it still properly locates the error. - if ((0, _definition.isNonNullType)(returnType)) { - throw error; - } // Otherwise, error protection is applied, logging the error and resolving - // a null value for this field if one is encountered. - - exeContext.errors.push(error); - return null; -} -/** - * Implements the instructions for completeValue as defined in the - * "Value Completion" section of the spec. - * - * If the field type is Non-Null, then this recursively completes the value - * for the inner type. It throws a field error if that completion returns null, - * as per the "Nullability" section of the spec. - * - * If the field type is a List, then this recursively completes the value - * for the inner type on each item in the list. - * - * If the field type is a Scalar or Enum, ensures the completed value is a legal - * value of the type by calling the `serialize` method of GraphQL type - * definition. - * - * If the field is an abstract type, determine the runtime type of the value - * and then complete based on that type - * - * Otherwise, the field type expects a sub-selection set, and will complete the - * value by executing all sub-selections. - */ - -function completeValue(exeContext, returnType, fieldNodes, info, path, result) { - // If result is an Error, throw a located error. - if (result instanceof Error) { - throw result; - } // If field type is NonNull, complete for inner type, and throw field error - // if result is null. - - if ((0, _definition.isNonNullType)(returnType)) { - const completed = completeValue( - exeContext, - returnType.ofType, - fieldNodes, - info, - path, - result, - ); - - if (completed === null) { - throw new Error( - `Cannot return null for non-nullable field ${info.parentType.name}.${info.fieldName}.`, - ); - } - - return completed; - } // If result value is null or undefined then return null. - - if (result == null) { - return null; - } // If field type is List, complete each item in the list with the inner type - - if ((0, _definition.isListType)(returnType)) { - return completeListValue( - exeContext, - returnType, - fieldNodes, - info, - path, - result, - ); - } // If field type is a leaf type, Scalar or Enum, serialize to a valid value, - // returning null if serialization is not possible. - - if ((0, _definition.isLeafType)(returnType)) { - return completeLeafValue(returnType, result); - } // If field type is an abstract type, Interface or Union, determine the - // runtime Object type and complete for that type. - - if ((0, _definition.isAbstractType)(returnType)) { - return completeAbstractValue( - exeContext, - returnType, - fieldNodes, - info, - path, - result, - ); - } // If field type is Object, execute and complete all sub-selections. - - if ((0, _definition.isObjectType)(returnType)) { - return completeObjectValue( - exeContext, - returnType, - fieldNodes, - info, - path, - result, - ); - } - /* c8 ignore next 6 */ - // Not reachable, all possible output types have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Cannot complete value of unexpected output type: ' + - (0, _inspect.inspect)(returnType), - ); -} -/** - * Complete a list value by completing each item in the list with the - * inner type - */ - -function completeListValue( - exeContext, - returnType, - fieldNodes, - info, - path, - result, -) { - if (!(0, _isIterableObject.isIterableObject)(result)) { - throw new _GraphQLError.GraphQLError( - `Expected Iterable, but did not find one for field "${info.parentType.name}.${info.fieldName}".`, - ); - } // This is specified as a simple map, however we're optimizing the path - // where the list contains no Promises by avoiding creating another Promise. - - const itemType = returnType.ofType; - let containsPromise = false; - const completedResults = Array.from(result, (item, index) => { - // No need to modify the info object containing the path, - // since from here on it is not ever accessed by resolver functions. - const itemPath = (0, _Path.addPath)(path, index, undefined); - - try { - let completedItem; - - if ((0, _isPromise.isPromise)(item)) { - completedItem = item.then((resolved) => - completeValue( - exeContext, - itemType, - fieldNodes, - info, - itemPath, - resolved, - ), - ); - } else { - completedItem = completeValue( - exeContext, - itemType, - fieldNodes, - info, - itemPath, - item, - ); - } - - if ((0, _isPromise.isPromise)(completedItem)) { - containsPromise = true; // Note: we don't rely on a `catch` method, but we do expect "thenable" - // to take a second callback for the error case. - - return completedItem.then(undefined, (rawError) => { - const error = (0, _locatedError.locatedError)( - rawError, - fieldNodes, - (0, _Path.pathToArray)(itemPath), - ); - return handleFieldError(error, itemType, exeContext); - }); - } - - return completedItem; - } catch (rawError) { - const error = (0, _locatedError.locatedError)( - rawError, - fieldNodes, - (0, _Path.pathToArray)(itemPath), - ); - return handleFieldError(error, itemType, exeContext); - } - }); - return containsPromise ? Promise.all(completedResults) : completedResults; -} -/** - * Complete a Scalar or Enum by serializing to a valid value, returning - * null if serialization is not possible. - */ - -function completeLeafValue(returnType, result) { - const serializedResult = returnType.serialize(result); - - if (serializedResult == null) { - throw new Error( - `Expected \`${(0, _inspect.inspect)(returnType)}.serialize(${(0, - _inspect.inspect)(result)})\` to ` + - `return non-nullable value, returned: ${(0, _inspect.inspect)( - serializedResult, - )}`, - ); - } - - return serializedResult; -} -/** - * Complete a value of an abstract type by determining the runtime object type - * of that value, then complete the value for that type. - */ - -function completeAbstractValue( - exeContext, - returnType, - fieldNodes, - info, - path, - result, -) { - var _returnType$resolveTy; - - const resolveTypeFn = - (_returnType$resolveTy = returnType.resolveType) !== null && - _returnType$resolveTy !== void 0 - ? _returnType$resolveTy - : exeContext.typeResolver; - const contextValue = exeContext.contextValue; - const runtimeType = resolveTypeFn(result, contextValue, info, returnType); - - if ((0, _isPromise.isPromise)(runtimeType)) { - return runtimeType.then((resolvedRuntimeType) => - completeObjectValue( - exeContext, - ensureValidRuntimeType( - resolvedRuntimeType, - exeContext, - returnType, - fieldNodes, - info, - result, - ), - fieldNodes, - info, - path, - result, - ), - ); - } - - return completeObjectValue( - exeContext, - ensureValidRuntimeType( - runtimeType, - exeContext, - returnType, - fieldNodes, - info, - result, - ), - fieldNodes, - info, - path, - result, - ); -} - -function ensureValidRuntimeType( - runtimeTypeName, - exeContext, - returnType, - fieldNodes, - info, - result, -) { - if (runtimeTypeName == null) { - throw new _GraphQLError.GraphQLError( - `Abstract type "${returnType.name}" must resolve to an Object type at runtime for field "${info.parentType.name}.${info.fieldName}". Either the "${returnType.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`, - fieldNodes, - ); - } // releases before 16.0.0 supported returning `GraphQLObjectType` from `resolveType` - // TODO: remove in 17.0.0 release - - if ((0, _definition.isObjectType)(runtimeTypeName)) { - throw new _GraphQLError.GraphQLError( - 'Support for returning GraphQLObjectType from resolveType was removed in graphql-js@16.0.0 please return type name instead.', - ); - } - - if (typeof runtimeTypeName !== 'string') { - throw new _GraphQLError.GraphQLError( - `Abstract type "${returnType.name}" must resolve to an Object type at runtime for field "${info.parentType.name}.${info.fieldName}" with ` + - `value ${(0, _inspect.inspect)(result)}, received "${(0, - _inspect.inspect)(runtimeTypeName)}".`, - ); - } - - const runtimeType = exeContext.schema.getType(runtimeTypeName); - - if (runtimeType == null) { - throw new _GraphQLError.GraphQLError( - `Abstract type "${returnType.name}" was resolved to a type "${runtimeTypeName}" that does not exist inside the schema.`, - { - nodes: fieldNodes, - }, - ); - } - - if (!(0, _definition.isObjectType)(runtimeType)) { - throw new _GraphQLError.GraphQLError( - `Abstract type "${returnType.name}" was resolved to a non-object type "${runtimeTypeName}".`, - { - nodes: fieldNodes, - }, - ); - } - - if (!exeContext.schema.isSubType(returnType, runtimeType)) { - throw new _GraphQLError.GraphQLError( - `Runtime Object type "${runtimeType.name}" is not a possible type for "${returnType.name}".`, - { - nodes: fieldNodes, - }, - ); - } - - return runtimeType; -} -/** - * Complete an Object value by executing all sub-selections. - */ - -function completeObjectValue( - exeContext, - returnType, - fieldNodes, - info, - path, - result, -) { - // Collect sub-fields to execute to complete this value. - const subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes); // If there is an isTypeOf predicate function, call it with the - // current result. If isTypeOf returns false, then raise an error rather - // than continuing execution. - - if (returnType.isTypeOf) { - const isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info); - - if ((0, _isPromise.isPromise)(isTypeOf)) { - return isTypeOf.then((resolvedIsTypeOf) => { - if (!resolvedIsTypeOf) { - throw invalidReturnTypeError(returnType, result, fieldNodes); - } - - return executeFields( - exeContext, - returnType, - result, - path, - subFieldNodes, - ); - }); - } - - if (!isTypeOf) { - throw invalidReturnTypeError(returnType, result, fieldNodes); - } - } - - return executeFields(exeContext, returnType, result, path, subFieldNodes); -} - -function invalidReturnTypeError(returnType, result, fieldNodes) { - return new _GraphQLError.GraphQLError( - `Expected value of type "${returnType.name}" but got: ${(0, - _inspect.inspect)(result)}.`, - { - nodes: fieldNodes, - }, - ); -} -/** - * If a resolveType function is not given, then a default resolve behavior is - * used which attempts two strategies: - * - * First, See if the provided value has a `__typename` field defined, if so, use - * that value as name of the resolved type. - * - * Otherwise, test each possible type for the abstract type by calling - * isTypeOf for the object being coerced, returning the first type that matches. - */ - -const defaultTypeResolver = function (value, contextValue, info, abstractType) { - // First, look for `__typename`. - if ( - (0, _isObjectLike.isObjectLike)(value) && - typeof value.__typename === 'string' - ) { - return value.__typename; - } // Otherwise, test each possible type. - - const possibleTypes = info.schema.getPossibleTypes(abstractType); - const promisedIsTypeOfResults = []; - - for (let i = 0; i < possibleTypes.length; i++) { - const type = possibleTypes[i]; - - if (type.isTypeOf) { - const isTypeOfResult = type.isTypeOf(value, contextValue, info); - - if ((0, _isPromise.isPromise)(isTypeOfResult)) { - promisedIsTypeOfResults[i] = isTypeOfResult; - } else if (isTypeOfResult) { - return type.name; - } - } - } - - if (promisedIsTypeOfResults.length) { - return Promise.all(promisedIsTypeOfResults).then((isTypeOfResults) => { - for (let i = 0; i < isTypeOfResults.length; i++) { - if (isTypeOfResults[i]) { - return possibleTypes[i].name; - } - } - }); - } -}; -/** - * If a resolve function is not given, then a default resolve behavior is used - * which takes the property of the source object of the same name as the field - * and returns it as the result, or if it's a function, returns the result - * of calling that function while passing along args and context value. - */ - -exports.defaultTypeResolver = defaultTypeResolver; - -const defaultFieldResolver = function (source, args, contextValue, info) { - // ensure source is a value for which property access is acceptable. - if ((0, _isObjectLike.isObjectLike)(source) || typeof source === 'function') { - const property = source[info.fieldName]; - - if (typeof property === 'function') { - return source[info.fieldName](args, contextValue, info); - } - - return property; - } -}; -/** - * This method looks up the field on the given type definition. - * It has special casing for the three introspection fields, - * __schema, __type and __typename. __typename is special because - * it can always be queried as a field, even in situations where no - * other fields are allowed, like on a Union. __schema and __type - * could get automatically added to the query type, but that would - * require mutating type definitions, which would cause issues. - * - * @internal - */ - -exports.defaultFieldResolver = defaultFieldResolver; - -function getFieldDef(schema, parentType, fieldNode) { - const fieldName = fieldNode.name.value; - - if ( - fieldName === _introspection.SchemaMetaFieldDef.name && - schema.getQueryType() === parentType - ) { - return _introspection.SchemaMetaFieldDef; - } else if ( - fieldName === _introspection.TypeMetaFieldDef.name && - schema.getQueryType() === parentType - ) { - return _introspection.TypeMetaFieldDef; - } else if (fieldName === _introspection.TypeNameMetaFieldDef.name) { - return _introspection.TypeNameMetaFieldDef; - } - - return parentType.getFields()[fieldName]; -} - - -/***/ }), - -/***/ 502: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -Object.defineProperty(exports, "createSourceEventStream", ({ - enumerable: true, - get: function () { - return _subscribe.createSourceEventStream; - }, -})); -Object.defineProperty(exports, "defaultFieldResolver", ({ - enumerable: true, - get: function () { - return _execute.defaultFieldResolver; - }, -})); -Object.defineProperty(exports, "defaultTypeResolver", ({ - enumerable: true, - get: function () { - return _execute.defaultTypeResolver; - }, -})); -Object.defineProperty(exports, "execute", ({ - enumerable: true, - get: function () { - return _execute.execute; - }, -})); -Object.defineProperty(exports, "executeSync", ({ - enumerable: true, - get: function () { - return _execute.executeSync; - }, -})); -Object.defineProperty(exports, "getArgumentValues", ({ - enumerable: true, - get: function () { - return _values.getArgumentValues; - }, -})); -Object.defineProperty(exports, "getDirectiveValues", ({ - enumerable: true, - get: function () { - return _values.getDirectiveValues; - }, -})); -Object.defineProperty(exports, "getVariableValues", ({ - enumerable: true, - get: function () { - return _values.getVariableValues; - }, -})); -Object.defineProperty(exports, "responsePathAsArray", ({ - enumerable: true, - get: function () { - return _Path.pathToArray; - }, -})); -Object.defineProperty(exports, "subscribe", ({ - enumerable: true, - get: function () { - return _subscribe.subscribe; - }, -})); - -var _Path = __nccwpck_require__(2373); - -var _execute = __nccwpck_require__(7093); - -var _subscribe = __nccwpck_require__(3762); - -var _values = __nccwpck_require__(8198); - - -/***/ }), - -/***/ 2928: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.mapAsyncIterator = mapAsyncIterator; - -/** - * Given an AsyncIterable and a callback function, return an AsyncIterator - * which produces values mapped via calling the callback function. - */ -function mapAsyncIterator(iterable, callback) { - const iterator = iterable[Symbol.asyncIterator](); - - async function mapResult(result) { - if (result.done) { - return result; - } - - try { - return { - value: await callback(result.value), - done: false, - }; - } catch (error) { - /* c8 ignore start */ - // FIXME: add test case - if (typeof iterator.return === 'function') { - try { - await iterator.return(); - } catch (_e) { - /* ignore error */ - } - } - - throw error; - /* c8 ignore stop */ - } - } - - return { - async next() { - return mapResult(await iterator.next()); - }, - - async return() { - // If iterator.return() does not exist, then type R must be undefined. - return typeof iterator.return === 'function' - ? mapResult(await iterator.return()) - : { - value: undefined, - done: true, - }; - }, - - async throw(error) { - if (typeof iterator.throw === 'function') { - return mapResult(await iterator.throw(error)); - } - - throw error; - }, - - [Symbol.asyncIterator]() { - return this; - }, - }; -} - - -/***/ }), - -/***/ 3762: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.createSourceEventStream = createSourceEventStream; -exports.subscribe = subscribe; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _isAsyncIterable = __nccwpck_require__(618); - -var _Path = __nccwpck_require__(2373); - -var _GraphQLError = __nccwpck_require__(1753); - -var _locatedError = __nccwpck_require__(2012); - -var _collectFields = __nccwpck_require__(3685); - -var _execute = __nccwpck_require__(7093); - -var _mapAsyncIterator = __nccwpck_require__(2928); - -var _values = __nccwpck_require__(8198); - -/** - * Implements the "Subscribe" algorithm described in the GraphQL specification. - * - * Returns a Promise which resolves to either an AsyncIterator (if successful) - * or an ExecutionResult (error). The promise will be rejected if the schema or - * other arguments to this function are invalid, or if the resolved event stream - * is not an async iterable. - * - * If the client-provided arguments to this function do not result in a - * compliant subscription, a GraphQL Response (ExecutionResult) with - * descriptive errors and no data will be returned. - * - * If the source stream could not be created due to faulty subscription - * resolver logic or underlying systems, the promise will resolve to a single - * ExecutionResult containing `errors` and no `data`. - * - * If the operation succeeded, the promise resolves to an AsyncIterator, which - * yields a stream of ExecutionResults representing the response stream. - * - * Accepts either an object with named arguments, or individual arguments. - */ -async function subscribe(args) { - // Temporary for v15 to v16 migration. Remove in v17 - arguments.length < 2 || - (0, _devAssert.devAssert)( - false, - 'graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.', - ); - const resultOrStream = await createSourceEventStream(args); - - if (!(0, _isAsyncIterable.isAsyncIterable)(resultOrStream)) { - return resultOrStream; - } // For each payload yielded from a subscription, map it over the normal - // GraphQL `execute` function, with `payload` as the rootValue. - // This implements the "MapSourceToResponseEvent" algorithm described in - // the GraphQL specification. The `execute` function provides the - // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the - // "ExecuteQuery" algorithm, for which `execute` is also used. - - const mapSourceToResponse = (payload) => - (0, _execute.execute)({ ...args, rootValue: payload }); // Map every source value to a ExecutionResult value as described above. - - return (0, _mapAsyncIterator.mapAsyncIterator)( - resultOrStream, - mapSourceToResponse, - ); -} - -function toNormalizedArgs(args) { - const firstArg = args[0]; - - if (firstArg && 'document' in firstArg) { - return firstArg; - } - - return { - schema: firstArg, - // FIXME: when underlying TS bug fixed, see https://github.com/microsoft/TypeScript/issues/31613 - document: args[1], - rootValue: args[2], - contextValue: args[3], - variableValues: args[4], - operationName: args[5], - subscribeFieldResolver: args[6], - }; -} -/** - * Implements the "CreateSourceEventStream" algorithm described in the - * GraphQL specification, resolving the subscription source event stream. - * - * Returns a Promise which resolves to either an AsyncIterable (if successful) - * or an ExecutionResult (error). The promise will be rejected if the schema or - * other arguments to this function are invalid, or if the resolved event stream - * is not an async iterable. - * - * If the client-provided arguments to this function do not result in a - * compliant subscription, a GraphQL Response (ExecutionResult) with - * descriptive errors and no data will be returned. - * - * If the the source stream could not be created due to faulty subscription - * resolver logic or underlying systems, the promise will resolve to a single - * ExecutionResult containing `errors` and no `data`. - * - * If the operation succeeded, the promise resolves to the AsyncIterable for the - * event stream returned by the resolver. - * - * A Source Event Stream represents a sequence of events, each of which triggers - * a GraphQL execution for that event. - * - * This may be useful when hosting the stateful subscription service in a - * different process or machine than the stateless GraphQL execution engine, - * or otherwise separating these two steps. For more on this, see the - * "Supporting Subscriptions at Scale" information in the GraphQL specification. - */ - -async function createSourceEventStream(...rawArgs) { - const args = toNormalizedArgs(rawArgs); - const { schema, document, variableValues } = args; // If arguments are missing or incorrectly typed, this is an internal - // developer mistake which should throw an early error. - - (0, _execute.assertValidExecutionArguments)(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments, - // a "Response" with only errors is returned. - - const exeContext = (0, _execute.buildExecutionContext)(args); // Return early errors if execution context failed. - - if (!('schema' in exeContext)) { - return { - errors: exeContext, - }; - } - - try { - const eventStream = await executeSubscription(exeContext); // Assert field returned an event stream, otherwise yield an error. - - if (!(0, _isAsyncIterable.isAsyncIterable)(eventStream)) { - throw new Error( - 'Subscription field must return Async Iterable. ' + - `Received: ${(0, _inspect.inspect)(eventStream)}.`, - ); - } - - return eventStream; - } catch (error) { - // If it GraphQLError, report it as an ExecutionResult, containing only errors and no data. - // Otherwise treat the error as a system-class error and re-throw it. - if (error instanceof _GraphQLError.GraphQLError) { - return { - errors: [error], - }; - } - - throw error; - } -} - -async function executeSubscription(exeContext) { - const { schema, fragments, operation, variableValues, rootValue } = - exeContext; - const rootType = schema.getSubscriptionType(); - - if (rootType == null) { - throw new _GraphQLError.GraphQLError( - 'Schema is not configured to execute subscription operation.', - { - nodes: operation, - }, - ); - } - - const rootFields = (0, _collectFields.collectFields)( - schema, - fragments, - variableValues, - rootType, - operation.selectionSet, - ); - const [responseName, fieldNodes] = [...rootFields.entries()][0]; - const fieldDef = (0, _execute.getFieldDef)(schema, rootType, fieldNodes[0]); - - if (!fieldDef) { - const fieldName = fieldNodes[0].name.value; - throw new _GraphQLError.GraphQLError( - `The subscription field "${fieldName}" is not defined.`, - { - nodes: fieldNodes, - }, - ); - } - - const path = (0, _Path.addPath)(undefined, responseName, rootType.name); - const info = (0, _execute.buildResolveInfo)( - exeContext, - fieldDef, - fieldNodes, - rootType, - path, - ); - - try { - var _fieldDef$subscribe; - - // Implements the "ResolveFieldEventStream" algorithm from GraphQL specification. - // It differs from "ResolveFieldValue" due to providing a different `resolveFn`. - // Build a JS object of arguments from the field.arguments AST, using the - // variables scope to fulfill any variable references. - const args = (0, _values.getArgumentValues)( - fieldDef, - fieldNodes[0], - variableValues, - ); // The resolve function's optional third argument is a context value that - // is provided to every resolve function within an execution. It is commonly - // used to represent an authenticated user, or request-specific caches. - - const contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an - // AsyncIterable yielding raw payloads. - - const resolveFn = - (_fieldDef$subscribe = fieldDef.subscribe) !== null && - _fieldDef$subscribe !== void 0 - ? _fieldDef$subscribe - : exeContext.subscribeFieldResolver; - const eventStream = await resolveFn(rootValue, args, contextValue, info); - - if (eventStream instanceof Error) { - throw eventStream; - } - - return eventStream; - } catch (error) { - throw (0, _locatedError.locatedError)( - error, - fieldNodes, - (0, _Path.pathToArray)(path), - ); - } -} - - -/***/ }), - -/***/ 8198: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.getArgumentValues = getArgumentValues; -exports.getDirectiveValues = getDirectiveValues; -exports.getVariableValues = getVariableValues; - -var _inspect = __nccwpck_require__(3707); - -var _keyMap = __nccwpck_require__(1529); - -var _printPathArray = __nccwpck_require__(548); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -var _coerceInputValue = __nccwpck_require__(894); - -var _typeFromAST = __nccwpck_require__(2136); - -var _valueFromAST = __nccwpck_require__(21); - -/** - * Prepares an object map of variableValues of the correct type based on the - * provided variable definitions and arbitrary input. If the input cannot be - * parsed to match the variable definitions, a GraphQLError will be thrown. - * - * Note: The returned value is a plain Object with a prototype, since it is - * exposed to user code. Care should be taken to not pull values from the - * Object prototype. - */ -function getVariableValues(schema, varDefNodes, inputs, options) { - const errors = []; - const maxErrors = - options === null || options === void 0 ? void 0 : options.maxErrors; - - try { - const coerced = coerceVariableValues( - schema, - varDefNodes, - inputs, - (error) => { - if (maxErrors != null && errors.length >= maxErrors) { - throw new _GraphQLError.GraphQLError( - 'Too many errors processing variables, error limit reached. Execution aborted.', - ); - } - - errors.push(error); - }, - ); - - if (errors.length === 0) { - return { - coerced, - }; - } - } catch (error) { - errors.push(error); - } - - return { - errors, - }; -} - -function coerceVariableValues(schema, varDefNodes, inputs, onError) { - const coercedValues = {}; - - for (const varDefNode of varDefNodes) { - const varName = varDefNode.variable.name.value; - const varType = (0, _typeFromAST.typeFromAST)(schema, varDefNode.type); - - if (!(0, _definition.isInputType)(varType)) { - // Must use input types for variables. This should be caught during - // validation, however is checked again here for safety. - const varTypeStr = (0, _printer.print)(varDefNode.type); - onError( - new _GraphQLError.GraphQLError( - `Variable "$${varName}" expected value of type "${varTypeStr}" which cannot be used as an input type.`, - { - nodes: varDefNode.type, - }, - ), - ); - continue; - } - - if (!hasOwnProperty(inputs, varName)) { - if (varDefNode.defaultValue) { - coercedValues[varName] = (0, _valueFromAST.valueFromAST)( - varDefNode.defaultValue, - varType, - ); - } else if ((0, _definition.isNonNullType)(varType)) { - const varTypeStr = (0, _inspect.inspect)(varType); - onError( - new _GraphQLError.GraphQLError( - `Variable "$${varName}" of required type "${varTypeStr}" was not provided.`, - { - nodes: varDefNode, - }, - ), - ); - } - - continue; - } - - const value = inputs[varName]; - - if (value === null && (0, _definition.isNonNullType)(varType)) { - const varTypeStr = (0, _inspect.inspect)(varType); - onError( - new _GraphQLError.GraphQLError( - `Variable "$${varName}" of non-null type "${varTypeStr}" must not be null.`, - { - nodes: varDefNode, - }, - ), - ); - continue; - } - - coercedValues[varName] = (0, _coerceInputValue.coerceInputValue)( - value, - varType, - (path, invalidValue, error) => { - let prefix = - `Variable "$${varName}" got invalid value ` + - (0, _inspect.inspect)(invalidValue); - - if (path.length > 0) { - prefix += ` at "${varName}${(0, _printPathArray.printPathArray)( - path, - )}"`; - } - - onError( - new _GraphQLError.GraphQLError(prefix + '; ' + error.message, { - nodes: varDefNode, - originalError: error, - }), - ); - }, - ); - } - - return coercedValues; -} -/** - * Prepares an object map of argument values given a list of argument - * definitions and list of argument AST nodes. - * - * Note: The returned value is a plain Object with a prototype, since it is - * exposed to user code. Care should be taken to not pull values from the - * Object prototype. - */ - -function getArgumentValues(def, node, variableValues) { - var _node$arguments; - - const coercedValues = {}; // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - - const argumentNodes = - (_node$arguments = node.arguments) !== null && _node$arguments !== void 0 - ? _node$arguments - : []; - const argNodeMap = (0, _keyMap.keyMap)( - argumentNodes, - (arg) => arg.name.value, - ); - - for (const argDef of def.args) { - const name = argDef.name; - const argType = argDef.type; - const argumentNode = argNodeMap[name]; - - if (!argumentNode) { - if (argDef.defaultValue !== undefined) { - coercedValues[name] = argDef.defaultValue; - } else if ((0, _definition.isNonNullType)(argType)) { - throw new _GraphQLError.GraphQLError( - `Argument "${name}" of required type "${(0, _inspect.inspect)( - argType, - )}" ` + 'was not provided.', - { - nodes: node, - }, - ); - } - - continue; - } - - const valueNode = argumentNode.value; - let isNull = valueNode.kind === _kinds.Kind.NULL; - - if (valueNode.kind === _kinds.Kind.VARIABLE) { - const variableName = valueNode.name.value; - - if ( - variableValues == null || - !hasOwnProperty(variableValues, variableName) - ) { - if (argDef.defaultValue !== undefined) { - coercedValues[name] = argDef.defaultValue; - } else if ((0, _definition.isNonNullType)(argType)) { - throw new _GraphQLError.GraphQLError( - `Argument "${name}" of required type "${(0, _inspect.inspect)( - argType, - )}" ` + - `was provided the variable "$${variableName}" which was not provided a runtime value.`, - { - nodes: valueNode, - }, - ); - } - - continue; - } - - isNull = variableValues[variableName] == null; - } - - if (isNull && (0, _definition.isNonNullType)(argType)) { - throw new _GraphQLError.GraphQLError( - `Argument "${name}" of non-null type "${(0, _inspect.inspect)( - argType, - )}" ` + 'must not be null.', - { - nodes: valueNode, - }, - ); - } - - const coercedValue = (0, _valueFromAST.valueFromAST)( - valueNode, - argType, - variableValues, - ); - - if (coercedValue === undefined) { - // Note: ValuesOfCorrectTypeRule validation should catch this before - // execution. This is a runtime check to ensure execution does not - // continue with an invalid argument value. - throw new _GraphQLError.GraphQLError( - `Argument "${name}" has invalid value ${(0, _printer.print)( - valueNode, - )}.`, - { - nodes: valueNode, - }, - ); - } - - coercedValues[name] = coercedValue; - } - - return coercedValues; -} -/** - * Prepares an object map of argument values given a directive definition - * and a AST node which may contain directives. Optionally also accepts a map - * of variable values. - * - * If the directive does not exist on the node, returns undefined. - * - * Note: The returned value is a plain Object with a prototype, since it is - * exposed to user code. Care should be taken to not pull values from the - * Object prototype. - */ - -function getDirectiveValues(directiveDef, node, variableValues) { - var _node$directives; - - const directiveNode = - (_node$directives = node.directives) === null || _node$directives === void 0 - ? void 0 - : _node$directives.find( - (directive) => directive.name.value === directiveDef.name, - ); - - if (directiveNode) { - return getArgumentValues(directiveDef, directiveNode, variableValues); - } -} - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - - -/***/ }), - -/***/ 366: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.graphql = graphql; -exports.graphqlSync = graphqlSync; - -var _devAssert = __nccwpck_require__(7437); - -var _isPromise = __nccwpck_require__(1273); - -var _parser = __nccwpck_require__(8443); - -var _validate = __nccwpck_require__(3756); - -var _validate2 = __nccwpck_require__(5105); - -var _execute = __nccwpck_require__(7093); - -function graphql(args) { - // Always return a Promise for a consistent API. - return new Promise((resolve) => resolve(graphqlImpl(args))); -} -/** - * The graphqlSync function also fulfills GraphQL operations by parsing, - * validating, and executing a GraphQL document along side a GraphQL schema. - * However, it guarantees to complete synchronously (or throw an error) assuming - * that all field resolvers are also synchronous. - */ - -function graphqlSync(args) { - const result = graphqlImpl(args); // Assert that the execution was synchronous. - - if ((0, _isPromise.isPromise)(result)) { - throw new Error('GraphQL execution failed to complete synchronously.'); - } - - return result; -} - -function graphqlImpl(args) { - // Temporary for v15 to v16 migration. Remove in v17 - arguments.length < 2 || - (0, _devAssert.devAssert)( - false, - 'graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.', - ); - const { - schema, - source, - rootValue, - contextValue, - variableValues, - operationName, - fieldResolver, - typeResolver, - } = args; // Validate Schema - - const schemaValidationErrors = (0, _validate.validateSchema)(schema); - - if (schemaValidationErrors.length > 0) { - return { - errors: schemaValidationErrors, - }; - } // Parse - - let document; - - try { - document = (0, _parser.parse)(source); - } catch (syntaxError) { - return { - errors: [syntaxError], - }; - } // Validate - - const validationErrors = (0, _validate2.validate)(schema, document); - - if (validationErrors.length > 0) { - return { - errors: validationErrors, - }; - } // Execute - - return (0, _execute.execute)({ - schema, - document, - rootValue, - contextValue, - variableValues, - operationName, - fieldResolver, - typeResolver, - }); -} - - -/***/ }), - -/***/ 9727: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -Object.defineProperty(exports, "BREAK", ({ - enumerable: true, - get: function () { - return _index2.BREAK; - }, -})); -Object.defineProperty(exports, "BreakingChangeType", ({ - enumerable: true, - get: function () { - return _index6.BreakingChangeType; - }, -})); -Object.defineProperty(exports, "DEFAULT_DEPRECATION_REASON", ({ - enumerable: true, - get: function () { - return _index.DEFAULT_DEPRECATION_REASON; - }, -})); -Object.defineProperty(exports, "DangerousChangeType", ({ - enumerable: true, - get: function () { - return _index6.DangerousChangeType; - }, -})); -Object.defineProperty(exports, "DirectiveLocation", ({ - enumerable: true, - get: function () { - return _index2.DirectiveLocation; - }, -})); -Object.defineProperty(exports, "ExecutableDefinitionsRule", ({ - enumerable: true, - get: function () { - return _index4.ExecutableDefinitionsRule; - }, -})); -Object.defineProperty(exports, "FieldsOnCorrectTypeRule", ({ - enumerable: true, - get: function () { - return _index4.FieldsOnCorrectTypeRule; - }, -})); -Object.defineProperty(exports, "FragmentsOnCompositeTypesRule", ({ - enumerable: true, - get: function () { - return _index4.FragmentsOnCompositeTypesRule; - }, -})); -Object.defineProperty(exports, "GRAPHQL_MAX_INT", ({ - enumerable: true, - get: function () { - return _index.GRAPHQL_MAX_INT; - }, -})); -Object.defineProperty(exports, "GRAPHQL_MIN_INT", ({ - enumerable: true, - get: function () { - return _index.GRAPHQL_MIN_INT; - }, -})); -Object.defineProperty(exports, "GraphQLBoolean", ({ - enumerable: true, - get: function () { - return _index.GraphQLBoolean; - }, -})); -Object.defineProperty(exports, "GraphQLDeprecatedDirective", ({ - enumerable: true, - get: function () { - return _index.GraphQLDeprecatedDirective; - }, -})); -Object.defineProperty(exports, "GraphQLDirective", ({ - enumerable: true, - get: function () { - return _index.GraphQLDirective; - }, -})); -Object.defineProperty(exports, "GraphQLEnumType", ({ - enumerable: true, - get: function () { - return _index.GraphQLEnumType; - }, -})); -Object.defineProperty(exports, "GraphQLError", ({ - enumerable: true, - get: function () { - return _index5.GraphQLError; - }, -})); -Object.defineProperty(exports, "GraphQLFloat", ({ - enumerable: true, - get: function () { - return _index.GraphQLFloat; - }, -})); -Object.defineProperty(exports, "GraphQLID", ({ - enumerable: true, - get: function () { - return _index.GraphQLID; - }, -})); -Object.defineProperty(exports, "GraphQLIncludeDirective", ({ - enumerable: true, - get: function () { - return _index.GraphQLIncludeDirective; - }, -})); -Object.defineProperty(exports, "GraphQLInputObjectType", ({ - enumerable: true, - get: function () { - return _index.GraphQLInputObjectType; - }, -})); -Object.defineProperty(exports, "GraphQLInt", ({ - enumerable: true, - get: function () { - return _index.GraphQLInt; - }, -})); -Object.defineProperty(exports, "GraphQLInterfaceType", ({ - enumerable: true, - get: function () { - return _index.GraphQLInterfaceType; - }, -})); -Object.defineProperty(exports, "GraphQLList", ({ - enumerable: true, - get: function () { - return _index.GraphQLList; - }, -})); -Object.defineProperty(exports, "GraphQLNonNull", ({ - enumerable: true, - get: function () { - return _index.GraphQLNonNull; - }, -})); -Object.defineProperty(exports, "GraphQLObjectType", ({ - enumerable: true, - get: function () { - return _index.GraphQLObjectType; - }, -})); -Object.defineProperty(exports, "GraphQLOneOfDirective", ({ - enumerable: true, - get: function () { - return _index.GraphQLOneOfDirective; - }, -})); -Object.defineProperty(exports, "GraphQLScalarType", ({ - enumerable: true, - get: function () { - return _index.GraphQLScalarType; - }, -})); -Object.defineProperty(exports, "GraphQLSchema", ({ - enumerable: true, - get: function () { - return _index.GraphQLSchema; - }, -})); -Object.defineProperty(exports, "GraphQLSkipDirective", ({ - enumerable: true, - get: function () { - return _index.GraphQLSkipDirective; - }, -})); -Object.defineProperty(exports, "GraphQLSpecifiedByDirective", ({ - enumerable: true, - get: function () { - return _index.GraphQLSpecifiedByDirective; - }, -})); -Object.defineProperty(exports, "GraphQLString", ({ - enumerable: true, - get: function () { - return _index.GraphQLString; - }, -})); -Object.defineProperty(exports, "GraphQLUnionType", ({ - enumerable: true, - get: function () { - return _index.GraphQLUnionType; - }, -})); -Object.defineProperty(exports, "Kind", ({ - enumerable: true, - get: function () { - return _index2.Kind; - }, -})); -Object.defineProperty(exports, "KnownArgumentNamesRule", ({ - enumerable: true, - get: function () { - return _index4.KnownArgumentNamesRule; - }, -})); -Object.defineProperty(exports, "KnownDirectivesRule", ({ - enumerable: true, - get: function () { - return _index4.KnownDirectivesRule; - }, -})); -Object.defineProperty(exports, "KnownFragmentNamesRule", ({ - enumerable: true, - get: function () { - return _index4.KnownFragmentNamesRule; - }, -})); -Object.defineProperty(exports, "KnownTypeNamesRule", ({ - enumerable: true, - get: function () { - return _index4.KnownTypeNamesRule; - }, -})); -Object.defineProperty(exports, "Lexer", ({ - enumerable: true, - get: function () { - return _index2.Lexer; - }, -})); -Object.defineProperty(exports, "Location", ({ - enumerable: true, - get: function () { - return _index2.Location; - }, -})); -Object.defineProperty(exports, "LoneAnonymousOperationRule", ({ - enumerable: true, - get: function () { - return _index4.LoneAnonymousOperationRule; - }, -})); -Object.defineProperty(exports, "LoneSchemaDefinitionRule", ({ - enumerable: true, - get: function () { - return _index4.LoneSchemaDefinitionRule; - }, -})); -Object.defineProperty(exports, "MaxIntrospectionDepthRule", ({ - enumerable: true, - get: function () { - return _index4.MaxIntrospectionDepthRule; - }, -})); -Object.defineProperty(exports, "NoDeprecatedCustomRule", ({ - enumerable: true, - get: function () { - return _index4.NoDeprecatedCustomRule; - }, -})); -Object.defineProperty(exports, "NoFragmentCyclesRule", ({ - enumerable: true, - get: function () { - return _index4.NoFragmentCyclesRule; - }, -})); -Object.defineProperty(exports, "NoSchemaIntrospectionCustomRule", ({ - enumerable: true, - get: function () { - return _index4.NoSchemaIntrospectionCustomRule; - }, -})); -Object.defineProperty(exports, "NoUndefinedVariablesRule", ({ - enumerable: true, - get: function () { - return _index4.NoUndefinedVariablesRule; - }, -})); -Object.defineProperty(exports, "NoUnusedFragmentsRule", ({ - enumerable: true, - get: function () { - return _index4.NoUnusedFragmentsRule; - }, -})); -Object.defineProperty(exports, "NoUnusedVariablesRule", ({ - enumerable: true, - get: function () { - return _index4.NoUnusedVariablesRule; - }, -})); -Object.defineProperty(exports, "OperationTypeNode", ({ - enumerable: true, - get: function () { - return _index2.OperationTypeNode; - }, -})); -Object.defineProperty(exports, "OverlappingFieldsCanBeMergedRule", ({ - enumerable: true, - get: function () { - return _index4.OverlappingFieldsCanBeMergedRule; - }, -})); -Object.defineProperty(exports, "PossibleFragmentSpreadsRule", ({ - enumerable: true, - get: function () { - return _index4.PossibleFragmentSpreadsRule; - }, -})); -Object.defineProperty(exports, "PossibleTypeExtensionsRule", ({ - enumerable: true, - get: function () { - return _index4.PossibleTypeExtensionsRule; - }, -})); -Object.defineProperty(exports, "ProvidedRequiredArgumentsRule", ({ - enumerable: true, - get: function () { - return _index4.ProvidedRequiredArgumentsRule; - }, -})); -Object.defineProperty(exports, "ScalarLeafsRule", ({ - enumerable: true, - get: function () { - return _index4.ScalarLeafsRule; - }, -})); -Object.defineProperty(exports, "SchemaMetaFieldDef", ({ - enumerable: true, - get: function () { - return _index.SchemaMetaFieldDef; - }, -})); -Object.defineProperty(exports, "SingleFieldSubscriptionsRule", ({ - enumerable: true, - get: function () { - return _index4.SingleFieldSubscriptionsRule; - }, -})); -Object.defineProperty(exports, "Source", ({ - enumerable: true, - get: function () { - return _index2.Source; - }, -})); -Object.defineProperty(exports, "Token", ({ - enumerable: true, - get: function () { - return _index2.Token; - }, -})); -Object.defineProperty(exports, "TokenKind", ({ - enumerable: true, - get: function () { - return _index2.TokenKind; - }, -})); -Object.defineProperty(exports, "TypeInfo", ({ - enumerable: true, - get: function () { - return _index6.TypeInfo; - }, -})); -Object.defineProperty(exports, "TypeKind", ({ - enumerable: true, - get: function () { - return _index.TypeKind; - }, -})); -Object.defineProperty(exports, "TypeMetaFieldDef", ({ - enumerable: true, - get: function () { - return _index.TypeMetaFieldDef; - }, -})); -Object.defineProperty(exports, "TypeNameMetaFieldDef", ({ - enumerable: true, - get: function () { - return _index.TypeNameMetaFieldDef; - }, -})); -Object.defineProperty(exports, "UniqueArgumentDefinitionNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueArgumentDefinitionNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueArgumentNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueArgumentNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueDirectiveNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueDirectiveNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueDirectivesPerLocationRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueDirectivesPerLocationRule; - }, -})); -Object.defineProperty(exports, "UniqueEnumValueNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueEnumValueNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueFieldDefinitionNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueFieldDefinitionNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueFragmentNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueFragmentNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueInputFieldNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueInputFieldNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueOperationNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueOperationNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueOperationTypesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueOperationTypesRule; - }, -})); -Object.defineProperty(exports, "UniqueTypeNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueTypeNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueVariableNamesRule", ({ - enumerable: true, - get: function () { - return _index4.UniqueVariableNamesRule; - }, -})); -Object.defineProperty(exports, "ValidationContext", ({ - enumerable: true, - get: function () { - return _index4.ValidationContext; - }, -})); -Object.defineProperty(exports, "ValuesOfCorrectTypeRule", ({ - enumerable: true, - get: function () { - return _index4.ValuesOfCorrectTypeRule; - }, -})); -Object.defineProperty(exports, "VariablesAreInputTypesRule", ({ - enumerable: true, - get: function () { - return _index4.VariablesAreInputTypesRule; - }, -})); -Object.defineProperty(exports, "VariablesInAllowedPositionRule", ({ - enumerable: true, - get: function () { - return _index4.VariablesInAllowedPositionRule; - }, -})); -Object.defineProperty(exports, "__Directive", ({ - enumerable: true, - get: function () { - return _index.__Directive; - }, -})); -Object.defineProperty(exports, "__DirectiveLocation", ({ - enumerable: true, - get: function () { - return _index.__DirectiveLocation; - }, -})); -Object.defineProperty(exports, "__EnumValue", ({ - enumerable: true, - get: function () { - return _index.__EnumValue; - }, -})); -Object.defineProperty(exports, "__Field", ({ - enumerable: true, - get: function () { - return _index.__Field; - }, -})); -Object.defineProperty(exports, "__InputValue", ({ - enumerable: true, - get: function () { - return _index.__InputValue; - }, -})); -Object.defineProperty(exports, "__Schema", ({ - enumerable: true, - get: function () { - return _index.__Schema; - }, -})); -Object.defineProperty(exports, "__Type", ({ - enumerable: true, - get: function () { - return _index.__Type; - }, -})); -Object.defineProperty(exports, "__TypeKind", ({ - enumerable: true, - get: function () { - return _index.__TypeKind; - }, -})); -Object.defineProperty(exports, "assertAbstractType", ({ - enumerable: true, - get: function () { - return _index.assertAbstractType; - }, -})); -Object.defineProperty(exports, "assertCompositeType", ({ - enumerable: true, - get: function () { - return _index.assertCompositeType; - }, -})); -Object.defineProperty(exports, "assertDirective", ({ - enumerable: true, - get: function () { - return _index.assertDirective; - }, -})); -Object.defineProperty(exports, "assertEnumType", ({ - enumerable: true, - get: function () { - return _index.assertEnumType; - }, -})); -Object.defineProperty(exports, "assertEnumValueName", ({ - enumerable: true, - get: function () { - return _index.assertEnumValueName; - }, -})); -Object.defineProperty(exports, "assertInputObjectType", ({ - enumerable: true, - get: function () { - return _index.assertInputObjectType; - }, -})); -Object.defineProperty(exports, "assertInputType", ({ - enumerable: true, - get: function () { - return _index.assertInputType; - }, -})); -Object.defineProperty(exports, "assertInterfaceType", ({ - enumerable: true, - get: function () { - return _index.assertInterfaceType; - }, -})); -Object.defineProperty(exports, "assertLeafType", ({ - enumerable: true, - get: function () { - return _index.assertLeafType; - }, -})); -Object.defineProperty(exports, "assertListType", ({ - enumerable: true, - get: function () { - return _index.assertListType; - }, -})); -Object.defineProperty(exports, "assertName", ({ - enumerable: true, - get: function () { - return _index.assertName; - }, -})); -Object.defineProperty(exports, "assertNamedType", ({ - enumerable: true, - get: function () { - return _index.assertNamedType; - }, -})); -Object.defineProperty(exports, "assertNonNullType", ({ - enumerable: true, - get: function () { - return _index.assertNonNullType; - }, -})); -Object.defineProperty(exports, "assertNullableType", ({ - enumerable: true, - get: function () { - return _index.assertNullableType; - }, -})); -Object.defineProperty(exports, "assertObjectType", ({ - enumerable: true, - get: function () { - return _index.assertObjectType; - }, -})); -Object.defineProperty(exports, "assertOutputType", ({ - enumerable: true, - get: function () { - return _index.assertOutputType; - }, -})); -Object.defineProperty(exports, "assertScalarType", ({ - enumerable: true, - get: function () { - return _index.assertScalarType; - }, -})); -Object.defineProperty(exports, "assertSchema", ({ - enumerable: true, - get: function () { - return _index.assertSchema; - }, -})); -Object.defineProperty(exports, "assertType", ({ - enumerable: true, - get: function () { - return _index.assertType; - }, -})); -Object.defineProperty(exports, "assertUnionType", ({ - enumerable: true, - get: function () { - return _index.assertUnionType; - }, -})); -Object.defineProperty(exports, "assertValidName", ({ - enumerable: true, - get: function () { - return _index6.assertValidName; - }, -})); -Object.defineProperty(exports, "assertValidSchema", ({ - enumerable: true, - get: function () { - return _index.assertValidSchema; - }, -})); -Object.defineProperty(exports, "assertWrappingType", ({ - enumerable: true, - get: function () { - return _index.assertWrappingType; - }, -})); -Object.defineProperty(exports, "astFromValue", ({ - enumerable: true, - get: function () { - return _index6.astFromValue; - }, -})); -Object.defineProperty(exports, "buildASTSchema", ({ - enumerable: true, - get: function () { - return _index6.buildASTSchema; - }, -})); -Object.defineProperty(exports, "buildClientSchema", ({ - enumerable: true, - get: function () { - return _index6.buildClientSchema; - }, -})); -Object.defineProperty(exports, "buildSchema", ({ - enumerable: true, - get: function () { - return _index6.buildSchema; - }, -})); -Object.defineProperty(exports, "coerceInputValue", ({ - enumerable: true, - get: function () { - return _index6.coerceInputValue; - }, -})); -Object.defineProperty(exports, "concatAST", ({ - enumerable: true, - get: function () { - return _index6.concatAST; - }, -})); -Object.defineProperty(exports, "createSourceEventStream", ({ - enumerable: true, - get: function () { - return _index3.createSourceEventStream; - }, -})); -Object.defineProperty(exports, "defaultFieldResolver", ({ - enumerable: true, - get: function () { - return _index3.defaultFieldResolver; - }, -})); -Object.defineProperty(exports, "defaultTypeResolver", ({ - enumerable: true, - get: function () { - return _index3.defaultTypeResolver; - }, -})); -Object.defineProperty(exports, "doTypesOverlap", ({ - enumerable: true, - get: function () { - return _index6.doTypesOverlap; - }, -})); -Object.defineProperty(exports, "execute", ({ - enumerable: true, - get: function () { - return _index3.execute; - }, -})); -Object.defineProperty(exports, "executeSync", ({ - enumerable: true, - get: function () { - return _index3.executeSync; - }, -})); -Object.defineProperty(exports, "extendSchema", ({ - enumerable: true, - get: function () { - return _index6.extendSchema; - }, -})); -Object.defineProperty(exports, "findBreakingChanges", ({ - enumerable: true, - get: function () { - return _index6.findBreakingChanges; - }, -})); -Object.defineProperty(exports, "findDangerousChanges", ({ - enumerable: true, - get: function () { - return _index6.findDangerousChanges; - }, -})); -Object.defineProperty(exports, "formatError", ({ - enumerable: true, - get: function () { - return _index5.formatError; - }, -})); -Object.defineProperty(exports, "getArgumentValues", ({ - enumerable: true, - get: function () { - return _index3.getArgumentValues; - }, -})); -Object.defineProperty(exports, "getDirectiveValues", ({ - enumerable: true, - get: function () { - return _index3.getDirectiveValues; - }, -})); -Object.defineProperty(exports, "getEnterLeaveForKind", ({ - enumerable: true, - get: function () { - return _index2.getEnterLeaveForKind; - }, -})); -Object.defineProperty(exports, "getIntrospectionQuery", ({ - enumerable: true, - get: function () { - return _index6.getIntrospectionQuery; - }, -})); -Object.defineProperty(exports, "getLocation", ({ - enumerable: true, - get: function () { - return _index2.getLocation; - }, -})); -Object.defineProperty(exports, "getNamedType", ({ - enumerable: true, - get: function () { - return _index.getNamedType; - }, -})); -Object.defineProperty(exports, "getNullableType", ({ - enumerable: true, - get: function () { - return _index.getNullableType; - }, -})); -Object.defineProperty(exports, "getOperationAST", ({ - enumerable: true, - get: function () { - return _index6.getOperationAST; - }, -})); -Object.defineProperty(exports, "getOperationRootType", ({ - enumerable: true, - get: function () { - return _index6.getOperationRootType; - }, -})); -Object.defineProperty(exports, "getVariableValues", ({ - enumerable: true, - get: function () { - return _index3.getVariableValues; - }, -})); -Object.defineProperty(exports, "getVisitFn", ({ - enumerable: true, - get: function () { - return _index2.getVisitFn; - }, -})); -Object.defineProperty(exports, "graphql", ({ - enumerable: true, - get: function () { - return _graphql.graphql; - }, -})); -Object.defineProperty(exports, "graphqlSync", ({ - enumerable: true, - get: function () { - return _graphql.graphqlSync; - }, -})); -Object.defineProperty(exports, "introspectionFromSchema", ({ - enumerable: true, - get: function () { - return _index6.introspectionFromSchema; - }, -})); -Object.defineProperty(exports, "introspectionTypes", ({ - enumerable: true, - get: function () { - return _index.introspectionTypes; - }, -})); -Object.defineProperty(exports, "isAbstractType", ({ - enumerable: true, - get: function () { - return _index.isAbstractType; - }, -})); -Object.defineProperty(exports, "isCompositeType", ({ - enumerable: true, - get: function () { - return _index.isCompositeType; - }, -})); -Object.defineProperty(exports, "isConstValueNode", ({ - enumerable: true, - get: function () { - return _index2.isConstValueNode; - }, -})); -Object.defineProperty(exports, "isDefinitionNode", ({ - enumerable: true, - get: function () { - return _index2.isDefinitionNode; - }, -})); -Object.defineProperty(exports, "isDirective", ({ - enumerable: true, - get: function () { - return _index.isDirective; - }, -})); -Object.defineProperty(exports, "isEnumType", ({ - enumerable: true, - get: function () { - return _index.isEnumType; - }, -})); -Object.defineProperty(exports, "isEqualType", ({ - enumerable: true, - get: function () { - return _index6.isEqualType; - }, -})); -Object.defineProperty(exports, "isExecutableDefinitionNode", ({ - enumerable: true, - get: function () { - return _index2.isExecutableDefinitionNode; - }, -})); -Object.defineProperty(exports, "isInputObjectType", ({ - enumerable: true, - get: function () { - return _index.isInputObjectType; - }, -})); -Object.defineProperty(exports, "isInputType", ({ - enumerable: true, - get: function () { - return _index.isInputType; - }, -})); -Object.defineProperty(exports, "isInterfaceType", ({ - enumerable: true, - get: function () { - return _index.isInterfaceType; - }, -})); -Object.defineProperty(exports, "isIntrospectionType", ({ - enumerable: true, - get: function () { - return _index.isIntrospectionType; - }, -})); -Object.defineProperty(exports, "isLeafType", ({ - enumerable: true, - get: function () { - return _index.isLeafType; - }, -})); -Object.defineProperty(exports, "isListType", ({ - enumerable: true, - get: function () { - return _index.isListType; - }, -})); -Object.defineProperty(exports, "isNamedType", ({ - enumerable: true, - get: function () { - return _index.isNamedType; - }, -})); -Object.defineProperty(exports, "isNonNullType", ({ - enumerable: true, - get: function () { - return _index.isNonNullType; - }, -})); -Object.defineProperty(exports, "isNullableType", ({ - enumerable: true, - get: function () { - return _index.isNullableType; - }, -})); -Object.defineProperty(exports, "isObjectType", ({ - enumerable: true, - get: function () { - return _index.isObjectType; - }, -})); -Object.defineProperty(exports, "isOutputType", ({ - enumerable: true, - get: function () { - return _index.isOutputType; - }, -})); -Object.defineProperty(exports, "isRequiredArgument", ({ - enumerable: true, - get: function () { - return _index.isRequiredArgument; - }, -})); -Object.defineProperty(exports, "isRequiredInputField", ({ - enumerable: true, - get: function () { - return _index.isRequiredInputField; - }, -})); -Object.defineProperty(exports, "isScalarType", ({ - enumerable: true, - get: function () { - return _index.isScalarType; - }, -})); -Object.defineProperty(exports, "isSchema", ({ - enumerable: true, - get: function () { - return _index.isSchema; - }, -})); -Object.defineProperty(exports, "isSelectionNode", ({ - enumerable: true, - get: function () { - return _index2.isSelectionNode; - }, -})); -Object.defineProperty(exports, "isSpecifiedDirective", ({ - enumerable: true, - get: function () { - return _index.isSpecifiedDirective; - }, -})); -Object.defineProperty(exports, "isSpecifiedScalarType", ({ - enumerable: true, - get: function () { - return _index.isSpecifiedScalarType; - }, -})); -Object.defineProperty(exports, "isType", ({ - enumerable: true, - get: function () { - return _index.isType; - }, -})); -Object.defineProperty(exports, "isTypeDefinitionNode", ({ - enumerable: true, - get: function () { - return _index2.isTypeDefinitionNode; - }, -})); -Object.defineProperty(exports, "isTypeExtensionNode", ({ - enumerable: true, - get: function () { - return _index2.isTypeExtensionNode; - }, -})); -Object.defineProperty(exports, "isTypeNode", ({ - enumerable: true, - get: function () { - return _index2.isTypeNode; - }, -})); -Object.defineProperty(exports, "isTypeSubTypeOf", ({ - enumerable: true, - get: function () { - return _index6.isTypeSubTypeOf; - }, -})); -Object.defineProperty(exports, "isTypeSystemDefinitionNode", ({ - enumerable: true, - get: function () { - return _index2.isTypeSystemDefinitionNode; - }, -})); -Object.defineProperty(exports, "isTypeSystemExtensionNode", ({ - enumerable: true, - get: function () { - return _index2.isTypeSystemExtensionNode; - }, -})); -Object.defineProperty(exports, "isUnionType", ({ - enumerable: true, - get: function () { - return _index.isUnionType; - }, -})); -Object.defineProperty(exports, "isValidNameError", ({ - enumerable: true, - get: function () { - return _index6.isValidNameError; - }, -})); -Object.defineProperty(exports, "isValueNode", ({ - enumerable: true, - get: function () { - return _index2.isValueNode; - }, -})); -Object.defineProperty(exports, "isWrappingType", ({ - enumerable: true, - get: function () { - return _index.isWrappingType; - }, -})); -Object.defineProperty(exports, "lexicographicSortSchema", ({ - enumerable: true, - get: function () { - return _index6.lexicographicSortSchema; - }, -})); -Object.defineProperty(exports, "locatedError", ({ - enumerable: true, - get: function () { - return _index5.locatedError; - }, -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _index2.parse; - }, -})); -Object.defineProperty(exports, "parseConstValue", ({ - enumerable: true, - get: function () { - return _index2.parseConstValue; - }, -})); -Object.defineProperty(exports, "parseType", ({ - enumerable: true, - get: function () { - return _index2.parseType; - }, -})); -Object.defineProperty(exports, "parseValue", ({ - enumerable: true, - get: function () { - return _index2.parseValue; - }, -})); -Object.defineProperty(exports, "print", ({ - enumerable: true, - get: function () { - return _index2.print; - }, -})); -Object.defineProperty(exports, "printError", ({ - enumerable: true, - get: function () { - return _index5.printError; - }, -})); -Object.defineProperty(exports, "printIntrospectionSchema", ({ - enumerable: true, - get: function () { - return _index6.printIntrospectionSchema; - }, -})); -Object.defineProperty(exports, "printLocation", ({ - enumerable: true, - get: function () { - return _index2.printLocation; - }, -})); -Object.defineProperty(exports, "printSchema", ({ - enumerable: true, - get: function () { - return _index6.printSchema; - }, -})); -Object.defineProperty(exports, "printSourceLocation", ({ - enumerable: true, - get: function () { - return _index2.printSourceLocation; - }, -})); -Object.defineProperty(exports, "printType", ({ - enumerable: true, - get: function () { - return _index6.printType; - }, -})); -Object.defineProperty(exports, "recommendedRules", ({ - enumerable: true, - get: function () { - return _index4.recommendedRules; - }, -})); -Object.defineProperty(exports, "resolveObjMapThunk", ({ - enumerable: true, - get: function () { - return _index.resolveObjMapThunk; - }, -})); -Object.defineProperty(exports, "resolveReadonlyArrayThunk", ({ - enumerable: true, - get: function () { - return _index.resolveReadonlyArrayThunk; - }, -})); -Object.defineProperty(exports, "responsePathAsArray", ({ - enumerable: true, - get: function () { - return _index3.responsePathAsArray; - }, -})); -Object.defineProperty(exports, "separateOperations", ({ - enumerable: true, - get: function () { - return _index6.separateOperations; - }, -})); -Object.defineProperty(exports, "specifiedDirectives", ({ - enumerable: true, - get: function () { - return _index.specifiedDirectives; - }, -})); -Object.defineProperty(exports, "specifiedRules", ({ - enumerable: true, - get: function () { - return _index4.specifiedRules; - }, -})); -Object.defineProperty(exports, "specifiedScalarTypes", ({ - enumerable: true, - get: function () { - return _index.specifiedScalarTypes; - }, -})); -Object.defineProperty(exports, "stripIgnoredCharacters", ({ - enumerable: true, - get: function () { - return _index6.stripIgnoredCharacters; - }, -})); -Object.defineProperty(exports, "subscribe", ({ - enumerable: true, - get: function () { - return _index3.subscribe; - }, -})); -Object.defineProperty(exports, "syntaxError", ({ - enumerable: true, - get: function () { - return _index5.syntaxError; - }, -})); -Object.defineProperty(exports, "typeFromAST", ({ - enumerable: true, - get: function () { - return _index6.typeFromAST; - }, -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _index4.validate; - }, -})); -Object.defineProperty(exports, "validateSchema", ({ - enumerable: true, - get: function () { - return _index.validateSchema; - }, -})); -Object.defineProperty(exports, "valueFromAST", ({ - enumerable: true, - get: function () { - return _index6.valueFromAST; - }, -})); -Object.defineProperty(exports, "valueFromASTUntyped", ({ - enumerable: true, - get: function () { - return _index6.valueFromASTUntyped; - }, -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.version; - }, -})); -Object.defineProperty(exports, "versionInfo", ({ - enumerable: true, - get: function () { - return _version.versionInfo; - }, -})); -Object.defineProperty(exports, "visit", ({ - enumerable: true, - get: function () { - return _index2.visit; - }, -})); -Object.defineProperty(exports, "visitInParallel", ({ - enumerable: true, - get: function () { - return _index2.visitInParallel; - }, -})); -Object.defineProperty(exports, "visitWithTypeInfo", ({ - enumerable: true, - get: function () { - return _index6.visitWithTypeInfo; - }, -})); - -var _version = __nccwpck_require__(831); - -var _graphql = __nccwpck_require__(366); - -var _index = __nccwpck_require__(3788); - -var _index2 = __nccwpck_require__(3506); - -var _index3 = __nccwpck_require__(502); - -var _index4 = __nccwpck_require__(456); - -var _index5 = __nccwpck_require__(774); - -var _index6 = __nccwpck_require__(1000); - - -/***/ }), - -/***/ 2373: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.addPath = addPath; -exports.pathToArray = pathToArray; - -/** - * Given a Path and a key, return a new Path containing the new key. - */ -function addPath(prev, key, typename) { - return { - prev, - key, - typename, - }; -} -/** - * Given a Path, return an Array of the path keys. - */ - -function pathToArray(path) { - const flattened = []; - let curr = path; - - while (curr) { - flattened.push(curr.key); - curr = curr.prev; - } - - return flattened.reverse(); -} - - -/***/ }), - -/***/ 7437: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.devAssert = devAssert; - -function devAssert(condition, message) { - const booleanCondition = Boolean(condition); - - if (!booleanCondition) { - throw new Error(message); - } -} - - -/***/ }), - -/***/ 1627: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.didYouMean = didYouMean; -const MAX_SUGGESTIONS = 5; -/** - * Given [ A, B, C ] return ' Did you mean A, B, or C?'. - */ - -function didYouMean(firstArg, secondArg) { - const [subMessage, suggestionsArg] = secondArg - ? [firstArg, secondArg] - : [undefined, firstArg]; - let message = ' Did you mean '; - - if (subMessage) { - message += subMessage + ' '; - } - - const suggestions = suggestionsArg.map((x) => `"${x}"`); - - switch (suggestions.length) { - case 0: - return ''; - - case 1: - return message + suggestions[0] + '?'; - - case 2: - return message + suggestions[0] + ' or ' + suggestions[1] + '?'; - } - - const selected = suggestions.slice(0, MAX_SUGGESTIONS); - const lastItem = selected.pop(); - return message + selected.join(', ') + ', or ' + lastItem + '?'; -} - - -/***/ }), - -/***/ 8982: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.groupBy = groupBy; - -/** - * Groups array items into a Map, given a function to produce grouping key. - */ -function groupBy(list, keyFn) { - const result = new Map(); - - for (const item of list) { - const key = keyFn(item); - const group = result.get(key); - - if (group === undefined) { - result.set(key, [item]); - } else { - group.push(item); - } - } - - return result; -} - - -/***/ }), - -/***/ 3374: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.identityFunc = identityFunc; - -/** - * Returns the first argument it receives. - */ -function identityFunc(x) { - return x; -} - - -/***/ }), - -/***/ 3707: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.inspect = inspect; -const MAX_ARRAY_LENGTH = 10; -const MAX_RECURSIVE_DEPTH = 2; -/** - * Used to print values in error messages. - */ - -function inspect(value) { - return formatValue(value, []); -} - -function formatValue(value, seenValues) { - switch (typeof value) { - case 'string': - return JSON.stringify(value); - - case 'function': - return value.name ? `[function ${value.name}]` : '[function]'; - - case 'object': - return formatObjectValue(value, seenValues); - - default: - return String(value); - } -} - -function formatObjectValue(value, previouslySeenValues) { - if (value === null) { - return 'null'; - } - - if (previouslySeenValues.includes(value)) { - return '[Circular]'; - } - - const seenValues = [...previouslySeenValues, value]; - - if (isJSONable(value)) { - const jsonValue = value.toJSON(); // check for infinite recursion - - if (jsonValue !== value) { - return typeof jsonValue === 'string' - ? jsonValue - : formatValue(jsonValue, seenValues); - } - } else if (Array.isArray(value)) { - return formatArray(value, seenValues); - } - - return formatObject(value, seenValues); -} - -function isJSONable(value) { - return typeof value.toJSON === 'function'; -} - -function formatObject(object, seenValues) { - const entries = Object.entries(object); - - if (entries.length === 0) { - return '{}'; - } - - if (seenValues.length > MAX_RECURSIVE_DEPTH) { - return '[' + getObjectTag(object) + ']'; - } - - const properties = entries.map( - ([key, value]) => key + ': ' + formatValue(value, seenValues), - ); - return '{ ' + properties.join(', ') + ' }'; -} - -function formatArray(array, seenValues) { - if (array.length === 0) { - return '[]'; - } - - if (seenValues.length > MAX_RECURSIVE_DEPTH) { - return '[Array]'; - } - - const len = Math.min(MAX_ARRAY_LENGTH, array.length); - const remaining = array.length - len; - const items = []; - - for (let i = 0; i < len; ++i) { - items.push(formatValue(array[i], seenValues)); - } - - if (remaining === 1) { - items.push('... 1 more item'); - } else if (remaining > 1) { - items.push(`... ${remaining} more items`); - } - - return '[' + items.join(', ') + ']'; -} - -function getObjectTag(object) { - const tag = Object.prototype.toString - .call(object) - .replace(/^\[object /, '') - .replace(/]$/, ''); - - if (tag === 'Object' && typeof object.constructor === 'function') { - const name = object.constructor.name; - - if (typeof name === 'string' && name !== '') { - return name; - } - } - - return tag; -} - - -/***/ }), - -/***/ 6524: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.instanceOf = void 0; - -var _inspect = __nccwpck_require__(3707); - -/* c8 ignore next 3 */ -const isProduction = - globalThis.process && - process.env.NODE_ENV === 'production'; -/** - * A replacement for instanceof which includes an error warning when multi-realm - * constructors are detected. - * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production - * See: https://webpack.js.org/guides/production/ - */ - -const instanceOf = - /* c8 ignore next 6 */ - // FIXME: https://github.com/graphql/graphql-js/issues/2317 - isProduction - ? function instanceOf(value, constructor) { - return value instanceof constructor; - } - : function instanceOf(value, constructor) { - if (value instanceof constructor) { - return true; - } - - if (typeof value === 'object' && value !== null) { - var _value$constructor; - - // Prefer Symbol.toStringTag since it is immune to minification. - const className = constructor.prototype[Symbol.toStringTag]; - const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library. - Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009 - ? value[Symbol.toStringTag] - : (_value$constructor = value.constructor) === null || - _value$constructor === void 0 - ? void 0 - : _value$constructor.name; - - if (className === valueClassName) { - const stringifiedValue = (0, _inspect.inspect)(value); - throw new Error(`Cannot use ${className} "${stringifiedValue}" from another module or realm. - -Ensure that there is only one instance of "graphql" in the node_modules -directory. If different versions of "graphql" are the dependencies of other -relied on modules, use "resolutions" to ensure only one version is installed. - -https://yarnpkg.com/en/docs/selective-version-resolutions - -Duplicate "graphql" modules cannot be used at the same time since different -versions may have different capabilities and behavior. The data from one -version used in the function from another could produce confusing and -spurious results.`); - } - } - - return false; - }; -exports.instanceOf = instanceOf; - - -/***/ }), - -/***/ 9952: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.invariant = invariant; - -function invariant(condition, message) { - const booleanCondition = Boolean(condition); - - if (!booleanCondition) { - throw new Error( - message != null ? message : 'Unexpected invariant triggered.', - ); - } -} - - -/***/ }), - -/***/ 618: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.isAsyncIterable = isAsyncIterable; - -/** - * Returns true if the provided object implements the AsyncIterator protocol via - * implementing a `Symbol.asyncIterator` method. - */ -function isAsyncIterable(maybeAsyncIterable) { - return ( - typeof (maybeAsyncIterable === null || maybeAsyncIterable === void 0 - ? void 0 - : maybeAsyncIterable[Symbol.asyncIterator]) === 'function' - ); -} - - -/***/ }), - -/***/ 4507: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.isIterableObject = isIterableObject; - -/** - * Returns true if the provided object is an Object (i.e. not a string literal) - * and implements the Iterator protocol. - * - * This may be used in place of [Array.isArray()][isArray] to determine if - * an object should be iterated-over e.g. Array, Map, Set, Int8Array, - * TypedArray, etc. but excludes string literals. - * - * @example - * ```ts - * isIterableObject([ 1, 2, 3 ]) // true - * isIterableObject(new Map()) // true - * isIterableObject('ABC') // false - * isIterableObject({ key: 'value' }) // false - * isIterableObject({ length: 1, 0: 'Alpha' }) // false - * ``` - */ -function isIterableObject(maybeIterable) { - return ( - typeof maybeIterable === 'object' && - typeof (maybeIterable === null || maybeIterable === void 0 - ? void 0 - : maybeIterable[Symbol.iterator]) === 'function' - ); -} - - -/***/ }), - -/***/ 7502: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.isObjectLike = isObjectLike; - -/** - * Return true if `value` is object-like. A value is object-like if it's not - * `null` and has a `typeof` result of "object". - */ -function isObjectLike(value) { - return typeof value == 'object' && value !== null; -} - - -/***/ }), - -/***/ 1273: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.isPromise = isPromise; - -/** - * Returns true if the value acts like a Promise, i.e. has a "then" function, - * otherwise returns false. - */ -function isPromise(value) { - return ( - typeof (value === null || value === void 0 ? void 0 : value.then) === - 'function' - ); -} - - -/***/ }), - -/***/ 1529: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.keyMap = keyMap; - -/** - * Creates a keyed JS object from an array, given a function to produce the keys - * for each value in the array. - * - * This provides a convenient lookup for the array items if the key function - * produces unique results. - * ```ts - * const phoneBook = [ - * { name: 'Jon', num: '555-1234' }, - * { name: 'Jenny', num: '867-5309' } - * ] - * - * const entriesByName = keyMap( - * phoneBook, - * entry => entry.name - * ) - * - * // { - * // Jon: { name: 'Jon', num: '555-1234' }, - * // Jenny: { name: 'Jenny', num: '867-5309' } - * // } - * - * const jennyEntry = entriesByName['Jenny'] - * - * // { name: 'Jenny', num: '857-6309' } - * ``` - */ -function keyMap(list, keyFn) { - const result = Object.create(null); - - for (const item of list) { - result[keyFn(item)] = item; - } - - return result; -} - - -/***/ }), - -/***/ 4876: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.keyValMap = keyValMap; - -/** - * Creates a keyed JS object from an array, given a function to produce the keys - * and a function to produce the values from each item in the array. - * ```ts - * const phoneBook = [ - * { name: 'Jon', num: '555-1234' }, - * { name: 'Jenny', num: '867-5309' } - * ] - * - * // { Jon: '555-1234', Jenny: '867-5309' } - * const phonesByName = keyValMap( - * phoneBook, - * entry => entry.name, - * entry => entry.num - * ) - * ``` - */ -function keyValMap(list, keyFn, valFn) { - const result = Object.create(null); - - for (const item of list) { - result[keyFn(item)] = valFn(item); - } - - return result; -} - - -/***/ }), - -/***/ 9261: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.mapValue = mapValue; - -/** - * Creates an object map with the same keys as `map` and values generated by - * running each value of `map` thru `fn`. - */ -function mapValue(map, fn) { - const result = Object.create(null); - - for (const key of Object.keys(map)) { - result[key] = fn(map[key], key); - } - - return result; -} - - -/***/ }), - -/***/ 1243: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.memoize3 = memoize3; - -/** - * Memoizes the provided three-argument function. - */ -function memoize3(fn) { - let cache0; - return function memoized(a1, a2, a3) { - if (cache0 === undefined) { - cache0 = new WeakMap(); - } - - let cache1 = cache0.get(a1); - - if (cache1 === undefined) { - cache1 = new WeakMap(); - cache0.set(a1, cache1); - } - - let cache2 = cache1.get(a2); - - if (cache2 === undefined) { - cache2 = new WeakMap(); - cache1.set(a2, cache2); - } - - let fnResult = cache2.get(a3); - - if (fnResult === undefined) { - fnResult = fn(a1, a2, a3); - cache2.set(a3, fnResult); - } - - return fnResult; - }; -} - - -/***/ }), - -/***/ 4834: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.naturalCompare = naturalCompare; - -/** - * Returns a number indicating whether a reference string comes before, or after, - * or is the same as the given string in natural sort order. - * - * See: https://en.wikipedia.org/wiki/Natural_sort_order - * - */ -function naturalCompare(aStr, bStr) { - let aIndex = 0; - let bIndex = 0; - - while (aIndex < aStr.length && bIndex < bStr.length) { - let aChar = aStr.charCodeAt(aIndex); - let bChar = bStr.charCodeAt(bIndex); - - if (isDigit(aChar) && isDigit(bChar)) { - let aNum = 0; - - do { - ++aIndex; - aNum = aNum * 10 + aChar - DIGIT_0; - aChar = aStr.charCodeAt(aIndex); - } while (isDigit(aChar) && aNum > 0); - - let bNum = 0; - - do { - ++bIndex; - bNum = bNum * 10 + bChar - DIGIT_0; - bChar = bStr.charCodeAt(bIndex); - } while (isDigit(bChar) && bNum > 0); - - if (aNum < bNum) { - return -1; - } - - if (aNum > bNum) { - return 1; - } - } else { - if (aChar < bChar) { - return -1; - } - - if (aChar > bChar) { - return 1; - } - - ++aIndex; - ++bIndex; - } - } - - return aStr.length - bStr.length; -} - -const DIGIT_0 = 48; -const DIGIT_9 = 57; - -function isDigit(code) { - return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9; -} - - -/***/ }), - -/***/ 548: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.printPathArray = printPathArray; - -/** - * Build a string describing the path. - */ -function printPathArray(path) { - return path - .map((key) => - typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key, - ) - .join(''); -} - - -/***/ }), - -/***/ 2125: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.promiseForObject = promiseForObject; - -/** - * This function transforms a JS object `ObjMap>` into - * a `Promise>` - * - * This is akin to bluebird's `Promise.props`, but implemented only using - * `Promise.all` so it will work with any implementation of ES6 promises. - */ -function promiseForObject(object) { - return Promise.all(Object.values(object)).then((resolvedValues) => { - const resolvedObject = Object.create(null); - - for (const [i, key] of Object.keys(object).entries()) { - resolvedObject[key] = resolvedValues[i]; - } - - return resolvedObject; - }); -} - - -/***/ }), - -/***/ 3080: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.promiseReduce = promiseReduce; - -var _isPromise = __nccwpck_require__(1273); - -/** - * Similar to Array.prototype.reduce(), however the reducing callback may return - * a Promise, in which case reduction will continue after each promise resolves. - * - * If the callback does not return a Promise, then this function will also not - * return a Promise. - */ -function promiseReduce(values, callbackFn, initialValue) { - let accumulator = initialValue; - - for (const value of values) { - accumulator = (0, _isPromise.isPromise)(accumulator) - ? accumulator.then((resolved) => callbackFn(resolved, value)) - : callbackFn(accumulator, value); - } - - return accumulator; -} - - -/***/ }), - -/***/ 3046: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.suggestionList = suggestionList; - -var _naturalCompare = __nccwpck_require__(4834); - -/** - * Given an invalid input string and a list of valid options, returns a filtered - * list of valid options sorted based on their similarity with the input. - */ -function suggestionList(input, options) { - const optionsByDistance = Object.create(null); - const lexicalDistance = new LexicalDistance(input); - const threshold = Math.floor(input.length * 0.4) + 1; - - for (const option of options) { - const distance = lexicalDistance.measure(option, threshold); - - if (distance !== undefined) { - optionsByDistance[option] = distance; - } - } - - return Object.keys(optionsByDistance).sort((a, b) => { - const distanceDiff = optionsByDistance[a] - optionsByDistance[b]; - return distanceDiff !== 0 - ? distanceDiff - : (0, _naturalCompare.naturalCompare)(a, b); - }); -} -/** - * Computes the lexical distance between strings A and B. - * - * The "distance" between two strings is given by counting the minimum number - * of edits needed to transform string A into string B. An edit can be an - * insertion, deletion, or substitution of a single character, or a swap of two - * adjacent characters. - * - * Includes a custom alteration from Damerau-Levenshtein to treat case changes - * as a single edit which helps identify mis-cased values with an edit distance - * of 1. - * - * This distance can be useful for detecting typos in input or sorting - */ - -class LexicalDistance { - constructor(input) { - this._input = input; - this._inputLowerCase = input.toLowerCase(); - this._inputArray = stringToArray(this._inputLowerCase); - this._rows = [ - new Array(input.length + 1).fill(0), - new Array(input.length + 1).fill(0), - new Array(input.length + 1).fill(0), - ]; - } - - measure(option, threshold) { - if (this._input === option) { - return 0; - } - - const optionLowerCase = option.toLowerCase(); // Any case change counts as a single edit - - if (this._inputLowerCase === optionLowerCase) { - return 1; - } - - let a = stringToArray(optionLowerCase); - let b = this._inputArray; - - if (a.length < b.length) { - const tmp = a; - a = b; - b = tmp; - } - - const aLength = a.length; - const bLength = b.length; - - if (aLength - bLength > threshold) { - return undefined; - } - - const rows = this._rows; - - for (let j = 0; j <= bLength; j++) { - rows[0][j] = j; - } - - for (let i = 1; i <= aLength; i++) { - const upRow = rows[(i - 1) % 3]; - const currentRow = rows[i % 3]; - let smallestCell = (currentRow[0] = i); - - for (let j = 1; j <= bLength; j++) { - const cost = a[i - 1] === b[j - 1] ? 0 : 1; - let currentCell = Math.min( - upRow[j] + 1, // delete - currentRow[j - 1] + 1, // insert - upRow[j - 1] + cost, // substitute - ); - - if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) { - // transposition - const doubleDiagonalCell = rows[(i - 2) % 3][j - 2]; - currentCell = Math.min(currentCell, doubleDiagonalCell + 1); - } - - if (currentCell < smallestCell) { - smallestCell = currentCell; - } - - currentRow[j] = currentCell; - } // Early exit, since distance can't go smaller than smallest element of the previous row. - - if (smallestCell > threshold) { - return undefined; - } - } - - const distance = rows[aLength % 3][bLength]; - return distance <= threshold ? distance : undefined; - } -} - -function stringToArray(str) { - const strLength = str.length; - const array = new Array(strLength); - - for (let i = 0; i < strLength; ++i) { - array[i] = str.charCodeAt(i); - } - - return array; -} - - -/***/ }), - -/***/ 1609: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.toError = toError; - -var _inspect = __nccwpck_require__(3707); - -/** - * Sometimes a non-error is thrown, wrap it as an Error instance to ensure a consistent Error interface. - */ -function toError(thrownValue) { - return thrownValue instanceof Error - ? thrownValue - : new NonErrorThrown(thrownValue); -} - -class NonErrorThrown extends Error { - constructor(thrownValue) { - super('Unexpected error value: ' + (0, _inspect.inspect)(thrownValue)); - this.name = 'NonErrorThrown'; - this.thrownValue = thrownValue; - } -} - - -/***/ }), - -/***/ 1594: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.toObjMap = toObjMap; - -function toObjMap(obj) { - if (obj == null) { - return Object.create(null); - } - - if (Object.getPrototypeOf(obj) === null) { - return obj; - } - - const map = Object.create(null); - - for (const [key, value] of Object.entries(obj)) { - map[key] = value; - } - - return map; -} - - -/***/ }), - -/***/ 906: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.Token = - exports.QueryDocumentKeys = - exports.OperationTypeNode = - exports.Location = - void 0; -exports.isNode = isNode; - -/** - * Contains a range of UTF-8 character offsets and token references that - * identify the region of the source from which the AST derived. - */ -class Location { - /** - * The character offset at which this Node begins. - */ - - /** - * The character offset at which this Node ends. - */ - - /** - * The Token at which this Node begins. - */ - - /** - * The Token at which this Node ends. - */ - - /** - * The Source document the AST represents. - */ - constructor(startToken, endToken, source) { - this.start = startToken.start; - this.end = endToken.end; - this.startToken = startToken; - this.endToken = endToken; - this.source = source; - } - - get [Symbol.toStringTag]() { - return 'Location'; - } - - toJSON() { - return { - start: this.start, - end: this.end, - }; - } -} -/** - * Represents a range of characters represented by a lexical token - * within a Source. - */ - -exports.Location = Location; - -class Token { - /** - * The kind of Token. - */ - - /** - * The character offset at which this Node begins. - */ - - /** - * The character offset at which this Node ends. - */ - - /** - * The 1-indexed line number on which this Token appears. - */ - - /** - * The 1-indexed column number at which this Token begins. - */ - - /** - * For non-punctuation tokens, represents the interpreted value of the token. - * - * Note: is undefined for punctuation tokens, but typed as string for - * convenience in the parser. - */ - - /** - * Tokens exist as nodes in a double-linked-list amongst all tokens - * including ignored tokens. is always the first node and - * the last. - */ - constructor(kind, start, end, line, column, value) { - this.kind = kind; - this.start = start; - this.end = end; - this.line = line; - this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - - this.value = value; - this.prev = null; - this.next = null; - } - - get [Symbol.toStringTag]() { - return 'Token'; - } - - toJSON() { - return { - kind: this.kind, - value: this.value, - line: this.line, - column: this.column, - }; - } -} -/** - * The list of all possible AST node types. - */ - -exports.Token = Token; - -/** - * @internal - */ -const QueryDocumentKeys = { - Name: [], - Document: ['definitions'], - OperationDefinition: [ - 'name', - 'variableDefinitions', - 'directives', - 'selectionSet', - ], - VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'], - Variable: ['name'], - SelectionSet: ['selections'], - Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'], - Argument: ['name', 'value'], - FragmentSpread: ['name', 'directives'], - InlineFragment: ['typeCondition', 'directives', 'selectionSet'], - FragmentDefinition: [ - 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0 - 'variableDefinitions', - 'typeCondition', - 'directives', - 'selectionSet', - ], - IntValue: [], - FloatValue: [], - StringValue: [], - BooleanValue: [], - NullValue: [], - EnumValue: [], - ListValue: ['values'], - ObjectValue: ['fields'], - ObjectField: ['name', 'value'], - Directive: ['name', 'arguments'], - NamedType: ['name'], - ListType: ['type'], - NonNullType: ['type'], - SchemaDefinition: ['description', 'directives', 'operationTypes'], - OperationTypeDefinition: ['type'], - ScalarTypeDefinition: ['description', 'name', 'directives'], - ObjectTypeDefinition: [ - 'description', - 'name', - 'interfaces', - 'directives', - 'fields', - ], - FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'], - InputValueDefinition: [ - 'description', - 'name', - 'type', - 'defaultValue', - 'directives', - ], - InterfaceTypeDefinition: [ - 'description', - 'name', - 'interfaces', - 'directives', - 'fields', - ], - UnionTypeDefinition: ['description', 'name', 'directives', 'types'], - EnumTypeDefinition: ['description', 'name', 'directives', 'values'], - EnumValueDefinition: ['description', 'name', 'directives'], - InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'], - DirectiveDefinition: ['description', 'name', 'arguments', 'locations'], - SchemaExtension: ['directives', 'operationTypes'], - ScalarTypeExtension: ['name', 'directives'], - ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'], - InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'], - UnionTypeExtension: ['name', 'directives', 'types'], - EnumTypeExtension: ['name', 'directives', 'values'], - InputObjectTypeExtension: ['name', 'directives', 'fields'], -}; -exports.QueryDocumentKeys = QueryDocumentKeys; -const kindValues = new Set(Object.keys(QueryDocumentKeys)); -/** - * @internal - */ - -function isNode(maybeNode) { - const maybeKind = - maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind; - return typeof maybeKind === 'string' && kindValues.has(maybeKind); -} -/** Name */ - -var OperationTypeNode; -exports.OperationTypeNode = OperationTypeNode; - -(function (OperationTypeNode) { - OperationTypeNode['QUERY'] = 'query'; - OperationTypeNode['MUTATION'] = 'mutation'; - OperationTypeNode['SUBSCRIPTION'] = 'subscription'; -})(OperationTypeNode || (exports.OperationTypeNode = OperationTypeNode = {})); - - -/***/ }), - -/***/ 510: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.dedentBlockStringLines = dedentBlockStringLines; -exports.isPrintableAsBlockString = isPrintableAsBlockString; -exports.printBlockString = printBlockString; - -var _characterClasses = __nccwpck_require__(4709); - -/** - * Produces the value of a block string from its parsed raw value, similar to - * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc. - * - * This implements the GraphQL spec's BlockStringValue() static algorithm. - * - * @internal - */ -function dedentBlockStringLines(lines) { - var _firstNonEmptyLine2; - - let commonIndent = Number.MAX_SAFE_INTEGER; - let firstNonEmptyLine = null; - let lastNonEmptyLine = -1; - - for (let i = 0; i < lines.length; ++i) { - var _firstNonEmptyLine; - - const line = lines[i]; - const indent = leadingWhitespace(line); - - if (indent === line.length) { - continue; // skip empty lines - } - - firstNonEmptyLine = - (_firstNonEmptyLine = firstNonEmptyLine) !== null && - _firstNonEmptyLine !== void 0 - ? _firstNonEmptyLine - : i; - lastNonEmptyLine = i; - - if (i !== 0 && indent < commonIndent) { - commonIndent = indent; - } - } - - return lines // Remove common indentation from all lines but first. - .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines. - .slice( - (_firstNonEmptyLine2 = firstNonEmptyLine) !== null && - _firstNonEmptyLine2 !== void 0 - ? _firstNonEmptyLine2 - : 0, - lastNonEmptyLine + 1, - ); -} - -function leadingWhitespace(str) { - let i = 0; - - while ( - i < str.length && - (0, _characterClasses.isWhiteSpace)(str.charCodeAt(i)) - ) { - ++i; - } - - return i; -} -/** - * @internal - */ - -function isPrintableAsBlockString(value) { - if (value === '') { - return true; // empty string is printable - } - - let isEmptyLine = true; - let hasIndent = false; - let hasCommonIndent = true; - let seenNonEmptyLine = false; - - for (let i = 0; i < value.length; ++i) { - switch (value.codePointAt(i)) { - case 0x0000: - case 0x0001: - case 0x0002: - case 0x0003: - case 0x0004: - case 0x0005: - case 0x0006: - case 0x0007: - case 0x0008: - case 0x000b: - case 0x000c: - case 0x000e: - case 0x000f: - return false; - // Has non-printable characters - - case 0x000d: - // \r - return false; - // Has \r or \r\n which will be replaced as \n - - case 10: - // \n - if (isEmptyLine && !seenNonEmptyLine) { - return false; // Has leading new line - } - - seenNonEmptyLine = true; - isEmptyLine = true; - hasIndent = false; - break; - - case 9: // \t - - case 32: - // - hasIndent || (hasIndent = isEmptyLine); - break; - - default: - hasCommonIndent && (hasCommonIndent = hasIndent); - isEmptyLine = false; - } - } - - if (isEmptyLine) { - return false; // Has trailing empty lines - } - - if (hasCommonIndent && seenNonEmptyLine) { - return false; // Has internal indent - } - - return true; -} -/** - * Print a block string in the indented block form by adding a leading and - * trailing blank line. However, if a block string starts with whitespace and is - * a single-line, adding a leading blank line would strip that whitespace. - * - * @internal - */ - -function printBlockString(value, options) { - const escapedValue = value.replace(/"""/g, '\\"""'); // Expand a block string's raw value into independent lines. - - const lines = escapedValue.split(/\r\n|[\n\r]/g); - const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line - - const forceLeadingNewLine = - lines.length > 1 && - lines - .slice(1) - .every( - (line) => - line.length === 0 || - (0, _characterClasses.isWhiteSpace)(line.charCodeAt(0)), - ); // Trailing triple quotes just looks confusing but doesn't force trailing new line - - const hasTrailingTripleQuotes = escapedValue.endsWith('\\"""'); // Trailing quote (single or double) or slash forces trailing new line - - const hasTrailingQuote = value.endsWith('"') && !hasTrailingTripleQuotes; - const hasTrailingSlash = value.endsWith('\\'); - const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash; - const printAsMultipleLines = - !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability - (!isSingleLine || - value.length > 70 || - forceTrailingNewline || - forceLeadingNewLine || - hasTrailingTripleQuotes); - let result = ''; // Format a multi-line block quote to account for leading space. - - const skipLeadingNewLine = - isSingleLine && (0, _characterClasses.isWhiteSpace)(value.charCodeAt(0)); - - if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) { - result += '\n'; - } - - result += escapedValue; - - if (printAsMultipleLines || forceTrailingNewline) { - result += '\n'; - } - - return '"""' + result + '"""'; -} - - -/***/ }), - -/***/ 4709: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.isDigit = isDigit; -exports.isLetter = isLetter; -exports.isNameContinue = isNameContinue; -exports.isNameStart = isNameStart; -exports.isWhiteSpace = isWhiteSpace; - -/** - * ``` - * WhiteSpace :: - * - "Horizontal Tab (U+0009)" - * - "Space (U+0020)" - * ``` - * @internal - */ -function isWhiteSpace(code) { - return code === 0x0009 || code === 0x0020; -} -/** - * ``` - * Digit :: one of - * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9` - * ``` - * @internal - */ - -function isDigit(code) { - return code >= 0x0030 && code <= 0x0039; -} -/** - * ``` - * Letter :: one of - * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M` - * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z` - * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m` - * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z` - * ``` - * @internal - */ - -function isLetter(code) { - return ( - (code >= 0x0061 && code <= 0x007a) || // A-Z - (code >= 0x0041 && code <= 0x005a) // a-z - ); -} -/** - * ``` - * NameStart :: - * - Letter - * - `_` - * ``` - * @internal - */ - -function isNameStart(code) { - return isLetter(code) || code === 0x005f; -} -/** - * ``` - * NameContinue :: - * - Letter - * - Digit - * - `_` - * ``` - * @internal - */ - -function isNameContinue(code) { - return isLetter(code) || isDigit(code) || code === 0x005f; -} - - -/***/ }), - -/***/ 3180: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.DirectiveLocation = void 0; - -/** - * The set of allowed directive location values. - */ -var DirectiveLocation; -exports.DirectiveLocation = DirectiveLocation; - -(function (DirectiveLocation) { - DirectiveLocation['QUERY'] = 'QUERY'; - DirectiveLocation['MUTATION'] = 'MUTATION'; - DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION'; - DirectiveLocation['FIELD'] = 'FIELD'; - DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION'; - DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD'; - DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT'; - DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION'; - DirectiveLocation['SCHEMA'] = 'SCHEMA'; - DirectiveLocation['SCALAR'] = 'SCALAR'; - DirectiveLocation['OBJECT'] = 'OBJECT'; - DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION'; - DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION'; - DirectiveLocation['INTERFACE'] = 'INTERFACE'; - DirectiveLocation['UNION'] = 'UNION'; - DirectiveLocation['ENUM'] = 'ENUM'; - DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE'; - DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT'; - DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION'; -})(DirectiveLocation || (exports.DirectiveLocation = DirectiveLocation = {})); -/** - * The enum type representing the directive location values. - * - * @deprecated Please use `DirectiveLocation`. Will be remove in v17. - */ - - -/***/ }), - -/***/ 3506: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -Object.defineProperty(exports, "BREAK", ({ - enumerable: true, - get: function () { - return _visitor.BREAK; - }, -})); -Object.defineProperty(exports, "DirectiveLocation", ({ - enumerable: true, - get: function () { - return _directiveLocation.DirectiveLocation; - }, -})); -Object.defineProperty(exports, "Kind", ({ - enumerable: true, - get: function () { - return _kinds.Kind; - }, -})); -Object.defineProperty(exports, "Lexer", ({ - enumerable: true, - get: function () { - return _lexer.Lexer; - }, -})); -Object.defineProperty(exports, "Location", ({ - enumerable: true, - get: function () { - return _ast.Location; - }, -})); -Object.defineProperty(exports, "OperationTypeNode", ({ - enumerable: true, - get: function () { - return _ast.OperationTypeNode; - }, -})); -Object.defineProperty(exports, "Source", ({ - enumerable: true, - get: function () { - return _source.Source; - }, -})); -Object.defineProperty(exports, "Token", ({ - enumerable: true, - get: function () { - return _ast.Token; - }, -})); -Object.defineProperty(exports, "TokenKind", ({ - enumerable: true, - get: function () { - return _tokenKind.TokenKind; - }, -})); -Object.defineProperty(exports, "getEnterLeaveForKind", ({ - enumerable: true, - get: function () { - return _visitor.getEnterLeaveForKind; - }, -})); -Object.defineProperty(exports, "getLocation", ({ - enumerable: true, - get: function () { - return _location.getLocation; - }, -})); -Object.defineProperty(exports, "getVisitFn", ({ - enumerable: true, - get: function () { - return _visitor.getVisitFn; - }, -})); -Object.defineProperty(exports, "isConstValueNode", ({ - enumerable: true, - get: function () { - return _predicates.isConstValueNode; - }, -})); -Object.defineProperty(exports, "isDefinitionNode", ({ - enumerable: true, - get: function () { - return _predicates.isDefinitionNode; - }, -})); -Object.defineProperty(exports, "isExecutableDefinitionNode", ({ - enumerable: true, - get: function () { - return _predicates.isExecutableDefinitionNode; - }, -})); -Object.defineProperty(exports, "isSelectionNode", ({ - enumerable: true, - get: function () { - return _predicates.isSelectionNode; - }, -})); -Object.defineProperty(exports, "isTypeDefinitionNode", ({ - enumerable: true, - get: function () { - return _predicates.isTypeDefinitionNode; - }, -})); -Object.defineProperty(exports, "isTypeExtensionNode", ({ - enumerable: true, - get: function () { - return _predicates.isTypeExtensionNode; - }, -})); -Object.defineProperty(exports, "isTypeNode", ({ - enumerable: true, - get: function () { - return _predicates.isTypeNode; - }, -})); -Object.defineProperty(exports, "isTypeSystemDefinitionNode", ({ - enumerable: true, - get: function () { - return _predicates.isTypeSystemDefinitionNode; - }, -})); -Object.defineProperty(exports, "isTypeSystemExtensionNode", ({ - enumerable: true, - get: function () { - return _predicates.isTypeSystemExtensionNode; - }, -})); -Object.defineProperty(exports, "isValueNode", ({ - enumerable: true, - get: function () { - return _predicates.isValueNode; - }, -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parser.parse; - }, -})); -Object.defineProperty(exports, "parseConstValue", ({ - enumerable: true, - get: function () { - return _parser.parseConstValue; - }, -})); -Object.defineProperty(exports, "parseType", ({ - enumerable: true, - get: function () { - return _parser.parseType; - }, -})); -Object.defineProperty(exports, "parseValue", ({ - enumerable: true, - get: function () { - return _parser.parseValue; - }, -})); -Object.defineProperty(exports, "print", ({ - enumerable: true, - get: function () { - return _printer.print; - }, -})); -Object.defineProperty(exports, "printLocation", ({ - enumerable: true, - get: function () { - return _printLocation.printLocation; - }, -})); -Object.defineProperty(exports, "printSourceLocation", ({ - enumerable: true, - get: function () { - return _printLocation.printSourceLocation; - }, -})); -Object.defineProperty(exports, "visit", ({ - enumerable: true, - get: function () { - return _visitor.visit; - }, -})); -Object.defineProperty(exports, "visitInParallel", ({ - enumerable: true, - get: function () { - return _visitor.visitInParallel; - }, -})); - -var _source = __nccwpck_require__(4934); - -var _location = __nccwpck_require__(1955); - -var _printLocation = __nccwpck_require__(7098); - -var _kinds = __nccwpck_require__(2881); - -var _tokenKind = __nccwpck_require__(9229); - -var _lexer = __nccwpck_require__(3604); - -var _parser = __nccwpck_require__(8443); - -var _printer = __nccwpck_require__(4758); - -var _visitor = __nccwpck_require__(7848); - -var _ast = __nccwpck_require__(906); - -var _predicates = __nccwpck_require__(418); - -var _directiveLocation = __nccwpck_require__(3180); - - -/***/ }), - -/***/ 2881: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.Kind = void 0; - -/** - * The set of allowed kind values for AST nodes. - */ -var Kind; -exports.Kind = Kind; - -(function (Kind) { - Kind['NAME'] = 'Name'; - Kind['DOCUMENT'] = 'Document'; - Kind['OPERATION_DEFINITION'] = 'OperationDefinition'; - Kind['VARIABLE_DEFINITION'] = 'VariableDefinition'; - Kind['SELECTION_SET'] = 'SelectionSet'; - Kind['FIELD'] = 'Field'; - Kind['ARGUMENT'] = 'Argument'; - Kind['FRAGMENT_SPREAD'] = 'FragmentSpread'; - Kind['INLINE_FRAGMENT'] = 'InlineFragment'; - Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition'; - Kind['VARIABLE'] = 'Variable'; - Kind['INT'] = 'IntValue'; - Kind['FLOAT'] = 'FloatValue'; - Kind['STRING'] = 'StringValue'; - Kind['BOOLEAN'] = 'BooleanValue'; - Kind['NULL'] = 'NullValue'; - Kind['ENUM'] = 'EnumValue'; - Kind['LIST'] = 'ListValue'; - Kind['OBJECT'] = 'ObjectValue'; - Kind['OBJECT_FIELD'] = 'ObjectField'; - Kind['DIRECTIVE'] = 'Directive'; - Kind['NAMED_TYPE'] = 'NamedType'; - Kind['LIST_TYPE'] = 'ListType'; - Kind['NON_NULL_TYPE'] = 'NonNullType'; - Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition'; - Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition'; - Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition'; - Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition'; - Kind['FIELD_DEFINITION'] = 'FieldDefinition'; - Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition'; - Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition'; - Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition'; - Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition'; - Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition'; - Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition'; - Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition'; - Kind['SCHEMA_EXTENSION'] = 'SchemaExtension'; - Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension'; - Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension'; - Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension'; - Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension'; - Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension'; - Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension'; -})(Kind || (exports.Kind = Kind = {})); -/** - * The enum type representing the possible kind values of AST nodes. - * - * @deprecated Please use `Kind`. Will be remove in v17. - */ - - -/***/ }), - -/***/ 3604: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.Lexer = void 0; -exports.isPunctuatorTokenKind = isPunctuatorTokenKind; - -var _syntaxError = __nccwpck_require__(4141); - -var _ast = __nccwpck_require__(906); - -var _blockString = __nccwpck_require__(510); - -var _characterClasses = __nccwpck_require__(4709); - -var _tokenKind = __nccwpck_require__(9229); - -/** - * Given a Source object, creates a Lexer for that source. - * A Lexer is a stateful stream generator in that every time - * it is advanced, it returns the next token in the Source. Assuming the - * source lexes, the final Token emitted by the lexer will be of kind - * EOF, after which the lexer will repeatedly return the same EOF token - * whenever called. - */ -class Lexer { - /** - * The previously focused non-ignored token. - */ - - /** - * The currently focused non-ignored token. - */ - - /** - * The (1-indexed) line containing the current token. - */ - - /** - * The character offset at which the current line begins. - */ - constructor(source) { - const startOfFileToken = new _ast.Token( - _tokenKind.TokenKind.SOF, - 0, - 0, - 0, - 0, - ); - this.source = source; - this.lastToken = startOfFileToken; - this.token = startOfFileToken; - this.line = 1; - this.lineStart = 0; - } - - get [Symbol.toStringTag]() { - return 'Lexer'; - } - /** - * Advances the token stream to the next non-ignored token. - */ - - advance() { - this.lastToken = this.token; - const token = (this.token = this.lookahead()); - return token; - } - /** - * Looks ahead and returns the next non-ignored token, but does not change - * the state of Lexer. - */ - - lookahead() { - let token = this.token; - - if (token.kind !== _tokenKind.TokenKind.EOF) { - do { - if (token.next) { - token = token.next; - } else { - // Read the next token and form a link in the token linked-list. - const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing. - - token.next = nextToken; // @ts-expect-error prev is only mutable during parsing. - - nextToken.prev = token; - token = nextToken; - } - } while (token.kind === _tokenKind.TokenKind.COMMENT); - } - - return token; - } -} -/** - * @internal - */ - -exports.Lexer = Lexer; - -function isPunctuatorTokenKind(kind) { - return ( - kind === _tokenKind.TokenKind.BANG || - kind === _tokenKind.TokenKind.DOLLAR || - kind === _tokenKind.TokenKind.AMP || - kind === _tokenKind.TokenKind.PAREN_L || - kind === _tokenKind.TokenKind.PAREN_R || - kind === _tokenKind.TokenKind.SPREAD || - kind === _tokenKind.TokenKind.COLON || - kind === _tokenKind.TokenKind.EQUALS || - kind === _tokenKind.TokenKind.AT || - kind === _tokenKind.TokenKind.BRACKET_L || - kind === _tokenKind.TokenKind.BRACKET_R || - kind === _tokenKind.TokenKind.BRACE_L || - kind === _tokenKind.TokenKind.PIPE || - kind === _tokenKind.TokenKind.BRACE_R - ); -} -/** - * A Unicode scalar value is any Unicode code point except surrogate code - * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and - * 0xE000 to 0x10FFFF. - * - * SourceCharacter :: - * - "Any Unicode scalar value" - */ - -function isUnicodeScalarValue(code) { - return ( - (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff) - ); -} -/** - * The GraphQL specification defines source text as a sequence of unicode scalar - * values (which Unicode defines to exclude surrogate code points). However - * JavaScript defines strings as a sequence of UTF-16 code units which may - * include surrogates. A surrogate pair is a valid source character as it - * encodes a supplementary code point (above U+FFFF), but unpaired surrogate - * code points are not valid source characters. - */ - -function isSupplementaryCodePoint(body, location) { - return ( - isLeadingSurrogate(body.charCodeAt(location)) && - isTrailingSurrogate(body.charCodeAt(location + 1)) - ); -} - -function isLeadingSurrogate(code) { - return code >= 0xd800 && code <= 0xdbff; -} - -function isTrailingSurrogate(code) { - return code >= 0xdc00 && code <= 0xdfff; -} -/** - * Prints the code point (or end of file reference) at a given location in a - * source for use in error messages. - * - * Printable ASCII is printed quoted, while other points are printed in Unicode - * code point form (ie. U+1234). - */ - -function printCodePointAt(lexer, location) { - const code = lexer.source.body.codePointAt(location); - - if (code === undefined) { - return _tokenKind.TokenKind.EOF; - } else if (code >= 0x0020 && code <= 0x007e) { - // Printable ASCII - const char = String.fromCodePoint(code); - return char === '"' ? "'\"'" : `"${char}"`; - } // Unicode code point - - return 'U+' + code.toString(16).toUpperCase().padStart(4, '0'); -} -/** - * Create a token with line and column location information. - */ - -function createToken(lexer, kind, start, end, value) { - const line = lexer.line; - const col = 1 + start - lexer.lineStart; - return new _ast.Token(kind, start, end, line, col, value); -} -/** - * Gets the next token from the source starting at the given position. - * - * This skips over whitespace until it finds the next lexable token, then lexes - * punctuators immediately or calls the appropriate helper function for more - * complicated tokens. - */ - -function readNextToken(lexer, start) { - const body = lexer.source.body; - const bodyLength = body.length; - let position = start; - - while (position < bodyLength) { - const code = body.charCodeAt(position); // SourceCharacter - - switch (code) { - // Ignored :: - // - UnicodeBOM - // - WhiteSpace - // - LineTerminator - // - Comment - // - Comma - // - // UnicodeBOM :: "Byte Order Mark (U+FEFF)" - // - // WhiteSpace :: - // - "Horizontal Tab (U+0009)" - // - "Space (U+0020)" - // - // Comma :: , - case 0xfeff: // - - case 0x0009: // \t - - case 0x0020: // - - case 0x002c: - // , - ++position; - continue; - // LineTerminator :: - // - "New Line (U+000A)" - // - "Carriage Return (U+000D)" [lookahead != "New Line (U+000A)"] - // - "Carriage Return (U+000D)" "New Line (U+000A)" - - case 0x000a: - // \n - ++position; - ++lexer.line; - lexer.lineStart = position; - continue; - - case 0x000d: - // \r - if (body.charCodeAt(position + 1) === 0x000a) { - position += 2; - } else { - ++position; - } - - ++lexer.line; - lexer.lineStart = position; - continue; - // Comment - - case 0x0023: - // # - return readComment(lexer, position); - // Token :: - // - Punctuator - // - Name - // - IntValue - // - FloatValue - // - StringValue - // - // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | } - - case 0x0021: - // ! - return createToken( - lexer, - _tokenKind.TokenKind.BANG, - position, - position + 1, - ); - - case 0x0024: - // $ - return createToken( - lexer, - _tokenKind.TokenKind.DOLLAR, - position, - position + 1, - ); - - case 0x0026: - // & - return createToken( - lexer, - _tokenKind.TokenKind.AMP, - position, - position + 1, - ); - - case 0x0028: - // ( - return createToken( - lexer, - _tokenKind.TokenKind.PAREN_L, - position, - position + 1, - ); - - case 0x0029: - // ) - return createToken( - lexer, - _tokenKind.TokenKind.PAREN_R, - position, - position + 1, - ); - - case 0x002e: - // . - if ( - body.charCodeAt(position + 1) === 0x002e && - body.charCodeAt(position + 2) === 0x002e - ) { - return createToken( - lexer, - _tokenKind.TokenKind.SPREAD, - position, - position + 3, - ); - } - - break; - - case 0x003a: - // : - return createToken( - lexer, - _tokenKind.TokenKind.COLON, - position, - position + 1, - ); - - case 0x003d: - // = - return createToken( - lexer, - _tokenKind.TokenKind.EQUALS, - position, - position + 1, - ); - - case 0x0040: - // @ - return createToken( - lexer, - _tokenKind.TokenKind.AT, - position, - position + 1, - ); - - case 0x005b: - // [ - return createToken( - lexer, - _tokenKind.TokenKind.BRACKET_L, - position, - position + 1, - ); - - case 0x005d: - // ] - return createToken( - lexer, - _tokenKind.TokenKind.BRACKET_R, - position, - position + 1, - ); - - case 0x007b: - // { - return createToken( - lexer, - _tokenKind.TokenKind.BRACE_L, - position, - position + 1, - ); - - case 0x007c: - // | - return createToken( - lexer, - _tokenKind.TokenKind.PIPE, - position, - position + 1, - ); - - case 0x007d: - // } - return createToken( - lexer, - _tokenKind.TokenKind.BRACE_R, - position, - position + 1, - ); - // StringValue - - case 0x0022: - // " - if ( - body.charCodeAt(position + 1) === 0x0022 && - body.charCodeAt(position + 2) === 0x0022 - ) { - return readBlockString(lexer, position); - } - - return readString(lexer, position); - } // IntValue | FloatValue (Digit | -) - - if ((0, _characterClasses.isDigit)(code) || code === 0x002d) { - return readNumber(lexer, position, code); - } // Name - - if ((0, _characterClasses.isNameStart)(code)) { - return readName(lexer, position); - } - - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - code === 0x0027 - ? 'Unexpected single quote character (\'), did you mean to use a double quote (")?' - : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position) - ? `Unexpected character: ${printCodePointAt(lexer, position)}.` - : `Invalid character: ${printCodePointAt(lexer, position)}.`, - ); - } - - return createToken(lexer, _tokenKind.TokenKind.EOF, bodyLength, bodyLength); -} -/** - * Reads a comment token from the source file. - * - * ``` - * Comment :: # CommentChar* [lookahead != CommentChar] - * - * CommentChar :: SourceCharacter but not LineTerminator - * ``` - */ - -function readComment(lexer, start) { - const body = lexer.source.body; - const bodyLength = body.length; - let position = start + 1; - - while (position < bodyLength) { - const code = body.charCodeAt(position); // LineTerminator (\n | \r) - - if (code === 0x000a || code === 0x000d) { - break; - } // SourceCharacter - - if (isUnicodeScalarValue(code)) { - ++position; - } else if (isSupplementaryCodePoint(body, position)) { - position += 2; - } else { - break; - } - } - - return createToken( - lexer, - _tokenKind.TokenKind.COMMENT, - start, - position, - body.slice(start + 1, position), - ); -} -/** - * Reads a number token from the source file, either a FloatValue or an IntValue - * depending on whether a FractionalPart or ExponentPart is encountered. - * - * ``` - * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}] - * - * IntegerPart :: - * - NegativeSign? 0 - * - NegativeSign? NonZeroDigit Digit* - * - * NegativeSign :: - - * - * NonZeroDigit :: Digit but not `0` - * - * FloatValue :: - * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}] - * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}] - * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}] - * - * FractionalPart :: . Digit+ - * - * ExponentPart :: ExponentIndicator Sign? Digit+ - * - * ExponentIndicator :: one of `e` `E` - * - * Sign :: one of + - - * ``` - */ - -function readNumber(lexer, start, firstCode) { - const body = lexer.source.body; - let position = start; - let code = firstCode; - let isFloat = false; // NegativeSign (-) - - if (code === 0x002d) { - code = body.charCodeAt(++position); - } // Zero (0) - - if (code === 0x0030) { - code = body.charCodeAt(++position); - - if ((0, _characterClasses.isDigit)(code)) { - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - `Invalid number, unexpected digit after 0: ${printCodePointAt( - lexer, - position, - )}.`, - ); - } - } else { - position = readDigits(lexer, position, code); - code = body.charCodeAt(position); - } // Full stop (.) - - if (code === 0x002e) { - isFloat = true; - code = body.charCodeAt(++position); - position = readDigits(lexer, position, code); - code = body.charCodeAt(position); - } // E e - - if (code === 0x0045 || code === 0x0065) { - isFloat = true; - code = body.charCodeAt(++position); // + - - - if (code === 0x002b || code === 0x002d) { - code = body.charCodeAt(++position); - } - - position = readDigits(lexer, position, code); - code = body.charCodeAt(position); - } // Numbers cannot be followed by . or NameStart - - if (code === 0x002e || (0, _characterClasses.isNameStart)(code)) { - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - `Invalid number, expected digit but got: ${printCodePointAt( - lexer, - position, - )}.`, - ); - } - - return createToken( - lexer, - isFloat ? _tokenKind.TokenKind.FLOAT : _tokenKind.TokenKind.INT, - start, - position, - body.slice(start, position), - ); -} -/** - * Returns the new position in the source after reading one or more digits. - */ - -function readDigits(lexer, start, firstCode) { - if (!(0, _characterClasses.isDigit)(firstCode)) { - throw (0, _syntaxError.syntaxError)( - lexer.source, - start, - `Invalid number, expected digit but got: ${printCodePointAt( - lexer, - start, - )}.`, - ); - } - - const body = lexer.source.body; - let position = start + 1; // +1 to skip first firstCode - - while ((0, _characterClasses.isDigit)(body.charCodeAt(position))) { - ++position; - } - - return position; -} -/** - * Reads a single-quote string token from the source file. - * - * ``` - * StringValue :: - * - `""` [lookahead != `"`] - * - `"` StringCharacter+ `"` - * - * StringCharacter :: - * - SourceCharacter but not `"` or `\` or LineTerminator - * - `\u` EscapedUnicode - * - `\` EscapedCharacter - * - * EscapedUnicode :: - * - `{` HexDigit+ `}` - * - HexDigit HexDigit HexDigit HexDigit - * - * EscapedCharacter :: one of `"` `\` `/` `b` `f` `n` `r` `t` - * ``` - */ - -function readString(lexer, start) { - const body = lexer.source.body; - const bodyLength = body.length; - let position = start + 1; - let chunkStart = position; - let value = ''; - - while (position < bodyLength) { - const code = body.charCodeAt(position); // Closing Quote (") - - if (code === 0x0022) { - value += body.slice(chunkStart, position); - return createToken( - lexer, - _tokenKind.TokenKind.STRING, - start, - position + 1, - value, - ); - } // Escape Sequence (\) - - if (code === 0x005c) { - value += body.slice(chunkStart, position); - const escape = - body.charCodeAt(position + 1) === 0x0075 // u - ? body.charCodeAt(position + 2) === 0x007b // { - ? readEscapedUnicodeVariableWidth(lexer, position) - : readEscapedUnicodeFixedWidth(lexer, position) - : readEscapedCharacter(lexer, position); - value += escape.value; - position += escape.size; - chunkStart = position; - continue; - } // LineTerminator (\n | \r) - - if (code === 0x000a || code === 0x000d) { - break; - } // SourceCharacter - - if (isUnicodeScalarValue(code)) { - ++position; - } else if (isSupplementaryCodePoint(body, position)) { - position += 2; - } else { - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - `Invalid character within String: ${printCodePointAt( - lexer, - position, - )}.`, - ); - } - } - - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - 'Unterminated string.', - ); -} // The string value and lexed size of an escape sequence. - -function readEscapedUnicodeVariableWidth(lexer, position) { - const body = lexer.source.body; - let point = 0; - let size = 3; // Cannot be larger than 12 chars (\u{00000000}). - - while (size < 12) { - const code = body.charCodeAt(position + size++); // Closing Brace (}) - - if (code === 0x007d) { - // Must be at least 5 chars (\u{0}) and encode a Unicode scalar value. - if (size < 5 || !isUnicodeScalarValue(point)) { - break; - } - - return { - value: String.fromCodePoint(point), - size, - }; - } // Append this hex digit to the code point. - - point = (point << 4) | readHexDigit(code); - - if (point < 0) { - break; - } - } - - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - `Invalid Unicode escape sequence: "${body.slice( - position, - position + size, - )}".`, - ); -} - -function readEscapedUnicodeFixedWidth(lexer, position) { - const body = lexer.source.body; - const code = read16BitHexCode(body, position + 2); - - if (isUnicodeScalarValue(code)) { - return { - value: String.fromCodePoint(code), - size: 6, - }; - } // GraphQL allows JSON-style surrogate pair escape sequences, but only when - // a valid pair is formed. - - if (isLeadingSurrogate(code)) { - // \u - if ( - body.charCodeAt(position + 6) === 0x005c && - body.charCodeAt(position + 7) === 0x0075 - ) { - const trailingCode = read16BitHexCode(body, position + 8); - - if (isTrailingSurrogate(trailingCode)) { - // JavaScript defines strings as a sequence of UTF-16 code units and - // encodes Unicode code points above U+FFFF using a surrogate pair of - // code units. Since this is a surrogate pair escape sequence, just - // include both codes into the JavaScript string value. Had JavaScript - // not been internally based on UTF-16, then this surrogate pair would - // be decoded to retrieve the supplementary code point. - return { - value: String.fromCodePoint(code, trailingCode), - size: 12, - }; - } - } - } - - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - `Invalid Unicode escape sequence: "${body.slice(position, position + 6)}".`, - ); -} -/** - * Reads four hexadecimal characters and returns the positive integer that 16bit - * hexadecimal string represents. For example, "000f" will return 15, and "dead" - * will return 57005. - * - * Returns a negative number if any char was not a valid hexadecimal digit. - */ - -function read16BitHexCode(body, position) { - // readHexDigit() returns -1 on error. ORing a negative value with any other - // value always produces a negative value. - return ( - (readHexDigit(body.charCodeAt(position)) << 12) | - (readHexDigit(body.charCodeAt(position + 1)) << 8) | - (readHexDigit(body.charCodeAt(position + 2)) << 4) | - readHexDigit(body.charCodeAt(position + 3)) - ); -} -/** - * Reads a hexadecimal character and returns its positive integer value (0-15). - * - * '0' becomes 0, '9' becomes 9 - * 'A' becomes 10, 'F' becomes 15 - * 'a' becomes 10, 'f' becomes 15 - * - * Returns -1 if the provided character code was not a valid hexadecimal digit. - * - * HexDigit :: one of - * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9` - * - `A` `B` `C` `D` `E` `F` - * - `a` `b` `c` `d` `e` `f` - */ - -function readHexDigit(code) { - return code >= 0x0030 && code <= 0x0039 // 0-9 - ? code - 0x0030 - : code >= 0x0041 && code <= 0x0046 // A-F - ? code - 0x0037 - : code >= 0x0061 && code <= 0x0066 // a-f - ? code - 0x0057 - : -1; -} -/** - * | Escaped Character | Code Point | Character Name | - * | ----------------- | ---------- | ---------------------------- | - * | `"` | U+0022 | double quote | - * | `\` | U+005C | reverse solidus (back slash) | - * | `/` | U+002F | solidus (forward slash) | - * | `b` | U+0008 | backspace | - * | `f` | U+000C | form feed | - * | `n` | U+000A | line feed (new line) | - * | `r` | U+000D | carriage return | - * | `t` | U+0009 | horizontal tab | - */ - -function readEscapedCharacter(lexer, position) { - const body = lexer.source.body; - const code = body.charCodeAt(position + 1); - - switch (code) { - case 0x0022: - // " - return { - value: '\u0022', - size: 2, - }; - - case 0x005c: - // \ - return { - value: '\u005c', - size: 2, - }; - - case 0x002f: - // / - return { - value: '\u002f', - size: 2, - }; - - case 0x0062: - // b - return { - value: '\u0008', - size: 2, - }; - - case 0x0066: - // f - return { - value: '\u000c', - size: 2, - }; - - case 0x006e: - // n - return { - value: '\u000a', - size: 2, - }; - - case 0x0072: - // r - return { - value: '\u000d', - size: 2, - }; - - case 0x0074: - // t - return { - value: '\u0009', - size: 2, - }; - } - - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - `Invalid character escape sequence: "${body.slice( - position, - position + 2, - )}".`, - ); -} -/** - * Reads a block string token from the source file. - * - * ``` - * StringValue :: - * - `"""` BlockStringCharacter* `"""` - * - * BlockStringCharacter :: - * - SourceCharacter but not `"""` or `\"""` - * - `\"""` - * ``` - */ - -function readBlockString(lexer, start) { - const body = lexer.source.body; - const bodyLength = body.length; - let lineStart = lexer.lineStart; - let position = start + 3; - let chunkStart = position; - let currentLine = ''; - const blockLines = []; - - while (position < bodyLength) { - const code = body.charCodeAt(position); // Closing Triple-Quote (""") - - if ( - code === 0x0022 && - body.charCodeAt(position + 1) === 0x0022 && - body.charCodeAt(position + 2) === 0x0022 - ) { - currentLine += body.slice(chunkStart, position); - blockLines.push(currentLine); - const token = createToken( - lexer, - _tokenKind.TokenKind.BLOCK_STRING, - start, - position + 3, // Return a string of the lines joined with U+000A. - (0, _blockString.dedentBlockStringLines)(blockLines).join('\n'), - ); - lexer.line += blockLines.length - 1; - lexer.lineStart = lineStart; - return token; - } // Escaped Triple-Quote (\""") - - if ( - code === 0x005c && - body.charCodeAt(position + 1) === 0x0022 && - body.charCodeAt(position + 2) === 0x0022 && - body.charCodeAt(position + 3) === 0x0022 - ) { - currentLine += body.slice(chunkStart, position); - chunkStart = position + 1; // skip only slash - - position += 4; - continue; - } // LineTerminator - - if (code === 0x000a || code === 0x000d) { - currentLine += body.slice(chunkStart, position); - blockLines.push(currentLine); - - if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) { - position += 2; - } else { - ++position; - } - - currentLine = ''; - chunkStart = position; - lineStart = position; - continue; - } // SourceCharacter - - if (isUnicodeScalarValue(code)) { - ++position; - } else if (isSupplementaryCodePoint(body, position)) { - position += 2; - } else { - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - `Invalid character within String: ${printCodePointAt( - lexer, - position, - )}.`, - ); - } - } - - throw (0, _syntaxError.syntaxError)( - lexer.source, - position, - 'Unterminated string.', - ); -} -/** - * Reads an alphanumeric + underscore name from the source. - * - * ``` - * Name :: - * - NameStart NameContinue* [lookahead != NameContinue] - * ``` - */ - -function readName(lexer, start) { - const body = lexer.source.body; - const bodyLength = body.length; - let position = start + 1; - - while (position < bodyLength) { - const code = body.charCodeAt(position); - - if ((0, _characterClasses.isNameContinue)(code)) { - ++position; - } else { - break; - } - } - - return createToken( - lexer, - _tokenKind.TokenKind.NAME, - start, - position, - body.slice(start, position), - ); -} - - -/***/ }), - -/***/ 1955: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.getLocation = getLocation; - -var _invariant = __nccwpck_require__(9952); - -const LineRegExp = /\r\n|[\n\r]/g; -/** - * Represents a location in a Source. - */ - -/** - * Takes a Source and a UTF-8 character offset, and returns the corresponding - * line and column as a SourceLocation. - */ -function getLocation(source, position) { - let lastLineStart = 0; - let line = 1; - - for (const match of source.body.matchAll(LineRegExp)) { - typeof match.index === 'number' || (0, _invariant.invariant)(false); - - if (match.index >= position) { - break; - } - - lastLineStart = match.index + match[0].length; - line += 1; - } - - return { - line, - column: position + 1 - lastLineStart, - }; -} - - -/***/ }), - -/***/ 8443: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.Parser = void 0; -exports.parse = parse; -exports.parseConstValue = parseConstValue; -exports.parseType = parseType; -exports.parseValue = parseValue; - -var _syntaxError = __nccwpck_require__(4141); - -var _ast = __nccwpck_require__(906); - -var _directiveLocation = __nccwpck_require__(3180); - -var _kinds = __nccwpck_require__(2881); - -var _lexer = __nccwpck_require__(3604); - -var _source = __nccwpck_require__(4934); - -var _tokenKind = __nccwpck_require__(9229); - -/** - * Given a GraphQL source, parses it into a Document. - * Throws GraphQLError if a syntax error is encountered. - */ -function parse(source, options) { - const parser = new Parser(source, options); - return parser.parseDocument(); -} -/** - * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for - * that value. - * Throws GraphQLError if a syntax error is encountered. - * - * This is useful within tools that operate upon GraphQL Values directly and - * in isolation of complete GraphQL documents. - * - * Consider providing the results to the utility function: valueFromAST(). - */ - -function parseValue(source, options) { - const parser = new Parser(source, options); - parser.expectToken(_tokenKind.TokenKind.SOF); - const value = parser.parseValueLiteral(false); - parser.expectToken(_tokenKind.TokenKind.EOF); - return value; -} -/** - * Similar to parseValue(), but raises a parse error if it encounters a - * variable. The return type will be a constant value. - */ - -function parseConstValue(source, options) { - const parser = new Parser(source, options); - parser.expectToken(_tokenKind.TokenKind.SOF); - const value = parser.parseConstValueLiteral(); - parser.expectToken(_tokenKind.TokenKind.EOF); - return value; -} -/** - * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for - * that type. - * Throws GraphQLError if a syntax error is encountered. - * - * This is useful within tools that operate upon GraphQL Types directly and - * in isolation of complete GraphQL documents. - * - * Consider providing the results to the utility function: typeFromAST(). - */ - -function parseType(source, options) { - const parser = new Parser(source, options); - parser.expectToken(_tokenKind.TokenKind.SOF); - const type = parser.parseTypeReference(); - parser.expectToken(_tokenKind.TokenKind.EOF); - return type; -} -/** - * This class is exported only to assist people in implementing their own parsers - * without duplicating too much code and should be used only as last resort for cases - * such as experimental syntax or if certain features could not be contributed upstream. - * - * It is still part of the internal API and is versioned, so any changes to it are never - * considered breaking changes. If you still need to support multiple versions of the - * library, please use the `versionInfo` variable for version detection. - * - * @internal - */ - -class Parser { - constructor(source, options = {}) { - const sourceObj = (0, _source.isSource)(source) - ? source - : new _source.Source(source); - this._lexer = new _lexer.Lexer(sourceObj); - this._options = options; - this._tokenCounter = 0; - } - /** - * Converts a name lex token into a name parse node. - */ - - parseName() { - const token = this.expectToken(_tokenKind.TokenKind.NAME); - return this.node(token, { - kind: _kinds.Kind.NAME, - value: token.value, - }); - } // Implements the parsing rules in the Document section. - - /** - * Document : Definition+ - */ - - parseDocument() { - return this.node(this._lexer.token, { - kind: _kinds.Kind.DOCUMENT, - definitions: this.many( - _tokenKind.TokenKind.SOF, - this.parseDefinition, - _tokenKind.TokenKind.EOF, - ), - }); - } - /** - * Definition : - * - ExecutableDefinition - * - TypeSystemDefinition - * - TypeSystemExtension - * - * ExecutableDefinition : - * - OperationDefinition - * - FragmentDefinition - * - * TypeSystemDefinition : - * - SchemaDefinition - * - TypeDefinition - * - DirectiveDefinition - * - * TypeDefinition : - * - ScalarTypeDefinition - * - ObjectTypeDefinition - * - InterfaceTypeDefinition - * - UnionTypeDefinition - * - EnumTypeDefinition - * - InputObjectTypeDefinition - */ - - parseDefinition() { - if (this.peek(_tokenKind.TokenKind.BRACE_L)) { - return this.parseOperationDefinition(); - } // Many definitions begin with a description and require a lookahead. - - const hasDescription = this.peekDescription(); - const keywordToken = hasDescription - ? this._lexer.lookahead() - : this._lexer.token; - - if (keywordToken.kind === _tokenKind.TokenKind.NAME) { - switch (keywordToken.value) { - case 'schema': - return this.parseSchemaDefinition(); - - case 'scalar': - return this.parseScalarTypeDefinition(); - - case 'type': - return this.parseObjectTypeDefinition(); - - case 'interface': - return this.parseInterfaceTypeDefinition(); - - case 'union': - return this.parseUnionTypeDefinition(); - - case 'enum': - return this.parseEnumTypeDefinition(); - - case 'input': - return this.parseInputObjectTypeDefinition(); - - case 'directive': - return this.parseDirectiveDefinition(); - } - - if (hasDescription) { - throw (0, _syntaxError.syntaxError)( - this._lexer.source, - this._lexer.token.start, - 'Unexpected description, descriptions are supported only on type definitions.', - ); - } - - switch (keywordToken.value) { - case 'query': - case 'mutation': - case 'subscription': - return this.parseOperationDefinition(); - - case 'fragment': - return this.parseFragmentDefinition(); - - case 'extend': - return this.parseTypeSystemExtension(); - } - } - - throw this.unexpected(keywordToken); - } // Implements the parsing rules in the Operations section. - - /** - * OperationDefinition : - * - SelectionSet - * - OperationType Name? VariableDefinitions? Directives? SelectionSet - */ - - parseOperationDefinition() { - const start = this._lexer.token; - - if (this.peek(_tokenKind.TokenKind.BRACE_L)) { - return this.node(start, { - kind: _kinds.Kind.OPERATION_DEFINITION, - operation: _ast.OperationTypeNode.QUERY, - name: undefined, - variableDefinitions: [], - directives: [], - selectionSet: this.parseSelectionSet(), - }); - } - - const operation = this.parseOperationType(); - let name; - - if (this.peek(_tokenKind.TokenKind.NAME)) { - name = this.parseName(); - } - - return this.node(start, { - kind: _kinds.Kind.OPERATION_DEFINITION, - operation, - name, - variableDefinitions: this.parseVariableDefinitions(), - directives: this.parseDirectives(false), - selectionSet: this.parseSelectionSet(), - }); - } - /** - * OperationType : one of query mutation subscription - */ - - parseOperationType() { - const operationToken = this.expectToken(_tokenKind.TokenKind.NAME); - - switch (operationToken.value) { - case 'query': - return _ast.OperationTypeNode.QUERY; - - case 'mutation': - return _ast.OperationTypeNode.MUTATION; - - case 'subscription': - return _ast.OperationTypeNode.SUBSCRIPTION; - } - - throw this.unexpected(operationToken); - } - /** - * VariableDefinitions : ( VariableDefinition+ ) - */ - - parseVariableDefinitions() { - return this.optionalMany( - _tokenKind.TokenKind.PAREN_L, - this.parseVariableDefinition, - _tokenKind.TokenKind.PAREN_R, - ); - } - /** - * VariableDefinition : Variable : Type DefaultValue? Directives[Const]? - */ - - parseVariableDefinition() { - return this.node(this._lexer.token, { - kind: _kinds.Kind.VARIABLE_DEFINITION, - variable: this.parseVariable(), - type: - (this.expectToken(_tokenKind.TokenKind.COLON), - this.parseTypeReference()), - defaultValue: this.expectOptionalToken(_tokenKind.TokenKind.EQUALS) - ? this.parseConstValueLiteral() - : undefined, - directives: this.parseConstDirectives(), - }); - } - /** - * Variable : $ Name - */ - - parseVariable() { - const start = this._lexer.token; - this.expectToken(_tokenKind.TokenKind.DOLLAR); - return this.node(start, { - kind: _kinds.Kind.VARIABLE, - name: this.parseName(), - }); - } - /** - * ``` - * SelectionSet : { Selection+ } - * ``` - */ - - parseSelectionSet() { - return this.node(this._lexer.token, { - kind: _kinds.Kind.SELECTION_SET, - selections: this.many( - _tokenKind.TokenKind.BRACE_L, - this.parseSelection, - _tokenKind.TokenKind.BRACE_R, - ), - }); - } - /** - * Selection : - * - Field - * - FragmentSpread - * - InlineFragment - */ - - parseSelection() { - return this.peek(_tokenKind.TokenKind.SPREAD) - ? this.parseFragment() - : this.parseField(); - } - /** - * Field : Alias? Name Arguments? Directives? SelectionSet? - * - * Alias : Name : - */ - - parseField() { - const start = this._lexer.token; - const nameOrAlias = this.parseName(); - let alias; - let name; - - if (this.expectOptionalToken(_tokenKind.TokenKind.COLON)) { - alias = nameOrAlias; - name = this.parseName(); - } else { - name = nameOrAlias; - } - - return this.node(start, { - kind: _kinds.Kind.FIELD, - alias, - name, - arguments: this.parseArguments(false), - directives: this.parseDirectives(false), - selectionSet: this.peek(_tokenKind.TokenKind.BRACE_L) - ? this.parseSelectionSet() - : undefined, - }); - } - /** - * Arguments[Const] : ( Argument[?Const]+ ) - */ - - parseArguments(isConst) { - const item = isConst ? this.parseConstArgument : this.parseArgument; - return this.optionalMany( - _tokenKind.TokenKind.PAREN_L, - item, - _tokenKind.TokenKind.PAREN_R, - ); - } - /** - * Argument[Const] : Name : Value[?Const] - */ - - parseArgument(isConst = false) { - const start = this._lexer.token; - const name = this.parseName(); - this.expectToken(_tokenKind.TokenKind.COLON); - return this.node(start, { - kind: _kinds.Kind.ARGUMENT, - name, - value: this.parseValueLiteral(isConst), - }); - } - - parseConstArgument() { - return this.parseArgument(true); - } // Implements the parsing rules in the Fragments section. - - /** - * Corresponds to both FragmentSpread and InlineFragment in the spec. - * - * FragmentSpread : ... FragmentName Directives? - * - * InlineFragment : ... TypeCondition? Directives? SelectionSet - */ - - parseFragment() { - const start = this._lexer.token; - this.expectToken(_tokenKind.TokenKind.SPREAD); - const hasTypeCondition = this.expectOptionalKeyword('on'); - - if (!hasTypeCondition && this.peek(_tokenKind.TokenKind.NAME)) { - return this.node(start, { - kind: _kinds.Kind.FRAGMENT_SPREAD, - name: this.parseFragmentName(), - directives: this.parseDirectives(false), - }); - } - - return this.node(start, { - kind: _kinds.Kind.INLINE_FRAGMENT, - typeCondition: hasTypeCondition ? this.parseNamedType() : undefined, - directives: this.parseDirectives(false), - selectionSet: this.parseSelectionSet(), - }); - } - /** - * FragmentDefinition : - * - fragment FragmentName on TypeCondition Directives? SelectionSet - * - * TypeCondition : NamedType - */ - - parseFragmentDefinition() { - const start = this._lexer.token; - this.expectKeyword('fragment'); // Legacy support for defining variables within fragments changes - // the grammar of FragmentDefinition: - // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet - - if (this._options.allowLegacyFragmentVariables === true) { - return this.node(start, { - kind: _kinds.Kind.FRAGMENT_DEFINITION, - name: this.parseFragmentName(), - variableDefinitions: this.parseVariableDefinitions(), - typeCondition: (this.expectKeyword('on'), this.parseNamedType()), - directives: this.parseDirectives(false), - selectionSet: this.parseSelectionSet(), - }); - } - - return this.node(start, { - kind: _kinds.Kind.FRAGMENT_DEFINITION, - name: this.parseFragmentName(), - typeCondition: (this.expectKeyword('on'), this.parseNamedType()), - directives: this.parseDirectives(false), - selectionSet: this.parseSelectionSet(), - }); - } - /** - * FragmentName : Name but not `on` - */ - - parseFragmentName() { - if (this._lexer.token.value === 'on') { - throw this.unexpected(); - } - - return this.parseName(); - } // Implements the parsing rules in the Values section. - - /** - * Value[Const] : - * - [~Const] Variable - * - IntValue - * - FloatValue - * - StringValue - * - BooleanValue - * - NullValue - * - EnumValue - * - ListValue[?Const] - * - ObjectValue[?Const] - * - * BooleanValue : one of `true` `false` - * - * NullValue : `null` - * - * EnumValue : Name but not `true`, `false` or `null` - */ - - parseValueLiteral(isConst) { - const token = this._lexer.token; - - switch (token.kind) { - case _tokenKind.TokenKind.BRACKET_L: - return this.parseList(isConst); - - case _tokenKind.TokenKind.BRACE_L: - return this.parseObject(isConst); - - case _tokenKind.TokenKind.INT: - this.advanceLexer(); - return this.node(token, { - kind: _kinds.Kind.INT, - value: token.value, - }); - - case _tokenKind.TokenKind.FLOAT: - this.advanceLexer(); - return this.node(token, { - kind: _kinds.Kind.FLOAT, - value: token.value, - }); - - case _tokenKind.TokenKind.STRING: - case _tokenKind.TokenKind.BLOCK_STRING: - return this.parseStringLiteral(); - - case _tokenKind.TokenKind.NAME: - this.advanceLexer(); - - switch (token.value) { - case 'true': - return this.node(token, { - kind: _kinds.Kind.BOOLEAN, - value: true, - }); - - case 'false': - return this.node(token, { - kind: _kinds.Kind.BOOLEAN, - value: false, - }); - - case 'null': - return this.node(token, { - kind: _kinds.Kind.NULL, - }); - - default: - return this.node(token, { - kind: _kinds.Kind.ENUM, - value: token.value, - }); - } - - case _tokenKind.TokenKind.DOLLAR: - if (isConst) { - this.expectToken(_tokenKind.TokenKind.DOLLAR); - - if (this._lexer.token.kind === _tokenKind.TokenKind.NAME) { - const varName = this._lexer.token.value; - throw (0, _syntaxError.syntaxError)( - this._lexer.source, - token.start, - `Unexpected variable "$${varName}" in constant value.`, - ); - } else { - throw this.unexpected(token); - } - } - - return this.parseVariable(); - - default: - throw this.unexpected(); - } - } - - parseConstValueLiteral() { - return this.parseValueLiteral(true); - } - - parseStringLiteral() { - const token = this._lexer.token; - this.advanceLexer(); - return this.node(token, { - kind: _kinds.Kind.STRING, - value: token.value, - block: token.kind === _tokenKind.TokenKind.BLOCK_STRING, - }); - } - /** - * ListValue[Const] : - * - [ ] - * - [ Value[?Const]+ ] - */ - - parseList(isConst) { - const item = () => this.parseValueLiteral(isConst); - - return this.node(this._lexer.token, { - kind: _kinds.Kind.LIST, - values: this.any( - _tokenKind.TokenKind.BRACKET_L, - item, - _tokenKind.TokenKind.BRACKET_R, - ), - }); - } - /** - * ``` - * ObjectValue[Const] : - * - { } - * - { ObjectField[?Const]+ } - * ``` - */ - - parseObject(isConst) { - const item = () => this.parseObjectField(isConst); - - return this.node(this._lexer.token, { - kind: _kinds.Kind.OBJECT, - fields: this.any( - _tokenKind.TokenKind.BRACE_L, - item, - _tokenKind.TokenKind.BRACE_R, - ), - }); - } - /** - * ObjectField[Const] : Name : Value[?Const] - */ - - parseObjectField(isConst) { - const start = this._lexer.token; - const name = this.parseName(); - this.expectToken(_tokenKind.TokenKind.COLON); - return this.node(start, { - kind: _kinds.Kind.OBJECT_FIELD, - name, - value: this.parseValueLiteral(isConst), - }); - } // Implements the parsing rules in the Directives section. - - /** - * Directives[Const] : Directive[?Const]+ - */ - - parseDirectives(isConst) { - const directives = []; - - while (this.peek(_tokenKind.TokenKind.AT)) { - directives.push(this.parseDirective(isConst)); - } - - return directives; - } - - parseConstDirectives() { - return this.parseDirectives(true); - } - /** - * ``` - * Directive[Const] : @ Name Arguments[?Const]? - * ``` - */ - - parseDirective(isConst) { - const start = this._lexer.token; - this.expectToken(_tokenKind.TokenKind.AT); - return this.node(start, { - kind: _kinds.Kind.DIRECTIVE, - name: this.parseName(), - arguments: this.parseArguments(isConst), - }); - } // Implements the parsing rules in the Types section. - - /** - * Type : - * - NamedType - * - ListType - * - NonNullType - */ - - parseTypeReference() { - const start = this._lexer.token; - let type; - - if (this.expectOptionalToken(_tokenKind.TokenKind.BRACKET_L)) { - const innerType = this.parseTypeReference(); - this.expectToken(_tokenKind.TokenKind.BRACKET_R); - type = this.node(start, { - kind: _kinds.Kind.LIST_TYPE, - type: innerType, - }); - } else { - type = this.parseNamedType(); - } - - if (this.expectOptionalToken(_tokenKind.TokenKind.BANG)) { - return this.node(start, { - kind: _kinds.Kind.NON_NULL_TYPE, - type, - }); - } - - return type; - } - /** - * NamedType : Name - */ - - parseNamedType() { - return this.node(this._lexer.token, { - kind: _kinds.Kind.NAMED_TYPE, - name: this.parseName(), - }); - } // Implements the parsing rules in the Type Definition section. - - peekDescription() { - return ( - this.peek(_tokenKind.TokenKind.STRING) || - this.peek(_tokenKind.TokenKind.BLOCK_STRING) - ); - } - /** - * Description : StringValue - */ - - parseDescription() { - if (this.peekDescription()) { - return this.parseStringLiteral(); - } - } - /** - * ``` - * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ } - * ``` - */ - - parseSchemaDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('schema'); - const directives = this.parseConstDirectives(); - const operationTypes = this.many( - _tokenKind.TokenKind.BRACE_L, - this.parseOperationTypeDefinition, - _tokenKind.TokenKind.BRACE_R, - ); - return this.node(start, { - kind: _kinds.Kind.SCHEMA_DEFINITION, - description, - directives, - operationTypes, - }); - } - /** - * OperationTypeDefinition : OperationType : NamedType - */ - - parseOperationTypeDefinition() { - const start = this._lexer.token; - const operation = this.parseOperationType(); - this.expectToken(_tokenKind.TokenKind.COLON); - const type = this.parseNamedType(); - return this.node(start, { - kind: _kinds.Kind.OPERATION_TYPE_DEFINITION, - operation, - type, - }); - } - /** - * ScalarTypeDefinition : Description? scalar Name Directives[Const]? - */ - - parseScalarTypeDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('scalar'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - return this.node(start, { - kind: _kinds.Kind.SCALAR_TYPE_DEFINITION, - description, - name, - directives, - }); - } - /** - * ObjectTypeDefinition : - * Description? - * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition? - */ - - parseObjectTypeDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('type'); - const name = this.parseName(); - const interfaces = this.parseImplementsInterfaces(); - const directives = this.parseConstDirectives(); - const fields = this.parseFieldsDefinition(); - return this.node(start, { - kind: _kinds.Kind.OBJECT_TYPE_DEFINITION, - description, - name, - interfaces, - directives, - fields, - }); - } - /** - * ImplementsInterfaces : - * - implements `&`? NamedType - * - ImplementsInterfaces & NamedType - */ - - parseImplementsInterfaces() { - return this.expectOptionalKeyword('implements') - ? this.delimitedMany(_tokenKind.TokenKind.AMP, this.parseNamedType) - : []; - } - /** - * ``` - * FieldsDefinition : { FieldDefinition+ } - * ``` - */ - - parseFieldsDefinition() { - return this.optionalMany( - _tokenKind.TokenKind.BRACE_L, - this.parseFieldDefinition, - _tokenKind.TokenKind.BRACE_R, - ); - } - /** - * FieldDefinition : - * - Description? Name ArgumentsDefinition? : Type Directives[Const]? - */ - - parseFieldDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - const name = this.parseName(); - const args = this.parseArgumentDefs(); - this.expectToken(_tokenKind.TokenKind.COLON); - const type = this.parseTypeReference(); - const directives = this.parseConstDirectives(); - return this.node(start, { - kind: _kinds.Kind.FIELD_DEFINITION, - description, - name, - arguments: args, - type, - directives, - }); - } - /** - * ArgumentsDefinition : ( InputValueDefinition+ ) - */ - - parseArgumentDefs() { - return this.optionalMany( - _tokenKind.TokenKind.PAREN_L, - this.parseInputValueDef, - _tokenKind.TokenKind.PAREN_R, - ); - } - /** - * InputValueDefinition : - * - Description? Name : Type DefaultValue? Directives[Const]? - */ - - parseInputValueDef() { - const start = this._lexer.token; - const description = this.parseDescription(); - const name = this.parseName(); - this.expectToken(_tokenKind.TokenKind.COLON); - const type = this.parseTypeReference(); - let defaultValue; - - if (this.expectOptionalToken(_tokenKind.TokenKind.EQUALS)) { - defaultValue = this.parseConstValueLiteral(); - } - - const directives = this.parseConstDirectives(); - return this.node(start, { - kind: _kinds.Kind.INPUT_VALUE_DEFINITION, - description, - name, - type, - defaultValue, - directives, - }); - } - /** - * InterfaceTypeDefinition : - * - Description? interface Name Directives[Const]? FieldsDefinition? - */ - - parseInterfaceTypeDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('interface'); - const name = this.parseName(); - const interfaces = this.parseImplementsInterfaces(); - const directives = this.parseConstDirectives(); - const fields = this.parseFieldsDefinition(); - return this.node(start, { - kind: _kinds.Kind.INTERFACE_TYPE_DEFINITION, - description, - name, - interfaces, - directives, - fields, - }); - } - /** - * UnionTypeDefinition : - * - Description? union Name Directives[Const]? UnionMemberTypes? - */ - - parseUnionTypeDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('union'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - const types = this.parseUnionMemberTypes(); - return this.node(start, { - kind: _kinds.Kind.UNION_TYPE_DEFINITION, - description, - name, - directives, - types, - }); - } - /** - * UnionMemberTypes : - * - = `|`? NamedType - * - UnionMemberTypes | NamedType - */ - - parseUnionMemberTypes() { - return this.expectOptionalToken(_tokenKind.TokenKind.EQUALS) - ? this.delimitedMany(_tokenKind.TokenKind.PIPE, this.parseNamedType) - : []; - } - /** - * EnumTypeDefinition : - * - Description? enum Name Directives[Const]? EnumValuesDefinition? - */ - - parseEnumTypeDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('enum'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - const values = this.parseEnumValuesDefinition(); - return this.node(start, { - kind: _kinds.Kind.ENUM_TYPE_DEFINITION, - description, - name, - directives, - values, - }); - } - /** - * ``` - * EnumValuesDefinition : { EnumValueDefinition+ } - * ``` - */ - - parseEnumValuesDefinition() { - return this.optionalMany( - _tokenKind.TokenKind.BRACE_L, - this.parseEnumValueDefinition, - _tokenKind.TokenKind.BRACE_R, - ); - } - /** - * EnumValueDefinition : Description? EnumValue Directives[Const]? - */ - - parseEnumValueDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - const name = this.parseEnumValueName(); - const directives = this.parseConstDirectives(); - return this.node(start, { - kind: _kinds.Kind.ENUM_VALUE_DEFINITION, - description, - name, - directives, - }); - } - /** - * EnumValue : Name but not `true`, `false` or `null` - */ - - parseEnumValueName() { - if ( - this._lexer.token.value === 'true' || - this._lexer.token.value === 'false' || - this._lexer.token.value === 'null' - ) { - throw (0, _syntaxError.syntaxError)( - this._lexer.source, - this._lexer.token.start, - `${getTokenDesc( - this._lexer.token, - )} is reserved and cannot be used for an enum value.`, - ); - } - - return this.parseName(); - } - /** - * InputObjectTypeDefinition : - * - Description? input Name Directives[Const]? InputFieldsDefinition? - */ - - parseInputObjectTypeDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('input'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - const fields = this.parseInputFieldsDefinition(); - return this.node(start, { - kind: _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION, - description, - name, - directives, - fields, - }); - } - /** - * ``` - * InputFieldsDefinition : { InputValueDefinition+ } - * ``` - */ - - parseInputFieldsDefinition() { - return this.optionalMany( - _tokenKind.TokenKind.BRACE_L, - this.parseInputValueDef, - _tokenKind.TokenKind.BRACE_R, - ); - } - /** - * TypeSystemExtension : - * - SchemaExtension - * - TypeExtension - * - * TypeExtension : - * - ScalarTypeExtension - * - ObjectTypeExtension - * - InterfaceTypeExtension - * - UnionTypeExtension - * - EnumTypeExtension - * - InputObjectTypeDefinition - */ - - parseTypeSystemExtension() { - const keywordToken = this._lexer.lookahead(); - - if (keywordToken.kind === _tokenKind.TokenKind.NAME) { - switch (keywordToken.value) { - case 'schema': - return this.parseSchemaExtension(); - - case 'scalar': - return this.parseScalarTypeExtension(); - - case 'type': - return this.parseObjectTypeExtension(); - - case 'interface': - return this.parseInterfaceTypeExtension(); - - case 'union': - return this.parseUnionTypeExtension(); - - case 'enum': - return this.parseEnumTypeExtension(); - - case 'input': - return this.parseInputObjectTypeExtension(); - } - } - - throw this.unexpected(keywordToken); - } - /** - * ``` - * SchemaExtension : - * - extend schema Directives[Const]? { OperationTypeDefinition+ } - * - extend schema Directives[Const] - * ``` - */ - - parseSchemaExtension() { - const start = this._lexer.token; - this.expectKeyword('extend'); - this.expectKeyword('schema'); - const directives = this.parseConstDirectives(); - const operationTypes = this.optionalMany( - _tokenKind.TokenKind.BRACE_L, - this.parseOperationTypeDefinition, - _tokenKind.TokenKind.BRACE_R, - ); - - if (directives.length === 0 && operationTypes.length === 0) { - throw this.unexpected(); - } - - return this.node(start, { - kind: _kinds.Kind.SCHEMA_EXTENSION, - directives, - operationTypes, - }); - } - /** - * ScalarTypeExtension : - * - extend scalar Name Directives[Const] - */ - - parseScalarTypeExtension() { - const start = this._lexer.token; - this.expectKeyword('extend'); - this.expectKeyword('scalar'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - - if (directives.length === 0) { - throw this.unexpected(); - } - - return this.node(start, { - kind: _kinds.Kind.SCALAR_TYPE_EXTENSION, - name, - directives, - }); - } - /** - * ObjectTypeExtension : - * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition - * - extend type Name ImplementsInterfaces? Directives[Const] - * - extend type Name ImplementsInterfaces - */ - - parseObjectTypeExtension() { - const start = this._lexer.token; - this.expectKeyword('extend'); - this.expectKeyword('type'); - const name = this.parseName(); - const interfaces = this.parseImplementsInterfaces(); - const directives = this.parseConstDirectives(); - const fields = this.parseFieldsDefinition(); - - if ( - interfaces.length === 0 && - directives.length === 0 && - fields.length === 0 - ) { - throw this.unexpected(); - } - - return this.node(start, { - kind: _kinds.Kind.OBJECT_TYPE_EXTENSION, - name, - interfaces, - directives, - fields, - }); - } - /** - * InterfaceTypeExtension : - * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition - * - extend interface Name ImplementsInterfaces? Directives[Const] - * - extend interface Name ImplementsInterfaces - */ - - parseInterfaceTypeExtension() { - const start = this._lexer.token; - this.expectKeyword('extend'); - this.expectKeyword('interface'); - const name = this.parseName(); - const interfaces = this.parseImplementsInterfaces(); - const directives = this.parseConstDirectives(); - const fields = this.parseFieldsDefinition(); - - if ( - interfaces.length === 0 && - directives.length === 0 && - fields.length === 0 - ) { - throw this.unexpected(); - } - - return this.node(start, { - kind: _kinds.Kind.INTERFACE_TYPE_EXTENSION, - name, - interfaces, - directives, - fields, - }); - } - /** - * UnionTypeExtension : - * - extend union Name Directives[Const]? UnionMemberTypes - * - extend union Name Directives[Const] - */ - - parseUnionTypeExtension() { - const start = this._lexer.token; - this.expectKeyword('extend'); - this.expectKeyword('union'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - const types = this.parseUnionMemberTypes(); - - if (directives.length === 0 && types.length === 0) { - throw this.unexpected(); - } - - return this.node(start, { - kind: _kinds.Kind.UNION_TYPE_EXTENSION, - name, - directives, - types, - }); - } - /** - * EnumTypeExtension : - * - extend enum Name Directives[Const]? EnumValuesDefinition - * - extend enum Name Directives[Const] - */ - - parseEnumTypeExtension() { - const start = this._lexer.token; - this.expectKeyword('extend'); - this.expectKeyword('enum'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - const values = this.parseEnumValuesDefinition(); - - if (directives.length === 0 && values.length === 0) { - throw this.unexpected(); - } - - return this.node(start, { - kind: _kinds.Kind.ENUM_TYPE_EXTENSION, - name, - directives, - values, - }); - } - /** - * InputObjectTypeExtension : - * - extend input Name Directives[Const]? InputFieldsDefinition - * - extend input Name Directives[Const] - */ - - parseInputObjectTypeExtension() { - const start = this._lexer.token; - this.expectKeyword('extend'); - this.expectKeyword('input'); - const name = this.parseName(); - const directives = this.parseConstDirectives(); - const fields = this.parseInputFieldsDefinition(); - - if (directives.length === 0 && fields.length === 0) { - throw this.unexpected(); - } - - return this.node(start, { - kind: _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION, - name, - directives, - fields, - }); - } - /** - * ``` - * DirectiveDefinition : - * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations - * ``` - */ - - parseDirectiveDefinition() { - const start = this._lexer.token; - const description = this.parseDescription(); - this.expectKeyword('directive'); - this.expectToken(_tokenKind.TokenKind.AT); - const name = this.parseName(); - const args = this.parseArgumentDefs(); - const repeatable = this.expectOptionalKeyword('repeatable'); - this.expectKeyword('on'); - const locations = this.parseDirectiveLocations(); - return this.node(start, { - kind: _kinds.Kind.DIRECTIVE_DEFINITION, - description, - name, - arguments: args, - repeatable, - locations, - }); - } - /** - * DirectiveLocations : - * - `|`? DirectiveLocation - * - DirectiveLocations | DirectiveLocation - */ - - parseDirectiveLocations() { - return this.delimitedMany( - _tokenKind.TokenKind.PIPE, - this.parseDirectiveLocation, - ); - } - /* - * DirectiveLocation : - * - ExecutableDirectiveLocation - * - TypeSystemDirectiveLocation - * - * ExecutableDirectiveLocation : one of - * `QUERY` - * `MUTATION` - * `SUBSCRIPTION` - * `FIELD` - * `FRAGMENT_DEFINITION` - * `FRAGMENT_SPREAD` - * `INLINE_FRAGMENT` - * - * TypeSystemDirectiveLocation : one of - * `SCHEMA` - * `SCALAR` - * `OBJECT` - * `FIELD_DEFINITION` - * `ARGUMENT_DEFINITION` - * `INTERFACE` - * `UNION` - * `ENUM` - * `ENUM_VALUE` - * `INPUT_OBJECT` - * `INPUT_FIELD_DEFINITION` - */ - - parseDirectiveLocation() { - const start = this._lexer.token; - const name = this.parseName(); - - if ( - Object.prototype.hasOwnProperty.call( - _directiveLocation.DirectiveLocation, - name.value, - ) - ) { - return name; - } - - throw this.unexpected(start); - } // Core parsing utility functions - - /** - * Returns a node that, if configured to do so, sets a "loc" field as a - * location object, used to identify the place in the source that created a - * given parsed object. - */ - - node(startToken, node) { - if (this._options.noLocation !== true) { - node.loc = new _ast.Location( - startToken, - this._lexer.lastToken, - this._lexer.source, - ); - } - - return node; - } - /** - * Determines if the next token is of a given kind - */ - - peek(kind) { - return this._lexer.token.kind === kind; - } - /** - * If the next token is of the given kind, return that token after advancing the lexer. - * Otherwise, do not change the parser state and throw an error. - */ - - expectToken(kind) { - const token = this._lexer.token; - - if (token.kind === kind) { - this.advanceLexer(); - return token; - } - - throw (0, _syntaxError.syntaxError)( - this._lexer.source, - token.start, - `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`, - ); - } - /** - * If the next token is of the given kind, return "true" after advancing the lexer. - * Otherwise, do not change the parser state and return "false". - */ - - expectOptionalToken(kind) { - const token = this._lexer.token; - - if (token.kind === kind) { - this.advanceLexer(); - return true; - } - - return false; - } - /** - * If the next token is a given keyword, advance the lexer. - * Otherwise, do not change the parser state and throw an error. - */ - - expectKeyword(value) { - const token = this._lexer.token; - - if (token.kind === _tokenKind.TokenKind.NAME && token.value === value) { - this.advanceLexer(); - } else { - throw (0, _syntaxError.syntaxError)( - this._lexer.source, - token.start, - `Expected "${value}", found ${getTokenDesc(token)}.`, - ); - } - } - /** - * If the next token is a given keyword, return "true" after advancing the lexer. - * Otherwise, do not change the parser state and return "false". - */ - - expectOptionalKeyword(value) { - const token = this._lexer.token; - - if (token.kind === _tokenKind.TokenKind.NAME && token.value === value) { - this.advanceLexer(); - return true; - } - - return false; - } - /** - * Helper function for creating an error when an unexpected lexed token is encountered. - */ - - unexpected(atToken) { - const token = - atToken !== null && atToken !== void 0 ? atToken : this._lexer.token; - return (0, _syntaxError.syntaxError)( - this._lexer.source, - token.start, - `Unexpected ${getTokenDesc(token)}.`, - ); - } - /** - * Returns a possibly empty list of parse nodes, determined by the parseFn. - * This list begins with a lex token of openKind and ends with a lex token of closeKind. - * Advances the parser to the next lex token after the closing token. - */ - - any(openKind, parseFn, closeKind) { - this.expectToken(openKind); - const nodes = []; - - while (!this.expectOptionalToken(closeKind)) { - nodes.push(parseFn.call(this)); - } - - return nodes; - } - /** - * Returns a list of parse nodes, determined by the parseFn. - * It can be empty only if open token is missing otherwise it will always return non-empty list - * that begins with a lex token of openKind and ends with a lex token of closeKind. - * Advances the parser to the next lex token after the closing token. - */ - - optionalMany(openKind, parseFn, closeKind) { - if (this.expectOptionalToken(openKind)) { - const nodes = []; - - do { - nodes.push(parseFn.call(this)); - } while (!this.expectOptionalToken(closeKind)); - - return nodes; - } - - return []; - } - /** - * Returns a non-empty list of parse nodes, determined by the parseFn. - * This list begins with a lex token of openKind and ends with a lex token of closeKind. - * Advances the parser to the next lex token after the closing token. - */ - - many(openKind, parseFn, closeKind) { - this.expectToken(openKind); - const nodes = []; - - do { - nodes.push(parseFn.call(this)); - } while (!this.expectOptionalToken(closeKind)); - - return nodes; - } - /** - * Returns a non-empty list of parse nodes, determined by the parseFn. - * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind. - * Advances the parser to the next lex token after last item in the list. - */ - - delimitedMany(delimiterKind, parseFn) { - this.expectOptionalToken(delimiterKind); - const nodes = []; - - do { - nodes.push(parseFn.call(this)); - } while (this.expectOptionalToken(delimiterKind)); - - return nodes; - } - - advanceLexer() { - const { maxTokens } = this._options; - - const token = this._lexer.advance(); - - if (maxTokens !== undefined && token.kind !== _tokenKind.TokenKind.EOF) { - ++this._tokenCounter; - - if (this._tokenCounter > maxTokens) { - throw (0, _syntaxError.syntaxError)( - this._lexer.source, - token.start, - `Document contains more that ${maxTokens} tokens. Parsing aborted.`, - ); - } - } - } -} -/** - * A helper function to describe a token as a string for debugging. - */ - -exports.Parser = Parser; - -function getTokenDesc(token) { - const value = token.value; - return getTokenKindDesc(token.kind) + (value != null ? ` "${value}"` : ''); -} -/** - * A helper function to describe a token kind as a string for debugging. - */ - -function getTokenKindDesc(kind) { - return (0, _lexer.isPunctuatorTokenKind)(kind) ? `"${kind}"` : kind; -} - - -/***/ }), - -/***/ 418: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.isConstValueNode = isConstValueNode; -exports.isDefinitionNode = isDefinitionNode; -exports.isExecutableDefinitionNode = isExecutableDefinitionNode; -exports.isSelectionNode = isSelectionNode; -exports.isTypeDefinitionNode = isTypeDefinitionNode; -exports.isTypeExtensionNode = isTypeExtensionNode; -exports.isTypeNode = isTypeNode; -exports.isTypeSystemDefinitionNode = isTypeSystemDefinitionNode; -exports.isTypeSystemExtensionNode = isTypeSystemExtensionNode; -exports.isValueNode = isValueNode; - -var _kinds = __nccwpck_require__(2881); - -function isDefinitionNode(node) { - return ( - isExecutableDefinitionNode(node) || - isTypeSystemDefinitionNode(node) || - isTypeSystemExtensionNode(node) - ); -} - -function isExecutableDefinitionNode(node) { - return ( - node.kind === _kinds.Kind.OPERATION_DEFINITION || - node.kind === _kinds.Kind.FRAGMENT_DEFINITION - ); -} - -function isSelectionNode(node) { - return ( - node.kind === _kinds.Kind.FIELD || - node.kind === _kinds.Kind.FRAGMENT_SPREAD || - node.kind === _kinds.Kind.INLINE_FRAGMENT - ); -} - -function isValueNode(node) { - return ( - node.kind === _kinds.Kind.VARIABLE || - node.kind === _kinds.Kind.INT || - node.kind === _kinds.Kind.FLOAT || - node.kind === _kinds.Kind.STRING || - node.kind === _kinds.Kind.BOOLEAN || - node.kind === _kinds.Kind.NULL || - node.kind === _kinds.Kind.ENUM || - node.kind === _kinds.Kind.LIST || - node.kind === _kinds.Kind.OBJECT - ); -} - -function isConstValueNode(node) { - return ( - isValueNode(node) && - (node.kind === _kinds.Kind.LIST - ? node.values.some(isConstValueNode) - : node.kind === _kinds.Kind.OBJECT - ? node.fields.some((field) => isConstValueNode(field.value)) - : node.kind !== _kinds.Kind.VARIABLE) - ); -} - -function isTypeNode(node) { - return ( - node.kind === _kinds.Kind.NAMED_TYPE || - node.kind === _kinds.Kind.LIST_TYPE || - node.kind === _kinds.Kind.NON_NULL_TYPE - ); -} - -function isTypeSystemDefinitionNode(node) { - return ( - node.kind === _kinds.Kind.SCHEMA_DEFINITION || - isTypeDefinitionNode(node) || - node.kind === _kinds.Kind.DIRECTIVE_DEFINITION - ); -} - -function isTypeDefinitionNode(node) { - return ( - node.kind === _kinds.Kind.SCALAR_TYPE_DEFINITION || - node.kind === _kinds.Kind.OBJECT_TYPE_DEFINITION || - node.kind === _kinds.Kind.INTERFACE_TYPE_DEFINITION || - node.kind === _kinds.Kind.UNION_TYPE_DEFINITION || - node.kind === _kinds.Kind.ENUM_TYPE_DEFINITION || - node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION - ); -} - -function isTypeSystemExtensionNode(node) { - return ( - node.kind === _kinds.Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node) - ); -} - -function isTypeExtensionNode(node) { - return ( - node.kind === _kinds.Kind.SCALAR_TYPE_EXTENSION || - node.kind === _kinds.Kind.OBJECT_TYPE_EXTENSION || - node.kind === _kinds.Kind.INTERFACE_TYPE_EXTENSION || - node.kind === _kinds.Kind.UNION_TYPE_EXTENSION || - node.kind === _kinds.Kind.ENUM_TYPE_EXTENSION || - node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION - ); -} - - -/***/ }), - -/***/ 7098: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.printLocation = printLocation; -exports.printSourceLocation = printSourceLocation; - -var _location = __nccwpck_require__(1955); - -/** - * Render a helpful description of the location in the GraphQL Source document. - */ -function printLocation(location) { - return printSourceLocation( - location.source, - (0, _location.getLocation)(location.source, location.start), - ); -} -/** - * Render a helpful description of the location in the GraphQL Source document. - */ - -function printSourceLocation(source, sourceLocation) { - const firstLineColumnOffset = source.locationOffset.column - 1; - const body = ''.padStart(firstLineColumnOffset) + source.body; - const lineIndex = sourceLocation.line - 1; - const lineOffset = source.locationOffset.line - 1; - const lineNum = sourceLocation.line + lineOffset; - const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0; - const columnNum = sourceLocation.column + columnOffset; - const locationStr = `${source.name}:${lineNum}:${columnNum}\n`; - const lines = body.split(/\r\n|[\n\r]/g); - const locationLine = lines[lineIndex]; // Special case for minified documents - - if (locationLine.length > 120) { - const subLineIndex = Math.floor(columnNum / 80); - const subLineColumnNum = columnNum % 80; - const subLines = []; - - for (let i = 0; i < locationLine.length; i += 80) { - subLines.push(locationLine.slice(i, i + 80)); - } - - return ( - locationStr + - printPrefixedLines([ - [`${lineNum} |`, subLines[0]], - ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]), - ['|', '^'.padStart(subLineColumnNum)], - ['|', subLines[subLineIndex + 1]], - ]) - ); - } - - return ( - locationStr + - printPrefixedLines([ - // Lines specified like this: ["prefix", "string"], - [`${lineNum - 1} |`, lines[lineIndex - 1]], - [`${lineNum} |`, locationLine], - ['|', '^'.padStart(columnNum)], - [`${lineNum + 1} |`, lines[lineIndex + 1]], - ]) - ); -} - -function printPrefixedLines(lines) { - const existingLines = lines.filter(([_, line]) => line !== undefined); - const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length)); - return existingLines - .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : '')) - .join('\n'); -} - - -/***/ }), - -/***/ 8112: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.printString = printString; - -/** - * Prints a string as a GraphQL StringValue literal. Replaces control characters - * and excluded characters (" U+0022 and \\ U+005C) with escape sequences. - */ -function printString(str) { - return `"${str.replace(escapedRegExp, escapedReplacer)}"`; -} - -const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g; - -function escapedReplacer(str) { - return escapeSequences[str.charCodeAt(0)]; -} // prettier-ignore - -const escapeSequences = [ - '\\u0000', - '\\u0001', - '\\u0002', - '\\u0003', - '\\u0004', - '\\u0005', - '\\u0006', - '\\u0007', - '\\b', - '\\t', - '\\n', - '\\u000B', - '\\f', - '\\r', - '\\u000E', - '\\u000F', - '\\u0010', - '\\u0011', - '\\u0012', - '\\u0013', - '\\u0014', - '\\u0015', - '\\u0016', - '\\u0017', - '\\u0018', - '\\u0019', - '\\u001A', - '\\u001B', - '\\u001C', - '\\u001D', - '\\u001E', - '\\u001F', - '', - '', - '\\"', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', // 2F - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', // 3F - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', // 4F - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '\\\\', - '', - '', - '', // 5F - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', // 6F - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '\\u007F', - '\\u0080', - '\\u0081', - '\\u0082', - '\\u0083', - '\\u0084', - '\\u0085', - '\\u0086', - '\\u0087', - '\\u0088', - '\\u0089', - '\\u008A', - '\\u008B', - '\\u008C', - '\\u008D', - '\\u008E', - '\\u008F', - '\\u0090', - '\\u0091', - '\\u0092', - '\\u0093', - '\\u0094', - '\\u0095', - '\\u0096', - '\\u0097', - '\\u0098', - '\\u0099', - '\\u009A', - '\\u009B', - '\\u009C', - '\\u009D', - '\\u009E', - '\\u009F', -]; - - -/***/ }), - -/***/ 4758: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.print = print; - -var _blockString = __nccwpck_require__(510); - -var _printString = __nccwpck_require__(8112); - -var _visitor = __nccwpck_require__(7848); - -/** - * Converts an AST into a string, using one set of reasonable - * formatting rules. - */ -function print(ast) { - return (0, _visitor.visit)(ast, printDocASTReducer); -} - -const MAX_LINE_LENGTH = 80; -const printDocASTReducer = { - Name: { - leave: (node) => node.value, - }, - Variable: { - leave: (node) => '$' + node.name, - }, - // Document - Document: { - leave: (node) => join(node.definitions, '\n\n'), - }, - OperationDefinition: { - leave(node) { - const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')'); - const prefix = join( - [ - node.operation, - join([node.name, varDefs]), - join(node.directives, ' '), - ], - ' ', - ); // Anonymous queries with no directives or variable definitions can use - // the query short form. - - return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet; - }, - }, - VariableDefinition: { - leave: ({ variable, type, defaultValue, directives }) => - variable + - ': ' + - type + - wrap(' = ', defaultValue) + - wrap(' ', join(directives, ' ')), - }, - SelectionSet: { - leave: ({ selections }) => block(selections), - }, - Field: { - leave({ alias, name, arguments: args, directives, selectionSet }) { - const prefix = wrap('', alias, ': ') + name; - let argsLine = prefix + wrap('(', join(args, ', '), ')'); - - if (argsLine.length > MAX_LINE_LENGTH) { - argsLine = prefix + wrap('(\n', indent(join(args, '\n')), '\n)'); - } - - return join([argsLine, join(directives, ' '), selectionSet], ' '); - }, - }, - Argument: { - leave: ({ name, value }) => name + ': ' + value, - }, - // Fragments - FragmentSpread: { - leave: ({ name, directives }) => - '...' + name + wrap(' ', join(directives, ' ')), - }, - InlineFragment: { - leave: ({ typeCondition, directives, selectionSet }) => - join( - [ - '...', - wrap('on ', typeCondition), - join(directives, ' '), - selectionSet, - ], - ' ', - ), - }, - FragmentDefinition: { - leave: ( - { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed - ) => - // or removed in the future. - `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` + - `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` + - selectionSet, - }, - // Value - IntValue: { - leave: ({ value }) => value, - }, - FloatValue: { - leave: ({ value }) => value, - }, - StringValue: { - leave: ({ value, block: isBlockString }) => - isBlockString - ? (0, _blockString.printBlockString)(value) - : (0, _printString.printString)(value), - }, - BooleanValue: { - leave: ({ value }) => (value ? 'true' : 'false'), - }, - NullValue: { - leave: () => 'null', - }, - EnumValue: { - leave: ({ value }) => value, - }, - ListValue: { - leave: ({ values }) => '[' + join(values, ', ') + ']', - }, - ObjectValue: { - leave: ({ fields }) => '{' + join(fields, ', ') + '}', - }, - ObjectField: { - leave: ({ name, value }) => name + ': ' + value, - }, - // Directive - Directive: { - leave: ({ name, arguments: args }) => - '@' + name + wrap('(', join(args, ', '), ')'), - }, - // Type - NamedType: { - leave: ({ name }) => name, - }, - ListType: { - leave: ({ type }) => '[' + type + ']', - }, - NonNullType: { - leave: ({ type }) => type + '!', - }, - // Type System Definitions - SchemaDefinition: { - leave: ({ description, directives, operationTypes }) => - wrap('', description, '\n') + - join(['schema', join(directives, ' '), block(operationTypes)], ' '), - }, - OperationTypeDefinition: { - leave: ({ operation, type }) => operation + ': ' + type, - }, - ScalarTypeDefinition: { - leave: ({ description, name, directives }) => - wrap('', description, '\n') + - join(['scalar', name, join(directives, ' ')], ' '), - }, - ObjectTypeDefinition: { - leave: ({ description, name, interfaces, directives, fields }) => - wrap('', description, '\n') + - join( - [ - 'type', - name, - wrap('implements ', join(interfaces, ' & ')), - join(directives, ' '), - block(fields), - ], - ' ', - ), - }, - FieldDefinition: { - leave: ({ description, name, arguments: args, type, directives }) => - wrap('', description, '\n') + - name + - (hasMultilineItems(args) - ? wrap('(\n', indent(join(args, '\n')), '\n)') - : wrap('(', join(args, ', '), ')')) + - ': ' + - type + - wrap(' ', join(directives, ' ')), - }, - InputValueDefinition: { - leave: ({ description, name, type, defaultValue, directives }) => - wrap('', description, '\n') + - join( - [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], - ' ', - ), - }, - InterfaceTypeDefinition: { - leave: ({ description, name, interfaces, directives, fields }) => - wrap('', description, '\n') + - join( - [ - 'interface', - name, - wrap('implements ', join(interfaces, ' & ')), - join(directives, ' '), - block(fields), - ], - ' ', - ), - }, - UnionTypeDefinition: { - leave: ({ description, name, directives, types }) => - wrap('', description, '\n') + - join( - ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))], - ' ', - ), - }, - EnumTypeDefinition: { - leave: ({ description, name, directives, values }) => - wrap('', description, '\n') + - join(['enum', name, join(directives, ' '), block(values)], ' '), - }, - EnumValueDefinition: { - leave: ({ description, name, directives }) => - wrap('', description, '\n') + join([name, join(directives, ' ')], ' '), - }, - InputObjectTypeDefinition: { - leave: ({ description, name, directives, fields }) => - wrap('', description, '\n') + - join(['input', name, join(directives, ' '), block(fields)], ' '), - }, - DirectiveDefinition: { - leave: ({ description, name, arguments: args, repeatable, locations }) => - wrap('', description, '\n') + - 'directive @' + - name + - (hasMultilineItems(args) - ? wrap('(\n', indent(join(args, '\n')), '\n)') - : wrap('(', join(args, ', '), ')')) + - (repeatable ? ' repeatable' : '') + - ' on ' + - join(locations, ' | '), - }, - SchemaExtension: { - leave: ({ directives, operationTypes }) => - join( - ['extend schema', join(directives, ' '), block(operationTypes)], - ' ', - ), - }, - ScalarTypeExtension: { - leave: ({ name, directives }) => - join(['extend scalar', name, join(directives, ' ')], ' '), - }, - ObjectTypeExtension: { - leave: ({ name, interfaces, directives, fields }) => - join( - [ - 'extend type', - name, - wrap('implements ', join(interfaces, ' & ')), - join(directives, ' '), - block(fields), - ], - ' ', - ), - }, - InterfaceTypeExtension: { - leave: ({ name, interfaces, directives, fields }) => - join( - [ - 'extend interface', - name, - wrap('implements ', join(interfaces, ' & ')), - join(directives, ' '), - block(fields), - ], - ' ', - ), - }, - UnionTypeExtension: { - leave: ({ name, directives, types }) => - join( - [ - 'extend union', - name, - join(directives, ' '), - wrap('= ', join(types, ' | ')), - ], - ' ', - ), - }, - EnumTypeExtension: { - leave: ({ name, directives, values }) => - join(['extend enum', name, join(directives, ' '), block(values)], ' '), - }, - InputObjectTypeExtension: { - leave: ({ name, directives, fields }) => - join(['extend input', name, join(directives, ' '), block(fields)], ' '), - }, -}; -/** - * Given maybeArray, print an empty string if it is null or empty, otherwise - * print all items together separated by separator if provided - */ - -function join(maybeArray, separator = '') { - var _maybeArray$filter$jo; - - return (_maybeArray$filter$jo = - maybeArray === null || maybeArray === void 0 - ? void 0 - : maybeArray.filter((x) => x).join(separator)) !== null && - _maybeArray$filter$jo !== void 0 - ? _maybeArray$filter$jo - : ''; -} -/** - * Given array, print each item on its own line, wrapped in an indented `{ }` block. - */ - -function block(array) { - return wrap('{\n', indent(join(array, '\n')), '\n}'); -} -/** - * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string. - */ - -function wrap(start, maybeString, end = '') { - return maybeString != null && maybeString !== '' - ? start + maybeString + end - : ''; -} - -function indent(str) { - return wrap(' ', str.replace(/\n/g, '\n ')); -} - -function hasMultilineItems(maybeArray) { - var _maybeArray$some; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - return (_maybeArray$some = - maybeArray === null || maybeArray === void 0 - ? void 0 - : maybeArray.some((str) => str.includes('\n'))) !== null && - _maybeArray$some !== void 0 - ? _maybeArray$some - : false; -} - - -/***/ }), - -/***/ 4934: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.Source = void 0; -exports.isSource = isSource; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _instanceOf = __nccwpck_require__(6524); - -/** - * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are - * optional, but they are useful for clients who store GraphQL documents in source files. - * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might - * be useful for `name` to be `"Foo.graphql"` and location to be `{ line: 40, column: 1 }`. - * The `line` and `column` properties in `locationOffset` are 1-indexed. - */ -class Source { - constructor( - body, - name = 'GraphQL request', - locationOffset = { - line: 1, - column: 1, - }, - ) { - typeof body === 'string' || - (0, _devAssert.devAssert)( - false, - `Body must be a string. Received: ${(0, _inspect.inspect)(body)}.`, - ); - this.body = body; - this.name = name; - this.locationOffset = locationOffset; - this.locationOffset.line > 0 || - (0, _devAssert.devAssert)( - false, - 'line in locationOffset is 1-indexed and must be positive.', - ); - this.locationOffset.column > 0 || - (0, _devAssert.devAssert)( - false, - 'column in locationOffset is 1-indexed and must be positive.', - ); - } - - get [Symbol.toStringTag]() { - return 'Source'; - } -} -/** - * Test if the given value is a Source object. - * - * @internal - */ - -exports.Source = Source; - -function isSource(source) { - return (0, _instanceOf.instanceOf)(source, Source); -} - - -/***/ }), - -/***/ 9229: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.TokenKind = void 0; - -/** - * An exported enum describing the different kinds of tokens that the - * lexer emits. - */ -var TokenKind; -exports.TokenKind = TokenKind; - -(function (TokenKind) { - TokenKind['SOF'] = ''; - TokenKind['EOF'] = ''; - TokenKind['BANG'] = '!'; - TokenKind['DOLLAR'] = '$'; - TokenKind['AMP'] = '&'; - TokenKind['PAREN_L'] = '('; - TokenKind['PAREN_R'] = ')'; - TokenKind['SPREAD'] = '...'; - TokenKind['COLON'] = ':'; - TokenKind['EQUALS'] = '='; - TokenKind['AT'] = '@'; - TokenKind['BRACKET_L'] = '['; - TokenKind['BRACKET_R'] = ']'; - TokenKind['BRACE_L'] = '{'; - TokenKind['PIPE'] = '|'; - TokenKind['BRACE_R'] = '}'; - TokenKind['NAME'] = 'Name'; - TokenKind['INT'] = 'Int'; - TokenKind['FLOAT'] = 'Float'; - TokenKind['STRING'] = 'String'; - TokenKind['BLOCK_STRING'] = 'BlockString'; - TokenKind['COMMENT'] = 'Comment'; -})(TokenKind || (exports.TokenKind = TokenKind = {})); -/** - * The enum type representing the token kinds values. - * - * @deprecated Please use `TokenKind`. Will be remove in v17. - */ - - -/***/ }), - -/***/ 7848: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.BREAK = void 0; -exports.getEnterLeaveForKind = getEnterLeaveForKind; -exports.getVisitFn = getVisitFn; -exports.visit = visit; -exports.visitInParallel = visitInParallel; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _ast = __nccwpck_require__(906); - -var _kinds = __nccwpck_require__(2881); - -const BREAK = Object.freeze({}); -/** - * visit() will walk through an AST using a depth-first traversal, calling - * the visitor's enter function at each node in the traversal, and calling the - * leave function after visiting that node and all of its child nodes. - * - * By returning different values from the enter and leave functions, the - * behavior of the visitor can be altered, including skipping over a sub-tree of - * the AST (by returning false), editing the AST by returning a value or null - * to remove the value, or to stop the whole traversal by returning BREAK. - * - * When using visit() to edit an AST, the original AST will not be modified, and - * a new version of the AST with the changes applied will be returned from the - * visit function. - * - * ```ts - * const editedAST = visit(ast, { - * enter(node, key, parent, path, ancestors) { - * // @return - * // undefined: no action - * // false: skip visiting this node - * // visitor.BREAK: stop visiting altogether - * // null: delete this node - * // any value: replace this node with the returned value - * }, - * leave(node, key, parent, path, ancestors) { - * // @return - * // undefined: no action - * // false: no action - * // visitor.BREAK: stop visiting altogether - * // null: delete this node - * // any value: replace this node with the returned value - * } - * }); - * ``` - * - * Alternatively to providing enter() and leave() functions, a visitor can - * instead provide functions named the same as the kinds of AST nodes, or - * enter/leave visitors at a named key, leading to three permutations of the - * visitor API: - * - * 1) Named visitors triggered when entering a node of a specific kind. - * - * ```ts - * visit(ast, { - * Kind(node) { - * // enter the "Kind" node - * } - * }) - * ``` - * - * 2) Named visitors that trigger upon entering and leaving a node of a specific kind. - * - * ```ts - * visit(ast, { - * Kind: { - * enter(node) { - * // enter the "Kind" node - * } - * leave(node) { - * // leave the "Kind" node - * } - * } - * }) - * ``` - * - * 3) Generic visitors that trigger upon entering and leaving any node. - * - * ```ts - * visit(ast, { - * enter(node) { - * // enter any node - * }, - * leave(node) { - * // leave any node - * } - * }) - * ``` - */ - -exports.BREAK = BREAK; - -function visit(root, visitor, visitorKeys = _ast.QueryDocumentKeys) { - const enterLeaveMap = new Map(); - - for (const kind of Object.values(_kinds.Kind)) { - enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind)); - } - - - let stack = undefined; - let inArray = Array.isArray(root); - let keys = [root]; - let index = -1; - let edits = []; - let node = root; - let key = undefined; - let parent = undefined; - const path = []; - const ancestors = []; - - - do { - index++; - const isLeaving = index === keys.length; - const isEdited = isLeaving && edits.length !== 0; - - if (isLeaving) { - key = ancestors.length === 0 ? undefined : path[path.length - 1]; - node = parent; - parent = ancestors.pop(); - - if (isEdited) { - if (inArray) { - node = node.slice(); - let editOffset = 0; - - for (const [editKey, editValue] of edits) { - const arrayKey = editKey - editOffset; - - if (editValue === null) { - node.splice(arrayKey, 1); - editOffset++; - } else { - node[arrayKey] = editValue; - } - } - } else { - node = Object.defineProperties( - {}, - Object.getOwnPropertyDescriptors(node), - ); - - for (const [editKey, editValue] of edits) { - node[editKey] = editValue; - } - } - } - - index = stack.index; - keys = stack.keys; - edits = stack.edits; - inArray = stack.inArray; - stack = stack.prev; - } else if (parent) { - key = inArray ? index : keys[index]; - node = parent[key]; - - if (node === null || node === undefined) { - continue; - } - - path.push(key); - } - - let result; - - if (!Array.isArray(node)) { - var _enterLeaveMap$get, _enterLeaveMap$get2; - - (0, _ast.isNode)(node) || - (0, _devAssert.devAssert)( - false, - `Invalid AST Node: ${(0, _inspect.inspect)(node)}.`, - ); - const visitFn = isLeaving - ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null || - _enterLeaveMap$get === void 0 - ? void 0 - : _enterLeaveMap$get.leave - : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null || - _enterLeaveMap$get2 === void 0 - ? void 0 - : _enterLeaveMap$get2.enter; - result = - visitFn === null || visitFn === void 0 - ? void 0 - : visitFn.call(visitor, node, key, parent, path, ancestors); - - if (result === BREAK) { - break; - } - - if (result === false) { - if (!isLeaving) { - path.pop(); - continue; - } - } else if (result !== undefined) { - edits.push([key, result]); - - if (!isLeaving) { - if ((0, _ast.isNode)(result)) { - node = result; - } else { - path.pop(); - continue; - } - } - } - } - - if (result === undefined && isEdited) { - edits.push([key, node]); - } - - if (isLeaving) { - path.pop(); - } else { - var _node$kind; - - stack = { - inArray, - index, - keys, - edits, - prev: stack, - }; - inArray = Array.isArray(node); - keys = inArray - ? node - : (_node$kind = visitorKeys[node.kind]) !== null && - _node$kind !== void 0 - ? _node$kind - : []; - index = -1; - edits = []; - - if (parent) { - ancestors.push(parent); - } - - parent = node; - } - } while (stack !== undefined); - - if (edits.length !== 0) { - // New root - return edits[edits.length - 1][1]; - } - - return root; -} -/** - * Creates a new visitor instance which delegates to many visitors to run in - * parallel. Each visitor will be visited for each node before moving on. - * - * If a prior visitor edits a node, no following visitors will see that node. - */ - -function visitInParallel(visitors) { - const skipping = new Array(visitors.length).fill(null); - const mergedVisitor = Object.create(null); - - for (const kind of Object.values(_kinds.Kind)) { - let hasVisitor = false; - const enterList = new Array(visitors.length).fill(undefined); - const leaveList = new Array(visitors.length).fill(undefined); - - for (let i = 0; i < visitors.length; ++i) { - const { enter, leave } = getEnterLeaveForKind(visitors[i], kind); - hasVisitor || (hasVisitor = enter != null || leave != null); - enterList[i] = enter; - leaveList[i] = leave; - } - - if (!hasVisitor) { - continue; - } - - const mergedEnterLeave = { - enter(...args) { - const node = args[0]; - - for (let i = 0; i < visitors.length; i++) { - if (skipping[i] === null) { - var _enterList$i; - - const result = - (_enterList$i = enterList[i]) === null || _enterList$i === void 0 - ? void 0 - : _enterList$i.apply(visitors[i], args); - - if (result === false) { - skipping[i] = node; - } else if (result === BREAK) { - skipping[i] = BREAK; - } else if (result !== undefined) { - return result; - } - } - } - }, - - leave(...args) { - const node = args[0]; - - for (let i = 0; i < visitors.length; i++) { - if (skipping[i] === null) { - var _leaveList$i; - - const result = - (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0 - ? void 0 - : _leaveList$i.apply(visitors[i], args); - - if (result === BREAK) { - skipping[i] = BREAK; - } else if (result !== undefined && result !== false) { - return result; - } - } else if (skipping[i] === node) { - skipping[i] = null; - } - } - }, - }; - mergedVisitor[kind] = mergedEnterLeave; - } - - return mergedVisitor; -} -/** - * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind. - */ - -function getEnterLeaveForKind(visitor, kind) { - const kindVisitor = visitor[kind]; - - if (typeof kindVisitor === 'object') { - // { Kind: { enter() {}, leave() {} } } - return kindVisitor; - } else if (typeof kindVisitor === 'function') { - // { Kind() {} } - return { - enter: kindVisitor, - leave: undefined, - }; - } // { enter() {}, leave() {} } - - return { - enter: visitor.enter, - leave: visitor.leave, - }; -} -/** - * Given a visitor instance, if it is leaving or not, and a node kind, return - * the function the visitor runtime should call. - * - * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17 - */ - -/* c8 ignore next 8 */ - -function getVisitFn(visitor, kind, isLeaving) { - const { enter, leave } = getEnterLeaveForKind(visitor, kind); - return isLeaving ? leave : enter; -} - - -/***/ }), - -/***/ 5275: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.assertEnumValueName = assertEnumValueName; -exports.assertName = assertName; - -var _devAssert = __nccwpck_require__(7437); - -var _GraphQLError = __nccwpck_require__(1753); - -var _characterClasses = __nccwpck_require__(4709); - -/** - * Upholds the spec rules about naming. - */ -function assertName(name) { - name != null || (0, _devAssert.devAssert)(false, 'Must provide name.'); - typeof name === 'string' || - (0, _devAssert.devAssert)(false, 'Expected name to be a string.'); - - if (name.length === 0) { - throw new _GraphQLError.GraphQLError( - 'Expected name to be a non-empty string.', - ); - } - - for (let i = 1; i < name.length; ++i) { - if (!(0, _characterClasses.isNameContinue)(name.charCodeAt(i))) { - throw new _GraphQLError.GraphQLError( - `Names must only contain [_a-zA-Z0-9] but "${name}" does not.`, - ); - } - } - - if (!(0, _characterClasses.isNameStart)(name.charCodeAt(0))) { - throw new _GraphQLError.GraphQLError( - `Names must start with [_a-zA-Z] but "${name}" does not.`, - ); - } - - return name; -} -/** - * Upholds the spec rules about naming enum values. - * - * @internal - */ - -function assertEnumValueName(name) { - if (name === 'true' || name === 'false' || name === 'null') { - throw new _GraphQLError.GraphQLError( - `Enum values cannot be named: ${name}`, - ); - } - - return assertName(name); -} - - -/***/ }), - -/***/ 699: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.GraphQLUnionType = - exports.GraphQLScalarType = - exports.GraphQLObjectType = - exports.GraphQLNonNull = - exports.GraphQLList = - exports.GraphQLInterfaceType = - exports.GraphQLInputObjectType = - exports.GraphQLEnumType = - void 0; -exports.argsToArgsConfig = argsToArgsConfig; -exports.assertAbstractType = assertAbstractType; -exports.assertCompositeType = assertCompositeType; -exports.assertEnumType = assertEnumType; -exports.assertInputObjectType = assertInputObjectType; -exports.assertInputType = assertInputType; -exports.assertInterfaceType = assertInterfaceType; -exports.assertLeafType = assertLeafType; -exports.assertListType = assertListType; -exports.assertNamedType = assertNamedType; -exports.assertNonNullType = assertNonNullType; -exports.assertNullableType = assertNullableType; -exports.assertObjectType = assertObjectType; -exports.assertOutputType = assertOutputType; -exports.assertScalarType = assertScalarType; -exports.assertType = assertType; -exports.assertUnionType = assertUnionType; -exports.assertWrappingType = assertWrappingType; -exports.defineArguments = defineArguments; -exports.getNamedType = getNamedType; -exports.getNullableType = getNullableType; -exports.isAbstractType = isAbstractType; -exports.isCompositeType = isCompositeType; -exports.isEnumType = isEnumType; -exports.isInputObjectType = isInputObjectType; -exports.isInputType = isInputType; -exports.isInterfaceType = isInterfaceType; -exports.isLeafType = isLeafType; -exports.isListType = isListType; -exports.isNamedType = isNamedType; -exports.isNonNullType = isNonNullType; -exports.isNullableType = isNullableType; -exports.isObjectType = isObjectType; -exports.isOutputType = isOutputType; -exports.isRequiredArgument = isRequiredArgument; -exports.isRequiredInputField = isRequiredInputField; -exports.isScalarType = isScalarType; -exports.isType = isType; -exports.isUnionType = isUnionType; -exports.isWrappingType = isWrappingType; -exports.resolveObjMapThunk = resolveObjMapThunk; -exports.resolveReadonlyArrayThunk = resolveReadonlyArrayThunk; - -var _devAssert = __nccwpck_require__(7437); - -var _didYouMean = __nccwpck_require__(1627); - -var _identityFunc = __nccwpck_require__(3374); - -var _inspect = __nccwpck_require__(3707); - -var _instanceOf = __nccwpck_require__(6524); - -var _isObjectLike = __nccwpck_require__(7502); - -var _keyMap = __nccwpck_require__(1529); - -var _keyValMap = __nccwpck_require__(4876); - -var _mapValue = __nccwpck_require__(9261); - -var _suggestionList = __nccwpck_require__(3046); - -var _toObjMap = __nccwpck_require__(1594); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _printer = __nccwpck_require__(4758); - -var _valueFromASTUntyped = __nccwpck_require__(7252); - -var _assertName = __nccwpck_require__(5275); - -function isType(type) { - return ( - isScalarType(type) || - isObjectType(type) || - isInterfaceType(type) || - isUnionType(type) || - isEnumType(type) || - isInputObjectType(type) || - isListType(type) || - isNonNullType(type) - ); -} - -function assertType(type) { - if (!isType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL type.`, - ); - } - - return type; -} -/** - * There are predicates for each kind of GraphQL type. - */ - -function isScalarType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLScalarType); -} - -function assertScalarType(type) { - if (!isScalarType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Scalar type.`, - ); - } - - return type; -} - -function isObjectType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLObjectType); -} - -function assertObjectType(type) { - if (!isObjectType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Object type.`, - ); - } - - return type; -} - -function isInterfaceType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLInterfaceType); -} - -function assertInterfaceType(type) { - if (!isInterfaceType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Interface type.`, - ); - } - - return type; -} - -function isUnionType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLUnionType); -} - -function assertUnionType(type) { - if (!isUnionType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Union type.`, - ); - } - - return type; -} - -function isEnumType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLEnumType); -} - -function assertEnumType(type) { - if (!isEnumType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Enum type.`, - ); - } - - return type; -} - -function isInputObjectType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLInputObjectType); -} - -function assertInputObjectType(type) { - if (!isInputObjectType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)( - type, - )} to be a GraphQL Input Object type.`, - ); - } - - return type; -} - -function isListType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLList); -} - -function assertListType(type) { - if (!isListType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL List type.`, - ); - } - - return type; -} - -function isNonNullType(type) { - return (0, _instanceOf.instanceOf)(type, GraphQLNonNull); -} - -function assertNonNullType(type) { - if (!isNonNullType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL Non-Null type.`, - ); - } - - return type; -} -/** - * These types may be used as input types for arguments and directives. - */ - -function isInputType(type) { - return ( - isScalarType(type) || - isEnumType(type) || - isInputObjectType(type) || - (isWrappingType(type) && isInputType(type.ofType)) - ); -} - -function assertInputType(type) { - if (!isInputType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL input type.`, - ); - } - - return type; -} -/** - * These types may be used as output types as the result of fields. - */ - -function isOutputType(type) { - return ( - isScalarType(type) || - isObjectType(type) || - isInterfaceType(type) || - isUnionType(type) || - isEnumType(type) || - (isWrappingType(type) && isOutputType(type.ofType)) - ); -} - -function assertOutputType(type) { - if (!isOutputType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL output type.`, - ); - } - - return type; -} -/** - * These types may describe types which may be leaf values. - */ - -function isLeafType(type) { - return isScalarType(type) || isEnumType(type); -} - -function assertLeafType(type) { - if (!isLeafType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL leaf type.`, - ); - } - - return type; -} -/** - * These types may describe the parent context of a selection set. - */ - -function isCompositeType(type) { - return isObjectType(type) || isInterfaceType(type) || isUnionType(type); -} - -function assertCompositeType(type) { - if (!isCompositeType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL composite type.`, - ); - } - - return type; -} -/** - * These types may describe the parent context of a selection set. - */ - -function isAbstractType(type) { - return isInterfaceType(type) || isUnionType(type); -} - -function assertAbstractType(type) { - if (!isAbstractType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL abstract type.`, - ); - } - - return type; -} -/** - * List Type Wrapper - * - * A list is a wrapping type which points to another type. - * Lists are often created within the context of defining the fields of - * an object type. - * - * Example: - * - * ```ts - * const PersonType = new GraphQLObjectType({ - * name: 'Person', - * fields: () => ({ - * parents: { type: new GraphQLList(PersonType) }, - * children: { type: new GraphQLList(PersonType) }, - * }) - * }) - * ``` - */ - -class GraphQLList { - constructor(ofType) { - isType(ofType) || - (0, _devAssert.devAssert)( - false, - `Expected ${(0, _inspect.inspect)(ofType)} to be a GraphQL type.`, - ); - this.ofType = ofType; - } - - get [Symbol.toStringTag]() { - return 'GraphQLList'; - } - - toString() { - return '[' + String(this.ofType) + ']'; - } - - toJSON() { - return this.toString(); - } -} -/** - * Non-Null Type Wrapper - * - * A non-null is a wrapping type which points to another type. - * Non-null types enforce that their values are never null and can ensure - * an error is raised if this ever occurs during a request. It is useful for - * fields which you can make a strong guarantee on non-nullability, for example - * usually the id field of a database row will never be null. - * - * Example: - * - * ```ts - * const RowType = new GraphQLObjectType({ - * name: 'Row', - * fields: () => ({ - * id: { type: new GraphQLNonNull(GraphQLString) }, - * }) - * }) - * ``` - * Note: the enforcement of non-nullability occurs within the executor. - */ - -exports.GraphQLList = GraphQLList; - -class GraphQLNonNull { - constructor(ofType) { - isNullableType(ofType) || - (0, _devAssert.devAssert)( - false, - `Expected ${(0, _inspect.inspect)( - ofType, - )} to be a GraphQL nullable type.`, - ); - this.ofType = ofType; - } - - get [Symbol.toStringTag]() { - return 'GraphQLNonNull'; - } - - toString() { - return String(this.ofType) + '!'; - } - - toJSON() { - return this.toString(); - } -} -/** - * These types wrap and modify other types - */ - -exports.GraphQLNonNull = GraphQLNonNull; - -function isWrappingType(type) { - return isListType(type) || isNonNullType(type); -} - -function assertWrappingType(type) { - if (!isWrappingType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL wrapping type.`, - ); - } - - return type; -} -/** - * These types can all accept null as a value. - */ - -function isNullableType(type) { - return isType(type) && !isNonNullType(type); -} - -function assertNullableType(type) { - if (!isNullableType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL nullable type.`, - ); - } - - return type; -} - -function getNullableType(type) { - if (type) { - return isNonNullType(type) ? type.ofType : type; - } -} -/** - * These named types do not include modifiers like List or NonNull. - */ - -function isNamedType(type) { - return ( - isScalarType(type) || - isObjectType(type) || - isInterfaceType(type) || - isUnionType(type) || - isEnumType(type) || - isInputObjectType(type) - ); -} - -function assertNamedType(type) { - if (!isNamedType(type)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(type)} to be a GraphQL named type.`, - ); - } - - return type; -} - -function getNamedType(type) { - if (type) { - let unwrappedType = type; - - while (isWrappingType(unwrappedType)) { - unwrappedType = unwrappedType.ofType; - } - - return unwrappedType; - } -} -/** - * Used while defining GraphQL types to allow for circular references in - * otherwise immutable type definitions. - */ - -function resolveReadonlyArrayThunk(thunk) { - return typeof thunk === 'function' ? thunk() : thunk; -} - -function resolveObjMapThunk(thunk) { - return typeof thunk === 'function' ? thunk() : thunk; -} -/** - * Custom extensions - * - * @remarks - * Use a unique identifier name for your extension, for example the name of - * your library or project. Do not use a shortened identifier as this increases - * the risk of conflicts. We recommend you add at most one extension field, - * an object which can contain all the values you need. - */ - -/** - * Scalar Type Definition - * - * The leaf values of any request and input values to arguments are - * Scalars (or Enums) and are defined with a name and a series of functions - * used to parse input from ast or variables and to ensure validity. - * - * If a type's serialize function returns `null` or does not return a value - * (i.e. it returns `undefined`) then an error will be raised and a `null` - * value will be returned in the response. It is always better to validate - * - * Example: - * - * ```ts - * const OddType = new GraphQLScalarType({ - * name: 'Odd', - * serialize(value) { - * if (!Number.isFinite(value)) { - * throw new Error( - * `Scalar "Odd" cannot represent "${value}" since it is not a finite number.`, - * ); - * } - * - * if (value % 2 === 0) { - * throw new Error(`Scalar "Odd" cannot represent "${value}" since it is even.`); - * } - * return value; - * } - * }); - * ``` - */ -class GraphQLScalarType { - constructor(config) { - var _config$parseValue, - _config$serialize, - _config$parseLiteral, - _config$extensionASTN; - - const parseValue = - (_config$parseValue = config.parseValue) !== null && - _config$parseValue !== void 0 - ? _config$parseValue - : _identityFunc.identityFunc; - this.name = (0, _assertName.assertName)(config.name); - this.description = config.description; - this.specifiedByURL = config.specifiedByURL; - this.serialize = - (_config$serialize = config.serialize) !== null && - _config$serialize !== void 0 - ? _config$serialize - : _identityFunc.identityFunc; - this.parseValue = parseValue; - this.parseLiteral = - (_config$parseLiteral = config.parseLiteral) !== null && - _config$parseLiteral !== void 0 - ? _config$parseLiteral - : (node, variables) => - parseValue( - (0, _valueFromASTUntyped.valueFromASTUntyped)(node, variables), - ); - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - this.extensionASTNodes = - (_config$extensionASTN = config.extensionASTNodes) !== null && - _config$extensionASTN !== void 0 - ? _config$extensionASTN - : []; - config.specifiedByURL == null || - typeof config.specifiedByURL === 'string' || - (0, _devAssert.devAssert)( - false, - `${this.name} must provide "specifiedByURL" as a string, ` + - `but got: ${(0, _inspect.inspect)(config.specifiedByURL)}.`, - ); - config.serialize == null || - typeof config.serialize === 'function' || - (0, _devAssert.devAssert)( - false, - `${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`, - ); - - if (config.parseLiteral) { - (typeof config.parseValue === 'function' && - typeof config.parseLiteral === 'function') || - (0, _devAssert.devAssert)( - false, - `${this.name} must provide both "parseValue" and "parseLiteral" functions.`, - ); - } - } - - get [Symbol.toStringTag]() { - return 'GraphQLScalarType'; - } - - toConfig() { - return { - name: this.name, - description: this.description, - specifiedByURL: this.specifiedByURL, - serialize: this.serialize, - parseValue: this.parseValue, - parseLiteral: this.parseLiteral, - extensions: this.extensions, - astNode: this.astNode, - extensionASTNodes: this.extensionASTNodes, - }; - } - - toString() { - return this.name; - } - - toJSON() { - return this.toString(); - } -} - -exports.GraphQLScalarType = GraphQLScalarType; - -/** - * Object Type Definition - * - * Almost all of the GraphQL types you define will be object types. Object types - * have a name, but most importantly describe their fields. - * - * Example: - * - * ```ts - * const AddressType = new GraphQLObjectType({ - * name: 'Address', - * fields: { - * street: { type: GraphQLString }, - * number: { type: GraphQLInt }, - * formatted: { - * type: GraphQLString, - * resolve(obj) { - * return obj.number + ' ' + obj.street - * } - * } - * } - * }); - * ``` - * - * When two types need to refer to each other, or a type needs to refer to - * itself in a field, you can use a function expression (aka a closure or a - * thunk) to supply the fields lazily. - * - * Example: - * - * ```ts - * const PersonType = new GraphQLObjectType({ - * name: 'Person', - * fields: () => ({ - * name: { type: GraphQLString }, - * bestFriend: { type: PersonType }, - * }) - * }); - * ``` - */ -class GraphQLObjectType { - constructor(config) { - var _config$extensionASTN2; - - this.name = (0, _assertName.assertName)(config.name); - this.description = config.description; - this.isTypeOf = config.isTypeOf; - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - this.extensionASTNodes = - (_config$extensionASTN2 = config.extensionASTNodes) !== null && - _config$extensionASTN2 !== void 0 - ? _config$extensionASTN2 - : []; - - this._fields = () => defineFieldMap(config); - - this._interfaces = () => defineInterfaces(config); - - config.isTypeOf == null || - typeof config.isTypeOf === 'function' || - (0, _devAssert.devAssert)( - false, - `${this.name} must provide "isTypeOf" as a function, ` + - `but got: ${(0, _inspect.inspect)(config.isTypeOf)}.`, - ); - } - - get [Symbol.toStringTag]() { - return 'GraphQLObjectType'; - } - - getFields() { - if (typeof this._fields === 'function') { - this._fields = this._fields(); - } - - return this._fields; - } - - getInterfaces() { - if (typeof this._interfaces === 'function') { - this._interfaces = this._interfaces(); - } - - return this._interfaces; - } - - toConfig() { - return { - name: this.name, - description: this.description, - interfaces: this.getInterfaces(), - fields: fieldsToFieldsConfig(this.getFields()), - isTypeOf: this.isTypeOf, - extensions: this.extensions, - astNode: this.astNode, - extensionASTNodes: this.extensionASTNodes, - }; - } - - toString() { - return this.name; - } - - toJSON() { - return this.toString(); - } -} - -exports.GraphQLObjectType = GraphQLObjectType; - -function defineInterfaces(config) { - var _config$interfaces; - - const interfaces = resolveReadonlyArrayThunk( - (_config$interfaces = config.interfaces) !== null && - _config$interfaces !== void 0 - ? _config$interfaces - : [], - ); - Array.isArray(interfaces) || - (0, _devAssert.devAssert)( - false, - `${config.name} interfaces must be an Array or a function which returns an Array.`, - ); - return interfaces; -} - -function defineFieldMap(config) { - const fieldMap = resolveObjMapThunk(config.fields); - isPlainObj(fieldMap) || - (0, _devAssert.devAssert)( - false, - `${config.name} fields must be an object with field names as keys or a function which returns such an object.`, - ); - return (0, _mapValue.mapValue)(fieldMap, (fieldConfig, fieldName) => { - var _fieldConfig$args; - - isPlainObj(fieldConfig) || - (0, _devAssert.devAssert)( - false, - `${config.name}.${fieldName} field config must be an object.`, - ); - fieldConfig.resolve == null || - typeof fieldConfig.resolve === 'function' || - (0, _devAssert.devAssert)( - false, - `${config.name}.${fieldName} field resolver must be a function if ` + - `provided, but got: ${(0, _inspect.inspect)(fieldConfig.resolve)}.`, - ); - const argsConfig = - (_fieldConfig$args = fieldConfig.args) !== null && - _fieldConfig$args !== void 0 - ? _fieldConfig$args - : {}; - isPlainObj(argsConfig) || - (0, _devAssert.devAssert)( - false, - `${config.name}.${fieldName} args must be an object with argument names as keys.`, - ); - return { - name: (0, _assertName.assertName)(fieldName), - description: fieldConfig.description, - type: fieldConfig.type, - args: defineArguments(argsConfig), - resolve: fieldConfig.resolve, - subscribe: fieldConfig.subscribe, - deprecationReason: fieldConfig.deprecationReason, - extensions: (0, _toObjMap.toObjMap)(fieldConfig.extensions), - astNode: fieldConfig.astNode, - }; - }); -} - -function defineArguments(config) { - return Object.entries(config).map(([argName, argConfig]) => ({ - name: (0, _assertName.assertName)(argName), - description: argConfig.description, - type: argConfig.type, - defaultValue: argConfig.defaultValue, - deprecationReason: argConfig.deprecationReason, - extensions: (0, _toObjMap.toObjMap)(argConfig.extensions), - astNode: argConfig.astNode, - })); -} - -function isPlainObj(obj) { - return (0, _isObjectLike.isObjectLike)(obj) && !Array.isArray(obj); -} - -function fieldsToFieldsConfig(fields) { - return (0, _mapValue.mapValue)(fields, (field) => ({ - description: field.description, - type: field.type, - args: argsToArgsConfig(field.args), - resolve: field.resolve, - subscribe: field.subscribe, - deprecationReason: field.deprecationReason, - extensions: field.extensions, - astNode: field.astNode, - })); -} -/** - * @internal - */ - -function argsToArgsConfig(args) { - return (0, _keyValMap.keyValMap)( - args, - (arg) => arg.name, - (arg) => ({ - description: arg.description, - type: arg.type, - defaultValue: arg.defaultValue, - deprecationReason: arg.deprecationReason, - extensions: arg.extensions, - astNode: arg.astNode, - }), - ); -} - -function isRequiredArgument(arg) { - return isNonNullType(arg.type) && arg.defaultValue === undefined; -} - -/** - * Interface Type Definition - * - * When a field can return one of a heterogeneous set of types, a Interface type - * is used to describe what types are possible, what fields are in common across - * all types, as well as a function to determine which type is actually used - * when the field is resolved. - * - * Example: - * - * ```ts - * const EntityType = new GraphQLInterfaceType({ - * name: 'Entity', - * fields: { - * name: { type: GraphQLString } - * } - * }); - * ``` - */ -class GraphQLInterfaceType { - constructor(config) { - var _config$extensionASTN3; - - this.name = (0, _assertName.assertName)(config.name); - this.description = config.description; - this.resolveType = config.resolveType; - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - this.extensionASTNodes = - (_config$extensionASTN3 = config.extensionASTNodes) !== null && - _config$extensionASTN3 !== void 0 - ? _config$extensionASTN3 - : []; - this._fields = defineFieldMap.bind(undefined, config); - this._interfaces = defineInterfaces.bind(undefined, config); - config.resolveType == null || - typeof config.resolveType === 'function' || - (0, _devAssert.devAssert)( - false, - `${this.name} must provide "resolveType" as a function, ` + - `but got: ${(0, _inspect.inspect)(config.resolveType)}.`, - ); - } - - get [Symbol.toStringTag]() { - return 'GraphQLInterfaceType'; - } - - getFields() { - if (typeof this._fields === 'function') { - this._fields = this._fields(); - } - - return this._fields; - } - - getInterfaces() { - if (typeof this._interfaces === 'function') { - this._interfaces = this._interfaces(); - } - - return this._interfaces; - } - - toConfig() { - return { - name: this.name, - description: this.description, - interfaces: this.getInterfaces(), - fields: fieldsToFieldsConfig(this.getFields()), - resolveType: this.resolveType, - extensions: this.extensions, - astNode: this.astNode, - extensionASTNodes: this.extensionASTNodes, - }; - } - - toString() { - return this.name; - } - - toJSON() { - return this.toString(); - } -} - -exports.GraphQLInterfaceType = GraphQLInterfaceType; - -/** - * Union Type Definition - * - * When a field can return one of a heterogeneous set of types, a Union type - * is used to describe what types are possible as well as providing a function - * to determine which type is actually used when the field is resolved. - * - * Example: - * - * ```ts - * const PetType = new GraphQLUnionType({ - * name: 'Pet', - * types: [ DogType, CatType ], - * resolveType(value) { - * if (value instanceof Dog) { - * return DogType; - * } - * if (value instanceof Cat) { - * return CatType; - * } - * } - * }); - * ``` - */ -class GraphQLUnionType { - constructor(config) { - var _config$extensionASTN4; - - this.name = (0, _assertName.assertName)(config.name); - this.description = config.description; - this.resolveType = config.resolveType; - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - this.extensionASTNodes = - (_config$extensionASTN4 = config.extensionASTNodes) !== null && - _config$extensionASTN4 !== void 0 - ? _config$extensionASTN4 - : []; - this._types = defineTypes.bind(undefined, config); - config.resolveType == null || - typeof config.resolveType === 'function' || - (0, _devAssert.devAssert)( - false, - `${this.name} must provide "resolveType" as a function, ` + - `but got: ${(0, _inspect.inspect)(config.resolveType)}.`, - ); - } - - get [Symbol.toStringTag]() { - return 'GraphQLUnionType'; - } - - getTypes() { - if (typeof this._types === 'function') { - this._types = this._types(); - } - - return this._types; - } - - toConfig() { - return { - name: this.name, - description: this.description, - types: this.getTypes(), - resolveType: this.resolveType, - extensions: this.extensions, - astNode: this.astNode, - extensionASTNodes: this.extensionASTNodes, - }; - } - - toString() { - return this.name; - } - - toJSON() { - return this.toString(); - } -} - -exports.GraphQLUnionType = GraphQLUnionType; - -function defineTypes(config) { - const types = resolveReadonlyArrayThunk(config.types); - Array.isArray(types) || - (0, _devAssert.devAssert)( - false, - `Must provide Array of types or a function which returns such an array for Union ${config.name}.`, - ); - return types; -} - -/** - * Enum Type Definition - * - * Some leaf values of requests and input values are Enums. GraphQL serializes - * Enum values as strings, however internally Enums can be represented by any - * kind of type, often integers. - * - * Example: - * - * ```ts - * const RGBType = new GraphQLEnumType({ - * name: 'RGB', - * values: { - * RED: { value: 0 }, - * GREEN: { value: 1 }, - * BLUE: { value: 2 } - * } - * }); - * ``` - * - * Note: If a value is not provided in a definition, the name of the enum value - * will be used as its internal value. - */ -class GraphQLEnumType { - /* */ - constructor(config) { - var _config$extensionASTN5; - - this.name = (0, _assertName.assertName)(config.name); - this.description = config.description; - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - this.extensionASTNodes = - (_config$extensionASTN5 = config.extensionASTNodes) !== null && - _config$extensionASTN5 !== void 0 - ? _config$extensionASTN5 - : []; - this._values = - typeof config.values === 'function' - ? config.values - : defineEnumValues(this.name, config.values); - this._valueLookup = null; - this._nameLookup = null; - } - - get [Symbol.toStringTag]() { - return 'GraphQLEnumType'; - } - - getValues() { - if (typeof this._values === 'function') { - this._values = defineEnumValues(this.name, this._values()); - } - - return this._values; - } - - getValue(name) { - if (this._nameLookup === null) { - this._nameLookup = (0, _keyMap.keyMap)( - this.getValues(), - (value) => value.name, - ); - } - - return this._nameLookup[name]; - } - - serialize(outputValue) { - if (this._valueLookup === null) { - this._valueLookup = new Map( - this.getValues().map((enumValue) => [enumValue.value, enumValue]), - ); - } - - const enumValue = this._valueLookup.get(outputValue); - - if (enumValue === undefined) { - throw new _GraphQLError.GraphQLError( - `Enum "${this.name}" cannot represent value: ${(0, _inspect.inspect)( - outputValue, - )}`, - ); - } - - return enumValue.name; - } - - parseValue(inputValue) /* T */ - { - if (typeof inputValue !== 'string') { - const valueStr = (0, _inspect.inspect)(inputValue); - throw new _GraphQLError.GraphQLError( - `Enum "${this.name}" cannot represent non-string value: ${valueStr}.` + - didYouMeanEnumValue(this, valueStr), - ); - } - - const enumValue = this.getValue(inputValue); - - if (enumValue == null) { - throw new _GraphQLError.GraphQLError( - `Value "${inputValue}" does not exist in "${this.name}" enum.` + - didYouMeanEnumValue(this, inputValue), - ); - } - - return enumValue.value; - } - - parseLiteral(valueNode, _variables) /* T */ - { - // Note: variables will be resolved to a value before calling this function. - if (valueNode.kind !== _kinds.Kind.ENUM) { - const valueStr = (0, _printer.print)(valueNode); - throw new _GraphQLError.GraphQLError( - `Enum "${this.name}" cannot represent non-enum value: ${valueStr}.` + - didYouMeanEnumValue(this, valueStr), - { - nodes: valueNode, - }, - ); - } - - const enumValue = this.getValue(valueNode.value); - - if (enumValue == null) { - const valueStr = (0, _printer.print)(valueNode); - throw new _GraphQLError.GraphQLError( - `Value "${valueStr}" does not exist in "${this.name}" enum.` + - didYouMeanEnumValue(this, valueStr), - { - nodes: valueNode, - }, - ); - } - - return enumValue.value; - } - - toConfig() { - const values = (0, _keyValMap.keyValMap)( - this.getValues(), - (value) => value.name, - (value) => ({ - description: value.description, - value: value.value, - deprecationReason: value.deprecationReason, - extensions: value.extensions, - astNode: value.astNode, - }), - ); - return { - name: this.name, - description: this.description, - values, - extensions: this.extensions, - astNode: this.astNode, - extensionASTNodes: this.extensionASTNodes, - }; - } - - toString() { - return this.name; - } - - toJSON() { - return this.toString(); - } -} - -exports.GraphQLEnumType = GraphQLEnumType; - -function didYouMeanEnumValue(enumType, unknownValueStr) { - const allNames = enumType.getValues().map((value) => value.name); - const suggestedValues = (0, _suggestionList.suggestionList)( - unknownValueStr, - allNames, - ); - return (0, _didYouMean.didYouMean)('the enum value', suggestedValues); -} - -function defineEnumValues(typeName, valueMap) { - isPlainObj(valueMap) || - (0, _devAssert.devAssert)( - false, - `${typeName} values must be an object with value names as keys.`, - ); - return Object.entries(valueMap).map(([valueName, valueConfig]) => { - isPlainObj(valueConfig) || - (0, _devAssert.devAssert)( - false, - `${typeName}.${valueName} must refer to an object with a "value" key ` + - `representing an internal value but got: ${(0, _inspect.inspect)( - valueConfig, - )}.`, - ); - return { - name: (0, _assertName.assertEnumValueName)(valueName), - description: valueConfig.description, - value: valueConfig.value !== undefined ? valueConfig.value : valueName, - deprecationReason: valueConfig.deprecationReason, - extensions: (0, _toObjMap.toObjMap)(valueConfig.extensions), - astNode: valueConfig.astNode, - }; - }); -} - -/** - * Input Object Type Definition - * - * An input object defines a structured collection of fields which may be - * supplied to a field argument. - * - * Using `NonNull` will ensure that a value must be provided by the query - * - * Example: - * - * ```ts - * const GeoPoint = new GraphQLInputObjectType({ - * name: 'GeoPoint', - * fields: { - * lat: { type: new GraphQLNonNull(GraphQLFloat) }, - * lon: { type: new GraphQLNonNull(GraphQLFloat) }, - * alt: { type: GraphQLFloat, defaultValue: 0 }, - * } - * }); - * ``` - */ -class GraphQLInputObjectType { - constructor(config) { - var _config$extensionASTN6, _config$isOneOf; - - this.name = (0, _assertName.assertName)(config.name); - this.description = config.description; - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - this.extensionASTNodes = - (_config$extensionASTN6 = config.extensionASTNodes) !== null && - _config$extensionASTN6 !== void 0 - ? _config$extensionASTN6 - : []; - this.isOneOf = - (_config$isOneOf = config.isOneOf) !== null && _config$isOneOf !== void 0 - ? _config$isOneOf - : false; - this._fields = defineInputFieldMap.bind(undefined, config); - } - - get [Symbol.toStringTag]() { - return 'GraphQLInputObjectType'; - } - - getFields() { - if (typeof this._fields === 'function') { - this._fields = this._fields(); - } - - return this._fields; - } - - toConfig() { - const fields = (0, _mapValue.mapValue)(this.getFields(), (field) => ({ - description: field.description, - type: field.type, - defaultValue: field.defaultValue, - deprecationReason: field.deprecationReason, - extensions: field.extensions, - astNode: field.astNode, - })); - return { - name: this.name, - description: this.description, - fields, - extensions: this.extensions, - astNode: this.astNode, - extensionASTNodes: this.extensionASTNodes, - isOneOf: this.isOneOf, - }; - } - - toString() { - return this.name; - } - - toJSON() { - return this.toString(); - } -} - -exports.GraphQLInputObjectType = GraphQLInputObjectType; - -function defineInputFieldMap(config) { - const fieldMap = resolveObjMapThunk(config.fields); - isPlainObj(fieldMap) || - (0, _devAssert.devAssert)( - false, - `${config.name} fields must be an object with field names as keys or a function which returns such an object.`, - ); - return (0, _mapValue.mapValue)(fieldMap, (fieldConfig, fieldName) => { - !('resolve' in fieldConfig) || - (0, _devAssert.devAssert)( - false, - `${config.name}.${fieldName} field has a resolve property, but Input Types cannot define resolvers.`, - ); - return { - name: (0, _assertName.assertName)(fieldName), - description: fieldConfig.description, - type: fieldConfig.type, - defaultValue: fieldConfig.defaultValue, - deprecationReason: fieldConfig.deprecationReason, - extensions: (0, _toObjMap.toObjMap)(fieldConfig.extensions), - astNode: fieldConfig.astNode, - }; - }); -} - -function isRequiredInputField(field) { - return isNonNullType(field.type) && field.defaultValue === undefined; -} - - -/***/ }), - -/***/ 2572: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.GraphQLSpecifiedByDirective = - exports.GraphQLSkipDirective = - exports.GraphQLOneOfDirective = - exports.GraphQLIncludeDirective = - exports.GraphQLDirective = - exports.GraphQLDeprecatedDirective = - exports.DEFAULT_DEPRECATION_REASON = - void 0; -exports.assertDirective = assertDirective; -exports.isDirective = isDirective; -exports.isSpecifiedDirective = isSpecifiedDirective; -exports.specifiedDirectives = void 0; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _instanceOf = __nccwpck_require__(6524); - -var _isObjectLike = __nccwpck_require__(7502); - -var _toObjMap = __nccwpck_require__(1594); - -var _directiveLocation = __nccwpck_require__(3180); - -var _assertName = __nccwpck_require__(5275); - -var _definition = __nccwpck_require__(699); - -var _scalars = __nccwpck_require__(8633); - -/** - * Test if the given value is a GraphQL directive. - */ -function isDirective(directive) { - return (0, _instanceOf.instanceOf)(directive, GraphQLDirective); -} - -function assertDirective(directive) { - if (!isDirective(directive)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(directive)} to be a GraphQL directive.`, - ); - } - - return directive; -} -/** - * Custom extensions - * - * @remarks - * Use a unique identifier name for your extension, for example the name of - * your library or project. Do not use a shortened identifier as this increases - * the risk of conflicts. We recommend you add at most one extension field, - * an object which can contain all the values you need. - */ - -/** - * Directives are used by the GraphQL runtime as a way of modifying execution - * behavior. Type system creators will usually not create these directly. - */ -class GraphQLDirective { - constructor(config) { - var _config$isRepeatable, _config$args; - - this.name = (0, _assertName.assertName)(config.name); - this.description = config.description; - this.locations = config.locations; - this.isRepeatable = - (_config$isRepeatable = config.isRepeatable) !== null && - _config$isRepeatable !== void 0 - ? _config$isRepeatable - : false; - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - Array.isArray(config.locations) || - (0, _devAssert.devAssert)( - false, - `@${config.name} locations must be an Array.`, - ); - const args = - (_config$args = config.args) !== null && _config$args !== void 0 - ? _config$args - : {}; - ((0, _isObjectLike.isObjectLike)(args) && !Array.isArray(args)) || - (0, _devAssert.devAssert)( - false, - `@${config.name} args must be an object with argument names as keys.`, - ); - this.args = (0, _definition.defineArguments)(args); - } - - get [Symbol.toStringTag]() { - return 'GraphQLDirective'; - } - - toConfig() { - return { - name: this.name, - description: this.description, - locations: this.locations, - args: (0, _definition.argsToArgsConfig)(this.args), - isRepeatable: this.isRepeatable, - extensions: this.extensions, - astNode: this.astNode, - }; - } - - toString() { - return '@' + this.name; - } - - toJSON() { - return this.toString(); - } -} - -exports.GraphQLDirective = GraphQLDirective; - -/** - * Used to conditionally include fields or fragments. - */ -const GraphQLIncludeDirective = new GraphQLDirective({ - name: 'include', - description: - 'Directs the executor to include this field or fragment only when the `if` argument is true.', - locations: [ - _directiveLocation.DirectiveLocation.FIELD, - _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, - _directiveLocation.DirectiveLocation.INLINE_FRAGMENT, - ], - args: { - if: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), - description: 'Included when true.', - }, - }, -}); -/** - * Used to conditionally skip (exclude) fields or fragments. - */ - -exports.GraphQLIncludeDirective = GraphQLIncludeDirective; -const GraphQLSkipDirective = new GraphQLDirective({ - name: 'skip', - description: - 'Directs the executor to skip this field or fragment when the `if` argument is true.', - locations: [ - _directiveLocation.DirectiveLocation.FIELD, - _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, - _directiveLocation.DirectiveLocation.INLINE_FRAGMENT, - ], - args: { - if: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), - description: 'Skipped when true.', - }, - }, -}); -/** - * Constant string used for default reason for a deprecation. - */ - -exports.GraphQLSkipDirective = GraphQLSkipDirective; -const DEFAULT_DEPRECATION_REASON = 'No longer supported'; -/** - * Used to declare element of a GraphQL schema as deprecated. - */ - -exports.DEFAULT_DEPRECATION_REASON = DEFAULT_DEPRECATION_REASON; -const GraphQLDeprecatedDirective = new GraphQLDirective({ - name: 'deprecated', - description: 'Marks an element of a GraphQL schema as no longer supported.', - locations: [ - _directiveLocation.DirectiveLocation.FIELD_DEFINITION, - _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION, - _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION, - _directiveLocation.DirectiveLocation.ENUM_VALUE, - ], - args: { - reason: { - type: _scalars.GraphQLString, - description: - 'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).', - defaultValue: DEFAULT_DEPRECATION_REASON, - }, - }, -}); -/** - * Used to provide a URL for specifying the behavior of custom scalar definitions. - */ - -exports.GraphQLDeprecatedDirective = GraphQLDeprecatedDirective; -const GraphQLSpecifiedByDirective = new GraphQLDirective({ - name: 'specifiedBy', - description: 'Exposes a URL that specifies the behavior of this scalar.', - locations: [_directiveLocation.DirectiveLocation.SCALAR], - args: { - url: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLString), - description: 'The URL that specifies the behavior of this scalar.', - }, - }, -}); -/** - * Used to indicate an Input Object is a OneOf Input Object. - */ - -exports.GraphQLSpecifiedByDirective = GraphQLSpecifiedByDirective; -const GraphQLOneOfDirective = new GraphQLDirective({ - name: 'oneOf', - description: - 'Indicates exactly one field must be supplied and this field must not be `null`.', - locations: [_directiveLocation.DirectiveLocation.INPUT_OBJECT], - args: {}, -}); -/** - * The full list of specified directives. - */ - -exports.GraphQLOneOfDirective = GraphQLOneOfDirective; -const specifiedDirectives = Object.freeze([ - GraphQLIncludeDirective, - GraphQLSkipDirective, - GraphQLDeprecatedDirective, - GraphQLSpecifiedByDirective, - GraphQLOneOfDirective, -]); -exports.specifiedDirectives = specifiedDirectives; - -function isSpecifiedDirective(directive) { - return specifiedDirectives.some(({ name }) => name === directive.name); -} - - -/***/ }), - -/***/ 3788: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -Object.defineProperty(exports, "DEFAULT_DEPRECATION_REASON", ({ - enumerable: true, - get: function () { - return _directives.DEFAULT_DEPRECATION_REASON; - }, -})); -Object.defineProperty(exports, "GRAPHQL_MAX_INT", ({ - enumerable: true, - get: function () { - return _scalars.GRAPHQL_MAX_INT; - }, -})); -Object.defineProperty(exports, "GRAPHQL_MIN_INT", ({ - enumerable: true, - get: function () { - return _scalars.GRAPHQL_MIN_INT; - }, -})); -Object.defineProperty(exports, "GraphQLBoolean", ({ - enumerable: true, - get: function () { - return _scalars.GraphQLBoolean; - }, -})); -Object.defineProperty(exports, "GraphQLDeprecatedDirective", ({ - enumerable: true, - get: function () { - return _directives.GraphQLDeprecatedDirective; - }, -})); -Object.defineProperty(exports, "GraphQLDirective", ({ - enumerable: true, - get: function () { - return _directives.GraphQLDirective; - }, -})); -Object.defineProperty(exports, "GraphQLEnumType", ({ - enumerable: true, - get: function () { - return _definition.GraphQLEnumType; - }, -})); -Object.defineProperty(exports, "GraphQLFloat", ({ - enumerable: true, - get: function () { - return _scalars.GraphQLFloat; - }, -})); -Object.defineProperty(exports, "GraphQLID", ({ - enumerable: true, - get: function () { - return _scalars.GraphQLID; - }, -})); -Object.defineProperty(exports, "GraphQLIncludeDirective", ({ - enumerable: true, - get: function () { - return _directives.GraphQLIncludeDirective; - }, -})); -Object.defineProperty(exports, "GraphQLInputObjectType", ({ - enumerable: true, - get: function () { - return _definition.GraphQLInputObjectType; - }, -})); -Object.defineProperty(exports, "GraphQLInt", ({ - enumerable: true, - get: function () { - return _scalars.GraphQLInt; - }, -})); -Object.defineProperty(exports, "GraphQLInterfaceType", ({ - enumerable: true, - get: function () { - return _definition.GraphQLInterfaceType; - }, -})); -Object.defineProperty(exports, "GraphQLList", ({ - enumerable: true, - get: function () { - return _definition.GraphQLList; - }, -})); -Object.defineProperty(exports, "GraphQLNonNull", ({ - enumerable: true, - get: function () { - return _definition.GraphQLNonNull; - }, -})); -Object.defineProperty(exports, "GraphQLObjectType", ({ - enumerable: true, - get: function () { - return _definition.GraphQLObjectType; - }, -})); -Object.defineProperty(exports, "GraphQLOneOfDirective", ({ - enumerable: true, - get: function () { - return _directives.GraphQLOneOfDirective; - }, -})); -Object.defineProperty(exports, "GraphQLScalarType", ({ - enumerable: true, - get: function () { - return _definition.GraphQLScalarType; - }, -})); -Object.defineProperty(exports, "GraphQLSchema", ({ - enumerable: true, - get: function () { - return _schema.GraphQLSchema; - }, -})); -Object.defineProperty(exports, "GraphQLSkipDirective", ({ - enumerable: true, - get: function () { - return _directives.GraphQLSkipDirective; - }, -})); -Object.defineProperty(exports, "GraphQLSpecifiedByDirective", ({ - enumerable: true, - get: function () { - return _directives.GraphQLSpecifiedByDirective; - }, -})); -Object.defineProperty(exports, "GraphQLString", ({ - enumerable: true, - get: function () { - return _scalars.GraphQLString; - }, -})); -Object.defineProperty(exports, "GraphQLUnionType", ({ - enumerable: true, - get: function () { - return _definition.GraphQLUnionType; - }, -})); -Object.defineProperty(exports, "SchemaMetaFieldDef", ({ - enumerable: true, - get: function () { - return _introspection.SchemaMetaFieldDef; - }, -})); -Object.defineProperty(exports, "TypeKind", ({ - enumerable: true, - get: function () { - return _introspection.TypeKind; - }, -})); -Object.defineProperty(exports, "TypeMetaFieldDef", ({ - enumerable: true, - get: function () { - return _introspection.TypeMetaFieldDef; - }, -})); -Object.defineProperty(exports, "TypeNameMetaFieldDef", ({ - enumerable: true, - get: function () { - return _introspection.TypeNameMetaFieldDef; - }, -})); -Object.defineProperty(exports, "__Directive", ({ - enumerable: true, - get: function () { - return _introspection.__Directive; - }, -})); -Object.defineProperty(exports, "__DirectiveLocation", ({ - enumerable: true, - get: function () { - return _introspection.__DirectiveLocation; - }, -})); -Object.defineProperty(exports, "__EnumValue", ({ - enumerable: true, - get: function () { - return _introspection.__EnumValue; - }, -})); -Object.defineProperty(exports, "__Field", ({ - enumerable: true, - get: function () { - return _introspection.__Field; - }, -})); -Object.defineProperty(exports, "__InputValue", ({ - enumerable: true, - get: function () { - return _introspection.__InputValue; - }, -})); -Object.defineProperty(exports, "__Schema", ({ - enumerable: true, - get: function () { - return _introspection.__Schema; - }, -})); -Object.defineProperty(exports, "__Type", ({ - enumerable: true, - get: function () { - return _introspection.__Type; - }, -})); -Object.defineProperty(exports, "__TypeKind", ({ - enumerable: true, - get: function () { - return _introspection.__TypeKind; - }, -})); -Object.defineProperty(exports, "assertAbstractType", ({ - enumerable: true, - get: function () { - return _definition.assertAbstractType; - }, -})); -Object.defineProperty(exports, "assertCompositeType", ({ - enumerable: true, - get: function () { - return _definition.assertCompositeType; - }, -})); -Object.defineProperty(exports, "assertDirective", ({ - enumerable: true, - get: function () { - return _directives.assertDirective; - }, -})); -Object.defineProperty(exports, "assertEnumType", ({ - enumerable: true, - get: function () { - return _definition.assertEnumType; - }, -})); -Object.defineProperty(exports, "assertEnumValueName", ({ - enumerable: true, - get: function () { - return _assertName.assertEnumValueName; - }, -})); -Object.defineProperty(exports, "assertInputObjectType", ({ - enumerable: true, - get: function () { - return _definition.assertInputObjectType; - }, -})); -Object.defineProperty(exports, "assertInputType", ({ - enumerable: true, - get: function () { - return _definition.assertInputType; - }, -})); -Object.defineProperty(exports, "assertInterfaceType", ({ - enumerable: true, - get: function () { - return _definition.assertInterfaceType; - }, -})); -Object.defineProperty(exports, "assertLeafType", ({ - enumerable: true, - get: function () { - return _definition.assertLeafType; - }, -})); -Object.defineProperty(exports, "assertListType", ({ - enumerable: true, - get: function () { - return _definition.assertListType; - }, -})); -Object.defineProperty(exports, "assertName", ({ - enumerable: true, - get: function () { - return _assertName.assertName; - }, -})); -Object.defineProperty(exports, "assertNamedType", ({ - enumerable: true, - get: function () { - return _definition.assertNamedType; - }, -})); -Object.defineProperty(exports, "assertNonNullType", ({ - enumerable: true, - get: function () { - return _definition.assertNonNullType; - }, -})); -Object.defineProperty(exports, "assertNullableType", ({ - enumerable: true, - get: function () { - return _definition.assertNullableType; - }, -})); -Object.defineProperty(exports, "assertObjectType", ({ - enumerable: true, - get: function () { - return _definition.assertObjectType; - }, -})); -Object.defineProperty(exports, "assertOutputType", ({ - enumerable: true, - get: function () { - return _definition.assertOutputType; - }, -})); -Object.defineProperty(exports, "assertScalarType", ({ - enumerable: true, - get: function () { - return _definition.assertScalarType; - }, -})); -Object.defineProperty(exports, "assertSchema", ({ - enumerable: true, - get: function () { - return _schema.assertSchema; - }, -})); -Object.defineProperty(exports, "assertType", ({ - enumerable: true, - get: function () { - return _definition.assertType; - }, -})); -Object.defineProperty(exports, "assertUnionType", ({ - enumerable: true, - get: function () { - return _definition.assertUnionType; - }, -})); -Object.defineProperty(exports, "assertValidSchema", ({ - enumerable: true, - get: function () { - return _validate.assertValidSchema; - }, -})); -Object.defineProperty(exports, "assertWrappingType", ({ - enumerable: true, - get: function () { - return _definition.assertWrappingType; - }, -})); -Object.defineProperty(exports, "getNamedType", ({ - enumerable: true, - get: function () { - return _definition.getNamedType; - }, -})); -Object.defineProperty(exports, "getNullableType", ({ - enumerable: true, - get: function () { - return _definition.getNullableType; - }, -})); -Object.defineProperty(exports, "introspectionTypes", ({ - enumerable: true, - get: function () { - return _introspection.introspectionTypes; - }, -})); -Object.defineProperty(exports, "isAbstractType", ({ - enumerable: true, - get: function () { - return _definition.isAbstractType; - }, -})); -Object.defineProperty(exports, "isCompositeType", ({ - enumerable: true, - get: function () { - return _definition.isCompositeType; - }, -})); -Object.defineProperty(exports, "isDirective", ({ - enumerable: true, - get: function () { - return _directives.isDirective; - }, -})); -Object.defineProperty(exports, "isEnumType", ({ - enumerable: true, - get: function () { - return _definition.isEnumType; - }, -})); -Object.defineProperty(exports, "isInputObjectType", ({ - enumerable: true, - get: function () { - return _definition.isInputObjectType; - }, -})); -Object.defineProperty(exports, "isInputType", ({ - enumerable: true, - get: function () { - return _definition.isInputType; - }, -})); -Object.defineProperty(exports, "isInterfaceType", ({ - enumerable: true, - get: function () { - return _definition.isInterfaceType; - }, -})); -Object.defineProperty(exports, "isIntrospectionType", ({ - enumerable: true, - get: function () { - return _introspection.isIntrospectionType; - }, -})); -Object.defineProperty(exports, "isLeafType", ({ - enumerable: true, - get: function () { - return _definition.isLeafType; - }, -})); -Object.defineProperty(exports, "isListType", ({ - enumerable: true, - get: function () { - return _definition.isListType; - }, -})); -Object.defineProperty(exports, "isNamedType", ({ - enumerable: true, - get: function () { - return _definition.isNamedType; - }, -})); -Object.defineProperty(exports, "isNonNullType", ({ - enumerable: true, - get: function () { - return _definition.isNonNullType; - }, -})); -Object.defineProperty(exports, "isNullableType", ({ - enumerable: true, - get: function () { - return _definition.isNullableType; - }, -})); -Object.defineProperty(exports, "isObjectType", ({ - enumerable: true, - get: function () { - return _definition.isObjectType; - }, -})); -Object.defineProperty(exports, "isOutputType", ({ - enumerable: true, - get: function () { - return _definition.isOutputType; - }, -})); -Object.defineProperty(exports, "isRequiredArgument", ({ - enumerable: true, - get: function () { - return _definition.isRequiredArgument; - }, -})); -Object.defineProperty(exports, "isRequiredInputField", ({ - enumerable: true, - get: function () { - return _definition.isRequiredInputField; - }, -})); -Object.defineProperty(exports, "isScalarType", ({ - enumerable: true, - get: function () { - return _definition.isScalarType; - }, -})); -Object.defineProperty(exports, "isSchema", ({ - enumerable: true, - get: function () { - return _schema.isSchema; - }, -})); -Object.defineProperty(exports, "isSpecifiedDirective", ({ - enumerable: true, - get: function () { - return _directives.isSpecifiedDirective; - }, -})); -Object.defineProperty(exports, "isSpecifiedScalarType", ({ - enumerable: true, - get: function () { - return _scalars.isSpecifiedScalarType; - }, -})); -Object.defineProperty(exports, "isType", ({ - enumerable: true, - get: function () { - return _definition.isType; - }, -})); -Object.defineProperty(exports, "isUnionType", ({ - enumerable: true, - get: function () { - return _definition.isUnionType; - }, -})); -Object.defineProperty(exports, "isWrappingType", ({ - enumerable: true, - get: function () { - return _definition.isWrappingType; - }, -})); -Object.defineProperty(exports, "resolveObjMapThunk", ({ - enumerable: true, - get: function () { - return _definition.resolveObjMapThunk; - }, -})); -Object.defineProperty(exports, "resolveReadonlyArrayThunk", ({ - enumerable: true, - get: function () { - return _definition.resolveReadonlyArrayThunk; - }, -})); -Object.defineProperty(exports, "specifiedDirectives", ({ - enumerable: true, - get: function () { - return _directives.specifiedDirectives; - }, -})); -Object.defineProperty(exports, "specifiedScalarTypes", ({ - enumerable: true, - get: function () { - return _scalars.specifiedScalarTypes; - }, -})); -Object.defineProperty(exports, "validateSchema", ({ - enumerable: true, - get: function () { - return _validate.validateSchema; - }, -})); - -var _schema = __nccwpck_require__(3933); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _scalars = __nccwpck_require__(8633); - -var _introspection = __nccwpck_require__(2239); - -var _validate = __nccwpck_require__(3756); - -var _assertName = __nccwpck_require__(5275); - - -/***/ }), - -/***/ 2239: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.introspectionTypes = - exports.__TypeKind = - exports.__Type = - exports.__Schema = - exports.__InputValue = - exports.__Field = - exports.__EnumValue = - exports.__DirectiveLocation = - exports.__Directive = - exports.TypeNameMetaFieldDef = - exports.TypeMetaFieldDef = - exports.TypeKind = - exports.SchemaMetaFieldDef = - void 0; -exports.isIntrospectionType = isIntrospectionType; - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _directiveLocation = __nccwpck_require__(3180); - -var _printer = __nccwpck_require__(4758); - -var _astFromValue = __nccwpck_require__(8539); - -var _definition = __nccwpck_require__(699); - -var _scalars = __nccwpck_require__(8633); - -const __Schema = new _definition.GraphQLObjectType({ - name: '__Schema', - description: - 'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.', - fields: () => ({ - description: { - type: _scalars.GraphQLString, - resolve: (schema) => schema.description, - }, - types: { - description: 'A list of all types supported by this server.', - type: new _definition.GraphQLNonNull( - new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)), - ), - - resolve(schema) { - return Object.values(schema.getTypeMap()); - }, - }, - queryType: { - description: 'The type that query operations will be rooted at.', - type: new _definition.GraphQLNonNull(__Type), - resolve: (schema) => schema.getQueryType(), - }, - mutationType: { - description: - 'If this server supports mutation, the type that mutation operations will be rooted at.', - type: __Type, - resolve: (schema) => schema.getMutationType(), - }, - subscriptionType: { - description: - 'If this server support subscription, the type that subscription operations will be rooted at.', - type: __Type, - resolve: (schema) => schema.getSubscriptionType(), - }, - directives: { - description: 'A list of all directives supported by this server.', - type: new _definition.GraphQLNonNull( - new _definition.GraphQLList( - new _definition.GraphQLNonNull(__Directive), - ), - ), - resolve: (schema) => schema.getDirectives(), - }, - }), -}); - -exports.__Schema = __Schema; - -const __Directive = new _definition.GraphQLObjectType({ - name: '__Directive', - description: - "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", - fields: () => ({ - name: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLString), - resolve: (directive) => directive.name, - }, - description: { - type: _scalars.GraphQLString, - resolve: (directive) => directive.description, - }, - isRepeatable: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), - resolve: (directive) => directive.isRepeatable, - }, - locations: { - type: new _definition.GraphQLNonNull( - new _definition.GraphQLList( - new _definition.GraphQLNonNull(__DirectiveLocation), - ), - ), - resolve: (directive) => directive.locations, - }, - args: { - type: new _definition.GraphQLNonNull( - new _definition.GraphQLList( - new _definition.GraphQLNonNull(__InputValue), - ), - ), - args: { - includeDeprecated: { - type: _scalars.GraphQLBoolean, - defaultValue: false, - }, - }, - - resolve(field, { includeDeprecated }) { - return includeDeprecated - ? field.args - : field.args.filter((arg) => arg.deprecationReason == null); - }, - }, - }), -}); - -exports.__Directive = __Directive; - -const __DirectiveLocation = new _definition.GraphQLEnumType({ - name: '__DirectiveLocation', - description: - 'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.', - values: { - QUERY: { - value: _directiveLocation.DirectiveLocation.QUERY, - description: 'Location adjacent to a query operation.', - }, - MUTATION: { - value: _directiveLocation.DirectiveLocation.MUTATION, - description: 'Location adjacent to a mutation operation.', - }, - SUBSCRIPTION: { - value: _directiveLocation.DirectiveLocation.SUBSCRIPTION, - description: 'Location adjacent to a subscription operation.', - }, - FIELD: { - value: _directiveLocation.DirectiveLocation.FIELD, - description: 'Location adjacent to a field.', - }, - FRAGMENT_DEFINITION: { - value: _directiveLocation.DirectiveLocation.FRAGMENT_DEFINITION, - description: 'Location adjacent to a fragment definition.', - }, - FRAGMENT_SPREAD: { - value: _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, - description: 'Location adjacent to a fragment spread.', - }, - INLINE_FRAGMENT: { - value: _directiveLocation.DirectiveLocation.INLINE_FRAGMENT, - description: 'Location adjacent to an inline fragment.', - }, - VARIABLE_DEFINITION: { - value: _directiveLocation.DirectiveLocation.VARIABLE_DEFINITION, - description: 'Location adjacent to a variable definition.', - }, - SCHEMA: { - value: _directiveLocation.DirectiveLocation.SCHEMA, - description: 'Location adjacent to a schema definition.', - }, - SCALAR: { - value: _directiveLocation.DirectiveLocation.SCALAR, - description: 'Location adjacent to a scalar definition.', - }, - OBJECT: { - value: _directiveLocation.DirectiveLocation.OBJECT, - description: 'Location adjacent to an object type definition.', - }, - FIELD_DEFINITION: { - value: _directiveLocation.DirectiveLocation.FIELD_DEFINITION, - description: 'Location adjacent to a field definition.', - }, - ARGUMENT_DEFINITION: { - value: _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION, - description: 'Location adjacent to an argument definition.', - }, - INTERFACE: { - value: _directiveLocation.DirectiveLocation.INTERFACE, - description: 'Location adjacent to an interface definition.', - }, - UNION: { - value: _directiveLocation.DirectiveLocation.UNION, - description: 'Location adjacent to a union definition.', - }, - ENUM: { - value: _directiveLocation.DirectiveLocation.ENUM, - description: 'Location adjacent to an enum definition.', - }, - ENUM_VALUE: { - value: _directiveLocation.DirectiveLocation.ENUM_VALUE, - description: 'Location adjacent to an enum value definition.', - }, - INPUT_OBJECT: { - value: _directiveLocation.DirectiveLocation.INPUT_OBJECT, - description: 'Location adjacent to an input object type definition.', - }, - INPUT_FIELD_DEFINITION: { - value: _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION, - description: 'Location adjacent to an input object field definition.', - }, - }, -}); - -exports.__DirectiveLocation = __DirectiveLocation; - -const __Type = new _definition.GraphQLObjectType({ - name: '__Type', - description: - 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.', - fields: () => ({ - kind: { - type: new _definition.GraphQLNonNull(__TypeKind), - - resolve(type) { - if ((0, _definition.isScalarType)(type)) { - return TypeKind.SCALAR; - } - - if ((0, _definition.isObjectType)(type)) { - return TypeKind.OBJECT; - } - - if ((0, _definition.isInterfaceType)(type)) { - return TypeKind.INTERFACE; - } - - if ((0, _definition.isUnionType)(type)) { - return TypeKind.UNION; - } - - if ((0, _definition.isEnumType)(type)) { - return TypeKind.ENUM; - } - - if ((0, _definition.isInputObjectType)(type)) { - return TypeKind.INPUT_OBJECT; - } - - if ((0, _definition.isListType)(type)) { - return TypeKind.LIST; - } - - if ((0, _definition.isNonNullType)(type)) { - return TypeKind.NON_NULL; - } - /* c8 ignore next 3 */ - // Not reachable, all possible types have been considered) - - false || - (0, _invariant.invariant)( - false, - `Unexpected type: "${(0, _inspect.inspect)(type)}".`, - ); - }, - }, - name: { - type: _scalars.GraphQLString, - resolve: (type) => ('name' in type ? type.name : undefined), - }, - description: { - type: _scalars.GraphQLString, - resolve: ( - type, // FIXME: add test case - ) => - /* c8 ignore next */ - 'description' in type ? type.description : undefined, - }, - specifiedByURL: { - type: _scalars.GraphQLString, - resolve: (obj) => - 'specifiedByURL' in obj ? obj.specifiedByURL : undefined, - }, - fields: { - type: new _definition.GraphQLList( - new _definition.GraphQLNonNull(__Field), - ), - args: { - includeDeprecated: { - type: _scalars.GraphQLBoolean, - defaultValue: false, - }, - }, - - resolve(type, { includeDeprecated }) { - if ( - (0, _definition.isObjectType)(type) || - (0, _definition.isInterfaceType)(type) - ) { - const fields = Object.values(type.getFields()); - return includeDeprecated - ? fields - : fields.filter((field) => field.deprecationReason == null); - } - }, - }, - interfaces: { - type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)), - - resolve(type) { - if ( - (0, _definition.isObjectType)(type) || - (0, _definition.isInterfaceType)(type) - ) { - return type.getInterfaces(); - } - }, - }, - possibleTypes: { - type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)), - - resolve(type, _args, _context, { schema }) { - if ((0, _definition.isAbstractType)(type)) { - return schema.getPossibleTypes(type); - } - }, - }, - enumValues: { - type: new _definition.GraphQLList( - new _definition.GraphQLNonNull(__EnumValue), - ), - args: { - includeDeprecated: { - type: _scalars.GraphQLBoolean, - defaultValue: false, - }, - }, - - resolve(type, { includeDeprecated }) { - if ((0, _definition.isEnumType)(type)) { - const values = type.getValues(); - return includeDeprecated - ? values - : values.filter((field) => field.deprecationReason == null); - } - }, - }, - inputFields: { - type: new _definition.GraphQLList( - new _definition.GraphQLNonNull(__InputValue), - ), - args: { - includeDeprecated: { - type: _scalars.GraphQLBoolean, - defaultValue: false, - }, - }, - - resolve(type, { includeDeprecated }) { - if ((0, _definition.isInputObjectType)(type)) { - const values = Object.values(type.getFields()); - return includeDeprecated - ? values - : values.filter((field) => field.deprecationReason == null); - } - }, - }, - ofType: { - type: __Type, - resolve: (type) => ('ofType' in type ? type.ofType : undefined), - }, - isOneOf: { - type: _scalars.GraphQLBoolean, - resolve: (type) => { - if ((0, _definition.isInputObjectType)(type)) { - return type.isOneOf; - } - }, - }, - }), -}); - -exports.__Type = __Type; - -const __Field = new _definition.GraphQLObjectType({ - name: '__Field', - description: - 'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.', - fields: () => ({ - name: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLString), - resolve: (field) => field.name, - }, - description: { - type: _scalars.GraphQLString, - resolve: (field) => field.description, - }, - args: { - type: new _definition.GraphQLNonNull( - new _definition.GraphQLList( - new _definition.GraphQLNonNull(__InputValue), - ), - ), - args: { - includeDeprecated: { - type: _scalars.GraphQLBoolean, - defaultValue: false, - }, - }, - - resolve(field, { includeDeprecated }) { - return includeDeprecated - ? field.args - : field.args.filter((arg) => arg.deprecationReason == null); - }, - }, - type: { - type: new _definition.GraphQLNonNull(__Type), - resolve: (field) => field.type, - }, - isDeprecated: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), - resolve: (field) => field.deprecationReason != null, - }, - deprecationReason: { - type: _scalars.GraphQLString, - resolve: (field) => field.deprecationReason, - }, - }), -}); - -exports.__Field = __Field; - -const __InputValue = new _definition.GraphQLObjectType({ - name: '__InputValue', - description: - 'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.', - fields: () => ({ - name: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLString), - resolve: (inputValue) => inputValue.name, - }, - description: { - type: _scalars.GraphQLString, - resolve: (inputValue) => inputValue.description, - }, - type: { - type: new _definition.GraphQLNonNull(__Type), - resolve: (inputValue) => inputValue.type, - }, - defaultValue: { - type: _scalars.GraphQLString, - description: - 'A GraphQL-formatted string representing the default value for this input value.', - - resolve(inputValue) { - const { type, defaultValue } = inputValue; - const valueAST = (0, _astFromValue.astFromValue)(defaultValue, type); - return valueAST ? (0, _printer.print)(valueAST) : null; - }, - }, - isDeprecated: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), - resolve: (field) => field.deprecationReason != null, - }, - deprecationReason: { - type: _scalars.GraphQLString, - resolve: (obj) => obj.deprecationReason, - }, - }), -}); - -exports.__InputValue = __InputValue; - -const __EnumValue = new _definition.GraphQLObjectType({ - name: '__EnumValue', - description: - 'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.', - fields: () => ({ - name: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLString), - resolve: (enumValue) => enumValue.name, - }, - description: { - type: _scalars.GraphQLString, - resolve: (enumValue) => enumValue.description, - }, - isDeprecated: { - type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean), - resolve: (enumValue) => enumValue.deprecationReason != null, - }, - deprecationReason: { - type: _scalars.GraphQLString, - resolve: (enumValue) => enumValue.deprecationReason, - }, - }), -}); - -exports.__EnumValue = __EnumValue; -var TypeKind; -exports.TypeKind = TypeKind; - -(function (TypeKind) { - TypeKind['SCALAR'] = 'SCALAR'; - TypeKind['OBJECT'] = 'OBJECT'; - TypeKind['INTERFACE'] = 'INTERFACE'; - TypeKind['UNION'] = 'UNION'; - TypeKind['ENUM'] = 'ENUM'; - TypeKind['INPUT_OBJECT'] = 'INPUT_OBJECT'; - TypeKind['LIST'] = 'LIST'; - TypeKind['NON_NULL'] = 'NON_NULL'; -})(TypeKind || (exports.TypeKind = TypeKind = {})); - -const __TypeKind = new _definition.GraphQLEnumType({ - name: '__TypeKind', - description: 'An enum describing what kind of type a given `__Type` is.', - values: { - SCALAR: { - value: TypeKind.SCALAR, - description: 'Indicates this type is a scalar.', - }, - OBJECT: { - value: TypeKind.OBJECT, - description: - 'Indicates this type is an object. `fields` and `interfaces` are valid fields.', - }, - INTERFACE: { - value: TypeKind.INTERFACE, - description: - 'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.', - }, - UNION: { - value: TypeKind.UNION, - description: - 'Indicates this type is a union. `possibleTypes` is a valid field.', - }, - ENUM: { - value: TypeKind.ENUM, - description: - 'Indicates this type is an enum. `enumValues` is a valid field.', - }, - INPUT_OBJECT: { - value: TypeKind.INPUT_OBJECT, - description: - 'Indicates this type is an input object. `inputFields` is a valid field.', - }, - LIST: { - value: TypeKind.LIST, - description: 'Indicates this type is a list. `ofType` is a valid field.', - }, - NON_NULL: { - value: TypeKind.NON_NULL, - description: - 'Indicates this type is a non-null. `ofType` is a valid field.', - }, - }, -}); -/** - * Note that these are GraphQLField and not GraphQLFieldConfig, - * so the format for args is different. - */ - -exports.__TypeKind = __TypeKind; -const SchemaMetaFieldDef = { - name: '__schema', - type: new _definition.GraphQLNonNull(__Schema), - description: 'Access the current type schema of this server.', - args: [], - resolve: (_source, _args, _context, { schema }) => schema, - deprecationReason: undefined, - extensions: Object.create(null), - astNode: undefined, -}; -exports.SchemaMetaFieldDef = SchemaMetaFieldDef; -const TypeMetaFieldDef = { - name: '__type', - type: __Type, - description: 'Request the type information of a single type.', - args: [ - { - name: 'name', - description: undefined, - type: new _definition.GraphQLNonNull(_scalars.GraphQLString), - defaultValue: undefined, - deprecationReason: undefined, - extensions: Object.create(null), - astNode: undefined, - }, - ], - resolve: (_source, { name }, _context, { schema }) => schema.getType(name), - deprecationReason: undefined, - extensions: Object.create(null), - astNode: undefined, -}; -exports.TypeMetaFieldDef = TypeMetaFieldDef; -const TypeNameMetaFieldDef = { - name: '__typename', - type: new _definition.GraphQLNonNull(_scalars.GraphQLString), - description: 'The name of the current Object type at runtime.', - args: [], - resolve: (_source, _args, _context, { parentType }) => parentType.name, - deprecationReason: undefined, - extensions: Object.create(null), - astNode: undefined, -}; -exports.TypeNameMetaFieldDef = TypeNameMetaFieldDef; -const introspectionTypes = Object.freeze([ - __Schema, - __Directive, - __DirectiveLocation, - __Type, - __Field, - __InputValue, - __EnumValue, - __TypeKind, -]); -exports.introspectionTypes = introspectionTypes; - -function isIntrospectionType(type) { - return introspectionTypes.some(({ name }) => type.name === name); -} - - -/***/ }), - -/***/ 8633: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.GraphQLString = - exports.GraphQLInt = - exports.GraphQLID = - exports.GraphQLFloat = - exports.GraphQLBoolean = - exports.GRAPHQL_MIN_INT = - exports.GRAPHQL_MAX_INT = - void 0; -exports.isSpecifiedScalarType = isSpecifiedScalarType; -exports.specifiedScalarTypes = void 0; - -var _inspect = __nccwpck_require__(3707); - -var _isObjectLike = __nccwpck_require__(7502); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -/** - * Maximum possible Int value as per GraphQL Spec (32-bit signed integer). - * n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe up-to 2^53 - 1 - * */ -const GRAPHQL_MAX_INT = 2147483647; -/** - * Minimum possible Int value as per GraphQL Spec (32-bit signed integer). - * n.b. This differs from JavaScript's numbers that are IEEE 754 doubles safe starting at -(2^53 - 1) - * */ - -exports.GRAPHQL_MAX_INT = GRAPHQL_MAX_INT; -const GRAPHQL_MIN_INT = -2147483648; -exports.GRAPHQL_MIN_INT = GRAPHQL_MIN_INT; -const GraphQLInt = new _definition.GraphQLScalarType({ - name: 'Int', - description: - 'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.', - - serialize(outputValue) { - const coercedValue = serializeObject(outputValue); - - if (typeof coercedValue === 'boolean') { - return coercedValue ? 1 : 0; - } - - let num = coercedValue; - - if (typeof coercedValue === 'string' && coercedValue !== '') { - num = Number(coercedValue); - } - - if (typeof num !== 'number' || !Number.isInteger(num)) { - throw new _GraphQLError.GraphQLError( - `Int cannot represent non-integer value: ${(0, _inspect.inspect)( - coercedValue, - )}`, - ); - } - - if (num > GRAPHQL_MAX_INT || num < GRAPHQL_MIN_INT) { - throw new _GraphQLError.GraphQLError( - 'Int cannot represent non 32-bit signed integer value: ' + - (0, _inspect.inspect)(coercedValue), - ); - } - - return num; - }, - - parseValue(inputValue) { - if (typeof inputValue !== 'number' || !Number.isInteger(inputValue)) { - throw new _GraphQLError.GraphQLError( - `Int cannot represent non-integer value: ${(0, _inspect.inspect)( - inputValue, - )}`, - ); - } - - if (inputValue > GRAPHQL_MAX_INT || inputValue < GRAPHQL_MIN_INT) { - throw new _GraphQLError.GraphQLError( - `Int cannot represent non 32-bit signed integer value: ${inputValue}`, - ); - } - - return inputValue; - }, - - parseLiteral(valueNode) { - if (valueNode.kind !== _kinds.Kind.INT) { - throw new _GraphQLError.GraphQLError( - `Int cannot represent non-integer value: ${(0, _printer.print)( - valueNode, - )}`, - { - nodes: valueNode, - }, - ); - } - - const num = parseInt(valueNode.value, 10); - - if (num > GRAPHQL_MAX_INT || num < GRAPHQL_MIN_INT) { - throw new _GraphQLError.GraphQLError( - `Int cannot represent non 32-bit signed integer value: ${valueNode.value}`, - { - nodes: valueNode, - }, - ); - } - - return num; - }, -}); -exports.GraphQLInt = GraphQLInt; -const GraphQLFloat = new _definition.GraphQLScalarType({ - name: 'Float', - description: - 'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).', - - serialize(outputValue) { - const coercedValue = serializeObject(outputValue); - - if (typeof coercedValue === 'boolean') { - return coercedValue ? 1 : 0; - } - - let num = coercedValue; - - if (typeof coercedValue === 'string' && coercedValue !== '') { - num = Number(coercedValue); - } - - if (typeof num !== 'number' || !Number.isFinite(num)) { - throw new _GraphQLError.GraphQLError( - `Float cannot represent non numeric value: ${(0, _inspect.inspect)( - coercedValue, - )}`, - ); - } - - return num; - }, - - parseValue(inputValue) { - if (typeof inputValue !== 'number' || !Number.isFinite(inputValue)) { - throw new _GraphQLError.GraphQLError( - `Float cannot represent non numeric value: ${(0, _inspect.inspect)( - inputValue, - )}`, - ); - } - - return inputValue; - }, - - parseLiteral(valueNode) { - if ( - valueNode.kind !== _kinds.Kind.FLOAT && - valueNode.kind !== _kinds.Kind.INT - ) { - throw new _GraphQLError.GraphQLError( - `Float cannot represent non numeric value: ${(0, _printer.print)( - valueNode, - )}`, - valueNode, - ); - } - - return parseFloat(valueNode.value); - }, -}); -exports.GraphQLFloat = GraphQLFloat; -const GraphQLString = new _definition.GraphQLScalarType({ - name: 'String', - description: - 'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.', - - serialize(outputValue) { - const coercedValue = serializeObject(outputValue); // Serialize string, boolean and number values to a string, but do not - // attempt to coerce object, function, symbol, or other types as strings. - - if (typeof coercedValue === 'string') { - return coercedValue; - } - - if (typeof coercedValue === 'boolean') { - return coercedValue ? 'true' : 'false'; - } - - if (typeof coercedValue === 'number' && Number.isFinite(coercedValue)) { - return coercedValue.toString(); - } - - throw new _GraphQLError.GraphQLError( - `String cannot represent value: ${(0, _inspect.inspect)(outputValue)}`, - ); - }, - - parseValue(inputValue) { - if (typeof inputValue !== 'string') { - throw new _GraphQLError.GraphQLError( - `String cannot represent a non string value: ${(0, _inspect.inspect)( - inputValue, - )}`, - ); - } - - return inputValue; - }, - - parseLiteral(valueNode) { - if (valueNode.kind !== _kinds.Kind.STRING) { - throw new _GraphQLError.GraphQLError( - `String cannot represent a non string value: ${(0, _printer.print)( - valueNode, - )}`, - { - nodes: valueNode, - }, - ); - } - - return valueNode.value; - }, -}); -exports.GraphQLString = GraphQLString; -const GraphQLBoolean = new _definition.GraphQLScalarType({ - name: 'Boolean', - description: 'The `Boolean` scalar type represents `true` or `false`.', - - serialize(outputValue) { - const coercedValue = serializeObject(outputValue); - - if (typeof coercedValue === 'boolean') { - return coercedValue; - } - - if (Number.isFinite(coercedValue)) { - return coercedValue !== 0; - } - - throw new _GraphQLError.GraphQLError( - `Boolean cannot represent a non boolean value: ${(0, _inspect.inspect)( - coercedValue, - )}`, - ); - }, - - parseValue(inputValue) { - if (typeof inputValue !== 'boolean') { - throw new _GraphQLError.GraphQLError( - `Boolean cannot represent a non boolean value: ${(0, _inspect.inspect)( - inputValue, - )}`, - ); - } - - return inputValue; - }, - - parseLiteral(valueNode) { - if (valueNode.kind !== _kinds.Kind.BOOLEAN) { - throw new _GraphQLError.GraphQLError( - `Boolean cannot represent a non boolean value: ${(0, _printer.print)( - valueNode, - )}`, - { - nodes: valueNode, - }, - ); - } - - return valueNode.value; - }, -}); -exports.GraphQLBoolean = GraphQLBoolean; -const GraphQLID = new _definition.GraphQLScalarType({ - name: 'ID', - description: - 'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.', - - serialize(outputValue) { - const coercedValue = serializeObject(outputValue); - - if (typeof coercedValue === 'string') { - return coercedValue; - } - - if (Number.isInteger(coercedValue)) { - return String(coercedValue); - } - - throw new _GraphQLError.GraphQLError( - `ID cannot represent value: ${(0, _inspect.inspect)(outputValue)}`, - ); - }, - - parseValue(inputValue) { - if (typeof inputValue === 'string') { - return inputValue; - } - - if (typeof inputValue === 'number' && Number.isInteger(inputValue)) { - return inputValue.toString(); - } - - throw new _GraphQLError.GraphQLError( - `ID cannot represent value: ${(0, _inspect.inspect)(inputValue)}`, - ); - }, - - parseLiteral(valueNode) { - if ( - valueNode.kind !== _kinds.Kind.STRING && - valueNode.kind !== _kinds.Kind.INT - ) { - throw new _GraphQLError.GraphQLError( - 'ID cannot represent a non-string and non-integer value: ' + - (0, _printer.print)(valueNode), - { - nodes: valueNode, - }, - ); - } - - return valueNode.value; - }, -}); -exports.GraphQLID = GraphQLID; -const specifiedScalarTypes = Object.freeze([ - GraphQLString, - GraphQLInt, - GraphQLFloat, - GraphQLBoolean, - GraphQLID, -]); -exports.specifiedScalarTypes = specifiedScalarTypes; - -function isSpecifiedScalarType(type) { - return specifiedScalarTypes.some(({ name }) => type.name === name); -} // Support serializing objects with custom valueOf() or toJSON() functions - -// a common way to represent a complex value which can be represented as -// a string (ex: MongoDB id objects). - -function serializeObject(outputValue) { - if ((0, _isObjectLike.isObjectLike)(outputValue)) { - if (typeof outputValue.valueOf === 'function') { - const valueOfResult = outputValue.valueOf(); - - if (!(0, _isObjectLike.isObjectLike)(valueOfResult)) { - return valueOfResult; - } - } - - if (typeof outputValue.toJSON === 'function') { - return outputValue.toJSON(); - } - } - - return outputValue; -} - - -/***/ }), - -/***/ 3933: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.GraphQLSchema = void 0; -exports.assertSchema = assertSchema; -exports.isSchema = isSchema; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _instanceOf = __nccwpck_require__(6524); - -var _isObjectLike = __nccwpck_require__(7502); - -var _toObjMap = __nccwpck_require__(1594); - -var _ast = __nccwpck_require__(906); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _introspection = __nccwpck_require__(2239); - -/** - * Test if the given value is a GraphQL schema. - */ -function isSchema(schema) { - return (0, _instanceOf.instanceOf)(schema, GraphQLSchema); -} - -function assertSchema(schema) { - if (!isSchema(schema)) { - throw new Error( - `Expected ${(0, _inspect.inspect)(schema)} to be a GraphQL schema.`, - ); - } - - return schema; -} -/** - * Custom extensions - * - * @remarks - * Use a unique identifier name for your extension, for example the name of - * your library or project. Do not use a shortened identifier as this increases - * the risk of conflicts. We recommend you add at most one extension field, - * an object which can contain all the values you need. - */ - -/** - * Schema Definition - * - * A Schema is created by supplying the root types of each type of operation, - * query and mutation (optional). A schema definition is then supplied to the - * validator and executor. - * - * Example: - * - * ```ts - * const MyAppSchema = new GraphQLSchema({ - * query: MyAppQueryRootType, - * mutation: MyAppMutationRootType, - * }) - * ``` - * - * Note: When the schema is constructed, by default only the types that are - * reachable by traversing the root types are included, other types must be - * explicitly referenced. - * - * Example: - * - * ```ts - * const characterInterface = new GraphQLInterfaceType({ - * name: 'Character', - * ... - * }); - * - * const humanType = new GraphQLObjectType({ - * name: 'Human', - * interfaces: [characterInterface], - * ... - * }); - * - * const droidType = new GraphQLObjectType({ - * name: 'Droid', - * interfaces: [characterInterface], - * ... - * }); - * - * const schema = new GraphQLSchema({ - * query: new GraphQLObjectType({ - * name: 'Query', - * fields: { - * hero: { type: characterInterface, ... }, - * } - * }), - * ... - * // Since this schema references only the `Character` interface it's - * // necessary to explicitly list the types that implement it if - * // you want them to be included in the final schema. - * types: [humanType, droidType], - * }) - * ``` - * - * Note: If an array of `directives` are provided to GraphQLSchema, that will be - * the exact list of directives represented and allowed. If `directives` is not - * provided then a default set of the specified directives (e.g. `@include` and - * `@skip`) will be used. If you wish to provide *additional* directives to these - * specified directives, you must explicitly declare them. Example: - * - * ```ts - * const MyAppSchema = new GraphQLSchema({ - * ... - * directives: specifiedDirectives.concat([ myCustomDirective ]), - * }) - * ``` - */ -class GraphQLSchema { - // Used as a cache for validateSchema(). - constructor(config) { - var _config$extensionASTN, _config$directives; - - // If this schema was built from a source known to be valid, then it may be - // marked with assumeValid to avoid an additional type system validation. - this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors. - - (0, _isObjectLike.isObjectLike)(config) || - (0, _devAssert.devAssert)(false, 'Must provide configuration object.'); - !config.types || - Array.isArray(config.types) || - (0, _devAssert.devAssert)( - false, - `"types" must be Array if provided but got: ${(0, _inspect.inspect)( - config.types, - )}.`, - ); - !config.directives || - Array.isArray(config.directives) || - (0, _devAssert.devAssert)( - false, - '"directives" must be Array if provided but got: ' + - `${(0, _inspect.inspect)(config.directives)}.`, - ); - this.description = config.description; - this.extensions = (0, _toObjMap.toObjMap)(config.extensions); - this.astNode = config.astNode; - this.extensionASTNodes = - (_config$extensionASTN = config.extensionASTNodes) !== null && - _config$extensionASTN !== void 0 - ? _config$extensionASTN - : []; - this._queryType = config.query; - this._mutationType = config.mutation; - this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default. - - this._directives = - (_config$directives = config.directives) !== null && - _config$directives !== void 0 - ? _config$directives - : _directives.specifiedDirectives; // To preserve order of user-provided types, we add first to add them to - // the set of "collected" types, so `collectReferencedTypes` ignore them. - - const allReferencedTypes = new Set(config.types); - - if (config.types != null) { - for (const type of config.types) { - // When we ready to process this type, we remove it from "collected" types - // and then add it together with all dependent types in the correct position. - allReferencedTypes.delete(type); - collectReferencedTypes(type, allReferencedTypes); - } - } - - if (this._queryType != null) { - collectReferencedTypes(this._queryType, allReferencedTypes); - } - - if (this._mutationType != null) { - collectReferencedTypes(this._mutationType, allReferencedTypes); - } - - if (this._subscriptionType != null) { - collectReferencedTypes(this._subscriptionType, allReferencedTypes); - } - - for (const directive of this._directives) { - // Directives are not validated until validateSchema() is called. - if ((0, _directives.isDirective)(directive)) { - for (const arg of directive.args) { - collectReferencedTypes(arg.type, allReferencedTypes); - } - } - } - - collectReferencedTypes(_introspection.__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema. - - this._typeMap = Object.create(null); - this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name. - - this._implementationsMap = Object.create(null); - - for (const namedType of allReferencedTypes) { - if (namedType == null) { - continue; - } - - const typeName = namedType.name; - typeName || - (0, _devAssert.devAssert)( - false, - 'One of the provided types for building the Schema is missing a name.', - ); - - if (this._typeMap[typeName] !== undefined) { - throw new Error( - `Schema must contain uniquely named types but contains multiple types named "${typeName}".`, - ); - } - - this._typeMap[typeName] = namedType; - - if ((0, _definition.isInterfaceType)(namedType)) { - // Store implementations by interface. - for (const iface of namedType.getInterfaces()) { - if ((0, _definition.isInterfaceType)(iface)) { - let implementations = this._implementationsMap[iface.name]; - - if (implementations === undefined) { - implementations = this._implementationsMap[iface.name] = { - objects: [], - interfaces: [], - }; - } - - implementations.interfaces.push(namedType); - } - } - } else if ((0, _definition.isObjectType)(namedType)) { - // Store implementations by objects. - for (const iface of namedType.getInterfaces()) { - if ((0, _definition.isInterfaceType)(iface)) { - let implementations = this._implementationsMap[iface.name]; - - if (implementations === undefined) { - implementations = this._implementationsMap[iface.name] = { - objects: [], - interfaces: [], - }; - } - - implementations.objects.push(namedType); - } - } - } - } - } - - get [Symbol.toStringTag]() { - return 'GraphQLSchema'; - } - - getQueryType() { - return this._queryType; - } - - getMutationType() { - return this._mutationType; - } - - getSubscriptionType() { - return this._subscriptionType; - } - - getRootType(operation) { - switch (operation) { - case _ast.OperationTypeNode.QUERY: - return this.getQueryType(); - - case _ast.OperationTypeNode.MUTATION: - return this.getMutationType(); - - case _ast.OperationTypeNode.SUBSCRIPTION: - return this.getSubscriptionType(); - } - } - - getTypeMap() { - return this._typeMap; - } - - getType(name) { - return this.getTypeMap()[name]; - } - - getPossibleTypes(abstractType) { - return (0, _definition.isUnionType)(abstractType) - ? abstractType.getTypes() - : this.getImplementations(abstractType).objects; - } - - getImplementations(interfaceType) { - const implementations = this._implementationsMap[interfaceType.name]; - return implementations !== null && implementations !== void 0 - ? implementations - : { - objects: [], - interfaces: [], - }; - } - - isSubType(abstractType, maybeSubType) { - let map = this._subTypeMap[abstractType.name]; - - if (map === undefined) { - map = Object.create(null); - - if ((0, _definition.isUnionType)(abstractType)) { - for (const type of abstractType.getTypes()) { - map[type.name] = true; - } - } else { - const implementations = this.getImplementations(abstractType); - - for (const type of implementations.objects) { - map[type.name] = true; - } - - for (const type of implementations.interfaces) { - map[type.name] = true; - } - } - - this._subTypeMap[abstractType.name] = map; - } - - return map[maybeSubType.name] !== undefined; - } - - getDirectives() { - return this._directives; - } - - getDirective(name) { - return this.getDirectives().find((directive) => directive.name === name); - } - - toConfig() { - return { - description: this.description, - query: this.getQueryType(), - mutation: this.getMutationType(), - subscription: this.getSubscriptionType(), - types: Object.values(this.getTypeMap()), - directives: this.getDirectives(), - extensions: this.extensions, - astNode: this.astNode, - extensionASTNodes: this.extensionASTNodes, - assumeValid: this.__validationErrors !== undefined, - }; - } -} - -exports.GraphQLSchema = GraphQLSchema; - -function collectReferencedTypes(type, typeSet) { - const namedType = (0, _definition.getNamedType)(type); - - if (!typeSet.has(namedType)) { - typeSet.add(namedType); - - if ((0, _definition.isUnionType)(namedType)) { - for (const memberType of namedType.getTypes()) { - collectReferencedTypes(memberType, typeSet); - } - } else if ( - (0, _definition.isObjectType)(namedType) || - (0, _definition.isInterfaceType)(namedType) - ) { - for (const interfaceType of namedType.getInterfaces()) { - collectReferencedTypes(interfaceType, typeSet); - } - - for (const field of Object.values(namedType.getFields())) { - collectReferencedTypes(field.type, typeSet); - - for (const arg of field.args) { - collectReferencedTypes(arg.type, typeSet); - } - } - } else if ((0, _definition.isInputObjectType)(namedType)) { - for (const field of Object.values(namedType.getFields())) { - collectReferencedTypes(field.type, typeSet); - } - } - } - - return typeSet; -} - - -/***/ }), - -/***/ 3756: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.assertValidSchema = assertValidSchema; -exports.validateSchema = validateSchema; - -var _inspect = __nccwpck_require__(3707); - -var _GraphQLError = __nccwpck_require__(1753); - -var _ast = __nccwpck_require__(906); - -var _typeComparators = __nccwpck_require__(961); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _introspection = __nccwpck_require__(2239); - -var _schema = __nccwpck_require__(3933); - -/** - * Implements the "Type Validation" sub-sections of the specification's - * "Type System" section. - * - * Validation runs synchronously, returning an array of encountered errors, or - * an empty array if no errors were encountered and the Schema is valid. - */ -function validateSchema(schema) { - // First check to ensure the provided value is in fact a GraphQLSchema. - (0, _schema.assertSchema)(schema); // If this Schema has already been validated, return the previous results. - - if (schema.__validationErrors) { - return schema.__validationErrors; - } // Validate the schema, producing a list of errors. - - const context = new SchemaValidationContext(schema); - validateRootTypes(context); - validateDirectives(context); - validateTypes(context); // Persist the results of validation before returning to ensure validation - // does not run multiple times for this schema. - - const errors = context.getErrors(); - schema.__validationErrors = errors; - return errors; -} -/** - * Utility function which asserts a schema is valid by throwing an error if - * it is invalid. - */ - -function assertValidSchema(schema) { - const errors = validateSchema(schema); - - if (errors.length !== 0) { - throw new Error(errors.map((error) => error.message).join('\n\n')); - } -} - -class SchemaValidationContext { - constructor(schema) { - this._errors = []; - this.schema = schema; - } - - reportError(message, nodes) { - const _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes; - - this._errors.push( - new _GraphQLError.GraphQLError(message, { - nodes: _nodes, - }), - ); - } - - getErrors() { - return this._errors; - } -} - -function validateRootTypes(context) { - const schema = context.schema; - const queryType = schema.getQueryType(); - - if (!queryType) { - context.reportError('Query root type must be provided.', schema.astNode); - } else if (!(0, _definition.isObjectType)(queryType)) { - var _getOperationTypeNode; - - context.reportError( - `Query root type must be Object type, it cannot be ${(0, - _inspect.inspect)(queryType)}.`, - (_getOperationTypeNode = getOperationTypeNode( - schema, - _ast.OperationTypeNode.QUERY, - )) !== null && _getOperationTypeNode !== void 0 - ? _getOperationTypeNode - : queryType.astNode, - ); - } - - const mutationType = schema.getMutationType(); - - if (mutationType && !(0, _definition.isObjectType)(mutationType)) { - var _getOperationTypeNode2; - - context.reportError( - 'Mutation root type must be Object type if provided, it cannot be ' + - `${(0, _inspect.inspect)(mutationType)}.`, - (_getOperationTypeNode2 = getOperationTypeNode( - schema, - _ast.OperationTypeNode.MUTATION, - )) !== null && _getOperationTypeNode2 !== void 0 - ? _getOperationTypeNode2 - : mutationType.astNode, - ); - } - - const subscriptionType = schema.getSubscriptionType(); - - if (subscriptionType && !(0, _definition.isObjectType)(subscriptionType)) { - var _getOperationTypeNode3; - - context.reportError( - 'Subscription root type must be Object type if provided, it cannot be ' + - `${(0, _inspect.inspect)(subscriptionType)}.`, - (_getOperationTypeNode3 = getOperationTypeNode( - schema, - _ast.OperationTypeNode.SUBSCRIPTION, - )) !== null && _getOperationTypeNode3 !== void 0 - ? _getOperationTypeNode3 - : subscriptionType.astNode, - ); - } -} - -function getOperationTypeNode(schema, operation) { - var _flatMap$find; - - return (_flatMap$find = [schema.astNode, ...schema.extensionASTNodes] - .flatMap( - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - (schemaNode) => { - var _schemaNode$operation; - - return ( - /* c8 ignore next */ - (_schemaNode$operation = - schemaNode === null || schemaNode === void 0 - ? void 0 - : schemaNode.operationTypes) !== null && - _schemaNode$operation !== void 0 - ? _schemaNode$operation - : [] - ); - }, - ) - .find((operationNode) => operationNode.operation === operation)) === null || - _flatMap$find === void 0 - ? void 0 - : _flatMap$find.type; -} - -function validateDirectives(context) { - for (const directive of context.schema.getDirectives()) { - // Ensure all directives are in fact GraphQL directives. - if (!(0, _directives.isDirective)(directive)) { - context.reportError( - `Expected directive but got: ${(0, _inspect.inspect)(directive)}.`, - directive === null || directive === void 0 ? void 0 : directive.astNode, - ); - continue; - } // Ensure they are named correctly. - - validateName(context, directive); // TODO: Ensure proper locations. - // Ensure the arguments are valid. - - for (const arg of directive.args) { - // Ensure they are named correctly. - validateName(context, arg); // Ensure the type is an input type. - - if (!(0, _definition.isInputType)(arg.type)) { - context.reportError( - `The type of @${directive.name}(${arg.name}:) must be Input Type ` + - `but got: ${(0, _inspect.inspect)(arg.type)}.`, - arg.astNode, - ); - } - - if ( - (0, _definition.isRequiredArgument)(arg) && - arg.deprecationReason != null - ) { - var _arg$astNode; - - context.reportError( - `Required argument @${directive.name}(${arg.name}:) cannot be deprecated.`, - [ - getDeprecatedDirectiveNode(arg.astNode), - (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 - ? void 0 - : _arg$astNode.type, - ], - ); - } - } - } -} - -function validateName(context, node) { - // Ensure names are valid, however introspection types opt out. - if (node.name.startsWith('__')) { - context.reportError( - `Name "${node.name}" must not begin with "__", which is reserved by GraphQL introspection.`, - node.astNode, - ); - } -} - -function validateTypes(context) { - const validateInputObjectCircularRefs = - createInputObjectCircularRefsValidator(context); - const typeMap = context.schema.getTypeMap(); - - for (const type of Object.values(typeMap)) { - // Ensure all provided types are in fact GraphQL type. - if (!(0, _definition.isNamedType)(type)) { - context.reportError( - `Expected GraphQL named type but got: ${(0, _inspect.inspect)(type)}.`, - type.astNode, - ); - continue; - } // Ensure it is named correctly (excluding introspection types). - - if (!(0, _introspection.isIntrospectionType)(type)) { - validateName(context, type); - } - - if ((0, _definition.isObjectType)(type)) { - // Ensure fields are valid - validateFields(context, type); // Ensure objects implement the interfaces they claim to. - - validateInterfaces(context, type); - } else if ((0, _definition.isInterfaceType)(type)) { - // Ensure fields are valid. - validateFields(context, type); // Ensure interfaces implement the interfaces they claim to. - - validateInterfaces(context, type); - } else if ((0, _definition.isUnionType)(type)) { - // Ensure Unions include valid member types. - validateUnionMembers(context, type); - } else if ((0, _definition.isEnumType)(type)) { - // Ensure Enums have valid values. - validateEnumValues(context, type); - } else if ((0, _definition.isInputObjectType)(type)) { - // Ensure Input Object fields are valid. - validateInputFields(context, type); // Ensure Input Objects do not contain non-nullable circular references - - validateInputObjectCircularRefs(type); - } - } -} - -function validateFields(context, type) { - const fields = Object.values(type.getFields()); // Objects and Interfaces both must define one or more fields. - - if (fields.length === 0) { - context.reportError(`Type ${type.name} must define one or more fields.`, [ - type.astNode, - ...type.extensionASTNodes, - ]); - } - - for (const field of fields) { - // Ensure they are named correctly. - validateName(context, field); // Ensure the type is an output type - - if (!(0, _definition.isOutputType)(field.type)) { - var _field$astNode; - - context.reportError( - `The type of ${type.name}.${field.name} must be Output Type ` + - `but got: ${(0, _inspect.inspect)(field.type)}.`, - (_field$astNode = field.astNode) === null || _field$astNode === void 0 - ? void 0 - : _field$astNode.type, - ); - } // Ensure the arguments are valid - - for (const arg of field.args) { - const argName = arg.name; // Ensure they are named correctly. - - validateName(context, arg); // Ensure the type is an input type - - if (!(0, _definition.isInputType)(arg.type)) { - var _arg$astNode2; - - context.reportError( - `The type of ${type.name}.${field.name}(${argName}:) must be Input ` + - `Type but got: ${(0, _inspect.inspect)(arg.type)}.`, - (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 - ? void 0 - : _arg$astNode2.type, - ); - } - - if ( - (0, _definition.isRequiredArgument)(arg) && - arg.deprecationReason != null - ) { - var _arg$astNode3; - - context.reportError( - `Required argument ${type.name}.${field.name}(${argName}:) cannot be deprecated.`, - [ - getDeprecatedDirectiveNode(arg.astNode), - (_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 - ? void 0 - : _arg$astNode3.type, - ], - ); - } - } - } -} - -function validateInterfaces(context, type) { - const ifaceTypeNames = Object.create(null); - - for (const iface of type.getInterfaces()) { - if (!(0, _definition.isInterfaceType)(iface)) { - context.reportError( - `Type ${(0, _inspect.inspect)( - type, - )} must only implement Interface types, ` + - `it cannot implement ${(0, _inspect.inspect)(iface)}.`, - getAllImplementsInterfaceNodes(type, iface), - ); - continue; - } - - if (type === iface) { - context.reportError( - `Type ${type.name} cannot implement itself because it would create a circular reference.`, - getAllImplementsInterfaceNodes(type, iface), - ); - continue; - } - - if (ifaceTypeNames[iface.name]) { - context.reportError( - `Type ${type.name} can only implement ${iface.name} once.`, - getAllImplementsInterfaceNodes(type, iface), - ); - continue; - } - - ifaceTypeNames[iface.name] = true; - validateTypeImplementsAncestors(context, type, iface); - validateTypeImplementsInterface(context, type, iface); - } -} - -function validateTypeImplementsInterface(context, type, iface) { - const typeFieldMap = type.getFields(); // Assert each interface field is implemented. - - for (const ifaceField of Object.values(iface.getFields())) { - const fieldName = ifaceField.name; - const typeField = typeFieldMap[fieldName]; // Assert interface field exists on type. - - if (!typeField) { - context.reportError( - `Interface field ${iface.name}.${fieldName} expected but ${type.name} does not provide it.`, - [ifaceField.astNode, type.astNode, ...type.extensionASTNodes], - ); - continue; - } // Assert interface field type is satisfied by type field type, by being - // a valid subtype. (covariant) - - if ( - !(0, _typeComparators.isTypeSubTypeOf)( - context.schema, - typeField.type, - ifaceField.type, - ) - ) { - var _ifaceField$astNode, _typeField$astNode; - - context.reportError( - `Interface field ${iface.name}.${fieldName} expects type ` + - `${(0, _inspect.inspect)(ifaceField.type)} but ${ - type.name - }.${fieldName} ` + - `is type ${(0, _inspect.inspect)(typeField.type)}.`, - [ - (_ifaceField$astNode = ifaceField.astNode) === null || - _ifaceField$astNode === void 0 - ? void 0 - : _ifaceField$astNode.type, - (_typeField$astNode = typeField.astNode) === null || - _typeField$astNode === void 0 - ? void 0 - : _typeField$astNode.type, - ], - ); - } // Assert each interface field arg is implemented. - - for (const ifaceArg of ifaceField.args) { - const argName = ifaceArg.name; - const typeArg = typeField.args.find((arg) => arg.name === argName); // Assert interface field arg exists on object field. - - if (!typeArg) { - context.reportError( - `Interface field argument ${iface.name}.${fieldName}(${argName}:) expected but ${type.name}.${fieldName} does not provide it.`, - [ifaceArg.astNode, typeField.astNode], - ); - continue; - } // Assert interface field arg type matches object field arg type. - // (invariant) - // TODO: change to contravariant? - - if (!(0, _typeComparators.isEqualType)(ifaceArg.type, typeArg.type)) { - var _ifaceArg$astNode, _typeArg$astNode; - - context.reportError( - `Interface field argument ${iface.name}.${fieldName}(${argName}:) ` + - `expects type ${(0, _inspect.inspect)(ifaceArg.type)} but ` + - `${type.name}.${fieldName}(${argName}:) is type ` + - `${(0, _inspect.inspect)(typeArg.type)}.`, - [ - (_ifaceArg$astNode = ifaceArg.astNode) === null || - _ifaceArg$astNode === void 0 - ? void 0 - : _ifaceArg$astNode.type, - (_typeArg$astNode = typeArg.astNode) === null || - _typeArg$astNode === void 0 - ? void 0 - : _typeArg$astNode.type, - ], - ); - } // TODO: validate default values? - } // Assert additional arguments must not be required. - - for (const typeArg of typeField.args) { - const argName = typeArg.name; - const ifaceArg = ifaceField.args.find((arg) => arg.name === argName); - - if (!ifaceArg && (0, _definition.isRequiredArgument)(typeArg)) { - context.reportError( - `Object field ${type.name}.${fieldName} includes required argument ${argName} that is missing from the Interface field ${iface.name}.${fieldName}.`, - [typeArg.astNode, ifaceField.astNode], - ); - } - } - } -} - -function validateTypeImplementsAncestors(context, type, iface) { - const ifaceInterfaces = type.getInterfaces(); - - for (const transitive of iface.getInterfaces()) { - if (!ifaceInterfaces.includes(transitive)) { - context.reportError( - transitive === type - ? `Type ${type.name} cannot implement ${iface.name} because it would create a circular reference.` - : `Type ${type.name} must implement ${transitive.name} because it is implemented by ${iface.name}.`, - [ - ...getAllImplementsInterfaceNodes(iface, transitive), - ...getAllImplementsInterfaceNodes(type, iface), - ], - ); - } - } -} - -function validateUnionMembers(context, union) { - const memberTypes = union.getTypes(); - - if (memberTypes.length === 0) { - context.reportError( - `Union type ${union.name} must define one or more member types.`, - [union.astNode, ...union.extensionASTNodes], - ); - } - - const includedTypeNames = Object.create(null); - - for (const memberType of memberTypes) { - if (includedTypeNames[memberType.name]) { - context.reportError( - `Union type ${union.name} can only include type ${memberType.name} once.`, - getUnionMemberTypeNodes(union, memberType.name), - ); - continue; - } - - includedTypeNames[memberType.name] = true; - - if (!(0, _definition.isObjectType)(memberType)) { - context.reportError( - `Union type ${union.name} can only include Object types, ` + - `it cannot include ${(0, _inspect.inspect)(memberType)}.`, - getUnionMemberTypeNodes(union, String(memberType)), - ); - } - } -} - -function validateEnumValues(context, enumType) { - const enumValues = enumType.getValues(); - - if (enumValues.length === 0) { - context.reportError( - `Enum type ${enumType.name} must define one or more values.`, - [enumType.astNode, ...enumType.extensionASTNodes], - ); - } - - for (const enumValue of enumValues) { - // Ensure valid name. - validateName(context, enumValue); - } -} - -function validateInputFields(context, inputObj) { - const fields = Object.values(inputObj.getFields()); - - if (fields.length === 0) { - context.reportError( - `Input Object type ${inputObj.name} must define one or more fields.`, - [inputObj.astNode, ...inputObj.extensionASTNodes], - ); - } // Ensure the arguments are valid - - for (const field of fields) { - // Ensure they are named correctly. - validateName(context, field); // Ensure the type is an input type - - if (!(0, _definition.isInputType)(field.type)) { - var _field$astNode2; - - context.reportError( - `The type of ${inputObj.name}.${field.name} must be Input Type ` + - `but got: ${(0, _inspect.inspect)(field.type)}.`, - (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 - ? void 0 - : _field$astNode2.type, - ); - } - - if ( - (0, _definition.isRequiredInputField)(field) && - field.deprecationReason != null - ) { - var _field$astNode3; - - context.reportError( - `Required input field ${inputObj.name}.${field.name} cannot be deprecated.`, - [ - getDeprecatedDirectiveNode(field.astNode), - (_field$astNode3 = field.astNode) === null || - _field$astNode3 === void 0 - ? void 0 - : _field$astNode3.type, - ], - ); - } - - if (inputObj.isOneOf) { - validateOneOfInputObjectField(inputObj, field, context); - } - } -} - -function validateOneOfInputObjectField(type, field, context) { - if ((0, _definition.isNonNullType)(field.type)) { - var _field$astNode4; - - context.reportError( - `OneOf input field ${type.name}.${field.name} must be nullable.`, - (_field$astNode4 = field.astNode) === null || _field$astNode4 === void 0 - ? void 0 - : _field$astNode4.type, - ); - } - - if (field.defaultValue !== undefined) { - context.reportError( - `OneOf input field ${type.name}.${field.name} cannot have a default value.`, - field.astNode, - ); - } -} - -function createInputObjectCircularRefsValidator(context) { - // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'. - // Tracks already visited types to maintain O(N) and to ensure that cycles - // are not redundantly reported. - const visitedTypes = Object.create(null); // Array of types nodes used to produce meaningful errors - - const fieldPath = []; // Position in the type path - - const fieldPathIndexByTypeName = Object.create(null); - return detectCycleRecursive; // This does a straight-forward DFS to find cycles. - // It does not terminate when a cycle was found but continues to explore - // the graph to find all possible cycles. - - function detectCycleRecursive(inputObj) { - if (visitedTypes[inputObj.name]) { - return; - } - - visitedTypes[inputObj.name] = true; - fieldPathIndexByTypeName[inputObj.name] = fieldPath.length; - const fields = Object.values(inputObj.getFields()); - - for (const field of fields) { - if ( - (0, _definition.isNonNullType)(field.type) && - (0, _definition.isInputObjectType)(field.type.ofType) - ) { - const fieldType = field.type.ofType; - const cycleIndex = fieldPathIndexByTypeName[fieldType.name]; - fieldPath.push(field); - - if (cycleIndex === undefined) { - detectCycleRecursive(fieldType); - } else { - const cyclePath = fieldPath.slice(cycleIndex); - const pathStr = cyclePath.map((fieldObj) => fieldObj.name).join('.'); - context.reportError( - `Cannot reference Input Object "${fieldType.name}" within itself through a series of non-null fields: "${pathStr}".`, - cyclePath.map((fieldObj) => fieldObj.astNode), - ); - } - - fieldPath.pop(); - } - } - - fieldPathIndexByTypeName[inputObj.name] = undefined; - } -} - -function getAllImplementsInterfaceNodes(type, iface) { - const { astNode, extensionASTNodes } = type; - const nodes = - astNode != null ? [astNode, ...extensionASTNodes] : extensionASTNodes; // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - return nodes - .flatMap((typeNode) => { - var _typeNode$interfaces; - - return ( - /* c8 ignore next */ - (_typeNode$interfaces = typeNode.interfaces) !== null && - _typeNode$interfaces !== void 0 - ? _typeNode$interfaces - : [] - ); - }) - .filter((ifaceNode) => ifaceNode.name.value === iface.name); -} - -function getUnionMemberTypeNodes(union, typeName) { - const { astNode, extensionASTNodes } = union; - const nodes = - astNode != null ? [astNode, ...extensionASTNodes] : extensionASTNodes; // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - return nodes - .flatMap((unionNode) => { - var _unionNode$types; - - return ( - /* c8 ignore next */ - (_unionNode$types = unionNode.types) !== null && - _unionNode$types !== void 0 - ? _unionNode$types - : [] - ); - }) - .filter((typeNode) => typeNode.name.value === typeName); -} - -function getDeprecatedDirectiveNode(definitionNode) { - var _definitionNode$direc; - - return definitionNode === null || definitionNode === void 0 - ? void 0 - : (_definitionNode$direc = definitionNode.directives) === null || - _definitionNode$direc === void 0 - ? void 0 - : _definitionNode$direc.find( - (node) => - node.name.value === _directives.GraphQLDeprecatedDirective.name, - ); -} - - -/***/ }), - -/***/ 3502: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.TypeInfo = void 0; -exports.visitWithTypeInfo = visitWithTypeInfo; - -var _ast = __nccwpck_require__(906); - -var _kinds = __nccwpck_require__(2881); - -var _visitor = __nccwpck_require__(7848); - -var _definition = __nccwpck_require__(699); - -var _introspection = __nccwpck_require__(2239); - -var _typeFromAST = __nccwpck_require__(2136); - -/** - * TypeInfo is a utility class which, given a GraphQL schema, can keep track - * of the current field and type definitions at any point in a GraphQL document - * AST during a recursive descent by calling `enter(node)` and `leave(node)`. - */ -class TypeInfo { - constructor( - schema, - /** - * Initial type may be provided in rare cases to facilitate traversals - * beginning somewhere other than documents. - */ - initialType, - /** @deprecated will be removed in 17.0.0 */ - getFieldDefFn, - ) { - this._schema = schema; - this._typeStack = []; - this._parentTypeStack = []; - this._inputTypeStack = []; - this._fieldDefStack = []; - this._defaultValueStack = []; - this._directive = null; - this._argument = null; - this._enumValue = null; - this._getFieldDef = - getFieldDefFn !== null && getFieldDefFn !== void 0 - ? getFieldDefFn - : getFieldDef; - - if (initialType) { - if ((0, _definition.isInputType)(initialType)) { - this._inputTypeStack.push(initialType); - } - - if ((0, _definition.isCompositeType)(initialType)) { - this._parentTypeStack.push(initialType); - } - - if ((0, _definition.isOutputType)(initialType)) { - this._typeStack.push(initialType); - } - } - } - - get [Symbol.toStringTag]() { - return 'TypeInfo'; - } - - getType() { - if (this._typeStack.length > 0) { - return this._typeStack[this._typeStack.length - 1]; - } - } - - getParentType() { - if (this._parentTypeStack.length > 0) { - return this._parentTypeStack[this._parentTypeStack.length - 1]; - } - } - - getInputType() { - if (this._inputTypeStack.length > 0) { - return this._inputTypeStack[this._inputTypeStack.length - 1]; - } - } - - getParentInputType() { - if (this._inputTypeStack.length > 1) { - return this._inputTypeStack[this._inputTypeStack.length - 2]; - } - } - - getFieldDef() { - if (this._fieldDefStack.length > 0) { - return this._fieldDefStack[this._fieldDefStack.length - 1]; - } - } - - getDefaultValue() { - if (this._defaultValueStack.length > 0) { - return this._defaultValueStack[this._defaultValueStack.length - 1]; - } - } - - getDirective() { - return this._directive; - } - - getArgument() { - return this._argument; - } - - getEnumValue() { - return this._enumValue; - } - - enter(node) { - const schema = this._schema; // Note: many of the types below are explicitly typed as "unknown" to drop - // any assumptions of a valid schema to ensure runtime types are properly - // checked before continuing since TypeInfo is used as part of validation - // which occurs before guarantees of schema and document validity. - - switch (node.kind) { - case _kinds.Kind.SELECTION_SET: { - const namedType = (0, _definition.getNamedType)(this.getType()); - - this._parentTypeStack.push( - (0, _definition.isCompositeType)(namedType) ? namedType : undefined, - ); - - break; - } - - case _kinds.Kind.FIELD: { - const parentType = this.getParentType(); - let fieldDef; - let fieldType; - - if (parentType) { - fieldDef = this._getFieldDef(schema, parentType, node); - - if (fieldDef) { - fieldType = fieldDef.type; - } - } - - this._fieldDefStack.push(fieldDef); - - this._typeStack.push( - (0, _definition.isOutputType)(fieldType) ? fieldType : undefined, - ); - - break; - } - - case _kinds.Kind.DIRECTIVE: - this._directive = schema.getDirective(node.name.value); - break; - - case _kinds.Kind.OPERATION_DEFINITION: { - const rootType = schema.getRootType(node.operation); - - this._typeStack.push( - (0, _definition.isObjectType)(rootType) ? rootType : undefined, - ); - - break; - } - - case _kinds.Kind.INLINE_FRAGMENT: - case _kinds.Kind.FRAGMENT_DEFINITION: { - const typeConditionAST = node.typeCondition; - const outputType = typeConditionAST - ? (0, _typeFromAST.typeFromAST)(schema, typeConditionAST) - : (0, _definition.getNamedType)(this.getType()); - - this._typeStack.push( - (0, _definition.isOutputType)(outputType) ? outputType : undefined, - ); - - break; - } - - case _kinds.Kind.VARIABLE_DEFINITION: { - const inputType = (0, _typeFromAST.typeFromAST)(schema, node.type); - - this._inputTypeStack.push( - (0, _definition.isInputType)(inputType) ? inputType : undefined, - ); - - break; - } - - case _kinds.Kind.ARGUMENT: { - var _this$getDirective; - - let argDef; - let argType; - const fieldOrDirective = - (_this$getDirective = this.getDirective()) !== null && - _this$getDirective !== void 0 - ? _this$getDirective - : this.getFieldDef(); - - if (fieldOrDirective) { - argDef = fieldOrDirective.args.find( - (arg) => arg.name === node.name.value, - ); - - if (argDef) { - argType = argDef.type; - } - } - - this._argument = argDef; - - this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined); - - this._inputTypeStack.push( - (0, _definition.isInputType)(argType) ? argType : undefined, - ); - - break; - } - - case _kinds.Kind.LIST: { - const listType = (0, _definition.getNullableType)(this.getInputType()); - const itemType = (0, _definition.isListType)(listType) - ? listType.ofType - : listType; // List positions never have a default value. - - this._defaultValueStack.push(undefined); - - this._inputTypeStack.push( - (0, _definition.isInputType)(itemType) ? itemType : undefined, - ); - - break; - } - - case _kinds.Kind.OBJECT_FIELD: { - const objectType = (0, _definition.getNamedType)(this.getInputType()); - let inputFieldType; - let inputField; - - if ((0, _definition.isInputObjectType)(objectType)) { - inputField = objectType.getFields()[node.name.value]; - - if (inputField) { - inputFieldType = inputField.type; - } - } - - this._defaultValueStack.push( - inputField ? inputField.defaultValue : undefined, - ); - - this._inputTypeStack.push( - (0, _definition.isInputType)(inputFieldType) - ? inputFieldType - : undefined, - ); - - break; - } - - case _kinds.Kind.ENUM: { - const enumType = (0, _definition.getNamedType)(this.getInputType()); - let enumValue; - - if ((0, _definition.isEnumType)(enumType)) { - enumValue = enumType.getValue(node.value); - } - - this._enumValue = enumValue; - break; - } - - default: // Ignore other nodes - } - } - - leave(node) { - switch (node.kind) { - case _kinds.Kind.SELECTION_SET: - this._parentTypeStack.pop(); - - break; - - case _kinds.Kind.FIELD: - this._fieldDefStack.pop(); - - this._typeStack.pop(); - - break; - - case _kinds.Kind.DIRECTIVE: - this._directive = null; - break; - - case _kinds.Kind.OPERATION_DEFINITION: - case _kinds.Kind.INLINE_FRAGMENT: - case _kinds.Kind.FRAGMENT_DEFINITION: - this._typeStack.pop(); - - break; - - case _kinds.Kind.VARIABLE_DEFINITION: - this._inputTypeStack.pop(); - - break; - - case _kinds.Kind.ARGUMENT: - this._argument = null; - - this._defaultValueStack.pop(); - - this._inputTypeStack.pop(); - - break; - - case _kinds.Kind.LIST: - case _kinds.Kind.OBJECT_FIELD: - this._defaultValueStack.pop(); - - this._inputTypeStack.pop(); - - break; - - case _kinds.Kind.ENUM: - this._enumValue = null; - break; - - default: // Ignore other nodes - } - } -} - -exports.TypeInfo = TypeInfo; - -/** - * Not exactly the same as the executor's definition of getFieldDef, in this - * statically evaluated environment we do not always have an Object type, - * and need to handle Interface and Union types. - */ -function getFieldDef(schema, parentType, fieldNode) { - const name = fieldNode.name.value; - - if ( - name === _introspection.SchemaMetaFieldDef.name && - schema.getQueryType() === parentType - ) { - return _introspection.SchemaMetaFieldDef; - } - - if ( - name === _introspection.TypeMetaFieldDef.name && - schema.getQueryType() === parentType - ) { - return _introspection.TypeMetaFieldDef; - } - - if ( - name === _introspection.TypeNameMetaFieldDef.name && - (0, _definition.isCompositeType)(parentType) - ) { - return _introspection.TypeNameMetaFieldDef; - } - - if ( - (0, _definition.isObjectType)(parentType) || - (0, _definition.isInterfaceType)(parentType) - ) { - return parentType.getFields()[name]; - } -} -/** - * Creates a new visitor instance which maintains a provided TypeInfo instance - * along with visiting visitor. - */ - -function visitWithTypeInfo(typeInfo, visitor) { - return { - enter(...args) { - const node = args[0]; - typeInfo.enter(node); - const fn = (0, _visitor.getEnterLeaveForKind)(visitor, node.kind).enter; - - if (fn) { - const result = fn.apply(visitor, args); - - if (result !== undefined) { - typeInfo.leave(node); - - if ((0, _ast.isNode)(result)) { - typeInfo.enter(result); - } - } - - return result; - } - }, - - leave(...args) { - const node = args[0]; - const fn = (0, _visitor.getEnterLeaveForKind)(visitor, node.kind).leave; - let result; - - if (fn) { - result = fn.apply(visitor, args); - } - - typeInfo.leave(node); - return result; - }, - }; -} - - -/***/ }), - -/***/ 7963: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.assertValidName = assertValidName; -exports.isValidNameError = isValidNameError; - -var _devAssert = __nccwpck_require__(7437); - -var _GraphQLError = __nccwpck_require__(1753); - -var _assertName = __nccwpck_require__(5275); - -/* c8 ignore start */ - -/** - * Upholds the spec rules about naming. - * @deprecated Please use `assertName` instead. Will be removed in v17 - */ -function assertValidName(name) { - const error = isValidNameError(name); - - if (error) { - throw error; - } - - return name; -} -/** - * Returns an Error if a name is invalid. - * @deprecated Please use `assertName` instead. Will be removed in v17 - */ - -function isValidNameError(name) { - typeof name === 'string' || - (0, _devAssert.devAssert)(false, 'Expected name to be a string.'); - - if (name.startsWith('__')) { - return new _GraphQLError.GraphQLError( - `Name "${name}" must not begin with "__", which is reserved by GraphQL introspection.`, - ); - } - - try { - (0, _assertName.assertName)(name); - } catch (error) { - return error; - } -} -/* c8 ignore stop */ - - -/***/ }), - -/***/ 8539: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.astFromValue = astFromValue; - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _isIterableObject = __nccwpck_require__(4507); - -var _isObjectLike = __nccwpck_require__(7502); - -var _kinds = __nccwpck_require__(2881); - -var _definition = __nccwpck_require__(699); - -var _scalars = __nccwpck_require__(8633); - -/** - * Produces a GraphQL Value AST given a JavaScript object. - * Function will match JavaScript/JSON values to GraphQL AST schema format - * by using suggested GraphQLInputType. For example: - * - * astFromValue("value", GraphQLString) - * - * A GraphQL type must be provided, which will be used to interpret different - * JavaScript values. - * - * | JSON Value | GraphQL Value | - * | ------------- | -------------------- | - * | Object | Input Object | - * | Array | List | - * | Boolean | Boolean | - * | String | String / Enum Value | - * | Number | Int / Float | - * | Unknown | Enum Value | - * | null | NullValue | - * - */ -function astFromValue(value, type) { - if ((0, _definition.isNonNullType)(type)) { - const astValue = astFromValue(value, type.ofType); - - if ( - (astValue === null || astValue === void 0 ? void 0 : astValue.kind) === - _kinds.Kind.NULL - ) { - return null; - } - - return astValue; - } // only explicit null, not undefined, NaN - - if (value === null) { - return { - kind: _kinds.Kind.NULL, - }; - } // undefined - - if (value === undefined) { - return null; - } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but - // the value is not an array, convert the value using the list's item type. - - if ((0, _definition.isListType)(type)) { - const itemType = type.ofType; - - if ((0, _isIterableObject.isIterableObject)(value)) { - const valuesNodes = []; - - for (const item of value) { - const itemNode = astFromValue(item, itemType); - - if (itemNode != null) { - valuesNodes.push(itemNode); - } - } - - return { - kind: _kinds.Kind.LIST, - values: valuesNodes, - }; - } - - return astFromValue(value, itemType); - } // Populate the fields of the input object by creating ASTs from each value - // in the JavaScript object according to the fields in the input type. - - if ((0, _definition.isInputObjectType)(type)) { - if (!(0, _isObjectLike.isObjectLike)(value)) { - return null; - } - - const fieldNodes = []; - - for (const field of Object.values(type.getFields())) { - const fieldValue = astFromValue(value[field.name], field.type); - - if (fieldValue) { - fieldNodes.push({ - kind: _kinds.Kind.OBJECT_FIELD, - name: { - kind: _kinds.Kind.NAME, - value: field.name, - }, - value: fieldValue, - }); - } - } - - return { - kind: _kinds.Kind.OBJECT, - fields: fieldNodes, - }; - } - - if ((0, _definition.isLeafType)(type)) { - // Since value is an internally represented value, it must be serialized - // to an externally represented value before converting into an AST. - const serialized = type.serialize(value); - - if (serialized == null) { - return null; - } // Others serialize based on their corresponding JavaScript scalar types. - - if (typeof serialized === 'boolean') { - return { - kind: _kinds.Kind.BOOLEAN, - value: serialized, - }; - } // JavaScript numbers can be Int or Float values. - - if (typeof serialized === 'number' && Number.isFinite(serialized)) { - const stringNum = String(serialized); - return integerStringRegExp.test(stringNum) - ? { - kind: _kinds.Kind.INT, - value: stringNum, - } - : { - kind: _kinds.Kind.FLOAT, - value: stringNum, - }; - } - - if (typeof serialized === 'string') { - // Enum types use Enum literals. - if ((0, _definition.isEnumType)(type)) { - return { - kind: _kinds.Kind.ENUM, - value: serialized, - }; - } // ID types can use Int literals. - - if (type === _scalars.GraphQLID && integerStringRegExp.test(serialized)) { - return { - kind: _kinds.Kind.INT, - value: serialized, - }; - } - - return { - kind: _kinds.Kind.STRING, - value: serialized, - }; - } - - throw new TypeError( - `Cannot convert value to AST: ${(0, _inspect.inspect)(serialized)}.`, - ); - } - /* c8 ignore next 3 */ - // Not reachable, all possible types have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Unexpected input type: ' + (0, _inspect.inspect)(type), - ); -} -/** - * IntValue: - * - NegativeSign? 0 - * - NegativeSign? NonZeroDigit ( Digit+ )? - */ - -const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/; - - -/***/ }), - -/***/ 2957: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.buildASTSchema = buildASTSchema; -exports.buildSchema = buildSchema; - -var _devAssert = __nccwpck_require__(7437); - -var _kinds = __nccwpck_require__(2881); - -var _parser = __nccwpck_require__(8443); - -var _directives = __nccwpck_require__(2572); - -var _schema = __nccwpck_require__(3933); - -var _validate = __nccwpck_require__(5105); - -var _extendSchema = __nccwpck_require__(4445); - -/** - * This takes the ast of a schema document produced by the parse function in - * src/language/parser.js. - * - * If no schema definition is provided, then it will look for types named Query, - * Mutation and Subscription. - * - * Given that AST it constructs a GraphQLSchema. The resulting schema - * has no resolve methods, so execution will use default resolvers. - */ -function buildASTSchema(documentAST, options) { - (documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) || - (0, _devAssert.devAssert)(false, 'Must provide valid Document AST.'); - - if ( - (options === null || options === void 0 ? void 0 : options.assumeValid) !== - true && - (options === null || options === void 0 - ? void 0 - : options.assumeValidSDL) !== true - ) { - (0, _validate.assertValidSDL)(documentAST); - } - - const emptySchemaConfig = { - description: undefined, - types: [], - directives: [], - extensions: Object.create(null), - extensionASTNodes: [], - assumeValid: false, - }; - const config = (0, _extendSchema.extendSchemaImpl)( - emptySchemaConfig, - documentAST, - options, - ); - - if (config.astNode == null) { - for (const type of config.types) { - switch (type.name) { - // Note: While this could make early assertions to get the correctly - // typed values below, that would throw immediately while type system - // validation with validateSchema() will produce more actionable results. - case 'Query': - // @ts-expect-error validated in `validateSchema` - config.query = type; - break; - - case 'Mutation': - // @ts-expect-error validated in `validateSchema` - config.mutation = type; - break; - - case 'Subscription': - // @ts-expect-error validated in `validateSchema` - config.subscription = type; - break; - } - } - } - - const directives = [ - ...config.directives, // If specified directives were not explicitly declared, add them. - ..._directives.specifiedDirectives.filter((stdDirective) => - config.directives.every( - (directive) => directive.name !== stdDirective.name, - ), - ), - ]; - return new _schema.GraphQLSchema({ ...config, directives }); -} -/** - * A helper function to build a GraphQLSchema directly from a source - * document. - */ - -function buildSchema(source, options) { - const document = (0, _parser.parse)(source, { - noLocation: - options === null || options === void 0 ? void 0 : options.noLocation, - allowLegacyFragmentVariables: - options === null || options === void 0 - ? void 0 - : options.allowLegacyFragmentVariables, - }); - return buildASTSchema(document, { - assumeValidSDL: - options === null || options === void 0 ? void 0 : options.assumeValidSDL, - assumeValid: - options === null || options === void 0 ? void 0 : options.assumeValid, - }); -} - - -/***/ }), - -/***/ 9460: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.buildClientSchema = buildClientSchema; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _isObjectLike = __nccwpck_require__(7502); - -var _keyValMap = __nccwpck_require__(4876); - -var _parser = __nccwpck_require__(8443); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _introspection = __nccwpck_require__(2239); - -var _scalars = __nccwpck_require__(8633); - -var _schema = __nccwpck_require__(3933); - -var _valueFromAST = __nccwpck_require__(21); - -/** - * Build a GraphQLSchema for use by client tools. - * - * Given the result of a client running the introspection query, creates and - * returns a GraphQLSchema instance which can be then used with all graphql-js - * tools, but cannot be used to execute a query, as introspection does not - * represent the "resolver", "parse" or "serialize" functions or any other - * server-internal mechanisms. - * - * This function expects a complete introspection result. Don't forget to check - * the "errors" field of a server response before calling this function. - */ -function buildClientSchema(introspection, options) { - ((0, _isObjectLike.isObjectLike)(introspection) && - (0, _isObjectLike.isObjectLike)(introspection.__schema)) || - (0, _devAssert.devAssert)( - false, - `Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0, - _inspect.inspect)(introspection)}.`, - ); // Get the schema from the introspection result. - - const schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each. - - const typeMap = (0, _keyValMap.keyValMap)( - schemaIntrospection.types, - (typeIntrospection) => typeIntrospection.name, - (typeIntrospection) => buildType(typeIntrospection), - ); // Include standard types only if they are used. - - for (const stdType of [ - ..._scalars.specifiedScalarTypes, - ..._introspection.introspectionTypes, - ]) { - if (typeMap[stdType.name]) { - typeMap[stdType.name] = stdType; - } - } // Get the root Query, Mutation, and Subscription types. - - const queryType = schemaIntrospection.queryType - ? getObjectType(schemaIntrospection.queryType) - : null; - const mutationType = schemaIntrospection.mutationType - ? getObjectType(schemaIntrospection.mutationType) - : null; - const subscriptionType = schemaIntrospection.subscriptionType - ? getObjectType(schemaIntrospection.subscriptionType) - : null; // Get the directives supported by Introspection, assuming empty-set if - // directives were not queried for. - - const directives = schemaIntrospection.directives - ? schemaIntrospection.directives.map(buildDirective) - : []; // Then produce and return a Schema with these types. - - return new _schema.GraphQLSchema({ - description: schemaIntrospection.description, - query: queryType, - mutation: mutationType, - subscription: subscriptionType, - types: Object.values(typeMap), - directives, - assumeValid: - options === null || options === void 0 ? void 0 : options.assumeValid, - }); // Given a type reference in introspection, return the GraphQLType instance. - // preferring cached instances before building new instances. - - function getType(typeRef) { - if (typeRef.kind === _introspection.TypeKind.LIST) { - const itemRef = typeRef.ofType; - - if (!itemRef) { - throw new Error('Decorated type deeper than introspection query.'); - } - - return new _definition.GraphQLList(getType(itemRef)); - } - - if (typeRef.kind === _introspection.TypeKind.NON_NULL) { - const nullableRef = typeRef.ofType; - - if (!nullableRef) { - throw new Error('Decorated type deeper than introspection query.'); - } - - const nullableType = getType(nullableRef); - return new _definition.GraphQLNonNull( - (0, _definition.assertNullableType)(nullableType), - ); - } - - return getNamedType(typeRef); - } - - function getNamedType(typeRef) { - const typeName = typeRef.name; - - if (!typeName) { - throw new Error( - `Unknown type reference: ${(0, _inspect.inspect)(typeRef)}.`, - ); - } - - const type = typeMap[typeName]; - - if (!type) { - throw new Error( - `Invalid or incomplete schema, unknown type: ${typeName}. Ensure that a full introspection query is used in order to build a client schema.`, - ); - } - - return type; - } - - function getObjectType(typeRef) { - return (0, _definition.assertObjectType)(getNamedType(typeRef)); - } - - function getInterfaceType(typeRef) { - return (0, _definition.assertInterfaceType)(getNamedType(typeRef)); - } // Given a type's introspection result, construct the correct - // GraphQLType instance. - - function buildType(type) { - // eslint-disable-next-line @typescript-eslint/prefer-optional-chain - if (type != null && type.name != null && type.kind != null) { - // FIXME: Properly type IntrospectionType, it's a breaking change so fix in v17 - // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check - switch (type.kind) { - case _introspection.TypeKind.SCALAR: - return buildScalarDef(type); - - case _introspection.TypeKind.OBJECT: - return buildObjectDef(type); - - case _introspection.TypeKind.INTERFACE: - return buildInterfaceDef(type); - - case _introspection.TypeKind.UNION: - return buildUnionDef(type); - - case _introspection.TypeKind.ENUM: - return buildEnumDef(type); - - case _introspection.TypeKind.INPUT_OBJECT: - return buildInputObjectDef(type); - } - } - - const typeStr = (0, _inspect.inspect)(type); - throw new Error( - `Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${typeStr}.`, - ); - } - - function buildScalarDef(scalarIntrospection) { - return new _definition.GraphQLScalarType({ - name: scalarIntrospection.name, - description: scalarIntrospection.description, - specifiedByURL: scalarIntrospection.specifiedByURL, - }); - } - - function buildImplementationsList(implementingIntrospection) { - // TODO: Temporary workaround until GraphQL ecosystem will fully support - // 'interfaces' on interface types. - if ( - implementingIntrospection.interfaces === null && - implementingIntrospection.kind === _introspection.TypeKind.INTERFACE - ) { - return []; - } - - if (!implementingIntrospection.interfaces) { - const implementingIntrospectionStr = (0, _inspect.inspect)( - implementingIntrospection, - ); - throw new Error( - `Introspection result missing interfaces: ${implementingIntrospectionStr}.`, - ); - } - - return implementingIntrospection.interfaces.map(getInterfaceType); - } - - function buildObjectDef(objectIntrospection) { - return new _definition.GraphQLObjectType({ - name: objectIntrospection.name, - description: objectIntrospection.description, - interfaces: () => buildImplementationsList(objectIntrospection), - fields: () => buildFieldDefMap(objectIntrospection), - }); - } - - function buildInterfaceDef(interfaceIntrospection) { - return new _definition.GraphQLInterfaceType({ - name: interfaceIntrospection.name, - description: interfaceIntrospection.description, - interfaces: () => buildImplementationsList(interfaceIntrospection), - fields: () => buildFieldDefMap(interfaceIntrospection), - }); - } - - function buildUnionDef(unionIntrospection) { - if (!unionIntrospection.possibleTypes) { - const unionIntrospectionStr = (0, _inspect.inspect)(unionIntrospection); - throw new Error( - `Introspection result missing possibleTypes: ${unionIntrospectionStr}.`, - ); - } - - return new _definition.GraphQLUnionType({ - name: unionIntrospection.name, - description: unionIntrospection.description, - types: () => unionIntrospection.possibleTypes.map(getObjectType), - }); - } - - function buildEnumDef(enumIntrospection) { - if (!enumIntrospection.enumValues) { - const enumIntrospectionStr = (0, _inspect.inspect)(enumIntrospection); - throw new Error( - `Introspection result missing enumValues: ${enumIntrospectionStr}.`, - ); - } - - return new _definition.GraphQLEnumType({ - name: enumIntrospection.name, - description: enumIntrospection.description, - values: (0, _keyValMap.keyValMap)( - enumIntrospection.enumValues, - (valueIntrospection) => valueIntrospection.name, - (valueIntrospection) => ({ - description: valueIntrospection.description, - deprecationReason: valueIntrospection.deprecationReason, - }), - ), - }); - } - - function buildInputObjectDef(inputObjectIntrospection) { - if (!inputObjectIntrospection.inputFields) { - const inputObjectIntrospectionStr = (0, _inspect.inspect)( - inputObjectIntrospection, - ); - throw new Error( - `Introspection result missing inputFields: ${inputObjectIntrospectionStr}.`, - ); - } - - return new _definition.GraphQLInputObjectType({ - name: inputObjectIntrospection.name, - description: inputObjectIntrospection.description, - fields: () => buildInputValueDefMap(inputObjectIntrospection.inputFields), - isOneOf: inputObjectIntrospection.isOneOf, - }); - } - - function buildFieldDefMap(typeIntrospection) { - if (!typeIntrospection.fields) { - throw new Error( - `Introspection result missing fields: ${(0, _inspect.inspect)( - typeIntrospection, - )}.`, - ); - } - - return (0, _keyValMap.keyValMap)( - typeIntrospection.fields, - (fieldIntrospection) => fieldIntrospection.name, - buildField, - ); - } - - function buildField(fieldIntrospection) { - const type = getType(fieldIntrospection.type); - - if (!(0, _definition.isOutputType)(type)) { - const typeStr = (0, _inspect.inspect)(type); - throw new Error( - `Introspection must provide output type for fields, but received: ${typeStr}.`, - ); - } - - if (!fieldIntrospection.args) { - const fieldIntrospectionStr = (0, _inspect.inspect)(fieldIntrospection); - throw new Error( - `Introspection result missing field args: ${fieldIntrospectionStr}.`, - ); - } - - return { - description: fieldIntrospection.description, - deprecationReason: fieldIntrospection.deprecationReason, - type, - args: buildInputValueDefMap(fieldIntrospection.args), - }; - } - - function buildInputValueDefMap(inputValueIntrospections) { - return (0, _keyValMap.keyValMap)( - inputValueIntrospections, - (inputValue) => inputValue.name, - buildInputValue, - ); - } - - function buildInputValue(inputValueIntrospection) { - const type = getType(inputValueIntrospection.type); - - if (!(0, _definition.isInputType)(type)) { - const typeStr = (0, _inspect.inspect)(type); - throw new Error( - `Introspection must provide input type for arguments, but received: ${typeStr}.`, - ); - } - - const defaultValue = - inputValueIntrospection.defaultValue != null - ? (0, _valueFromAST.valueFromAST)( - (0, _parser.parseValue)(inputValueIntrospection.defaultValue), - type, - ) - : undefined; - return { - description: inputValueIntrospection.description, - type, - defaultValue, - deprecationReason: inputValueIntrospection.deprecationReason, - }; - } - - function buildDirective(directiveIntrospection) { - if (!directiveIntrospection.args) { - const directiveIntrospectionStr = (0, _inspect.inspect)( - directiveIntrospection, - ); - throw new Error( - `Introspection result missing directive args: ${directiveIntrospectionStr}.`, - ); - } - - if (!directiveIntrospection.locations) { - const directiveIntrospectionStr = (0, _inspect.inspect)( - directiveIntrospection, - ); - throw new Error( - `Introspection result missing directive locations: ${directiveIntrospectionStr}.`, - ); - } - - return new _directives.GraphQLDirective({ - name: directiveIntrospection.name, - description: directiveIntrospection.description, - isRepeatable: directiveIntrospection.isRepeatable, - locations: directiveIntrospection.locations.slice(), - args: buildInputValueDefMap(directiveIntrospection.args), - }); - } -} - - -/***/ }), - -/***/ 894: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.coerceInputValue = coerceInputValue; - -var _didYouMean = __nccwpck_require__(1627); - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _isIterableObject = __nccwpck_require__(4507); - -var _isObjectLike = __nccwpck_require__(7502); - -var _Path = __nccwpck_require__(2373); - -var _printPathArray = __nccwpck_require__(548); - -var _suggestionList = __nccwpck_require__(3046); - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -/** - * Coerces a JavaScript value given a GraphQL Input Type. - */ -function coerceInputValue(inputValue, type, onError = defaultOnError) { - return coerceInputValueImpl(inputValue, type, onError, undefined); -} - -function defaultOnError(path, invalidValue, error) { - let errorPrefix = 'Invalid value ' + (0, _inspect.inspect)(invalidValue); - - if (path.length > 0) { - errorPrefix += ` at "value${(0, _printPathArray.printPathArray)(path)}"`; - } - - error.message = errorPrefix + ': ' + error.message; - throw error; -} - -function coerceInputValueImpl(inputValue, type, onError, path) { - if ((0, _definition.isNonNullType)(type)) { - if (inputValue != null) { - return coerceInputValueImpl(inputValue, type.ofType, onError, path); - } - - onError( - (0, _Path.pathToArray)(path), - inputValue, - new _GraphQLError.GraphQLError( - `Expected non-nullable type "${(0, _inspect.inspect)( - type, - )}" not to be null.`, - ), - ); - return; - } - - if (inputValue == null) { - // Explicitly return the value null. - return null; - } - - if ((0, _definition.isListType)(type)) { - const itemType = type.ofType; - - if ((0, _isIterableObject.isIterableObject)(inputValue)) { - return Array.from(inputValue, (itemValue, index) => { - const itemPath = (0, _Path.addPath)(path, index, undefined); - return coerceInputValueImpl(itemValue, itemType, onError, itemPath); - }); - } // Lists accept a non-list value as a list of one. - - return [coerceInputValueImpl(inputValue, itemType, onError, path)]; - } - - if ((0, _definition.isInputObjectType)(type)) { - if (!(0, _isObjectLike.isObjectLike)(inputValue)) { - onError( - (0, _Path.pathToArray)(path), - inputValue, - new _GraphQLError.GraphQLError( - `Expected type "${type.name}" to be an object.`, - ), - ); - return; - } - - const coercedValue = {}; - const fieldDefs = type.getFields(); - - for (const field of Object.values(fieldDefs)) { - const fieldValue = inputValue[field.name]; - - if (fieldValue === undefined) { - if (field.defaultValue !== undefined) { - coercedValue[field.name] = field.defaultValue; - } else if ((0, _definition.isNonNullType)(field.type)) { - const typeStr = (0, _inspect.inspect)(field.type); - onError( - (0, _Path.pathToArray)(path), - inputValue, - new _GraphQLError.GraphQLError( - `Field "${field.name}" of required type "${typeStr}" was not provided.`, - ), - ); - } - - continue; - } - - coercedValue[field.name] = coerceInputValueImpl( - fieldValue, - field.type, - onError, - (0, _Path.addPath)(path, field.name, type.name), - ); - } // Ensure every provided field is defined. - - for (const fieldName of Object.keys(inputValue)) { - if (!fieldDefs[fieldName]) { - const suggestions = (0, _suggestionList.suggestionList)( - fieldName, - Object.keys(type.getFields()), - ); - onError( - (0, _Path.pathToArray)(path), - inputValue, - new _GraphQLError.GraphQLError( - `Field "${fieldName}" is not defined by type "${type.name}".` + - (0, _didYouMean.didYouMean)(suggestions), - ), - ); - } - } - - if (type.isOneOf) { - const keys = Object.keys(coercedValue); - - if (keys.length !== 1) { - onError( - (0, _Path.pathToArray)(path), - inputValue, - new _GraphQLError.GraphQLError( - `Exactly one key must be specified for OneOf type "${type.name}".`, - ), - ); - } - - const key = keys[0]; - const value = coercedValue[key]; - - if (value === null) { - onError( - (0, _Path.pathToArray)(path).concat(key), - value, - new _GraphQLError.GraphQLError(`Field "${key}" must be non-null.`), - ); - } - } - - return coercedValue; - } - - if ((0, _definition.isLeafType)(type)) { - let parseResult; // Scalars and Enums determine if a input value is valid via parseValue(), - // which can throw to indicate failure. If it throws, maintain a reference - // to the original error. - - try { - parseResult = type.parseValue(inputValue); - } catch (error) { - if (error instanceof _GraphQLError.GraphQLError) { - onError((0, _Path.pathToArray)(path), inputValue, error); - } else { - onError( - (0, _Path.pathToArray)(path), - inputValue, - new _GraphQLError.GraphQLError( - `Expected type "${type.name}". ` + error.message, - { - originalError: error, - }, - ), - ); - } - - return; - } - - if (parseResult === undefined) { - onError( - (0, _Path.pathToArray)(path), - inputValue, - new _GraphQLError.GraphQLError(`Expected type "${type.name}".`), - ); - } - - return parseResult; - } - /* c8 ignore next 3 */ - // Not reachable, all possible types have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Unexpected input type: ' + (0, _inspect.inspect)(type), - ); -} - - -/***/ }), - -/***/ 3640: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.concatAST = concatAST; - -var _kinds = __nccwpck_require__(2881); - -/** - * Provided a collection of ASTs, presumably each from different files, - * concatenate the ASTs together into batched AST, useful for validating many - * GraphQL source files which together represent one conceptual application. - */ -function concatAST(documents) { - const definitions = []; - - for (const doc of documents) { - definitions.push(...doc.definitions); - } - - return { - kind: _kinds.Kind.DOCUMENT, - definitions, - }; -} - - -/***/ }), - -/***/ 4445: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.extendSchema = extendSchema; -exports.extendSchemaImpl = extendSchemaImpl; - -var _devAssert = __nccwpck_require__(7437); - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _keyMap = __nccwpck_require__(1529); - -var _mapValue = __nccwpck_require__(9261); - -var _kinds = __nccwpck_require__(2881); - -var _predicates = __nccwpck_require__(418); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _introspection = __nccwpck_require__(2239); - -var _scalars = __nccwpck_require__(8633); - -var _schema = __nccwpck_require__(3933); - -var _validate = __nccwpck_require__(5105); - -var _values = __nccwpck_require__(8198); - -var _valueFromAST = __nccwpck_require__(21); - -/** - * Produces a new schema given an existing schema and a document which may - * contain GraphQL type extensions and definitions. The original schema will - * remain unaltered. - * - * Because a schema represents a graph of references, a schema cannot be - * extended without effectively making an entire copy. We do not know until it's - * too late if subgraphs remain unchanged. - * - * This algorithm copies the provided schema, applying extensions while - * producing the copy. The original schema remains unaltered. - */ -function extendSchema(schema, documentAST, options) { - (0, _schema.assertSchema)(schema); - (documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) || - (0, _devAssert.devAssert)(false, 'Must provide valid Document AST.'); - - if ( - (options === null || options === void 0 ? void 0 : options.assumeValid) !== - true && - (options === null || options === void 0 - ? void 0 - : options.assumeValidSDL) !== true - ) { - (0, _validate.assertValidSDLExtension)(documentAST, schema); - } - - const schemaConfig = schema.toConfig(); - const extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options); - return schemaConfig === extendedConfig - ? schema - : new _schema.GraphQLSchema(extendedConfig); -} -/** - * @internal - */ - -function extendSchemaImpl(schemaConfig, documentAST, options) { - var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid; - - // Collect the type definitions and extensions found in the document. - const typeDefs = []; - const typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can - // have the same name. For example, a type named "skip". - - const directiveDefs = []; - let schemaDef; // Schema extensions are collected which may add additional operation types. - - const schemaExtensions = []; - - for (const def of documentAST.definitions) { - if (def.kind === _kinds.Kind.SCHEMA_DEFINITION) { - schemaDef = def; - } else if (def.kind === _kinds.Kind.SCHEMA_EXTENSION) { - schemaExtensions.push(def); - } else if ((0, _predicates.isTypeDefinitionNode)(def)) { - typeDefs.push(def); - } else if ((0, _predicates.isTypeExtensionNode)(def)) { - const extendedTypeName = def.name.value; - const existingTypeExtensions = typeExtensionsMap[extendedTypeName]; - typeExtensionsMap[extendedTypeName] = existingTypeExtensions - ? existingTypeExtensions.concat([def]) - : [def]; - } else if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { - directiveDefs.push(def); - } - } // If this document contains no new types, extensions, or directives then - // return the same unmodified GraphQLSchema instance. - - if ( - Object.keys(typeExtensionsMap).length === 0 && - typeDefs.length === 0 && - directiveDefs.length === 0 && - schemaExtensions.length === 0 && - schemaDef == null - ) { - return schemaConfig; - } - - const typeMap = Object.create(null); - - for (const existingType of schemaConfig.types) { - typeMap[existingType.name] = extendNamedType(existingType); - } - - for (const typeNode of typeDefs) { - var _stdTypeMap$name; - - const name = typeNode.name.value; - typeMap[name] = - (_stdTypeMap$name = stdTypeMap[name]) !== null && - _stdTypeMap$name !== void 0 - ? _stdTypeMap$name - : buildType(typeNode); - } - - const operationTypes = { - // Get the extended root operation types. - query: schemaConfig.query && replaceNamedType(schemaConfig.query), - mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation), - subscription: - schemaConfig.subscription && replaceNamedType(schemaConfig.subscription), - // Then, incorporate schema definition and all schema extensions. - ...(schemaDef && getOperationTypes([schemaDef])), - ...getOperationTypes(schemaExtensions), - }; // Then produce and return a Schema config with these types. - - return { - description: - (_schemaDef = schemaDef) === null || _schemaDef === void 0 - ? void 0 - : (_schemaDef$descriptio = _schemaDef.description) === null || - _schemaDef$descriptio === void 0 - ? void 0 - : _schemaDef$descriptio.value, - ...operationTypes, - types: Object.values(typeMap), - directives: [ - ...schemaConfig.directives.map(replaceDirective), - ...directiveDefs.map(buildDirective), - ], - extensions: Object.create(null), - astNode: - (_schemaDef2 = schemaDef) !== null && _schemaDef2 !== void 0 - ? _schemaDef2 - : schemaConfig.astNode, - extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions), - assumeValid: - (_options$assumeValid = - options === null || options === void 0 - ? void 0 - : options.assumeValid) !== null && _options$assumeValid !== void 0 - ? _options$assumeValid - : false, - }; // Below are functions used for producing this schema that have closed over - // this scope and have access to the schema, cache, and newly defined types. - - function replaceType(type) { - if ((0, _definition.isListType)(type)) { - // @ts-expect-error - return new _definition.GraphQLList(replaceType(type.ofType)); - } - - if ((0, _definition.isNonNullType)(type)) { - // @ts-expect-error - return new _definition.GraphQLNonNull(replaceType(type.ofType)); - } // @ts-expect-error FIXME - - return replaceNamedType(type); - } - - function replaceNamedType(type) { - // Note: While this could make early assertions to get the correctly - // typed values, that would throw immediately while type system - // validation with validateSchema() will produce more actionable results. - return typeMap[type.name]; - } - - function replaceDirective(directive) { - const config = directive.toConfig(); - return new _directives.GraphQLDirective({ - ...config, - args: (0, _mapValue.mapValue)(config.args, extendArg), - }); - } - - function extendNamedType(type) { - if ( - (0, _introspection.isIntrospectionType)(type) || - (0, _scalars.isSpecifiedScalarType)(type) - ) { - // Builtin types are not extended. - return type; - } - - if ((0, _definition.isScalarType)(type)) { - return extendScalarType(type); - } - - if ((0, _definition.isObjectType)(type)) { - return extendObjectType(type); - } - - if ((0, _definition.isInterfaceType)(type)) { - return extendInterfaceType(type); - } - - if ((0, _definition.isUnionType)(type)) { - return extendUnionType(type); - } - - if ((0, _definition.isEnumType)(type)) { - return extendEnumType(type); - } - - if ((0, _definition.isInputObjectType)(type)) { - return extendInputObjectType(type); - } - /* c8 ignore next 3 */ - // Not reachable, all possible type definition nodes have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Unexpected type: ' + (0, _inspect.inspect)(type), - ); - } - - function extendInputObjectType(type) { - var _typeExtensionsMap$co; - - const config = type.toConfig(); - const extensions = - (_typeExtensionsMap$co = typeExtensionsMap[config.name]) !== null && - _typeExtensionsMap$co !== void 0 - ? _typeExtensionsMap$co - : []; - return new _definition.GraphQLInputObjectType({ - ...config, - fields: () => ({ - ...(0, _mapValue.mapValue)(config.fields, (field) => ({ - ...field, - type: replaceType(field.type), - })), - ...buildInputFieldMap(extensions), - }), - extensionASTNodes: config.extensionASTNodes.concat(extensions), - }); - } - - function extendEnumType(type) { - var _typeExtensionsMap$ty; - - const config = type.toConfig(); - const extensions = - (_typeExtensionsMap$ty = typeExtensionsMap[type.name]) !== null && - _typeExtensionsMap$ty !== void 0 - ? _typeExtensionsMap$ty - : []; - return new _definition.GraphQLEnumType({ - ...config, - values: { ...config.values, ...buildEnumValueMap(extensions) }, - extensionASTNodes: config.extensionASTNodes.concat(extensions), - }); - } - - function extendScalarType(type) { - var _typeExtensionsMap$co2; - - const config = type.toConfig(); - const extensions = - (_typeExtensionsMap$co2 = typeExtensionsMap[config.name]) !== null && - _typeExtensionsMap$co2 !== void 0 - ? _typeExtensionsMap$co2 - : []; - let specifiedByURL = config.specifiedByURL; - - for (const extensionNode of extensions) { - var _getSpecifiedByURL; - - specifiedByURL = - (_getSpecifiedByURL = getSpecifiedByURL(extensionNode)) !== null && - _getSpecifiedByURL !== void 0 - ? _getSpecifiedByURL - : specifiedByURL; - } - - return new _definition.GraphQLScalarType({ - ...config, - specifiedByURL, - extensionASTNodes: config.extensionASTNodes.concat(extensions), - }); - } - - function extendObjectType(type) { - var _typeExtensionsMap$co3; - - const config = type.toConfig(); - const extensions = - (_typeExtensionsMap$co3 = typeExtensionsMap[config.name]) !== null && - _typeExtensionsMap$co3 !== void 0 - ? _typeExtensionsMap$co3 - : []; - return new _definition.GraphQLObjectType({ - ...config, - interfaces: () => [ - ...type.getInterfaces().map(replaceNamedType), - ...buildInterfaces(extensions), - ], - fields: () => ({ - ...(0, _mapValue.mapValue)(config.fields, extendField), - ...buildFieldMap(extensions), - }), - extensionASTNodes: config.extensionASTNodes.concat(extensions), - }); - } - - function extendInterfaceType(type) { - var _typeExtensionsMap$co4; - - const config = type.toConfig(); - const extensions = - (_typeExtensionsMap$co4 = typeExtensionsMap[config.name]) !== null && - _typeExtensionsMap$co4 !== void 0 - ? _typeExtensionsMap$co4 - : []; - return new _definition.GraphQLInterfaceType({ - ...config, - interfaces: () => [ - ...type.getInterfaces().map(replaceNamedType), - ...buildInterfaces(extensions), - ], - fields: () => ({ - ...(0, _mapValue.mapValue)(config.fields, extendField), - ...buildFieldMap(extensions), - }), - extensionASTNodes: config.extensionASTNodes.concat(extensions), - }); - } - - function extendUnionType(type) { - var _typeExtensionsMap$co5; - - const config = type.toConfig(); - const extensions = - (_typeExtensionsMap$co5 = typeExtensionsMap[config.name]) !== null && - _typeExtensionsMap$co5 !== void 0 - ? _typeExtensionsMap$co5 - : []; - return new _definition.GraphQLUnionType({ - ...config, - types: () => [ - ...type.getTypes().map(replaceNamedType), - ...buildUnionTypes(extensions), - ], - extensionASTNodes: config.extensionASTNodes.concat(extensions), - }); - } - - function extendField(field) { - return { - ...field, - type: replaceType(field.type), - args: field.args && (0, _mapValue.mapValue)(field.args, extendArg), - }; - } - - function extendArg(arg) { - return { ...arg, type: replaceType(arg.type) }; - } - - function getOperationTypes(nodes) { - const opTypes = {}; - - for (const node of nodes) { - var _node$operationTypes; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - const operationTypesNodes = - /* c8 ignore next */ - (_node$operationTypes = node.operationTypes) !== null && - _node$operationTypes !== void 0 - ? _node$operationTypes - : []; - - for (const operationType of operationTypesNodes) { - // Note: While this could make early assertions to get the correctly - // typed values below, that would throw immediately while type system - // validation with validateSchema() will produce more actionable results. - // @ts-expect-error - opTypes[operationType.operation] = getNamedType(operationType.type); - } - } - - return opTypes; - } - - function getNamedType(node) { - var _stdTypeMap$name2; - - const name = node.name.value; - const type = - (_stdTypeMap$name2 = stdTypeMap[name]) !== null && - _stdTypeMap$name2 !== void 0 - ? _stdTypeMap$name2 - : typeMap[name]; - - if (type === undefined) { - throw new Error(`Unknown type: "${name}".`); - } - - return type; - } - - function getWrappedType(node) { - if (node.kind === _kinds.Kind.LIST_TYPE) { - return new _definition.GraphQLList(getWrappedType(node.type)); - } - - if (node.kind === _kinds.Kind.NON_NULL_TYPE) { - return new _definition.GraphQLNonNull(getWrappedType(node.type)); - } - - return getNamedType(node); - } - - function buildDirective(node) { - var _node$description; - - return new _directives.GraphQLDirective({ - name: node.name.value, - description: - (_node$description = node.description) === null || - _node$description === void 0 - ? void 0 - : _node$description.value, - // @ts-expect-error - locations: node.locations.map(({ value }) => value), - isRepeatable: node.repeatable, - args: buildArgumentMap(node.arguments), - astNode: node, - }); - } - - function buildFieldMap(nodes) { - const fieldConfigMap = Object.create(null); - - for (const node of nodes) { - var _node$fields; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - const nodeFields = - /* c8 ignore next */ - (_node$fields = node.fields) !== null && _node$fields !== void 0 - ? _node$fields - : []; - - for (const field of nodeFields) { - var _field$description; - - fieldConfigMap[field.name.value] = { - // Note: While this could make assertions to get the correctly typed - // value, that would throw immediately while type system validation - // with validateSchema() will produce more actionable results. - type: getWrappedType(field.type), - description: - (_field$description = field.description) === null || - _field$description === void 0 - ? void 0 - : _field$description.value, - args: buildArgumentMap(field.arguments), - deprecationReason: getDeprecationReason(field), - astNode: field, - }; - } - } - - return fieldConfigMap; - } - - function buildArgumentMap(args) { - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - const argsNodes = - /* c8 ignore next */ - args !== null && args !== void 0 ? args : []; - const argConfigMap = Object.create(null); - - for (const arg of argsNodes) { - var _arg$description; - - // Note: While this could make assertions to get the correctly typed - // value, that would throw immediately while type system validation - // with validateSchema() will produce more actionable results. - const type = getWrappedType(arg.type); - argConfigMap[arg.name.value] = { - type, - description: - (_arg$description = arg.description) === null || - _arg$description === void 0 - ? void 0 - : _arg$description.value, - defaultValue: (0, _valueFromAST.valueFromAST)(arg.defaultValue, type), - deprecationReason: getDeprecationReason(arg), - astNode: arg, - }; - } - - return argConfigMap; - } - - function buildInputFieldMap(nodes) { - const inputFieldMap = Object.create(null); - - for (const node of nodes) { - var _node$fields2; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - const fieldsNodes = - /* c8 ignore next */ - (_node$fields2 = node.fields) !== null && _node$fields2 !== void 0 - ? _node$fields2 - : []; - - for (const field of fieldsNodes) { - var _field$description2; - - // Note: While this could make assertions to get the correctly typed - // value, that would throw immediately while type system validation - // with validateSchema() will produce more actionable results. - const type = getWrappedType(field.type); - inputFieldMap[field.name.value] = { - type, - description: - (_field$description2 = field.description) === null || - _field$description2 === void 0 - ? void 0 - : _field$description2.value, - defaultValue: (0, _valueFromAST.valueFromAST)( - field.defaultValue, - type, - ), - deprecationReason: getDeprecationReason(field), - astNode: field, - }; - } - } - - return inputFieldMap; - } - - function buildEnumValueMap(nodes) { - const enumValueMap = Object.create(null); - - for (const node of nodes) { - var _node$values; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - const valuesNodes = - /* c8 ignore next */ - (_node$values = node.values) !== null && _node$values !== void 0 - ? _node$values - : []; - - for (const value of valuesNodes) { - var _value$description; - - enumValueMap[value.name.value] = { - description: - (_value$description = value.description) === null || - _value$description === void 0 - ? void 0 - : _value$description.value, - deprecationReason: getDeprecationReason(value), - astNode: value, - }; - } - } - - return enumValueMap; - } - - function buildInterfaces(nodes) { - // Note: While this could make assertions to get the correctly typed - // values below, that would throw immediately while type system - // validation with validateSchema() will produce more actionable results. - // @ts-expect-error - return nodes.flatMap( - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - (node) => { - var _node$interfaces$map, _node$interfaces; - - return ( - /* c8 ignore next */ - (_node$interfaces$map = - (_node$interfaces = node.interfaces) === null || - _node$interfaces === void 0 - ? void 0 - : _node$interfaces.map(getNamedType)) !== null && - _node$interfaces$map !== void 0 - ? _node$interfaces$map - : [] - ); - }, - ); - } - - function buildUnionTypes(nodes) { - // Note: While this could make assertions to get the correctly typed - // values below, that would throw immediately while type system - // validation with validateSchema() will produce more actionable results. - // @ts-expect-error - return nodes.flatMap( - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - (node) => { - var _node$types$map, _node$types; - - return ( - /* c8 ignore next */ - (_node$types$map = - (_node$types = node.types) === null || _node$types === void 0 - ? void 0 - : _node$types.map(getNamedType)) !== null && - _node$types$map !== void 0 - ? _node$types$map - : [] - ); - }, - ); - } - - function buildType(astNode) { - var _typeExtensionsMap$na; - - const name = astNode.name.value; - const extensionASTNodes = - (_typeExtensionsMap$na = typeExtensionsMap[name]) !== null && - _typeExtensionsMap$na !== void 0 - ? _typeExtensionsMap$na - : []; - - switch (astNode.kind) { - case _kinds.Kind.OBJECT_TYPE_DEFINITION: { - var _astNode$description; - - const allNodes = [astNode, ...extensionASTNodes]; - return new _definition.GraphQLObjectType({ - name, - description: - (_astNode$description = astNode.description) === null || - _astNode$description === void 0 - ? void 0 - : _astNode$description.value, - interfaces: () => buildInterfaces(allNodes), - fields: () => buildFieldMap(allNodes), - astNode, - extensionASTNodes, - }); - } - - case _kinds.Kind.INTERFACE_TYPE_DEFINITION: { - var _astNode$description2; - - const allNodes = [astNode, ...extensionASTNodes]; - return new _definition.GraphQLInterfaceType({ - name, - description: - (_astNode$description2 = astNode.description) === null || - _astNode$description2 === void 0 - ? void 0 - : _astNode$description2.value, - interfaces: () => buildInterfaces(allNodes), - fields: () => buildFieldMap(allNodes), - astNode, - extensionASTNodes, - }); - } - - case _kinds.Kind.ENUM_TYPE_DEFINITION: { - var _astNode$description3; - - const allNodes = [astNode, ...extensionASTNodes]; - return new _definition.GraphQLEnumType({ - name, - description: - (_astNode$description3 = astNode.description) === null || - _astNode$description3 === void 0 - ? void 0 - : _astNode$description3.value, - values: buildEnumValueMap(allNodes), - astNode, - extensionASTNodes, - }); - } - - case _kinds.Kind.UNION_TYPE_DEFINITION: { - var _astNode$description4; - - const allNodes = [astNode, ...extensionASTNodes]; - return new _definition.GraphQLUnionType({ - name, - description: - (_astNode$description4 = astNode.description) === null || - _astNode$description4 === void 0 - ? void 0 - : _astNode$description4.value, - types: () => buildUnionTypes(allNodes), - astNode, - extensionASTNodes, - }); - } - - case _kinds.Kind.SCALAR_TYPE_DEFINITION: { - var _astNode$description5; - - return new _definition.GraphQLScalarType({ - name, - description: - (_astNode$description5 = astNode.description) === null || - _astNode$description5 === void 0 - ? void 0 - : _astNode$description5.value, - specifiedByURL: getSpecifiedByURL(astNode), - astNode, - extensionASTNodes, - }); - } - - case _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION: { - var _astNode$description6; - - const allNodes = [astNode, ...extensionASTNodes]; - return new _definition.GraphQLInputObjectType({ - name, - description: - (_astNode$description6 = astNode.description) === null || - _astNode$description6 === void 0 - ? void 0 - : _astNode$description6.value, - fields: () => buildInputFieldMap(allNodes), - astNode, - extensionASTNodes, - isOneOf: isOneOf(astNode), - }); - } - } - } -} - -const stdTypeMap = (0, _keyMap.keyMap)( - [..._scalars.specifiedScalarTypes, ..._introspection.introspectionTypes], - (type) => type.name, -); -/** - * Given a field or enum value node, returns the string value for the - * deprecation reason. - */ - -function getDeprecationReason(node) { - const deprecated = (0, _values.getDirectiveValues)( - _directives.GraphQLDeprecatedDirective, - node, - ); // @ts-expect-error validated by `getDirectiveValues` - - return deprecated === null || deprecated === void 0 - ? void 0 - : deprecated.reason; -} -/** - * Given a scalar node, returns the string value for the specifiedByURL. - */ - -function getSpecifiedByURL(node) { - const specifiedBy = (0, _values.getDirectiveValues)( - _directives.GraphQLSpecifiedByDirective, - node, - ); // @ts-expect-error validated by `getDirectiveValues` - - return specifiedBy === null || specifiedBy === void 0 - ? void 0 - : specifiedBy.url; -} -/** - * Given an input object node, returns if the node should be OneOf. - */ - -function isOneOf(node) { - return Boolean( - (0, _values.getDirectiveValues)(_directives.GraphQLOneOfDirective, node), - ); -} - - -/***/ }), - -/***/ 2991: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.DangerousChangeType = exports.BreakingChangeType = void 0; -exports.findBreakingChanges = findBreakingChanges; -exports.findDangerousChanges = findDangerousChanges; - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _keyMap = __nccwpck_require__(1529); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -var _scalars = __nccwpck_require__(8633); - -var _astFromValue = __nccwpck_require__(8539); - -var _sortValueNode = __nccwpck_require__(397); - -var BreakingChangeType; -exports.BreakingChangeType = BreakingChangeType; - -(function (BreakingChangeType) { - BreakingChangeType['TYPE_REMOVED'] = 'TYPE_REMOVED'; - BreakingChangeType['TYPE_CHANGED_KIND'] = 'TYPE_CHANGED_KIND'; - BreakingChangeType['TYPE_REMOVED_FROM_UNION'] = 'TYPE_REMOVED_FROM_UNION'; - BreakingChangeType['VALUE_REMOVED_FROM_ENUM'] = 'VALUE_REMOVED_FROM_ENUM'; - BreakingChangeType['REQUIRED_INPUT_FIELD_ADDED'] = - 'REQUIRED_INPUT_FIELD_ADDED'; - BreakingChangeType['IMPLEMENTED_INTERFACE_REMOVED'] = - 'IMPLEMENTED_INTERFACE_REMOVED'; - BreakingChangeType['FIELD_REMOVED'] = 'FIELD_REMOVED'; - BreakingChangeType['FIELD_CHANGED_KIND'] = 'FIELD_CHANGED_KIND'; - BreakingChangeType['REQUIRED_ARG_ADDED'] = 'REQUIRED_ARG_ADDED'; - BreakingChangeType['ARG_REMOVED'] = 'ARG_REMOVED'; - BreakingChangeType['ARG_CHANGED_KIND'] = 'ARG_CHANGED_KIND'; - BreakingChangeType['DIRECTIVE_REMOVED'] = 'DIRECTIVE_REMOVED'; - BreakingChangeType['DIRECTIVE_ARG_REMOVED'] = 'DIRECTIVE_ARG_REMOVED'; - BreakingChangeType['REQUIRED_DIRECTIVE_ARG_ADDED'] = - 'REQUIRED_DIRECTIVE_ARG_ADDED'; - BreakingChangeType['DIRECTIVE_REPEATABLE_REMOVED'] = - 'DIRECTIVE_REPEATABLE_REMOVED'; - BreakingChangeType['DIRECTIVE_LOCATION_REMOVED'] = - 'DIRECTIVE_LOCATION_REMOVED'; -})( - BreakingChangeType || (exports.BreakingChangeType = BreakingChangeType = {}), -); - -var DangerousChangeType; -exports.DangerousChangeType = DangerousChangeType; - -(function (DangerousChangeType) { - DangerousChangeType['VALUE_ADDED_TO_ENUM'] = 'VALUE_ADDED_TO_ENUM'; - DangerousChangeType['TYPE_ADDED_TO_UNION'] = 'TYPE_ADDED_TO_UNION'; - DangerousChangeType['OPTIONAL_INPUT_FIELD_ADDED'] = - 'OPTIONAL_INPUT_FIELD_ADDED'; - DangerousChangeType['OPTIONAL_ARG_ADDED'] = 'OPTIONAL_ARG_ADDED'; - DangerousChangeType['IMPLEMENTED_INTERFACE_ADDED'] = - 'IMPLEMENTED_INTERFACE_ADDED'; - DangerousChangeType['ARG_DEFAULT_VALUE_CHANGE'] = 'ARG_DEFAULT_VALUE_CHANGE'; -})( - DangerousChangeType || - (exports.DangerousChangeType = DangerousChangeType = {}), -); - -/** - * Given two schemas, returns an Array containing descriptions of all the types - * of breaking changes covered by the other functions down below. - */ -function findBreakingChanges(oldSchema, newSchema) { - // @ts-expect-error - return findSchemaChanges(oldSchema, newSchema).filter( - (change) => change.type in BreakingChangeType, - ); -} -/** - * Given two schemas, returns an Array containing descriptions of all the types - * of potentially dangerous changes covered by the other functions down below. - */ - -function findDangerousChanges(oldSchema, newSchema) { - // @ts-expect-error - return findSchemaChanges(oldSchema, newSchema).filter( - (change) => change.type in DangerousChangeType, - ); -} - -function findSchemaChanges(oldSchema, newSchema) { - return [ - ...findTypeChanges(oldSchema, newSchema), - ...findDirectiveChanges(oldSchema, newSchema), - ]; -} - -function findDirectiveChanges(oldSchema, newSchema) { - const schemaChanges = []; - const directivesDiff = diff( - oldSchema.getDirectives(), - newSchema.getDirectives(), - ); - - for (const oldDirective of directivesDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.DIRECTIVE_REMOVED, - description: `${oldDirective.name} was removed.`, - }); - } - - for (const [oldDirective, newDirective] of directivesDiff.persisted) { - const argsDiff = diff(oldDirective.args, newDirective.args); - - for (const newArg of argsDiff.added) { - if ((0, _definition.isRequiredArgument)(newArg)) { - schemaChanges.push({ - type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED, - description: `A required arg ${newArg.name} on directive ${oldDirective.name} was added.`, - }); - } - } - - for (const oldArg of argsDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.DIRECTIVE_ARG_REMOVED, - description: `${oldArg.name} was removed from ${oldDirective.name}.`, - }); - } - - if (oldDirective.isRepeatable && !newDirective.isRepeatable) { - schemaChanges.push({ - type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED, - description: `Repeatable flag was removed from ${oldDirective.name}.`, - }); - } - - for (const location of oldDirective.locations) { - if (!newDirective.locations.includes(location)) { - schemaChanges.push({ - type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED, - description: `${location} was removed from ${oldDirective.name}.`, - }); - } - } - } - - return schemaChanges; -} - -function findTypeChanges(oldSchema, newSchema) { - const schemaChanges = []; - const typesDiff = diff( - Object.values(oldSchema.getTypeMap()), - Object.values(newSchema.getTypeMap()), - ); - - for (const oldType of typesDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.TYPE_REMOVED, - description: (0, _scalars.isSpecifiedScalarType)(oldType) - ? `Standard scalar ${oldType.name} was removed because it is not referenced anymore.` - : `${oldType.name} was removed.`, - }); - } - - for (const [oldType, newType] of typesDiff.persisted) { - if ( - (0, _definition.isEnumType)(oldType) && - (0, _definition.isEnumType)(newType) - ) { - schemaChanges.push(...findEnumTypeChanges(oldType, newType)); - } else if ( - (0, _definition.isUnionType)(oldType) && - (0, _definition.isUnionType)(newType) - ) { - schemaChanges.push(...findUnionTypeChanges(oldType, newType)); - } else if ( - (0, _definition.isInputObjectType)(oldType) && - (0, _definition.isInputObjectType)(newType) - ) { - schemaChanges.push(...findInputObjectTypeChanges(oldType, newType)); - } else if ( - (0, _definition.isObjectType)(oldType) && - (0, _definition.isObjectType)(newType) - ) { - schemaChanges.push( - ...findFieldChanges(oldType, newType), - ...findImplementedInterfacesChanges(oldType, newType), - ); - } else if ( - (0, _definition.isInterfaceType)(oldType) && - (0, _definition.isInterfaceType)(newType) - ) { - schemaChanges.push( - ...findFieldChanges(oldType, newType), - ...findImplementedInterfacesChanges(oldType, newType), - ); - } else if (oldType.constructor !== newType.constructor) { - schemaChanges.push({ - type: BreakingChangeType.TYPE_CHANGED_KIND, - description: - `${oldType.name} changed from ` + - `${typeKindName(oldType)} to ${typeKindName(newType)}.`, - }); - } - } - - return schemaChanges; -} - -function findInputObjectTypeChanges(oldType, newType) { - const schemaChanges = []; - const fieldsDiff = diff( - Object.values(oldType.getFields()), - Object.values(newType.getFields()), - ); - - for (const newField of fieldsDiff.added) { - if ((0, _definition.isRequiredInputField)(newField)) { - schemaChanges.push({ - type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED, - description: `A required field ${newField.name} on input type ${oldType.name} was added.`, - }); - } else { - schemaChanges.push({ - type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED, - description: `An optional field ${newField.name} on input type ${oldType.name} was added.`, - }); - } - } - - for (const oldField of fieldsDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.FIELD_REMOVED, - description: `${oldType.name}.${oldField.name} was removed.`, - }); - } - - for (const [oldField, newField] of fieldsDiff.persisted) { - const isSafe = isChangeSafeForInputObjectFieldOrFieldArg( - oldField.type, - newField.type, - ); - - if (!isSafe) { - schemaChanges.push({ - type: BreakingChangeType.FIELD_CHANGED_KIND, - description: - `${oldType.name}.${oldField.name} changed type from ` + - `${String(oldField.type)} to ${String(newField.type)}.`, - }); - } - } - - return schemaChanges; -} - -function findUnionTypeChanges(oldType, newType) { - const schemaChanges = []; - const possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes()); - - for (const newPossibleType of possibleTypesDiff.added) { - schemaChanges.push({ - type: DangerousChangeType.TYPE_ADDED_TO_UNION, - description: `${newPossibleType.name} was added to union type ${oldType.name}.`, - }); - } - - for (const oldPossibleType of possibleTypesDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.TYPE_REMOVED_FROM_UNION, - description: `${oldPossibleType.name} was removed from union type ${oldType.name}.`, - }); - } - - return schemaChanges; -} - -function findEnumTypeChanges(oldType, newType) { - const schemaChanges = []; - const valuesDiff = diff(oldType.getValues(), newType.getValues()); - - for (const newValue of valuesDiff.added) { - schemaChanges.push({ - type: DangerousChangeType.VALUE_ADDED_TO_ENUM, - description: `${newValue.name} was added to enum type ${oldType.name}.`, - }); - } - - for (const oldValue of valuesDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM, - description: `${oldValue.name} was removed from enum type ${oldType.name}.`, - }); - } - - return schemaChanges; -} - -function findImplementedInterfacesChanges(oldType, newType) { - const schemaChanges = []; - const interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces()); - - for (const newInterface of interfacesDiff.added) { - schemaChanges.push({ - type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED, - description: `${newInterface.name} added to interfaces implemented by ${oldType.name}.`, - }); - } - - for (const oldInterface of interfacesDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED, - description: `${oldType.name} no longer implements interface ${oldInterface.name}.`, - }); - } - - return schemaChanges; -} - -function findFieldChanges(oldType, newType) { - const schemaChanges = []; - const fieldsDiff = diff( - Object.values(oldType.getFields()), - Object.values(newType.getFields()), - ); - - for (const oldField of fieldsDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.FIELD_REMOVED, - description: `${oldType.name}.${oldField.name} was removed.`, - }); - } - - for (const [oldField, newField] of fieldsDiff.persisted) { - schemaChanges.push(...findArgChanges(oldType, oldField, newField)); - const isSafe = isChangeSafeForObjectOrInterfaceField( - oldField.type, - newField.type, - ); - - if (!isSafe) { - schemaChanges.push({ - type: BreakingChangeType.FIELD_CHANGED_KIND, - description: - `${oldType.name}.${oldField.name} changed type from ` + - `${String(oldField.type)} to ${String(newField.type)}.`, - }); - } - } - - return schemaChanges; -} - -function findArgChanges(oldType, oldField, newField) { - const schemaChanges = []; - const argsDiff = diff(oldField.args, newField.args); - - for (const oldArg of argsDiff.removed) { - schemaChanges.push({ - type: BreakingChangeType.ARG_REMOVED, - description: `${oldType.name}.${oldField.name} arg ${oldArg.name} was removed.`, - }); - } - - for (const [oldArg, newArg] of argsDiff.persisted) { - const isSafe = isChangeSafeForInputObjectFieldOrFieldArg( - oldArg.type, - newArg.type, - ); - - if (!isSafe) { - schemaChanges.push({ - type: BreakingChangeType.ARG_CHANGED_KIND, - description: - `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed type from ` + - `${String(oldArg.type)} to ${String(newArg.type)}.`, - }); - } else if (oldArg.defaultValue !== undefined) { - if (newArg.defaultValue === undefined) { - schemaChanges.push({ - type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE, - description: `${oldType.name}.${oldField.name} arg ${oldArg.name} defaultValue was removed.`, - }); - } else { - // Since we looking only for client's observable changes we should - // compare default values in the same representation as they are - // represented inside introspection. - const oldValueStr = stringifyValue(oldArg.defaultValue, oldArg.type); - const newValueStr = stringifyValue(newArg.defaultValue, newArg.type); - - if (oldValueStr !== newValueStr) { - schemaChanges.push({ - type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE, - description: `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed defaultValue from ${oldValueStr} to ${newValueStr}.`, - }); - } - } - } - } - - for (const newArg of argsDiff.added) { - if ((0, _definition.isRequiredArgument)(newArg)) { - schemaChanges.push({ - type: BreakingChangeType.REQUIRED_ARG_ADDED, - description: `A required arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`, - }); - } else { - schemaChanges.push({ - type: DangerousChangeType.OPTIONAL_ARG_ADDED, - description: `An optional arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`, - }); - } - } - - return schemaChanges; -} - -function isChangeSafeForObjectOrInterfaceField(oldType, newType) { - if ((0, _definition.isListType)(oldType)) { - return ( - // if they're both lists, make sure the underlying types are compatible - ((0, _definition.isListType)(newType) && - isChangeSafeForObjectOrInterfaceField( - oldType.ofType, - newType.ofType, - )) || // moving from nullable to non-null of the same underlying type is safe - ((0, _definition.isNonNullType)(newType) && - isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)) - ); - } - - if ((0, _definition.isNonNullType)(oldType)) { - // if they're both non-null, make sure the underlying types are compatible - return ( - (0, _definition.isNonNullType)(newType) && - isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) - ); - } - - return ( - // if they're both named types, see if their names are equivalent - ((0, _definition.isNamedType)(newType) && oldType.name === newType.name) || // moving from nullable to non-null of the same underlying type is safe - ((0, _definition.isNonNullType)(newType) && - isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)) - ); -} - -function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) { - if ((0, _definition.isListType)(oldType)) { - // if they're both lists, make sure the underlying types are compatible - return ( - (0, _definition.isListType)(newType) && - isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) - ); - } - - if ((0, _definition.isNonNullType)(oldType)) { - return ( - // if they're both non-null, make sure the underlying types are - // compatible - ((0, _definition.isNonNullType)(newType) && - isChangeSafeForInputObjectFieldOrFieldArg( - oldType.ofType, - newType.ofType, - )) || // moving from non-null to nullable of the same underlying type is safe - (!(0, _definition.isNonNullType)(newType) && - isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)) - ); - } // if they're both named types, see if their names are equivalent - - return (0, _definition.isNamedType)(newType) && oldType.name === newType.name; -} - -function typeKindName(type) { - if ((0, _definition.isScalarType)(type)) { - return 'a Scalar type'; - } - - if ((0, _definition.isObjectType)(type)) { - return 'an Object type'; - } - - if ((0, _definition.isInterfaceType)(type)) { - return 'an Interface type'; - } - - if ((0, _definition.isUnionType)(type)) { - return 'a Union type'; - } - - if ((0, _definition.isEnumType)(type)) { - return 'an Enum type'; - } - - if ((0, _definition.isInputObjectType)(type)) { - return 'an Input type'; - } - /* c8 ignore next 3 */ - // Not reachable, all possible types have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Unexpected type: ' + (0, _inspect.inspect)(type), - ); -} - -function stringifyValue(value, type) { - const ast = (0, _astFromValue.astFromValue)(value, type); - ast != null || (0, _invariant.invariant)(false); - return (0, _printer.print)((0, _sortValueNode.sortValueNode)(ast)); -} - -function diff(oldArray, newArray) { - const added = []; - const removed = []; - const persisted = []; - const oldMap = (0, _keyMap.keyMap)(oldArray, ({ name }) => name); - const newMap = (0, _keyMap.keyMap)(newArray, ({ name }) => name); - - for (const oldItem of oldArray) { - const newItem = newMap[oldItem.name]; - - if (newItem === undefined) { - removed.push(oldItem); - } else { - persisted.push([oldItem, newItem]); - } - } - - for (const newItem of newArray) { - if (oldMap[newItem.name] === undefined) { - added.push(newItem); - } - } - - return { - added, - persisted, - removed, - }; -} - - -/***/ }), - -/***/ 9661: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.getIntrospectionQuery = getIntrospectionQuery; - -/** - * Produce the GraphQL query recommended for a full schema introspection. - * Accepts optional IntrospectionOptions. - */ -function getIntrospectionQuery(options) { - const optionsWithDefault = { - descriptions: true, - specifiedByUrl: false, - directiveIsRepeatable: false, - schemaDescription: false, - inputValueDeprecation: false, - oneOf: false, - ...options, - }; - const descriptions = optionsWithDefault.descriptions ? 'description' : ''; - const specifiedByUrl = optionsWithDefault.specifiedByUrl - ? 'specifiedByURL' - : ''; - const directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable - ? 'isRepeatable' - : ''; - const schemaDescription = optionsWithDefault.schemaDescription - ? descriptions - : ''; - - function inputDeprecation(str) { - return optionsWithDefault.inputValueDeprecation ? str : ''; - } - - const oneOf = optionsWithDefault.oneOf ? 'isOneOf' : ''; - return ` - query IntrospectionQuery { - __schema { - ${schemaDescription} - queryType { name } - mutationType { name } - subscriptionType { name } - types { - ...FullType - } - directives { - name - ${descriptions} - ${directiveIsRepeatable} - locations - args${inputDeprecation('(includeDeprecated: true)')} { - ...InputValue - } - } - } - } - - fragment FullType on __Type { - kind - name - ${descriptions} - ${specifiedByUrl} - ${oneOf} - fields(includeDeprecated: true) { - name - ${descriptions} - args${inputDeprecation('(includeDeprecated: true)')} { - ...InputValue - } - type { - ...TypeRef - } - isDeprecated - deprecationReason - } - inputFields${inputDeprecation('(includeDeprecated: true)')} { - ...InputValue - } - interfaces { - ...TypeRef - } - enumValues(includeDeprecated: true) { - name - ${descriptions} - isDeprecated - deprecationReason - } - possibleTypes { - ...TypeRef - } - } - - fragment InputValue on __InputValue { - name - ${descriptions} - type { ...TypeRef } - defaultValue - ${inputDeprecation('isDeprecated')} - ${inputDeprecation('deprecationReason')} - } - - fragment TypeRef on __Type { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - ofType { - kind - name - } - } - } - } - } - } - } - } - } - } - `; -} - - -/***/ }), - -/***/ 183: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.getOperationAST = getOperationAST; - -var _kinds = __nccwpck_require__(2881); - -/** - * Returns an operation AST given a document AST and optionally an operation - * name. If a name is not provided, an operation is only returned if only one is - * provided in the document. - */ -function getOperationAST(documentAST, operationName) { - let operation = null; - - for (const definition of documentAST.definitions) { - if (definition.kind === _kinds.Kind.OPERATION_DEFINITION) { - var _definition$name; - - if (operationName == null) { - // If no operation name was provided, only return an Operation if there - // is one defined in the document. Upon encountering the second, return - // null. - if (operation) { - return null; - } - - operation = definition; - } else if ( - ((_definition$name = definition.name) === null || - _definition$name === void 0 - ? void 0 - : _definition$name.value) === operationName - ) { - return definition; - } - } - } - - return operation; -} - - -/***/ }), - -/***/ 115: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.getOperationRootType = getOperationRootType; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Extracts the root type of the operation from the schema. - * - * @deprecated Please use `GraphQLSchema.getRootType` instead. Will be removed in v17 - */ -function getOperationRootType(schema, operation) { - if (operation.operation === 'query') { - const queryType = schema.getQueryType(); - - if (!queryType) { - throw new _GraphQLError.GraphQLError( - 'Schema does not define the required query root type.', - { - nodes: operation, - }, - ); - } - - return queryType; - } - - if (operation.operation === 'mutation') { - const mutationType = schema.getMutationType(); - - if (!mutationType) { - throw new _GraphQLError.GraphQLError( - 'Schema is not configured for mutations.', - { - nodes: operation, - }, - ); - } - - return mutationType; - } - - if (operation.operation === 'subscription') { - const subscriptionType = schema.getSubscriptionType(); - - if (!subscriptionType) { - throw new _GraphQLError.GraphQLError( - 'Schema is not configured for subscriptions.', - { - nodes: operation, - }, - ); - } - - return subscriptionType; - } - - throw new _GraphQLError.GraphQLError( - 'Can only have query, mutation and subscription operations.', - { - nodes: operation, - }, - ); -} - - -/***/ }), - -/***/ 1000: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -Object.defineProperty(exports, "BreakingChangeType", ({ - enumerable: true, - get: function () { - return _findBreakingChanges.BreakingChangeType; - }, -})); -Object.defineProperty(exports, "DangerousChangeType", ({ - enumerable: true, - get: function () { - return _findBreakingChanges.DangerousChangeType; - }, -})); -Object.defineProperty(exports, "TypeInfo", ({ - enumerable: true, - get: function () { - return _TypeInfo.TypeInfo; - }, -})); -Object.defineProperty(exports, "assertValidName", ({ - enumerable: true, - get: function () { - return _assertValidName.assertValidName; - }, -})); -Object.defineProperty(exports, "astFromValue", ({ - enumerable: true, - get: function () { - return _astFromValue.astFromValue; - }, -})); -Object.defineProperty(exports, "buildASTSchema", ({ - enumerable: true, - get: function () { - return _buildASTSchema.buildASTSchema; - }, -})); -Object.defineProperty(exports, "buildClientSchema", ({ - enumerable: true, - get: function () { - return _buildClientSchema.buildClientSchema; - }, -})); -Object.defineProperty(exports, "buildSchema", ({ - enumerable: true, - get: function () { - return _buildASTSchema.buildSchema; - }, -})); -Object.defineProperty(exports, "coerceInputValue", ({ - enumerable: true, - get: function () { - return _coerceInputValue.coerceInputValue; - }, -})); -Object.defineProperty(exports, "concatAST", ({ - enumerable: true, - get: function () { - return _concatAST.concatAST; - }, -})); -Object.defineProperty(exports, "doTypesOverlap", ({ - enumerable: true, - get: function () { - return _typeComparators.doTypesOverlap; - }, -})); -Object.defineProperty(exports, "extendSchema", ({ - enumerable: true, - get: function () { - return _extendSchema.extendSchema; - }, -})); -Object.defineProperty(exports, "findBreakingChanges", ({ - enumerable: true, - get: function () { - return _findBreakingChanges.findBreakingChanges; - }, -})); -Object.defineProperty(exports, "findDangerousChanges", ({ - enumerable: true, - get: function () { - return _findBreakingChanges.findDangerousChanges; - }, -})); -Object.defineProperty(exports, "getIntrospectionQuery", ({ - enumerable: true, - get: function () { - return _getIntrospectionQuery.getIntrospectionQuery; - }, -})); -Object.defineProperty(exports, "getOperationAST", ({ - enumerable: true, - get: function () { - return _getOperationAST.getOperationAST; - }, -})); -Object.defineProperty(exports, "getOperationRootType", ({ - enumerable: true, - get: function () { - return _getOperationRootType.getOperationRootType; - }, -})); -Object.defineProperty(exports, "introspectionFromSchema", ({ - enumerable: true, - get: function () { - return _introspectionFromSchema.introspectionFromSchema; - }, -})); -Object.defineProperty(exports, "isEqualType", ({ - enumerable: true, - get: function () { - return _typeComparators.isEqualType; - }, -})); -Object.defineProperty(exports, "isTypeSubTypeOf", ({ - enumerable: true, - get: function () { - return _typeComparators.isTypeSubTypeOf; - }, -})); -Object.defineProperty(exports, "isValidNameError", ({ - enumerable: true, - get: function () { - return _assertValidName.isValidNameError; - }, -})); -Object.defineProperty(exports, "lexicographicSortSchema", ({ - enumerable: true, - get: function () { - return _lexicographicSortSchema.lexicographicSortSchema; - }, -})); -Object.defineProperty(exports, "printIntrospectionSchema", ({ - enumerable: true, - get: function () { - return _printSchema.printIntrospectionSchema; - }, -})); -Object.defineProperty(exports, "printSchema", ({ - enumerable: true, - get: function () { - return _printSchema.printSchema; - }, -})); -Object.defineProperty(exports, "printType", ({ - enumerable: true, - get: function () { - return _printSchema.printType; - }, -})); -Object.defineProperty(exports, "separateOperations", ({ - enumerable: true, - get: function () { - return _separateOperations.separateOperations; - }, -})); -Object.defineProperty(exports, "stripIgnoredCharacters", ({ - enumerable: true, - get: function () { - return _stripIgnoredCharacters.stripIgnoredCharacters; - }, -})); -Object.defineProperty(exports, "typeFromAST", ({ - enumerable: true, - get: function () { - return _typeFromAST.typeFromAST; - }, -})); -Object.defineProperty(exports, "valueFromAST", ({ - enumerable: true, - get: function () { - return _valueFromAST.valueFromAST; - }, -})); -Object.defineProperty(exports, "valueFromASTUntyped", ({ - enumerable: true, - get: function () { - return _valueFromASTUntyped.valueFromASTUntyped; - }, -})); -Object.defineProperty(exports, "visitWithTypeInfo", ({ - enumerable: true, - get: function () { - return _TypeInfo.visitWithTypeInfo; - }, -})); - -var _getIntrospectionQuery = __nccwpck_require__(9661); - -var _getOperationAST = __nccwpck_require__(183); - -var _getOperationRootType = __nccwpck_require__(115); - -var _introspectionFromSchema = __nccwpck_require__(5420); - -var _buildClientSchema = __nccwpck_require__(9460); - -var _buildASTSchema = __nccwpck_require__(2957); - -var _extendSchema = __nccwpck_require__(4445); - -var _lexicographicSortSchema = __nccwpck_require__(9501); - -var _printSchema = __nccwpck_require__(8760); - -var _typeFromAST = __nccwpck_require__(2136); - -var _valueFromAST = __nccwpck_require__(21); - -var _valueFromASTUntyped = __nccwpck_require__(7252); - -var _astFromValue = __nccwpck_require__(8539); - -var _TypeInfo = __nccwpck_require__(3502); - -var _coerceInputValue = __nccwpck_require__(894); - -var _concatAST = __nccwpck_require__(3640); - -var _separateOperations = __nccwpck_require__(8585); - -var _stripIgnoredCharacters = __nccwpck_require__(5662); - -var _typeComparators = __nccwpck_require__(961); - -var _assertValidName = __nccwpck_require__(7963); - -var _findBreakingChanges = __nccwpck_require__(2991); - - -/***/ }), - -/***/ 5420: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.introspectionFromSchema = introspectionFromSchema; - -var _invariant = __nccwpck_require__(9952); - -var _parser = __nccwpck_require__(8443); - -var _execute = __nccwpck_require__(7093); - -var _getIntrospectionQuery = __nccwpck_require__(9661); - -/** - * Build an IntrospectionQuery from a GraphQLSchema - * - * IntrospectionQuery is useful for utilities that care about type and field - * relationships, but do not need to traverse through those relationships. - * - * This is the inverse of buildClientSchema. The primary use case is outside - * of the server context, for instance when doing schema comparisons. - */ -function introspectionFromSchema(schema, options) { - const optionsWithDefaults = { - specifiedByUrl: true, - directiveIsRepeatable: true, - schemaDescription: true, - inputValueDeprecation: true, - oneOf: true, - ...options, - }; - const document = (0, _parser.parse)( - (0, _getIntrospectionQuery.getIntrospectionQuery)(optionsWithDefaults), - ); - const result = (0, _execute.executeSync)({ - schema, - document, - }); - (!result.errors && result.data) || (0, _invariant.invariant)(false); - return result.data; -} - - -/***/ }), - -/***/ 9501: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.lexicographicSortSchema = lexicographicSortSchema; - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _keyValMap = __nccwpck_require__(4876); - -var _naturalCompare = __nccwpck_require__(4834); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _introspection = __nccwpck_require__(2239); - -var _schema = __nccwpck_require__(3933); - -/** - * Sort GraphQLSchema. - * - * This function returns a sorted copy of the given GraphQLSchema. - */ -function lexicographicSortSchema(schema) { - const schemaConfig = schema.toConfig(); - const typeMap = (0, _keyValMap.keyValMap)( - sortByName(schemaConfig.types), - (type) => type.name, - sortNamedType, - ); - return new _schema.GraphQLSchema({ - ...schemaConfig, - types: Object.values(typeMap), - directives: sortByName(schemaConfig.directives).map(sortDirective), - query: replaceMaybeType(schemaConfig.query), - mutation: replaceMaybeType(schemaConfig.mutation), - subscription: replaceMaybeType(schemaConfig.subscription), - }); - - function replaceType(type) { - if ((0, _definition.isListType)(type)) { - // @ts-expect-error - return new _definition.GraphQLList(replaceType(type.ofType)); - } else if ((0, _definition.isNonNullType)(type)) { - // @ts-expect-error - return new _definition.GraphQLNonNull(replaceType(type.ofType)); - } // @ts-expect-error FIXME: TS Conversion - - return replaceNamedType(type); - } - - function replaceNamedType(type) { - return typeMap[type.name]; - } - - function replaceMaybeType(maybeType) { - return maybeType && replaceNamedType(maybeType); - } - - function sortDirective(directive) { - const config = directive.toConfig(); - return new _directives.GraphQLDirective({ - ...config, - locations: sortBy(config.locations, (x) => x), - args: sortArgs(config.args), - }); - } - - function sortArgs(args) { - return sortObjMap(args, (arg) => ({ ...arg, type: replaceType(arg.type) })); - } - - function sortFields(fieldsMap) { - return sortObjMap(fieldsMap, (field) => ({ - ...field, - type: replaceType(field.type), - args: field.args && sortArgs(field.args), - })); - } - - function sortInputFields(fieldsMap) { - return sortObjMap(fieldsMap, (field) => ({ - ...field, - type: replaceType(field.type), - })); - } - - function sortTypes(array) { - return sortByName(array).map(replaceNamedType); - } - - function sortNamedType(type) { - if ( - (0, _definition.isScalarType)(type) || - (0, _introspection.isIntrospectionType)(type) - ) { - return type; - } - - if ((0, _definition.isObjectType)(type)) { - const config = type.toConfig(); - return new _definition.GraphQLObjectType({ - ...config, - interfaces: () => sortTypes(config.interfaces), - fields: () => sortFields(config.fields), - }); - } - - if ((0, _definition.isInterfaceType)(type)) { - const config = type.toConfig(); - return new _definition.GraphQLInterfaceType({ - ...config, - interfaces: () => sortTypes(config.interfaces), - fields: () => sortFields(config.fields), - }); - } - - if ((0, _definition.isUnionType)(type)) { - const config = type.toConfig(); - return new _definition.GraphQLUnionType({ - ...config, - types: () => sortTypes(config.types), - }); - } - - if ((0, _definition.isEnumType)(type)) { - const config = type.toConfig(); - return new _definition.GraphQLEnumType({ - ...config, - values: sortObjMap(config.values, (value) => value), - }); - } - - if ((0, _definition.isInputObjectType)(type)) { - const config = type.toConfig(); - return new _definition.GraphQLInputObjectType({ - ...config, - fields: () => sortInputFields(config.fields), - }); - } - /* c8 ignore next 3 */ - // Not reachable, all possible types have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Unexpected type: ' + (0, _inspect.inspect)(type), - ); - } -} - -function sortObjMap(map, sortValueFn) { - const sortedMap = Object.create(null); - - for (const key of Object.keys(map).sort(_naturalCompare.naturalCompare)) { - sortedMap[key] = sortValueFn(map[key]); - } - - return sortedMap; -} - -function sortByName(array) { - return sortBy(array, (obj) => obj.name); -} - -function sortBy(array, mapToKey) { - return array.slice().sort((obj1, obj2) => { - const key1 = mapToKey(obj1); - const key2 = mapToKey(obj2); - return (0, _naturalCompare.naturalCompare)(key1, key2); - }); -} - - -/***/ }), - -/***/ 8760: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.printIntrospectionSchema = printIntrospectionSchema; -exports.printSchema = printSchema; -exports.printType = printType; - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _blockString = __nccwpck_require__(510); - -var _kinds = __nccwpck_require__(2881); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -var _introspection = __nccwpck_require__(2239); - -var _scalars = __nccwpck_require__(8633); - -var _astFromValue = __nccwpck_require__(8539); - -function printSchema(schema) { - return printFilteredSchema( - schema, - (n) => !(0, _directives.isSpecifiedDirective)(n), - isDefinedType, - ); -} - -function printIntrospectionSchema(schema) { - return printFilteredSchema( - schema, - _directives.isSpecifiedDirective, - _introspection.isIntrospectionType, - ); -} - -function isDefinedType(type) { - return ( - !(0, _scalars.isSpecifiedScalarType)(type) && - !(0, _introspection.isIntrospectionType)(type) - ); -} - -function printFilteredSchema(schema, directiveFilter, typeFilter) { - const directives = schema.getDirectives().filter(directiveFilter); - const types = Object.values(schema.getTypeMap()).filter(typeFilter); - return [ - printSchemaDefinition(schema), - ...directives.map((directive) => printDirective(directive)), - ...types.map((type) => printType(type)), - ] - .filter(Boolean) - .join('\n\n'); -} - -function printSchemaDefinition(schema) { - if (schema.description == null && isSchemaOfCommonNames(schema)) { - return; - } - - const operationTypes = []; - const queryType = schema.getQueryType(); - - if (queryType) { - operationTypes.push(` query: ${queryType.name}`); - } - - const mutationType = schema.getMutationType(); - - if (mutationType) { - operationTypes.push(` mutation: ${mutationType.name}`); - } - - const subscriptionType = schema.getSubscriptionType(); - - if (subscriptionType) { - operationTypes.push(` subscription: ${subscriptionType.name}`); - } - - return printDescription(schema) + `schema {\n${operationTypes.join('\n')}\n}`; -} -/** - * GraphQL schema define root types for each type of operation. These types are - * the same as any other type and can be named in any manner, however there is - * a common naming convention: - * - * ```graphql - * schema { - * query: Query - * mutation: Mutation - * subscription: Subscription - * } - * ``` - * - * When using this naming convention, the schema description can be omitted. - */ - -function isSchemaOfCommonNames(schema) { - const queryType = schema.getQueryType(); - - if (queryType && queryType.name !== 'Query') { - return false; - } - - const mutationType = schema.getMutationType(); - - if (mutationType && mutationType.name !== 'Mutation') { - return false; - } - - const subscriptionType = schema.getSubscriptionType(); - - if (subscriptionType && subscriptionType.name !== 'Subscription') { - return false; - } - - return true; -} - -function printType(type) { - if ((0, _definition.isScalarType)(type)) { - return printScalar(type); - } - - if ((0, _definition.isObjectType)(type)) { - return printObject(type); - } - - if ((0, _definition.isInterfaceType)(type)) { - return printInterface(type); - } - - if ((0, _definition.isUnionType)(type)) { - return printUnion(type); - } - - if ((0, _definition.isEnumType)(type)) { - return printEnum(type); - } - - if ((0, _definition.isInputObjectType)(type)) { - return printInputObject(type); - } - /* c8 ignore next 3 */ - // Not reachable, all possible types have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Unexpected type: ' + (0, _inspect.inspect)(type), - ); -} - -function printScalar(type) { - return ( - printDescription(type) + `scalar ${type.name}` + printSpecifiedByURL(type) - ); -} - -function printImplementedInterfaces(type) { - const interfaces = type.getInterfaces(); - return interfaces.length - ? ' implements ' + interfaces.map((i) => i.name).join(' & ') - : ''; -} - -function printObject(type) { - return ( - printDescription(type) + - `type ${type.name}` + - printImplementedInterfaces(type) + - printFields(type) - ); -} - -function printInterface(type) { - return ( - printDescription(type) + - `interface ${type.name}` + - printImplementedInterfaces(type) + - printFields(type) - ); -} - -function printUnion(type) { - const types = type.getTypes(); - const possibleTypes = types.length ? ' = ' + types.join(' | ') : ''; - return printDescription(type) + 'union ' + type.name + possibleTypes; -} - -function printEnum(type) { - const values = type - .getValues() - .map( - (value, i) => - printDescription(value, ' ', !i) + - ' ' + - value.name + - printDeprecated(value.deprecationReason), - ); - return printDescription(type) + `enum ${type.name}` + printBlock(values); -} - -function printInputObject(type) { - const fields = Object.values(type.getFields()).map( - (f, i) => printDescription(f, ' ', !i) + ' ' + printInputValue(f), - ); - return ( - printDescription(type) + - `input ${type.name}` + - (type.isOneOf ? ' @oneOf' : '') + - printBlock(fields) - ); -} - -function printFields(type) { - const fields = Object.values(type.getFields()).map( - (f, i) => - printDescription(f, ' ', !i) + - ' ' + - f.name + - printArgs(f.args, ' ') + - ': ' + - String(f.type) + - printDeprecated(f.deprecationReason), - ); - return printBlock(fields); -} - -function printBlock(items) { - return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : ''; -} - -function printArgs(args, indentation = '') { - if (args.length === 0) { - return ''; - } // If every arg does not have a description, print them on one line. - - if (args.every((arg) => !arg.description)) { - return '(' + args.map(printInputValue).join(', ') + ')'; - } - - return ( - '(\n' + - args - .map( - (arg, i) => - printDescription(arg, ' ' + indentation, !i) + - ' ' + - indentation + - printInputValue(arg), - ) - .join('\n') + - '\n' + - indentation + - ')' - ); -} - -function printInputValue(arg) { - const defaultAST = (0, _astFromValue.astFromValue)( - arg.defaultValue, - arg.type, - ); - let argDecl = arg.name + ': ' + String(arg.type); - - if (defaultAST) { - argDecl += ` = ${(0, _printer.print)(defaultAST)}`; - } - - return argDecl + printDeprecated(arg.deprecationReason); -} - -function printDirective(directive) { - return ( - printDescription(directive) + - 'directive @' + - directive.name + - printArgs(directive.args) + - (directive.isRepeatable ? ' repeatable' : '') + - ' on ' + - directive.locations.join(' | ') - ); -} - -function printDeprecated(reason) { - if (reason == null) { - return ''; - } - - if (reason !== _directives.DEFAULT_DEPRECATION_REASON) { - const astValue = (0, _printer.print)({ - kind: _kinds.Kind.STRING, - value: reason, - }); - return ` @deprecated(reason: ${astValue})`; - } - - return ' @deprecated'; -} - -function printSpecifiedByURL(scalar) { - if (scalar.specifiedByURL == null) { - return ''; - } - - const astValue = (0, _printer.print)({ - kind: _kinds.Kind.STRING, - value: scalar.specifiedByURL, - }); - return ` @specifiedBy(url: ${astValue})`; -} - -function printDescription(def, indentation = '', firstInBlock = true) { - const { description } = def; - - if (description == null) { - return ''; - } - - const blockString = (0, _printer.print)({ - kind: _kinds.Kind.STRING, - value: description, - block: (0, _blockString.isPrintableAsBlockString)(description), - }); - const prefix = - indentation && !firstInBlock ? '\n' + indentation : indentation; - return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n'; -} - - -/***/ }), - -/***/ 8585: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.separateOperations = separateOperations; - -var _kinds = __nccwpck_require__(2881); - -var _visitor = __nccwpck_require__(7848); - -/** - * separateOperations accepts a single AST document which may contain many - * operations and fragments and returns a collection of AST documents each of - * which contains a single operation as well the fragment definitions it - * refers to. - */ -function separateOperations(documentAST) { - const operations = []; - const depGraph = Object.create(null); // Populate metadata and build a dependency graph. - - for (const definitionNode of documentAST.definitions) { - switch (definitionNode.kind) { - case _kinds.Kind.OPERATION_DEFINITION: - operations.push(definitionNode); - break; - - case _kinds.Kind.FRAGMENT_DEFINITION: - depGraph[definitionNode.name.value] = collectDependencies( - definitionNode.selectionSet, - ); - break; - - default: // ignore non-executable definitions - } - } // For each operation, produce a new synthesized AST which includes only what - // is necessary for completing that operation. - - const separatedDocumentASTs = Object.create(null); - - for (const operation of operations) { - const dependencies = new Set(); - - for (const fragmentName of collectDependencies(operation.selectionSet)) { - collectTransitiveDependencies(dependencies, depGraph, fragmentName); - } // Provides the empty string for anonymous operations. - - const operationName = operation.name ? operation.name.value : ''; // The list of definition nodes to be included for this operation, sorted - // to retain the same order as the original document. - - separatedDocumentASTs[operationName] = { - kind: _kinds.Kind.DOCUMENT, - definitions: documentAST.definitions.filter( - (node) => - node === operation || - (node.kind === _kinds.Kind.FRAGMENT_DEFINITION && - dependencies.has(node.name.value)), - ), - }; - } - - return separatedDocumentASTs; -} - -// From a dependency graph, collects a list of transitive dependencies by -// recursing through a dependency graph. -function collectTransitiveDependencies(collected, depGraph, fromName) { - if (!collected.has(fromName)) { - collected.add(fromName); - const immediateDeps = depGraph[fromName]; - - if (immediateDeps !== undefined) { - for (const toName of immediateDeps) { - collectTransitiveDependencies(collected, depGraph, toName); - } - } - } -} - -function collectDependencies(selectionSet) { - const dependencies = []; - (0, _visitor.visit)(selectionSet, { - FragmentSpread(node) { - dependencies.push(node.name.value); - }, - }); - return dependencies; -} - - -/***/ }), - -/***/ 397: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.sortValueNode = sortValueNode; - -var _naturalCompare = __nccwpck_require__(4834); - -var _kinds = __nccwpck_require__(2881); - -/** - * Sort ValueNode. - * - * This function returns a sorted copy of the given ValueNode. - * - * @internal - */ -function sortValueNode(valueNode) { - switch (valueNode.kind) { - case _kinds.Kind.OBJECT: - return { ...valueNode, fields: sortFields(valueNode.fields) }; - - case _kinds.Kind.LIST: - return { ...valueNode, values: valueNode.values.map(sortValueNode) }; - - case _kinds.Kind.INT: - case _kinds.Kind.FLOAT: - case _kinds.Kind.STRING: - case _kinds.Kind.BOOLEAN: - case _kinds.Kind.NULL: - case _kinds.Kind.ENUM: - case _kinds.Kind.VARIABLE: - return valueNode; - } -} - -function sortFields(fields) { - return fields - .map((fieldNode) => ({ - ...fieldNode, - value: sortValueNode(fieldNode.value), - })) - .sort((fieldA, fieldB) => - (0, _naturalCompare.naturalCompare)(fieldA.name.value, fieldB.name.value), - ); -} - - -/***/ }), - -/***/ 5662: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.stripIgnoredCharacters = stripIgnoredCharacters; - -var _blockString = __nccwpck_require__(510); - -var _lexer = __nccwpck_require__(3604); - -var _source = __nccwpck_require__(4934); - -var _tokenKind = __nccwpck_require__(9229); - -/** - * Strips characters that are not significant to the validity or execution - * of a GraphQL document: - * - UnicodeBOM - * - WhiteSpace - * - LineTerminator - * - Comment - * - Comma - * - BlockString indentation - * - * Note: It is required to have a delimiter character between neighboring - * non-punctuator tokens and this function always uses single space as delimiter. - * - * It is guaranteed that both input and output documents if parsed would result - * in the exact same AST except for nodes location. - * - * Warning: It is guaranteed that this function will always produce stable results. - * However, it's not guaranteed that it will stay the same between different - * releases due to bugfixes or changes in the GraphQL specification. - * - * Query example: - * - * ```graphql - * query SomeQuery($foo: String!, $bar: String) { - * someField(foo: $foo, bar: $bar) { - * a - * b { - * c - * d - * } - * } - * } - * ``` - * - * Becomes: - * - * ```graphql - * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}} - * ``` - * - * SDL example: - * - * ```graphql - * """ - * Type description - * """ - * type Foo { - * """ - * Field description - * """ - * bar: String - * } - * ``` - * - * Becomes: - * - * ```graphql - * """Type description""" type Foo{"""Field description""" bar:String} - * ``` - */ -function stripIgnoredCharacters(source) { - const sourceObj = (0, _source.isSource)(source) - ? source - : new _source.Source(source); - const body = sourceObj.body; - const lexer = new _lexer.Lexer(sourceObj); - let strippedBody = ''; - let wasLastAddedTokenNonPunctuator = false; - - while (lexer.advance().kind !== _tokenKind.TokenKind.EOF) { - const currentToken = lexer.token; - const tokenKind = currentToken.kind; - /** - * Every two non-punctuator tokens should have space between them. - * Also prevent case of non-punctuator token following by spread resulting - * in invalid token (e.g. `1...` is invalid Float token). - */ - - const isNonPunctuator = !(0, _lexer.isPunctuatorTokenKind)( - currentToken.kind, - ); - - if (wasLastAddedTokenNonPunctuator) { - if ( - isNonPunctuator || - currentToken.kind === _tokenKind.TokenKind.SPREAD - ) { - strippedBody += ' '; - } - } - - const tokenBody = body.slice(currentToken.start, currentToken.end); - - if (tokenKind === _tokenKind.TokenKind.BLOCK_STRING) { - strippedBody += (0, _blockString.printBlockString)(currentToken.value, { - minimize: true, - }); - } else { - strippedBody += tokenBody; - } - - wasLastAddedTokenNonPunctuator = isNonPunctuator; - } - - return strippedBody; -} - - -/***/ }), - -/***/ 961: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.doTypesOverlap = doTypesOverlap; -exports.isEqualType = isEqualType; -exports.isTypeSubTypeOf = isTypeSubTypeOf; - -var _definition = __nccwpck_require__(699); - -/** - * Provided two types, return true if the types are equal (invariant). - */ -function isEqualType(typeA, typeB) { - // Equivalent types are equal. - if (typeA === typeB) { - return true; - } // If either type is non-null, the other must also be non-null. - - if ( - (0, _definition.isNonNullType)(typeA) && - (0, _definition.isNonNullType)(typeB) - ) { - return isEqualType(typeA.ofType, typeB.ofType); - } // If either type is a list, the other must also be a list. - - if ( - (0, _definition.isListType)(typeA) && - (0, _definition.isListType)(typeB) - ) { - return isEqualType(typeA.ofType, typeB.ofType); - } // Otherwise the types are not equal. - - return false; -} -/** - * Provided a type and a super type, return true if the first type is either - * equal or a subset of the second super type (covariant). - */ - -function isTypeSubTypeOf(schema, maybeSubType, superType) { - // Equivalent type is a valid subtype - if (maybeSubType === superType) { - return true; - } // If superType is non-null, maybeSubType must also be non-null. - - if ((0, _definition.isNonNullType)(superType)) { - if ((0, _definition.isNonNullType)(maybeSubType)) { - return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType); - } - - return false; - } - - if ((0, _definition.isNonNullType)(maybeSubType)) { - // If superType is nullable, maybeSubType may be non-null or nullable. - return isTypeSubTypeOf(schema, maybeSubType.ofType, superType); - } // If superType type is a list, maybeSubType type must also be a list. - - if ((0, _definition.isListType)(superType)) { - if ((0, _definition.isListType)(maybeSubType)) { - return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType); - } - - return false; - } - - if ((0, _definition.isListType)(maybeSubType)) { - // If superType is not a list, maybeSubType must also be not a list. - return false; - } // If superType type is an abstract type, check if it is super type of maybeSubType. - // Otherwise, the child type is not a valid subtype of the parent type. - - return ( - (0, _definition.isAbstractType)(superType) && - ((0, _definition.isInterfaceType)(maybeSubType) || - (0, _definition.isObjectType)(maybeSubType)) && - schema.isSubType(superType, maybeSubType) - ); -} -/** - * Provided two composite types, determine if they "overlap". Two composite - * types overlap when the Sets of possible concrete types for each intersect. - * - * This is often used to determine if a fragment of a given type could possibly - * be visited in a context of another type. - * - * This function is commutative. - */ - -function doTypesOverlap(schema, typeA, typeB) { - // Equivalent types overlap - if (typeA === typeB) { - return true; - } - - if ((0, _definition.isAbstractType)(typeA)) { - if ((0, _definition.isAbstractType)(typeB)) { - // If both types are abstract, then determine if there is any intersection - // between possible concrete types of each. - return schema - .getPossibleTypes(typeA) - .some((type) => schema.isSubType(typeB, type)); - } // Determine if the latter type is a possible concrete type of the former. - - return schema.isSubType(typeA, typeB); - } - - if ((0, _definition.isAbstractType)(typeB)) { - // Determine if the former type is a possible concrete type of the latter. - return schema.isSubType(typeB, typeA); - } // Otherwise the types do not overlap. - - return false; -} - - -/***/ }), - -/***/ 2136: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.typeFromAST = typeFromAST; - -var _kinds = __nccwpck_require__(2881); - -var _definition = __nccwpck_require__(699); - -function typeFromAST(schema, typeNode) { - switch (typeNode.kind) { - case _kinds.Kind.LIST_TYPE: { - const innerType = typeFromAST(schema, typeNode.type); - return innerType && new _definition.GraphQLList(innerType); - } - - case _kinds.Kind.NON_NULL_TYPE: { - const innerType = typeFromAST(schema, typeNode.type); - return innerType && new _definition.GraphQLNonNull(innerType); - } - - case _kinds.Kind.NAMED_TYPE: - return schema.getType(typeNode.name.value); - } -} - - -/***/ }), - -/***/ 21: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.valueFromAST = valueFromAST; - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _keyMap = __nccwpck_require__(1529); - -var _kinds = __nccwpck_require__(2881); - -var _definition = __nccwpck_require__(699); - -/** - * Produces a JavaScript value given a GraphQL Value AST. - * - * A GraphQL type must be provided, which will be used to interpret different - * GraphQL Value literals. - * - * Returns `undefined` when the value could not be validly coerced according to - * the provided type. - * - * | GraphQL Value | JSON Value | - * | -------------------- | ------------- | - * | Input Object | Object | - * | List | Array | - * | Boolean | Boolean | - * | String | String | - * | Int / Float | Number | - * | Enum Value | Unknown | - * | NullValue | null | - * - */ -function valueFromAST(valueNode, type, variables) { - if (!valueNode) { - // When there is no node, then there is also no value. - // Importantly, this is different from returning the value null. - return; - } - - if (valueNode.kind === _kinds.Kind.VARIABLE) { - const variableName = valueNode.name.value; - - if (variables == null || variables[variableName] === undefined) { - // No valid return value. - return; - } - - const variableValue = variables[variableName]; - - if (variableValue === null && (0, _definition.isNonNullType)(type)) { - return; // Invalid: intentionally return no value. - } // Note: This does no further checking that this variable is correct. - // This assumes that this query has been validated and the variable - // usage here is of the correct type. - - return variableValue; - } - - if ((0, _definition.isNonNullType)(type)) { - if (valueNode.kind === _kinds.Kind.NULL) { - return; // Invalid: intentionally return no value. - } - - return valueFromAST(valueNode, type.ofType, variables); - } - - if (valueNode.kind === _kinds.Kind.NULL) { - // This is explicitly returning the value null. - return null; - } - - if ((0, _definition.isListType)(type)) { - const itemType = type.ofType; - - if (valueNode.kind === _kinds.Kind.LIST) { - const coercedValues = []; - - for (const itemNode of valueNode.values) { - if (isMissingVariable(itemNode, variables)) { - // If an array contains a missing variable, it is either coerced to - // null or if the item type is non-null, it considered invalid. - if ((0, _definition.isNonNullType)(itemType)) { - return; // Invalid: intentionally return no value. - } - - coercedValues.push(null); - } else { - const itemValue = valueFromAST(itemNode, itemType, variables); - - if (itemValue === undefined) { - return; // Invalid: intentionally return no value. - } - - coercedValues.push(itemValue); - } - } - - return coercedValues; - } - - const coercedValue = valueFromAST(valueNode, itemType, variables); - - if (coercedValue === undefined) { - return; // Invalid: intentionally return no value. - } - - return [coercedValue]; - } - - if ((0, _definition.isInputObjectType)(type)) { - if (valueNode.kind !== _kinds.Kind.OBJECT) { - return; // Invalid: intentionally return no value. - } - - const coercedObj = Object.create(null); - const fieldNodes = (0, _keyMap.keyMap)( - valueNode.fields, - (field) => field.name.value, - ); - - for (const field of Object.values(type.getFields())) { - const fieldNode = fieldNodes[field.name]; - - if (!fieldNode || isMissingVariable(fieldNode.value, variables)) { - if (field.defaultValue !== undefined) { - coercedObj[field.name] = field.defaultValue; - } else if ((0, _definition.isNonNullType)(field.type)) { - return; // Invalid: intentionally return no value. - } - - continue; - } - - const fieldValue = valueFromAST(fieldNode.value, field.type, variables); - - if (fieldValue === undefined) { - return; // Invalid: intentionally return no value. - } - - coercedObj[field.name] = fieldValue; - } - - if (type.isOneOf) { - const keys = Object.keys(coercedObj); - - if (keys.length !== 1) { - return; // Invalid: not exactly one key, intentionally return no value. - } - - if (coercedObj[keys[0]] === null) { - return; // Invalid: value not non-null, intentionally return no value. - } - } - - return coercedObj; - } - - if ((0, _definition.isLeafType)(type)) { - // Scalars and Enums fulfill parsing a literal value via parseLiteral(). - // Invalid values represent a failure to parse correctly, in which case - // no value is returned. - let result; - - try { - result = type.parseLiteral(valueNode, variables); - } catch (_error) { - return; // Invalid: intentionally return no value. - } - - if (result === undefined) { - return; // Invalid: intentionally return no value. - } - - return result; - } - /* c8 ignore next 3 */ - // Not reachable, all possible input types have been considered. - - false || - (0, _invariant.invariant)( - false, - 'Unexpected input type: ' + (0, _inspect.inspect)(type), - ); -} // Returns true if the provided valueNode is a variable which is not defined -// in the set of variables. - -function isMissingVariable(valueNode, variables) { - return ( - valueNode.kind === _kinds.Kind.VARIABLE && - (variables == null || variables[valueNode.name.value] === undefined) - ); -} - - -/***/ }), - -/***/ 7252: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.valueFromASTUntyped = valueFromASTUntyped; - -var _keyValMap = __nccwpck_require__(4876); - -var _kinds = __nccwpck_require__(2881); - -/** - * Produces a JavaScript value given a GraphQL Value AST. - * - * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value - * will reflect the provided GraphQL value AST. - * - * | GraphQL Value | JavaScript Value | - * | -------------------- | ---------------- | - * | Input Object | Object | - * | List | Array | - * | Boolean | Boolean | - * | String / Enum | String | - * | Int / Float | Number | - * | Null | null | - * - */ -function valueFromASTUntyped(valueNode, variables) { - switch (valueNode.kind) { - case _kinds.Kind.NULL: - return null; - - case _kinds.Kind.INT: - return parseInt(valueNode.value, 10); - - case _kinds.Kind.FLOAT: - return parseFloat(valueNode.value); - - case _kinds.Kind.STRING: - case _kinds.Kind.ENUM: - case _kinds.Kind.BOOLEAN: - return valueNode.value; - - case _kinds.Kind.LIST: - return valueNode.values.map((node) => - valueFromASTUntyped(node, variables), - ); - - case _kinds.Kind.OBJECT: - return (0, _keyValMap.keyValMap)( - valueNode.fields, - (field) => field.name.value, - (field) => valueFromASTUntyped(field.value, variables), - ); - - case _kinds.Kind.VARIABLE: - return variables === null || variables === void 0 - ? void 0 - : variables[valueNode.name.value]; - } -} - - -/***/ }), - -/***/ 8645: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.ValidationContext = - exports.SDLValidationContext = - exports.ASTValidationContext = - void 0; - -var _kinds = __nccwpck_require__(2881); - -var _visitor = __nccwpck_require__(7848); - -var _TypeInfo = __nccwpck_require__(3502); - -/** - * An instance of this class is passed as the "this" context to all validators, - * allowing access to commonly useful contextual information from within a - * validation rule. - */ -class ASTValidationContext { - constructor(ast, onError) { - this._ast = ast; - this._fragments = undefined; - this._fragmentSpreads = new Map(); - this._recursivelyReferencedFragments = new Map(); - this._onError = onError; - } - - get [Symbol.toStringTag]() { - return 'ASTValidationContext'; - } - - reportError(error) { - this._onError(error); - } - - getDocument() { - return this._ast; - } - - getFragment(name) { - let fragments; - - if (this._fragments) { - fragments = this._fragments; - } else { - fragments = Object.create(null); - - for (const defNode of this.getDocument().definitions) { - if (defNode.kind === _kinds.Kind.FRAGMENT_DEFINITION) { - fragments[defNode.name.value] = defNode; - } - } - - this._fragments = fragments; - } - - return fragments[name]; - } - - getFragmentSpreads(node) { - let spreads = this._fragmentSpreads.get(node); - - if (!spreads) { - spreads = []; - const setsToVisit = [node]; - let set; - - while ((set = setsToVisit.pop())) { - for (const selection of set.selections) { - if (selection.kind === _kinds.Kind.FRAGMENT_SPREAD) { - spreads.push(selection); - } else if (selection.selectionSet) { - setsToVisit.push(selection.selectionSet); - } - } - } - - this._fragmentSpreads.set(node, spreads); - } - - return spreads; - } - - getRecursivelyReferencedFragments(operation) { - let fragments = this._recursivelyReferencedFragments.get(operation); - - if (!fragments) { - fragments = []; - const collectedNames = Object.create(null); - const nodesToVisit = [operation.selectionSet]; - let node; - - while ((node = nodesToVisit.pop())) { - for (const spread of this.getFragmentSpreads(node)) { - const fragName = spread.name.value; - - if (collectedNames[fragName] !== true) { - collectedNames[fragName] = true; - const fragment = this.getFragment(fragName); - - if (fragment) { - fragments.push(fragment); - nodesToVisit.push(fragment.selectionSet); - } - } - } - } - - this._recursivelyReferencedFragments.set(operation, fragments); - } - - return fragments; - } -} - -exports.ASTValidationContext = ASTValidationContext; - -class SDLValidationContext extends ASTValidationContext { - constructor(ast, schema, onError) { - super(ast, onError); - this._schema = schema; - } - - get [Symbol.toStringTag]() { - return 'SDLValidationContext'; - } - - getSchema() { - return this._schema; - } -} - -exports.SDLValidationContext = SDLValidationContext; - -class ValidationContext extends ASTValidationContext { - constructor(schema, ast, typeInfo, onError) { - super(ast, onError); - this._schema = schema; - this._typeInfo = typeInfo; - this._variableUsages = new Map(); - this._recursiveVariableUsages = new Map(); - } - - get [Symbol.toStringTag]() { - return 'ValidationContext'; - } - - getSchema() { - return this._schema; - } - - getVariableUsages(node) { - let usages = this._variableUsages.get(node); - - if (!usages) { - const newUsages = []; - const typeInfo = new _TypeInfo.TypeInfo(this._schema); - (0, _visitor.visit)( - node, - (0, _TypeInfo.visitWithTypeInfo)(typeInfo, { - VariableDefinition: () => false, - - Variable(variable) { - newUsages.push({ - node: variable, - type: typeInfo.getInputType(), - defaultValue: typeInfo.getDefaultValue(), - }); - }, - }), - ); - usages = newUsages; - - this._variableUsages.set(node, usages); - } - - return usages; - } - - getRecursiveVariableUsages(operation) { - let usages = this._recursiveVariableUsages.get(operation); - - if (!usages) { - usages = this.getVariableUsages(operation); - - for (const frag of this.getRecursivelyReferencedFragments(operation)) { - usages = usages.concat(this.getVariableUsages(frag)); - } - - this._recursiveVariableUsages.set(operation, usages); - } - - return usages; - } - - getType() { - return this._typeInfo.getType(); - } - - getParentType() { - return this._typeInfo.getParentType(); - } - - getInputType() { - return this._typeInfo.getInputType(); - } - - getParentInputType() { - return this._typeInfo.getParentInputType(); - } - - getFieldDef() { - return this._typeInfo.getFieldDef(); - } - - getDirective() { - return this._typeInfo.getDirective(); - } - - getArgument() { - return this._typeInfo.getArgument(); - } - - getEnumValue() { - return this._typeInfo.getEnumValue(); - } -} - -exports.ValidationContext = ValidationContext; - - -/***/ }), - -/***/ 456: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -Object.defineProperty(exports, "ExecutableDefinitionsRule", ({ - enumerable: true, - get: function () { - return _ExecutableDefinitionsRule.ExecutableDefinitionsRule; - }, -})); -Object.defineProperty(exports, "FieldsOnCorrectTypeRule", ({ - enumerable: true, - get: function () { - return _FieldsOnCorrectTypeRule.FieldsOnCorrectTypeRule; - }, -})); -Object.defineProperty(exports, "FragmentsOnCompositeTypesRule", ({ - enumerable: true, - get: function () { - return _FragmentsOnCompositeTypesRule.FragmentsOnCompositeTypesRule; - }, -})); -Object.defineProperty(exports, "KnownArgumentNamesRule", ({ - enumerable: true, - get: function () { - return _KnownArgumentNamesRule.KnownArgumentNamesRule; - }, -})); -Object.defineProperty(exports, "KnownDirectivesRule", ({ - enumerable: true, - get: function () { - return _KnownDirectivesRule.KnownDirectivesRule; - }, -})); -Object.defineProperty(exports, "KnownFragmentNamesRule", ({ - enumerable: true, - get: function () { - return _KnownFragmentNamesRule.KnownFragmentNamesRule; - }, -})); -Object.defineProperty(exports, "KnownTypeNamesRule", ({ - enumerable: true, - get: function () { - return _KnownTypeNamesRule.KnownTypeNamesRule; - }, -})); -Object.defineProperty(exports, "LoneAnonymousOperationRule", ({ - enumerable: true, - get: function () { - return _LoneAnonymousOperationRule.LoneAnonymousOperationRule; - }, -})); -Object.defineProperty(exports, "LoneSchemaDefinitionRule", ({ - enumerable: true, - get: function () { - return _LoneSchemaDefinitionRule.LoneSchemaDefinitionRule; - }, -})); -Object.defineProperty(exports, "MaxIntrospectionDepthRule", ({ - enumerable: true, - get: function () { - return _MaxIntrospectionDepthRule.MaxIntrospectionDepthRule; - }, -})); -Object.defineProperty(exports, "NoDeprecatedCustomRule", ({ - enumerable: true, - get: function () { - return _NoDeprecatedCustomRule.NoDeprecatedCustomRule; - }, -})); -Object.defineProperty(exports, "NoFragmentCyclesRule", ({ - enumerable: true, - get: function () { - return _NoFragmentCyclesRule.NoFragmentCyclesRule; - }, -})); -Object.defineProperty(exports, "NoSchemaIntrospectionCustomRule", ({ - enumerable: true, - get: function () { - return _NoSchemaIntrospectionCustomRule.NoSchemaIntrospectionCustomRule; - }, -})); -Object.defineProperty(exports, "NoUndefinedVariablesRule", ({ - enumerable: true, - get: function () { - return _NoUndefinedVariablesRule.NoUndefinedVariablesRule; - }, -})); -Object.defineProperty(exports, "NoUnusedFragmentsRule", ({ - enumerable: true, - get: function () { - return _NoUnusedFragmentsRule.NoUnusedFragmentsRule; - }, -})); -Object.defineProperty(exports, "NoUnusedVariablesRule", ({ - enumerable: true, - get: function () { - return _NoUnusedVariablesRule.NoUnusedVariablesRule; - }, -})); -Object.defineProperty(exports, "OverlappingFieldsCanBeMergedRule", ({ - enumerable: true, - get: function () { - return _OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule; - }, -})); -Object.defineProperty(exports, "PossibleFragmentSpreadsRule", ({ - enumerable: true, - get: function () { - return _PossibleFragmentSpreadsRule.PossibleFragmentSpreadsRule; - }, -})); -Object.defineProperty(exports, "PossibleTypeExtensionsRule", ({ - enumerable: true, - get: function () { - return _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule; - }, -})); -Object.defineProperty(exports, "ProvidedRequiredArgumentsRule", ({ - enumerable: true, - get: function () { - return _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsRule; - }, -})); -Object.defineProperty(exports, "ScalarLeafsRule", ({ - enumerable: true, - get: function () { - return _ScalarLeafsRule.ScalarLeafsRule; - }, -})); -Object.defineProperty(exports, "SingleFieldSubscriptionsRule", ({ - enumerable: true, - get: function () { - return _SingleFieldSubscriptionsRule.SingleFieldSubscriptionsRule; - }, -})); -Object.defineProperty(exports, "UniqueArgumentDefinitionNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueArgumentDefinitionNamesRule.UniqueArgumentDefinitionNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueArgumentNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueArgumentNamesRule.UniqueArgumentNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueDirectiveNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueDirectivesPerLocationRule", ({ - enumerable: true, - get: function () { - return _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule; - }, -})); -Object.defineProperty(exports, "UniqueEnumValueNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueFieldDefinitionNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueFragmentNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueFragmentNamesRule.UniqueFragmentNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueInputFieldNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueOperationNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueOperationNamesRule.UniqueOperationNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueOperationTypesRule", ({ - enumerable: true, - get: function () { - return _UniqueOperationTypesRule.UniqueOperationTypesRule; - }, -})); -Object.defineProperty(exports, "UniqueTypeNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueTypeNamesRule.UniqueTypeNamesRule; - }, -})); -Object.defineProperty(exports, "UniqueVariableNamesRule", ({ - enumerable: true, - get: function () { - return _UniqueVariableNamesRule.UniqueVariableNamesRule; - }, -})); -Object.defineProperty(exports, "ValidationContext", ({ - enumerable: true, - get: function () { - return _ValidationContext.ValidationContext; - }, -})); -Object.defineProperty(exports, "ValuesOfCorrectTypeRule", ({ - enumerable: true, - get: function () { - return _ValuesOfCorrectTypeRule.ValuesOfCorrectTypeRule; - }, -})); -Object.defineProperty(exports, "VariablesAreInputTypesRule", ({ - enumerable: true, - get: function () { - return _VariablesAreInputTypesRule.VariablesAreInputTypesRule; - }, -})); -Object.defineProperty(exports, "VariablesInAllowedPositionRule", ({ - enumerable: true, - get: function () { - return _VariablesInAllowedPositionRule.VariablesInAllowedPositionRule; - }, -})); -Object.defineProperty(exports, "recommendedRules", ({ - enumerable: true, - get: function () { - return _specifiedRules.recommendedRules; - }, -})); -Object.defineProperty(exports, "specifiedRules", ({ - enumerable: true, - get: function () { - return _specifiedRules.specifiedRules; - }, -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.validate; - }, -})); - -var _validate = __nccwpck_require__(5105); - -var _ValidationContext = __nccwpck_require__(8645); - -var _specifiedRules = __nccwpck_require__(1598); - -var _ExecutableDefinitionsRule = __nccwpck_require__(7135); - -var _FieldsOnCorrectTypeRule = __nccwpck_require__(9831); - -var _FragmentsOnCompositeTypesRule = __nccwpck_require__(2021); - -var _KnownArgumentNamesRule = __nccwpck_require__(4813); - -var _KnownDirectivesRule = __nccwpck_require__(6944); - -var _KnownFragmentNamesRule = __nccwpck_require__(7496); - -var _KnownTypeNamesRule = __nccwpck_require__(2864); - -var _LoneAnonymousOperationRule = __nccwpck_require__(5263); - -var _NoFragmentCyclesRule = __nccwpck_require__(4997); - -var _NoUndefinedVariablesRule = __nccwpck_require__(7107); - -var _NoUnusedFragmentsRule = __nccwpck_require__(3275); - -var _NoUnusedVariablesRule = __nccwpck_require__(4587); - -var _OverlappingFieldsCanBeMergedRule = __nccwpck_require__(1988); - -var _PossibleFragmentSpreadsRule = __nccwpck_require__(5492); - -var _ProvidedRequiredArgumentsRule = __nccwpck_require__(6583); - -var _ScalarLeafsRule = __nccwpck_require__(424); - -var _SingleFieldSubscriptionsRule = __nccwpck_require__(3999); - -var _UniqueArgumentNamesRule = __nccwpck_require__(4069); - -var _UniqueDirectivesPerLocationRule = __nccwpck_require__(2729); - -var _UniqueFragmentNamesRule = __nccwpck_require__(96); - -var _UniqueInputFieldNamesRule = __nccwpck_require__(920); - -var _UniqueOperationNamesRule = __nccwpck_require__(3093); - -var _UniqueVariableNamesRule = __nccwpck_require__(5820); - -var _ValuesOfCorrectTypeRule = __nccwpck_require__(3790); - -var _VariablesAreInputTypesRule = __nccwpck_require__(5309); - -var _VariablesInAllowedPositionRule = __nccwpck_require__(6316); - -var _MaxIntrospectionDepthRule = __nccwpck_require__(9603); - -var _LoneSchemaDefinitionRule = __nccwpck_require__(1591); - -var _UniqueOperationTypesRule = __nccwpck_require__(5312); - -var _UniqueTypeNamesRule = __nccwpck_require__(3672); - -var _UniqueEnumValueNamesRule = __nccwpck_require__(1200); - -var _UniqueFieldDefinitionNamesRule = __nccwpck_require__(5933); - -var _UniqueArgumentDefinitionNamesRule = __nccwpck_require__(3986); - -var _UniqueDirectiveNamesRule = __nccwpck_require__(9941); - -var _PossibleTypeExtensionsRule = __nccwpck_require__(2300); - -var _NoDeprecatedCustomRule = __nccwpck_require__(1044); - -var _NoSchemaIntrospectionCustomRule = __nccwpck_require__(3473); - - -/***/ }), - -/***/ 7135: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.ExecutableDefinitionsRule = ExecutableDefinitionsRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _predicates = __nccwpck_require__(418); - -/** - * Executable definitions - * - * A GraphQL document is only valid for execution if all definitions are either - * operation or fragment definitions. - * - * See https://spec.graphql.org/draft/#sec-Executable-Definitions - */ -function ExecutableDefinitionsRule(context) { - return { - Document(node) { - for (const definition of node.definitions) { - if (!(0, _predicates.isExecutableDefinitionNode)(definition)) { - const defName = - definition.kind === _kinds.Kind.SCHEMA_DEFINITION || - definition.kind === _kinds.Kind.SCHEMA_EXTENSION - ? 'schema' - : '"' + definition.name.value + '"'; - context.reportError( - new _GraphQLError.GraphQLError( - `The ${defName} definition is not executable.`, - { - nodes: definition, - }, - ), - ); - } - } - - return false; - }, - }; -} - - -/***/ }), - -/***/ 9831: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.FieldsOnCorrectTypeRule = FieldsOnCorrectTypeRule; - -var _didYouMean = __nccwpck_require__(1627); - -var _naturalCompare = __nccwpck_require__(4834); - -var _suggestionList = __nccwpck_require__(3046); - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -/** - * Fields on correct type - * - * A GraphQL document is only valid if all fields selected are defined by the - * parent type, or are an allowed meta field such as __typename. - * - * See https://spec.graphql.org/draft/#sec-Field-Selections - */ -function FieldsOnCorrectTypeRule(context) { - return { - Field(node) { - const type = context.getParentType(); - - if (type) { - const fieldDef = context.getFieldDef(); - - if (!fieldDef) { - // This field doesn't exist, lets look for suggestions. - const schema = context.getSchema(); - const fieldName = node.name.value; // First determine if there are any suggested types to condition on. - - let suggestion = (0, _didYouMean.didYouMean)( - 'to use an inline fragment on', - getSuggestedTypeNames(schema, type, fieldName), - ); // If there are no suggested types, then perhaps this was a typo? - - if (suggestion === '') { - suggestion = (0, _didYouMean.didYouMean)( - getSuggestedFieldNames(type, fieldName), - ); - } // Report an error, including helpful suggestions. - - context.reportError( - new _GraphQLError.GraphQLError( - `Cannot query field "${fieldName}" on type "${type.name}".` + - suggestion, - { - nodes: node, - }, - ), - ); - } - } - }, - }; -} -/** - * Go through all of the implementations of type, as well as the interfaces that - * they implement. If any of those types include the provided field, suggest them, - * sorted by how often the type is referenced. - */ - -function getSuggestedTypeNames(schema, type, fieldName) { - if (!(0, _definition.isAbstractType)(type)) { - // Must be an Object type, which does not have possible fields. - return []; - } - - const suggestedTypes = new Set(); - const usageCount = Object.create(null); - - for (const possibleType of schema.getPossibleTypes(type)) { - if (!possibleType.getFields()[fieldName]) { - continue; - } // This object type defines this field. - - suggestedTypes.add(possibleType); - usageCount[possibleType.name] = 1; - - for (const possibleInterface of possibleType.getInterfaces()) { - var _usageCount$possibleI; - - if (!possibleInterface.getFields()[fieldName]) { - continue; - } // This interface type defines this field. - - suggestedTypes.add(possibleInterface); - usageCount[possibleInterface.name] = - ((_usageCount$possibleI = usageCount[possibleInterface.name]) !== - null && _usageCount$possibleI !== void 0 - ? _usageCount$possibleI - : 0) + 1; - } - } - - return [...suggestedTypes] - .sort((typeA, typeB) => { - // Suggest both interface and object types based on how common they are. - const usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name]; - - if (usageCountDiff !== 0) { - return usageCountDiff; - } // Suggest super types first followed by subtypes - - if ( - (0, _definition.isInterfaceType)(typeA) && - schema.isSubType(typeA, typeB) - ) { - return -1; - } - - if ( - (0, _definition.isInterfaceType)(typeB) && - schema.isSubType(typeB, typeA) - ) { - return 1; - } - - return (0, _naturalCompare.naturalCompare)(typeA.name, typeB.name); - }) - .map((x) => x.name); -} -/** - * For the field name provided, determine if there are any similar field names - * that may be the result of a typo. - */ - -function getSuggestedFieldNames(type, fieldName) { - if ( - (0, _definition.isObjectType)(type) || - (0, _definition.isInterfaceType)(type) - ) { - const possibleFieldNames = Object.keys(type.getFields()); - return (0, _suggestionList.suggestionList)(fieldName, possibleFieldNames); - } // Otherwise, must be a Union type, which does not define fields. - - return []; -} - - -/***/ }), - -/***/ 2021: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.FragmentsOnCompositeTypesRule = FragmentsOnCompositeTypesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -var _typeFromAST = __nccwpck_require__(2136); - -/** - * Fragments on composite type - * - * Fragments use a type condition to determine if they apply, since fragments - * can only be spread into a composite type (object, interface, or union), the - * type condition must also be a composite type. - * - * See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types - */ -function FragmentsOnCompositeTypesRule(context) { - return { - InlineFragment(node) { - const typeCondition = node.typeCondition; - - if (typeCondition) { - const type = (0, _typeFromAST.typeFromAST)( - context.getSchema(), - typeCondition, - ); - - if (type && !(0, _definition.isCompositeType)(type)) { - const typeStr = (0, _printer.print)(typeCondition); - context.reportError( - new _GraphQLError.GraphQLError( - `Fragment cannot condition on non composite type "${typeStr}".`, - { - nodes: typeCondition, - }, - ), - ); - } - } - }, - - FragmentDefinition(node) { - const type = (0, _typeFromAST.typeFromAST)( - context.getSchema(), - node.typeCondition, - ); - - if (type && !(0, _definition.isCompositeType)(type)) { - const typeStr = (0, _printer.print)(node.typeCondition); - context.reportError( - new _GraphQLError.GraphQLError( - `Fragment "${node.name.value}" cannot condition on non composite type "${typeStr}".`, - { - nodes: node.typeCondition, - }, - ), - ); - } - }, - }; -} - - -/***/ }), - -/***/ 4813: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.KnownArgumentNamesOnDirectivesRule = KnownArgumentNamesOnDirectivesRule; -exports.KnownArgumentNamesRule = KnownArgumentNamesRule; - -var _didYouMean = __nccwpck_require__(1627); - -var _suggestionList = __nccwpck_require__(3046); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _directives = __nccwpck_require__(2572); - -/** - * Known argument names - * - * A GraphQL field is only valid if all supplied arguments are defined by - * that field. - * - * See https://spec.graphql.org/draft/#sec-Argument-Names - * See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations - */ -function KnownArgumentNamesRule(context) { - return { - - ...KnownArgumentNamesOnDirectivesRule(context), - - Argument(argNode) { - const argDef = context.getArgument(); - const fieldDef = context.getFieldDef(); - const parentType = context.getParentType(); - - if (!argDef && fieldDef && parentType) { - const argName = argNode.name.value; - const knownArgsNames = fieldDef.args.map((arg) => arg.name); - const suggestions = (0, _suggestionList.suggestionList)( - argName, - knownArgsNames, - ); - context.reportError( - new _GraphQLError.GraphQLError( - `Unknown argument "${argName}" on field "${parentType.name}.${fieldDef.name}".` + - (0, _didYouMean.didYouMean)(suggestions), - { - nodes: argNode, - }, - ), - ); - } - }, - }; -} -/** - * @internal - */ - -function KnownArgumentNamesOnDirectivesRule(context) { - const directiveArgs = Object.create(null); - const schema = context.getSchema(); - const definedDirectives = schema - ? schema.getDirectives() - : _directives.specifiedDirectives; - - for (const directive of definedDirectives) { - directiveArgs[directive.name] = directive.args.map((arg) => arg.name); - } - - const astDefinitions = context.getDocument().definitions; - - for (const def of astDefinitions) { - if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { - var _def$arguments; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - const argsNodes = - (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 - ? _def$arguments - : []; - directiveArgs[def.name.value] = argsNodes.map((arg) => arg.name.value); - } - } - - return { - Directive(directiveNode) { - const directiveName = directiveNode.name.value; - const knownArgs = directiveArgs[directiveName]; - - if (directiveNode.arguments && knownArgs) { - for (const argNode of directiveNode.arguments) { - const argName = argNode.name.value; - - if (!knownArgs.includes(argName)) { - const suggestions = (0, _suggestionList.suggestionList)( - argName, - knownArgs, - ); - context.reportError( - new _GraphQLError.GraphQLError( - `Unknown argument "${argName}" on directive "@${directiveName}".` + - (0, _didYouMean.didYouMean)(suggestions), - { - nodes: argNode, - }, - ), - ); - } - } - } - - return false; - }, - }; -} - - -/***/ }), - -/***/ 6944: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.KnownDirectivesRule = KnownDirectivesRule; - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _GraphQLError = __nccwpck_require__(1753); - -var _ast = __nccwpck_require__(906); - -var _directiveLocation = __nccwpck_require__(3180); - -var _kinds = __nccwpck_require__(2881); - -var _directives = __nccwpck_require__(2572); - -/** - * Known directives - * - * A GraphQL document is only valid if all `@directives` are known by the - * schema and legally positioned. - * - * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined - */ -function KnownDirectivesRule(context) { - const locationsMap = Object.create(null); - const schema = context.getSchema(); - const definedDirectives = schema - ? schema.getDirectives() - : _directives.specifiedDirectives; - - for (const directive of definedDirectives) { - locationsMap[directive.name] = directive.locations; - } - - const astDefinitions = context.getDocument().definitions; - - for (const def of astDefinitions) { - if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { - locationsMap[def.name.value] = def.locations.map((name) => name.value); - } - } - - return { - Directive(node, _key, _parent, _path, ancestors) { - const name = node.name.value; - const locations = locationsMap[name]; - - if (!locations) { - context.reportError( - new _GraphQLError.GraphQLError(`Unknown directive "@${name}".`, { - nodes: node, - }), - ); - return; - } - - const candidateLocation = getDirectiveLocationForASTPath(ancestors); - - if (candidateLocation && !locations.includes(candidateLocation)) { - context.reportError( - new _GraphQLError.GraphQLError( - `Directive "@${name}" may not be used on ${candidateLocation}.`, - { - nodes: node, - }, - ), - ); - } - }, - }; -} - -function getDirectiveLocationForASTPath(ancestors) { - const appliedTo = ancestors[ancestors.length - 1]; - 'kind' in appliedTo || (0, _invariant.invariant)(false); - - switch (appliedTo.kind) { - case _kinds.Kind.OPERATION_DEFINITION: - return getDirectiveLocationForOperation(appliedTo.operation); - - case _kinds.Kind.FIELD: - return _directiveLocation.DirectiveLocation.FIELD; - - case _kinds.Kind.FRAGMENT_SPREAD: - return _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD; - - case _kinds.Kind.INLINE_FRAGMENT: - return _directiveLocation.DirectiveLocation.INLINE_FRAGMENT; - - case _kinds.Kind.FRAGMENT_DEFINITION: - return _directiveLocation.DirectiveLocation.FRAGMENT_DEFINITION; - - case _kinds.Kind.VARIABLE_DEFINITION: - return _directiveLocation.DirectiveLocation.VARIABLE_DEFINITION; - - case _kinds.Kind.SCHEMA_DEFINITION: - case _kinds.Kind.SCHEMA_EXTENSION: - return _directiveLocation.DirectiveLocation.SCHEMA; - - case _kinds.Kind.SCALAR_TYPE_DEFINITION: - case _kinds.Kind.SCALAR_TYPE_EXTENSION: - return _directiveLocation.DirectiveLocation.SCALAR; - - case _kinds.Kind.OBJECT_TYPE_DEFINITION: - case _kinds.Kind.OBJECT_TYPE_EXTENSION: - return _directiveLocation.DirectiveLocation.OBJECT; - - case _kinds.Kind.FIELD_DEFINITION: - return _directiveLocation.DirectiveLocation.FIELD_DEFINITION; - - case _kinds.Kind.INTERFACE_TYPE_DEFINITION: - case _kinds.Kind.INTERFACE_TYPE_EXTENSION: - return _directiveLocation.DirectiveLocation.INTERFACE; - - case _kinds.Kind.UNION_TYPE_DEFINITION: - case _kinds.Kind.UNION_TYPE_EXTENSION: - return _directiveLocation.DirectiveLocation.UNION; - - case _kinds.Kind.ENUM_TYPE_DEFINITION: - case _kinds.Kind.ENUM_TYPE_EXTENSION: - return _directiveLocation.DirectiveLocation.ENUM; - - case _kinds.Kind.ENUM_VALUE_DEFINITION: - return _directiveLocation.DirectiveLocation.ENUM_VALUE; - - case _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION: - case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION: - return _directiveLocation.DirectiveLocation.INPUT_OBJECT; - - case _kinds.Kind.INPUT_VALUE_DEFINITION: { - const parentNode = ancestors[ancestors.length - 3]; - 'kind' in parentNode || (0, _invariant.invariant)(false); - return parentNode.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION - ? _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION - : _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION; - } - // Not reachable, all possible types have been considered. - - /* c8 ignore next */ - - default: - false || - (0, _invariant.invariant)( - false, - 'Unexpected kind: ' + (0, _inspect.inspect)(appliedTo.kind), - ); - } -} - -function getDirectiveLocationForOperation(operation) { - switch (operation) { - case _ast.OperationTypeNode.QUERY: - return _directiveLocation.DirectiveLocation.QUERY; - - case _ast.OperationTypeNode.MUTATION: - return _directiveLocation.DirectiveLocation.MUTATION; - - case _ast.OperationTypeNode.SUBSCRIPTION: - return _directiveLocation.DirectiveLocation.SUBSCRIPTION; - } -} - - -/***/ }), - -/***/ 7496: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.KnownFragmentNamesRule = KnownFragmentNamesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Known fragment names - * - * A GraphQL document is only valid if all `...Fragment` fragment spreads refer - * to fragments defined in the same document. - * - * See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined - */ -function KnownFragmentNamesRule(context) { - return { - FragmentSpread(node) { - const fragmentName = node.name.value; - const fragment = context.getFragment(fragmentName); - - if (!fragment) { - context.reportError( - new _GraphQLError.GraphQLError( - `Unknown fragment "${fragmentName}".`, - { - nodes: node.name, - }, - ), - ); - } - }, - }; -} - - -/***/ }), - -/***/ 2864: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.KnownTypeNamesRule = KnownTypeNamesRule; - -var _didYouMean = __nccwpck_require__(1627); - -var _suggestionList = __nccwpck_require__(3046); - -var _GraphQLError = __nccwpck_require__(1753); - -var _predicates = __nccwpck_require__(418); - -var _introspection = __nccwpck_require__(2239); - -var _scalars = __nccwpck_require__(8633); - -/** - * Known type names - * - * A GraphQL document is only valid if referenced types (specifically - * variable definitions and fragment conditions) are defined by the type schema. - * - * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence - */ -function KnownTypeNamesRule(context) { - const schema = context.getSchema(); - const existingTypesMap = schema ? schema.getTypeMap() : Object.create(null); - const definedTypes = Object.create(null); - - for (const def of context.getDocument().definitions) { - if ((0, _predicates.isTypeDefinitionNode)(def)) { - definedTypes[def.name.value] = true; - } - } - - const typeNames = [ - ...Object.keys(existingTypesMap), - ...Object.keys(definedTypes), - ]; - return { - NamedType(node, _1, parent, _2, ancestors) { - const typeName = node.name.value; - - if (!existingTypesMap[typeName] && !definedTypes[typeName]) { - var _ancestors$; - - const definitionNode = - (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0 - ? _ancestors$ - : parent; - const isSDL = definitionNode != null && isSDLNode(definitionNode); - - if (isSDL && standardTypeNames.includes(typeName)) { - return; - } - - const suggestedTypes = (0, _suggestionList.suggestionList)( - typeName, - isSDL ? standardTypeNames.concat(typeNames) : typeNames, - ); - context.reportError( - new _GraphQLError.GraphQLError( - `Unknown type "${typeName}".` + - (0, _didYouMean.didYouMean)(suggestedTypes), - { - nodes: node, - }, - ), - ); - } - }, - }; -} - -const standardTypeNames = [ - ..._scalars.specifiedScalarTypes, - ..._introspection.introspectionTypes, -].map((type) => type.name); - -function isSDLNode(value) { - return ( - 'kind' in value && - ((0, _predicates.isTypeSystemDefinitionNode)(value) || - (0, _predicates.isTypeSystemExtensionNode)(value)) - ); -} - - -/***/ }), - -/***/ 5263: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.LoneAnonymousOperationRule = LoneAnonymousOperationRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -/** - * Lone anonymous operation - * - * A GraphQL document is only valid if when it contains an anonymous operation - * (the query short-hand) that it contains only that one operation definition. - * - * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation - */ -function LoneAnonymousOperationRule(context) { - let operationCount = 0; - return { - Document(node) { - operationCount = node.definitions.filter( - (definition) => definition.kind === _kinds.Kind.OPERATION_DEFINITION, - ).length; - }, - - OperationDefinition(node) { - if (!node.name && operationCount > 1) { - context.reportError( - new _GraphQLError.GraphQLError( - 'This anonymous operation must be the only defined operation.', - { - nodes: node, - }, - ), - ); - } - }, - }; -} - - -/***/ }), - -/***/ 1591: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.LoneSchemaDefinitionRule = LoneSchemaDefinitionRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Lone Schema definition - * - * A GraphQL document is only valid if it contains only one schema definition. - */ -function LoneSchemaDefinitionRule(context) { - var _ref, _ref2, _oldSchema$astNode; - - const oldSchema = context.getSchema(); - const alreadyDefined = - (_ref = - (_ref2 = - (_oldSchema$astNode = - oldSchema === null || oldSchema === void 0 - ? void 0 - : oldSchema.astNode) !== null && _oldSchema$astNode !== void 0 - ? _oldSchema$astNode - : oldSchema === null || oldSchema === void 0 - ? void 0 - : oldSchema.getQueryType()) !== null && _ref2 !== void 0 - ? _ref2 - : oldSchema === null || oldSchema === void 0 - ? void 0 - : oldSchema.getMutationType()) !== null && _ref !== void 0 - ? _ref - : oldSchema === null || oldSchema === void 0 - ? void 0 - : oldSchema.getSubscriptionType(); - let schemaDefinitionsCount = 0; - return { - SchemaDefinition(node) { - if (alreadyDefined) { - context.reportError( - new _GraphQLError.GraphQLError( - 'Cannot define a new schema within a schema extension.', - { - nodes: node, - }, - ), - ); - return; - } - - if (schemaDefinitionsCount > 0) { - context.reportError( - new _GraphQLError.GraphQLError( - 'Must provide only one schema definition.', - { - nodes: node, - }, - ), - ); - } - - ++schemaDefinitionsCount; - }, - }; -} - - -/***/ }), - -/***/ 9603: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.MaxIntrospectionDepthRule = MaxIntrospectionDepthRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -const MAX_LISTS_DEPTH = 3; - -function MaxIntrospectionDepthRule(context) { - /** - * Counts the depth of list fields in "__Type" recursively and - * returns `true` if the limit has been reached. - */ - function checkDepth(node, visitedFragments = Object.create(null), depth = 0) { - if (node.kind === _kinds.Kind.FRAGMENT_SPREAD) { - const fragmentName = node.name.value; - - if (visitedFragments[fragmentName] === true) { - // Fragment cycles are handled by `NoFragmentCyclesRule`. - return false; - } - - const fragment = context.getFragment(fragmentName); - - if (!fragment) { - // Missing fragments checks are handled by `KnownFragmentNamesRule`. - return false; - } // Rather than following an immutable programming pattern which has - // significant memory and garbage collection overhead, we've opted to - // take a mutable approach for efficiency's sake. Importantly visiting a - // fragment twice is fine, so long as you don't do one visit inside the - // other. - - try { - visitedFragments[fragmentName] = true; - return checkDepth(fragment, visitedFragments, depth); - } finally { - visitedFragments[fragmentName] = undefined; - } - } - - if ( - node.kind === _kinds.Kind.FIELD && // check all introspection lists - (node.name.value === 'fields' || - node.name.value === 'interfaces' || - node.name.value === 'possibleTypes' || - node.name.value === 'inputFields') - ) { - - depth++; - - if (depth >= MAX_LISTS_DEPTH) { - return true; - } - } // handles fields and inline fragments - - if ('selectionSet' in node && node.selectionSet) { - for (const child of node.selectionSet.selections) { - if (checkDepth(child, visitedFragments, depth)) { - return true; - } - } - } - - return false; - } - - return { - Field(node) { - if (node.name.value === '__schema' || node.name.value === '__type') { - if (checkDepth(node)) { - context.reportError( - new _GraphQLError.GraphQLError( - 'Maximum introspection depth exceeded', - { - nodes: [node], - }, - ), - ); - return false; - } - } - }, - }; -} - - -/***/ }), - -/***/ 4997: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.NoFragmentCyclesRule = NoFragmentCyclesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * No fragment cycles - * - * The graph of fragment spreads must not form any cycles including spreading itself. - * Otherwise an operation could infinitely spread or infinitely execute on cycles in the underlying data. - * - * See https://spec.graphql.org/draft/#sec-Fragment-spreads-must-not-form-cycles - */ -function NoFragmentCyclesRule(context) { - // Tracks already visited fragments to maintain O(N) and to ensure that cycles - // are not redundantly reported. - const visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors - - const spreadPath = []; // Position in the spread path - - const spreadPathIndexByName = Object.create(null); - return { - OperationDefinition: () => false, - - FragmentDefinition(node) { - detectCycleRecursive(node); - return false; - }, - }; // This does a straight-forward DFS to find cycles. - // It does not terminate when a cycle was found but continues to explore - // the graph to find all possible cycles. - - function detectCycleRecursive(fragment) { - if (visitedFrags[fragment.name.value]) { - return; - } - - const fragmentName = fragment.name.value; - visitedFrags[fragmentName] = true; - const spreadNodes = context.getFragmentSpreads(fragment.selectionSet); - - if (spreadNodes.length === 0) { - return; - } - - spreadPathIndexByName[fragmentName] = spreadPath.length; - - for (const spreadNode of spreadNodes) { - const spreadName = spreadNode.name.value; - const cycleIndex = spreadPathIndexByName[spreadName]; - spreadPath.push(spreadNode); - - if (cycleIndex === undefined) { - const spreadFragment = context.getFragment(spreadName); - - if (spreadFragment) { - detectCycleRecursive(spreadFragment); - } - } else { - const cyclePath = spreadPath.slice(cycleIndex); - const viaPath = cyclePath - .slice(0, -1) - .map((s) => '"' + s.name.value + '"') - .join(', '); - context.reportError( - new _GraphQLError.GraphQLError( - `Cannot spread fragment "${spreadName}" within itself` + - (viaPath !== '' ? ` via ${viaPath}.` : '.'), - { - nodes: cyclePath, - }, - ), - ); - } - - spreadPath.pop(); - } - - spreadPathIndexByName[fragmentName] = undefined; - } -} - - -/***/ }), - -/***/ 7107: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.NoUndefinedVariablesRule = NoUndefinedVariablesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * No undefined variables - * - * A GraphQL operation is only valid if all variables encountered, both directly - * and via fragment spreads, are defined by that operation. - * - * See https://spec.graphql.org/draft/#sec-All-Variable-Uses-Defined - */ -function NoUndefinedVariablesRule(context) { - let variableNameDefined = Object.create(null); - return { - OperationDefinition: { - enter() { - variableNameDefined = Object.create(null); - }, - - leave(operation) { - const usages = context.getRecursiveVariableUsages(operation); - - for (const { node } of usages) { - const varName = node.name.value; - - if (variableNameDefined[varName] !== true) { - context.reportError( - new _GraphQLError.GraphQLError( - operation.name - ? `Variable "$${varName}" is not defined by operation "${operation.name.value}".` - : `Variable "$${varName}" is not defined.`, - { - nodes: [node, operation], - }, - ), - ); - } - } - }, - }, - - VariableDefinition(node) { - variableNameDefined[node.variable.name.value] = true; - }, - }; -} - - -/***/ }), - -/***/ 3275: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.NoUnusedFragmentsRule = NoUnusedFragmentsRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * No unused fragments - * - * A GraphQL document is only valid if all fragment definitions are spread - * within operations, or spread within other fragments spread within operations. - * - * See https://spec.graphql.org/draft/#sec-Fragments-Must-Be-Used - */ -function NoUnusedFragmentsRule(context) { - const operationDefs = []; - const fragmentDefs = []; - return { - OperationDefinition(node) { - operationDefs.push(node); - return false; - }, - - FragmentDefinition(node) { - fragmentDefs.push(node); - return false; - }, - - Document: { - leave() { - const fragmentNameUsed = Object.create(null); - - for (const operation of operationDefs) { - for (const fragment of context.getRecursivelyReferencedFragments( - operation, - )) { - fragmentNameUsed[fragment.name.value] = true; - } - } - - for (const fragmentDef of fragmentDefs) { - const fragName = fragmentDef.name.value; - - if (fragmentNameUsed[fragName] !== true) { - context.reportError( - new _GraphQLError.GraphQLError( - `Fragment "${fragName}" is never used.`, - { - nodes: fragmentDef, - }, - ), - ); - } - } - }, - }, - }; -} - - -/***/ }), - -/***/ 4587: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.NoUnusedVariablesRule = NoUnusedVariablesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * No unused variables - * - * A GraphQL operation is only valid if all variables defined by an operation - * are used, either directly or within a spread fragment. - * - * See https://spec.graphql.org/draft/#sec-All-Variables-Used - */ -function NoUnusedVariablesRule(context) { - let variableDefs = []; - return { - OperationDefinition: { - enter() { - variableDefs = []; - }, - - leave(operation) { - const variableNameUsed = Object.create(null); - const usages = context.getRecursiveVariableUsages(operation); - - for (const { node } of usages) { - variableNameUsed[node.name.value] = true; - } - - for (const variableDef of variableDefs) { - const variableName = variableDef.variable.name.value; - - if (variableNameUsed[variableName] !== true) { - context.reportError( - new _GraphQLError.GraphQLError( - operation.name - ? `Variable "$${variableName}" is never used in operation "${operation.name.value}".` - : `Variable "$${variableName}" is never used.`, - { - nodes: variableDef, - }, - ), - ); - } - } - }, - }, - - VariableDefinition(def) { - variableDefs.push(def); - }, - }; -} - - -/***/ }), - -/***/ 1988: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.OverlappingFieldsCanBeMergedRule = OverlappingFieldsCanBeMergedRule; - -var _inspect = __nccwpck_require__(3707); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -var _sortValueNode = __nccwpck_require__(397); - -var _typeFromAST = __nccwpck_require__(2136); - -function reasonMessage(reason) { - if (Array.isArray(reason)) { - return reason - .map( - ([responseName, subReason]) => - `subfields "${responseName}" conflict because ` + - reasonMessage(subReason), - ) - .join(' and '); - } - - return reason; -} -/** - * Overlapping fields can be merged - * - * A selection set is only valid if all fields (including spreading any - * fragments) either correspond to distinct response names or can be merged - * without ambiguity. - * - * See https://spec.graphql.org/draft/#sec-Field-Selection-Merging - */ - -function OverlappingFieldsCanBeMergedRule(context) { - // A memoization for when two fragments are compared "between" each other for - // conflicts. Two fragments may be compared many times, so memoizing this can - // dramatically improve the performance of this validator. - const comparedFragmentPairs = new PairSet(); // A cache for the "field map" and list of fragment names found in any given - // selection set. Selection sets may be asked for this information multiple - // times, so this improves the performance of this validator. - - const cachedFieldsAndFragmentNames = new Map(); - return { - SelectionSet(selectionSet) { - const conflicts = findConflictsWithinSelectionSet( - context, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - context.getParentType(), - selectionSet, - ); - - for (const [[responseName, reason], fields1, fields2] of conflicts) { - const reasonMsg = reasonMessage(reason); - context.reportError( - new _GraphQLError.GraphQLError( - `Fields "${responseName}" conflict because ${reasonMsg}. Use different aliases on the fields to fetch both if this was intentional.`, - { - nodes: fields1.concat(fields2), - }, - ), - ); - } - }, - }; -} - -/** - * Algorithm: - * - * Conflicts occur when two fields exist in a query which will produce the same - * response name, but represent differing values, thus creating a conflict. - * The algorithm below finds all conflicts via making a series of comparisons - * between fields. In order to compare as few fields as possible, this makes - * a series of comparisons "within" sets of fields and "between" sets of fields. - * - * Given any selection set, a collection produces both a set of fields by - * also including all inline fragments, as well as a list of fragments - * referenced by fragment spreads. - * - * A) Each selection set represented in the document first compares "within" its - * collected set of fields, finding any conflicts between every pair of - * overlapping fields. - * Note: This is the *only time* that a the fields "within" a set are compared - * to each other. After this only fields "between" sets are compared. - * - * B) Also, if any fragment is referenced in a selection set, then a - * comparison is made "between" the original set of fields and the - * referenced fragment. - * - * C) Also, if multiple fragments are referenced, then comparisons - * are made "between" each referenced fragment. - * - * D) When comparing "between" a set of fields and a referenced fragment, first - * a comparison is made between each field in the original set of fields and - * each field in the the referenced set of fields. - * - * E) Also, if any fragment is referenced in the referenced selection set, - * then a comparison is made "between" the original set of fields and the - * referenced fragment (recursively referring to step D). - * - * F) When comparing "between" two fragments, first a comparison is made between - * each field in the first referenced set of fields and each field in the the - * second referenced set of fields. - * - * G) Also, any fragments referenced by the first must be compared to the - * second, and any fragments referenced by the second must be compared to the - * first (recursively referring to step F). - * - * H) When comparing two fields, if both have selection sets, then a comparison - * is made "between" both selection sets, first comparing the set of fields in - * the first selection set with the set of fields in the second. - * - * I) Also, if any fragment is referenced in either selection set, then a - * comparison is made "between" the other set of fields and the - * referenced fragment. - * - * J) Also, if two fragments are referenced in both selection sets, then a - * comparison is made "between" the two fragments. - * - */ -// Find all conflicts found "within" a selection set, including those found -// via spreading in fragments. Called when visiting each SelectionSet in the -// GraphQL Document. -function findConflictsWithinSelectionSet( - context, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - parentType, - selectionSet, -) { - const conflicts = []; - const [fieldMap, fragmentNames] = getFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - parentType, - selectionSet, - ); // (A) Find find all conflicts "within" the fields of this selection set. - // Note: this is the *only place* `collectConflictsWithin` is called. - - collectConflictsWithin( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - fieldMap, - ); - - if (fragmentNames.length !== 0) { - // (B) Then collect conflicts between these fields and those represented by - // each spread fragment name found. - for (let i = 0; i < fragmentNames.length; i++) { - collectConflictsBetweenFieldsAndFragment( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - false, - fieldMap, - fragmentNames[i], - ); // (C) Then compare this fragment with all other fragments found in this - // selection set to collect conflicts between fragments spread together. - // This compares each item in the list of fragment names to every other - // item in that same list (except for itself). - - for (let j = i + 1; j < fragmentNames.length; j++) { - collectConflictsBetweenFragments( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - false, - fragmentNames[i], - fragmentNames[j], - ); - } - } - } - - return conflicts; -} // Collect all conflicts found between a set of fields and a fragment reference -// including via spreading in any nested fragments. - -function collectConflictsBetweenFieldsAndFragment( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fieldMap, - fragmentName, -) { - const fragment = context.getFragment(fragmentName); - - if (!fragment) { - return; - } - - const [fieldMap2, referencedFragmentNames] = - getReferencedFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - fragment, - ); // Do not compare a fragment's fieldMap to itself. - - if (fieldMap === fieldMap2) { - return; - } // (D) First collect any conflicts between the provided collection of fields - // and the collection of fields represented by the given fragment. - - collectConflictsBetween( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fieldMap, - fieldMap2, - ); // (E) Then collect any conflicts between the provided collection of fields - // and any fragment names found in the given fragment. - - for (const referencedFragmentName of referencedFragmentNames) { - // Memoize so two fragments are not compared for conflicts more than once. - if ( - comparedFragmentPairs.has( - referencedFragmentName, - fragmentName, - areMutuallyExclusive, - ) - ) { - continue; - } - - comparedFragmentPairs.add( - referencedFragmentName, - fragmentName, - areMutuallyExclusive, - ); - collectConflictsBetweenFieldsAndFragment( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fieldMap, - referencedFragmentName, - ); - } -} // Collect all conflicts found between two fragments, including via spreading in -// any nested fragments. - -function collectConflictsBetweenFragments( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fragmentName1, - fragmentName2, -) { - // No need to compare a fragment to itself. - if (fragmentName1 === fragmentName2) { - return; - } // Memoize so two fragments are not compared for conflicts more than once. - - if ( - comparedFragmentPairs.has( - fragmentName1, - fragmentName2, - areMutuallyExclusive, - ) - ) { - return; - } - - comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive); - const fragment1 = context.getFragment(fragmentName1); - const fragment2 = context.getFragment(fragmentName2); - - if (!fragment1 || !fragment2) { - return; - } - - const [fieldMap1, referencedFragmentNames1] = - getReferencedFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - fragment1, - ); - const [fieldMap2, referencedFragmentNames2] = - getReferencedFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - fragment2, - ); // (F) First, collect all conflicts between these two collections of fields - // (not including any nested fragments). - - collectConflictsBetween( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fieldMap1, - fieldMap2, - ); // (G) Then collect conflicts between the first fragment and any nested - // fragments spread in the second fragment. - - for (const referencedFragmentName2 of referencedFragmentNames2) { - collectConflictsBetweenFragments( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fragmentName1, - referencedFragmentName2, - ); - } // (G) Then collect conflicts between the second fragment and any nested - // fragments spread in the first fragment. - - for (const referencedFragmentName1 of referencedFragmentNames1) { - collectConflictsBetweenFragments( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - referencedFragmentName1, - fragmentName2, - ); - } -} // Find all conflicts found between two selection sets, including those found -// via spreading in fragments. Called when determining if conflicts exist -// between the sub-fields of two overlapping fields. - -function findConflictsBetweenSubSelectionSets( - context, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - parentType1, - selectionSet1, - parentType2, - selectionSet2, -) { - const conflicts = []; - const [fieldMap1, fragmentNames1] = getFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - parentType1, - selectionSet1, - ); - const [fieldMap2, fragmentNames2] = getFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - parentType2, - selectionSet2, - ); // (H) First, collect all conflicts between these two collections of field. - - collectConflictsBetween( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fieldMap1, - fieldMap2, - ); // (I) Then collect conflicts between the first collection of fields and - // those referenced by each fragment name associated with the second. - - for (const fragmentName2 of fragmentNames2) { - collectConflictsBetweenFieldsAndFragment( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fieldMap1, - fragmentName2, - ); - } // (I) Then collect conflicts between the second collection of fields and - // those referenced by each fragment name associated with the first. - - for (const fragmentName1 of fragmentNames1) { - collectConflictsBetweenFieldsAndFragment( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fieldMap2, - fragmentName1, - ); - } // (J) Also collect conflicts between any fragment names by the first and - // fragment names by the second. This compares each item in the first set of - // names to each item in the second set of names. - - for (const fragmentName1 of fragmentNames1) { - for (const fragmentName2 of fragmentNames2) { - collectConflictsBetweenFragments( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - fragmentName1, - fragmentName2, - ); - } - } - - return conflicts; -} // Collect all Conflicts "within" one collection of fields. - -function collectConflictsWithin( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - fieldMap, -) { - // A field map is a keyed collection, where each key represents a response - // name and the value at that key is a list of all fields which provide that - // response name. For every response name, if there are multiple fields, they - // must be compared to find a potential conflict. - for (const [responseName, fields] of Object.entries(fieldMap)) { - // This compares every field in the list to every other field in this list - // (except to itself). If the list only has one item, nothing needs to - // be compared. - if (fields.length > 1) { - for (let i = 0; i < fields.length; i++) { - for (let j = i + 1; j < fields.length; j++) { - const conflict = findConflict( - context, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - false, // within one collection is never mutually exclusive - responseName, - fields[i], - fields[j], - ); - - if (conflict) { - conflicts.push(conflict); - } - } - } - } - } -} // Collect all Conflicts between two collections of fields. This is similar to, -// but different from the `collectConflictsWithin` function above. This check -// assumes that `collectConflictsWithin` has already been called on each -// provided collection of fields. This is true because this validator traverses -// each individual selection set. - -function collectConflictsBetween( - context, - conflicts, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - parentFieldsAreMutuallyExclusive, - fieldMap1, - fieldMap2, -) { - // A field map is a keyed collection, where each key represents a response - // name and the value at that key is a list of all fields which provide that - // response name. For any response name which appears in both provided field - // maps, each field from the first field map must be compared to every field - // in the second field map to find potential conflicts. - for (const [responseName, fields1] of Object.entries(fieldMap1)) { - const fields2 = fieldMap2[responseName]; - - if (fields2) { - for (const field1 of fields1) { - for (const field2 of fields2) { - const conflict = findConflict( - context, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - parentFieldsAreMutuallyExclusive, - responseName, - field1, - field2, - ); - - if (conflict) { - conflicts.push(conflict); - } - } - } - } - } -} // Determines if there is a conflict between two particular fields, including -// comparing their sub-fields. - -function findConflict( - context, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - parentFieldsAreMutuallyExclusive, - responseName, - field1, - field2, -) { - const [parentType1, node1, def1] = field1; - const [parentType2, node2, def2] = field2; // If it is known that two fields could not possibly apply at the same - // time, due to the parent types, then it is safe to permit them to diverge - // in aliased field or arguments used as they will not present any ambiguity - // by differing. - // It is known that two parent types could never overlap if they are - // different Object types. Interface or Union types might overlap - if not - // in the current state of the schema, then perhaps in some future version, - // thus may not safely diverge. - - const areMutuallyExclusive = - parentFieldsAreMutuallyExclusive || - (parentType1 !== parentType2 && - (0, _definition.isObjectType)(parentType1) && - (0, _definition.isObjectType)(parentType2)); - - if (!areMutuallyExclusive) { - // Two aliases must refer to the same field. - const name1 = node1.name.value; - const name2 = node2.name.value; - - if (name1 !== name2) { - return [ - [responseName, `"${name1}" and "${name2}" are different fields`], - [node1], - [node2], - ]; - } // Two field calls must have the same arguments. - - if (!sameArguments(node1, node2)) { - return [ - [responseName, 'they have differing arguments'], - [node1], - [node2], - ]; - } - } // The return type for each field. - - const type1 = def1 === null || def1 === void 0 ? void 0 : def1.type; - const type2 = def2 === null || def2 === void 0 ? void 0 : def2.type; - - if (type1 && type2 && doTypesConflict(type1, type2)) { - return [ - [ - responseName, - `they return conflicting types "${(0, _inspect.inspect)( - type1, - )}" and "${(0, _inspect.inspect)(type2)}"`, - ], - [node1], - [node2], - ]; - } // Collect and compare sub-fields. Use the same "visited fragment names" list - // for both collections so fields in a fragment reference are never - // compared to themselves. - - const selectionSet1 = node1.selectionSet; - const selectionSet2 = node2.selectionSet; - - if (selectionSet1 && selectionSet2) { - const conflicts = findConflictsBetweenSubSelectionSets( - context, - cachedFieldsAndFragmentNames, - comparedFragmentPairs, - areMutuallyExclusive, - (0, _definition.getNamedType)(type1), - selectionSet1, - (0, _definition.getNamedType)(type2), - selectionSet2, - ); - return subfieldConflicts(conflicts, responseName, node1, node2); - } -} - -function sameArguments(node1, node2) { - const args1 = node1.arguments; - const args2 = node2.arguments; - - if (args1 === undefined || args1.length === 0) { - return args2 === undefined || args2.length === 0; - } - - if (args2 === undefined || args2.length === 0) { - return false; - } - /* c8 ignore next */ - - if (args1.length !== args2.length) { - /* c8 ignore next */ - return false; - /* c8 ignore next */ - } - - const values2 = new Map(args2.map(({ name, value }) => [name.value, value])); - return args1.every((arg1) => { - const value1 = arg1.value; - const value2 = values2.get(arg1.name.value); - - if (value2 === undefined) { - return false; - } - - return stringifyValue(value1) === stringifyValue(value2); - }); -} - -function stringifyValue(value) { - return (0, _printer.print)((0, _sortValueNode.sortValueNode)(value)); -} // Two types conflict if both types could not apply to a value simultaneously. -// Composite types are ignored as their individual field types will be compared -// later recursively. However List and Non-Null types must match. - -function doTypesConflict(type1, type2) { - if ((0, _definition.isListType)(type1)) { - return (0, _definition.isListType)(type2) - ? doTypesConflict(type1.ofType, type2.ofType) - : true; - } - - if ((0, _definition.isListType)(type2)) { - return true; - } - - if ((0, _definition.isNonNullType)(type1)) { - return (0, _definition.isNonNullType)(type2) - ? doTypesConflict(type1.ofType, type2.ofType) - : true; - } - - if ((0, _definition.isNonNullType)(type2)) { - return true; - } - - if ( - (0, _definition.isLeafType)(type1) || - (0, _definition.isLeafType)(type2) - ) { - return type1 !== type2; - } - - return false; -} // Given a selection set, return the collection of fields (a mapping of response -// name to field nodes and definitions) as well as a list of fragment names -// referenced via fragment spreads. - -function getFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - parentType, - selectionSet, -) { - const cached = cachedFieldsAndFragmentNames.get(selectionSet); - - if (cached) { - return cached; - } - - const nodeAndDefs = Object.create(null); - const fragmentNames = Object.create(null); - - _collectFieldsAndFragmentNames( - context, - parentType, - selectionSet, - nodeAndDefs, - fragmentNames, - ); - - const result = [nodeAndDefs, Object.keys(fragmentNames)]; - cachedFieldsAndFragmentNames.set(selectionSet, result); - return result; -} // Given a reference to a fragment, return the represented collection of fields -// as well as a list of nested fragment names referenced via fragment spreads. - -function getReferencedFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - fragment, -) { - // Short-circuit building a type from the node if possible. - const cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet); - - if (cached) { - return cached; - } - - const fragmentType = (0, _typeFromAST.typeFromAST)( - context.getSchema(), - fragment.typeCondition, - ); - return getFieldsAndFragmentNames( - context, - cachedFieldsAndFragmentNames, - fragmentType, - fragment.selectionSet, - ); -} - -function _collectFieldsAndFragmentNames( - context, - parentType, - selectionSet, - nodeAndDefs, - fragmentNames, -) { - for (const selection of selectionSet.selections) { - switch (selection.kind) { - case _kinds.Kind.FIELD: { - const fieldName = selection.name.value; - let fieldDef; - - if ( - (0, _definition.isObjectType)(parentType) || - (0, _definition.isInterfaceType)(parentType) - ) { - fieldDef = parentType.getFields()[fieldName]; - } - - const responseName = selection.alias - ? selection.alias.value - : fieldName; - - if (!nodeAndDefs[responseName]) { - nodeAndDefs[responseName] = []; - } - - nodeAndDefs[responseName].push([parentType, selection, fieldDef]); - break; - } - - case _kinds.Kind.FRAGMENT_SPREAD: - fragmentNames[selection.name.value] = true; - break; - - case _kinds.Kind.INLINE_FRAGMENT: { - const typeCondition = selection.typeCondition; - const inlineFragmentType = typeCondition - ? (0, _typeFromAST.typeFromAST)(context.getSchema(), typeCondition) - : parentType; - - _collectFieldsAndFragmentNames( - context, - inlineFragmentType, - selection.selectionSet, - nodeAndDefs, - fragmentNames, - ); - - break; - } - } - } -} // Given a series of Conflicts which occurred between two sub-fields, generate -// a single Conflict. - -function subfieldConflicts(conflicts, responseName, node1, node2) { - if (conflicts.length > 0) { - return [ - [responseName, conflicts.map(([reason]) => reason)], - [node1, ...conflicts.map(([, fields1]) => fields1).flat()], - [node2, ...conflicts.map(([, , fields2]) => fields2).flat()], - ]; - } -} -/** - * A way to keep track of pairs of things when the ordering of the pair does not matter. - */ - -class PairSet { - constructor() { - this._data = new Map(); - } - - has(a, b, areMutuallyExclusive) { - var _this$_data$get; - - const [key1, key2] = a < b ? [a, b] : [b, a]; - const result = - (_this$_data$get = this._data.get(key1)) === null || - _this$_data$get === void 0 - ? void 0 - : _this$_data$get.get(key2); - - if (result === undefined) { - return false; - } // areMutuallyExclusive being false is a superset of being true, hence if - // we want to know if this PairSet "has" these two with no exclusivity, - // we have to ensure it was added as such. - - return areMutuallyExclusive ? true : areMutuallyExclusive === result; - } - - add(a, b, areMutuallyExclusive) { - const [key1, key2] = a < b ? [a, b] : [b, a]; - - const map = this._data.get(key1); - - if (map === undefined) { - this._data.set(key1, new Map([[key2, areMutuallyExclusive]])); - } else { - map.set(key2, areMutuallyExclusive); - } - } -} - - -/***/ }), - -/***/ 5492: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.PossibleFragmentSpreadsRule = PossibleFragmentSpreadsRule; - -var _inspect = __nccwpck_require__(3707); - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -var _typeComparators = __nccwpck_require__(961); - -var _typeFromAST = __nccwpck_require__(2136); - -/** - * Possible fragment spread - * - * A fragment spread is only valid if the type condition could ever possibly - * be true: if there is a non-empty intersection of the possible parent types, - * and possible types which pass the type condition. - */ -function PossibleFragmentSpreadsRule(context) { - return { - InlineFragment(node) { - const fragType = context.getType(); - const parentType = context.getParentType(); - - if ( - (0, _definition.isCompositeType)(fragType) && - (0, _definition.isCompositeType)(parentType) && - !(0, _typeComparators.doTypesOverlap)( - context.getSchema(), - fragType, - parentType, - ) - ) { - const parentTypeStr = (0, _inspect.inspect)(parentType); - const fragTypeStr = (0, _inspect.inspect)(fragType); - context.reportError( - new _GraphQLError.GraphQLError( - `Fragment cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`, - { - nodes: node, - }, - ), - ); - } - }, - - FragmentSpread(node) { - const fragName = node.name.value; - const fragType = getFragmentType(context, fragName); - const parentType = context.getParentType(); - - if ( - fragType && - parentType && - !(0, _typeComparators.doTypesOverlap)( - context.getSchema(), - fragType, - parentType, - ) - ) { - const parentTypeStr = (0, _inspect.inspect)(parentType); - const fragTypeStr = (0, _inspect.inspect)(fragType); - context.reportError( - new _GraphQLError.GraphQLError( - `Fragment "${fragName}" cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`, - { - nodes: node, - }, - ), - ); - } - }, - }; -} - -function getFragmentType(context, name) { - const frag = context.getFragment(name); - - if (frag) { - const type = (0, _typeFromAST.typeFromAST)( - context.getSchema(), - frag.typeCondition, - ); - - if ((0, _definition.isCompositeType)(type)) { - return type; - } - } -} - - -/***/ }), - -/***/ 2300: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.PossibleTypeExtensionsRule = PossibleTypeExtensionsRule; - -var _didYouMean = __nccwpck_require__(1627); - -var _inspect = __nccwpck_require__(3707); - -var _invariant = __nccwpck_require__(9952); - -var _suggestionList = __nccwpck_require__(3046); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _predicates = __nccwpck_require__(418); - -var _definition = __nccwpck_require__(699); - -/** - * Possible type extension - * - * A type extension is only valid if the type is defined and has the same kind. - */ -function PossibleTypeExtensionsRule(context) { - const schema = context.getSchema(); - const definedTypes = Object.create(null); - - for (const def of context.getDocument().definitions) { - if ((0, _predicates.isTypeDefinitionNode)(def)) { - definedTypes[def.name.value] = def; - } - } - - return { - ScalarTypeExtension: checkExtension, - ObjectTypeExtension: checkExtension, - InterfaceTypeExtension: checkExtension, - UnionTypeExtension: checkExtension, - EnumTypeExtension: checkExtension, - InputObjectTypeExtension: checkExtension, - }; - - function checkExtension(node) { - const typeName = node.name.value; - const defNode = definedTypes[typeName]; - const existingType = - schema === null || schema === void 0 ? void 0 : schema.getType(typeName); - let expectedKind; - - if (defNode) { - expectedKind = defKindToExtKind[defNode.kind]; - } else if (existingType) { - expectedKind = typeToExtKind(existingType); - } - - if (expectedKind) { - if (expectedKind !== node.kind) { - const kindStr = extensionKindToTypeName(node.kind); - context.reportError( - new _GraphQLError.GraphQLError( - `Cannot extend non-${kindStr} type "${typeName}".`, - { - nodes: defNode ? [defNode, node] : node, - }, - ), - ); - } - } else { - const allTypeNames = Object.keys({ - ...definedTypes, - ...(schema === null || schema === void 0 - ? void 0 - : schema.getTypeMap()), - }); - const suggestedTypes = (0, _suggestionList.suggestionList)( - typeName, - allTypeNames, - ); - context.reportError( - new _GraphQLError.GraphQLError( - `Cannot extend type "${typeName}" because it is not defined.` + - (0, _didYouMean.didYouMean)(suggestedTypes), - { - nodes: node.name, - }, - ), - ); - } - } -} - -const defKindToExtKind = { - [_kinds.Kind.SCALAR_TYPE_DEFINITION]: _kinds.Kind.SCALAR_TYPE_EXTENSION, - [_kinds.Kind.OBJECT_TYPE_DEFINITION]: _kinds.Kind.OBJECT_TYPE_EXTENSION, - [_kinds.Kind.INTERFACE_TYPE_DEFINITION]: _kinds.Kind.INTERFACE_TYPE_EXTENSION, - [_kinds.Kind.UNION_TYPE_DEFINITION]: _kinds.Kind.UNION_TYPE_EXTENSION, - [_kinds.Kind.ENUM_TYPE_DEFINITION]: _kinds.Kind.ENUM_TYPE_EXTENSION, - [_kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION]: - _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION, -}; - -function typeToExtKind(type) { - if ((0, _definition.isScalarType)(type)) { - return _kinds.Kind.SCALAR_TYPE_EXTENSION; - } - - if ((0, _definition.isObjectType)(type)) { - return _kinds.Kind.OBJECT_TYPE_EXTENSION; - } - - if ((0, _definition.isInterfaceType)(type)) { - return _kinds.Kind.INTERFACE_TYPE_EXTENSION; - } - - if ((0, _definition.isUnionType)(type)) { - return _kinds.Kind.UNION_TYPE_EXTENSION; - } - - if ((0, _definition.isEnumType)(type)) { - return _kinds.Kind.ENUM_TYPE_EXTENSION; - } - - if ((0, _definition.isInputObjectType)(type)) { - return _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION; - } - /* c8 ignore next 3 */ - // Not reachable. All possible types have been considered - - false || - (0, _invariant.invariant)( - false, - 'Unexpected type: ' + (0, _inspect.inspect)(type), - ); -} - -function extensionKindToTypeName(kind) { - switch (kind) { - case _kinds.Kind.SCALAR_TYPE_EXTENSION: - return 'scalar'; - - case _kinds.Kind.OBJECT_TYPE_EXTENSION: - return 'object'; - - case _kinds.Kind.INTERFACE_TYPE_EXTENSION: - return 'interface'; - - case _kinds.Kind.UNION_TYPE_EXTENSION: - return 'union'; - - case _kinds.Kind.ENUM_TYPE_EXTENSION: - return 'enum'; - - case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION: - return 'input object'; - // Not reachable. All possible types have been considered - - /* c8 ignore next */ - - default: - false || - (0, _invariant.invariant)( - false, - 'Unexpected kind: ' + (0, _inspect.inspect)(kind), - ); - } -} - - -/***/ }), - -/***/ 6583: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.ProvidedRequiredArgumentsOnDirectivesRule = - ProvidedRequiredArgumentsOnDirectivesRule; -exports.ProvidedRequiredArgumentsRule = ProvidedRequiredArgumentsRule; - -var _inspect = __nccwpck_require__(3707); - -var _keyMap = __nccwpck_require__(1529); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -var _directives = __nccwpck_require__(2572); - -/** - * Provided required arguments - * - * A field or directive is only valid if all required (non-null without a - * default value) field arguments have been provided. - */ -function ProvidedRequiredArgumentsRule(context) { - return { - - ...ProvidedRequiredArgumentsOnDirectivesRule(context), - Field: { - // Validate on leave to allow for deeper errors to appear first. - leave(fieldNode) { - var _fieldNode$arguments; - - const fieldDef = context.getFieldDef(); - - if (!fieldDef) { - return false; - } - - const providedArgs = new Set( // FIXME: https://github.com/graphql/graphql-js/issues/2203 - /* c8 ignore next */ - (_fieldNode$arguments = fieldNode.arguments) === null || - _fieldNode$arguments === void 0 - ? void 0 - : _fieldNode$arguments.map((arg) => arg.name.value), - ); - - for (const argDef of fieldDef.args) { - if ( - !providedArgs.has(argDef.name) && - (0, _definition.isRequiredArgument)(argDef) - ) { - const argTypeStr = (0, _inspect.inspect)(argDef.type); - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${fieldDef.name}" argument "${argDef.name}" of type "${argTypeStr}" is required, but it was not provided.`, - { - nodes: fieldNode, - }, - ), - ); - } - } - }, - }, - }; -} -/** - * @internal - */ - -function ProvidedRequiredArgumentsOnDirectivesRule(context) { - var _schema$getDirectives; - - const requiredArgsMap = Object.create(null); - const schema = context.getSchema(); - const definedDirectives = - (_schema$getDirectives = - schema === null || schema === void 0 - ? void 0 - : schema.getDirectives()) !== null && _schema$getDirectives !== void 0 - ? _schema$getDirectives - : _directives.specifiedDirectives; - - for (const directive of definedDirectives) { - requiredArgsMap[directive.name] = (0, _keyMap.keyMap)( - directive.args.filter(_definition.isRequiredArgument), - (arg) => arg.name, - ); - } - - const astDefinitions = context.getDocument().definitions; - - for (const def of astDefinitions) { - if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { - var _def$arguments; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - const argNodes = - (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 - ? _def$arguments - : []; - requiredArgsMap[def.name.value] = (0, _keyMap.keyMap)( - argNodes.filter(isRequiredArgumentNode), - (arg) => arg.name.value, - ); - } - } - - return { - Directive: { - // Validate on leave to allow for deeper errors to appear first. - leave(directiveNode) { - const directiveName = directiveNode.name.value; - const requiredArgs = requiredArgsMap[directiveName]; - - if (requiredArgs) { - var _directiveNode$argume; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - const argNodes = - (_directiveNode$argume = directiveNode.arguments) !== null && - _directiveNode$argume !== void 0 - ? _directiveNode$argume - : []; - const argNodeMap = new Set(argNodes.map((arg) => arg.name.value)); - - for (const [argName, argDef] of Object.entries(requiredArgs)) { - if (!argNodeMap.has(argName)) { - const argType = (0, _definition.isType)(argDef.type) - ? (0, _inspect.inspect)(argDef.type) - : (0, _printer.print)(argDef.type); - context.reportError( - new _GraphQLError.GraphQLError( - `Directive "@${directiveName}" argument "${argName}" of type "${argType}" is required, but it was not provided.`, - { - nodes: directiveNode, - }, - ), - ); - } - } - } - }, - }, - }; -} - -function isRequiredArgumentNode(arg) { - return ( - arg.type.kind === _kinds.Kind.NON_NULL_TYPE && arg.defaultValue == null - ); -} - - -/***/ }), - -/***/ 424: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.ScalarLeafsRule = ScalarLeafsRule; - -var _inspect = __nccwpck_require__(3707); - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -/** - * Scalar leafs - * - * A GraphQL document is valid only if all leaf fields (fields without - * sub selections) are of scalar or enum types. - */ -function ScalarLeafsRule(context) { - return { - Field(node) { - const type = context.getType(); - const selectionSet = node.selectionSet; - - if (type) { - if ((0, _definition.isLeafType)((0, _definition.getNamedType)(type))) { - if (selectionSet) { - const fieldName = node.name.value; - const typeStr = (0, _inspect.inspect)(type); - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${fieldName}" must not have a selection since type "${typeStr}" has no subfields.`, - { - nodes: selectionSet, - }, - ), - ); - } - } else if (!selectionSet) { - const fieldName = node.name.value; - const typeStr = (0, _inspect.inspect)(type); - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${fieldName}" of type "${typeStr}" must have a selection of subfields. Did you mean "${fieldName} { ... }"?`, - { - nodes: node, - }, - ), - ); - } - } - }, - }; -} - - -/***/ }), - -/***/ 3999: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.SingleFieldSubscriptionsRule = SingleFieldSubscriptionsRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _collectFields = __nccwpck_require__(3685); - -/** - * Subscriptions must only include a non-introspection field. - * - * A GraphQL subscription is valid only if it contains a single root field and - * that root field is not an introspection field. - * - * See https://spec.graphql.org/draft/#sec-Single-root-field - */ -function SingleFieldSubscriptionsRule(context) { - return { - OperationDefinition(node) { - if (node.operation === 'subscription') { - const schema = context.getSchema(); - const subscriptionType = schema.getSubscriptionType(); - - if (subscriptionType) { - const operationName = node.name ? node.name.value : null; - const variableValues = Object.create(null); - const document = context.getDocument(); - const fragments = Object.create(null); - - for (const definition of document.definitions) { - if (definition.kind === _kinds.Kind.FRAGMENT_DEFINITION) { - fragments[definition.name.value] = definition; - } - } - - const fields = (0, _collectFields.collectFields)( - schema, - fragments, - variableValues, - subscriptionType, - node.selectionSet, - ); - - if (fields.size > 1) { - const fieldSelectionLists = [...fields.values()]; - const extraFieldSelectionLists = fieldSelectionLists.slice(1); - const extraFieldSelections = extraFieldSelectionLists.flat(); - context.reportError( - new _GraphQLError.GraphQLError( - operationName != null - ? `Subscription "${operationName}" must select only one top level field.` - : 'Anonymous Subscription must select only one top level field.', - { - nodes: extraFieldSelections, - }, - ), - ); - } - - for (const fieldNodes of fields.values()) { - const field = fieldNodes[0]; - const fieldName = field.name.value; - - if (fieldName.startsWith('__')) { - context.reportError( - new _GraphQLError.GraphQLError( - operationName != null - ? `Subscription "${operationName}" must not select an introspection top level field.` - : 'Anonymous Subscription must not select an introspection top level field.', - { - nodes: fieldNodes, - }, - ), - ); - } - } - } - } - }, - }; -} - - -/***/ }), - -/***/ 3986: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueArgumentDefinitionNamesRule = UniqueArgumentDefinitionNamesRule; - -var _groupBy = __nccwpck_require__(8982); - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique argument definition names - * - * A GraphQL Object or Interface type is only valid if all its fields have uniquely named arguments. - * A GraphQL Directive is only valid if all its arguments are uniquely named. - */ -function UniqueArgumentDefinitionNamesRule(context) { - return { - DirectiveDefinition(directiveNode) { - var _directiveNode$argume; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - const argumentNodes = - (_directiveNode$argume = directiveNode.arguments) !== null && - _directiveNode$argume !== void 0 - ? _directiveNode$argume - : []; - return checkArgUniqueness(`@${directiveNode.name.value}`, argumentNodes); - }, - - InterfaceTypeDefinition: checkArgUniquenessPerField, - InterfaceTypeExtension: checkArgUniquenessPerField, - ObjectTypeDefinition: checkArgUniquenessPerField, - ObjectTypeExtension: checkArgUniquenessPerField, - }; - - function checkArgUniquenessPerField(typeNode) { - var _typeNode$fields; - - const typeName = typeNode.name.value; // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - - const fieldNodes = - (_typeNode$fields = typeNode.fields) !== null && - _typeNode$fields !== void 0 - ? _typeNode$fields - : []; - - for (const fieldDef of fieldNodes) { - var _fieldDef$arguments; - - const fieldName = fieldDef.name.value; // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - - const argumentNodes = - (_fieldDef$arguments = fieldDef.arguments) !== null && - _fieldDef$arguments !== void 0 - ? _fieldDef$arguments - : []; - checkArgUniqueness(`${typeName}.${fieldName}`, argumentNodes); - } - - return false; - } - - function checkArgUniqueness(parentName, argumentNodes) { - const seenArgs = (0, _groupBy.groupBy)( - argumentNodes, - (arg) => arg.name.value, - ); - - for (const [argName, argNodes] of seenArgs) { - if (argNodes.length > 1) { - context.reportError( - new _GraphQLError.GraphQLError( - `Argument "${parentName}(${argName}:)" can only be defined once.`, - { - nodes: argNodes.map((node) => node.name), - }, - ), - ); - } - } - - return false; - } -} - - -/***/ }), - -/***/ 4069: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueArgumentNamesRule = UniqueArgumentNamesRule; - -var _groupBy = __nccwpck_require__(8982); - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique argument names - * - * A GraphQL field or directive is only valid if all supplied arguments are - * uniquely named. - * - * See https://spec.graphql.org/draft/#sec-Argument-Names - */ -function UniqueArgumentNamesRule(context) { - return { - Field: checkArgUniqueness, - Directive: checkArgUniqueness, - }; - - function checkArgUniqueness(parentNode) { - var _parentNode$arguments; - - // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - const argumentNodes = - (_parentNode$arguments = parentNode.arguments) !== null && - _parentNode$arguments !== void 0 - ? _parentNode$arguments - : []; - const seenArgs = (0, _groupBy.groupBy)( - argumentNodes, - (arg) => arg.name.value, - ); - - for (const [argName, argNodes] of seenArgs) { - if (argNodes.length > 1) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one argument named "${argName}".`, - { - nodes: argNodes.map((node) => node.name), - }, - ), - ); - } - } - } -} - - -/***/ }), - -/***/ 9941: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueDirectiveNamesRule = UniqueDirectiveNamesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique directive names - * - * A GraphQL document is only valid if all defined directives have unique names. - */ -function UniqueDirectiveNamesRule(context) { - const knownDirectiveNames = Object.create(null); - const schema = context.getSchema(); - return { - DirectiveDefinition(node) { - const directiveName = node.name.value; - - if ( - schema !== null && - schema !== void 0 && - schema.getDirective(directiveName) - ) { - context.reportError( - new _GraphQLError.GraphQLError( - `Directive "@${directiveName}" already exists in the schema. It cannot be redefined.`, - { - nodes: node.name, - }, - ), - ); - return; - } - - if (knownDirectiveNames[directiveName]) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one directive named "@${directiveName}".`, - { - nodes: [knownDirectiveNames[directiveName], node.name], - }, - ), - ); - } else { - knownDirectiveNames[directiveName] = node.name; - } - - return false; - }, - }; -} - - -/***/ }), - -/***/ 2729: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueDirectivesPerLocationRule = UniqueDirectivesPerLocationRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _predicates = __nccwpck_require__(418); - -var _directives = __nccwpck_require__(2572); - -/** - * Unique directive names per location - * - * A GraphQL document is only valid if all non-repeatable directives at - * a given location are uniquely named. - * - * See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location - */ -function UniqueDirectivesPerLocationRule(context) { - const uniqueDirectiveMap = Object.create(null); - const schema = context.getSchema(); - const definedDirectives = schema - ? schema.getDirectives() - : _directives.specifiedDirectives; - - for (const directive of definedDirectives) { - uniqueDirectiveMap[directive.name] = !directive.isRepeatable; - } - - const astDefinitions = context.getDocument().definitions; - - for (const def of astDefinitions) { - if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) { - uniqueDirectiveMap[def.name.value] = !def.repeatable; - } - } - - const schemaDirectives = Object.create(null); - const typeDirectivesMap = Object.create(null); - return { - // Many different AST nodes may contain directives. Rather than listing - // them all, just listen for entering any node, and check to see if it - // defines any directives. - enter(node) { - if (!('directives' in node) || !node.directives) { - return; - } - - let seenDirectives; - - if ( - node.kind === _kinds.Kind.SCHEMA_DEFINITION || - node.kind === _kinds.Kind.SCHEMA_EXTENSION - ) { - seenDirectives = schemaDirectives; - } else if ( - (0, _predicates.isTypeDefinitionNode)(node) || - (0, _predicates.isTypeExtensionNode)(node) - ) { - const typeName = node.name.value; - seenDirectives = typeDirectivesMap[typeName]; - - if (seenDirectives === undefined) { - typeDirectivesMap[typeName] = seenDirectives = Object.create(null); - } - } else { - seenDirectives = Object.create(null); - } - - for (const directive of node.directives) { - const directiveName = directive.name.value; - - if (uniqueDirectiveMap[directiveName]) { - if (seenDirectives[directiveName]) { - context.reportError( - new _GraphQLError.GraphQLError( - `The directive "@${directiveName}" can only be used once at this location.`, - { - nodes: [seenDirectives[directiveName], directive], - }, - ), - ); - } else { - seenDirectives[directiveName] = directive; - } - } - } - }, - }; -} - - -/***/ }), - -/***/ 1200: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueEnumValueNamesRule = UniqueEnumValueNamesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -/** - * Unique enum value names - * - * A GraphQL enum type is only valid if all its values are uniquely named. - */ -function UniqueEnumValueNamesRule(context) { - const schema = context.getSchema(); - const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null); - const knownValueNames = Object.create(null); - return { - EnumTypeDefinition: checkValueUniqueness, - EnumTypeExtension: checkValueUniqueness, - }; - - function checkValueUniqueness(node) { - var _node$values; - - const typeName = node.name.value; - - if (!knownValueNames[typeName]) { - knownValueNames[typeName] = Object.create(null); - } // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - - const valueNodes = - (_node$values = node.values) !== null && _node$values !== void 0 - ? _node$values - : []; - const valueNames = knownValueNames[typeName]; - - for (const valueDef of valueNodes) { - const valueName = valueDef.name.value; - const existingType = existingTypeMap[typeName]; - - if ( - (0, _definition.isEnumType)(existingType) && - existingType.getValue(valueName) - ) { - context.reportError( - new _GraphQLError.GraphQLError( - `Enum value "${typeName}.${valueName}" already exists in the schema. It cannot also be defined in this type extension.`, - { - nodes: valueDef.name, - }, - ), - ); - } else if (valueNames[valueName]) { - context.reportError( - new _GraphQLError.GraphQLError( - `Enum value "${typeName}.${valueName}" can only be defined once.`, - { - nodes: [valueNames[valueName], valueDef.name], - }, - ), - ); - } else { - valueNames[valueName] = valueDef.name; - } - } - - return false; - } -} - - -/***/ }), - -/***/ 5933: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueFieldDefinitionNamesRule = UniqueFieldDefinitionNamesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -/** - * Unique field definition names - * - * A GraphQL complex type is only valid if all its fields are uniquely named. - */ -function UniqueFieldDefinitionNamesRule(context) { - const schema = context.getSchema(); - const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null); - const knownFieldNames = Object.create(null); - return { - InputObjectTypeDefinition: checkFieldUniqueness, - InputObjectTypeExtension: checkFieldUniqueness, - InterfaceTypeDefinition: checkFieldUniqueness, - InterfaceTypeExtension: checkFieldUniqueness, - ObjectTypeDefinition: checkFieldUniqueness, - ObjectTypeExtension: checkFieldUniqueness, - }; - - function checkFieldUniqueness(node) { - var _node$fields; - - const typeName = node.name.value; - - if (!knownFieldNames[typeName]) { - knownFieldNames[typeName] = Object.create(null); - } // FIXME: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - - const fieldNodes = - (_node$fields = node.fields) !== null && _node$fields !== void 0 - ? _node$fields - : []; - const fieldNames = knownFieldNames[typeName]; - - for (const fieldDef of fieldNodes) { - const fieldName = fieldDef.name.value; - - if (hasField(existingTypeMap[typeName], fieldName)) { - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${typeName}.${fieldName}" already exists in the schema. It cannot also be defined in this type extension.`, - { - nodes: fieldDef.name, - }, - ), - ); - } else if (fieldNames[fieldName]) { - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${typeName}.${fieldName}" can only be defined once.`, - { - nodes: [fieldNames[fieldName], fieldDef.name], - }, - ), - ); - } else { - fieldNames[fieldName] = fieldDef.name; - } - } - - return false; - } -} - -function hasField(type, fieldName) { - if ( - (0, _definition.isObjectType)(type) || - (0, _definition.isInterfaceType)(type) || - (0, _definition.isInputObjectType)(type) - ) { - return type.getFields()[fieldName] != null; - } - - return false; -} - - -/***/ }), - -/***/ 96: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueFragmentNamesRule = UniqueFragmentNamesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique fragment names - * - * A GraphQL document is only valid if all defined fragments have unique names. - * - * See https://spec.graphql.org/draft/#sec-Fragment-Name-Uniqueness - */ -function UniqueFragmentNamesRule(context) { - const knownFragmentNames = Object.create(null); - return { - OperationDefinition: () => false, - - FragmentDefinition(node) { - const fragmentName = node.name.value; - - if (knownFragmentNames[fragmentName]) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one fragment named "${fragmentName}".`, - { - nodes: [knownFragmentNames[fragmentName], node.name], - }, - ), - ); - } else { - knownFragmentNames[fragmentName] = node.name; - } - - return false; - }, - }; -} - - -/***/ }), - -/***/ 920: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueInputFieldNamesRule = UniqueInputFieldNamesRule; - -var _invariant = __nccwpck_require__(9952); - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique input field names - * - * A GraphQL input object value is only valid if all supplied fields are - * uniquely named. - * - * See https://spec.graphql.org/draft/#sec-Input-Object-Field-Uniqueness - */ -function UniqueInputFieldNamesRule(context) { - const knownNameStack = []; - let knownNames = Object.create(null); - return { - ObjectValue: { - enter() { - knownNameStack.push(knownNames); - knownNames = Object.create(null); - }, - - leave() { - const prevKnownNames = knownNameStack.pop(); - prevKnownNames || (0, _invariant.invariant)(false); - knownNames = prevKnownNames; - }, - }, - - ObjectField(node) { - const fieldName = node.name.value; - - if (knownNames[fieldName]) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one input field named "${fieldName}".`, - { - nodes: [knownNames[fieldName], node.name], - }, - ), - ); - } else { - knownNames[fieldName] = node.name; - } - }, - }; -} - - -/***/ }), - -/***/ 3093: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueOperationNamesRule = UniqueOperationNamesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique operation names - * - * A GraphQL document is only valid if all defined operations have unique names. - * - * See https://spec.graphql.org/draft/#sec-Operation-Name-Uniqueness - */ -function UniqueOperationNamesRule(context) { - const knownOperationNames = Object.create(null); - return { - OperationDefinition(node) { - const operationName = node.name; - - if (operationName) { - if (knownOperationNames[operationName.value]) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one operation named "${operationName.value}".`, - { - nodes: [ - knownOperationNames[operationName.value], - operationName, - ], - }, - ), - ); - } else { - knownOperationNames[operationName.value] = operationName; - } - } - - return false; - }, - - FragmentDefinition: () => false, - }; -} - - -/***/ }), - -/***/ 5312: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueOperationTypesRule = UniqueOperationTypesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique operation types - * - * A GraphQL document is only valid if it has only one type per operation. - */ -function UniqueOperationTypesRule(context) { - const schema = context.getSchema(); - const definedOperationTypes = Object.create(null); - const existingOperationTypes = schema - ? { - query: schema.getQueryType(), - mutation: schema.getMutationType(), - subscription: schema.getSubscriptionType(), - } - : {}; - return { - SchemaDefinition: checkOperationTypes, - SchemaExtension: checkOperationTypes, - }; - - function checkOperationTypes(node) { - var _node$operationTypes; - - // See: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - const operationTypesNodes = - (_node$operationTypes = node.operationTypes) !== null && - _node$operationTypes !== void 0 - ? _node$operationTypes - : []; - - for (const operationType of operationTypesNodes) { - const operation = operationType.operation; - const alreadyDefinedOperationType = definedOperationTypes[operation]; - - if (existingOperationTypes[operation]) { - context.reportError( - new _GraphQLError.GraphQLError( - `Type for ${operation} already defined in the schema. It cannot be redefined.`, - { - nodes: operationType, - }, - ), - ); - } else if (alreadyDefinedOperationType) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one ${operation} type in schema.`, - { - nodes: [alreadyDefinedOperationType, operationType], - }, - ), - ); - } else { - definedOperationTypes[operation] = operationType; - } - } - - return false; - } -} - - -/***/ }), - -/***/ 3672: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueTypeNamesRule = UniqueTypeNamesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique type names - * - * A GraphQL document is only valid if all defined types have unique names. - */ -function UniqueTypeNamesRule(context) { - const knownTypeNames = Object.create(null); - const schema = context.getSchema(); - return { - ScalarTypeDefinition: checkTypeName, - ObjectTypeDefinition: checkTypeName, - InterfaceTypeDefinition: checkTypeName, - UnionTypeDefinition: checkTypeName, - EnumTypeDefinition: checkTypeName, - InputObjectTypeDefinition: checkTypeName, - }; - - function checkTypeName(node) { - const typeName = node.name.value; - - if (schema !== null && schema !== void 0 && schema.getType(typeName)) { - context.reportError( - new _GraphQLError.GraphQLError( - `Type "${typeName}" already exists in the schema. It cannot also be defined in this type definition.`, - { - nodes: node.name, - }, - ), - ); - return; - } - - if (knownTypeNames[typeName]) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one type named "${typeName}".`, - { - nodes: [knownTypeNames[typeName], node.name], - }, - ), - ); - } else { - knownTypeNames[typeName] = node.name; - } - - return false; - } -} - - -/***/ }), - -/***/ 5820: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.UniqueVariableNamesRule = UniqueVariableNamesRule; - -var _groupBy = __nccwpck_require__(8982); - -var _GraphQLError = __nccwpck_require__(1753); - -/** - * Unique variable names - * - * A GraphQL operation is only valid if all its variables are uniquely named. - */ -function UniqueVariableNamesRule(context) { - return { - OperationDefinition(operationNode) { - var _operationNode$variab; - - // See: https://github.com/graphql/graphql-js/issues/2203 - - /* c8 ignore next */ - const variableDefinitions = - (_operationNode$variab = operationNode.variableDefinitions) !== null && - _operationNode$variab !== void 0 - ? _operationNode$variab - : []; - const seenVariableDefinitions = (0, _groupBy.groupBy)( - variableDefinitions, - (node) => node.variable.name.value, - ); - - for (const [variableName, variableNodes] of seenVariableDefinitions) { - if (variableNodes.length > 1) { - context.reportError( - new _GraphQLError.GraphQLError( - `There can be only one variable named "$${variableName}".`, - { - nodes: variableNodes.map((node) => node.variable.name), - }, - ), - ); - } - } - }, - }; -} - - -/***/ }), - -/***/ 3790: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.ValuesOfCorrectTypeRule = ValuesOfCorrectTypeRule; - -var _didYouMean = __nccwpck_require__(1627); - -var _inspect = __nccwpck_require__(3707); - -var _keyMap = __nccwpck_require__(1529); - -var _suggestionList = __nccwpck_require__(3046); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -/** - * Value literals of correct type - * - * A GraphQL document is only valid if all value literals are of the type - * expected at their position. - * - * See https://spec.graphql.org/draft/#sec-Values-of-Correct-Type - */ -function ValuesOfCorrectTypeRule(context) { - let variableDefinitions = {}; - return { - OperationDefinition: { - enter() { - variableDefinitions = {}; - }, - }, - - VariableDefinition(definition) { - variableDefinitions[definition.variable.name.value] = definition; - }, - - ListValue(node) { - // Note: TypeInfo will traverse into a list's item type, so look to the - // parent input type to check if it is a list. - const type = (0, _definition.getNullableType)( - context.getParentInputType(), - ); - - if (!(0, _definition.isListType)(type)) { - isValidValueNode(context, node); - return false; // Don't traverse further. - } - }, - - ObjectValue(node) { - const type = (0, _definition.getNamedType)(context.getInputType()); - - if (!(0, _definition.isInputObjectType)(type)) { - isValidValueNode(context, node); - return false; // Don't traverse further. - } // Ensure every required field exists. - - const fieldNodeMap = (0, _keyMap.keyMap)( - node.fields, - (field) => field.name.value, - ); - - for (const fieldDef of Object.values(type.getFields())) { - const fieldNode = fieldNodeMap[fieldDef.name]; - - if (!fieldNode && (0, _definition.isRequiredInputField)(fieldDef)) { - const typeStr = (0, _inspect.inspect)(fieldDef.type); - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${type.name}.${fieldDef.name}" of required type "${typeStr}" was not provided.`, - { - nodes: node, - }, - ), - ); - } - } - - if (type.isOneOf) { - validateOneOfInputObject( - context, - node, - type, - fieldNodeMap, - variableDefinitions, - ); - } - }, - - ObjectField(node) { - const parentType = (0, _definition.getNamedType)( - context.getParentInputType(), - ); - const fieldType = context.getInputType(); - - if (!fieldType && (0, _definition.isInputObjectType)(parentType)) { - const suggestions = (0, _suggestionList.suggestionList)( - node.name.value, - Object.keys(parentType.getFields()), - ); - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${node.name.value}" is not defined by type "${parentType.name}".` + - (0, _didYouMean.didYouMean)(suggestions), - { - nodes: node, - }, - ), - ); - } - }, - - NullValue(node) { - const type = context.getInputType(); - - if ((0, _definition.isNonNullType)(type)) { - context.reportError( - new _GraphQLError.GraphQLError( - `Expected value of type "${(0, _inspect.inspect)( - type, - )}", found ${(0, _printer.print)(node)}.`, - { - nodes: node, - }, - ), - ); - } - }, - - EnumValue: (node) => isValidValueNode(context, node), - IntValue: (node) => isValidValueNode(context, node), - FloatValue: (node) => isValidValueNode(context, node), - StringValue: (node) => isValidValueNode(context, node), - BooleanValue: (node) => isValidValueNode(context, node), - }; -} -/** - * Any value literal may be a valid representation of a Scalar, depending on - * that scalar type. - */ - -function isValidValueNode(context, node) { - // Report any error at the full type expected by the location. - const locationType = context.getInputType(); - - if (!locationType) { - return; - } - - const type = (0, _definition.getNamedType)(locationType); - - if (!(0, _definition.isLeafType)(type)) { - const typeStr = (0, _inspect.inspect)(locationType); - context.reportError( - new _GraphQLError.GraphQLError( - `Expected value of type "${typeStr}", found ${(0, _printer.print)( - node, - )}.`, - { - nodes: node, - }, - ), - ); - return; - } // Scalars and Enums determine if a literal value is valid via parseLiteral(), - // which may throw or return an invalid value to indicate failure. - - try { - const parseResult = type.parseLiteral( - node, - undefined, - /* variables */ - ); - - if (parseResult === undefined) { - const typeStr = (0, _inspect.inspect)(locationType); - context.reportError( - new _GraphQLError.GraphQLError( - `Expected value of type "${typeStr}", found ${(0, _printer.print)( - node, - )}.`, - { - nodes: node, - }, - ), - ); - } - } catch (error) { - const typeStr = (0, _inspect.inspect)(locationType); - - if (error instanceof _GraphQLError.GraphQLError) { - context.reportError(error); - } else { - context.reportError( - new _GraphQLError.GraphQLError( - `Expected value of type "${typeStr}", found ${(0, _printer.print)( - node, - )}; ` + error.message, - { - nodes: node, - originalError: error, - }, - ), - ); - } - } -} - -function validateOneOfInputObject( - context, - node, - type, - fieldNodeMap, - variableDefinitions, -) { - var _fieldNodeMap$keys$; - - const keys = Object.keys(fieldNodeMap); - const isNotExactlyOneField = keys.length !== 1; - - if (isNotExactlyOneField) { - context.reportError( - new _GraphQLError.GraphQLError( - `OneOf Input Object "${type.name}" must specify exactly one key.`, - { - nodes: [node], - }, - ), - ); - return; - } - - const value = - (_fieldNodeMap$keys$ = fieldNodeMap[keys[0]]) === null || - _fieldNodeMap$keys$ === void 0 - ? void 0 - : _fieldNodeMap$keys$.value; - const isNullLiteral = !value || value.kind === _kinds.Kind.NULL; - const isVariable = - (value === null || value === void 0 ? void 0 : value.kind) === - _kinds.Kind.VARIABLE; - - if (isNullLiteral) { - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${type.name}.${keys[0]}" must be non-null.`, - { - nodes: [node], - }, - ), - ); - return; - } - - if (isVariable) { - const variableName = value.name.value; - const definition = variableDefinitions[variableName]; - const isNullableVariable = - definition.type.kind !== _kinds.Kind.NON_NULL_TYPE; - - if (isNullableVariable) { - context.reportError( - new _GraphQLError.GraphQLError( - `Variable "${variableName}" must be non-nullable to be used for OneOf Input Object "${type.name}".`, - { - nodes: [node], - }, - ), - ); - } - } -} - - -/***/ }), - -/***/ 5309: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.VariablesAreInputTypesRule = VariablesAreInputTypesRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _printer = __nccwpck_require__(4758); - -var _definition = __nccwpck_require__(699); - -var _typeFromAST = __nccwpck_require__(2136); - -/** - * Variables are input types - * - * A GraphQL operation is only valid if all the variables it defines are of - * input types (scalar, enum, or input object). - * - * See https://spec.graphql.org/draft/#sec-Variables-Are-Input-Types - */ -function VariablesAreInputTypesRule(context) { - return { - VariableDefinition(node) { - const type = (0, _typeFromAST.typeFromAST)( - context.getSchema(), - node.type, - ); - - if (type !== undefined && !(0, _definition.isInputType)(type)) { - const variableName = node.variable.name.value; - const typeName = (0, _printer.print)(node.type); - context.reportError( - new _GraphQLError.GraphQLError( - `Variable "$${variableName}" cannot be non-input type "${typeName}".`, - { - nodes: node.type, - }, - ), - ); - } - }, - }; -} - - -/***/ }), - -/***/ 6316: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.VariablesInAllowedPositionRule = VariablesInAllowedPositionRule; - -var _inspect = __nccwpck_require__(3707); - -var _GraphQLError = __nccwpck_require__(1753); - -var _kinds = __nccwpck_require__(2881); - -var _definition = __nccwpck_require__(699); - -var _typeComparators = __nccwpck_require__(961); - -var _typeFromAST = __nccwpck_require__(2136); - -/** - * Variables in allowed position - * - * Variable usages must be compatible with the arguments they are passed to. - * - * See https://spec.graphql.org/draft/#sec-All-Variable-Usages-are-Allowed - */ -function VariablesInAllowedPositionRule(context) { - let varDefMap = Object.create(null); - return { - OperationDefinition: { - enter() { - varDefMap = Object.create(null); - }, - - leave(operation) { - const usages = context.getRecursiveVariableUsages(operation); - - for (const { node, type, defaultValue } of usages) { - const varName = node.name.value; - const varDef = varDefMap[varName]; - - if (varDef && type) { - // A var type is allowed if it is the same or more strict (e.g. is - // a subtype of) than the expected type. It can be more strict if - // the variable type is non-null when the expected type is nullable. - // If both are list types, the variable item type can be more strict - // than the expected item type (contravariant). - const schema = context.getSchema(); - const varType = (0, _typeFromAST.typeFromAST)(schema, varDef.type); - - if ( - varType && - !allowedVariableUsage( - schema, - varType, - varDef.defaultValue, - type, - defaultValue, - ) - ) { - const varTypeStr = (0, _inspect.inspect)(varType); - const typeStr = (0, _inspect.inspect)(type); - context.reportError( - new _GraphQLError.GraphQLError( - `Variable "$${varName}" of type "${varTypeStr}" used in position expecting type "${typeStr}".`, - { - nodes: [varDef, node], - }, - ), - ); - } - } - } - }, - }, - - VariableDefinition(node) { - varDefMap[node.variable.name.value] = node; - }, - }; -} -/** - * Returns true if the variable is allowed in the location it was found, - * which includes considering if default values exist for either the variable - * or the location at which it is located. - */ - -function allowedVariableUsage( - schema, - varType, - varDefaultValue, - locationType, - locationDefaultValue, -) { - if ( - (0, _definition.isNonNullType)(locationType) && - !(0, _definition.isNonNullType)(varType) - ) { - const hasNonNullVariableDefaultValue = - varDefaultValue != null && varDefaultValue.kind !== _kinds.Kind.NULL; - const hasLocationDefaultValue = locationDefaultValue !== undefined; - - if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) { - return false; - } - - const nullableLocationType = locationType.ofType; - return (0, _typeComparators.isTypeSubTypeOf)( - schema, - varType, - nullableLocationType, - ); - } - - return (0, _typeComparators.isTypeSubTypeOf)(schema, varType, locationType); -} - - -/***/ }), - -/***/ 1044: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.NoDeprecatedCustomRule = NoDeprecatedCustomRule; - -var _invariant = __nccwpck_require__(9952); - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -/** - * No deprecated - * - * A GraphQL document is only valid if all selected fields and all used enum values have not been - * deprecated. - * - * Note: This rule is optional and is not part of the Validation section of the GraphQL - * Specification. The main purpose of this rule is detection of deprecated usages and not - * necessarily to forbid their use when querying a service. - */ -function NoDeprecatedCustomRule(context) { - return { - Field(node) { - const fieldDef = context.getFieldDef(); - const deprecationReason = - fieldDef === null || fieldDef === void 0 - ? void 0 - : fieldDef.deprecationReason; - - if (fieldDef && deprecationReason != null) { - const parentType = context.getParentType(); - parentType != null || (0, _invariant.invariant)(false); - context.reportError( - new _GraphQLError.GraphQLError( - `The field ${parentType.name}.${fieldDef.name} is deprecated. ${deprecationReason}`, - { - nodes: node, - }, - ), - ); - } - }, - - Argument(node) { - const argDef = context.getArgument(); - const deprecationReason = - argDef === null || argDef === void 0 - ? void 0 - : argDef.deprecationReason; - - if (argDef && deprecationReason != null) { - const directiveDef = context.getDirective(); - - if (directiveDef != null) { - context.reportError( - new _GraphQLError.GraphQLError( - `Directive "@${directiveDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`, - { - nodes: node, - }, - ), - ); - } else { - const parentType = context.getParentType(); - const fieldDef = context.getFieldDef(); - (parentType != null && fieldDef != null) || - (0, _invariant.invariant)(false); - context.reportError( - new _GraphQLError.GraphQLError( - `Field "${parentType.name}.${fieldDef.name}" argument "${argDef.name}" is deprecated. ${deprecationReason}`, - { - nodes: node, - }, - ), - ); - } - } - }, - - ObjectField(node) { - const inputObjectDef = (0, _definition.getNamedType)( - context.getParentInputType(), - ); - - if ((0, _definition.isInputObjectType)(inputObjectDef)) { - const inputFieldDef = inputObjectDef.getFields()[node.name.value]; - const deprecationReason = - inputFieldDef === null || inputFieldDef === void 0 - ? void 0 - : inputFieldDef.deprecationReason; - - if (deprecationReason != null) { - context.reportError( - new _GraphQLError.GraphQLError( - `The input field ${inputObjectDef.name}.${inputFieldDef.name} is deprecated. ${deprecationReason}`, - { - nodes: node, - }, - ), - ); - } - } - }, - - EnumValue(node) { - const enumValueDef = context.getEnumValue(); - const deprecationReason = - enumValueDef === null || enumValueDef === void 0 - ? void 0 - : enumValueDef.deprecationReason; - - if (enumValueDef && deprecationReason != null) { - const enumTypeDef = (0, _definition.getNamedType)( - context.getInputType(), - ); - enumTypeDef != null || (0, _invariant.invariant)(false); - context.reportError( - new _GraphQLError.GraphQLError( - `The enum value "${enumTypeDef.name}.${enumValueDef.name}" is deprecated. ${deprecationReason}`, - { - nodes: node, - }, - ), - ); - } - }, - }; -} - - -/***/ }), - -/***/ 3473: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.NoSchemaIntrospectionCustomRule = NoSchemaIntrospectionCustomRule; - -var _GraphQLError = __nccwpck_require__(1753); - -var _definition = __nccwpck_require__(699); - -var _introspection = __nccwpck_require__(2239); - -/** - * Prohibit introspection queries - * - * A GraphQL document is only valid if all fields selected are not fields that - * return an introspection type. - * - * Note: This rule is optional and is not part of the Validation section of the - * GraphQL Specification. This rule effectively disables introspection, which - * does not reflect best practices and should only be done if absolutely necessary. - */ -function NoSchemaIntrospectionCustomRule(context) { - return { - Field(node) { - const type = (0, _definition.getNamedType)(context.getType()); - - if (type && (0, _introspection.isIntrospectionType)(type)) { - context.reportError( - new _GraphQLError.GraphQLError( - `GraphQL introspection has been disabled, but the requested query contained the field "${node.name.value}".`, - { - nodes: node, - }, - ), - ); - } - }, - }; -} - - -/***/ }), - -/***/ 1598: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.specifiedSDLRules = - exports.specifiedRules = - exports.recommendedRules = - void 0; - -var _ExecutableDefinitionsRule = __nccwpck_require__(7135); - -var _FieldsOnCorrectTypeRule = __nccwpck_require__(9831); - -var _FragmentsOnCompositeTypesRule = __nccwpck_require__(2021); - -var _KnownArgumentNamesRule = __nccwpck_require__(4813); - -var _KnownDirectivesRule = __nccwpck_require__(6944); - -var _KnownFragmentNamesRule = __nccwpck_require__(7496); - -var _KnownTypeNamesRule = __nccwpck_require__(2864); - -var _LoneAnonymousOperationRule = __nccwpck_require__(5263); - -var _LoneSchemaDefinitionRule = __nccwpck_require__(1591); - -var _MaxIntrospectionDepthRule = __nccwpck_require__(9603); - -var _NoFragmentCyclesRule = __nccwpck_require__(4997); - -var _NoUndefinedVariablesRule = __nccwpck_require__(7107); - -var _NoUnusedFragmentsRule = __nccwpck_require__(3275); - -var _NoUnusedVariablesRule = __nccwpck_require__(4587); - -var _OverlappingFieldsCanBeMergedRule = __nccwpck_require__(1988); - -var _PossibleFragmentSpreadsRule = __nccwpck_require__(5492); - -var _PossibleTypeExtensionsRule = __nccwpck_require__(2300); - -var _ProvidedRequiredArgumentsRule = __nccwpck_require__(6583); - -var _ScalarLeafsRule = __nccwpck_require__(424); - -var _SingleFieldSubscriptionsRule = __nccwpck_require__(3999); - -var _UniqueArgumentDefinitionNamesRule = __nccwpck_require__(3986); - -var _UniqueArgumentNamesRule = __nccwpck_require__(4069); - -var _UniqueDirectiveNamesRule = __nccwpck_require__(9941); - -var _UniqueDirectivesPerLocationRule = __nccwpck_require__(2729); - -var _UniqueEnumValueNamesRule = __nccwpck_require__(1200); - -var _UniqueFieldDefinitionNamesRule = __nccwpck_require__(5933); - -var _UniqueFragmentNamesRule = __nccwpck_require__(96); - -var _UniqueInputFieldNamesRule = __nccwpck_require__(920); - -var _UniqueOperationNamesRule = __nccwpck_require__(3093); - -var _UniqueOperationTypesRule = __nccwpck_require__(5312); - -var _UniqueTypeNamesRule = __nccwpck_require__(3672); - -var _UniqueVariableNamesRule = __nccwpck_require__(5820); - -var _ValuesOfCorrectTypeRule = __nccwpck_require__(3790); - -var _VariablesAreInputTypesRule = __nccwpck_require__(5309); - -var _VariablesInAllowedPositionRule = __nccwpck_require__(6316); - -// Spec Section: "Executable Definitions" -// Spec Section: "Field Selections on Objects, Interfaces, and Unions Types" -// Spec Section: "Fragments on Composite Types" -// Spec Section: "Argument Names" -// Spec Section: "Directives Are Defined" -// Spec Section: "Fragment spread target defined" -// Spec Section: "Fragment Spread Type Existence" -// Spec Section: "Lone Anonymous Operation" -// SDL-specific validation rules -// TODO: Spec Section -// Spec Section: "Fragments must not form cycles" -// Spec Section: "All Variable Used Defined" -// Spec Section: "Fragments must be used" -// Spec Section: "All Variables Used" -// Spec Section: "Field Selection Merging" -// Spec Section: "Fragment spread is possible" -// Spec Section: "Argument Optionality" -// Spec Section: "Leaf Field Selections" -// Spec Section: "Subscriptions with Single Root Field" -// Spec Section: "Argument Uniqueness" -// Spec Section: "Directives Are Unique Per Location" -// Spec Section: "Fragment Name Uniqueness" -// Spec Section: "Input Object Field Uniqueness" -// Spec Section: "Operation Name Uniqueness" -// Spec Section: "Variable Uniqueness" -// Spec Section: "Value Type Correctness" -// Spec Section: "Variables are Input Types" -// Spec Section: "All Variable Usages Are Allowed" - -/** - * Technically these aren't part of the spec but they are strongly encouraged - * validation rules. - */ -const recommendedRules = Object.freeze([ - _MaxIntrospectionDepthRule.MaxIntrospectionDepthRule, -]); -/** - * This set includes all validation rules defined by the GraphQL spec. - * - * The order of the rules in this list has been adjusted to lead to the - * most clear output when encountering multiple validation errors. - */ - -exports.recommendedRules = recommendedRules; -const specifiedRules = Object.freeze([ - _ExecutableDefinitionsRule.ExecutableDefinitionsRule, - _UniqueOperationNamesRule.UniqueOperationNamesRule, - _LoneAnonymousOperationRule.LoneAnonymousOperationRule, - _SingleFieldSubscriptionsRule.SingleFieldSubscriptionsRule, - _KnownTypeNamesRule.KnownTypeNamesRule, - _FragmentsOnCompositeTypesRule.FragmentsOnCompositeTypesRule, - _VariablesAreInputTypesRule.VariablesAreInputTypesRule, - _ScalarLeafsRule.ScalarLeafsRule, - _FieldsOnCorrectTypeRule.FieldsOnCorrectTypeRule, - _UniqueFragmentNamesRule.UniqueFragmentNamesRule, - _KnownFragmentNamesRule.KnownFragmentNamesRule, - _NoUnusedFragmentsRule.NoUnusedFragmentsRule, - _PossibleFragmentSpreadsRule.PossibleFragmentSpreadsRule, - _NoFragmentCyclesRule.NoFragmentCyclesRule, - _UniqueVariableNamesRule.UniqueVariableNamesRule, - _NoUndefinedVariablesRule.NoUndefinedVariablesRule, - _NoUnusedVariablesRule.NoUnusedVariablesRule, - _KnownDirectivesRule.KnownDirectivesRule, - _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule, - _KnownArgumentNamesRule.KnownArgumentNamesRule, - _UniqueArgumentNamesRule.UniqueArgumentNamesRule, - _ValuesOfCorrectTypeRule.ValuesOfCorrectTypeRule, - _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsRule, - _VariablesInAllowedPositionRule.VariablesInAllowedPositionRule, - _OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule, - _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule, - ...recommendedRules, -]); -/** - * @internal - */ - -exports.specifiedRules = specifiedRules; -const specifiedSDLRules = Object.freeze([ - _LoneSchemaDefinitionRule.LoneSchemaDefinitionRule, - _UniqueOperationTypesRule.UniqueOperationTypesRule, - _UniqueTypeNamesRule.UniqueTypeNamesRule, - _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule, - _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule, - _UniqueArgumentDefinitionNamesRule.UniqueArgumentDefinitionNamesRule, - _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule, - _KnownTypeNamesRule.KnownTypeNamesRule, - _KnownDirectivesRule.KnownDirectivesRule, - _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule, - _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule, - _KnownArgumentNamesRule.KnownArgumentNamesOnDirectivesRule, - _UniqueArgumentNamesRule.UniqueArgumentNamesRule, - _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule, - _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsOnDirectivesRule, -]); -exports.specifiedSDLRules = specifiedSDLRules; - - -/***/ }), - -/***/ 5105: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.assertValidSDL = assertValidSDL; -exports.assertValidSDLExtension = assertValidSDLExtension; -exports.validate = validate; -exports.validateSDL = validateSDL; - -var _devAssert = __nccwpck_require__(7437); - -var _GraphQLError = __nccwpck_require__(1753); - -var _visitor = __nccwpck_require__(7848); - -var _validate = __nccwpck_require__(3756); - -var _TypeInfo = __nccwpck_require__(3502); - -var _specifiedRules = __nccwpck_require__(1598); - -var _ValidationContext = __nccwpck_require__(8645); - -/** - * Implements the "Validation" section of the spec. - * - * Validation runs synchronously, returning an array of encountered errors, or - * an empty array if no errors were encountered and the document is valid. - * - * A list of specific validation rules may be provided. If not provided, the - * default list of rules defined by the GraphQL specification will be used. - * - * Each validation rules is a function which returns a visitor - * (see the language/visitor API). Visitor methods are expected to return - * GraphQLErrors, or Arrays of GraphQLErrors when invalid. - * - * Validate will stop validation after a `maxErrors` limit has been reached. - * Attackers can send pathologically invalid queries to induce a DoS attack, - * so by default `maxErrors` set to 100 errors. - * - * Optionally a custom TypeInfo instance may be provided. If not provided, one - * will be created from the provided schema. - */ -function validate( - schema, - documentAST, - rules = _specifiedRules.specifiedRules, - options, - /** @deprecated will be removed in 17.0.0 */ - typeInfo = new _TypeInfo.TypeInfo(schema), -) { - var _options$maxErrors; - - const maxErrors = - (_options$maxErrors = - options === null || options === void 0 ? void 0 : options.maxErrors) !== - null && _options$maxErrors !== void 0 - ? _options$maxErrors - : 100; - documentAST || (0, _devAssert.devAssert)(false, 'Must provide document.'); // If the schema used for validation is invalid, throw an error. - - (0, _validate.assertValidSchema)(schema); - const abortObj = Object.freeze({}); - const errors = []; - const context = new _ValidationContext.ValidationContext( - schema, - documentAST, - typeInfo, - (error) => { - if (errors.length >= maxErrors) { - errors.push( - new _GraphQLError.GraphQLError( - 'Too many validation errors, error limit reached. Validation aborted.', - ), - ); // eslint-disable-next-line @typescript-eslint/no-throw-literal - - throw abortObj; - } - - errors.push(error); - }, - ); // This uses a specialized visitor which runs multiple visitors in parallel, - // while maintaining the visitor skip and break API. - - const visitor = (0, _visitor.visitInParallel)( - rules.map((rule) => rule(context)), - ); // Visit the whole document with each instance of all provided rules. - - try { - (0, _visitor.visit)( - documentAST, - (0, _TypeInfo.visitWithTypeInfo)(typeInfo, visitor), - ); - } catch (e) { - if (e !== abortObj) { - throw e; - } - } - - return errors; -} -/** - * @internal - */ - -function validateSDL( - documentAST, - schemaToExtend, - rules = _specifiedRules.specifiedSDLRules, -) { - const errors = []; - const context = new _ValidationContext.SDLValidationContext( - documentAST, - schemaToExtend, - (error) => { - errors.push(error); - }, - ); - const visitors = rules.map((rule) => rule(context)); - (0, _visitor.visit)(documentAST, (0, _visitor.visitInParallel)(visitors)); - return errors; -} -/** - * Utility function which asserts a SDL document is valid by throwing an error - * if it is invalid. - * - * @internal - */ - -function assertValidSDL(documentAST) { - const errors = validateSDL(documentAST); - - if (errors.length !== 0) { - throw new Error(errors.map((error) => error.message).join('\n\n')); - } -} -/** - * Utility function which asserts a SDL document is valid by throwing an error - * if it is invalid. - * - * @internal - */ - -function assertValidSDLExtension(documentAST, schema) { - const errors = validateSDL(documentAST, schema); - - if (errors.length !== 0) { - throw new Error(errors.map((error) => error.message).join('\n\n')); - } -} - - -/***/ }), - -/***/ 831: -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true, -})); -exports.versionInfo = exports.version = void 0; -// Note: This file is autogenerated using "resources/gen-version.js" script and -// automatically updated by "npm version" command. - -/** - * A string containing the version of the GraphQL.js library - */ -const version = '16.9.0'; -/** - * An object containing the components of the GraphQL.js version string - */ - -exports.version = version; -const versionInfo = Object.freeze({ - major: 16, - minor: 9, - patch: 0, - preReleaseTag: null, -}); -exports.versionInfo = versionInfo; - - -/***/ }), - -/***/ 717: -/***/ ((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' : ''); -} - - -/***/ }), - -/***/ 5574: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(6726) -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 -} - - -/***/ }), - -/***/ 3514: -/***/ ((module) => { - -/****************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */ -var __extends; -var __assign; -var __rest; -var __decorate; -var __param; -var __esDecorate; -var __runInitializers; -var __propKey; -var __setFunctionName; -var __metadata; -var __awaiter; -var __generator; -var __exportStar; -var __values; -var __read; -var __spread; -var __spreadArrays; -var __spreadArray; -var __await; -var __asyncGenerator; -var __asyncDelegator; -var __asyncValues; -var __makeTemplateObject; -var __importStar; -var __importDefault; -var __classPrivateFieldGet; -var __classPrivateFieldSet; -var __classPrivateFieldIn; -var __createBinding; -var __addDisposableResource; -var __disposeResources; -var __rewriteRelativeImportExtension; -(function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (typeof define === "function" && define.amd) { - define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); - } - else if ( true && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } -}) -(function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - - __extends = function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { - function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } - var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; - var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; - var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); - var _, done = false; - for (var i = decorators.length - 1; i >= 0; i--) { - var context = {}; - for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; - for (var p in contextIn.access) context.access[p] = contextIn.access[p]; - context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; - var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); - if (kind === "accessor") { - if (result === void 0) continue; - if (result === null || typeof result !== "object") throw new TypeError("Object expected"); - if (_ = accept(result.get)) descriptor.get = _; - if (_ = accept(result.set)) descriptor.set = _; - if (_ = accept(result.init)) initializers.unshift(_); - } - else if (_ = accept(result)) { - if (kind === "field") initializers.unshift(_); - else descriptor[key] = _; - } - } - if (target) Object.defineProperty(target, contextIn.name, descriptor); - done = true; - }; - - __runInitializers = function (thisArg, initializers, value) { - var useValue = arguments.length > 2; - for (var i = 0; i < initializers.length; i++) { - value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); - } - return useValue ? value : void 0; - }; - - __propKey = function (x) { - return typeof x === "symbol" ? x : "".concat(x); - }; - - __setFunctionName = function (f, name, prefix) { - if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; - return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __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()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); - return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function(m, o) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); - }; - - __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]; - }); - - __values = function (o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - /** @deprecated */ - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - /** @deprecated */ - __spreadArrays = function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - - __spreadArray = function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; - function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } - function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - var __setModuleDefault = Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - }; - - var ownKeys = function(o) { - ownKeys = Object.getOwnPropertyNames || function (o) { - var ar = []; - for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; - return ar; - }; - return ownKeys(o); - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); - __setModuleDefault(result, mod); - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - __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); - }; - - __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; - }; - - __classPrivateFieldIn = function (state, receiver) { - if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); - return typeof state === "function" ? receiver === state : state.has(receiver); - }; - - __addDisposableResource = function (env, value, async) { - if (value !== null && value !== void 0) { - if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); - var dispose, inner; - if (async) { - if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); - dispose = value[Symbol.asyncDispose]; - } - if (dispose === void 0) { - if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); - dispose = value[Symbol.dispose]; - if (async) inner = dispose; - } - if (typeof dispose !== "function") throw new TypeError("Object not disposable."); - if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; - env.stack.push({ value: value, dispose: dispose, async: async }); - } - else if (async) { - env.stack.push({ async: true }); - } - return value; - }; - - var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { - var e = new Error(message); - return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; - }; - - __disposeResources = function (env) { - function fail(e) { - env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; - env.hasError = true; - } - var r, s = 0; - function next() { - while (r = env.stack.pop()) { - try { - if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); - if (r.dispose) { - var result = r.dispose.call(r.value); - if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); - } - else s |= 1; - } - catch (e) { - fail(e); - } - } - if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); - if (env.hasError) throw env.error; - } - return next(); - }; - - __rewriteRelativeImportExtension = function (path, preserveJsx) { - if (typeof path === "string" && /^\.\.?\//.test(path)) { - return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { - return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); - }); - } - return path; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__esDecorate", __esDecorate); - exporter("__runInitializers", __runInitializers); - exporter("__propKey", __propKey); - exporter("__setFunctionName", __setFunctionName); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__createBinding", __createBinding); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__spreadArrays", __spreadArrays); - exporter("__spreadArray", __spreadArray); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - exporter("__classPrivateFieldGet", __classPrivateFieldGet); - exporter("__classPrivateFieldSet", __classPrivateFieldSet); - exporter("__classPrivateFieldIn", __classPrivateFieldIn); - exporter("__addDisposableResource", __addDisposableResource); - exporter("__disposeResources", __disposeResources); - exporter("__rewriteRelativeImportExtension", __rewriteRelativeImportExtension); -}); - -0 && (0); - - -/***/ }), - -/***/ 4112: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(5648); - - -/***/ }), - -/***/ 5648: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - - -var net = __nccwpck_require__(9278); -var tls = __nccwpck_require__(4756); -var http = __nccwpck_require__(8611); -var https = __nccwpck_require__(5692); -var events = __nccwpck_require__(4434); -var assert = __nccwpck_require__(2613); -var util = __nccwpck_require__(9023); - - -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 - - -/***/ }), - -/***/ 6630: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const Client = __nccwpck_require__(5635) -const Dispatcher = __nccwpck_require__(1045) -const errors = __nccwpck_require__(3785) -const Pool = __nccwpck_require__(2586) -const BalancedPool = __nccwpck_require__(1891) -const Agent = __nccwpck_require__(6783) -const util = __nccwpck_require__(162) -const { InvalidArgumentError } = errors -const api = __nccwpck_require__(7865) -const buildConnector = __nccwpck_require__(5786) -const MockClient = __nccwpck_require__(7295) -const MockAgent = __nccwpck_require__(8147) -const MockPool = __nccwpck_require__(6750) -const mockErrors = __nccwpck_require__(4955) -const ProxyAgent = __nccwpck_require__(1354) -const RetryHandler = __nccwpck_require__(6631) -const { getGlobalDispatcher, setGlobalDispatcher } = __nccwpck_require__(8127) -const DecoratorHandler = __nccwpck_require__(7022) -const RedirectHandler = __nccwpck_require__(4021) -const createRedirectInterceptor = __nccwpck_require__(3537) - -let hasCrypto -try { - __nccwpck_require__(6982) - hasCrypto = true -} catch { - hasCrypto = false -} - -Object.assign(Dispatcher.prototype, api) - -module.exports.Dispatcher = Dispatcher -module.exports.Client = Client -module.exports.Pool = Pool -module.exports.BalancedPool = BalancedPool -module.exports.Agent = Agent -module.exports.ProxyAgent = ProxyAgent -module.exports.RetryHandler = RetryHandler - -module.exports.DecoratorHandler = DecoratorHandler -module.exports.RedirectHandler = RedirectHandler -module.exports.createRedirectInterceptor = createRedirectInterceptor - -module.exports.buildConnector = buildConnector -module.exports.errors = errors - -function makeDispatcher (fn) { - return (url, opts, handler) => { - if (typeof opts === 'function') { - handler = opts - opts = null - } - - if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) { - throw new InvalidArgumentError('invalid url') - } - - if (opts != null && typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } - - if (opts && opts.path != null) { - if (typeof opts.path !== 'string') { - throw new InvalidArgumentError('invalid opts.path') - } - - let path = opts.path - if (!opts.path.startsWith('/')) { - path = `/${path}` - } - - url = new URL(util.parseOrigin(url).origin + path) - } else { - if (!opts) { - opts = typeof url === 'object' ? url : {} - } - - url = util.parseURL(url) - } - - const { agent, dispatcher = getGlobalDispatcher() } = opts - - if (agent) { - throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?') - } - - return fn.call(dispatcher, { - ...opts, - origin: url.origin, - path: url.search ? `${url.pathname}${url.search}` : url.pathname, - method: opts.method || (opts.body ? 'PUT' : 'GET') - }, handler) - } -} - -module.exports.setGlobalDispatcher = setGlobalDispatcher -module.exports.getGlobalDispatcher = getGlobalDispatcher - -if (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) { - let fetchImpl = null - module.exports.fetch = async function fetch (resource) { - if (!fetchImpl) { - fetchImpl = (__nccwpck_require__(3397).fetch) - } - - try { - return await fetchImpl(...arguments) - } catch (err) { - if (typeof err === 'object') { - Error.captureStackTrace(err, this) - } - - throw err - } - } - module.exports.Headers = __nccwpck_require__(6203).Headers - module.exports.Response = __nccwpck_require__(3258).Response - module.exports.Request = __nccwpck_require__(4960).Request - module.exports.FormData = __nccwpck_require__(3639).FormData - module.exports.File = __nccwpck_require__(3791).File - module.exports.FileReader = __nccwpck_require__(5466).FileReader - - const { setGlobalOrigin, getGlobalOrigin } = __nccwpck_require__(2498) - - module.exports.setGlobalOrigin = setGlobalOrigin - module.exports.getGlobalOrigin = getGlobalOrigin - - const { CacheStorage } = __nccwpck_require__(6452) - const { kConstruct } = __nccwpck_require__(5014) - - // Cache & CacheStorage are tightly coupled with fetch. Even if it may run - // in an older version of Node, it doesn't have any use without fetch. - module.exports.caches = new CacheStorage(kConstruct) -} - -if (util.nodeMajor >= 16) { - const { deleteCookie, getCookies, getSetCookies, setCookie } = __nccwpck_require__(5902) - - module.exports.deleteCookie = deleteCookie - module.exports.getCookies = getCookies - module.exports.getSetCookies = getSetCookies - module.exports.setCookie = setCookie - - const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(5892) - - module.exports.parseMIMEType = parseMIMEType - module.exports.serializeAMimeType = serializeAMimeType -} - -if (util.nodeMajor >= 18 && hasCrypto) { - const { WebSocket } = __nccwpck_require__(329) - - module.exports.WebSocket = WebSocket -} - -module.exports.request = makeDispatcher(api.request) -module.exports.stream = makeDispatcher(api.stream) -module.exports.pipeline = makeDispatcher(api.pipeline) -module.exports.connect = makeDispatcher(api.connect) -module.exports.upgrade = makeDispatcher(api.upgrade) - -module.exports.MockClient = MockClient -module.exports.MockPool = MockPool -module.exports.MockAgent = MockAgent -module.exports.mockErrors = mockErrors - - -/***/ }), - -/***/ 6783: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { InvalidArgumentError } = __nccwpck_require__(3785) -const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = __nccwpck_require__(249) -const DispatcherBase = __nccwpck_require__(6215) -const Pool = __nccwpck_require__(2586) -const Client = __nccwpck_require__(5635) -const util = __nccwpck_require__(162) -const createRedirectInterceptor = __nccwpck_require__(3537) -const { WeakRef, FinalizationRegistry } = __nccwpck_require__(7108)() - -const kOnConnect = Symbol('onConnect') -const kOnDisconnect = Symbol('onDisconnect') -const kOnConnectionError = Symbol('onConnectionError') -const kMaxRedirections = Symbol('maxRedirections') -const kOnDrain = Symbol('onDrain') -const kFactory = Symbol('factory') -const kFinalizer = Symbol('finalizer') -const kOptions = Symbol('options') - -function defaultFactory (origin, opts) { - return opts && opts.connections === 1 - ? new Client(origin, opts) - : new Pool(origin, opts) -} - -class Agent extends DispatcherBase { - constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { - super() - - if (typeof factory !== 'function') { - throw new InvalidArgumentError('factory must be a function.') - } - - if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { - throw new InvalidArgumentError('connect must be a function or an object') - } - - if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { - throw new InvalidArgumentError('maxRedirections must be a positive number') - } - - if (connect && typeof connect !== 'function') { - connect = { ...connect } - } - - this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) - ? options.interceptors.Agent - : [createRedirectInterceptor({ maxRedirections })] - - this[kOptions] = { ...util.deepClone(options), connect } - this[kOptions].interceptors = options.interceptors - ? { ...options.interceptors } - : undefined - this[kMaxRedirections] = maxRedirections - this[kFactory] = factory - this[kClients] = new Map() - this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => { - const ref = this[kClients].get(key) - if (ref !== undefined && ref.deref() === undefined) { - this[kClients].delete(key) - } - }) - - const agent = this - - this[kOnDrain] = (origin, targets) => { - agent.emit('drain', origin, [agent, ...targets]) - } - - this[kOnConnect] = (origin, targets) => { - agent.emit('connect', origin, [agent, ...targets]) - } - - this[kOnDisconnect] = (origin, targets, err) => { - agent.emit('disconnect', origin, [agent, ...targets], err) - } - - this[kOnConnectionError] = (origin, targets, err) => { - agent.emit('connectionError', origin, [agent, ...targets], err) - } - } - - get [kRunning] () { - let ret = 0 - for (const ref of this[kClients].values()) { - const client = ref.deref() - /* istanbul ignore next: gc is undeterministic */ - if (client) { - ret += client[kRunning] - } - } - return ret - } - - [kDispatch] (opts, handler) { - let key - if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) { - key = String(opts.origin) - } else { - throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.') - } - - const ref = this[kClients].get(key) - - let dispatcher = ref ? ref.deref() : null - if (!dispatcher) { - dispatcher = this[kFactory](opts.origin, this[kOptions]) - .on('drain', this[kOnDrain]) - .on('connect', this[kOnConnect]) - .on('disconnect', this[kOnDisconnect]) - .on('connectionError', this[kOnConnectionError]) - - this[kClients].set(key, new WeakRef(dispatcher)) - this[kFinalizer].register(dispatcher, key) - } - - return dispatcher.dispatch(opts, handler) - } - - async [kClose] () { - const closePromises = [] - for (const ref of this[kClients].values()) { - const client = ref.deref() - /* istanbul ignore else: gc is undeterministic */ - if (client) { - closePromises.push(client.close()) - } - } - - await Promise.all(closePromises) - } - - async [kDestroy] (err) { - const destroyPromises = [] - for (const ref of this[kClients].values()) { - const client = ref.deref() - /* istanbul ignore else: gc is undeterministic */ - if (client) { - destroyPromises.push(client.destroy(err)) - } - } - - await Promise.all(destroyPromises) - } -} - -module.exports = Agent - - -/***/ }), - -/***/ 9256: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const { addAbortListener } = __nccwpck_require__(162) -const { RequestAbortedError } = __nccwpck_require__(3785) - -const kListener = Symbol('kListener') -const kSignal = Symbol('kSignal') - -function abort (self) { - if (self.abort) { - self.abort() - } else { - self.onError(new RequestAbortedError()) - } -} - -function addSignal (self, signal) { - self[kSignal] = null - self[kListener] = null - - if (!signal) { - return - } - - if (signal.aborted) { - abort(self) - return - } - - self[kSignal] = signal - self[kListener] = () => { - abort(self) - } - - addAbortListener(self[kSignal], self[kListener]) -} - -function removeSignal (self) { - if (!self[kSignal]) { - return - } - - if ('removeEventListener' in self[kSignal]) { - self[kSignal].removeEventListener('abort', self[kListener]) - } else { - self[kSignal].removeListener('abort', self[kListener]) - } - - self[kSignal] = null - self[kListener] = null -} - -module.exports = { - addSignal, - removeSignal -} - - -/***/ }), - -/***/ 182: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { AsyncResource } = __nccwpck_require__(290) -const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(3785) -const util = __nccwpck_require__(162) -const { addSignal, removeSignal } = __nccwpck_require__(9256) - -class ConnectHandler extends AsyncResource { - constructor (opts, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } - - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } - - const { signal, opaque, responseHeaders } = opts - - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } - - super('UNDICI_CONNECT') - - this.opaque = opaque || null - this.responseHeaders = responseHeaders || null - this.callback = callback - this.abort = null - - addSignal(this, signal) - } - - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } - - this.abort = abort - this.context = context - } - - onHeaders () { - throw new SocketError('bad connect', null) - } - - onUpgrade (statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this - - removeSignal(this) - - this.callback = null - - let headers = rawHeaders - // Indicates is an HTTP2Session - if (headers != null) { - headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - } - - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - socket, - opaque, - context - }) - } - - onError (err) { - const { callback, opaque } = this - - removeSignal(this) - - if (callback) { - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } - } -} - -function connect (opts, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - connect.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } - - try { - const connectHandler = new ConnectHandler(opts, callback) - this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} - -module.exports = connect - - -/***/ }), - -/***/ 1324: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { - Readable, - Duplex, - PassThrough -} = __nccwpck_require__(2203) -const { - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError -} = __nccwpck_require__(3785) -const util = __nccwpck_require__(162) -const { AsyncResource } = __nccwpck_require__(290) -const { addSignal, removeSignal } = __nccwpck_require__(9256) -const assert = __nccwpck_require__(2613) - -const kResume = Symbol('resume') - -class PipelineRequest extends Readable { - constructor () { - super({ autoDestroy: true }) - - this[kResume] = null - } - - _read () { - const { [kResume]: resume } = this - - if (resume) { - this[kResume] = null - resume() - } - } - - _destroy (err, callback) { - this._read() - - callback(err) - } -} - -class PipelineResponse extends Readable { - constructor (resume) { - super({ autoDestroy: true }) - this[kResume] = resume - } - - _read () { - this[kResume]() - } - - _destroy (err, callback) { - if (!err && !this._readableState.endEmitted) { - err = new RequestAbortedError() - } - - callback(err) - } -} - -class PipelineHandler extends AsyncResource { - constructor (opts, handler) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } - - if (typeof handler !== 'function') { - throw new InvalidArgumentError('invalid handler') - } - - const { signal, method, opaque, onInfo, responseHeaders } = opts - - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } - - if (method === 'CONNECT') { - throw new InvalidArgumentError('invalid method') - } - - if (onInfo && typeof onInfo !== 'function') { - throw new InvalidArgumentError('invalid onInfo callback') - } - - super('UNDICI_PIPELINE') - - this.opaque = opaque || null - this.responseHeaders = responseHeaders || null - this.handler = handler - this.abort = null - this.context = null - this.onInfo = onInfo || null - - this.req = new PipelineRequest().on('error', util.nop) - - this.ret = new Duplex({ - readableObjectMode: opts.objectMode, - autoDestroy: true, - read: () => { - const { body } = this - - if (body && body.resume) { - body.resume() - } - }, - write: (chunk, encoding, callback) => { - const { req } = this - - if (req.push(chunk, encoding) || req._readableState.destroyed) { - callback() - } else { - req[kResume] = callback - } - }, - destroy: (err, callback) => { - const { body, req, res, ret, abort } = this - - if (!err && !ret._readableState.endEmitted) { - err = new RequestAbortedError() - } - - if (abort && err) { - abort() - } - - util.destroy(body, err) - util.destroy(req, err) - util.destroy(res, err) - - removeSignal(this) - - callback(err) - } - }).on('prefinish', () => { - const { req } = this - - // Node < 15 does not call _final in same tick. - req.push(null) - }) - - this.res = null - - addSignal(this, signal) - } - - onConnect (abort, context) { - const { ret, res } = this - - assert(!res, 'pipeline cannot be retried') - - if (ret.destroyed) { - throw new RequestAbortedError() - } - - this.abort = abort - this.context = context - } - - onHeaders (statusCode, rawHeaders, resume) { - const { opaque, handler, context } = this - - if (statusCode < 200) { - if (this.onInfo) { - const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - this.onInfo({ statusCode, headers }) - } - return - } - - this.res = new PipelineResponse(resume) - - let body - try { - this.handler = null - const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - body = this.runInAsyncScope(handler, null, { - statusCode, - headers, - opaque, - body: this.res, - context - }) - } catch (err) { - this.res.on('error', util.nop) - throw err - } - - if (!body || typeof body.on !== 'function') { - throw new InvalidReturnValueError('expected Readable') - } - - body - .on('data', (chunk) => { - const { ret, body } = this - - if (!ret.push(chunk) && body.pause) { - body.pause() - } - }) - .on('error', (err) => { - const { ret } = this - - util.destroy(ret, err) - }) - .on('end', () => { - const { ret } = this - - ret.push(null) - }) - .on('close', () => { - const { ret } = this - - if (!ret._readableState.ended) { - util.destroy(ret, new RequestAbortedError()) - } - }) - - this.body = body - } - - onData (chunk) { - const { res } = this - return res.push(chunk) - } - - onComplete (trailers) { - const { res } = this - res.push(null) - } - - onError (err) { - const { ret } = this - this.handler = null - util.destroy(ret, err) - } -} - -function pipeline (opts, handler) { - try { - const pipelineHandler = new PipelineHandler(opts, handler) - this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler) - return pipelineHandler.ret - } catch (err) { - return new PassThrough().destroy(err) - } -} - -module.exports = pipeline - - -/***/ }), - -/***/ 985: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const Readable = __nccwpck_require__(3265) -const { - InvalidArgumentError, - RequestAbortedError -} = __nccwpck_require__(3785) -const util = __nccwpck_require__(162) -const { getResolveErrorBodyCallback } = __nccwpck_require__(9249) -const { AsyncResource } = __nccwpck_require__(290) -const { addSignal, removeSignal } = __nccwpck_require__(9256) - -class RequestHandler extends AsyncResource { - constructor (opts, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } - - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts - - try { - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } - - if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) { - throw new InvalidArgumentError('invalid highWaterMark') - } - - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } - - if (method === 'CONNECT') { - throw new InvalidArgumentError('invalid method') - } - - if (onInfo && typeof onInfo !== 'function') { - throw new InvalidArgumentError('invalid onInfo callback') - } - - super('UNDICI_REQUEST') - } catch (err) { - if (util.isStream(body)) { - util.destroy(body.on('error', util.nop), err) - } - throw err - } - - this.responseHeaders = responseHeaders || null - this.opaque = opaque || null - this.callback = callback - this.res = null - this.abort = null - this.body = body - this.trailers = {} - this.context = null - this.onInfo = onInfo || null - this.throwOnError = throwOnError - this.highWaterMark = highWaterMark - - if (util.isStream(body)) { - body.on('error', (err) => { - this.onError(err) - }) - } - - addSignal(this, signal) - } - - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } - - this.abort = abort - this.context = context - } - - onHeaders (statusCode, rawHeaders, resume, statusMessage) { - const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this - - const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - - if (statusCode < 200) { - if (this.onInfo) { - this.onInfo({ statusCode, headers }) - } - return - } - - const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers - const contentType = parsedHeaders['content-type'] - const body = new Readable({ resume, abort, contentType, highWaterMark }) - - this.callback = null - this.res = body - if (callback !== null) { - if (this.throwOnError && statusCode >= 400) { - this.runInAsyncScope(getResolveErrorBodyCallback, null, - { callback, body, contentType, statusCode, statusMessage, headers } - ) - } else { - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - trailers: this.trailers, - opaque, - body, - context - }) - } - } - } - - onData (chunk) { - const { res } = this - return res.push(chunk) - } - - onComplete (trailers) { - const { res } = this - - removeSignal(this) - - util.parseHeaders(trailers, this.trailers) - - res.push(null) - } - - onError (err) { - const { res, callback, body, opaque } = this - - removeSignal(this) - - if (callback) { - // TODO: Does this need queueMicrotask? - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } - - if (res) { - this.res = null - // Ensure all queued handlers are invoked before destroying res. - queueMicrotask(() => { - util.destroy(res, err) - }) - } - - if (body) { - this.body = null - util.destroy(body, err) - } - } -} - -function request (opts, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - request.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } - - try { - this.dispatch(opts, new RequestHandler(opts, callback)) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} - -module.exports = request -module.exports.RequestHandler = RequestHandler - - -/***/ }), - -/***/ 2682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { finished, PassThrough } = __nccwpck_require__(2203) -const { - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError -} = __nccwpck_require__(3785) -const util = __nccwpck_require__(162) -const { getResolveErrorBodyCallback } = __nccwpck_require__(9249) -const { AsyncResource } = __nccwpck_require__(290) -const { addSignal, removeSignal } = __nccwpck_require__(9256) - -class StreamHandler extends AsyncResource { - constructor (opts, factory, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } - - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts - - try { - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } - - if (typeof factory !== 'function') { - throw new InvalidArgumentError('invalid factory') - } - - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } - - if (method === 'CONNECT') { - throw new InvalidArgumentError('invalid method') - } - - if (onInfo && typeof onInfo !== 'function') { - throw new InvalidArgumentError('invalid onInfo callback') - } - - super('UNDICI_STREAM') - } catch (err) { - if (util.isStream(body)) { - util.destroy(body.on('error', util.nop), err) - } - throw err - } - - this.responseHeaders = responseHeaders || null - this.opaque = opaque || null - this.factory = factory - this.callback = callback - this.res = null - this.abort = null - this.context = null - this.trailers = null - this.body = body - this.onInfo = onInfo || null - this.throwOnError = throwOnError || false - - if (util.isStream(body)) { - body.on('error', (err) => { - this.onError(err) - }) - } - - addSignal(this, signal) - } - - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } - - this.abort = abort - this.context = context - } - - onHeaders (statusCode, rawHeaders, resume, statusMessage) { - const { factory, opaque, context, callback, responseHeaders } = this - - const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - - if (statusCode < 200) { - if (this.onInfo) { - this.onInfo({ statusCode, headers }) - } - return - } - - this.factory = null - - let res - - if (this.throwOnError && statusCode >= 400) { - const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers - const contentType = parsedHeaders['content-type'] - res = new PassThrough() - - this.callback = null - this.runInAsyncScope(getResolveErrorBodyCallback, null, - { callback, body: res, contentType, statusCode, statusMessage, headers } - ) - } else { - if (factory === null) { - return - } - - res = this.runInAsyncScope(factory, null, { - statusCode, - headers, - opaque, - context - }) - - if ( - !res || - typeof res.write !== 'function' || - typeof res.end !== 'function' || - typeof res.on !== 'function' - ) { - throw new InvalidReturnValueError('expected Writable') - } - - // TODO: Avoid finished. It registers an unnecessary amount of listeners. - finished(res, { readable: false }, (err) => { - const { callback, res, opaque, trailers, abort } = this - - this.res = null - if (err || !res.readable) { - util.destroy(res, err) - } - - this.callback = null - this.runInAsyncScope(callback, null, err || null, { opaque, trailers }) - - if (err) { - abort() - } - }) - } - - res.on('drain', resume) - - this.res = res - - const needDrain = res.writableNeedDrain !== undefined - ? res.writableNeedDrain - : res._writableState && res._writableState.needDrain - - return needDrain !== true - } - - onData (chunk) { - const { res } = this - - return res ? res.write(chunk) : true - } - - onComplete (trailers) { - const { res } = this - - removeSignal(this) - - if (!res) { - return - } - - this.trailers = util.parseHeaders(trailers) - - res.end() - } - - onError (err) { - const { res, callback, opaque, body } = this - - removeSignal(this) - - this.factory = null - - if (res) { - this.res = null - util.destroy(res, err) - } else if (callback) { - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } - - if (body) { - this.body = null - util.destroy(body, err) - } - } -} - -function stream (opts, factory, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - stream.call(this, opts, factory, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } - - try { - this.dispatch(opts, new StreamHandler(opts, factory, callback)) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} - -module.exports = stream - - -/***/ }), - -/***/ 8424: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(3785) -const { AsyncResource } = __nccwpck_require__(290) -const util = __nccwpck_require__(162) -const { addSignal, removeSignal } = __nccwpck_require__(9256) -const assert = __nccwpck_require__(2613) - -class UpgradeHandler extends AsyncResource { - constructor (opts, callback) { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('invalid opts') - } - - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } - - const { signal, opaque, responseHeaders } = opts - - if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { - throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') - } - - super('UNDICI_UPGRADE') - - this.responseHeaders = responseHeaders || null - this.opaque = opaque || null - this.callback = callback - this.abort = null - this.context = null - - addSignal(this, signal) - } - - onConnect (abort, context) { - if (!this.callback) { - throw new RequestAbortedError() - } - - this.abort = abort - this.context = null - } - - onHeaders () { - throw new SocketError('bad upgrade', null) - } - - onUpgrade (statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this - - assert.strictEqual(statusCode, 101) - - removeSignal(this) - - this.callback = null - const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) - this.runInAsyncScope(callback, null, null, { - headers, - socket, - opaque, - context - }) - } - - onError (err) { - const { callback, opaque } = this - - removeSignal(this) - - if (callback) { - this.callback = null - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }) - }) - } - } -} - -function upgrade (opts, callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - upgrade.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } - - try { - const upgradeHandler = new UpgradeHandler(opts, callback) - this.dispatch({ - ...opts, - method: opts.method || 'GET', - upgrade: opts.protocol || 'Websocket' - }, upgradeHandler) - } catch (err) { - if (typeof callback !== 'function') { - throw err - } - const opaque = opts && opts.opaque - queueMicrotask(() => callback(err, { opaque })) - } -} - -module.exports = upgrade - - -/***/ }), - -/***/ 7865: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -module.exports.request = __nccwpck_require__(985) -module.exports.stream = __nccwpck_require__(2682) -module.exports.pipeline = __nccwpck_require__(1324) -module.exports.upgrade = __nccwpck_require__(8424) -module.exports.connect = __nccwpck_require__(182) - - -/***/ }), - -/***/ 3265: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -// Ported from https://github.com/nodejs/undici/pull/907 - - - -const assert = __nccwpck_require__(2613) -const { Readable } = __nccwpck_require__(2203) -const { RequestAbortedError, NotSupportedError, InvalidArgumentError } = __nccwpck_require__(3785) -const util = __nccwpck_require__(162) -const { ReadableStreamFrom, toUSVString } = __nccwpck_require__(162) - -let Blob - -const kConsume = Symbol('kConsume') -const kReading = Symbol('kReading') -const kBody = Symbol('kBody') -const kAbort = Symbol('abort') -const kContentType = Symbol('kContentType') - -const noop = () => {} - -module.exports = class BodyReadable extends Readable { - constructor ({ - resume, - abort, - contentType = '', - highWaterMark = 64 * 1024 // Same as nodejs fs streams. - }) { - super({ - autoDestroy: true, - read: resume, - highWaterMark - }) - - this._readableState.dataEmitted = false - - this[kAbort] = abort - this[kConsume] = null - this[kBody] = null - this[kContentType] = contentType - - // Is stream being consumed through Readable API? - // This is an optimization so that we avoid checking - // for 'data' and 'readable' listeners in the hot path - // inside push(). - this[kReading] = false - } - - destroy (err) { - if (this.destroyed) { - // Node < 16 - return this - } - - if (!err && !this._readableState.endEmitted) { - err = new RequestAbortedError() - } - - if (err) { - this[kAbort]() - } - - return super.destroy(err) - } - - emit (ev, ...args) { - if (ev === 'data') { - // Node < 16.7 - this._readableState.dataEmitted = true - } else if (ev === 'error') { - // Node < 16 - this._readableState.errorEmitted = true - } - return super.emit(ev, ...args) - } - - on (ev, ...args) { - if (ev === 'data' || ev === 'readable') { - this[kReading] = true - } - return super.on(ev, ...args) - } - - addListener (ev, ...args) { - return this.on(ev, ...args) - } - - off (ev, ...args) { - const ret = super.off(ev, ...args) - if (ev === 'data' || ev === 'readable') { - this[kReading] = ( - this.listenerCount('data') > 0 || - this.listenerCount('readable') > 0 - ) - } - return ret - } - - removeListener (ev, ...args) { - return this.off(ev, ...args) - } - - push (chunk) { - if (this[kConsume] && chunk !== null && this.readableLength === 0) { - consumePush(this[kConsume], chunk) - return this[kReading] ? super.push(chunk) : true - } - return super.push(chunk) - } - - // https://fetch.spec.whatwg.org/#dom-body-text - async text () { - return consume(this, 'text') - } - - // https://fetch.spec.whatwg.org/#dom-body-json - async json () { - return consume(this, 'json') - } - - // https://fetch.spec.whatwg.org/#dom-body-blob - async blob () { - return consume(this, 'blob') - } - - // https://fetch.spec.whatwg.org/#dom-body-arraybuffer - async arrayBuffer () { - return consume(this, 'arrayBuffer') - } - - // https://fetch.spec.whatwg.org/#dom-body-formdata - async formData () { - // TODO: Implement. - throw new NotSupportedError() - } - - // https://fetch.spec.whatwg.org/#dom-body-bodyused - get bodyUsed () { - return util.isDisturbed(this) - } - - // https://fetch.spec.whatwg.org/#dom-body-body - get body () { - if (!this[kBody]) { - this[kBody] = ReadableStreamFrom(this) - if (this[kConsume]) { - // TODO: Is this the best way to force a lock? - this[kBody].getReader() // Ensure stream is locked. - assert(this[kBody].locked) - } - } - return this[kBody] - } - - dump (opts) { - let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144 - const signal = opts && opts.signal - - if (signal) { - try { - if (typeof signal !== 'object' || !('aborted' in signal)) { - throw new InvalidArgumentError('signal must be an AbortSignal') - } - util.throwIfAborted(signal) - } catch (err) { - return Promise.reject(err) - } - } - - if (this.closed) { - return Promise.resolve(null) - } - - return new Promise((resolve, reject) => { - const signalListenerCleanup = signal - ? util.addAbortListener(signal, () => { - this.destroy() - }) - : noop - - this - .on('close', function () { - signalListenerCleanup() - if (signal && signal.aborted) { - reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' })) - } else { - resolve(null) - } - }) - .on('error', noop) - .on('data', function (chunk) { - limit -= chunk.length - if (limit <= 0) { - this.destroy() - } - }) - .resume() - }) - } -} - -// https://streams.spec.whatwg.org/#readablestream-locked -function isLocked (self) { - // Consume is an implicit lock. - return (self[kBody] && self[kBody].locked === true) || self[kConsume] -} - -// https://fetch.spec.whatwg.org/#body-unusable -function isUnusable (self) { - return util.isDisturbed(self) || isLocked(self) -} - -async function consume (stream, type) { - if (isUnusable(stream)) { - throw new TypeError('unusable') - } - - assert(!stream[kConsume]) - - return new Promise((resolve, reject) => { - stream[kConsume] = { - type, - stream, - resolve, - reject, - length: 0, - body: [] - } - - stream - .on('error', function (err) { - consumeFinish(this[kConsume], err) - }) - .on('close', function () { - if (this[kConsume].body !== null) { - consumeFinish(this[kConsume], new RequestAbortedError()) - } - }) - - process.nextTick(consumeStart, stream[kConsume]) - }) -} - -function consumeStart (consume) { - if (consume.body === null) { - return - } - - const { _readableState: state } = consume.stream - - for (const chunk of state.buffer) { - consumePush(consume, chunk) - } - - if (state.endEmitted) { - consumeEnd(this[kConsume]) - } else { - consume.stream.on('end', function () { - consumeEnd(this[kConsume]) - }) - } - - consume.stream.resume() - - while (consume.stream.read() != null) { - // Loop - } -} - -function consumeEnd (consume) { - const { type, body, resolve, stream, length } = consume - - try { - if (type === 'text') { - resolve(toUSVString(Buffer.concat(body))) - } else if (type === 'json') { - resolve(JSON.parse(Buffer.concat(body))) - } else if (type === 'arrayBuffer') { - const dst = new Uint8Array(length) - - let pos = 0 - for (const buf of body) { - dst.set(buf, pos) - pos += buf.byteLength - } - - resolve(dst.buffer) - } else if (type === 'blob') { - if (!Blob) { - Blob = (__nccwpck_require__(181).Blob) - } - resolve(new Blob(body, { type: stream[kContentType] })) - } - - consumeFinish(consume) - } catch (err) { - stream.destroy(err) - } -} - -function consumePush (consume, chunk) { - consume.length += chunk.length - consume.body.push(chunk) -} - -function consumeFinish (consume, err) { - if (consume.body === null) { - return - } - - if (err) { - consume.reject(err) - } else { - consume.resolve() - } - - consume.type = null - consume.stream = null - consume.resolve = null - consume.reject = null - consume.length = 0 - consume.body = null -} - - -/***/ }), - -/***/ 9249: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const assert = __nccwpck_require__(2613) -const { - ResponseStatusCodeError -} = __nccwpck_require__(3785) -const { toUSVString } = __nccwpck_require__(162) - -async function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert(body) - - let chunks = [] - let limit = 0 - - for await (const chunk of body) { - chunks.push(chunk) - limit += chunk.length - if (limit > 128 * 1024) { - chunks = null - break - } - } - - if (statusCode === 204 || !contentType || !chunks) { - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) - return - } - - try { - if (contentType.startsWith('application/json')) { - const payload = JSON.parse(toUSVString(Buffer.concat(chunks))) - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) - return - } - - if (contentType.startsWith('text/')) { - const payload = toUSVString(Buffer.concat(chunks)) - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) - return - } - } catch (err) { - // Process in a fallback if error - } - - process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) -} - -module.exports = { getResolveErrorBodyCallback } - - -/***/ }), - -/***/ 1891: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { - BalancedPoolMissingUpstreamError, - InvalidArgumentError -} = __nccwpck_require__(3785) -const { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher -} = __nccwpck_require__(9538) -const Pool = __nccwpck_require__(2586) -const { kUrl, kInterceptors } = __nccwpck_require__(249) -const { parseOrigin } = __nccwpck_require__(162) -const kFactory = Symbol('factory') - -const kOptions = Symbol('options') -const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor') -const kCurrentWeight = Symbol('kCurrentWeight') -const kIndex = Symbol('kIndex') -const kWeight = Symbol('kWeight') -const kMaxWeightPerServer = Symbol('kMaxWeightPerServer') -const kErrorPenalty = Symbol('kErrorPenalty') - -function getGreatestCommonDivisor (a, b) { - if (b === 0) return a - return getGreatestCommonDivisor(b, a % b) -} - -function defaultFactory (origin, opts) { - return new Pool(origin, opts) -} - -class BalancedPool extends PoolBase { - constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) { - super() - - this[kOptions] = opts - this[kIndex] = -1 - this[kCurrentWeight] = 0 - - this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100 - this[kErrorPenalty] = this[kOptions].errorPenalty || 15 - - if (!Array.isArray(upstreams)) { - upstreams = [upstreams] - } - - if (typeof factory !== 'function') { - throw new InvalidArgumentError('factory must be a function.') - } - - this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) - ? opts.interceptors.BalancedPool - : [] - this[kFactory] = factory - - for (const upstream of upstreams) { - this.addUpstream(upstream) - } - this._updateBalancedPoolStats() - } - - addUpstream (upstream) { - const upstreamOrigin = parseOrigin(upstream).origin - - if (this[kClients].find((pool) => ( - pool[kUrl].origin === upstreamOrigin && - pool.closed !== true && - pool.destroyed !== true - ))) { - return this - } - const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])) - - this[kAddClient](pool) - pool.on('connect', () => { - pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]) - }) - - pool.on('connectionError', () => { - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) - this._updateBalancedPoolStats() - }) - - pool.on('disconnect', (...args) => { - const err = args[2] - if (err && err.code === 'UND_ERR_SOCKET') { - // decrease the weight of the pool. - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) - this._updateBalancedPoolStats() - } - }) - - for (const client of this[kClients]) { - client[kWeight] = this[kMaxWeightPerServer] - } - - this._updateBalancedPoolStats() - - return this - } - - _updateBalancedPoolStats () { - this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0) - } - - removeUpstream (upstream) { - const upstreamOrigin = parseOrigin(upstream).origin - - const pool = this[kClients].find((pool) => ( - pool[kUrl].origin === upstreamOrigin && - pool.closed !== true && - pool.destroyed !== true - )) - - if (pool) { - this[kRemoveClient](pool) - } - - return this - } - - get upstreams () { - return this[kClients] - .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true) - .map((p) => p[kUrl].origin) - } - - [kGetDispatcher] () { - // We validate that pools is greater than 0, - // otherwise we would have to wait until an upstream - // is added, which might never happen. - if (this[kClients].length === 0) { - throw new BalancedPoolMissingUpstreamError() - } - - const dispatcher = this[kClients].find(dispatcher => ( - !dispatcher[kNeedDrain] && - dispatcher.closed !== true && - dispatcher.destroyed !== true - )) - - if (!dispatcher) { - return - } - - const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true) - - if (allClientsBusy) { - return - } - - let counter = 0 - - let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain]) - - while (counter++ < this[kClients].length) { - this[kIndex] = (this[kIndex] + 1) % this[kClients].length - const pool = this[kClients][this[kIndex]] - - // find pool index with the largest weight - if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { - maxWeightIndex = this[kIndex] - } - - // decrease the current weight every `this[kClients].length`. - if (this[kIndex] === 0) { - // Set the current weight to the next lower weight. - this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor] - - if (this[kCurrentWeight] <= 0) { - this[kCurrentWeight] = this[kMaxWeightPerServer] - } - } - if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) { - return pool - } - } - - this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight] - this[kIndex] = maxWeightIndex - return this[kClients][maxWeightIndex] - } -} - -module.exports = BalancedPool - - -/***/ }), - -/***/ 3741: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { kConstruct } = __nccwpck_require__(5014) -const { urlEquals, fieldValues: getFieldValues } = __nccwpck_require__(2411) -const { kEnumerableProperty, isDisturbed } = __nccwpck_require__(162) -const { kHeadersList } = __nccwpck_require__(249) -const { webidl } = __nccwpck_require__(7472) -const { Response, cloneResponse } = __nccwpck_require__(3258) -const { Request } = __nccwpck_require__(4960) -const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(4236) -const { fetching } = __nccwpck_require__(3397) -const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = __nccwpck_require__(7189) -const assert = __nccwpck_require__(2613) -const { getGlobalDispatcher } = __nccwpck_require__(8127) - -/** - * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation - * @typedef {Object} CacheBatchOperation - * @property {'delete' | 'put'} type - * @property {any} request - * @property {any} response - * @property {import('../../types/cache').CacheQueryOptions} options - */ - -/** - * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list - * @typedef {[any, any][]} requestResponseList - */ - -class Cache { - /** - * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list - * @type {requestResponseList} - */ - #relevantRequestResponseList - - constructor () { - if (arguments[0] !== kConstruct) { - webidl.illegalConstructor() - } - - this.#relevantRequestResponseList = arguments[1] - } - - async match (request, options = {}) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' }) - - request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) - - const p = await this.matchAll(request, options) - - if (p.length === 0) { - return - } - - return p[0] - } - - async matchAll (request = undefined, options = {}) { - webidl.brandCheck(this, Cache) - - if (request !== undefined) request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) - - // 1. - let r = null - - // 2. - if (request !== undefined) { - if (request instanceof Request) { - // 2.1.1 - r = request[kState] - - // 2.1.2 - if (r.method !== 'GET' && !options.ignoreMethod) { - return [] - } - } else if (typeof request === 'string') { - // 2.2.1 - r = new Request(request)[kState] - } - } - - // 5. - // 5.1 - const responses = [] - - // 5.2 - if (request === undefined) { - // 5.2.1 - for (const requestResponse of this.#relevantRequestResponseList) { - responses.push(requestResponse[1]) - } - } else { // 5.3 - // 5.3.1 - const requestResponses = this.#queryCache(r, options) - - // 5.3.2 - for (const requestResponse of requestResponses) { - responses.push(requestResponse[1]) - } - } - - // 5.4 - // We don't implement CORs so we don't need to loop over the responses, yay! - - // 5.5.1 - const responseList = [] - - // 5.5.2 - for (const response of responses) { - // 5.5.2.1 - const responseObject = new Response(response.body?.source ?? null) - const body = responseObject[kState].body - responseObject[kState] = response - responseObject[kState].body = body - responseObject[kHeaders][kHeadersList] = response.headersList - responseObject[kHeaders][kGuard] = 'immutable' - - responseList.push(responseObject) - } - - // 6. - return Object.freeze(responseList) - } - - async add (request) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' }) - - request = webidl.converters.RequestInfo(request) - - // 1. - const requests = [request] - - // 2. - const responseArrayPromise = this.addAll(requests) - - // 3. - return await responseArrayPromise - } - - async addAll (requests) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' }) - - requests = webidl.converters['sequence'](requests) - - // 1. - const responsePromises = [] - - // 2. - const requestList = [] - - // 3. - for (const request of requests) { - if (typeof request === 'string') { - continue - } - - // 3.1 - const r = request[kState] - - // 3.2 - if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') { - throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme when method is not GET.' - }) - } - } - - // 4. - /** @type {ReturnType[]} */ - const fetchControllers = [] - - // 5. - for (const request of requests) { - // 5.1 - const r = new Request(request)[kState] - - // 5.2 - if (!urlIsHttpHttpsScheme(r.url)) { - throw webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Expected http/s scheme.' - }) - } - - // 5.4 - r.initiator = 'fetch' - r.destination = 'subresource' - - // 5.5 - requestList.push(r) - - // 5.6 - const responsePromise = createDeferredPromise() - - // 5.7 - fetchControllers.push(fetching({ - request: r, - dispatcher: getGlobalDispatcher(), - processResponse (response) { - // 1. - if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) { - responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'Received an invalid status code or the request failed.' - })) - } else if (response.headersList.contains('vary')) { // 2. - // 2.1 - const fieldValues = getFieldValues(response.headersList.get('vary')) - - // 2.2 - for (const fieldValue of fieldValues) { - // 2.2.1 - if (fieldValue === '*') { - responsePromise.reject(webidl.errors.exception({ - header: 'Cache.addAll', - message: 'invalid vary field value' - })) - - for (const controller of fetchControllers) { - controller.abort() - } - - return - } - } - } - }, - processResponseEndOfBody (response) { - // 1. - if (response.aborted) { - responsePromise.reject(new DOMException('aborted', 'AbortError')) - return - } - - // 2. - responsePromise.resolve(response) - } - })) - - // 5.8 - responsePromises.push(responsePromise.promise) - } - - // 6. - const p = Promise.all(responsePromises) - - // 7. - const responses = await p - - // 7.1 - const operations = [] - - // 7.2 - let index = 0 - - // 7.3 - for (const response of responses) { - // 7.3.1 - /** @type {CacheBatchOperation} */ - const operation = { - type: 'put', // 7.3.2 - request: requestList[index], // 7.3.3 - response // 7.3.4 - } - - operations.push(operation) // 7.3.5 - - index++ // 7.3.6 - } - - // 7.5 - const cacheJobPromise = createDeferredPromise() - - // 7.6.1 - let errorData = null - - // 7.6.2 - try { - this.#batchCacheOperations(operations) - } catch (e) { - errorData = e - } - - // 7.6.3 - queueMicrotask(() => { - // 7.6.3.1 - if (errorData === null) { - cacheJobPromise.resolve(undefined) - } else { - // 7.6.3.2 - cacheJobPromise.reject(errorData) - } - }) - - // 7.7 - return cacheJobPromise.promise - } - - async put (request, response) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' }) - - request = webidl.converters.RequestInfo(request) - response = webidl.converters.Response(response) - - // 1. - let innerRequest = null - - // 2. - if (request instanceof Request) { - innerRequest = request[kState] - } else { // 3. - innerRequest = new Request(request)[kState] - } - - // 4. - if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Expected an http/s scheme when method is not GET' - }) - } - - // 5. - const innerResponse = response[kState] - - // 6. - if (innerResponse.status === 206) { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got 206 status' - }) - } - - // 7. - if (innerResponse.headersList.contains('vary')) { - // 7.1. - const fieldValues = getFieldValues(innerResponse.headersList.get('vary')) - - // 7.2. - for (const fieldValue of fieldValues) { - // 7.2.1 - if (fieldValue === '*') { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Got * vary field value' - }) - } - } - } - - // 8. - if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { - throw webidl.errors.exception({ - header: 'Cache.put', - message: 'Response body is locked or disturbed' - }) - } - - // 9. - const clonedResponse = cloneResponse(innerResponse) - - // 10. - const bodyReadPromise = createDeferredPromise() - - // 11. - if (innerResponse.body != null) { - // 11.1 - const stream = innerResponse.body.stream - - // 11.2 - const reader = stream.getReader() - - // 11.3 - readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject) - } else { - bodyReadPromise.resolve(undefined) - } - - // 12. - /** @type {CacheBatchOperation[]} */ - const operations = [] - - // 13. - /** @type {CacheBatchOperation} */ - const operation = { - type: 'put', // 14. - request: innerRequest, // 15. - response: clonedResponse // 16. - } - - // 17. - operations.push(operation) - - // 19. - const bytes = await bodyReadPromise.promise - - if (clonedResponse.body != null) { - clonedResponse.body.source = bytes - } - - // 19.1 - const cacheJobPromise = createDeferredPromise() - - // 19.2.1 - let errorData = null - - // 19.2.2 - try { - this.#batchCacheOperations(operations) - } catch (e) { - errorData = e - } - - // 19.2.3 - queueMicrotask(() => { - // 19.2.3.1 - if (errorData === null) { - cacheJobPromise.resolve() - } else { // 19.2.3.2 - cacheJobPromise.reject(errorData) - } - }) - - return cacheJobPromise.promise - } - - async delete (request, options = {}) { - webidl.brandCheck(this, Cache) - webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' }) - - request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) - - /** - * @type {Request} - */ - let r = null - - if (request instanceof Request) { - r = request[kState] - - if (r.method !== 'GET' && !options.ignoreMethod) { - return false - } - } else { - assert(typeof request === 'string') - - r = new Request(request)[kState] - } - - /** @type {CacheBatchOperation[]} */ - const operations = [] - - /** @type {CacheBatchOperation} */ - const operation = { - type: 'delete', - request: r, - options - } - - operations.push(operation) - - const cacheJobPromise = createDeferredPromise() - - let errorData = null - let requestResponses - - try { - requestResponses = this.#batchCacheOperations(operations) - } catch (e) { - errorData = e - } - - queueMicrotask(() => { - if (errorData === null) { - cacheJobPromise.resolve(!!requestResponses?.length) - } else { - cacheJobPromise.reject(errorData) - } - }) - - return cacheJobPromise.promise - } - - /** - * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys - * @param {any} request - * @param {import('../../types/cache').CacheQueryOptions} options - * @returns {readonly Request[]} - */ - async keys (request = undefined, options = {}) { - webidl.brandCheck(this, Cache) - - if (request !== undefined) request = webidl.converters.RequestInfo(request) - options = webidl.converters.CacheQueryOptions(options) - - // 1. - let r = null - - // 2. - if (request !== undefined) { - // 2.1 - if (request instanceof Request) { - // 2.1.1 - r = request[kState] - - // 2.1.2 - if (r.method !== 'GET' && !options.ignoreMethod) { - return [] - } - } else if (typeof request === 'string') { // 2.2 - r = new Request(request)[kState] - } - } - - // 4. - const promise = createDeferredPromise() - - // 5. - // 5.1 - const requests = [] - - // 5.2 - if (request === undefined) { - // 5.2.1 - for (const requestResponse of this.#relevantRequestResponseList) { - // 5.2.1.1 - requests.push(requestResponse[0]) - } - } else { // 5.3 - // 5.3.1 - const requestResponses = this.#queryCache(r, options) - - // 5.3.2 - for (const requestResponse of requestResponses) { - // 5.3.2.1 - requests.push(requestResponse[0]) - } - } - - // 5.4 - queueMicrotask(() => { - // 5.4.1 - const requestList = [] - - // 5.4.2 - for (const request of requests) { - const requestObject = new Request('https://a') - requestObject[kState] = request - requestObject[kHeaders][kHeadersList] = request.headersList - requestObject[kHeaders][kGuard] = 'immutable' - requestObject[kRealm] = request.client - - // 5.4.2.1 - requestList.push(requestObject) - } - - // 5.4.3 - promise.resolve(Object.freeze(requestList)) - }) - - return promise.promise - } - - /** - * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm - * @param {CacheBatchOperation[]} operations - * @returns {requestResponseList} - */ - #batchCacheOperations (operations) { - // 1. - const cache = this.#relevantRequestResponseList - - // 2. - const backupCache = [...cache] - - // 3. - const addedItems = [] - - // 4.1 - const resultList = [] - - try { - // 4.2 - for (const operation of operations) { - // 4.2.1 - if (operation.type !== 'delete' && operation.type !== 'put') { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'operation type does not match "delete" or "put"' - }) - } - - // 4.2.2 - if (operation.type === 'delete' && operation.response != null) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'delete operation should not have an associated response' - }) - } - - // 4.2.3 - if (this.#queryCache(operation.request, operation.options, addedItems).length) { - throw new DOMException('???', 'InvalidStateError') - } - - // 4.2.4 - let requestResponses - - // 4.2.5 - if (operation.type === 'delete') { - // 4.2.5.1 - requestResponses = this.#queryCache(operation.request, operation.options) - - // TODO: the spec is wrong, this is needed to pass WPTs - if (requestResponses.length === 0) { - return [] - } - - // 4.2.5.2 - for (const requestResponse of requestResponses) { - const idx = cache.indexOf(requestResponse) - assert(idx !== -1) - - // 4.2.5.2.1 - cache.splice(idx, 1) - } - } else if (operation.type === 'put') { // 4.2.6 - // 4.2.6.1 - if (operation.response == null) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'put operation should have an associated response' - }) - } - - // 4.2.6.2 - const r = operation.request - - // 4.2.6.3 - if (!urlIsHttpHttpsScheme(r.url)) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'expected http or https scheme' - }) - } - - // 4.2.6.4 - if (r.method !== 'GET') { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'not get method' - }) - } - - // 4.2.6.5 - if (operation.options != null) { - throw webidl.errors.exception({ - header: 'Cache.#batchCacheOperations', - message: 'options must not be defined' - }) - } - - // 4.2.6.6 - requestResponses = this.#queryCache(operation.request) - - // 4.2.6.7 - for (const requestResponse of requestResponses) { - const idx = cache.indexOf(requestResponse) - assert(idx !== -1) - - // 4.2.6.7.1 - cache.splice(idx, 1) - } - - // 4.2.6.8 - cache.push([operation.request, operation.response]) - - // 4.2.6.10 - addedItems.push([operation.request, operation.response]) - } - - // 4.2.7 - resultList.push([operation.request, operation.response]) - } - - // 4.3 - return resultList - } catch (e) { // 5. - // 5.1 - this.#relevantRequestResponseList.length = 0 - - // 5.2 - this.#relevantRequestResponseList = backupCache - - // 5.3 - throw e - } - } - - /** - * @see https://w3c.github.io/ServiceWorker/#query-cache - * @param {any} requestQuery - * @param {import('../../types/cache').CacheQueryOptions} options - * @param {requestResponseList} targetStorage - * @returns {requestResponseList} - */ - #queryCache (requestQuery, options, targetStorage) { - /** @type {requestResponseList} */ - const resultList = [] - - const storage = targetStorage ?? this.#relevantRequestResponseList - - for (const requestResponse of storage) { - const [cachedRequest, cachedResponse] = requestResponse - if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { - resultList.push(requestResponse) - } - } - - return resultList - } - - /** - * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm - * @param {any} requestQuery - * @param {any} request - * @param {any | null} response - * @param {import('../../types/cache').CacheQueryOptions | undefined} options - * @returns {boolean} - */ - #requestMatchesCachedItem (requestQuery, request, response = null, options) { - // if (options?.ignoreMethod === false && request.method === 'GET') { - // return false - // } - - const queryURL = new URL(requestQuery.url) - - const cachedURL = new URL(request.url) - - if (options?.ignoreSearch) { - cachedURL.search = '' - - queryURL.search = '' - } - - if (!urlEquals(queryURL, cachedURL, true)) { - return false - } - - if ( - response == null || - options?.ignoreVary || - !response.headersList.contains('vary') - ) { - return true - } - - const fieldValues = getFieldValues(response.headersList.get('vary')) - - for (const fieldValue of fieldValues) { - if (fieldValue === '*') { - return false - } - - const requestValue = request.headersList.get(fieldValue) - const queryValue = requestQuery.headersList.get(fieldValue) - - // If one has the header and the other doesn't, or one has - // a different value than the other, return false - if (requestValue !== queryValue) { - return false - } - } - - return true - } -} - -Object.defineProperties(Cache.prototype, { - [Symbol.toStringTag]: { - value: 'Cache', - configurable: true - }, - match: kEnumerableProperty, - matchAll: kEnumerableProperty, - add: kEnumerableProperty, - addAll: kEnumerableProperty, - put: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty -}) - -const cacheQueryOptionConverters = [ - { - key: 'ignoreSearch', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreMethod', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'ignoreVary', - converter: webidl.converters.boolean, - defaultValue: false - } -] - -webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters) - -webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ - ...cacheQueryOptionConverters, - { - key: 'cacheName', - converter: webidl.converters.DOMString - } -]) - -webidl.converters.Response = webidl.interfaceConverter(Response) - -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.RequestInfo -) - -module.exports = { - Cache -} - - -/***/ }), - -/***/ 6452: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { kConstruct } = __nccwpck_require__(5014) -const { Cache } = __nccwpck_require__(3741) -const { webidl } = __nccwpck_require__(7472) -const { kEnumerableProperty } = __nccwpck_require__(162) - -class CacheStorage { - /** - * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map - * @type {Map} - */ - async has (cacheName) { - webidl.brandCheck(this, CacheStorage) - webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' }) - - cacheName = webidl.converters.DOMString(cacheName) - - // 2.1.1 - // 2.2 - return this.#caches.has(cacheName) - } - - /** - * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open - * @param {string} cacheName - * @returns {Promise} - */ - async open (cacheName) { - webidl.brandCheck(this, CacheStorage) - webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' }) - - cacheName = webidl.converters.DOMString(cacheName) - - // 2.1 - if (this.#caches.has(cacheName)) { - // await caches.open('v1') !== await caches.open('v1') - - // 2.1.1 - const cache = this.#caches.get(cacheName) - - // 2.1.1.1 - return new Cache(kConstruct, cache) - } - - // 2.2 - const cache = [] - - // 2.3 - this.#caches.set(cacheName, cache) - - // 2.4 - return new Cache(kConstruct, cache) - } - - /** - * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete - * @param {string} cacheName - * @returns {Promise} - */ - async delete (cacheName) { - webidl.brandCheck(this, CacheStorage) - webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' }) - - cacheName = webidl.converters.DOMString(cacheName) - - return this.#caches.delete(cacheName) - } - - /** - * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys - * @returns {string[]} - */ - async keys () { - webidl.brandCheck(this, CacheStorage) - - // 2.1 - const keys = this.#caches.keys() - - // 2.2 - return [...keys] - } -} - -Object.defineProperties(CacheStorage.prototype, { - [Symbol.toStringTag]: { - value: 'CacheStorage', - configurable: true - }, - match: kEnumerableProperty, - has: kEnumerableProperty, - open: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty -}) - -module.exports = { - CacheStorage -} - - -/***/ }), - -/***/ 5014: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -module.exports = { - kConstruct: (__nccwpck_require__(249).kConstruct) -} - - -/***/ }), - -/***/ 2411: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const assert = __nccwpck_require__(2613) -const { URLSerializer } = __nccwpck_require__(5892) -const { isValidHeaderName } = __nccwpck_require__(7189) - -/** - * @see https://url.spec.whatwg.org/#concept-url-equals - * @param {URL} A - * @param {URL} B - * @param {boolean | undefined} excludeFragment - * @returns {boolean} - */ -function urlEquals (A, B, excludeFragment = false) { - const serializedA = URLSerializer(A, excludeFragment) - - const serializedB = URLSerializer(B, excludeFragment) - - return serializedA === serializedB -} - -/** - * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262 - * @param {string} header - */ -function fieldValues (header) { - assert(header !== null) - - const values = [] - - for (let value of header.split(',')) { - value = value.trim() - - if (!value.length) { - continue - } else if (!isValidHeaderName(value)) { - continue - } - - values.push(value) - } - - return values -} - -module.exports = { - urlEquals, - fieldValues -} - - -/***/ }), - -/***/ 5635: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -// @ts-check - - - -/* global WebAssembly */ - -const assert = __nccwpck_require__(2613) -const net = __nccwpck_require__(9278) -const http = __nccwpck_require__(8611) -const { pipeline } = __nccwpck_require__(2203) -const util = __nccwpck_require__(162) -const timers = __nccwpck_require__(7034) -const Request = __nccwpck_require__(8773) -const DispatcherBase = __nccwpck_require__(6215) -const { - RequestContentLengthMismatchError, - ResponseContentLengthMismatchError, - InvalidArgumentError, - RequestAbortedError, - HeadersTimeoutError, - HeadersOverflowError, - SocketError, - InformationalError, - BodyTimeoutError, - HTTPParserError, - ResponseExceededMaxSizeError, - ClientDestroyedError -} = __nccwpck_require__(3785) -const buildConnector = __nccwpck_require__(5786) -const { - kUrl, - kReset, - kServerName, - kClient, - kBusy, - kParser, - kConnect, - kBlocking, - kResuming, - kRunning, - kPending, - kSize, - kWriting, - kQueue, - kConnected, - kConnecting, - kNeedDrain, - kNoRef, - kKeepAliveDefaultTimeout, - kHostHeader, - kPendingIdx, - kRunningIdx, - kError, - kPipelining, - kSocket, - kKeepAliveTimeoutValue, - kMaxHeadersSize, - kKeepAliveMaxTimeout, - kKeepAliveTimeoutThreshold, - kHeadersTimeout, - kBodyTimeout, - kStrictContentLength, - kConnector, - kMaxRedirections, - kMaxRequests, - kCounter, - kClose, - kDestroy, - kDispatch, - kInterceptors, - kLocalAddress, - kMaxResponseSize, - kHTTPConnVersion, - // HTTP2 - kHost, - kHTTP2Session, - kHTTP2SessionState, - kHTTP2BuildRequest, - kHTTP2CopyHeaders, - kHTTP1BuildRequest -} = __nccwpck_require__(249) - -/** @type {import('http2')} */ -let http2 -try { - http2 = __nccwpck_require__(5675) -} catch { - // @ts-ignore - http2 = { constants: {} } -} - -const { - constants: { - HTTP2_HEADER_AUTHORITY, - HTTP2_HEADER_METHOD, - HTTP2_HEADER_PATH, - HTTP2_HEADER_SCHEME, - HTTP2_HEADER_CONTENT_LENGTH, - HTTP2_HEADER_EXPECT, - HTTP2_HEADER_STATUS - } -} = http2 - -// Experimental -let h2ExperimentalWarned = false - -const FastBuffer = Buffer[Symbol.species] - -const kClosedResolve = Symbol('kClosedResolve') - -const channels = {} - -try { - const diagnosticsChannel = __nccwpck_require__(1637) - channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders') - channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect') - channels.connectError = diagnosticsChannel.channel('undici:client:connectError') - channels.connected = diagnosticsChannel.channel('undici:client:connected') -} catch { - channels.sendHeaders = { hasSubscribers: false } - channels.beforeConnect = { hasSubscribers: false } - channels.connectError = { hasSubscribers: false } - channels.connected = { hasSubscribers: false } -} - -/** - * @type {import('../types/client').default} - */ -class Client extends DispatcherBase { - /** - * - * @param {string|URL} url - * @param {import('../types/client').Client.Options} options - */ - constructor (url, { - interceptors, - maxHeaderSize, - headersTimeout, - socketTimeout, - requestTimeout, - connectTimeout, - bodyTimeout, - idleTimeout, - keepAlive, - keepAliveTimeout, - maxKeepAliveTimeout, - keepAliveMaxTimeout, - keepAliveTimeoutThreshold, - socketPath, - pipelining, - tls, - strictContentLength, - maxCachedSessions, - maxRedirections, - connect, - maxRequestsPerClient, - localAddress, - maxResponseSize, - autoSelectFamily, - autoSelectFamilyAttemptTimeout, - // h2 - allowH2, - maxConcurrentStreams - } = {}) { - super() - - if (keepAlive !== undefined) { - throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead') - } - - if (socketTimeout !== undefined) { - throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead') - } - - if (requestTimeout !== undefined) { - throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead') - } - - if (idleTimeout !== undefined) { - throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead') - } - - if (maxKeepAliveTimeout !== undefined) { - throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead') - } - - if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { - throw new InvalidArgumentError('invalid maxHeaderSize') - } - - if (socketPath != null && typeof socketPath !== 'string') { - throw new InvalidArgumentError('invalid socketPath') - } - - if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { - throw new InvalidArgumentError('invalid connectTimeout') - } - - if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { - throw new InvalidArgumentError('invalid keepAliveTimeout') - } - - if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { - throw new InvalidArgumentError('invalid keepAliveMaxTimeout') - } - - if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { - throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold') - } - - if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { - throw new InvalidArgumentError('headersTimeout must be a positive integer or zero') - } - - if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { - throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero') - } - - if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { - throw new InvalidArgumentError('connect must be a function or an object') - } - - if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { - throw new InvalidArgumentError('maxRedirections must be a positive number') - } - - if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { - throw new InvalidArgumentError('maxRequestsPerClient must be a positive number') - } - - if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) { - throw new InvalidArgumentError('localAddress must be valid string IP address') - } - - if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { - throw new InvalidArgumentError('maxResponseSize must be a positive number') - } - - if ( - autoSelectFamilyAttemptTimeout != null && - (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1) - ) { - throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number') - } - - // h2 - if (allowH2 != null && typeof allowH2 !== 'boolean') { - throw new InvalidArgumentError('allowH2 must be a valid boolean value') - } - - if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) { - throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0') - } - - if (typeof connect !== 'function') { - connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), - ...connect - }) - } - - this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) - ? interceptors.Client - : [createRedirectInterceptor({ maxRedirections })] - this[kUrl] = util.parseOrigin(url) - this[kConnector] = connect - this[kSocket] = null - this[kPipelining] = pipelining != null ? pipelining : 1 - this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize - this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout - this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout - this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold - this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout] - this[kServerName] = null - this[kLocalAddress] = localAddress != null ? localAddress : null - this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming - this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming - this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n` - this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3 - this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3 - this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength - this[kMaxRedirections] = maxRedirections - this[kMaxRequests] = maxRequestsPerClient - this[kClosedResolve] = null - this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1 - this[kHTTPConnVersion] = 'h1' - - // HTTP/2 - this[kHTTP2Session] = null - this[kHTTP2SessionState] = !allowH2 - ? null - : { - // streams: null, // Fixed queue of streams - For future support of `push` - openStreams: 0, // Keep track of them to decide wether or not unref the session - maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server - } - this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}` - - // kQueue is built up of 3 sections separated by - // the kRunningIdx and kPendingIdx indices. - // | complete | running | pending | - // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length - // kRunningIdx points to the first running element. - // kPendingIdx points to the first pending element. - // This implements a fast queue with an amortized - // time of O(1). - - this[kQueue] = [] - this[kRunningIdx] = 0 - this[kPendingIdx] = 0 - } - - get pipelining () { - return this[kPipelining] - } - - set pipelining (value) { - this[kPipelining] = value - resume(this, true) - } - - get [kPending] () { - return this[kQueue].length - this[kPendingIdx] - } - - get [kRunning] () { - return this[kPendingIdx] - this[kRunningIdx] - } - - get [kSize] () { - return this[kQueue].length - this[kRunningIdx] - } - - get [kConnected] () { - return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed - } - - get [kBusy] () { - const socket = this[kSocket] - return ( - (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) || - (this[kSize] >= (this[kPipelining] || 1)) || - this[kPending] > 0 - ) - } - - /* istanbul ignore: only used for test */ - [kConnect] (cb) { - connect(this) - this.once('connect', cb) - } - - [kDispatch] (opts, handler) { - const origin = opts.origin || this[kUrl].origin - - const request = this[kHTTPConnVersion] === 'h2' - ? Request[kHTTP2BuildRequest](origin, opts, handler) - : Request[kHTTP1BuildRequest](origin, opts, handler) - - this[kQueue].push(request) - if (this[kResuming]) { - // Do nothing. - } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { - // Wait a tick in case stream/iterator is ended in the same tick. - this[kResuming] = 1 - process.nextTick(resume, this) - } else { - resume(this, true) - } - - if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { - this[kNeedDrain] = 2 - } - - return this[kNeedDrain] < 2 - } - - async [kClose] () { - // TODO: for H2 we need to gracefully flush the remaining enqueued - // request and close each stream. - return new Promise((resolve) => { - if (!this[kSize]) { - resolve(null) - } else { - this[kClosedResolve] = resolve - } - }) - } - - async [kDestroy] (err) { - return new Promise((resolve) => { - const requests = this[kQueue].splice(this[kPendingIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(this, request, err) - } - - const callback = () => { - if (this[kClosedResolve]) { - // TODO (fix): Should we error here with ClientDestroyedError? - this[kClosedResolve]() - this[kClosedResolve] = null - } - resolve() - } - - if (this[kHTTP2Session] != null) { - util.destroy(this[kHTTP2Session], err) - this[kHTTP2Session] = null - this[kHTTP2SessionState] = null - } - - if (!this[kSocket]) { - queueMicrotask(callback) - } else { - util.destroy(this[kSocket].on('close', callback), err) - } - - resume(this) - }) - } -} - -function onHttp2SessionError (err) { - assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') - - this[kSocket][kError] = err - - onError(this[kClient], err) -} - -function onHttp2FrameError (type, code, id) { - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) - - if (id === 0) { - this[kSocket][kError] = err - onError(this[kClient], err) - } -} - -function onHttp2SessionEnd () { - util.destroy(this, new SocketError('other side closed')) - util.destroy(this[kSocket], new SocketError('other side closed')) -} - -function onHTTP2GoAway (code) { - const client = this[kClient] - const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`) - client[kSocket] = null - client[kHTTP2Session] = null - - if (client.destroyed) { - assert(this[kPending] === 0) - - // Fail entire queue. - const requests = client[kQueue].splice(client[kRunningIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(this, request, err) - } - } else if (client[kRunning] > 0) { - // Fail head of pipeline. - const request = client[kQueue][client[kRunningIdx]] - client[kQueue][client[kRunningIdx]++] = null - - errorRequest(client, request, err) - } - - client[kPendingIdx] = client[kRunningIdx] - - assert(client[kRunning] === 0) - - client.emit('disconnect', - client[kUrl], - [client], - err - ) - - resume(client) -} - -const constants = __nccwpck_require__(5658) -const createRedirectInterceptor = __nccwpck_require__(3537) -const EMPTY_BUF = Buffer.alloc(0) - -async function lazyllhttp () { - const llhttpWasmData = process.env.JEST_WORKER_ID ? __nccwpck_require__(3008) : undefined - - let mod - try { - mod = await WebAssembly.compile(Buffer.from(__nccwpck_require__(9240), 'base64')) - } catch (e) { - /* istanbul ignore next */ - - // We could check if the error was caused by the simd option not - // being enabled, but the occurring of this other error - // * https://github.com/emscripten-core/emscripten/issues/11495 - // got me to remove that check to avoid breaking Node 12. - mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || __nccwpck_require__(3008), 'base64')) - } - - return await WebAssembly.instantiate(mod, { - env: { - - - wasm_on_url: (p, at, len) => { - /* istanbul ignore next */ - return 0 - }, - wasm_on_status: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_message_begin: (p) => { - assert.strictEqual(currentParser.ptr, p) - return currentParser.onMessageBegin() || 0 - }, - wasm_on_header_field: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_header_value: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { - assert.strictEqual(currentParser.ptr, p) - return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0 - }, - wasm_on_body: (p, at, len) => { - assert.strictEqual(currentParser.ptr, p) - const start = at - currentBufferPtr + currentBufferRef.byteOffset - return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 - }, - wasm_on_message_complete: (p) => { - assert.strictEqual(currentParser.ptr, p) - return currentParser.onMessageComplete() || 0 - } - - - } - }) -} - -let llhttpInstance = null -let llhttpPromise = lazyllhttp() -llhttpPromise.catch() - -let currentParser = null -let currentBufferRef = null -let currentBufferSize = 0 -let currentBufferPtr = null - -const TIMEOUT_HEADERS = 1 -const TIMEOUT_BODY = 2 -const TIMEOUT_IDLE = 3 - -class Parser { - constructor (client, socket, { exports }) { - assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0) - - this.llhttp = exports - this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE) - this.client = client - this.socket = socket - this.timeout = null - this.timeoutValue = null - this.timeoutType = null - this.statusCode = null - this.statusText = '' - this.upgrade = false - this.headers = [] - this.headersSize = 0 - this.headersMaxSize = client[kMaxHeadersSize] - this.shouldKeepAlive = false - this.paused = false - this.resume = this.resume.bind(this) - - this.bytesRead = 0 - - this.keepAlive = '' - this.contentLength = '' - this.connection = '' - this.maxResponseSize = client[kMaxResponseSize] - } - - setTimeout (value, type) { - this.timeoutType = type - if (value !== this.timeoutValue) { - timers.clearTimeout(this.timeout) - if (value) { - this.timeout = timers.setTimeout(onParserTimeout, value, this) - // istanbul ignore else: only for jest - if (this.timeout.unref) { - this.timeout.unref() - } - } else { - this.timeout = null - } - this.timeoutValue = value - } else if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() - } - } - } - - resume () { - if (this.socket.destroyed || !this.paused) { - return - } - - assert(this.ptr != null) - assert(currentParser == null) - - this.llhttp.llhttp_resume(this.ptr) - - assert(this.timeoutType === TIMEOUT_BODY) - if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() - } - } - - this.paused = false - this.execute(this.socket.read() || EMPTY_BUF) // Flush parser. - this.readMore() - } - - readMore () { - while (!this.paused && this.ptr) { - const chunk = this.socket.read() - if (chunk === null) { - break - } - this.execute(chunk) - } - } - - execute (data) { - assert(this.ptr != null) - assert(currentParser == null) - assert(!this.paused) - - const { socket, llhttp } = this - - if (data.length > currentBufferSize) { - if (currentBufferPtr) { - llhttp.free(currentBufferPtr) - } - currentBufferSize = Math.ceil(data.length / 4096) * 4096 - currentBufferPtr = llhttp.malloc(currentBufferSize) - } - - new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data) - - // Call `execute` on the wasm parser. - // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data, - // and finally the length of bytes to parse. - // The return value is an error code or `constants.ERROR.OK`. - try { - let ret - - try { - currentBufferRef = data - currentParser = this - ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length) - - } catch (err) { - /* istanbul ignore next: difficult to make a test case for */ - throw err - } finally { - currentParser = null - currentBufferRef = null - } - - const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr - - if (ret === constants.ERROR.PAUSED_UPGRADE) { - this.onUpgrade(data.slice(offset)) - } else if (ret === constants.ERROR.PAUSED) { - this.paused = true - socket.unshift(data.slice(offset)) - } else if (ret !== constants.ERROR.OK) { - const ptr = llhttp.llhttp_get_error_reason(this.ptr) - let message = '' - /* istanbul ignore else: difficult to make a test case for */ - if (ptr) { - const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0) - message = - 'Response does not match the HTTP/1.1 protocol (' + - Buffer.from(llhttp.memory.buffer, ptr, len).toString() + - ')' - } - throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)) - } - } catch (err) { - util.destroy(socket, err) - } - } - - destroy () { - assert(this.ptr != null) - assert(currentParser == null) - - this.llhttp.llhttp_free(this.ptr) - this.ptr = null - - timers.clearTimeout(this.timeout) - this.timeout = null - this.timeoutValue = null - this.timeoutType = null - - this.paused = false - } - - onStatus (buf) { - this.statusText = buf.toString() - } - - onMessageBegin () { - const { socket, client } = this - - /* istanbul ignore next: difficult to make a test case for */ - if (socket.destroyed) { - return -1 - } - - const request = client[kQueue][client[kRunningIdx]] - if (!request) { - return -1 - } - } - - onHeaderField (buf) { - const len = this.headers.length - - if ((len & 1) === 0) { - this.headers.push(buf) - } else { - this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) - } - - this.trackHeader(buf.length) - } - - onHeaderValue (buf) { - let len = this.headers.length - - if ((len & 1) === 1) { - this.headers.push(buf) - len += 1 - } else { - this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) - } - - const key = this.headers[len - 2] - if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') { - this.keepAlive += buf.toString() - } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') { - this.connection += buf.toString() - } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') { - this.contentLength += buf.toString() - } - - this.trackHeader(buf.length) - } - - trackHeader (len) { - this.headersSize += len - if (this.headersSize >= this.headersMaxSize) { - util.destroy(this.socket, new HeadersOverflowError()) - } - } - - onUpgrade (head) { - const { upgrade, client, socket, headers, statusCode } = this - - assert(upgrade) - - const request = client[kQueue][client[kRunningIdx]] - assert(request) - - assert(!socket.destroyed) - assert(socket === client[kSocket]) - assert(!this.paused) - assert(request.upgrade || request.method === 'CONNECT') - - this.statusCode = null - this.statusText = '' - this.shouldKeepAlive = null - - assert(this.headers.length % 2 === 0) - this.headers = [] - this.headersSize = 0 - - socket.unshift(head) - - socket[kParser].destroy() - socket[kParser] = null - - socket[kClient] = null - socket[kError] = null - socket - .removeListener('error', onSocketError) - .removeListener('readable', onSocketReadable) - .removeListener('end', onSocketEnd) - .removeListener('close', onSocketClose) - - client[kSocket] = null - client[kQueue][client[kRunningIdx]++] = null - client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade')) - - try { - request.onUpgrade(statusCode, headers, socket) - } catch (err) { - util.destroy(socket, err) - } - - resume(client) - } - - onHeadersComplete (statusCode, upgrade, shouldKeepAlive) { - const { client, socket, headers, statusText } = this - - /* istanbul ignore next: difficult to make a test case for */ - if (socket.destroyed) { - return -1 - } - - const request = client[kQueue][client[kRunningIdx]] - - /* istanbul ignore next: difficult to make a test case for */ - if (!request) { - return -1 - } - - assert(!this.upgrade) - assert(this.statusCode < 200) - - if (statusCode === 100) { - util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket))) - return -1 - } - - /* this can only happen if server is misbehaving */ - if (upgrade && !request.upgrade) { - util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket))) - return -1 - } - - assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS) - - this.statusCode = statusCode - this.shouldKeepAlive = ( - shouldKeepAlive || - // Override llhttp value which does not allow keepAlive for HEAD. - (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive') - ) - - if (this.statusCode >= 200) { - const bodyTimeout = request.bodyTimeout != null - ? request.bodyTimeout - : client[kBodyTimeout] - this.setTimeout(bodyTimeout, TIMEOUT_BODY) - } else if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() - } - } - - if (request.method === 'CONNECT') { - assert(client[kRunning] === 1) - this.upgrade = true - return 2 - } - - if (upgrade) { - assert(client[kRunning] === 1) - this.upgrade = true - return 2 - } - - assert(this.headers.length % 2 === 0) - this.headers = [] - this.headersSize = 0 - - if (this.shouldKeepAlive && client[kPipelining]) { - const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null - - if (keepAliveTimeout != null) { - const timeout = Math.min( - keepAliveTimeout - client[kKeepAliveTimeoutThreshold], - client[kKeepAliveMaxTimeout] - ) - if (timeout <= 0) { - socket[kReset] = true - } else { - client[kKeepAliveTimeoutValue] = timeout - } - } else { - client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout] - } - } else { - // Stop more requests from being dispatched. - socket[kReset] = true - } - - const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false - - if (request.aborted) { - return -1 - } - - if (request.method === 'HEAD') { - return 1 - } - - if (statusCode < 200) { - return 1 - } - - if (socket[kBlocking]) { - socket[kBlocking] = false - resume(client) - } - - return pause ? constants.ERROR.PAUSED : 0 - } - - onBody (buf) { - const { client, socket, statusCode, maxResponseSize } = this - - if (socket.destroyed) { - return -1 - } - - const request = client[kQueue][client[kRunningIdx]] - assert(request) - - assert.strictEqual(this.timeoutType, TIMEOUT_BODY) - if (this.timeout) { - // istanbul ignore else: only for jest - if (this.timeout.refresh) { - this.timeout.refresh() - } - } - - assert(statusCode >= 200) - - if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { - util.destroy(socket, new ResponseExceededMaxSizeError()) - return -1 - } - - this.bytesRead += buf.length - - if (request.onData(buf) === false) { - return constants.ERROR.PAUSED - } - } - - onMessageComplete () { - const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this - - if (socket.destroyed && (!statusCode || shouldKeepAlive)) { - return -1 - } - - if (upgrade) { - return - } - - const request = client[kQueue][client[kRunningIdx]] - assert(request) - - assert(statusCode >= 100) - - this.statusCode = null - this.statusText = '' - this.bytesRead = 0 - this.contentLength = '' - this.keepAlive = '' - this.connection = '' - - assert(this.headers.length % 2 === 0) - this.headers = [] - this.headersSize = 0 - - if (statusCode < 200) { - return - } - - /* istanbul ignore next: should be handled by llhttp? */ - if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) { - util.destroy(socket, new ResponseContentLengthMismatchError()) - return -1 - } - - request.onComplete(headers) - - client[kQueue][client[kRunningIdx]++] = null - - if (socket[kWriting]) { - assert.strictEqual(client[kRunning], 0) - // Response completed before request. - util.destroy(socket, new InformationalError('reset')) - return constants.ERROR.PAUSED - } else if (!shouldKeepAlive) { - util.destroy(socket, new InformationalError('reset')) - return constants.ERROR.PAUSED - } else if (socket[kReset] && client[kRunning] === 0) { - // Destroy socket once all requests have completed. - // The request at the tail of the pipeline is the one - // that requested reset and no further requests should - // have been queued since then. - util.destroy(socket, new InformationalError('reset')) - return constants.ERROR.PAUSED - } else if (client[kPipelining] === 1) { - // We must wait a full event loop cycle to reuse this socket to make sure - // that non-spec compliant servers are not closing the connection even if they - // said they won't. - setImmediate(resume, client) - } else { - resume(client) - } - } -} - -function onParserTimeout (parser) { - const { socket, timeoutType, client } = parser - - /* istanbul ignore else */ - if (timeoutType === TIMEOUT_HEADERS) { - if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { - assert(!parser.paused, 'cannot be paused while waiting for headers') - util.destroy(socket, new HeadersTimeoutError()) - } - } else if (timeoutType === TIMEOUT_BODY) { - if (!parser.paused) { - util.destroy(socket, new BodyTimeoutError()) - } - } else if (timeoutType === TIMEOUT_IDLE) { - assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]) - util.destroy(socket, new InformationalError('socket idle timeout')) - } -} - -function onSocketReadable () { - const { [kParser]: parser } = this - if (parser) { - parser.readMore() - } -} - -function onSocketError (err) { - const { [kClient]: client, [kParser]: parser } = this - - assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') - - if (client[kHTTPConnVersion] !== 'h2') { - // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded - // to the user. - if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) { - // We treat all incoming data so for as a valid response. - parser.onMessageComplete() - return - } - } - - this[kError] = err - - onError(this[kClient], err) -} - -function onError (client, err) { - if ( - client[kRunning] === 0 && - err.code !== 'UND_ERR_INFO' && - err.code !== 'UND_ERR_SOCKET' - ) { - // Error is not caused by running request and not a recoverable - // socket error. - - assert(client[kPendingIdx] === client[kRunningIdx]) - - const requests = client[kQueue].splice(client[kRunningIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(client, request, err) - } - assert(client[kSize] === 0) - } -} - -function onSocketEnd () { - const { [kParser]: parser, [kClient]: client } = this - - if (client[kHTTPConnVersion] !== 'h2') { - if (parser.statusCode && !parser.shouldKeepAlive) { - // We treat all incoming data so far as a valid response. - parser.onMessageComplete() - return - } - } - - util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))) -} - -function onSocketClose () { - const { [kClient]: client, [kParser]: parser } = this - - if (client[kHTTPConnVersion] === 'h1' && parser) { - if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { - // We treat all incoming data so far as a valid response. - parser.onMessageComplete() - } - - this[kParser].destroy() - this[kParser] = null - } - - const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)) - - client[kSocket] = null - - if (client.destroyed) { - assert(client[kPending] === 0) - - // Fail entire queue. - const requests = client[kQueue].splice(client[kRunningIdx]) - for (let i = 0; i < requests.length; i++) { - const request = requests[i] - errorRequest(client, request, err) - } - } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') { - // Fail head of pipeline. - const request = client[kQueue][client[kRunningIdx]] - client[kQueue][client[kRunningIdx]++] = null - - errorRequest(client, request, err) - } - - client[kPendingIdx] = client[kRunningIdx] - - assert(client[kRunning] === 0) - - client.emit('disconnect', client[kUrl], [client], err) - - resume(client) -} - -async function connect (client) { - assert(!client[kConnecting]) - assert(!client[kSocket]) - - let { host, hostname, protocol, port } = client[kUrl] - - // Resolve ipv6 - if (hostname[0] === '[') { - const idx = hostname.indexOf(']') - - assert(idx !== -1) - const ip = hostname.substring(1, idx) - - assert(net.isIP(ip)) - hostname = ip - } - - client[kConnecting] = true - - if (channels.beforeConnect.hasSubscribers) { - channels.beforeConnect.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector] - }) - } - - try { - const socket = await new Promise((resolve, reject) => { - client[kConnector]({ - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, (err, socket) => { - if (err) { - reject(err) - } else { - resolve(socket) - } - }) - }) - - if (client.destroyed) { - util.destroy(socket.on('error', () => {}), new ClientDestroyedError()) - return - } - - client[kConnecting] = false - - assert(socket) - - const isH2 = socket.alpnProtocol === 'h2' - if (isH2) { - if (!h2ExperimentalWarned) { - h2ExperimentalWarned = true - process.emitWarning('H2 support is experimental, expect them to change at any time.', { - code: 'UNDICI-H2' - }) - } - - const session = http2.connect(client[kUrl], { - createConnection: () => socket, - peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams - }) - - client[kHTTPConnVersion] = 'h2' - session[kClient] = client - session[kSocket] = socket - session.on('error', onHttp2SessionError) - session.on('frameError', onHttp2FrameError) - session.on('end', onHttp2SessionEnd) - session.on('goaway', onHTTP2GoAway) - session.on('close', onSocketClose) - session.unref() - - client[kHTTP2Session] = session - socket[kHTTP2Session] = session - } else { - if (!llhttpInstance) { - llhttpInstance = await llhttpPromise - llhttpPromise = null - } - - socket[kNoRef] = false - socket[kWriting] = false - socket[kReset] = false - socket[kBlocking] = false - socket[kParser] = new Parser(client, socket, llhttpInstance) - } - - socket[kCounter] = 0 - socket[kMaxRequests] = client[kMaxRequests] - socket[kClient] = client - socket[kError] = null - - socket - .on('error', onSocketError) - .on('readable', onSocketReadable) - .on('end', onSocketEnd) - .on('close', onSocketClose) - - client[kSocket] = socket - - if (channels.connected.hasSubscribers) { - channels.connected.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - socket - }) - } - client.emit('connect', client[kUrl], [client]) - } catch (err) { - if (client.destroyed) { - return - } - - client[kConnecting] = false - - if (channels.connectError.hasSubscribers) { - channels.connectError.publish({ - connectParams: { - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - error: err - }) - } - - if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { - assert(client[kRunning] === 0) - while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { - const request = client[kQueue][client[kPendingIdx]++] - errorRequest(client, request, err) - } - } else { - onError(client, err) - } - - client.emit('connectionError', client[kUrl], [client], err) - } - - resume(client) -} - -function emitDrain (client) { - client[kNeedDrain] = 0 - client.emit('drain', client[kUrl], [client]) -} - -function resume (client, sync) { - if (client[kResuming] === 2) { - return - } - - client[kResuming] = 2 - - _resume(client, sync) - client[kResuming] = 0 - - if (client[kRunningIdx] > 256) { - client[kQueue].splice(0, client[kRunningIdx]) - client[kPendingIdx] -= client[kRunningIdx] - client[kRunningIdx] = 0 - } -} - -function _resume (client, sync) { - while (true) { - if (client.destroyed) { - assert(client[kPending] === 0) - return - } - - if (client[kClosedResolve] && !client[kSize]) { - client[kClosedResolve]() - client[kClosedResolve] = null - return - } - - const socket = client[kSocket] - - if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') { - if (client[kSize] === 0) { - if (!socket[kNoRef] && socket.unref) { - socket.unref() - socket[kNoRef] = true - } - } else if (socket[kNoRef] && socket.ref) { - socket.ref() - socket[kNoRef] = false - } - - if (client[kSize] === 0) { - if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { - socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE) - } - } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { - if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { - const request = client[kQueue][client[kRunningIdx]] - const headersTimeout = request.headersTimeout != null - ? request.headersTimeout - : client[kHeadersTimeout] - socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS) - } - } - } - - if (client[kBusy]) { - client[kNeedDrain] = 2 - } else if (client[kNeedDrain] === 2) { - if (sync) { - client[kNeedDrain] = 1 - process.nextTick(emitDrain, client) - } else { - emitDrain(client) - } - continue - } - - if (client[kPending] === 0) { - return - } - - if (client[kRunning] >= (client[kPipelining] || 1)) { - return - } - - const request = client[kQueue][client[kPendingIdx]] - - if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) { - if (client[kRunning] > 0) { - return - } - - client[kServerName] = request.servername - - if (socket && socket.servername !== request.servername) { - util.destroy(socket, new InformationalError('servername changed')) - return - } - } - - if (client[kConnecting]) { - return - } - - if (!socket && !client[kHTTP2Session]) { - connect(client) - return - } - - if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { - return - } - - if (client[kRunning] > 0 && !request.idempotent) { - // Non-idempotent request cannot be retried. - // Ensure that no other requests are inflight and - // could cause failure. - return - } - - if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) { - // Don't dispatch an upgrade until all preceding requests have completed. - // A misbehaving server might upgrade the connection before all pipelined - // request has completed. - return - } - - if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && - (util.isStream(request.body) || util.isAsyncIterable(request.body))) { - // Request with stream or iterator body can error while other requests - // are inflight and indirectly error those as well. - // Ensure this doesn't happen by waiting for inflight - // to complete before dispatching. - - // Request with stream or iterator body cannot be retried. - // Ensure that no other requests are inflight and - // could cause failure. - return - } - - if (!request.aborted && write(client, request)) { - client[kPendingIdx]++ - } else { - client[kQueue].splice(client[kPendingIdx], 1) - } - } -} - -// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2 -function shouldSendContentLength (method) { - return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT' -} - -function write (client, request) { - if (client[kHTTPConnVersion] === 'h2') { - writeH2(client, client[kHTTP2Session], request) - return - } - - const { body, method, path, host, upgrade, headers, blocking, reset } = request - - // https://tools.ietf.org/html/rfc7231#section-4.3.1 - // https://tools.ietf.org/html/rfc7231#section-4.3.2 - // https://tools.ietf.org/html/rfc7231#section-4.3.5 - - // Sending a payload body on a request that does not - // expect it can cause undefined behavior on some - // servers and corrupt connection state. Do not - // re-use the connection for further requests. - - const expectsPayload = ( - method === 'PUT' || - method === 'POST' || - method === 'PATCH' - ) - - if (body && typeof body.read === 'function') { - // Try to read EOF in order to get length. - body.read(0) - } - - const bodyLength = util.bodyLength(body) - - let contentLength = bodyLength - - if (contentLength === null) { - contentLength = request.contentLength - } - - if (contentLength === 0 && !expectsPayload) { - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - // A user agent SHOULD NOT send a Content-Length header field when - // the request message does not contain a payload body and the method - // semantics do not anticipate such a body. - - contentLength = null - } - - // https://github.com/nodejs/undici/issues/2046 - // A user agent may send a Content-Length header with 0 value, this should be allowed. - if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()) - return false - } - - process.emitWarning(new RequestContentLengthMismatchError()) - } - - const socket = client[kSocket] - - try { - request.onConnect((err) => { - if (request.aborted || request.completed) { - return - } - - errorRequest(client, request, err || new RequestAbortedError()) - - util.destroy(socket, new InformationalError('aborted')) - }) - } catch (err) { - errorRequest(client, request, err) - } - - if (request.aborted) { - return false - } - - if (method === 'HEAD') { - // https://github.com/mcollina/undici/issues/258 - // Close after a HEAD request to interop with misbehaving servers - // that may send a body in the response. - - socket[kReset] = true - } - - if (upgrade || method === 'CONNECT') { - // On CONNECT or upgrade, block pipeline from dispatching further - // requests on this connection. - - socket[kReset] = true - } - - if (reset != null) { - socket[kReset] = reset - } - - if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { - socket[kReset] = true - } - - if (blocking) { - socket[kBlocking] = true - } - - let header = `${method} ${path} HTTP/1.1\r\n` - - if (typeof host === 'string') { - header += `host: ${host}\r\n` - } else { - header += client[kHostHeader] - } - - if (upgrade) { - header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n` - } else if (client[kPipelining] && !socket[kReset]) { - header += 'connection: keep-alive\r\n' - } else { - header += 'connection: close\r\n' - } - - if (headers) { - header += headers - } - - if (channels.sendHeaders.hasSubscribers) { - channels.sendHeaders.publish({ request, headers: header, socket }) - } - - /* istanbul ignore else: assertion */ - if (!body || bodyLength === 0) { - if (contentLength === 0) { - socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') - } else { - assert(contentLength === null, 'no body must not have content length') - socket.write(`${header}\r\n`, 'latin1') - } - request.onRequestSent() - } else if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length') - - socket.cork() - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') - socket.write(body) - socket.uncork() - request.onBodySent(body) - request.onRequestSent() - if (!expectsPayload) { - socket[kReset] = true - } - } else if (util.isBlobLike(body)) { - if (typeof body.stream === 'function') { - writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload }) - } else { - writeBlob({ body, client, request, socket, contentLength, header, expectsPayload }) - } - } else if (util.isStream(body)) { - writeStream({ body, client, request, socket, contentLength, header, expectsPayload }) - } else if (util.isIterable(body)) { - writeIterable({ body, client, request, socket, contentLength, header, expectsPayload }) - } else { - assert(false) - } - - return true -} - -function writeH2 (client, session, request) { - const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request - - let headers - if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim()) - else headers = reqHeaders - - if (upgrade) { - errorRequest(client, request, new Error('Upgrade not supported for H2')) - return false - } - - try { - // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event? - request.onConnect((err) => { - if (request.aborted || request.completed) { - return - } - - errorRequest(client, request, err || new RequestAbortedError()) - }) - } catch (err) { - errorRequest(client, request, err) - } - - if (request.aborted) { - return false - } - - /** @type {import('node:http2').ClientHttp2Stream} */ - let stream - const h2State = client[kHTTP2SessionState] - - headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost] - headers[HTTP2_HEADER_METHOD] = method - - if (method === 'CONNECT') { - session.ref() - // we are already connected, streams are pending, first request - // will create a new stream. We trigger a request to create the stream and wait until - // `ready` event is triggered - // We disabled endStream to allow the user to write to the stream - stream = session.request(headers, { endStream: false, signal }) - - if (stream.id && !stream.pending) { - request.onUpgrade(null, null, stream) - ++h2State.openStreams - } else { - stream.once('ready', () => { - request.onUpgrade(null, null, stream) - ++h2State.openStreams - }) - } - - stream.once('close', () => { - h2State.openStreams -= 1 - // TODO(HTTP/2): unref only if current streams count is 0 - if (h2State.openStreams === 0) session.unref() - }) - - return true - } - - // https://tools.ietf.org/html/rfc7540#section-8.3 - // :path and :scheme headers must be omited when sending CONNECT - - headers[HTTP2_HEADER_PATH] = path - headers[HTTP2_HEADER_SCHEME] = 'https' - - // https://tools.ietf.org/html/rfc7231#section-4.3.1 - // https://tools.ietf.org/html/rfc7231#section-4.3.2 - // https://tools.ietf.org/html/rfc7231#section-4.3.5 - - // Sending a payload body on a request that does not - // expect it can cause undefined behavior on some - // servers and corrupt connection state. Do not - // re-use the connection for further requests. - - const expectsPayload = ( - method === 'PUT' || - method === 'POST' || - method === 'PATCH' - ) - - if (body && typeof body.read === 'function') { - // Try to read EOF in order to get length. - body.read(0) - } - - let contentLength = util.bodyLength(body) - - if (contentLength == null) { - contentLength = request.contentLength - } - - if (contentLength === 0 || !expectsPayload) { - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - // A user agent SHOULD NOT send a Content-Length header field when - // the request message does not contain a payload body and the method - // semantics do not anticipate such a body. - - contentLength = null - } - - // https://github.com/nodejs/undici/issues/2046 - // A user agent may send a Content-Length header with 0 value, this should be allowed. - if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - errorRequest(client, request, new RequestContentLengthMismatchError()) - return false - } - - process.emitWarning(new RequestContentLengthMismatchError()) - } - - if (contentLength != null) { - assert(body, 'no body must not have content length') - headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}` - } - - session.ref() - - const shouldEndStream = method === 'GET' || method === 'HEAD' - if (expectContinue) { - headers[HTTP2_HEADER_EXPECT] = '100-continue' - stream = session.request(headers, { endStream: shouldEndStream, signal }) - - stream.once('continue', writeBodyH2) - } else { - stream = session.request(headers, { - endStream: shouldEndStream, - signal - }) - writeBodyH2() - } - - // Increment counter as we have new several streams open - ++h2State.openStreams - - stream.once('response', headers => { - const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers - - if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) { - stream.pause() - } - }) - - stream.once('end', () => { - request.onComplete([]) - }) - - stream.on('data', (chunk) => { - if (request.onData(chunk) === false) { - stream.pause() - } - }) - - stream.once('close', () => { - h2State.openStreams -= 1 - // TODO(HTTP/2): unref only if current streams count is 0 - if (h2State.openStreams === 0) { - session.unref() - } - }) - - stream.once('error', function (err) { - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1 - util.destroy(stream, err) - } - }) - - stream.once('frameError', (type, code) => { - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) - errorRequest(client, request, err) - - if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { - h2State.streams -= 1 - util.destroy(stream, err) - } - }) - - // stream.on('aborted', () => { - // // TODO(HTTP/2): Support aborted - // }) - - // stream.on('timeout', () => { - // // TODO(HTTP/2): Support timeout - // }) - - // stream.on('push', headers => { - // // TODO(HTTP/2): Suppor push - // }) - - // stream.on('trailers', headers => { - // // TODO(HTTP/2): Support trailers - // }) - - return true - - function writeBodyH2 () { - /* istanbul ignore else: assertion */ - if (!body) { - request.onRequestSent() - } else if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, 'buffer body must have content length') - stream.cork() - stream.write(body) - stream.uncork() - stream.end() - request.onBodySent(body) - request.onRequestSent() - } else if (util.isBlobLike(body)) { - if (typeof body.stream === 'function') { - writeIterable({ - client, - request, - contentLength, - h2stream: stream, - expectsPayload, - body: body.stream(), - socket: client[kSocket], - header: '' - }) - } else { - writeBlob({ - body, - client, - request, - contentLength, - expectsPayload, - h2stream: stream, - header: '', - socket: client[kSocket] - }) - } - } else if (util.isStream(body)) { - writeStream({ - body, - client, - request, - contentLength, - expectsPayload, - socket: client[kSocket], - h2stream: stream, - header: '' - }) - } else if (util.isIterable(body)) { - writeIterable({ - body, - client, - request, - contentLength, - expectsPayload, - header: '', - h2stream: stream, - socket: client[kSocket] - }) - } else { - assert(false) - } - } -} - -function writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined') - - if (client[kHTTPConnVersion] === 'h2') { - // For HTTP/2, is enough to pipe the stream - const pipe = pipeline( - body, - h2stream, - (err) => { - if (err) { - util.destroy(body, err) - util.destroy(h2stream, err) - } else { - request.onRequestSent() - } - } - ) - - pipe.on('data', onPipeData) - pipe.once('end', () => { - pipe.removeListener('data', onPipeData) - util.destroy(pipe) - }) - - function onPipeData (chunk) { - request.onBodySent(chunk) - } - - return - } - - let finished = false - - const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) - - const onData = function (chunk) { - if (finished) { - return - } - - try { - if (!writer.write(chunk) && this.pause) { - this.pause() - } - } catch (err) { - util.destroy(this, err) - } - } - const onDrain = function () { - if (finished) { - return - } - - if (body.resume) { - body.resume() - } - } - const onAbort = function () { - if (finished) { - return - } - const err = new RequestAbortedError() - queueMicrotask(() => onFinished(err)) - } - const onFinished = function (err) { - if (finished) { - return - } - - finished = true - - assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1)) - - socket - .off('drain', onDrain) - .off('error', onFinished) - - body - .removeListener('data', onData) - .removeListener('end', onFinished) - .removeListener('error', onFinished) - .removeListener('close', onAbort) - - if (!err) { - try { - writer.end() - } catch (er) { - err = er - } - } - - writer.destroy(err) - - if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) { - util.destroy(body, err) - } else { - util.destroy(body) - } - } - - body - .on('data', onData) - .on('end', onFinished) - .on('error', onFinished) - .on('close', onAbort) - - if (body.resume) { - body.resume() - } - - socket - .on('drain', onDrain) - .on('error', onFinished) -} - -async function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength === body.size, 'blob body must have content length') - - const isH2 = client[kHTTPConnVersion] === 'h2' - try { - if (contentLength != null && contentLength !== body.size) { - throw new RequestContentLengthMismatchError() - } - - const buffer = Buffer.from(await body.arrayBuffer()) - - if (isH2) { - h2stream.cork() - h2stream.write(buffer) - h2stream.uncork() - } else { - socket.cork() - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') - socket.write(buffer) - socket.uncork() - } - - request.onBodySent(buffer) - request.onRequestSent() - - if (!expectsPayload) { - socket[kReset] = true - } - - resume(client) - } catch (err) { - util.destroy(isH2 ? h2stream : socket, err) - } -} - -async function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { - assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined') - - let callback = null - function onDrain () { - if (callback) { - const cb = callback - callback = null - cb() - } - } - - const waitForDrain = () => new Promise((resolve, reject) => { - assert(callback === null) - - if (socket[kError]) { - reject(socket[kError]) - } else { - callback = resolve - } - }) - - if (client[kHTTPConnVersion] === 'h2') { - h2stream - .on('close', onDrain) - .on('drain', onDrain) - - try { - // It's up to the user to somehow abort the async iterable. - for await (const chunk of body) { - if (socket[kError]) { - throw socket[kError] - } - - const res = h2stream.write(chunk) - request.onBodySent(chunk) - if (!res) { - await waitForDrain() - } - } - } catch (err) { - h2stream.destroy(err) - } finally { - request.onRequestSent() - h2stream.end() - h2stream - .off('close', onDrain) - .off('drain', onDrain) - } - - return - } - - socket - .on('close', onDrain) - .on('drain', onDrain) - - const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) - try { - // It's up to the user to somehow abort the async iterable. - for await (const chunk of body) { - if (socket[kError]) { - throw socket[kError] - } - - if (!writer.write(chunk)) { - await waitForDrain() - } - } - - writer.end() - } catch (err) { - writer.destroy(err) - } finally { - socket - .off('close', onDrain) - .off('drain', onDrain) - } -} - -class AsyncWriter { - constructor ({ socket, request, contentLength, client, expectsPayload, header }) { - this.socket = socket - this.request = request - this.contentLength = contentLength - this.client = client - this.bytesWritten = 0 - this.expectsPayload = expectsPayload - this.header = header - - socket[kWriting] = true - } - - write (chunk) { - const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this - - if (socket[kError]) { - throw socket[kError] - } - - if (socket.destroyed) { - return false - } - - const len = Buffer.byteLength(chunk) - if (!len) { - return true - } - - // We should defer writing chunks. - if (contentLength !== null && bytesWritten + len > contentLength) { - if (client[kStrictContentLength]) { - throw new RequestContentLengthMismatchError() - } - - process.emitWarning(new RequestContentLengthMismatchError()) - } - - socket.cork() - - if (bytesWritten === 0) { - if (!expectsPayload) { - socket[kReset] = true - } - - if (contentLength === null) { - socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1') - } else { - socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') - } - } - - if (contentLength === null) { - socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1') - } - - this.bytesWritten += len - - const ret = socket.write(chunk) - - socket.uncork() - - request.onBodySent(chunk) - - if (!ret) { - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - // istanbul ignore else: only for jest - if (socket[kParser].timeout.refresh) { - socket[kParser].timeout.refresh() - } - } - } - - return ret - } - - end () { - const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this - request.onRequestSent() - - socket[kWriting] = false - - if (socket[kError]) { - throw socket[kError] - } - - if (socket.destroyed) { - return - } - - if (bytesWritten === 0) { - if (expectsPayload) { - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - // A user agent SHOULD send a Content-Length in a request message when - // no Transfer-Encoding is sent and the request method defines a meaning - // for an enclosed payload body. - - socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') - } else { - socket.write(`${header}\r\n`, 'latin1') - } - } else if (contentLength === null) { - socket.write('\r\n0\r\n\r\n', 'latin1') - } - - if (contentLength !== null && bytesWritten !== contentLength) { - if (client[kStrictContentLength]) { - throw new RequestContentLengthMismatchError() - } else { - process.emitWarning(new RequestContentLengthMismatchError()) - } - } - - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - // istanbul ignore else: only for jest - if (socket[kParser].timeout.refresh) { - socket[kParser].timeout.refresh() - } - } - - resume(client) - } - - destroy (err) { - const { socket, client } = this - - socket[kWriting] = false - - if (err) { - assert(client[kRunning] <= 1, 'pipeline should only contain this request') - util.destroy(socket, err) - } - } -} - -function errorRequest (client, request, err) { - try { - request.onError(err) - assert(request.aborted) - } catch (err) { - client.emit('error', err) - } -} - -module.exports = Client - - -/***/ }), - -/***/ 7108: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -/* istanbul ignore file: only for Node 12 */ - -const { kConnected, kSize } = __nccwpck_require__(249) - -class CompatWeakRef { - constructor (value) { - this.value = value - } - - deref () { - return this.value[kConnected] === 0 && this.value[kSize] === 0 - ? undefined - : this.value - } -} - -class CompatFinalizer { - constructor (finalizer) { - this.finalizer = finalizer - } - - register (dispatcher, key) { - if (dispatcher.on) { - dispatcher.on('disconnect', () => { - if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { - this.finalizer(key) - } - }) - } - } -} - -module.exports = function () { - // FIXME: remove workaround when the Node bug is fixed - // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 - if (process.env.NODE_V8_COVERAGE) { - return { - WeakRef: CompatWeakRef, - FinalizationRegistry: CompatFinalizer - } - } - return { - WeakRef: global.WeakRef || CompatWeakRef, - FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer - } -} - - -/***/ }), - -/***/ 287: -/***/ ((module) => { - - - -// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size -const maxAttributeValueSize = 1024 - -// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size -const maxNameValuePairSize = 4096 - -module.exports = { - maxAttributeValueSize, - maxNameValuePairSize -} - - -/***/ }), - -/***/ 5902: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { parseSetCookie } = __nccwpck_require__(8077) -const { stringify, getHeadersList } = __nccwpck_require__(8176) -const { webidl } = __nccwpck_require__(7472) -const { Headers } = __nccwpck_require__(6203) - -/** - * @typedef {Object} Cookie - * @property {string} name - * @property {string} value - * @property {Date|number|undefined} expires - * @property {number|undefined} maxAge - * @property {string|undefined} domain - * @property {string|undefined} path - * @property {boolean|undefined} secure - * @property {boolean|undefined} httpOnly - * @property {'Strict'|'Lax'|'None'} sameSite - * @property {string[]} unparsed - */ - -/** - * @param {Headers} headers - * @returns {Record} - */ -function getCookies (headers) { - webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' }) - - webidl.brandCheck(headers, Headers, { strict: false }) - - const cookie = headers.get('cookie') - const out = {} - - if (!cookie) { - return out - } - - for (const piece of cookie.split(';')) { - const [name, ...value] = piece.split('=') - - out[name.trim()] = value.join('=') - } - - return out -} - -/** - * @param {Headers} headers - * @param {string} name - * @param {{ path?: string, domain?: string }|undefined} attributes - * @returns {void} - */ -function deleteCookie (headers, name, attributes) { - webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' }) - - webidl.brandCheck(headers, Headers, { strict: false }) - - name = webidl.converters.DOMString(name) - attributes = webidl.converters.DeleteCookieAttributes(attributes) - - // Matches behavior of - // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278 - setCookie(headers, { - name, - value: '', - expires: new Date(0), - ...attributes - }) -} - -/** - * @param {Headers} headers - * @returns {Cookie[]} - */ -function getSetCookies (headers) { - webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' }) - - webidl.brandCheck(headers, Headers, { strict: false }) - - const cookies = getHeadersList(headers).cookies - - if (!cookies) { - return [] - } - - // In older versions of undici, cookies is a list of name:value. - return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair)) -} - -/** - * @param {Headers} headers - * @param {Cookie} cookie - * @returns {void} - */ -function setCookie (headers, cookie) { - webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' }) - - webidl.brandCheck(headers, Headers, { strict: false }) - - cookie = webidl.converters.Cookie(cookie) - - const str = stringify(cookie) - - if (str) { - headers.append('Set-Cookie', stringify(cookie)) - } -} - -webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - } -]) - -webidl.converters.Cookie = webidl.dictionaryConverter([ - { - converter: webidl.converters.DOMString, - key: 'name' - }, - { - converter: webidl.converters.DOMString, - key: 'value' - }, - { - converter: webidl.nullableConverter((value) => { - if (typeof value === 'number') { - return webidl.converters['unsigned long long'](value) - } - - return new Date(value) - }), - key: 'expires', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters['long long']), - key: 'maxAge', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'domain', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: 'path', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'secure', - defaultValue: null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: 'httpOnly', - defaultValue: null - }, - { - converter: webidl.converters.USVString, - key: 'sameSite', - allowedValues: ['Strict', 'Lax', 'None'] - }, - { - converter: webidl.sequenceConverter(webidl.converters.DOMString), - key: 'unparsed', - defaultValue: [] - } -]) - -module.exports = { - getCookies, - deleteCookie, - getSetCookies, - setCookie -} - - -/***/ }), - -/***/ 8077: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { maxNameValuePairSize, maxAttributeValueSize } = __nccwpck_require__(287) -const { isCTLExcludingHtab } = __nccwpck_require__(8176) -const { collectASequenceOfCodePointsFast } = __nccwpck_require__(5892) -const assert = __nccwpck_require__(2613) - -/** - * @description Parses the field-value attributes of a set-cookie header string. - * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 - * @param {string} header - * @returns if the header is invalid, null will be returned - */ -function parseSetCookie (header) { - // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F - // character (CTL characters excluding HTAB): Abort these steps and - // ignore the set-cookie-string entirely. - if (isCTLExcludingHtab(header)) { - return null - } - - let nameValuePair = '' - let unparsedAttributes = '' - let name = '' - let value = '' - - // 2. If the set-cookie-string contains a %x3B (";") character: - if (header.includes(';')) { - // 1. The name-value-pair string consists of the characters up to, - // but not including, the first %x3B (";"), and the unparsed- - // attributes consist of the remainder of the set-cookie-string - // (including the %x3B (";") in question). - const position = { position: 0 } - - nameValuePair = collectASequenceOfCodePointsFast(';', header, position) - unparsedAttributes = header.slice(position.position) - } else { - // Otherwise: - - // 1. The name-value-pair string consists of all the characters - // contained in the set-cookie-string, and the unparsed- - // attributes is the empty string. - nameValuePair = header - } - - // 3. If the name-value-pair string lacks a %x3D ("=") character, then - // the name string is empty, and the value string is the value of - // name-value-pair. - if (!nameValuePair.includes('=')) { - value = nameValuePair - } else { - // Otherwise, the name string consists of the characters up to, but - // not including, the first %x3D ("=") character, and the (possibly - // empty) value string consists of the characters after the first - // %x3D ("=") character. - const position = { position: 0 } - name = collectASequenceOfCodePointsFast( - '=', - nameValuePair, - position - ) - value = nameValuePair.slice(position.position + 1) - } - - // 4. Remove any leading or trailing WSP characters from the name - // string and the value string. - name = name.trim() - value = value.trim() - - // 5. If the sum of the lengths of the name string and the value string - // is more than 4096 octets, abort these steps and ignore the set- - // cookie-string entirely. - if (name.length + value.length > maxNameValuePairSize) { - return null - } - - // 6. The cookie-name is the name string, and the cookie-value is the - // value string. - return { - name, value, ...parseUnparsedAttributes(unparsedAttributes) - } -} - -/** - * Parses the remaining attributes of a set-cookie header - * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 - * @param {string} unparsedAttributes - * @param {[Object.]={}} cookieAttributeList - */ -function parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) { - // 1. If the unparsed-attributes string is empty, skip the rest of - // these steps. - if (unparsedAttributes.length === 0) { - return cookieAttributeList - } - - // 2. Discard the first character of the unparsed-attributes (which - // will be a %x3B (";") character). - assert(unparsedAttributes[0] === ';') - unparsedAttributes = unparsedAttributes.slice(1) - - let cookieAv = '' - - // 3. If the remaining unparsed-attributes contains a %x3B (";") - // character: - if (unparsedAttributes.includes(';')) { - // 1. Consume the characters of the unparsed-attributes up to, but - // not including, the first %x3B (";") character. - cookieAv = collectASequenceOfCodePointsFast( - ';', - unparsedAttributes, - { position: 0 } - ) - unparsedAttributes = unparsedAttributes.slice(cookieAv.length) - } else { - // Otherwise: - - // 1. Consume the remainder of the unparsed-attributes. - cookieAv = unparsedAttributes - unparsedAttributes = '' - } - - // Let the cookie-av string be the characters consumed in this step. - - let attributeName = '' - let attributeValue = '' - - // 4. If the cookie-av string contains a %x3D ("=") character: - if (cookieAv.includes('=')) { - // 1. The (possibly empty) attribute-name string consists of the - // characters up to, but not including, the first %x3D ("=") - // character, and the (possibly empty) attribute-value string - // consists of the characters after the first %x3D ("=") - // character. - const position = { position: 0 } - - attributeName = collectASequenceOfCodePointsFast( - '=', - cookieAv, - position - ) - attributeValue = cookieAv.slice(position.position + 1) - } else { - // Otherwise: - - // 1. The attribute-name string consists of the entire cookie-av - // string, and the attribute-value string is empty. - attributeName = cookieAv - } - - // 5. Remove any leading or trailing WSP characters from the attribute- - // name string and the attribute-value string. - attributeName = attributeName.trim() - attributeValue = attributeValue.trim() - - // 6. If the attribute-value is longer than 1024 octets, ignore the - // cookie-av string and return to Step 1 of this algorithm. - if (attributeValue.length > maxAttributeValueSize) { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) - } - - // 7. Process the attribute-name and attribute-value according to the - // requirements in the following subsections. (Notice that - // attributes with unrecognized attribute-names are ignored.) - const attributeNameLowercase = attributeName.toLowerCase() - - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1 - // If the attribute-name case-insensitively matches the string - // "Expires", the user agent MUST process the cookie-av as follows. - if (attributeNameLowercase === 'expires') { - // 1. Let the expiry-time be the result of parsing the attribute-value - // as cookie-date (see Section 5.1.1). - const expiryTime = new Date(attributeValue) - - // 2. If the attribute-value failed to parse as a cookie date, ignore - // the cookie-av. - - cookieAttributeList.expires = expiryTime - } else if (attributeNameLowercase === 'max-age') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2 - // If the attribute-name case-insensitively matches the string "Max- - // Age", the user agent MUST process the cookie-av as follows. - - // 1. If the first character of the attribute-value is not a DIGIT or a - // "-" character, ignore the cookie-av. - const charCode = attributeValue.charCodeAt(0) - - if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) - } - - // 2. If the remainder of attribute-value contains a non-DIGIT - // character, ignore the cookie-av. - if (!/^\d+$/.test(attributeValue)) { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) - } - - // 3. Let delta-seconds be the attribute-value converted to an integer. - const deltaSeconds = Number(attributeValue) - - // 4. Let cookie-age-limit be the maximum age of the cookie (which - // SHOULD be 400 days or less, see Section 4.1.2.2). - - // 5. Set delta-seconds to the smaller of its present value and cookie- - // age-limit. - // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs) - - // 6. If delta-seconds is less than or equal to zero (0), let expiry- - // time be the earliest representable date and time. Otherwise, let - // the expiry-time be the current date and time plus delta-seconds - // seconds. - // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds - - // 7. Append an attribute to the cookie-attribute-list with an - // attribute-name of Max-Age and an attribute-value of expiry-time. - cookieAttributeList.maxAge = deltaSeconds - } else if (attributeNameLowercase === 'domain') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3 - // If the attribute-name case-insensitively matches the string "Domain", - // the user agent MUST process the cookie-av as follows. - - // 1. Let cookie-domain be the attribute-value. - let cookieDomain = attributeValue - - // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be - // cookie-domain without its leading %x2E ("."). - if (cookieDomain[0] === '.') { - cookieDomain = cookieDomain.slice(1) - } - - // 3. Convert the cookie-domain to lower case. - cookieDomain = cookieDomain.toLowerCase() - - // 4. Append an attribute to the cookie-attribute-list with an - // attribute-name of Domain and an attribute-value of cookie-domain. - cookieAttributeList.domain = cookieDomain - } else if (attributeNameLowercase === 'path') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4 - // If the attribute-name case-insensitively matches the string "Path", - // the user agent MUST process the cookie-av as follows. - - // 1. If the attribute-value is empty or if the first character of the - // attribute-value is not %x2F ("/"): - let cookiePath = '' - if (attributeValue.length === 0 || attributeValue[0] !== '/') { - // 1. Let cookie-path be the default-path. - cookiePath = '/' - } else { - // Otherwise: - - // 1. Let cookie-path be the attribute-value. - cookiePath = attributeValue - } - - // 2. Append an attribute to the cookie-attribute-list with an - // attribute-name of Path and an attribute-value of cookie-path. - cookieAttributeList.path = cookiePath - } else if (attributeNameLowercase === 'secure') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5 - // If the attribute-name case-insensitively matches the string "Secure", - // the user agent MUST append an attribute to the cookie-attribute-list - // with an attribute-name of Secure and an empty attribute-value. - - cookieAttributeList.secure = true - } else if (attributeNameLowercase === 'httponly') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6 - // If the attribute-name case-insensitively matches the string - // "HttpOnly", the user agent MUST append an attribute to the cookie- - // attribute-list with an attribute-name of HttpOnly and an empty - // attribute-value. - - cookieAttributeList.httpOnly = true - } else if (attributeNameLowercase === 'samesite') { - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7 - // If the attribute-name case-insensitively matches the string - // "SameSite", the user agent MUST process the cookie-av as follows: - - // 1. Let enforcement be "Default". - let enforcement = 'Default' - - const attributeValueLowercase = attributeValue.toLowerCase() - // 2. If cookie-av's attribute-value is a case-insensitive match for - // "None", set enforcement to "None". - if (attributeValueLowercase.includes('none')) { - enforcement = 'None' - } - - // 3. If cookie-av's attribute-value is a case-insensitive match for - // "Strict", set enforcement to "Strict". - if (attributeValueLowercase.includes('strict')) { - enforcement = 'Strict' - } - - // 4. If cookie-av's attribute-value is a case-insensitive match for - // "Lax", set enforcement to "Lax". - if (attributeValueLowercase.includes('lax')) { - enforcement = 'Lax' - } - - // 5. Append an attribute to the cookie-attribute-list with an - // attribute-name of "SameSite" and an attribute-value of - // enforcement. - cookieAttributeList.sameSite = enforcement - } else { - cookieAttributeList.unparsed ??= [] - - cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`) - } - - // 8. Return to Step 1 of this algorithm. - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) -} - -module.exports = { - parseSetCookie, - parseUnparsedAttributes -} - - -/***/ }), - -/***/ 8176: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const assert = __nccwpck_require__(2613) -const { kHeadersList } = __nccwpck_require__(249) - -function isCTLExcludingHtab (value) { - if (value.length === 0) { - return false - } - - for (const char of value) { - const code = char.charCodeAt(0) - - if ( - (code >= 0x00 || code <= 0x08) || - (code >= 0x0A || code <= 0x1F) || - code === 0x7F - ) { - return false - } - } -} - -/** - CHAR = - token = 1* - separators = "(" | ")" | "<" | ">" | "@" - | "," | ";" | ":" | "\" | <"> - | "/" | "[" | "]" | "?" | "=" - | "{" | "}" | SP | HT - * @param {string} name - */ -function validateCookieName (name) { - for (const char of name) { - const code = char.charCodeAt(0) - - if ( - (code <= 0x20 || code > 0x7F) || - char === '(' || - char === ')' || - char === '>' || - char === '<' || - char === '@' || - char === ',' || - char === ';' || - char === ':' || - char === '\\' || - char === '"' || - char === '/' || - char === '[' || - char === ']' || - char === '?' || - char === '=' || - char === '{' || - char === '}' - ) { - throw new Error('Invalid cookie name') - } - } -} - -/** - cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) - cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E - ; US-ASCII characters excluding CTLs, - ; whitespace DQUOTE, comma, semicolon, - ; and backslash - * @param {string} value - */ -function validateCookieValue (value) { - for (const char of value) { - const code = char.charCodeAt(0) - - if ( - code < 0x21 || // exclude CTLs (0-31) - code === 0x22 || - code === 0x2C || - code === 0x3B || - code === 0x5C || - code > 0x7E // non-ascii - ) { - throw new Error('Invalid header value') - } - } -} - -/** - * path-value = - * @param {string} path - */ -function validateCookiePath (path) { - for (const char of path) { - const code = char.charCodeAt(0) - - if (code < 0x21 || char === ';') { - throw new Error('Invalid cookie path') - } - } -} - -/** - * I have no idea why these values aren't allowed to be honest, - * but Deno tests these. - Khafra - * @param {string} domain - */ -function validateCookieDomain (domain) { - if ( - domain.startsWith('-') || - domain.endsWith('.') || - domain.endsWith('-') - ) { - throw new Error('Invalid cookie domain') - } -} - -/** - * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1 - * @param {number|Date} date - IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT - ; fixed length/zone/capitalization subset of the format - ; see Section 3.3 of [RFC5322] - - day-name = %x4D.6F.6E ; "Mon", case-sensitive - / %x54.75.65 ; "Tue", case-sensitive - / %x57.65.64 ; "Wed", case-sensitive - / %x54.68.75 ; "Thu", case-sensitive - / %x46.72.69 ; "Fri", case-sensitive - / %x53.61.74 ; "Sat", case-sensitive - / %x53.75.6E ; "Sun", case-sensitive - date1 = day SP month SP year - ; e.g., 02 Jun 1982 - - day = 2DIGIT - month = %x4A.61.6E ; "Jan", case-sensitive - / %x46.65.62 ; "Feb", case-sensitive - / %x4D.61.72 ; "Mar", case-sensitive - / %x41.70.72 ; "Apr", case-sensitive - / %x4D.61.79 ; "May", case-sensitive - / %x4A.75.6E ; "Jun", case-sensitive - / %x4A.75.6C ; "Jul", case-sensitive - / %x41.75.67 ; "Aug", case-sensitive - / %x53.65.70 ; "Sep", case-sensitive - / %x4F.63.74 ; "Oct", case-sensitive - / %x4E.6F.76 ; "Nov", case-sensitive - / %x44.65.63 ; "Dec", case-sensitive - year = 4DIGIT - - GMT = %x47.4D.54 ; "GMT", case-sensitive - - time-of-day = hour ":" minute ":" second - ; 00:00:00 - 23:59:60 (leap second) - - hour = 2DIGIT - minute = 2DIGIT - second = 2DIGIT - */ -function toIMFDate (date) { - if (typeof date === 'number') { - date = new Date(date) - } - - const days = [ - 'Sun', 'Mon', 'Tue', 'Wed', - 'Thu', 'Fri', 'Sat' - ] - - const months = [ - 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', - 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' - ] - - const dayName = days[date.getUTCDay()] - const day = date.getUTCDate().toString().padStart(2, '0') - const month = months[date.getUTCMonth()] - const year = date.getUTCFullYear() - const hour = date.getUTCHours().toString().padStart(2, '0') - const minute = date.getUTCMinutes().toString().padStart(2, '0') - const second = date.getUTCSeconds().toString().padStart(2, '0') - - return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT` -} - -/** - max-age-av = "Max-Age=" non-zero-digit *DIGIT - ; In practice, both expires-av and max-age-av - ; are limited to dates representable by the - ; user agent. - * @param {number} maxAge - */ -function validateCookieMaxAge (maxAge) { - if (maxAge < 0) { - throw new Error('Invalid cookie max-age') - } -} - -/** - * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1 - * @param {import('./index').Cookie} cookie - */ -function stringify (cookie) { - if (cookie.name.length === 0) { - return null - } - - validateCookieName(cookie.name) - validateCookieValue(cookie.value) - - const out = [`${cookie.name}=${cookie.value}`] - - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1 - // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2 - if (cookie.name.startsWith('__Secure-')) { - cookie.secure = true - } - - if (cookie.name.startsWith('__Host-')) { - cookie.secure = true - cookie.domain = null - cookie.path = '/' - } - - if (cookie.secure) { - out.push('Secure') - } - - if (cookie.httpOnly) { - out.push('HttpOnly') - } - - if (typeof cookie.maxAge === 'number') { - validateCookieMaxAge(cookie.maxAge) - out.push(`Max-Age=${cookie.maxAge}`) - } - - if (cookie.domain) { - validateCookieDomain(cookie.domain) - out.push(`Domain=${cookie.domain}`) - } - - if (cookie.path) { - validateCookiePath(cookie.path) - out.push(`Path=${cookie.path}`) - } - - if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') { - out.push(`Expires=${toIMFDate(cookie.expires)}`) - } - - if (cookie.sameSite) { - out.push(`SameSite=${cookie.sameSite}`) - } - - for (const part of cookie.unparsed) { - if (!part.includes('=')) { - throw new Error('Invalid unparsed') - } - - const [key, ...value] = part.split('=') - - out.push(`${key.trim()}=${value.join('=')}`) - } - - return out.join('; ') -} - -let kHeadersListNode - -function getHeadersList (headers) { - if (headers[kHeadersList]) { - return headers[kHeadersList] - } - - if (!kHeadersListNode) { - kHeadersListNode = Object.getOwnPropertySymbols(headers).find( - (symbol) => symbol.description === 'headers list' - ) - - assert(kHeadersListNode, 'Headers cannot be parsed') - } - - const headersList = headers[kHeadersListNode] - assert(headersList) - - return headersList -} - -module.exports = { - isCTLExcludingHtab, - stringify, - getHeadersList -} - - -/***/ }), - -/***/ 5786: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const net = __nccwpck_require__(9278) -const assert = __nccwpck_require__(2613) -const util = __nccwpck_require__(162) -const { InvalidArgumentError, ConnectTimeoutError } = __nccwpck_require__(3785) - -let tls // include tls conditionally since it is not always available - -// TODO: session re-use does not wait for the first -// connection to resolve the session and might therefore -// resolve the same servername multiple times even when -// re-use is enabled. - -let SessionCache -// FIXME: remove workaround when the Node bug is fixed -// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 -if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { - SessionCache = class WeakSessionCache { - constructor (maxCachedSessions) { - this._maxCachedSessions = maxCachedSessions - this._sessionCache = new Map() - this._sessionRegistry = new global.FinalizationRegistry((key) => { - if (this._sessionCache.size < this._maxCachedSessions) { - return - } - - const ref = this._sessionCache.get(key) - if (ref !== undefined && ref.deref() === undefined) { - this._sessionCache.delete(key) - } - }) - } - - get (sessionKey) { - const ref = this._sessionCache.get(sessionKey) - return ref ? ref.deref() : null - } - - set (sessionKey, session) { - if (this._maxCachedSessions === 0) { - return - } - - this._sessionCache.set(sessionKey, new WeakRef(session)) - this._sessionRegistry.register(session, sessionKey) - } - } -} else { - SessionCache = class SimpleSessionCache { - constructor (maxCachedSessions) { - this._maxCachedSessions = maxCachedSessions - this._sessionCache = new Map() - } - - get (sessionKey) { - return this._sessionCache.get(sessionKey) - } - - set (sessionKey, session) { - if (this._maxCachedSessions === 0) { - return - } - - if (this._sessionCache.size >= this._maxCachedSessions) { - // remove the oldest session - const { value: oldestKey } = this._sessionCache.keys().next() - this._sessionCache.delete(oldestKey) - } - - this._sessionCache.set(sessionKey, session) - } - } -} - -function buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { - if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { - throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero') - } - - const options = { path: socketPath, ...opts } - const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions) - timeout = timeout == null ? 10e3 : timeout - allowH2 = allowH2 != null ? allowH2 : false - return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { - let socket - if (protocol === 'https:') { - if (!tls) { - tls = __nccwpck_require__(4756) - } - servername = servername || options.servername || util.getServerName(host) || null - - const sessionKey = servername || hostname - const session = sessionCache.get(sessionKey) || null - - assert(sessionKey) - - socket = tls.connect({ - highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... - ...options, - servername, - session, - localAddress, - // TODO(HTTP/2): Add support for h2c - ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'], - socket: httpSocket, // upgrade socket connection - port: port || 443, - host: hostname - }) - - socket - .on('session', function (session) { - // TODO (fix): Can a session become invalid once established? Don't think so? - sessionCache.set(sessionKey, session) - }) - } else { - assert(!httpSocket, 'httpSocket can only be sent on TLS update') - socket = net.connect({ - highWaterMark: 64 * 1024, // Same as nodejs fs streams. - ...options, - localAddress, - port: port || 80, - host: hostname - }) - } - - // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket - if (options.keepAlive == null || options.keepAlive) { - const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay - socket.setKeepAlive(true, keepAliveInitialDelay) - } - - const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout) - - socket - .setNoDelay(true) - .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () { - cancelTimeout() - - if (callback) { - const cb = callback - callback = null - cb(null, this) - } - }) - .on('error', function (err) { - cancelTimeout() - - if (callback) { - const cb = callback - callback = null - cb(err) - } - }) - - return socket - } -} - -function setupTimeout (onConnectTimeout, timeout) { - if (!timeout) { - return () => {} - } - - let s1 = null - let s2 = null - const timeoutId = setTimeout(() => { - // setImmediate is added to make sure that we priotorise socket error events over timeouts - s1 = setImmediate(() => { - if (process.platform === 'win32') { - // Windows needs an extra setImmediate probably due to implementation differences in the socket logic - s2 = setImmediate(() => onConnectTimeout()) - } else { - onConnectTimeout() - } - }) - }, timeout) - return () => { - clearTimeout(timeoutId) - clearImmediate(s1) - clearImmediate(s2) - } -} - -function onConnectTimeout (socket) { - util.destroy(socket, new ConnectTimeoutError()) -} - -module.exports = buildConnector - - -/***/ }), - -/***/ 9549: -/***/ ((module) => { - - - -/** @type {Record} */ -const headerNameLowerCasedRecord = {} - -// https://developer.mozilla.org/docs/Web/HTTP/Headers -const wellknownHeaderNames = [ - 'Accept', - 'Accept-Encoding', - 'Accept-Language', - 'Accept-Ranges', - 'Access-Control-Allow-Credentials', - 'Access-Control-Allow-Headers', - 'Access-Control-Allow-Methods', - 'Access-Control-Allow-Origin', - 'Access-Control-Expose-Headers', - 'Access-Control-Max-Age', - 'Access-Control-Request-Headers', - 'Access-Control-Request-Method', - 'Age', - 'Allow', - 'Alt-Svc', - 'Alt-Used', - 'Authorization', - 'Cache-Control', - 'Clear-Site-Data', - 'Connection', - 'Content-Disposition', - 'Content-Encoding', - 'Content-Language', - 'Content-Length', - 'Content-Location', - 'Content-Range', - 'Content-Security-Policy', - 'Content-Security-Policy-Report-Only', - 'Content-Type', - 'Cookie', - 'Cross-Origin-Embedder-Policy', - 'Cross-Origin-Opener-Policy', - 'Cross-Origin-Resource-Policy', - 'Date', - 'Device-Memory', - 'Downlink', - 'ECT', - 'ETag', - 'Expect', - 'Expect-CT', - 'Expires', - 'Forwarded', - 'From', - 'Host', - 'If-Match', - 'If-Modified-Since', - 'If-None-Match', - 'If-Range', - 'If-Unmodified-Since', - 'Keep-Alive', - 'Last-Modified', - 'Link', - 'Location', - 'Max-Forwards', - 'Origin', - 'Permissions-Policy', - 'Pragma', - 'Proxy-Authenticate', - 'Proxy-Authorization', - 'RTT', - 'Range', - 'Referer', - 'Referrer-Policy', - 'Refresh', - 'Retry-After', - 'Sec-WebSocket-Accept', - 'Sec-WebSocket-Extensions', - 'Sec-WebSocket-Key', - 'Sec-WebSocket-Protocol', - 'Sec-WebSocket-Version', - 'Server', - 'Server-Timing', - 'Service-Worker-Allowed', - 'Service-Worker-Navigation-Preload', - 'Set-Cookie', - 'SourceMap', - 'Strict-Transport-Security', - 'Supports-Loading-Mode', - 'TE', - 'Timing-Allow-Origin', - 'Trailer', - 'Transfer-Encoding', - 'Upgrade', - 'Upgrade-Insecure-Requests', - 'User-Agent', - 'Vary', - 'Via', - 'WWW-Authenticate', - 'X-Content-Type-Options', - 'X-DNS-Prefetch-Control', - 'X-Frame-Options', - 'X-Permitted-Cross-Domain-Policies', - 'X-Powered-By', - 'X-Requested-With', - 'X-XSS-Protection' -] - -for (let i = 0; i < wellknownHeaderNames.length; ++i) { - const key = wellknownHeaderNames[i] - const lowerCasedKey = key.toLowerCase() - headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = - lowerCasedKey -} - -// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. -Object.setPrototypeOf(headerNameLowerCasedRecord, null) - -module.exports = { - wellknownHeaderNames, - headerNameLowerCasedRecord -} - - -/***/ }), - -/***/ 3785: -/***/ ((module) => { - - - -class UndiciError extends Error { - constructor (message) { - super(message) - this.name = 'UndiciError' - this.code = 'UND_ERR' - } -} - -class ConnectTimeoutError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ConnectTimeoutError) - this.name = 'ConnectTimeoutError' - this.message = message || 'Connect Timeout Error' - this.code = 'UND_ERR_CONNECT_TIMEOUT' - } -} - -class HeadersTimeoutError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, HeadersTimeoutError) - this.name = 'HeadersTimeoutError' - this.message = message || 'Headers Timeout Error' - this.code = 'UND_ERR_HEADERS_TIMEOUT' - } -} - -class HeadersOverflowError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, HeadersOverflowError) - this.name = 'HeadersOverflowError' - this.message = message || 'Headers Overflow Error' - this.code = 'UND_ERR_HEADERS_OVERFLOW' - } -} - -class BodyTimeoutError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, BodyTimeoutError) - this.name = 'BodyTimeoutError' - this.message = message || 'Body Timeout Error' - this.code = 'UND_ERR_BODY_TIMEOUT' - } -} - -class ResponseStatusCodeError extends UndiciError { - constructor (message, statusCode, headers, body) { - super(message) - Error.captureStackTrace(this, ResponseStatusCodeError) - this.name = 'ResponseStatusCodeError' - this.message = message || 'Response Status Code Error' - this.code = 'UND_ERR_RESPONSE_STATUS_CODE' - this.body = body - this.status = statusCode - this.statusCode = statusCode - this.headers = headers - } -} - -class InvalidArgumentError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, InvalidArgumentError) - this.name = 'InvalidArgumentError' - this.message = message || 'Invalid Argument Error' - this.code = 'UND_ERR_INVALID_ARG' - } -} - -class InvalidReturnValueError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, InvalidReturnValueError) - this.name = 'InvalidReturnValueError' - this.message = message || 'Invalid Return Value Error' - this.code = 'UND_ERR_INVALID_RETURN_VALUE' - } -} - -class RequestAbortedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, RequestAbortedError) - this.name = 'AbortError' - this.message = message || 'Request aborted' - this.code = 'UND_ERR_ABORTED' - } -} - -class InformationalError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, InformationalError) - this.name = 'InformationalError' - this.message = message || 'Request information' - this.code = 'UND_ERR_INFO' - } -} - -class RequestContentLengthMismatchError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, RequestContentLengthMismatchError) - this.name = 'RequestContentLengthMismatchError' - this.message = message || 'Request body length does not match content-length header' - this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH' - } -} - -class ResponseContentLengthMismatchError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ResponseContentLengthMismatchError) - this.name = 'ResponseContentLengthMismatchError' - this.message = message || 'Response body length does not match content-length header' - this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH' - } -} - -class ClientDestroyedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ClientDestroyedError) - this.name = 'ClientDestroyedError' - this.message = message || 'The client is destroyed' - this.code = 'UND_ERR_DESTROYED' - } -} - -class ClientClosedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ClientClosedError) - this.name = 'ClientClosedError' - this.message = message || 'The client is closed' - this.code = 'UND_ERR_CLOSED' - } -} - -class SocketError extends UndiciError { - constructor (message, socket) { - super(message) - Error.captureStackTrace(this, SocketError) - this.name = 'SocketError' - this.message = message || 'Socket error' - this.code = 'UND_ERR_SOCKET' - this.socket = socket - } -} - -class NotSupportedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, NotSupportedError) - this.name = 'NotSupportedError' - this.message = message || 'Not supported error' - this.code = 'UND_ERR_NOT_SUPPORTED' - } -} - -class BalancedPoolMissingUpstreamError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, NotSupportedError) - this.name = 'MissingUpstreamError' - this.message = message || 'No upstream has been added to the BalancedPool' - this.code = 'UND_ERR_BPL_MISSING_UPSTREAM' - } -} - -class HTTPParserError extends Error { - constructor (message, code, data) { - super(message) - Error.captureStackTrace(this, HTTPParserError) - this.name = 'HTTPParserError' - this.code = code ? `HPE_${code}` : undefined - this.data = data ? data.toString() : undefined - } -} - -class ResponseExceededMaxSizeError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, ResponseExceededMaxSizeError) - this.name = 'ResponseExceededMaxSizeError' - this.message = message || 'Response content exceeded max size' - this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE' - } -} - -class RequestRetryError extends UndiciError { - constructor (message, code, { headers, data }) { - super(message) - Error.captureStackTrace(this, RequestRetryError) - this.name = 'RequestRetryError' - this.message = message || 'Request retry error' - this.code = 'UND_ERR_REQ_RETRY' - this.statusCode = code - this.data = data - this.headers = headers - } -} - -module.exports = { - HTTPParserError, - UndiciError, - HeadersTimeoutError, - HeadersOverflowError, - BodyTimeoutError, - RequestContentLengthMismatchError, - ConnectTimeoutError, - ResponseStatusCodeError, - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError, - ClientDestroyedError, - ClientClosedError, - InformationalError, - SocketError, - NotSupportedError, - ResponseContentLengthMismatchError, - BalancedPoolMissingUpstreamError, - ResponseExceededMaxSizeError, - RequestRetryError -} - - -/***/ }), - -/***/ 8773: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { - InvalidArgumentError, - NotSupportedError -} = __nccwpck_require__(3785) -const assert = __nccwpck_require__(2613) -const { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __nccwpck_require__(249) -const util = __nccwpck_require__(162) - -// tokenRegExp and headerCharRegex have been lifted from -// https://github.com/nodejs/node/blob/main/lib/_http_common.js - -/** - * Verifies that the given val is a valid HTTP token - * per the rules defined in RFC 7230 - * See https://tools.ietf.org/html/rfc7230#section-3.2.6 - */ -const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/ - -/** - * Matches if val contains an invalid field-vchar - * field-value = *( field-content / obs-fold ) - * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] - * field-vchar = VCHAR / obs-text - */ -const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/ - -// Verifies that a given path is valid does not contain control chars \x00 to \x20 -const invalidPathRegex = /[^\u0021-\u00ff]/ - -const kHandler = Symbol('handler') - -const channels = {} - -let extractBody - -try { - const diagnosticsChannel = __nccwpck_require__(1637) - channels.create = diagnosticsChannel.channel('undici:request:create') - channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent') - channels.headers = diagnosticsChannel.channel('undici:request:headers') - channels.trailers = diagnosticsChannel.channel('undici:request:trailers') - channels.error = diagnosticsChannel.channel('undici:request:error') -} catch { - channels.create = { hasSubscribers: false } - channels.bodySent = { hasSubscribers: false } - channels.headers = { hasSubscribers: false } - channels.trailers = { hasSubscribers: false } - channels.error = { hasSubscribers: false } -} - -class Request { - constructor (origin, { - path, - method, - body, - headers, - query, - idempotent, - blocking, - upgrade, - headersTimeout, - bodyTimeout, - reset, - throwOnError, - expectContinue - }, handler) { - if (typeof path !== 'string') { - throw new InvalidArgumentError('path must be a string') - } else if ( - path[0] !== '/' && - !(path.startsWith('http://') || path.startsWith('https://')) && - method !== 'CONNECT' - ) { - throw new InvalidArgumentError('path must be an absolute URL or start with a slash') - } else if (invalidPathRegex.exec(path) !== null) { - throw new InvalidArgumentError('invalid request path') - } - - if (typeof method !== 'string') { - throw new InvalidArgumentError('method must be a string') - } else if (tokenRegExp.exec(method) === null) { - throw new InvalidArgumentError('invalid request method') - } - - if (upgrade && typeof upgrade !== 'string') { - throw new InvalidArgumentError('upgrade must be a string') - } - - if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { - throw new InvalidArgumentError('invalid headersTimeout') - } - - if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { - throw new InvalidArgumentError('invalid bodyTimeout') - } - - if (reset != null && typeof reset !== 'boolean') { - throw new InvalidArgumentError('invalid reset') - } - - if (expectContinue != null && typeof expectContinue !== 'boolean') { - throw new InvalidArgumentError('invalid expectContinue') - } - - this.headersTimeout = headersTimeout - - this.bodyTimeout = bodyTimeout - - this.throwOnError = throwOnError === true - - this.method = method - - this.abort = null - - if (body == null) { - this.body = null - } else if (util.isStream(body)) { - this.body = body - - const rState = this.body._readableState - if (!rState || !rState.autoDestroy) { - this.endHandler = function autoDestroy () { - util.destroy(this) - } - this.body.on('end', this.endHandler) - } - - this.errorHandler = err => { - if (this.abort) { - this.abort(err) - } else { - this.error = err - } - } - this.body.on('error', this.errorHandler) - } else if (util.isBuffer(body)) { - this.body = body.byteLength ? body : null - } else if (ArrayBuffer.isView(body)) { - this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null - } else if (body instanceof ArrayBuffer) { - this.body = body.byteLength ? Buffer.from(body) : null - } else if (typeof body === 'string') { - this.body = body.length ? Buffer.from(body) : null - } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) { - this.body = body - } else { - throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable') - } - - this.completed = false - - this.aborted = false - - this.upgrade = upgrade || null - - this.path = query ? util.buildURL(path, query) : path - - this.origin = origin - - this.idempotent = idempotent == null - ? method === 'HEAD' || method === 'GET' - : idempotent - - this.blocking = blocking == null ? false : blocking - - this.reset = reset == null ? null : reset - - this.host = null - - this.contentLength = null - - this.contentType = null - - this.headers = '' - - // Only for H2 - this.expectContinue = expectContinue != null ? expectContinue : false - - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) { - throw new InvalidArgumentError('headers array must be even') - } - for (let i = 0; i < headers.length; i += 2) { - processHeader(this, headers[i], headers[i + 1]) - } - } else if (headers && typeof headers === 'object') { - const keys = Object.keys(headers) - for (let i = 0; i < keys.length; i++) { - const key = keys[i] - processHeader(this, key, headers[key]) - } - } else if (headers != null) { - throw new InvalidArgumentError('headers must be an object or an array') - } - - if (util.isFormDataLike(this.body)) { - if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) { - throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.') - } - - if (!extractBody) { - extractBody = (__nccwpck_require__(3893).extractBody) - } - - const [bodyStream, contentType] = extractBody(body) - if (this.contentType == null) { - this.contentType = contentType - this.headers += `content-type: ${contentType}\r\n` - } - this.body = bodyStream.stream - this.contentLength = bodyStream.length - } else if (util.isBlobLike(body) && this.contentType == null && body.type) { - this.contentType = body.type - this.headers += `content-type: ${body.type}\r\n` - } - - util.validateHandler(handler, method, upgrade) - - this.servername = util.getServerName(this.host) - - this[kHandler] = handler - - if (channels.create.hasSubscribers) { - channels.create.publish({ request: this }) - } - } - - onBodySent (chunk) { - if (this[kHandler].onBodySent) { - try { - return this[kHandler].onBodySent(chunk) - } catch (err) { - this.abort(err) - } - } - } - - onRequestSent () { - if (channels.bodySent.hasSubscribers) { - channels.bodySent.publish({ request: this }) - } - - if (this[kHandler].onRequestSent) { - try { - return this[kHandler].onRequestSent() - } catch (err) { - this.abort(err) - } - } - } - - onConnect (abort) { - assert(!this.aborted) - assert(!this.completed) - - if (this.error) { - abort(this.error) - } else { - this.abort = abort - return this[kHandler].onConnect(abort) - } - } - - onHeaders (statusCode, headers, resume, statusText) { - assert(!this.aborted) - assert(!this.completed) - - if (channels.headers.hasSubscribers) { - channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }) - } - - try { - return this[kHandler].onHeaders(statusCode, headers, resume, statusText) - } catch (err) { - this.abort(err) - } - } - - onData (chunk) { - assert(!this.aborted) - assert(!this.completed) - - try { - return this[kHandler].onData(chunk) - } catch (err) { - this.abort(err) - return false - } - } - - onUpgrade (statusCode, headers, socket) { - assert(!this.aborted) - assert(!this.completed) - - return this[kHandler].onUpgrade(statusCode, headers, socket) - } - - onComplete (trailers) { - this.onFinally() - - assert(!this.aborted) - - this.completed = true - if (channels.trailers.hasSubscribers) { - channels.trailers.publish({ request: this, trailers }) - } - - try { - return this[kHandler].onComplete(trailers) - } catch (err) { - // TODO (fix): This might be a bad idea? - this.onError(err) - } - } - - onError (error) { - this.onFinally() - - if (channels.error.hasSubscribers) { - channels.error.publish({ request: this, error }) - } - - if (this.aborted) { - return - } - this.aborted = true - - return this[kHandler].onError(error) - } - - onFinally () { - if (this.errorHandler) { - this.body.off('error', this.errorHandler) - this.errorHandler = null - } - - if (this.endHandler) { - this.body.off('end', this.endHandler) - this.endHandler = null - } - } - - // TODO: adjust to support H2 - addHeader (key, value) { - processHeader(this, key, value) - return this - } - - static [kHTTP1BuildRequest] (origin, opts, handler) { - // TODO: Migrate header parsing here, to make Requests - // HTTP agnostic - return new Request(origin, opts, handler) - } - - static [kHTTP2BuildRequest] (origin, opts, handler) { - const headers = opts.headers - opts = { ...opts, headers: null } - - const request = new Request(origin, opts, handler) - - request.headers = {} - - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) { - throw new InvalidArgumentError('headers array must be even') - } - for (let i = 0; i < headers.length; i += 2) { - processHeader(request, headers[i], headers[i + 1], true) - } - } else if (headers && typeof headers === 'object') { - const keys = Object.keys(headers) - for (let i = 0; i < keys.length; i++) { - const key = keys[i] - processHeader(request, key, headers[key], true) - } - } else if (headers != null) { - throw new InvalidArgumentError('headers must be an object or an array') - } - - return request - } - - static [kHTTP2CopyHeaders] (raw) { - const rawHeaders = raw.split('\r\n') - const headers = {} - - for (const header of rawHeaders) { - const [key, value] = header.split(': ') - - if (value == null || value.length === 0) continue - - if (headers[key]) headers[key] += `,${value}` - else headers[key] = value - } - - return headers - } -} - -function processHeaderValue (key, val, skipAppend) { - if (val && typeof val === 'object') { - throw new InvalidArgumentError(`invalid ${key} header`) - } - - val = val != null ? `${val}` : '' - - if (headerCharRegex.exec(val) !== null) { - throw new InvalidArgumentError(`invalid ${key} header`) - } - - return skipAppend ? val : `${key}: ${val}\r\n` -} - -function processHeader (request, key, val, skipAppend = false) { - if (val && (typeof val === 'object' && !Array.isArray(val))) { - throw new InvalidArgumentError(`invalid ${key} header`) - } else if (val === undefined) { - return - } - - if ( - request.host === null && - key.length === 4 && - key.toLowerCase() === 'host' - ) { - if (headerCharRegex.exec(val) !== null) { - throw new InvalidArgumentError(`invalid ${key} header`) - } - // Consumed by Client - request.host = val - } else if ( - request.contentLength === null && - key.length === 14 && - key.toLowerCase() === 'content-length' - ) { - request.contentLength = parseInt(val, 10) - if (!Number.isFinite(request.contentLength)) { - throw new InvalidArgumentError('invalid content-length header') - } - } else if ( - request.contentType === null && - key.length === 12 && - key.toLowerCase() === 'content-type' - ) { - request.contentType = val - if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) - else request.headers += processHeaderValue(key, val) - } else if ( - key.length === 17 && - key.toLowerCase() === 'transfer-encoding' - ) { - throw new InvalidArgumentError('invalid transfer-encoding header') - } else if ( - key.length === 10 && - key.toLowerCase() === 'connection' - ) { - const value = typeof val === 'string' ? val.toLowerCase() : null - if (value !== 'close' && value !== 'keep-alive') { - throw new InvalidArgumentError('invalid connection header') - } else if (value === 'close') { - request.reset = true - } - } else if ( - key.length === 10 && - key.toLowerCase() === 'keep-alive' - ) { - throw new InvalidArgumentError('invalid keep-alive header') - } else if ( - key.length === 7 && - key.toLowerCase() === 'upgrade' - ) { - throw new InvalidArgumentError('invalid upgrade header') - } else if ( - key.length === 6 && - key.toLowerCase() === 'expect' - ) { - throw new NotSupportedError('expect header not supported') - } else if (tokenRegExp.exec(key) === null) { - throw new InvalidArgumentError('invalid header key') - } else { - if (Array.isArray(val)) { - for (let i = 0; i < val.length; i++) { - if (skipAppend) { - if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}` - else request.headers[key] = processHeaderValue(key, val[i], skipAppend) - } else { - request.headers += processHeaderValue(key, val[i]) - } - } - } else { - if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) - else request.headers += processHeaderValue(key, val) - } - } -} - -module.exports = Request - - -/***/ }), - -/***/ 249: -/***/ ((module) => { - -module.exports = { - kClose: Symbol('close'), - kDestroy: Symbol('destroy'), - kDispatch: Symbol('dispatch'), - kUrl: Symbol('url'), - kWriting: Symbol('writing'), - kResuming: Symbol('resuming'), - kQueue: Symbol('queue'), - kConnect: Symbol('connect'), - kConnecting: Symbol('connecting'), - kHeadersList: Symbol('headers list'), - kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), - kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), - kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), - kKeepAliveTimeoutValue: Symbol('keep alive timeout'), - kKeepAlive: Symbol('keep alive'), - kHeadersTimeout: Symbol('headers timeout'), - kBodyTimeout: Symbol('body timeout'), - kServerName: Symbol('server name'), - kLocalAddress: Symbol('local address'), - kHost: Symbol('host'), - kNoRef: Symbol('no ref'), - kBodyUsed: Symbol('used'), - kRunning: Symbol('running'), - kBlocking: Symbol('blocking'), - kPending: Symbol('pending'), - kSize: Symbol('size'), - kBusy: Symbol('busy'), - kQueued: Symbol('queued'), - kFree: Symbol('free'), - kConnected: Symbol('connected'), - kClosed: Symbol('closed'), - kNeedDrain: Symbol('need drain'), - kReset: Symbol('reset'), - kDestroyed: Symbol.for('nodejs.stream.destroyed'), - kMaxHeadersSize: Symbol('max headers size'), - kRunningIdx: Symbol('running index'), - kPendingIdx: Symbol('pending index'), - kError: Symbol('error'), - kClients: Symbol('clients'), - kClient: Symbol('client'), - kParser: Symbol('parser'), - kOnDestroyed: Symbol('destroy callbacks'), - kPipelining: Symbol('pipelining'), - kSocket: Symbol('socket'), - kHostHeader: Symbol('host header'), - kConnector: Symbol('connector'), - kStrictContentLength: Symbol('strict content length'), - kMaxRedirections: Symbol('maxRedirections'), - kMaxRequests: Symbol('maxRequestsPerClient'), - kProxy: Symbol('proxy agent options'), - kCounter: Symbol('socket request counter'), - kInterceptors: Symbol('dispatch interceptors'), - kMaxResponseSize: Symbol('max response size'), - kHTTP2Session: Symbol('http2Session'), - kHTTP2SessionState: Symbol('http2Session state'), - kHTTP2BuildRequest: Symbol('http2 build request'), - kHTTP1BuildRequest: Symbol('http1 build request'), - kHTTP2CopyHeaders: Symbol('http2 copy headers'), - kHTTPConnVersion: Symbol('http connection version'), - kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), - kConstruct: Symbol('constructable') -} - - -/***/ }), - -/***/ 162: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const assert = __nccwpck_require__(2613) -const { kDestroyed, kBodyUsed } = __nccwpck_require__(249) -const { IncomingMessage } = __nccwpck_require__(8611) -const stream = __nccwpck_require__(2203) -const net = __nccwpck_require__(9278) -const { InvalidArgumentError } = __nccwpck_require__(3785) -const { Blob } = __nccwpck_require__(181) -const nodeUtil = __nccwpck_require__(9023) -const { stringify } = __nccwpck_require__(3480) -const { headerNameLowerCasedRecord } = __nccwpck_require__(9549) - -const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v)) - -function nop () {} - -function isStream (obj) { - return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function' -} - -// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License) -function isBlobLike (object) { - return (Blob && object instanceof Blob) || ( - object && - typeof object === 'object' && - (typeof object.stream === 'function' || - typeof object.arrayBuffer === 'function') && - /^(Blob|File)$/.test(object[Symbol.toStringTag]) - ) -} - -function buildURL (url, queryParams) { - if (url.includes('?') || url.includes('#')) { - throw new Error('Query params cannot be passed when url already contains "?" or "#".') - } - - const stringified = stringify(queryParams) - - if (stringified) { - url += '?' + stringified - } - - return url -} - -function parseURL (url) { - if (typeof url === 'string') { - url = new URL(url) - - if (!/^https?:/.test(url.origin || url.protocol)) { - throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') - } - - return url - } - - if (!url || typeof url !== 'object') { - throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.') - } - - if (!/^https?:/.test(url.origin || url.protocol)) { - throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') - } - - if (!(url instanceof URL)) { - if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) { - throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.') - } - - if (url.path != null && typeof url.path !== 'string') { - throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.') - } - - if (url.pathname != null && typeof url.pathname !== 'string') { - throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.') - } - - if (url.hostname != null && typeof url.hostname !== 'string') { - throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.') - } - - if (url.origin != null && typeof url.origin !== 'string') { - throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.') - } - - const port = url.port != null - ? url.port - : (url.protocol === 'https:' ? 443 : 80) - let origin = url.origin != null - ? url.origin - : `${url.protocol}//${url.hostname}:${port}` - let path = url.path != null - ? url.path - : `${url.pathname || ''}${url.search || ''}` - - if (origin.endsWith('/')) { - origin = origin.substring(0, origin.length - 1) - } - - if (path && !path.startsWith('/')) { - path = `/${path}` - } - // new URL(path, origin) is unsafe when `path` contains an absolute URL - // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL: - // If first parameter is a relative URL, second param is required, and will be used as the base URL. - // If first parameter is an absolute URL, a given second param will be ignored. - url = new URL(origin + path) - } - - return url -} - -function parseOrigin (url) { - url = parseURL(url) - - if (url.pathname !== '/' || url.search || url.hash) { - throw new InvalidArgumentError('invalid url') - } - - return url -} - -function getHostname (host) { - if (host[0] === '[') { - const idx = host.indexOf(']') - - assert(idx !== -1) - return host.substring(1, idx) - } - - const idx = host.indexOf(':') - if (idx === -1) return host - - return host.substring(0, idx) -} - -// IP addresses are not valid server names per RFC6066 -// > Currently, the only server names supported are DNS hostnames -function getServerName (host) { - if (!host) { - return null - } - - assert.strictEqual(typeof host, 'string') - - const servername = getHostname(host) - if (net.isIP(servername)) { - return '' - } - - return servername -} - -function deepClone (obj) { - return JSON.parse(JSON.stringify(obj)) -} - -function isAsyncIterable (obj) { - return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function') -} - -function isIterable (obj) { - return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function')) -} - -function bodyLength (body) { - if (body == null) { - return 0 - } else if (isStream(body)) { - const state = body._readableState - return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) - ? state.length - : null - } else if (isBlobLike(body)) { - return body.size != null ? body.size : null - } else if (isBuffer(body)) { - return body.byteLength - } - - return null -} - -function isDestroyed (stream) { - return !stream || !!(stream.destroyed || stream[kDestroyed]) -} - -function isReadableAborted (stream) { - const state = stream && stream._readableState - return isDestroyed(stream) && state && !state.endEmitted -} - -function destroy (stream, err) { - if (stream == null || !isStream(stream) || isDestroyed(stream)) { - return - } - - if (typeof stream.destroy === 'function') { - if (Object.getPrototypeOf(stream).constructor === IncomingMessage) { - // See: https://github.com/nodejs/node/pull/38505/files - stream.socket = null - } - - stream.destroy(err) - } else if (err) { - process.nextTick((stream, err) => { - stream.emit('error', err) - }, stream, err) - } - - if (stream.destroyed !== true) { - stream[kDestroyed] = true - } -} - -const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/ -function parseKeepAliveTimeout (val) { - const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR) - return m ? parseInt(m[1], 10) * 1000 : null -} - -/** - * Retrieves a header name and returns its lowercase value. - * @param {string | Buffer} value Header name - * @returns {string} - */ -function headerNameToString (value) { - return headerNameLowerCasedRecord[value] || value.toLowerCase() -} - -function parseHeaders (headers, obj = {}) { - // For H2 support - if (!Array.isArray(headers)) return headers - - for (let i = 0; i < headers.length; i += 2) { - const key = headers[i].toString().toLowerCase() - let val = obj[key] - - if (!val) { - if (Array.isArray(headers[i + 1])) { - obj[key] = headers[i + 1].map(x => x.toString('utf8')) - } else { - obj[key] = headers[i + 1].toString('utf8') - } - } else { - if (!Array.isArray(val)) { - val = [val] - obj[key] = val - } - val.push(headers[i + 1].toString('utf8')) - } - } - - // See https://github.com/nodejs/node/pull/46528 - if ('content-length' in obj && 'content-disposition' in obj) { - obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1') - } - - return obj -} - -function parseRawHeaders (headers) { - const ret = [] - let hasContentLength = false - let contentDispositionIdx = -1 - - for (let n = 0; n < headers.length; n += 2) { - const key = headers[n + 0].toString() - const val = headers[n + 1].toString('utf8') - - if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) { - ret.push(key, val) - hasContentLength = true - } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) { - contentDispositionIdx = ret.push(key, val) - 1 - } else { - ret.push(key, val) - } - } - - // See https://github.com/nodejs/node/pull/46528 - if (hasContentLength && contentDispositionIdx !== -1) { - ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1') - } - - return ret -} - -function isBuffer (buffer) { - // See, https://github.com/mcollina/undici/pull/319 - return buffer instanceof Uint8Array || Buffer.isBuffer(buffer) -} - -function validateHandler (handler, method, upgrade) { - if (!handler || typeof handler !== 'object') { - throw new InvalidArgumentError('handler must be an object') - } - - if (typeof handler.onConnect !== 'function') { - throw new InvalidArgumentError('invalid onConnect method') - } - - if (typeof handler.onError !== 'function') { - throw new InvalidArgumentError('invalid onError method') - } - - if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) { - throw new InvalidArgumentError('invalid onBodySent method') - } - - if (upgrade || method === 'CONNECT') { - if (typeof handler.onUpgrade !== 'function') { - throw new InvalidArgumentError('invalid onUpgrade method') - } - } else { - if (typeof handler.onHeaders !== 'function') { - throw new InvalidArgumentError('invalid onHeaders method') - } - - if (typeof handler.onData !== 'function') { - throw new InvalidArgumentError('invalid onData method') - } - - if (typeof handler.onComplete !== 'function') { - throw new InvalidArgumentError('invalid onComplete method') - } - } -} - -// A body is disturbed if it has been read from and it cannot -// be re-used without losing state or data. -function isDisturbed (body) { - return !!(body && ( - stream.isDisturbed - ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed? - : body[kBodyUsed] || - body.readableDidRead || - (body._readableState && body._readableState.dataEmitted) || - isReadableAborted(body) - )) -} - -function isErrored (body) { - return !!(body && ( - stream.isErrored - ? stream.isErrored(body) - : /state: 'errored'/.test(nodeUtil.inspect(body) - ))) -} - -function isReadable (body) { - return !!(body && ( - stream.isReadable - ? stream.isReadable(body) - : /state: 'readable'/.test(nodeUtil.inspect(body) - ))) -} - -function getSocketInfo (socket) { - return { - localAddress: socket.localAddress, - localPort: socket.localPort, - remoteAddress: socket.remoteAddress, - remotePort: socket.remotePort, - remoteFamily: socket.remoteFamily, - timeout: socket.timeout, - bytesWritten: socket.bytesWritten, - bytesRead: socket.bytesRead - } -} - -async function * convertIterableToBuffer (iterable) { - for await (const chunk of iterable) { - yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk) - } -} - -let ReadableStream -function ReadableStreamFrom (iterable) { - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(3774).ReadableStream) - } - - if (ReadableStream.from) { - return ReadableStream.from(convertIterableToBuffer(iterable)) - } - - let iterator - return new ReadableStream( - { - async start () { - iterator = iterable[Symbol.asyncIterator]() - }, - async pull (controller) { - const { done, value } = await iterator.next() - if (done) { - queueMicrotask(() => { - controller.close() - }) - } else { - const buf = Buffer.isBuffer(value) ? value : Buffer.from(value) - controller.enqueue(new Uint8Array(buf)) - } - return controller.desiredSize > 0 - }, - async cancel (reason) { - await iterator.return() - } - }, - 0 - ) -} - -// The chunk should be a FormData instance and contains -// all the required methods. -function isFormDataLike (object) { - return ( - object && - typeof object === 'object' && - typeof object.append === 'function' && - typeof object.delete === 'function' && - typeof object.get === 'function' && - typeof object.getAll === 'function' && - typeof object.has === 'function' && - typeof object.set === 'function' && - object[Symbol.toStringTag] === 'FormData' - ) -} - -function throwIfAborted (signal) { - if (!signal) { return } - if (typeof signal.throwIfAborted === 'function') { - signal.throwIfAborted() - } else { - if (signal.aborted) { - // DOMException not available < v17.0.0 - const err = new Error('The operation was aborted') - err.name = 'AbortError' - throw err - } - } -} - -function addAbortListener (signal, listener) { - if ('addEventListener' in signal) { - signal.addEventListener('abort', listener, { once: true }) - return () => signal.removeEventListener('abort', listener) - } - signal.addListener('abort', listener) - return () => signal.removeListener('abort', listener) -} - -const hasToWellFormed = !!String.prototype.toWellFormed - -/** - * @param {string} val - */ -function toUSVString (val) { - if (hasToWellFormed) { - return `${val}`.toWellFormed() - } else if (nodeUtil.toUSVString) { - return nodeUtil.toUSVString(val) - } - - return `${val}` -} - -// Parsed accordingly to RFC 9110 -// https://www.rfc-editor.org/rfc/rfc9110#field.content-range -function parseRangeHeader (range) { - if (range == null || range === '') return { start: 0, end: null, size: null } - - const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null - return m - ? { - start: parseInt(m[1]), - end: m[2] ? parseInt(m[2]) : null, - size: m[3] ? parseInt(m[3]) : null - } - : null -} - -const kEnumerableProperty = Object.create(null) -kEnumerableProperty.enumerable = true - -module.exports = { - kEnumerableProperty, - nop, - isDisturbed, - isErrored, - isReadable, - toUSVString, - isReadableAborted, - isBlobLike, - parseOrigin, - parseURL, - getServerName, - isStream, - isIterable, - isAsyncIterable, - isDestroyed, - headerNameToString, - parseRawHeaders, - parseHeaders, - parseKeepAliveTimeout, - destroy, - bodyLength, - deepClone, - ReadableStreamFrom, - isBuffer, - validateHandler, - getSocketInfo, - isFormDataLike, - buildURL, - throwIfAborted, - addAbortListener, - parseRangeHeader, - nodeMajor, - nodeMinor, - nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13), - safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE'] -} - - -/***/ }), - -/***/ 6215: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const Dispatcher = __nccwpck_require__(1045) -const { - ClientDestroyedError, - ClientClosedError, - InvalidArgumentError -} = __nccwpck_require__(3785) -const { kDestroy, kClose, kDispatch, kInterceptors } = __nccwpck_require__(249) - -const kDestroyed = Symbol('destroyed') -const kClosed = Symbol('closed') -const kOnDestroyed = Symbol('onDestroyed') -const kOnClosed = Symbol('onClosed') -const kInterceptedDispatch = Symbol('Intercepted Dispatch') - -class DispatcherBase extends Dispatcher { - constructor () { - super() - - this[kDestroyed] = false - this[kOnDestroyed] = null - this[kClosed] = false - this[kOnClosed] = [] - } - - get destroyed () { - return this[kDestroyed] - } - - get closed () { - return this[kClosed] - } - - get interceptors () { - return this[kInterceptors] - } - - set interceptors (newInterceptors) { - if (newInterceptors) { - for (let i = newInterceptors.length - 1; i >= 0; i--) { - const interceptor = this[kInterceptors][i] - if (typeof interceptor !== 'function') { - throw new InvalidArgumentError('interceptor must be an function') - } - } - } - - this[kInterceptors] = newInterceptors - } - - close (callback) { - if (callback === undefined) { - return new Promise((resolve, reject) => { - this.close((err, data) => { - return err ? reject(err) : resolve(data) - }) - }) - } - - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } - - if (this[kDestroyed]) { - queueMicrotask(() => callback(new ClientDestroyedError(), null)) - return - } - - if (this[kClosed]) { - if (this[kOnClosed]) { - this[kOnClosed].push(callback) - } else { - queueMicrotask(() => callback(null, null)) - } - return - } - - this[kClosed] = true - this[kOnClosed].push(callback) - - const onClosed = () => { - const callbacks = this[kOnClosed] - this[kOnClosed] = null - for (let i = 0; i < callbacks.length; i++) { - callbacks[i](null, null) - } - } - - // Should not error. - this[kClose]() - .then(() => this.destroy()) - .then(() => { - queueMicrotask(onClosed) - }) - } - - destroy (err, callback) { - if (typeof err === 'function') { - callback = err - err = null - } - - if (callback === undefined) { - return new Promise((resolve, reject) => { - this.destroy(err, (err, data) => { - return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data) - }) - }) - } - - if (typeof callback !== 'function') { - throw new InvalidArgumentError('invalid callback') - } - - if (this[kDestroyed]) { - if (this[kOnDestroyed]) { - this[kOnDestroyed].push(callback) - } else { - queueMicrotask(() => callback(null, null)) - } - return - } - - if (!err) { - err = new ClientDestroyedError() - } - - this[kDestroyed] = true - this[kOnDestroyed] = this[kOnDestroyed] || [] - this[kOnDestroyed].push(callback) - - const onDestroyed = () => { - const callbacks = this[kOnDestroyed] - this[kOnDestroyed] = null - for (let i = 0; i < callbacks.length; i++) { - callbacks[i](null, null) - } - } - - // Should not error. - this[kDestroy](err).then(() => { - queueMicrotask(onDestroyed) - }) - } - - [kInterceptedDispatch] (opts, handler) { - if (!this[kInterceptors] || this[kInterceptors].length === 0) { - this[kInterceptedDispatch] = this[kDispatch] - return this[kDispatch](opts, handler) - } - - let dispatch = this[kDispatch].bind(this) - for (let i = this[kInterceptors].length - 1; i >= 0; i--) { - dispatch = this[kInterceptors][i](dispatch) - } - this[kInterceptedDispatch] = dispatch - return dispatch(opts, handler) - } - - dispatch (opts, handler) { - if (!handler || typeof handler !== 'object') { - throw new InvalidArgumentError('handler must be an object') - } - - try { - if (!opts || typeof opts !== 'object') { - throw new InvalidArgumentError('opts must be an object.') - } - - if (this[kDestroyed] || this[kOnDestroyed]) { - throw new ClientDestroyedError() - } - - if (this[kClosed]) { - throw new ClientClosedError() - } - - return this[kInterceptedDispatch](opts, handler) - } catch (err) { - if (typeof handler.onError !== 'function') { - throw new InvalidArgumentError('invalid onError method') - } - - handler.onError(err) - - return false - } - } -} - -module.exports = DispatcherBase - - -/***/ }), - -/***/ 1045: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const EventEmitter = __nccwpck_require__(4434) - -class Dispatcher extends EventEmitter { - dispatch () { - throw new Error('not implemented') - } - - close () { - throw new Error('not implemented') - } - - destroy () { - throw new Error('not implemented') - } -} - -module.exports = Dispatcher - - -/***/ }), - -/***/ 3893: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const Busboy = __nccwpck_require__(4455) -const util = __nccwpck_require__(162) -const { - ReadableStreamFrom, - isBlobLike, - isReadableStreamLike, - readableStreamClose, - createDeferredPromise, - fullyReadBody -} = __nccwpck_require__(7189) -const { FormData } = __nccwpck_require__(3639) -const { kState } = __nccwpck_require__(4236) -const { webidl } = __nccwpck_require__(7472) -const { DOMException, structuredClone } = __nccwpck_require__(1356) -const { Blob, File: NativeFile } = __nccwpck_require__(181) -const { kBodyUsed } = __nccwpck_require__(249) -const assert = __nccwpck_require__(2613) -const { isErrored } = __nccwpck_require__(162) -const { isUint8Array, isArrayBuffer } = __nccwpck_require__(8253) -const { File: UndiciFile } = __nccwpck_require__(3791) -const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(5892) - -let ReadableStream = globalThis.ReadableStream - -/** @type {globalThis['File']} */ -const File = NativeFile ?? UndiciFile -const textEncoder = new TextEncoder() -const textDecoder = new TextDecoder() - -// https://fetch.spec.whatwg.org/#concept-bodyinit-extract -function extractBody (object, keepalive = false) { - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(3774).ReadableStream) - } - - // 1. Let stream be null. - let stream = null - - // 2. If object is a ReadableStream object, then set stream to object. - if (object instanceof ReadableStream) { - stream = object - } else if (isBlobLike(object)) { - // 3. Otherwise, if object is a Blob object, set stream to the - // result of running object’s get stream. - stream = object.stream() - } else { - // 4. Otherwise, set stream to a new ReadableStream object, and set - // up stream. - stream = new ReadableStream({ - async pull (controller) { - controller.enqueue( - typeof source === 'string' ? textEncoder.encode(source) : source - ) - queueMicrotask(() => readableStreamClose(controller)) - }, - start () {}, - type: undefined - }) - } - - // 5. Assert: stream is a ReadableStream object. - assert(isReadableStreamLike(stream)) - - // 6. Let action be null. - let action = null - - // 7. Let source be null. - let source = null - - // 8. Let length be null. - let length = null - - // 9. Let type be null. - let type = null - - // 10. Switch on object: - if (typeof object === 'string') { - // Set source to the UTF-8 encoding of object. - // Note: setting source to a Uint8Array here breaks some mocking assumptions. - source = object - - // Set type to `text/plain;charset=UTF-8`. - type = 'text/plain;charset=UTF-8' - } else if (object instanceof URLSearchParams) { - // URLSearchParams - - // spec says to run application/x-www-form-urlencoded on body.list - // this is implemented in Node.js as apart of an URLSearchParams instance toString method - // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490 - // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100 - - // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list. - source = object.toString() - - // Set type to `application/x-www-form-urlencoded;charset=UTF-8`. - type = 'application/x-www-form-urlencoded;charset=UTF-8' - } else if (isArrayBuffer(object)) { - // BufferSource/ArrayBuffer - - // Set source to a copy of the bytes held by object. - source = new Uint8Array(object.slice()) - } else if (ArrayBuffer.isView(object)) { - // BufferSource/ArrayBufferView - - // Set source to a copy of the bytes held by object. - source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)) - } else if (util.isFormDataLike(object)) { - const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}` - const prefix = `--${boundary}\r\nContent-Disposition: form-data` - - /*! formdata-polyfill. MIT License. Jimmy Wärting */ - const escape = (str) => - str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22') - const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, '\r\n') - - // Set action to this step: run the multipart/form-data - // encoding algorithm, with object’s entry list and UTF-8. - // - This ensures that the body is immutable and can't be changed afterwords - // - That the content-length is calculated in advance. - // - And that all parts are pre-encoded and ready to be sent. - - const blobParts = [] - const rn = new Uint8Array([13, 10]) // '\r\n' - length = 0 - let hasUnknownSizeValue = false - - for (const [name, value] of object) { - if (typeof value === 'string') { - const chunk = textEncoder.encode(prefix + - `; name="${escape(normalizeLinefeeds(name))}"` + - `\r\n\r\n${normalizeLinefeeds(value)}\r\n`) - blobParts.push(chunk) - length += chunk.byteLength - } else { - const chunk = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + - (value.name ? `; filename="${escape(value.name)}"` : '') + '\r\n' + - `Content-Type: ${ - value.type || 'application/octet-stream' - }\r\n\r\n`) - blobParts.push(chunk, value, rn) - if (typeof value.size === 'number') { - length += chunk.byteLength + value.size + rn.byteLength - } else { - hasUnknownSizeValue = true - } - } - } - - const chunk = textEncoder.encode(`--${boundary}--`) - blobParts.push(chunk) - length += chunk.byteLength - if (hasUnknownSizeValue) { - length = null - } - - // Set source to object. - source = object - - action = async function * () { - for (const part of blobParts) { - if (part.stream) { - yield * part.stream() - } else { - yield part - } - } - } - - // Set type to `multipart/form-data; boundary=`, - // followed by the multipart/form-data boundary string generated - // by the multipart/form-data encoding algorithm. - type = 'multipart/form-data; boundary=' + boundary - } else if (isBlobLike(object)) { - // Blob - - // Set source to object. - source = object - - // Set length to object’s size. - length = object.size - - // If object’s type attribute is not the empty byte sequence, set - // type to its value. - if (object.type) { - type = object.type - } - } else if (typeof object[Symbol.asyncIterator] === 'function') { - // If keepalive is true, then throw a TypeError. - if (keepalive) { - throw new TypeError('keepalive') - } - - // If object is disturbed or locked, then throw a TypeError. - if (util.isDisturbed(object) || object.locked) { - throw new TypeError( - 'Response body object should not be disturbed or locked' - ) - } - - stream = - object instanceof ReadableStream ? object : ReadableStreamFrom(object) - } - - // 11. If source is a byte sequence, then set action to a - // step that returns source and length to source’s length. - if (typeof source === 'string' || util.isBuffer(source)) { - length = Buffer.byteLength(source) - } - - // 12. If action is non-null, then run these steps in in parallel: - if (action != null) { - // Run action. - let iterator - stream = new ReadableStream({ - async start () { - iterator = action(object)[Symbol.asyncIterator]() - }, - async pull (controller) { - const { value, done } = await iterator.next() - if (done) { - // When running action is done, close stream. - queueMicrotask(() => { - controller.close() - }) - } else { - // Whenever one or more bytes are available and stream is not errored, - // enqueue a Uint8Array wrapping an ArrayBuffer containing the available - // bytes into stream. - if (!isErrored(stream)) { - controller.enqueue(new Uint8Array(value)) - } - } - return controller.desiredSize > 0 - }, - async cancel (reason) { - await iterator.return() - }, - type: undefined - }) - } - - // 13. Let body be a body whose stream is stream, source is source, - // and length is length. - const body = { stream, source, length } - - // 14. Return (body, type). - return [body, type] -} - -// https://fetch.spec.whatwg.org/#bodyinit-safely-extract -function safelyExtractBody (object, keepalive = false) { - if (!ReadableStream) { - // istanbul ignore next - ReadableStream = (__nccwpck_require__(3774).ReadableStream) - } - - // To safely extract a body and a `Content-Type` value from - // a byte sequence or BodyInit object object, run these steps: - - // 1. If object is a ReadableStream object, then: - if (object instanceof ReadableStream) { - // Assert: object is neither disturbed nor locked. - // istanbul ignore next - assert(!util.isDisturbed(object), 'The body has already been consumed.') - // istanbul ignore next - assert(!object.locked, 'The stream is locked.') - } - - // 2. Return the results of extracting object. - return extractBody(object, keepalive) -} - -function cloneBody (body) { - // To clone a body body, run these steps: - - // https://fetch.spec.whatwg.org/#concept-body-clone - - // 1. Let « out1, out2 » be the result of teeing body’s stream. - const [out1, out2] = body.stream.tee() - const out2Clone = structuredClone(out2, { transfer: [out2] }) - // This, for whatever reasons, unrefs out2Clone which allows - // the process to exit by itself. - const [, finalClone] = out2Clone.tee() - - // 2. Set body’s stream to out1. - body.stream = out1 - - // 3. Return a body whose stream is out2 and other members are copied from body. - return { - stream: finalClone, - length: body.length, - source: body.source - } -} - -async function * consumeBody (body) { - if (body) { - if (isUint8Array(body)) { - yield body - } else { - const stream = body.stream - - if (util.isDisturbed(stream)) { - throw new TypeError('The body has already been consumed.') - } - - if (stream.locked) { - throw new TypeError('The stream is locked.') - } - - // Compat. - stream[kBodyUsed] = true - - yield * stream - } - } -} - -function throwIfAborted (state) { - if (state.aborted) { - throw new DOMException('The operation was aborted.', 'AbortError') - } -} - -function bodyMixinMethods (instance) { - const methods = { - blob () { - // The blob() method steps are to return the result of - // running consume body with this and the following step - // given a byte sequence bytes: return a Blob whose - // contents are bytes and whose type attribute is this’s - // MIME type. - return specConsumeBody(this, (bytes) => { - let mimeType = bodyMimeType(this) - - if (mimeType === 'failure') { - mimeType = '' - } else if (mimeType) { - mimeType = serializeAMimeType(mimeType) - } - - // Return a Blob whose contents are bytes and type attribute - // is mimeType. - return new Blob([bytes], { type: mimeType }) - }, instance) - }, - - arrayBuffer () { - // The arrayBuffer() method steps are to return the result - // of running consume body with this and the following step - // given a byte sequence bytes: return a new ArrayBuffer - // whose contents are bytes. - return specConsumeBody(this, (bytes) => { - return new Uint8Array(bytes).buffer - }, instance) - }, - - text () { - // The text() method steps are to return the result of running - // consume body with this and UTF-8 decode. - return specConsumeBody(this, utf8DecodeBytes, instance) - }, - - json () { - // The json() method steps are to return the result of running - // consume body with this and parse JSON from bytes. - return specConsumeBody(this, parseJSONFromBytes, instance) - }, - - async formData () { - webidl.brandCheck(this, instance) - - throwIfAborted(this[kState]) - - const contentType = this.headers.get('Content-Type') - - // If mimeType’s essence is "multipart/form-data", then: - if (/multipart\/form-data/.test(contentType)) { - const headers = {} - for (const [key, value] of this.headers) headers[key.toLowerCase()] = value - - const responseFormData = new FormData() - - let busboy - - try { - busboy = new Busboy({ - headers, - preservePath: true - }) - } catch (err) { - throw new DOMException(`${err}`, 'AbortError') - } - - busboy.on('field', (name, value) => { - responseFormData.append(name, value) - }) - busboy.on('file', (name, value, filename, encoding, mimeType) => { - const chunks = [] - - if (encoding === 'base64' || encoding.toLowerCase() === 'base64') { - let base64chunk = '' - - value.on('data', (chunk) => { - base64chunk += chunk.toString().replace(/[\r\n]/gm, '') - - const end = base64chunk.length - base64chunk.length % 4 - chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64')) - - base64chunk = base64chunk.slice(end) - }) - value.on('end', () => { - chunks.push(Buffer.from(base64chunk, 'base64')) - responseFormData.append(name, new File(chunks, filename, { type: mimeType })) - }) - } else { - value.on('data', (chunk) => { - chunks.push(chunk) - }) - value.on('end', () => { - responseFormData.append(name, new File(chunks, filename, { type: mimeType })) - }) - } - }) - - const busboyResolve = new Promise((resolve, reject) => { - busboy.on('finish', resolve) - busboy.on('error', (err) => reject(new TypeError(err))) - }) - - if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk) - busboy.end() - await busboyResolve - - return responseFormData - } else if (/application\/x-www-form-urlencoded/.test(contentType)) { - // Otherwise, if mimeType’s essence is "application/x-www-form-urlencoded", then: - - // 1. Let entries be the result of parsing bytes. - let entries - try { - let text = '' - // application/x-www-form-urlencoded parser will keep the BOM. - // https://url.spec.whatwg.org/#concept-urlencoded-parser - // Note that streaming decoder is stateful and cannot be reused - const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true }) - - for await (const chunk of consumeBody(this[kState].body)) { - if (!isUint8Array(chunk)) { - throw new TypeError('Expected Uint8Array chunk') - } - text += streamingDecoder.decode(chunk, { stream: true }) - } - text += streamingDecoder.decode() - entries = new URLSearchParams(text) - } catch (err) { - // istanbul ignore next: Unclear when new URLSearchParams can fail on a string. - // 2. If entries is failure, then throw a TypeError. - throw Object.assign(new TypeError(), { cause: err }) - } - - // 3. Return a new FormData object whose entries are entries. - const formData = new FormData() - for (const [name, value] of entries) { - formData.append(name, value) - } - return formData - } else { - // Wait a tick before checking if the request has been aborted. - // Otherwise, a TypeError can be thrown when an AbortError should. - await Promise.resolve() - - throwIfAborted(this[kState]) - - // Otherwise, throw a TypeError. - throw webidl.errors.exception({ - header: `${instance.name}.formData`, - message: 'Could not parse content as FormData.' - }) - } - } - } - - return methods -} - -function mixinBody (prototype) { - Object.assign(prototype.prototype, bodyMixinMethods(prototype)) -} - -/** - * @see https://fetch.spec.whatwg.org/#concept-body-consume-body - * @param {Response|Request} object - * @param {(value: unknown) => unknown} convertBytesToJSValue - * @param {Response|Request} instance - */ -async function specConsumeBody (object, convertBytesToJSValue, instance) { - webidl.brandCheck(object, instance) - - throwIfAborted(object[kState]) - - // 1. If object is unusable, then return a promise rejected - // with a TypeError. - if (bodyUnusable(object[kState].body)) { - throw new TypeError('Body is unusable') - } - - // 2. Let promise be a new promise. - const promise = createDeferredPromise() - - // 3. Let errorSteps given error be to reject promise with error. - const errorSteps = (error) => promise.reject(error) - - // 4. Let successSteps given a byte sequence data be to resolve - // promise with the result of running convertBytesToJSValue - // with data. If that threw an exception, then run errorSteps - // with that exception. - const successSteps = (data) => { - try { - promise.resolve(convertBytesToJSValue(data)) - } catch (e) { - errorSteps(e) - } - } - - // 5. If object’s body is null, then run successSteps with an - // empty byte sequence. - if (object[kState].body == null) { - successSteps(new Uint8Array()) - return promise.promise - } - - // 6. Otherwise, fully read object’s body given successSteps, - // errorSteps, and object’s relevant global object. - await fullyReadBody(object[kState].body, successSteps, errorSteps) - - // 7. Return promise. - return promise.promise -} - -// https://fetch.spec.whatwg.org/#body-unusable -function bodyUnusable (body) { - // An object including the Body interface mixin is - // said to be unusable if its body is non-null and - // its body’s stream is disturbed or locked. - return body != null && (body.stream.locked || util.isDisturbed(body.stream)) -} - -/** - * @see https://encoding.spec.whatwg.org/#utf-8-decode - * @param {Buffer} buffer - */ -function utf8DecodeBytes (buffer) { - if (buffer.length === 0) { - return '' - } - - // 1. Let buffer be the result of peeking three bytes from - // ioQueue, converted to a byte sequence. - - // 2. If buffer is 0xEF 0xBB 0xBF, then read three - // bytes from ioQueue. (Do nothing with those bytes.) - if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { - buffer = buffer.subarray(3) - } - - // 3. Process a queue with an instance of UTF-8’s - // decoder, ioQueue, output, and "replacement". - const output = textDecoder.decode(buffer) - - // 4. Return output. - return output -} - -/** - * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value - * @param {Uint8Array} bytes - */ -function parseJSONFromBytes (bytes) { - return JSON.parse(utf8DecodeBytes(bytes)) -} - -/** - * @see https://fetch.spec.whatwg.org/#concept-body-mime-type - * @param {import('./response').Response|import('./request').Request} object - */ -function bodyMimeType (object) { - const { headersList } = object[kState] - const contentType = headersList.get('content-type') - - if (contentType === null) { - return 'failure' - } - - return parseMIMEType(contentType) -} - -module.exports = { - extractBody, - safelyExtractBody, - cloneBody, - mixinBody -} - - -/***/ }), - -/***/ 1356: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { MessageChannel, receiveMessageOnPort } = __nccwpck_require__(8167) - -const corsSafeListedMethods = ['GET', 'HEAD', 'POST'] -const corsSafeListedMethodsSet = new Set(corsSafeListedMethods) - -const nullBodyStatus = [101, 204, 205, 304] - -const redirectStatus = [301, 302, 303, 307, 308] -const redirectStatusSet = new Set(redirectStatus) - -// https://fetch.spec.whatwg.org/#block-bad-port -const badPorts = [ - '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79', - '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137', - '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532', - '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723', - '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697', - '10080' -] - -const badPortsSet = new Set(badPorts) - -// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies -const referrerPolicy = [ - '', - 'no-referrer', - 'no-referrer-when-downgrade', - 'same-origin', - 'origin', - 'strict-origin', - 'origin-when-cross-origin', - 'strict-origin-when-cross-origin', - 'unsafe-url' -] -const referrerPolicySet = new Set(referrerPolicy) - -const requestRedirect = ['follow', 'manual', 'error'] - -const safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE'] -const safeMethodsSet = new Set(safeMethods) - -const requestMode = ['navigate', 'same-origin', 'no-cors', 'cors'] - -const requestCredentials = ['omit', 'same-origin', 'include'] - -const requestCache = [ - 'default', - 'no-store', - 'reload', - 'no-cache', - 'force-cache', - 'only-if-cached' -] - -// https://fetch.spec.whatwg.org/#request-body-header-name -const requestBodyHeader = [ - 'content-encoding', - 'content-language', - 'content-location', - 'content-type', - // See https://github.com/nodejs/undici/issues/2021 - // 'Content-Length' is a forbidden header name, which is typically - // removed in the Headers implementation. However, undici doesn't - // filter out headers, so we add it here. - 'content-length' -] - -// https://fetch.spec.whatwg.org/#enumdef-requestduplex -const requestDuplex = [ - 'half' -] - -// http://fetch.spec.whatwg.org/#forbidden-method -const forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK'] -const forbiddenMethodsSet = new Set(forbiddenMethods) - -const subresource = [ - 'audio', - 'audioworklet', - 'font', - 'image', - 'manifest', - 'paintworklet', - 'script', - 'style', - 'track', - 'video', - 'xslt', - '' -] -const subresourceSet = new Set(subresource) - -/** @type {globalThis['DOMException']} */ -const DOMException = globalThis.DOMException ?? (() => { - // DOMException was only made a global in Node v17.0.0, - // but fetch supports >= v16.8. - try { - atob('~') - } catch (err) { - return Object.getPrototypeOf(err).constructor - } -})() - -let channel - -/** @type {globalThis['structuredClone']} */ -const structuredClone = - globalThis.structuredClone ?? - // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js - // structuredClone was added in v17.0.0, but fetch supports v16.8 - function structuredClone (value, options = undefined) { - if (arguments.length === 0) { - throw new TypeError('missing argument') - } - - if (!channel) { - channel = new MessageChannel() - } - channel.port1.unref() - channel.port2.unref() - channel.port1.postMessage(value, options?.transfer) - return receiveMessageOnPort(channel.port2).message - } - -module.exports = { - DOMException, - structuredClone, - subresource, - forbiddenMethods, - requestBodyHeader, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - redirectStatus, - corsSafeListedMethods, - nullBodyStatus, - safeMethods, - badPorts, - requestDuplex, - subresourceSet, - badPortsSet, - redirectStatusSet, - corsSafeListedMethodsSet, - safeMethodsSet, - forbiddenMethodsSet, - referrerPolicySet -} - - -/***/ }), - -/***/ 5892: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const assert = __nccwpck_require__(2613) -const { atob } = __nccwpck_require__(181) -const { isomorphicDecode } = __nccwpck_require__(7189) - -const encoder = new TextEncoder() - -/** - * @see https://mimesniff.spec.whatwg.org/#http-token-code-point - */ -const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/ -const HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/ -/** - * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point - */ -const HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/ - -// https://fetch.spec.whatwg.org/#data-url-processor -/** @param {URL} dataURL */ -function dataURLProcessor (dataURL) { - // 1. Assert: dataURL’s scheme is "data". - assert(dataURL.protocol === 'data:') - - // 2. Let input be the result of running the URL - // serializer on dataURL with exclude fragment - // set to true. - let input = URLSerializer(dataURL, true) - - // 3. Remove the leading "data:" string from input. - input = input.slice(5) - - // 4. Let position point at the start of input. - const position = { position: 0 } - - // 5. Let mimeType be the result of collecting a - // sequence of code points that are not equal - // to U+002C (,), given position. - let mimeType = collectASequenceOfCodePointsFast( - ',', - input, - position - ) - - // 6. Strip leading and trailing ASCII whitespace - // from mimeType. - // Undici implementation note: we need to store the - // length because if the mimetype has spaces removed, - // the wrong amount will be sliced from the input in - // step #9 - const mimeTypeLength = mimeType.length - mimeType = removeASCIIWhitespace(mimeType, true, true) - - // 7. If position is past the end of input, then - // return failure - if (position.position >= input.length) { - return 'failure' - } - - // 8. Advance position by 1. - position.position++ - - // 9. Let encodedBody be the remainder of input. - const encodedBody = input.slice(mimeTypeLength + 1) - - // 10. Let body be the percent-decoding of encodedBody. - let body = stringPercentDecode(encodedBody) - - // 11. If mimeType ends with U+003B (;), followed by - // zero or more U+0020 SPACE, followed by an ASCII - // case-insensitive match for "base64", then: - if (/;(\u0020){0,}base64$/i.test(mimeType)) { - // 1. Let stringBody be the isomorphic decode of body. - const stringBody = isomorphicDecode(body) - - // 2. Set body to the forgiving-base64 decode of - // stringBody. - body = forgivingBase64(stringBody) - - // 3. If body is failure, then return failure. - if (body === 'failure') { - return 'failure' - } - - // 4. Remove the last 6 code points from mimeType. - mimeType = mimeType.slice(0, -6) - - // 5. Remove trailing U+0020 SPACE code points from mimeType, - // if any. - mimeType = mimeType.replace(/(\u0020)+$/, '') - - // 6. Remove the last U+003B (;) code point from mimeType. - mimeType = mimeType.slice(0, -1) - } - - // 12. If mimeType starts with U+003B (;), then prepend - // "text/plain" to mimeType. - if (mimeType.startsWith(';')) { - mimeType = 'text/plain' + mimeType - } - - // 13. Let mimeTypeRecord be the result of parsing - // mimeType. - let mimeTypeRecord = parseMIMEType(mimeType) - - // 14. If mimeTypeRecord is failure, then set - // mimeTypeRecord to text/plain;charset=US-ASCII. - if (mimeTypeRecord === 'failure') { - mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII') - } - - // 15. Return a new data: URL struct whose MIME - // type is mimeTypeRecord and body is body. - // https://fetch.spec.whatwg.org/#data-url-struct - return { mimeType: mimeTypeRecord, body } -} - -// https://url.spec.whatwg.org/#concept-url-serializer -/** - * @param {URL} url - * @param {boolean} excludeFragment - */ -function URLSerializer (url, excludeFragment = false) { - if (!excludeFragment) { - return url.href - } - - const href = url.href - const hashLength = url.hash.length - - return hashLength === 0 ? href : href.substring(0, href.length - hashLength) -} - -// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points -/** - * @param {(char: string) => boolean} condition - * @param {string} input - * @param {{ position: number }} position - */ -function collectASequenceOfCodePoints (condition, input, position) { - // 1. Let result be the empty string. - let result = '' - - // 2. While position doesn’t point past the end of input and the - // code point at position within input meets the condition condition: - while (position.position < input.length && condition(input[position.position])) { - // 1. Append that code point to the end of result. - result += input[position.position] - - // 2. Advance position by 1. - position.position++ - } - - // 3. Return result. - return result -} - -/** - * A faster collectASequenceOfCodePoints that only works when comparing a single character. - * @param {string} char - * @param {string} input - * @param {{ position: number }} position - */ -function collectASequenceOfCodePointsFast (char, input, position) { - const idx = input.indexOf(char, position.position) - const start = position.position - - if (idx === -1) { - position.position = input.length - return input.slice(start) - } - - position.position = idx - return input.slice(start, position.position) -} - -// https://url.spec.whatwg.org/#string-percent-decode -/** @param {string} input */ -function stringPercentDecode (input) { - // 1. Let bytes be the UTF-8 encoding of input. - const bytes = encoder.encode(input) - - // 2. Return the percent-decoding of bytes. - return percentDecode(bytes) -} - -// https://url.spec.whatwg.org/#percent-decode -/** @param {Uint8Array} input */ -function percentDecode (input) { - // 1. Let output be an empty byte sequence. - /** @type {number[]} */ - const output = [] - - // 2. For each byte byte in input: - for (let i = 0; i < input.length; i++) { - const byte = input[i] - - // 1. If byte is not 0x25 (%), then append byte to output. - if (byte !== 0x25) { - output.push(byte) - - // 2. Otherwise, if byte is 0x25 (%) and the next two bytes - // after byte in input are not in the ranges - // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F), - // and 0x61 (a) to 0x66 (f), all inclusive, append byte - // to output. - } else if ( - byte === 0x25 && - !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2])) - ) { - output.push(0x25) - - // 3. Otherwise: - } else { - // 1. Let bytePoint be the two bytes after byte in input, - // decoded, and then interpreted as hexadecimal number. - const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]) - const bytePoint = Number.parseInt(nextTwoBytes, 16) - - // 2. Append a byte whose value is bytePoint to output. - output.push(bytePoint) - - // 3. Skip the next two bytes in input. - i += 2 - } - } - - // 3. Return output. - return Uint8Array.from(output) -} - -// https://mimesniff.spec.whatwg.org/#parse-a-mime-type -/** @param {string} input */ -function parseMIMEType (input) { - // 1. Remove any leading and trailing HTTP whitespace - // from input. - input = removeHTTPWhitespace(input, true, true) - - // 2. Let position be a position variable for input, - // initially pointing at the start of input. - const position = { position: 0 } - - // 3. Let type be the result of collecting a sequence - // of code points that are not U+002F (/) from - // input, given position. - const type = collectASequenceOfCodePointsFast( - '/', - input, - position - ) - - // 4. If type is the empty string or does not solely - // contain HTTP token code points, then return failure. - // https://mimesniff.spec.whatwg.org/#http-token-code-point - if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { - return 'failure' - } - - // 5. If position is past the end of input, then return - // failure - if (position.position > input.length) { - return 'failure' - } - - // 6. Advance position by 1. (This skips past U+002F (/).) - position.position++ - - // 7. Let subtype be the result of collecting a sequence of - // code points that are not U+003B (;) from input, given - // position. - let subtype = collectASequenceOfCodePointsFast( - ';', - input, - position - ) - - // 8. Remove any trailing HTTP whitespace from subtype. - subtype = removeHTTPWhitespace(subtype, false, true) - - // 9. If subtype is the empty string or does not solely - // contain HTTP token code points, then return failure. - if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { - return 'failure' - } - - const typeLowercase = type.toLowerCase() - const subtypeLowercase = subtype.toLowerCase() - - // 10. Let mimeType be a new MIME type record whose type - // is type, in ASCII lowercase, and subtype is subtype, - // in ASCII lowercase. - // https://mimesniff.spec.whatwg.org/#mime-type - const mimeType = { - type: typeLowercase, - subtype: subtypeLowercase, - /** @type {Map} */ - parameters: new Map(), - // https://mimesniff.spec.whatwg.org/#mime-type-essence - essence: `${typeLowercase}/${subtypeLowercase}` - } - - // 11. While position is not past the end of input: - while (position.position < input.length) { - // 1. Advance position by 1. (This skips past U+003B (;).) - position.position++ - - // 2. Collect a sequence of code points that are HTTP - // whitespace from input given position. - collectASequenceOfCodePoints( - // https://fetch.spec.whatwg.org/#http-whitespace - char => HTTP_WHITESPACE_REGEX.test(char), - input, - position - ) - - // 3. Let parameterName be the result of collecting a - // sequence of code points that are not U+003B (;) - // or U+003D (=) from input, given position. - let parameterName = collectASequenceOfCodePoints( - (char) => char !== ';' && char !== '=', - input, - position - ) - - // 4. Set parameterName to parameterName, in ASCII - // lowercase. - parameterName = parameterName.toLowerCase() - - // 5. If position is not past the end of input, then: - if (position.position < input.length) { - // 1. If the code point at position within input is - // U+003B (;), then continue. - if (input[position.position] === ';') { - continue - } - - // 2. Advance position by 1. (This skips past U+003D (=).) - position.position++ - } - - // 6. If position is past the end of input, then break. - if (position.position > input.length) { - break - } - - // 7. Let parameterValue be null. - let parameterValue = null - - // 8. If the code point at position within input is - // U+0022 ("), then: - if (input[position.position] === '"') { - // 1. Set parameterValue to the result of collecting - // an HTTP quoted string from input, given position - // and the extract-value flag. - parameterValue = collectAnHTTPQuotedString(input, position, true) - - // 2. Collect a sequence of code points that are not - // U+003B (;) from input, given position. - collectASequenceOfCodePointsFast( - ';', - input, - position - ) - - // 9. Otherwise: - } else { - // 1. Set parameterValue to the result of collecting - // a sequence of code points that are not U+003B (;) - // from input, given position. - parameterValue = collectASequenceOfCodePointsFast( - ';', - input, - position - ) - - // 2. Remove any trailing HTTP whitespace from parameterValue. - parameterValue = removeHTTPWhitespace(parameterValue, false, true) - - // 3. If parameterValue is the empty string, then continue. - if (parameterValue.length === 0) { - continue - } - } - - // 10. If all of the following are true - // - parameterName is not the empty string - // - parameterName solely contains HTTP token code points - // - parameterValue solely contains HTTP quoted-string token code points - // - mimeType’s parameters[parameterName] does not exist - // then set mimeType’s parameters[parameterName] to parameterValue. - if ( - parameterName.length !== 0 && - HTTP_TOKEN_CODEPOINTS.test(parameterName) && - (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && - !mimeType.parameters.has(parameterName) - ) { - mimeType.parameters.set(parameterName, parameterValue) - } - } - - // 12. Return mimeType. - return mimeType -} - -// https://infra.spec.whatwg.org/#forgiving-base64-decode -/** @param {string} data */ -function forgivingBase64 (data) { - // 1. Remove all ASCII whitespace from data. - data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, '') - - // 2. If data’s code point length divides by 4 leaving - // no remainder, then: - if (data.length % 4 === 0) { - // 1. If data ends with one or two U+003D (=) code points, - // then remove them from data. - data = data.replace(/=?=$/, '') - } - - // 3. If data’s code point length divides by 4 leaving - // a remainder of 1, then return failure. - if (data.length % 4 === 1) { - return 'failure' - } - - // 4. If data contains a code point that is not one of - // U+002B (+) - // U+002F (/) - // ASCII alphanumeric - // then return failure. - if (/[^+/0-9A-Za-z]/.test(data)) { - return 'failure' - } - - const binary = atob(data) - const bytes = new Uint8Array(binary.length) - - for (let byte = 0; byte < binary.length; byte++) { - bytes[byte] = binary.charCodeAt(byte) - } - - return bytes -} - -// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string -// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string -/** - * @param {string} input - * @param {{ position: number }} position - * @param {boolean?} extractValue - */ -function collectAnHTTPQuotedString (input, position, extractValue) { - // 1. Let positionStart be position. - const positionStart = position.position - - // 2. Let value be the empty string. - let value = '' - - // 3. Assert: the code point at position within input - // is U+0022 ("). - assert(input[position.position] === '"') - - // 4. Advance position by 1. - position.position++ - - // 5. While true: - while (true) { - // 1. Append the result of collecting a sequence of code points - // that are not U+0022 (") or U+005C (\) from input, given - // position, to value. - value += collectASequenceOfCodePoints( - (char) => char !== '"' && char !== '\\', - input, - position - ) - - // 2. If position is past the end of input, then break. - if (position.position >= input.length) { - break - } - - // 3. Let quoteOrBackslash be the code point at position within - // input. - const quoteOrBackslash = input[position.position] - - // 4. Advance position by 1. - position.position++ - - // 5. If quoteOrBackslash is U+005C (\), then: - if (quoteOrBackslash === '\\') { - // 1. If position is past the end of input, then append - // U+005C (\) to value and break. - if (position.position >= input.length) { - value += '\\' - break - } - - // 2. Append the code point at position within input to value. - value += input[position.position] - - // 3. Advance position by 1. - position.position++ - - // 6. Otherwise: - } else { - // 1. Assert: quoteOrBackslash is U+0022 ("). - assert(quoteOrBackslash === '"') - - // 2. Break. - break - } - } - - // 6. If the extract-value flag is set, then return value. - if (extractValue) { - return value - } - - // 7. Return the code points from positionStart to position, - // inclusive, within input. - return input.slice(positionStart, position.position) -} - -/** - * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type - */ -function serializeAMimeType (mimeType) { - assert(mimeType !== 'failure') - const { parameters, essence } = mimeType - - // 1. Let serialization be the concatenation of mimeType’s - // type, U+002F (/), and mimeType’s subtype. - let serialization = essence - - // 2. For each name → value of mimeType’s parameters: - for (let [name, value] of parameters.entries()) { - // 1. Append U+003B (;) to serialization. - serialization += ';' - - // 2. Append name to serialization. - serialization += name - - // 3. Append U+003D (=) to serialization. - serialization += '=' - - // 4. If value does not solely contain HTTP token code - // points or value is the empty string, then: - if (!HTTP_TOKEN_CODEPOINTS.test(value)) { - // 1. Precede each occurence of U+0022 (") or - // U+005C (\) in value with U+005C (\). - value = value.replace(/(\\|")/g, '\\$1') - - // 2. Prepend U+0022 (") to value. - value = '"' + value - - // 3. Append U+0022 (") to value. - value += '"' - } - - // 5. Append value to serialization. - serialization += value - } - - // 3. Return serialization. - return serialization -} - -/** - * @see https://fetch.spec.whatwg.org/#http-whitespace - * @param {string} char - */ -function isHTTPWhiteSpace (char) { - return char === '\r' || char === '\n' || char === '\t' || char === ' ' -} - -/** - * @see https://fetch.spec.whatwg.org/#http-whitespace - * @param {string} str - */ -function removeHTTPWhitespace (str, leading = true, trailing = true) { - let lead = 0 - let trail = str.length - 1 - - if (leading) { - for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++); - } - - if (trailing) { - for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--); - } - - return str.slice(lead, trail + 1) -} - -/** - * @see https://infra.spec.whatwg.org/#ascii-whitespace - * @param {string} char - */ -function isASCIIWhitespace (char) { - return char === '\r' || char === '\n' || char === '\t' || char === '\f' || char === ' ' -} - -/** - * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace - */ -function removeASCIIWhitespace (str, leading = true, trailing = true) { - let lead = 0 - let trail = str.length - 1 - - if (leading) { - for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++); - } - - if (trailing) { - for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--); - } - - return str.slice(lead, trail + 1) -} - -module.exports = { - dataURLProcessor, - URLSerializer, - collectASequenceOfCodePoints, - collectASequenceOfCodePointsFast, - stringPercentDecode, - parseMIMEType, - collectAnHTTPQuotedString, - serializeAMimeType -} - - -/***/ }), - -/***/ 3791: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { Blob, File: NativeFile } = __nccwpck_require__(181) -const { types } = __nccwpck_require__(9023) -const { kState } = __nccwpck_require__(4236) -const { isBlobLike } = __nccwpck_require__(7189) -const { webidl } = __nccwpck_require__(7472) -const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(5892) -const { kEnumerableProperty } = __nccwpck_require__(162) -const encoder = new TextEncoder() - -class File extends Blob { - constructor (fileBits, fileName, options = {}) { - // The File constructor is invoked with two or three parameters, depending - // on whether the optional dictionary parameter is used. When the File() - // constructor is invoked, user agents must run the following steps: - webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' }) - - fileBits = webidl.converters['sequence'](fileBits) - fileName = webidl.converters.USVString(fileName) - options = webidl.converters.FilePropertyBag(options) - - // 1. Let bytes be the result of processing blob parts given fileBits and - // options. - // Note: Blob handles this for us - - // 2. Let n be the fileName argument to the constructor. - const n = fileName - - // 3. Process FilePropertyBag dictionary argument by running the following - // substeps: - - // 1. If the type member is provided and is not the empty string, let t - // be set to the type dictionary member. If t contains any characters - // outside the range U+0020 to U+007E, then set t to the empty string - // and return from these substeps. - // 2. Convert every character in t to ASCII lowercase. - let t = options.type - let d - - - substep: { - if (t) { - t = parseMIMEType(t) - - if (t === 'failure') { - t = '' - - break substep - } - - t = serializeAMimeType(t).toLowerCase() - } - - // 3. If the lastModified member is provided, let d be set to the - // lastModified dictionary member. If it is not provided, set d to the - // current date and time represented as the number of milliseconds since - // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). - d = options.lastModified - } - - // 4. Return a new File object F such that: - // F refers to the bytes byte sequence. - // F.size is set to the number of total bytes in bytes. - // F.name is set to n. - // F.type is set to t. - // F.lastModified is set to d. - - super(processBlobParts(fileBits, options), { type: t }) - this[kState] = { - name: n, - lastModified: d, - type: t - } - } - - get name () { - webidl.brandCheck(this, File) - - return this[kState].name - } - - get lastModified () { - webidl.brandCheck(this, File) - - return this[kState].lastModified - } - - get type () { - webidl.brandCheck(this, File) - - return this[kState].type - } -} - -class FileLike { - constructor (blobLike, fileName, options = {}) { - // TODO: argument idl type check - - // The File constructor is invoked with two or three parameters, depending - // on whether the optional dictionary parameter is used. When the File() - // constructor is invoked, user agents must run the following steps: - - // 1. Let bytes be the result of processing blob parts given fileBits and - // options. - - // 2. Let n be the fileName argument to the constructor. - const n = fileName - - // 3. Process FilePropertyBag dictionary argument by running the following - // substeps: - - // 1. If the type member is provided and is not the empty string, let t - // be set to the type dictionary member. If t contains any characters - // outside the range U+0020 to U+007E, then set t to the empty string - // and return from these substeps. - // TODO - const t = options.type - - // 2. Convert every character in t to ASCII lowercase. - // TODO - - // 3. If the lastModified member is provided, let d be set to the - // lastModified dictionary member. If it is not provided, set d to the - // current date and time represented as the number of milliseconds since - // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). - const d = options.lastModified ?? Date.now() - - // 4. Return a new File object F such that: - // F refers to the bytes byte sequence. - // F.size is set to the number of total bytes in bytes. - // F.name is set to n. - // F.type is set to t. - // F.lastModified is set to d. - - this[kState] = { - blobLike, - name: n, - type: t, - lastModified: d - } - } - - stream (...args) { - webidl.brandCheck(this, FileLike) - - return this[kState].blobLike.stream(...args) - } - - arrayBuffer (...args) { - webidl.brandCheck(this, FileLike) - - return this[kState].blobLike.arrayBuffer(...args) - } - - slice (...args) { - webidl.brandCheck(this, FileLike) - - return this[kState].blobLike.slice(...args) - } - - text (...args) { - webidl.brandCheck(this, FileLike) - - return this[kState].blobLike.text(...args) - } - - get size () { - webidl.brandCheck(this, FileLike) - - return this[kState].blobLike.size - } - - get type () { - webidl.brandCheck(this, FileLike) - - return this[kState].blobLike.type - } - - get name () { - webidl.brandCheck(this, FileLike) - - return this[kState].name - } - - get lastModified () { - webidl.brandCheck(this, FileLike) - - return this[kState].lastModified - } - - get [Symbol.toStringTag] () { - return 'File' - } -} - -Object.defineProperties(File.prototype, { - [Symbol.toStringTag]: { - value: 'File', - configurable: true - }, - name: kEnumerableProperty, - lastModified: kEnumerableProperty -}) - -webidl.converters.Blob = webidl.interfaceConverter(Blob) - -webidl.converters.BlobPart = function (V, opts) { - if (webidl.util.Type(V) === 'Object') { - if (isBlobLike(V)) { - return webidl.converters.Blob(V, { strict: false }) - } - - if ( - ArrayBuffer.isView(V) || - types.isAnyArrayBuffer(V) - ) { - return webidl.converters.BufferSource(V, opts) - } - } - - return webidl.converters.USVString(V, opts) -} - -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.BlobPart -) - -// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag -webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ - { - key: 'lastModified', - converter: webidl.converters['long long'], - get defaultValue () { - return Date.now() - } - }, - { - key: 'type', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'endings', - converter: (value) => { - value = webidl.converters.DOMString(value) - value = value.toLowerCase() - - if (value !== 'native') { - value = 'transparent' - } - - return value - }, - defaultValue: 'transparent' - } -]) - -/** - * @see https://www.w3.org/TR/FileAPI/#process-blob-parts - * @param {(NodeJS.TypedArray|Blob|string)[]} parts - * @param {{ type: string, endings: string }} options - */ -function processBlobParts (parts, options) { - // 1. Let bytes be an empty sequence of bytes. - /** @type {NodeJS.TypedArray[]} */ - const bytes = [] - - // 2. For each element in parts: - for (const element of parts) { - // 1. If element is a USVString, run the following substeps: - if (typeof element === 'string') { - // 1. Let s be element. - let s = element - - // 2. If the endings member of options is "native", set s - // to the result of converting line endings to native - // of element. - if (options.endings === 'native') { - s = convertLineEndingsNative(s) - } - - // 3. Append the result of UTF-8 encoding s to bytes. - bytes.push(encoder.encode(s)) - } else if ( - types.isAnyArrayBuffer(element) || - types.isTypedArray(element) - ) { - // 2. If element is a BufferSource, get a copy of the - // bytes held by the buffer source, and append those - // bytes to bytes. - if (!element.buffer) { // ArrayBuffer - bytes.push(new Uint8Array(element)) - } else { - bytes.push( - new Uint8Array(element.buffer, element.byteOffset, element.byteLength) - ) - } - } else if (isBlobLike(element)) { - // 3. If element is a Blob, append the bytes it represents - // to bytes. - bytes.push(element) - } - } - - // 3. Return bytes. - return bytes -} - -/** - * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native - * @param {string} s - */ -function convertLineEndingsNative (s) { - // 1. Let native line ending be be the code point U+000A LF. - let nativeLineEnding = '\n' - - // 2. If the underlying platform’s conventions are to - // represent newlines as a carriage return and line feed - // sequence, set native line ending to the code point - // U+000D CR followed by the code point U+000A LF. - if (process.platform === 'win32') { - nativeLineEnding = '\r\n' - } - - return s.replace(/\r?\n/g, nativeLineEnding) -} - -// If this function is moved to ./util.js, some tools (such as -// rollup) will warn about circular dependencies. See: -// https://github.com/nodejs/undici/issues/1629 -function isFileLike (object) { - return ( - (NativeFile && object instanceof NativeFile) || - object instanceof File || ( - object && - (typeof object.stream === 'function' || - typeof object.arrayBuffer === 'function') && - object[Symbol.toStringTag] === 'File' - ) - ) -} - -module.exports = { File, FileLike, isFileLike } - - -/***/ }), - -/***/ 3639: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { isBlobLike, toUSVString, makeIterator } = __nccwpck_require__(7189) -const { kState } = __nccwpck_require__(4236) -const { File: UndiciFile, FileLike, isFileLike } = __nccwpck_require__(3791) -const { webidl } = __nccwpck_require__(7472) -const { Blob, File: NativeFile } = __nccwpck_require__(181) - -/** @type {globalThis['File']} */ -const File = NativeFile ?? UndiciFile - -// https://xhr.spec.whatwg.org/#formdata -class FormData { - constructor (form) { - if (form !== undefined) { - throw webidl.errors.conversionFailed({ - prefix: 'FormData constructor', - argument: 'Argument 1', - types: ['undefined'] - }) - } - - this[kState] = [] - } - - append (name, value, filename = undefined) { - webidl.brandCheck(this, FormData) - - webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' }) - - if (arguments.length === 3 && !isBlobLike(value)) { - throw new TypeError( - "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" - ) - } - - // 1. Let value be value if given; otherwise blobValue. - - name = webidl.converters.USVString(name) - value = isBlobLike(value) - ? webidl.converters.Blob(value, { strict: false }) - : webidl.converters.USVString(value) - filename = arguments.length === 3 - ? webidl.converters.USVString(filename) - : undefined - - // 2. Let entry be the result of creating an entry with - // name, value, and filename if given. - const entry = makeEntry(name, value, filename) - - // 3. Append entry to this’s entry list. - this[kState].push(entry) - } - - delete (name) { - webidl.brandCheck(this, FormData) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' }) - - name = webidl.converters.USVString(name) - - // The delete(name) method steps are to remove all entries whose name - // is name from this’s entry list. - this[kState] = this[kState].filter(entry => entry.name !== name) - } - - get (name) { - webidl.brandCheck(this, FormData) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' }) - - name = webidl.converters.USVString(name) - - // 1. If there is no entry whose name is name in this’s entry list, - // then return null. - const idx = this[kState].findIndex((entry) => entry.name === name) - if (idx === -1) { - return null - } - - // 2. Return the value of the first entry whose name is name from - // this’s entry list. - return this[kState][idx].value - } - - getAll (name) { - webidl.brandCheck(this, FormData) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' }) - - name = webidl.converters.USVString(name) - - // 1. If there is no entry whose name is name in this’s entry list, - // then return the empty list. - // 2. Return the values of all entries whose name is name, in order, - // from this’s entry list. - return this[kState] - .filter((entry) => entry.name === name) - .map((entry) => entry.value) - } - - has (name) { - webidl.brandCheck(this, FormData) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' }) - - name = webidl.converters.USVString(name) - - // The has(name) method steps are to return true if there is an entry - // whose name is name in this’s entry list; otherwise false. - return this[kState].findIndex((entry) => entry.name === name) !== -1 - } - - set (name, value, filename = undefined) { - webidl.brandCheck(this, FormData) - - webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' }) - - if (arguments.length === 3 && !isBlobLike(value)) { - throw new TypeError( - "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" - ) - } - - // The set(name, value) and set(name, blobValue, filename) method steps - // are: - - // 1. Let value be value if given; otherwise blobValue. - - name = webidl.converters.USVString(name) - value = isBlobLike(value) - ? webidl.converters.Blob(value, { strict: false }) - : webidl.converters.USVString(value) - filename = arguments.length === 3 - ? toUSVString(filename) - : undefined - - // 2. Let entry be the result of creating an entry with name, value, and - // filename if given. - const entry = makeEntry(name, value, filename) - - // 3. If there are entries in this’s entry list whose name is name, then - // replace the first such entry with entry and remove the others. - const idx = this[kState].findIndex((entry) => entry.name === name) - if (idx !== -1) { - this[kState] = [ - ...this[kState].slice(0, idx), - entry, - ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name) - ] - } else { - // 4. Otherwise, append entry to this’s entry list. - this[kState].push(entry) - } - } - - entries () { - webidl.brandCheck(this, FormData) - - return makeIterator( - () => this[kState].map(pair => [pair.name, pair.value]), - 'FormData', - 'key+value' - ) - } - - keys () { - webidl.brandCheck(this, FormData) - - return makeIterator( - () => this[kState].map(pair => [pair.name, pair.value]), - 'FormData', - 'key' - ) - } - - values () { - webidl.brandCheck(this, FormData) - - return makeIterator( - () => this[kState].map(pair => [pair.name, pair.value]), - 'FormData', - 'value' - ) - } - - /** - * @param {(value: string, key: string, self: FormData) => void} callbackFn - * @param {unknown} thisArg - */ - forEach (callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, FormData) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' }) - - if (typeof callbackFn !== 'function') { - throw new TypeError( - "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." - ) - } - - for (const [key, value] of this) { - callbackFn.apply(thisArg, [value, key, this]) - } - } -} - -FormData.prototype[Symbol.iterator] = FormData.prototype.entries - -Object.defineProperties(FormData.prototype, { - [Symbol.toStringTag]: { - value: 'FormData', - configurable: true - } -}) - -/** - * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry - * @param {string} name - * @param {string|Blob} value - * @param {?string} filename - * @returns - */ -function makeEntry (name, value, filename) { - // 1. Set name to the result of converting name into a scalar value string. - // "To convert a string into a scalar value string, replace any surrogates - // with U+FFFD." - // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end - name = Buffer.from(name).toString('utf8') - - // 2. If value is a string, then set value to the result of converting - // value into a scalar value string. - if (typeof value === 'string') { - value = Buffer.from(value).toString('utf8') - } else { - // 3. Otherwise: - - // 1. If value is not a File object, then set value to a new File object, - // representing the same bytes, whose name attribute value is "blob" - if (!isFileLike(value)) { - value = value instanceof Blob - ? new File([value], 'blob', { type: value.type }) - : new FileLike(value, 'blob', { type: value.type }) - } - - // 2. If filename is given, then set value to a new File object, - // representing the same bytes, whose name attribute is filename. - if (filename !== undefined) { - /** @type {FilePropertyBag} */ - const options = { - type: value.type, - lastModified: value.lastModified - } - - value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile - ? new File([value], filename, options) - : new FileLike(value, filename, options) - } - } - - // 4. Return an entry whose name is name and whose value is value. - return { name, value } -} - -module.exports = { FormData } - - -/***/ }), - -/***/ 2498: -/***/ ((module) => { - - - -// In case of breaking changes, increase the version -// number to avoid conflicts. -const globalOrigin = Symbol.for('undici.globalOrigin.1') - -function getGlobalOrigin () { - return globalThis[globalOrigin] -} - -function setGlobalOrigin (newOrigin) { - if (newOrigin === undefined) { - Object.defineProperty(globalThis, globalOrigin, { - value: undefined, - writable: true, - enumerable: false, - configurable: false - }) - - return - } - - const parsedURL = new URL(newOrigin) - - if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') { - throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`) - } - - Object.defineProperty(globalThis, globalOrigin, { - value: parsedURL, - writable: true, - enumerable: false, - configurable: false - }) -} - -module.exports = { - getGlobalOrigin, - setGlobalOrigin -} - - -/***/ }), - -/***/ 6203: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -// https://github.com/Ethan-Arrowood/undici-fetch - - - -const { kHeadersList, kConstruct } = __nccwpck_require__(249) -const { kGuard } = __nccwpck_require__(4236) -const { kEnumerableProperty } = __nccwpck_require__(162) -const { - makeIterator, - isValidHeaderName, - isValidHeaderValue -} = __nccwpck_require__(7189) -const { webidl } = __nccwpck_require__(7472) -const assert = __nccwpck_require__(2613) - -const kHeadersMap = Symbol('headers map') -const kHeadersSortedMap = Symbol('headers map sorted') - -/** - * @param {number} code - */ -function isHTTPWhiteSpaceCharCode (code) { - return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020 -} - -/** - * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize - * @param {string} potentialValue - */ -function headerValueNormalize (potentialValue) { - // To normalize a byte sequence potentialValue, remove - // any leading and trailing HTTP whitespace bytes from - // potentialValue. - let i = 0; let j = potentialValue.length - - while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j - while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i - - return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j) -} - -function fill (headers, object) { - // To fill a Headers object headers with a given object object, run these steps: - - // 1. If object is a sequence, then for each header in object: - // Note: webidl conversion to array has already been done. - if (Array.isArray(object)) { - for (let i = 0; i < object.length; ++i) { - const header = object[i] - // 1. If header does not contain exactly two items, then throw a TypeError. - if (header.length !== 2) { - throw webidl.errors.exception({ - header: 'Headers constructor', - message: `expected name/value pair to be length 2, found ${header.length}.` - }) - } - - // 2. Append (header’s first item, header’s second item) to headers. - appendHeader(headers, header[0], header[1]) - } - } else if (typeof object === 'object' && object !== null) { - // Note: null should throw - - // 2. Otherwise, object is a record, then for each key → value in object, - // append (key, value) to headers - const keys = Object.keys(object) - for (let i = 0; i < keys.length; ++i) { - appendHeader(headers, keys[i], object[keys[i]]) - } - } else { - throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: ['sequence>', 'record'] - }) - } -} - -/** - * @see https://fetch.spec.whatwg.org/#concept-headers-append - */ -function appendHeader (headers, name, value) { - // 1. Normalize value. - value = headerValueNormalize(value) - - // 2. If name is not a header name or value is not a - // header value, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value: name, - type: 'header name' - }) - } else if (!isValidHeaderValue(value)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.append', - value, - type: 'header value' - }) - } - - // 3. If headers’s guard is "immutable", then throw a TypeError. - // 4. Otherwise, if headers’s guard is "request" and name is a - // forbidden header name, return. - // Note: undici does not implement forbidden header names - if (headers[kGuard] === 'immutable') { - throw new TypeError('immutable') - } else if (headers[kGuard] === 'request-no-cors') { - // 5. Otherwise, if headers’s guard is "request-no-cors": - // TODO - } - - // 6. Otherwise, if headers’s guard is "response" and name is a - // forbidden response-header name, return. - - // 7. Append (name, value) to headers’s header list. - return headers[kHeadersList].append(name, value) - - // 8. If headers’s guard is "request-no-cors", then remove - // privileged no-CORS request headers from headers -} - -class HeadersList { - /** @type {[string, string][]|null} */ - cookies = null - - constructor (init) { - if (init instanceof HeadersList) { - this[kHeadersMap] = new Map(init[kHeadersMap]) - this[kHeadersSortedMap] = init[kHeadersSortedMap] - this.cookies = init.cookies === null ? null : [...init.cookies] - } else { - this[kHeadersMap] = new Map(init) - this[kHeadersSortedMap] = null - } - } - - // https://fetch.spec.whatwg.org/#header-list-contains - contains (name) { - // A header list list contains a header name name if list - // contains a header whose name is a byte-case-insensitive - // match for name. - name = name.toLowerCase() - - return this[kHeadersMap].has(name) - } - - clear () { - this[kHeadersMap].clear() - this[kHeadersSortedMap] = null - this.cookies = null - } - - // https://fetch.spec.whatwg.org/#concept-header-list-append - append (name, value) { - this[kHeadersSortedMap] = null - - // 1. If list contains name, then set name to the first such - // header’s name. - const lowercaseName = name.toLowerCase() - const exists = this[kHeadersMap].get(lowercaseName) - - // 2. Append (name, value) to list. - if (exists) { - const delimiter = lowercaseName === 'cookie' ? '; ' : ', ' - this[kHeadersMap].set(lowercaseName, { - name: exists.name, - value: `${exists.value}${delimiter}${value}` - }) - } else { - this[kHeadersMap].set(lowercaseName, { name, value }) - } - - if (lowercaseName === 'set-cookie') { - this.cookies ??= [] - this.cookies.push(value) - } - } - - // https://fetch.spec.whatwg.org/#concept-header-list-set - set (name, value) { - this[kHeadersSortedMap] = null - const lowercaseName = name.toLowerCase() - - if (lowercaseName === 'set-cookie') { - this.cookies = [value] - } - - // 1. If list contains name, then set the value of - // the first such header to value and remove the - // others. - // 2. Otherwise, append header (name, value) to list. - this[kHeadersMap].set(lowercaseName, { name, value }) - } - - // https://fetch.spec.whatwg.org/#concept-header-list-delete - delete (name) { - this[kHeadersSortedMap] = null - - name = name.toLowerCase() - - if (name === 'set-cookie') { - this.cookies = null - } - - this[kHeadersMap].delete(name) - } - - // https://fetch.spec.whatwg.org/#concept-header-list-get - get (name) { - const value = this[kHeadersMap].get(name.toLowerCase()) - - // 1. If list does not contain name, then return null. - // 2. Return the values of all headers in list whose name - // is a byte-case-insensitive match for name, - // separated from each other by 0x2C 0x20, in order. - return value === undefined ? null : value.value - } - - * [Symbol.iterator] () { - // use the lowercased name - for (const [name, { value }] of this[kHeadersMap]) { - yield [name, value] - } - } - - get entries () { - const headers = {} - - if (this[kHeadersMap].size) { - for (const { name, value } of this[kHeadersMap].values()) { - headers[name] = value - } - } - - return headers - } -} - -// https://fetch.spec.whatwg.org/#headers-class -class Headers { - constructor (init = undefined) { - if (init === kConstruct) { - return - } - this[kHeadersList] = new HeadersList() - - // The new Headers(init) constructor steps are: - - // 1. Set this’s guard to "none". - this[kGuard] = 'none' - - // 2. If init is given, then fill this with init. - if (init !== undefined) { - init = webidl.converters.HeadersInit(init) - fill(this, init) - } - } - - // https://fetch.spec.whatwg.org/#dom-headers-append - append (name, value) { - webidl.brandCheck(this, Headers) - - webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' }) - - name = webidl.converters.ByteString(name) - value = webidl.converters.ByteString(value) - - return appendHeader(this, name, value) - } - - // https://fetch.spec.whatwg.org/#dom-headers-delete - delete (name) { - webidl.brandCheck(this, Headers) - - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' }) - - name = webidl.converters.ByteString(name) - - // 1. If name is not a header name, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.delete', - value: name, - type: 'header name' - }) - } - - // 2. If this’s guard is "immutable", then throw a TypeError. - // 3. Otherwise, if this’s guard is "request" and name is a - // forbidden header name, return. - // 4. Otherwise, if this’s guard is "request-no-cors", name - // is not a no-CORS-safelisted request-header name, and - // name is not a privileged no-CORS request-header name, - // return. - // 5. Otherwise, if this’s guard is "response" and name is - // a forbidden response-header name, return. - // Note: undici does not implement forbidden header names - if (this[kGuard] === 'immutable') { - throw new TypeError('immutable') - } else if (this[kGuard] === 'request-no-cors') { - // TODO - } - - // 6. If this’s header list does not contain name, then - // return. - if (!this[kHeadersList].contains(name)) { - return - } - - // 7. Delete name from this’s header list. - // 8. If this’s guard is "request-no-cors", then remove - // privileged no-CORS request headers from this. - this[kHeadersList].delete(name) - } - - // https://fetch.spec.whatwg.org/#dom-headers-get - get (name) { - webidl.brandCheck(this, Headers) - - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' }) - - name = webidl.converters.ByteString(name) - - // 1. If name is not a header name, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.get', - value: name, - type: 'header name' - }) - } - - // 2. Return the result of getting name from this’s header - // list. - return this[kHeadersList].get(name) - } - - // https://fetch.spec.whatwg.org/#dom-headers-has - has (name) { - webidl.brandCheck(this, Headers) - - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' }) - - name = webidl.converters.ByteString(name) - - // 1. If name is not a header name, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.has', - value: name, - type: 'header name' - }) - } - - // 2. Return true if this’s header list contains name; - // otherwise false. - return this[kHeadersList].contains(name) - } - - // https://fetch.spec.whatwg.org/#dom-headers-set - set (name, value) { - webidl.brandCheck(this, Headers) - - webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' }) - - name = webidl.converters.ByteString(name) - value = webidl.converters.ByteString(value) - - // 1. Normalize value. - value = headerValueNormalize(value) - - // 2. If name is not a header name or value is not a - // header value, then throw a TypeError. - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value: name, - type: 'header name' - }) - } else if (!isValidHeaderValue(value)) { - throw webidl.errors.invalidArgument({ - prefix: 'Headers.set', - value, - type: 'header value' - }) - } - - // 3. If this’s guard is "immutable", then throw a TypeError. - // 4. Otherwise, if this’s guard is "request" and name is a - // forbidden header name, return. - // 5. Otherwise, if this’s guard is "request-no-cors" and - // name/value is not a no-CORS-safelisted request-header, - // return. - // 6. Otherwise, if this’s guard is "response" and name is a - // forbidden response-header name, return. - // Note: undici does not implement forbidden header names - if (this[kGuard] === 'immutable') { - throw new TypeError('immutable') - } else if (this[kGuard] === 'request-no-cors') { - // TODO - } - - // 7. Set (name, value) in this’s header list. - // 8. If this’s guard is "request-no-cors", then remove - // privileged no-CORS request headers from this - this[kHeadersList].set(name, value) - } - - // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie - getSetCookie () { - webidl.brandCheck(this, Headers) - - // 1. If this’s header list does not contain `Set-Cookie`, then return « ». - // 2. Return the values of all headers in this’s header list whose name is - // a byte-case-insensitive match for `Set-Cookie`, in order. - - const list = this[kHeadersList].cookies - - if (list) { - return [...list] - } - - return [] - } - - // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine - get [kHeadersSortedMap] () { - if (this[kHeadersList][kHeadersSortedMap]) { - return this[kHeadersList][kHeadersSortedMap] - } - - // 1. Let headers be an empty list of headers with the key being the name - // and value the value. - const headers = [] - - // 2. Let names be the result of convert header names to a sorted-lowercase - // set with all the names of the headers in list. - const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1) - const cookies = this[kHeadersList].cookies - - // 3. For each name of names: - for (let i = 0; i < names.length; ++i) { - const [name, value] = names[i] - // 1. If name is `set-cookie`, then: - if (name === 'set-cookie') { - // 1. Let values be a list of all values of headers in list whose name - // is a byte-case-insensitive match for name, in order. - - // 2. For each value of values: - // 1. Append (name, value) to headers. - for (let j = 0; j < cookies.length; ++j) { - headers.push([name, cookies[j]]) - } - } else { - // 2. Otherwise: - - // 1. Let value be the result of getting name from list. - - // 2. Assert: value is non-null. - assert(value !== null) - - // 3. Append (name, value) to headers. - headers.push([name, value]) - } - } - - this[kHeadersList][kHeadersSortedMap] = headers - - // 4. Return headers. - return headers - } - - keys () { - webidl.brandCheck(this, Headers) - - if (this[kGuard] === 'immutable') { - const value = this[kHeadersSortedMap] - return makeIterator(() => value, 'Headers', - 'key') - } - - return makeIterator( - () => [...this[kHeadersSortedMap].values()], - 'Headers', - 'key' - ) - } - - values () { - webidl.brandCheck(this, Headers) - - if (this[kGuard] === 'immutable') { - const value = this[kHeadersSortedMap] - return makeIterator(() => value, 'Headers', - 'value') - } - - return makeIterator( - () => [...this[kHeadersSortedMap].values()], - 'Headers', - 'value' - ) - } - - entries () { - webidl.brandCheck(this, Headers) - - if (this[kGuard] === 'immutable') { - const value = this[kHeadersSortedMap] - return makeIterator(() => value, 'Headers', - 'key+value') - } - - return makeIterator( - () => [...this[kHeadersSortedMap].values()], - 'Headers', - 'key+value' - ) - } - - /** - * @param {(value: string, key: string, self: Headers) => void} callbackFn - * @param {unknown} thisArg - */ - forEach (callbackFn, thisArg = globalThis) { - webidl.brandCheck(this, Headers) - - webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' }) - - if (typeof callbackFn !== 'function') { - throw new TypeError( - "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'." - ) - } - - for (const [key, value] of this) { - callbackFn.apply(thisArg, [value, key, this]) - } - } - - [Symbol.for('nodejs.util.inspect.custom')] () { - webidl.brandCheck(this, Headers) - - return this[kHeadersList] - } -} - -Headers.prototype[Symbol.iterator] = Headers.prototype.entries - -Object.defineProperties(Headers.prototype, { - append: kEnumerableProperty, - delete: kEnumerableProperty, - get: kEnumerableProperty, - has: kEnumerableProperty, - set: kEnumerableProperty, - getSetCookie: kEnumerableProperty, - keys: kEnumerableProperty, - values: kEnumerableProperty, - entries: kEnumerableProperty, - forEach: kEnumerableProperty, - [Symbol.iterator]: { enumerable: false }, - [Symbol.toStringTag]: { - value: 'Headers', - configurable: true - } -}) - -webidl.converters.HeadersInit = function (V) { - if (webidl.util.Type(V) === 'Object') { - if (V[Symbol.iterator]) { - return webidl.converters['sequence>'](V) - } - - return webidl.converters['record'](V) - } - - throw webidl.errors.conversionFailed({ - prefix: 'Headers constructor', - argument: 'Argument 1', - types: ['sequence>', 'record'] - }) -} - -module.exports = { - fill, - Headers, - HeadersList -} - - -/***/ }), - -/***/ 3397: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -// https://github.com/Ethan-Arrowood/undici-fetch - - - -const { - Response, - makeNetworkError, - makeAppropriateNetworkError, - filterResponse, - makeResponse -} = __nccwpck_require__(3258) -const { Headers } = __nccwpck_require__(6203) -const { Request, makeRequest } = __nccwpck_require__(4960) -const zlib = __nccwpck_require__(3106) -const { - bytesMatch, - makePolicyContainer, - clonePolicyContainer, - requestBadPort, - TAOCheck, - appendRequestOriginHeader, - responseLocationURL, - requestCurrentURL, - setRequestReferrerPolicyOnRedirect, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - createOpaqueTimingInfo, - appendFetchMetadata, - corsCheck, - crossOriginResourcePolicyCheck, - determineRequestsReferrer, - coarsenedSharedCurrentTime, - createDeferredPromise, - isBlobLike, - sameOrigin, - isCancelled, - isAborted, - isErrorLike, - fullyReadBody, - readableStreamClose, - isomorphicEncode, - urlIsLocal, - urlIsHttpHttpsScheme, - urlHasHttpsScheme -} = __nccwpck_require__(7189) -const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(4236) -const assert = __nccwpck_require__(2613) -const { safelyExtractBody } = __nccwpck_require__(3893) -const { - redirectStatusSet, - nullBodyStatus, - safeMethodsSet, - requestBodyHeader, - subresourceSet, - DOMException -} = __nccwpck_require__(1356) -const { kHeadersList } = __nccwpck_require__(249) -const EE = __nccwpck_require__(4434) -const { Readable, pipeline } = __nccwpck_require__(2203) -const { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = __nccwpck_require__(162) -const { dataURLProcessor, serializeAMimeType } = __nccwpck_require__(5892) -const { TransformStream } = __nccwpck_require__(3774) -const { getGlobalDispatcher } = __nccwpck_require__(8127) -const { webidl } = __nccwpck_require__(7472) -const { STATUS_CODES } = __nccwpck_require__(8611) -const GET_OR_HEAD = ['GET', 'HEAD'] - -/** @type {import('buffer').resolveObjectURL} */ -let resolveObjectURL -let ReadableStream = globalThis.ReadableStream - -class Fetch extends EE { - constructor (dispatcher) { - super() - - this.dispatcher = dispatcher - this.connection = null - this.dump = false - this.state = 'ongoing' - // 2 terminated listeners get added per request, - // but only 1 gets removed. If there are 20 redirects, - // 21 listeners will be added. - // See https://github.com/nodejs/undici/issues/1711 - // TODO (fix): Find and fix root cause for leaked listener. - this.setMaxListeners(21) - } - - terminate (reason) { - if (this.state !== 'ongoing') { - return - } - - this.state = 'terminated' - this.connection?.destroy(reason) - this.emit('terminated', reason) - } - - // https://fetch.spec.whatwg.org/#fetch-controller-abort - abort (error) { - if (this.state !== 'ongoing') { - return - } - - // 1. Set controller’s state to "aborted". - this.state = 'aborted' - - // 2. Let fallbackError be an "AbortError" DOMException. - // 3. Set error to fallbackError if it is not given. - if (!error) { - error = new DOMException('The operation was aborted.', 'AbortError') - } - - // 4. Let serializedError be StructuredSerialize(error). - // If that threw an exception, catch it, and let - // serializedError be StructuredSerialize(fallbackError). - - // 5. Set controller’s serialized abort reason to serializedError. - this.serializedAbortReason = error - - this.connection?.destroy(error) - this.emit('terminated', error) - } -} - -// https://fetch.spec.whatwg.org/#fetch-method -function fetch (input, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' }) - - // 1. Let p be a new promise. - const p = createDeferredPromise() - - // 2. Let requestObject be the result of invoking the initial value of - // Request as constructor with input and init as arguments. If this throws - // an exception, reject p with it and return p. - let requestObject - - try { - requestObject = new Request(input, init) - } catch (e) { - p.reject(e) - return p.promise - } - - // 3. Let request be requestObject’s request. - const request = requestObject[kState] - - // 4. If requestObject’s signal’s aborted flag is set, then: - if (requestObject.signal.aborted) { - // 1. Abort the fetch() call with p, request, null, and - // requestObject’s signal’s abort reason. - abortFetch(p, request, null, requestObject.signal.reason) - - // 2. Return p. - return p.promise - } - - // 5. Let globalObject be request’s client’s global object. - const globalObject = request.client.globalObject - - // 6. If globalObject is a ServiceWorkerGlobalScope object, then set - // request’s service-workers mode to "none". - if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') { - request.serviceWorkers = 'none' - } - - // 7. Let responseObject be null. - let responseObject = null - - // 8. Let relevantRealm be this’s relevant Realm. - const relevantRealm = null - - // 9. Let locallyAborted be false. - let locallyAborted = false - - // 10. Let controller be null. - let controller = null - - // 11. Add the following abort steps to requestObject’s signal: - addAbortListener( - requestObject.signal, - () => { - // 1. Set locallyAborted to true. - locallyAborted = true - - // 2. Assert: controller is non-null. - assert(controller != null) - - // 3. Abort controller with requestObject’s signal’s abort reason. - controller.abort(requestObject.signal.reason) - - // 4. Abort the fetch() call with p, request, responseObject, - // and requestObject’s signal’s abort reason. - abortFetch(p, request, responseObject, requestObject.signal.reason) - } - ) - - // 12. Let handleFetchDone given response response be to finalize and - // report timing with response, globalObject, and "fetch". - const handleFetchDone = (response) => - finalizeAndReportTiming(response, 'fetch') - - // 13. Set controller to the result of calling fetch given request, - // with processResponseEndOfBody set to handleFetchDone, and processResponse - // given response being these substeps: - - const processResponse = (response) => { - // 1. If locallyAborted is true, terminate these substeps. - if (locallyAborted) { - return Promise.resolve() - } - - // 2. If response’s aborted flag is set, then: - if (response.aborted) { - // 1. Let deserializedError be the result of deserialize a serialized - // abort reason given controller’s serialized abort reason and - // relevantRealm. - - // 2. Abort the fetch() call with p, request, responseObject, and - // deserializedError. - - abortFetch(p, request, responseObject, controller.serializedAbortReason) - return Promise.resolve() - } - - // 3. If response is a network error, then reject p with a TypeError - // and terminate these substeps. - if (response.type === 'error') { - p.reject( - Object.assign(new TypeError('fetch failed'), { cause: response.error }) - ) - return Promise.resolve() - } - - // 4. Set responseObject to the result of creating a Response object, - // given response, "immutable", and relevantRealm. - responseObject = new Response() - responseObject[kState] = response - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kHeadersList] = response.headersList - responseObject[kHeaders][kGuard] = 'immutable' - responseObject[kHeaders][kRealm] = relevantRealm - - // 5. Resolve p with responseObject. - p.resolve(responseObject) - } - - controller = fetching({ - request, - processResponseEndOfBody: handleFetchDone, - processResponse, - dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici - }) - - // 14. Return p. - return p.promise -} - -// https://fetch.spec.whatwg.org/#finalize-and-report-timing -function finalizeAndReportTiming (response, initiatorType = 'other') { - // 1. If response is an aborted network error, then return. - if (response.type === 'error' && response.aborted) { - return - } - - // 2. If response’s URL list is null or empty, then return. - if (!response.urlList?.length) { - return - } - - // 3. Let originalURL be response’s URL list[0]. - const originalURL = response.urlList[0] - - // 4. Let timingInfo be response’s timing info. - let timingInfo = response.timingInfo - - // 5. Let cacheState be response’s cache state. - let cacheState = response.cacheState - - // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return. - if (!urlIsHttpHttpsScheme(originalURL)) { - return - } - - // 7. If timingInfo is null, then return. - if (timingInfo === null) { - return - } - - // 8. If response’s timing allow passed flag is not set, then: - if (!response.timingAllowPassed) { - // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo. - timingInfo = createOpaqueTimingInfo({ - startTime: timingInfo.startTime - }) - - // 2. Set cacheState to the empty string. - cacheState = '' - } - - // 9. Set timingInfo’s end time to the coarsened shared current time - // given global’s relevant settings object’s cross-origin isolated - // capability. - // TODO: given global’s relevant settings object’s cross-origin isolated - // capability? - timingInfo.endTime = coarsenedSharedCurrentTime() - - // 10. Set response’s timing info to timingInfo. - response.timingInfo = timingInfo - - // 11. Mark resource timing for timingInfo, originalURL, initiatorType, - // global, and cacheState. - markResourceTiming( - timingInfo, - originalURL, - initiatorType, - globalThis, - cacheState - ) -} - -// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing -function markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) { - if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) { - performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState) - } -} - -// https://fetch.spec.whatwg.org/#abort-fetch -function abortFetch (p, request, responseObject, error) { - // Note: AbortSignal.reason was added in node v17.2.0 - // which would give us an undefined error to reject with. - // Remove this once node v16 is no longer supported. - if (!error) { - error = new DOMException('The operation was aborted.', 'AbortError') - } - - // 1. Reject promise with error. - p.reject(error) - - // 2. If request’s body is not null and is readable, then cancel request’s - // body with error. - if (request.body != null && isReadable(request.body?.stream)) { - request.body.stream.cancel(error).catch((err) => { - if (err.code === 'ERR_INVALID_STATE') { - // Node bug? - return - } - throw err - }) - } - - // 3. If responseObject is null, then return. - if (responseObject == null) { - return - } - - // 4. Let response be responseObject’s response. - const response = responseObject[kState] - - // 5. If response’s body is not null and is readable, then error response’s - // body with error. - if (response.body != null && isReadable(response.body?.stream)) { - response.body.stream.cancel(error).catch((err) => { - if (err.code === 'ERR_INVALID_STATE') { - // Node bug? - return - } - throw err - }) - } -} - -// https://fetch.spec.whatwg.org/#fetching -function fetching ({ - request, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseEndOfBody, - processResponseConsumeBody, - useParallelQueue = false, - dispatcher // undici -}) { - // 1. Let taskDestination be null. - let taskDestination = null - - // 2. Let crossOriginIsolatedCapability be false. - let crossOriginIsolatedCapability = false - - // 3. If request’s client is non-null, then: - if (request.client != null) { - // 1. Set taskDestination to request’s client’s global object. - taskDestination = request.client.globalObject - - // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin - // isolated capability. - crossOriginIsolatedCapability = - request.client.crossOriginIsolatedCapability - } - - // 4. If useParallelQueue is true, then set taskDestination to the result of - // starting a new parallel queue. - // TODO - - // 5. Let timingInfo be a new fetch timing info whose start time and - // post-redirect start time are the coarsened shared current time given - // crossOriginIsolatedCapability. - const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability) - const timingInfo = createOpaqueTimingInfo({ - startTime: currenTime - }) - - // 6. Let fetchParams be a new fetch params whose - // request is request, - // timing info is timingInfo, - // process request body chunk length is processRequestBodyChunkLength, - // process request end-of-body is processRequestEndOfBody, - // process response is processResponse, - // process response consume body is processResponseConsumeBody, - // process response end-of-body is processResponseEndOfBody, - // task destination is taskDestination, - // and cross-origin isolated capability is crossOriginIsolatedCapability. - const fetchParams = { - controller: new Fetch(dispatcher), - request, - timingInfo, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseConsumeBody, - processResponseEndOfBody, - taskDestination, - crossOriginIsolatedCapability - } - - // 7. If request’s body is a byte sequence, then set request’s body to - // request’s body as a body. - // NOTE: Since fetching is only called from fetch, body should already be - // extracted. - assert(!request.body || request.body.stream) - - // 8. If request’s window is "client", then set request’s window to request’s - // client, if request’s client’s global object is a Window object; otherwise - // "no-window". - if (request.window === 'client') { - // TODO: What if request.client is null? - request.window = - request.client?.globalObject?.constructor?.name === 'Window' - ? request.client - : 'no-window' - } - - // 9. If request’s origin is "client", then set request’s origin to request’s - // client’s origin. - if (request.origin === 'client') { - // TODO: What if request.client is null? - request.origin = request.client?.origin - } - - // 10. If all of the following conditions are true: - // TODO - - // 11. If request’s policy container is "client", then: - if (request.policyContainer === 'client') { - // 1. If request’s client is non-null, then set request’s policy - // container to a clone of request’s client’s policy container. [HTML] - if (request.client != null) { - request.policyContainer = clonePolicyContainer( - request.client.policyContainer - ) - } else { - // 2. Otherwise, set request’s policy container to a new policy - // container. - request.policyContainer = makePolicyContainer() - } - } - - // 12. If request’s header list does not contain `Accept`, then: - if (!request.headersList.contains('accept')) { - // 1. Let value be `*/*`. - const value = '*/*' - - // 2. A user agent should set value to the first matching statement, if - // any, switching on request’s destination: - // "document" - // "frame" - // "iframe" - // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8` - // "image" - // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5` - // "style" - // `text/css,*/*;q=0.1` - // TODO - - // 3. Append `Accept`/value to request’s header list. - request.headersList.append('accept', value) - } - - // 13. If request’s header list does not contain `Accept-Language`, then - // user agents should append `Accept-Language`/an appropriate value to - // request’s header list. - if (!request.headersList.contains('accept-language')) { - request.headersList.append('accept-language', '*') - } - - // 14. If request’s priority is null, then use request’s initiator and - // destination appropriately in setting request’s priority to a - // user-agent-defined object. - if (request.priority === null) { - // TODO - } - - // 15. If request is a subresource request, then: - if (subresourceSet.has(request.destination)) { - // TODO - } - - // 16. Run main fetch given fetchParams. - mainFetch(fetchParams) - .catch(err => { - fetchParams.controller.terminate(err) - }) - - // 17. Return fetchParam's controller - return fetchParams.controller -} - -// https://fetch.spec.whatwg.org/#concept-main-fetch -async function mainFetch (fetchParams, recursive = false) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request - - // 2. Let response be null. - let response = null - - // 3. If request’s local-URLs-only flag is set and request’s current URL is - // not local, then set response to a network error. - if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { - response = makeNetworkError('local URLs only') - } - - // 4. Run report Content Security Policy violations for request. - // TODO - - // 5. Upgrade request to a potentially trustworthy URL, if appropriate. - tryUpgradeRequestToAPotentiallyTrustworthyURL(request) - - // 6. If should request be blocked due to a bad port, should fetching request - // be blocked as mixed content, or should request be blocked by Content - // Security Policy returns blocked, then set response to a network error. - if (requestBadPort(request) === 'blocked') { - response = makeNetworkError('bad port') - } - // TODO: should fetching request be blocked as mixed content? - // TODO: should request be blocked by Content Security Policy? - - // 7. If request’s referrer policy is the empty string, then set request’s - // referrer policy to request’s policy container’s referrer policy. - if (request.referrerPolicy === '') { - request.referrerPolicy = request.policyContainer.referrerPolicy - } - - // 8. If request’s referrer is not "no-referrer", then set request’s - // referrer to the result of invoking determine request’s referrer. - if (request.referrer !== 'no-referrer') { - request.referrer = determineRequestsReferrer(request) - } - - // 9. Set request’s current URL’s scheme to "https" if all of the following - // conditions are true: - // - request’s current URL’s scheme is "http" - // - request’s current URL’s host is a domain - // - Matching request’s current URL’s host per Known HSTS Host Domain Name - // Matching results in either a superdomain match with an asserted - // includeSubDomains directive or a congruent match (with or without an - // asserted includeSubDomains directive). [HSTS] - // TODO - - // 10. If recursive is false, then run the remaining steps in parallel. - // TODO - - // 11. If response is null, then set response to the result of running - // the steps corresponding to the first matching statement: - if (response === null) { - response = await (async () => { - const currentURL = requestCurrentURL(request) - - if ( - // - request’s current URL’s origin is same origin with request’s origin, - // and request’s response tainting is "basic" - (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') || - // request’s current URL’s scheme is "data" - (currentURL.protocol === 'data:') || - // - request’s mode is "navigate" or "websocket" - (request.mode === 'navigate' || request.mode === 'websocket') - ) { - // 1. Set request’s response tainting to "basic". - request.responseTainting = 'basic' - - // 2. Return the result of running scheme fetch given fetchParams. - return await schemeFetch(fetchParams) - } - - // request’s mode is "same-origin" - if (request.mode === 'same-origin') { - // 1. Return a network error. - return makeNetworkError('request mode cannot be "same-origin"') - } - - // request’s mode is "no-cors" - if (request.mode === 'no-cors') { - // 1. If request’s redirect mode is not "follow", then return a network - // error. - if (request.redirect !== 'follow') { - return makeNetworkError( - 'redirect mode cannot be "follow" for "no-cors" request' - ) - } - - // 2. Set request’s response tainting to "opaque". - request.responseTainting = 'opaque' - - // 3. Return the result of running scheme fetch given fetchParams. - return await schemeFetch(fetchParams) - } - - // request’s current URL’s scheme is not an HTTP(S) scheme - if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { - // Return a network error. - return makeNetworkError('URL scheme must be a HTTP(S) scheme') - } - - // - request’s use-CORS-preflight flag is set - // - request’s unsafe-request flag is set and either request’s method is - // not a CORS-safelisted method or CORS-unsafe request-header names with - // request’s header list is not empty - // 1. Set request’s response tainting to "cors". - // 2. Let corsWithPreflightResponse be the result of running HTTP fetch - // given fetchParams and true. - // 3. If corsWithPreflightResponse is a network error, then clear cache - // entries using request. - // 4. Return corsWithPreflightResponse. - // TODO - - // Otherwise - // 1. Set request’s response tainting to "cors". - request.responseTainting = 'cors' - - // 2. Return the result of running HTTP fetch given fetchParams. - return await httpFetch(fetchParams) - })() - } - - // 12. If recursive is true, then return response. - if (recursive) { - return response - } - - // 13. If response is not a network error and response is not a filtered - // response, then: - if (response.status !== 0 && !response.internalResponse) { - // If request’s response tainting is "cors", then: - if (request.responseTainting === 'cors') { - // 1. Let headerNames be the result of extracting header list values - // given `Access-Control-Expose-Headers` and response’s header list. - // TODO - // 2. If request’s credentials mode is not "include" and headerNames - // contains `*`, then set response’s CORS-exposed header-name list to - // all unique header names in response’s header list. - // TODO - // 3. Otherwise, if headerNames is not null or failure, then set - // response’s CORS-exposed header-name list to headerNames. - // TODO - } - - // Set response to the following filtered response with response as its - // internal response, depending on request’s response tainting: - if (request.responseTainting === 'basic') { - response = filterResponse(response, 'basic') - } else if (request.responseTainting === 'cors') { - response = filterResponse(response, 'cors') - } else if (request.responseTainting === 'opaque') { - response = filterResponse(response, 'opaque') - } else { - assert(false) - } - } - - // 14. Let internalResponse be response, if response is a network error, - // and response’s internal response otherwise. - let internalResponse = - response.status === 0 ? response : response.internalResponse - - // 15. If internalResponse’s URL list is empty, then set it to a clone of - // request’s URL list. - if (internalResponse.urlList.length === 0) { - internalResponse.urlList.push(...request.urlList) - } - - // 16. If request’s timing allow failed flag is unset, then set - // internalResponse’s timing allow passed flag. - if (!request.timingAllowFailed) { - response.timingAllowPassed = true - } - - // 17. If response is not a network error and any of the following returns - // blocked - // - should internalResponse to request be blocked as mixed content - // - should internalResponse to request be blocked by Content Security Policy - // - should internalResponse to request be blocked due to its MIME type - // - should internalResponse to request be blocked due to nosniff - // TODO - - // 18. If response’s type is "opaque", internalResponse’s status is 206, - // internalResponse’s range-requested flag is set, and request’s header - // list does not contain `Range`, then set response and internalResponse - // to a network error. - if ( - response.type === 'opaque' && - internalResponse.status === 206 && - internalResponse.rangeRequested && - !request.headers.contains('range') - ) { - response = internalResponse = makeNetworkError() - } - - // 19. If response is not a network error and either request’s method is - // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status, - // set internalResponse’s body to null and disregard any enqueuing toward - // it (if any). - if ( - response.status !== 0 && - (request.method === 'HEAD' || - request.method === 'CONNECT' || - nullBodyStatus.includes(internalResponse.status)) - ) { - internalResponse.body = null - fetchParams.controller.dump = true - } - - // 20. If request’s integrity metadata is not the empty string, then: - if (request.integrity) { - // 1. Let processBodyError be this step: run fetch finale given fetchParams - // and a network error. - const processBodyError = (reason) => - fetchFinale(fetchParams, makeNetworkError(reason)) - - // 2. If request’s response tainting is "opaque", or response’s body is null, - // then run processBodyError and abort these steps. - if (request.responseTainting === 'opaque' || response.body == null) { - processBodyError(response.error) - return - } - - // 3. Let processBody given bytes be these steps: - const processBody = (bytes) => { - // 1. If bytes do not match request’s integrity metadata, - // then run processBodyError and abort these steps. [SRI] - if (!bytesMatch(bytes, request.integrity)) { - processBodyError('integrity mismatch') - return - } - - // 2. Set response’s body to bytes as a body. - response.body = safelyExtractBody(bytes)[0] - - // 3. Run fetch finale given fetchParams and response. - fetchFinale(fetchParams, response) - } - - // 4. Fully read response’s body given processBody and processBodyError. - await fullyReadBody(response.body, processBody, processBodyError) - } else { - // 21. Otherwise, run fetch finale given fetchParams and response. - fetchFinale(fetchParams, response) - } -} - -// https://fetch.spec.whatwg.org/#concept-scheme-fetch -// given a fetch params fetchParams -function schemeFetch (fetchParams) { - // Note: since the connection is destroyed on redirect, which sets fetchParams to a - // cancelled state, we do not want this condition to trigger *unless* there have been - // no redirects. See https://github.com/nodejs/undici/issues/1776 - // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. - if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { - return Promise.resolve(makeAppropriateNetworkError(fetchParams)) - } - - // 2. Let request be fetchParams’s request. - const { request } = fetchParams - - const { protocol: scheme } = requestCurrentURL(request) - - // 3. Switch on request’s current URL’s scheme and run the associated steps: - switch (scheme) { - case 'about:': { - // If request’s current URL’s path is the string "blank", then return a new response - // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) », - // and body is the empty byte sequence as a body. - - // Otherwise, return a network error. - return Promise.resolve(makeNetworkError('about scheme is not supported')) - } - case 'blob:': { - if (!resolveObjectURL) { - resolveObjectURL = (__nccwpck_require__(181).resolveObjectURL) - } - - // 1. Let blobURLEntry be request’s current URL’s blob URL entry. - const blobURLEntry = requestCurrentURL(request) - - // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56 - // Buffer.resolveObjectURL does not ignore URL queries. - if (blobURLEntry.search.length !== 0) { - return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.')) - } - - const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()) - - // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s - // object is not a Blob object, then return a network error. - if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) { - return Promise.resolve(makeNetworkError('invalid method')) - } - - // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object. - const bodyWithType = safelyExtractBody(blobURLEntryObject) - - // 4. Let body be bodyWithType’s body. - const body = bodyWithType[0] - - // 5. Let length be body’s length, serialized and isomorphic encoded. - const length = isomorphicEncode(`${body.length}`) - - // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence. - const type = bodyWithType[1] ?? '' - - // 7. Return a new response whose status message is `OK`, header list is - // « (`Content-Length`, length), (`Content-Type`, type) », and body is body. - const response = makeResponse({ - statusText: 'OK', - headersList: [ - ['content-length', { name: 'Content-Length', value: length }], - ['content-type', { name: 'Content-Type', value: type }] - ] - }) - - response.body = body - - return Promise.resolve(response) - } - case 'data:': { - // 1. Let dataURLStruct be the result of running the - // data: URL processor on request’s current URL. - const currentURL = requestCurrentURL(request) - const dataURLStruct = dataURLProcessor(currentURL) - - // 2. If dataURLStruct is failure, then return a - // network error. - if (dataURLStruct === 'failure') { - return Promise.resolve(makeNetworkError('failed to fetch the data URL')) - } - - // 3. Let mimeType be dataURLStruct’s MIME type, serialized. - const mimeType = serializeAMimeType(dataURLStruct.mimeType) - - // 4. Return a response whose status message is `OK`, - // header list is « (`Content-Type`, mimeType) », - // and body is dataURLStruct’s body as a body. - return Promise.resolve(makeResponse({ - statusText: 'OK', - headersList: [ - ['content-type', { name: 'Content-Type', value: mimeType }] - ], - body: safelyExtractBody(dataURLStruct.body)[0] - })) - } - case 'file:': { - // For now, unfortunate as it is, file URLs are left as an exercise for the reader. - // When in doubt, return a network error. - return Promise.resolve(makeNetworkError('not implemented... yet...')) - } - case 'http:': - case 'https:': { - // Return the result of running HTTP fetch given fetchParams. - - return httpFetch(fetchParams) - .catch((err) => makeNetworkError(err)) - } - default: { - return Promise.resolve(makeNetworkError('unknown scheme')) - } - } -} - -// https://fetch.spec.whatwg.org/#finalize-response -function finalizeResponse (fetchParams, response) { - // 1. Set fetchParams’s request’s done flag. - fetchParams.request.done = true - - // 2, If fetchParams’s process response done is not null, then queue a fetch - // task to run fetchParams’s process response done given response, with - // fetchParams’s task destination. - if (fetchParams.processResponseDone != null) { - queueMicrotask(() => fetchParams.processResponseDone(response)) - } -} - -// https://fetch.spec.whatwg.org/#fetch-finale -function fetchFinale (fetchParams, response) { - // 1. If response is a network error, then: - if (response.type === 'error') { - // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ». - response.urlList = [fetchParams.request.urlList[0]] - - // 2. Set response’s timing info to the result of creating an opaque timing - // info for fetchParams’s timing info. - response.timingInfo = createOpaqueTimingInfo({ - startTime: fetchParams.timingInfo.startTime - }) - } - - // 2. Let processResponseEndOfBody be the following steps: - const processResponseEndOfBody = () => { - // 1. Set fetchParams’s request’s done flag. - fetchParams.request.done = true - - // If fetchParams’s process response end-of-body is not null, - // then queue a fetch task to run fetchParams’s process response - // end-of-body given response with fetchParams’s task destination. - if (fetchParams.processResponseEndOfBody != null) { - queueMicrotask(() => fetchParams.processResponseEndOfBody(response)) - } - } - - // 3. If fetchParams’s process response is non-null, then queue a fetch task - // to run fetchParams’s process response given response, with fetchParams’s - // task destination. - if (fetchParams.processResponse != null) { - queueMicrotask(() => fetchParams.processResponse(response)) - } - - // 4. If response’s body is null, then run processResponseEndOfBody. - if (response.body == null) { - processResponseEndOfBody() - } else { - // 5. Otherwise: - - // 1. Let transformStream be a new a TransformStream. - - // 2. Let identityTransformAlgorithm be an algorithm which, given chunk, - // enqueues chunk in transformStream. - const identityTransformAlgorithm = (chunk, controller) => { - controller.enqueue(chunk) - } - - // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm - // and flushAlgorithm set to processResponseEndOfBody. - const transformStream = new TransformStream({ - start () {}, - transform: identityTransformAlgorithm, - flush: processResponseEndOfBody - }, { - size () { - return 1 - } - }, { - size () { - return 1 - } - }) - - // 4. Set response’s body to the result of piping response’s body through transformStream. - response.body = { stream: response.body.stream.pipeThrough(transformStream) } - } - - // 6. If fetchParams’s process response consume body is non-null, then: - if (fetchParams.processResponseConsumeBody != null) { - // 1. Let processBody given nullOrBytes be this step: run fetchParams’s - // process response consume body given response and nullOrBytes. - const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes) - - // 2. Let processBodyError be this step: run fetchParams’s process - // response consume body given response and failure. - const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure) - - // 3. If response’s body is null, then queue a fetch task to run processBody - // given null, with fetchParams’s task destination. - if (response.body == null) { - queueMicrotask(() => processBody(null)) - } else { - // 4. Otherwise, fully read response’s body given processBody, processBodyError, - // and fetchParams’s task destination. - return fullyReadBody(response.body, processBody, processBodyError) - } - return Promise.resolve() - } -} - -// https://fetch.spec.whatwg.org/#http-fetch -async function httpFetch (fetchParams) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request - - // 2. Let response be null. - let response = null - - // 3. Let actualResponse be null. - let actualResponse = null - - // 4. Let timingInfo be fetchParams’s timing info. - const timingInfo = fetchParams.timingInfo - - // 5. If request’s service-workers mode is "all", then: - if (request.serviceWorkers === 'all') { - // TODO - } - - // 6. If response is null, then: - if (response === null) { - // 1. If makeCORSPreflight is true and one of these conditions is true: - // TODO - - // 2. If request’s redirect mode is "follow", then set request’s - // service-workers mode to "none". - if (request.redirect === 'follow') { - request.serviceWorkers = 'none' - } - - // 3. Set response and actualResponse to the result of running - // HTTP-network-or-cache fetch given fetchParams. - actualResponse = response = await httpNetworkOrCacheFetch(fetchParams) - - // 4. If request’s response tainting is "cors" and a CORS check - // for request and response returns failure, then return a network error. - if ( - request.responseTainting === 'cors' && - corsCheck(request, response) === 'failure' - ) { - return makeNetworkError('cors failure') - } - - // 5. If the TAO check for request and response returns failure, then set - // request’s timing allow failed flag. - if (TAOCheck(request, response) === 'failure') { - request.timingAllowFailed = true - } - } - - // 7. If either request’s response tainting or response’s type - // is "opaque", and the cross-origin resource policy check with - // request’s origin, request’s client, request’s destination, - // and actualResponse returns blocked, then return a network error. - if ( - (request.responseTainting === 'opaque' || response.type === 'opaque') && - crossOriginResourcePolicyCheck( - request.origin, - request.client, - request.destination, - actualResponse - ) === 'blocked' - ) { - return makeNetworkError('blocked') - } - - // 8. If actualResponse’s status is a redirect status, then: - if (redirectStatusSet.has(actualResponse.status)) { - // 1. If actualResponse’s status is not 303, request’s body is not null, - // and the connection uses HTTP/2, then user agents may, and are even - // encouraged to, transmit an RST_STREAM frame. - // See, https://github.com/whatwg/fetch/issues/1288 - if (request.redirect !== 'manual') { - fetchParams.controller.connection.destroy() - } - - // 2. Switch on request’s redirect mode: - if (request.redirect === 'error') { - // Set response to a network error. - response = makeNetworkError('unexpected redirect') - } else if (request.redirect === 'manual') { - // Set response to an opaque-redirect filtered response whose internal - // response is actualResponse. - // NOTE(spec): On the web this would return an `opaqueredirect` response, - // but that doesn't make sense server side. - // See https://github.com/nodejs/undici/issues/1193. - response = actualResponse - } else if (request.redirect === 'follow') { - // Set response to the result of running HTTP-redirect fetch given - // fetchParams and response. - response = await httpRedirectFetch(fetchParams, response) - } else { - assert(false) - } - } - - // 9. Set response’s timing info to timingInfo. - response.timingInfo = timingInfo - - // 10. Return response. - return response -} - -// https://fetch.spec.whatwg.org/#http-redirect-fetch -function httpRedirectFetch (fetchParams, response) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request - - // 2. Let actualResponse be response, if response is not a filtered response, - // and response’s internal response otherwise. - const actualResponse = response.internalResponse - ? response.internalResponse - : response - - // 3. Let locationURL be actualResponse’s location URL given request’s current - // URL’s fragment. - let locationURL - - try { - locationURL = responseLocationURL( - actualResponse, - requestCurrentURL(request).hash - ) - - // 4. If locationURL is null, then return response. - if (locationURL == null) { - return response - } - } catch (err) { - // 5. If locationURL is failure, then return a network error. - return Promise.resolve(makeNetworkError(err)) - } - - // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network - // error. - if (!urlIsHttpHttpsScheme(locationURL)) { - return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme')) - } - - // 7. If request’s redirect count is 20, then return a network error. - if (request.redirectCount === 20) { - return Promise.resolve(makeNetworkError('redirect count exceeded')) - } - - // 8. Increase request’s redirect count by 1. - request.redirectCount += 1 - - // 9. If request’s mode is "cors", locationURL includes credentials, and - // request’s origin is not same origin with locationURL’s origin, then return - // a network error. - if ( - request.mode === 'cors' && - (locationURL.username || locationURL.password) && - !sameOrigin(request, locationURL) - ) { - return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')) - } - - // 10. If request’s response tainting is "cors" and locationURL includes - // credentials, then return a network error. - if ( - request.responseTainting === 'cors' && - (locationURL.username || locationURL.password) - ) { - return Promise.resolve(makeNetworkError( - 'URL cannot contain credentials for request mode "cors"' - )) - } - - // 11. If actualResponse’s status is not 303, request’s body is non-null, - // and request’s body’s source is null, then return a network error. - if ( - actualResponse.status !== 303 && - request.body != null && - request.body.source == null - ) { - return Promise.resolve(makeNetworkError()) - } - - // 12. If one of the following is true - // - actualResponse’s status is 301 or 302 and request’s method is `POST` - // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD` - if ( - ([301, 302].includes(actualResponse.status) && request.method === 'POST') || - (actualResponse.status === 303 && - !GET_OR_HEAD.includes(request.method)) - ) { - // then: - // 1. Set request’s method to `GET` and request’s body to null. - request.method = 'GET' - request.body = null - - // 2. For each headerName of request-body-header name, delete headerName from - // request’s header list. - for (const headerName of requestBodyHeader) { - request.headersList.delete(headerName) - } - } - - // 13. If request’s current URL’s origin is not same origin with locationURL’s - // origin, then for each headerName of CORS non-wildcard request-header name, - // delete headerName from request’s header list. - if (!sameOrigin(requestCurrentURL(request), locationURL)) { - // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name - request.headersList.delete('authorization') - - // https://fetch.spec.whatwg.org/#authentication-entries - request.headersList.delete('proxy-authorization', true) - - // "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement. - request.headersList.delete('cookie') - request.headersList.delete('host') - } - - // 14. If request’s body is non-null, then set request’s body to the first return - // value of safely extracting request’s body’s source. - if (request.body != null) { - assert(request.body.source != null) - request.body = safelyExtractBody(request.body.source)[0] - } - - // 15. Let timingInfo be fetchParams’s timing info. - const timingInfo = fetchParams.timingInfo - - // 16. Set timingInfo’s redirect end time and post-redirect start time to the - // coarsened shared current time given fetchParams’s cross-origin isolated - // capability. - timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = - coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) - - // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s - // redirect start time to timingInfo’s start time. - if (timingInfo.redirectStartTime === 0) { - timingInfo.redirectStartTime = timingInfo.startTime - } - - // 18. Append locationURL to request’s URL list. - request.urlList.push(locationURL) - - // 19. Invoke set request’s referrer policy on redirect on request and - // actualResponse. - setRequestReferrerPolicyOnRedirect(request, actualResponse) - - // 20. Return the result of running main fetch given fetchParams and true. - return mainFetch(fetchParams, true) -} - -// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch -async function httpNetworkOrCacheFetch ( - fetchParams, - isAuthenticationFetch = false, - isNewConnectionFetch = false -) { - // 1. Let request be fetchParams’s request. - const request = fetchParams.request - - // 2. Let httpFetchParams be null. - let httpFetchParams = null - - // 3. Let httpRequest be null. - let httpRequest = null - - // 4. Let response be null. - let response = null - - // 5. Let storedResponse be null. - // TODO: cache - - // 6. Let httpCache be null. - const httpCache = null - - // 7. Let the revalidatingFlag be unset. - const revalidatingFlag = false - - // 8. Run these steps, but abort when the ongoing fetch is terminated: - - // 1. If request’s window is "no-window" and request’s redirect mode is - // "error", then set httpFetchParams to fetchParams and httpRequest to - // request. - if (request.window === 'no-window' && request.redirect === 'error') { - httpFetchParams = fetchParams - httpRequest = request - } else { - // Otherwise: - - // 1. Set httpRequest to a clone of request. - httpRequest = makeRequest(request) - - // 2. Set httpFetchParams to a copy of fetchParams. - httpFetchParams = { ...fetchParams } - - // 3. Set httpFetchParams’s request to httpRequest. - httpFetchParams.request = httpRequest - } - - // 3. Let includeCredentials be true if one of - const includeCredentials = - request.credentials === 'include' || - (request.credentials === 'same-origin' && - request.responseTainting === 'basic') - - // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s - // body is non-null; otherwise null. - const contentLength = httpRequest.body ? httpRequest.body.length : null - - // 5. Let contentLengthHeaderValue be null. - let contentLengthHeaderValue = null - - // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or - // `PUT`, then set contentLengthHeaderValue to `0`. - if ( - httpRequest.body == null && - ['POST', 'PUT'].includes(httpRequest.method) - ) { - contentLengthHeaderValue = '0' - } - - // 7. If contentLength is non-null, then set contentLengthHeaderValue to - // contentLength, serialized and isomorphic encoded. - if (contentLength != null) { - contentLengthHeaderValue = isomorphicEncode(`${contentLength}`) - } - - // 8. If contentLengthHeaderValue is non-null, then append - // `Content-Length`/contentLengthHeaderValue to httpRequest’s header - // list. - if (contentLengthHeaderValue != null) { - httpRequest.headersList.append('content-length', contentLengthHeaderValue) - } - - // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`, - // contentLengthHeaderValue) to httpRequest’s header list. - - // 10. If contentLength is non-null and httpRequest’s keepalive is true, - // then: - if (contentLength != null && httpRequest.keepalive) { - // NOTE: keepalive is a noop outside of browser context. - } - - // 11. If httpRequest’s referrer is a URL, then append - // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded, - // to httpRequest’s header list. - if (httpRequest.referrer instanceof URL) { - httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href)) - } - - // 12. Append a request `Origin` header for httpRequest. - appendRequestOriginHeader(httpRequest) - - // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA] - appendFetchMetadata(httpRequest) - - // 14. If httpRequest’s header list does not contain `User-Agent`, then - // user agents should append `User-Agent`/default `User-Agent` value to - // httpRequest’s header list. - if (!httpRequest.headersList.contains('user-agent')) { - httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node') - } - - // 15. If httpRequest’s cache mode is "default" and httpRequest’s header - // list contains `If-Modified-Since`, `If-None-Match`, - // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set - // httpRequest’s cache mode to "no-store". - if ( - httpRequest.cache === 'default' && - (httpRequest.headersList.contains('if-modified-since') || - httpRequest.headersList.contains('if-none-match') || - httpRequest.headersList.contains('if-unmodified-since') || - httpRequest.headersList.contains('if-match') || - httpRequest.headersList.contains('if-range')) - ) { - httpRequest.cache = 'no-store' - } - - // 16. If httpRequest’s cache mode is "no-cache", httpRequest’s prevent - // no-cache cache-control header modification flag is unset, and - // httpRequest’s header list does not contain `Cache-Control`, then append - // `Cache-Control`/`max-age=0` to httpRequest’s header list. - if ( - httpRequest.cache === 'no-cache' && - !httpRequest.preventNoCacheCacheControlHeaderModification && - !httpRequest.headersList.contains('cache-control') - ) { - httpRequest.headersList.append('cache-control', 'max-age=0') - } - - // 17. If httpRequest’s cache mode is "no-store" or "reload", then: - if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') { - // 1. If httpRequest’s header list does not contain `Pragma`, then append - // `Pragma`/`no-cache` to httpRequest’s header list. - if (!httpRequest.headersList.contains('pragma')) { - httpRequest.headersList.append('pragma', 'no-cache') - } - - // 2. If httpRequest’s header list does not contain `Cache-Control`, - // then append `Cache-Control`/`no-cache` to httpRequest’s header list. - if (!httpRequest.headersList.contains('cache-control')) { - httpRequest.headersList.append('cache-control', 'no-cache') - } - } - - // 18. If httpRequest’s header list contains `Range`, then append - // `Accept-Encoding`/`identity` to httpRequest’s header list. - if (httpRequest.headersList.contains('range')) { - httpRequest.headersList.append('accept-encoding', 'identity') - } - - // 19. Modify httpRequest’s header list per HTTP. Do not append a given - // header if httpRequest’s header list contains that header’s name. - // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129 - if (!httpRequest.headersList.contains('accept-encoding')) { - if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { - httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate') - } else { - httpRequest.headersList.append('accept-encoding', 'gzip, deflate') - } - } - - httpRequest.headersList.delete('host') - - // 20. If includeCredentials is true, then: - if (includeCredentials) { - // 1. If the user agent is not configured to block cookies for httpRequest - // (see section 7 of [COOKIES]), then: - // TODO: credentials - // 2. If httpRequest’s header list does not contain `Authorization`, then: - // TODO: credentials - } - - // 21. If there’s a proxy-authentication entry, use it as appropriate. - // TODO: proxy-authentication - - // 22. Set httpCache to the result of determining the HTTP cache - // partition, given httpRequest. - // TODO: cache - - // 23. If httpCache is null, then set httpRequest’s cache mode to - // "no-store". - if (httpCache == null) { - httpRequest.cache = 'no-store' - } - - // 24. If httpRequest’s cache mode is neither "no-store" nor "reload", - // then: - if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') { - // TODO: cache - } - - // 9. If aborted, then return the appropriate network error for fetchParams. - // TODO - - // 10. If response is null, then: - if (response == null) { - // 1. If httpRequest’s cache mode is "only-if-cached", then return a - // network error. - if (httpRequest.mode === 'only-if-cached') { - return makeNetworkError('only if cached') - } - - // 2. Let forwardResponse be the result of running HTTP-network fetch - // given httpFetchParams, includeCredentials, and isNewConnectionFetch. - const forwardResponse = await httpNetworkFetch( - httpFetchParams, - includeCredentials, - isNewConnectionFetch - ) - - // 3. If httpRequest’s method is unsafe and forwardResponse’s status is - // in the range 200 to 399, inclusive, invalidate appropriate stored - // responses in httpCache, as per the "Invalidation" chapter of HTTP - // Caching, and set storedResponse to null. [HTTP-CACHING] - if ( - !safeMethodsSet.has(httpRequest.method) && - forwardResponse.status >= 200 && - forwardResponse.status <= 399 - ) { - // TODO: cache - } - - // 4. If the revalidatingFlag is set and forwardResponse’s status is 304, - // then: - if (revalidatingFlag && forwardResponse.status === 304) { - // TODO: cache - } - - // 5. If response is null, then: - if (response == null) { - // 1. Set response to forwardResponse. - response = forwardResponse - - // 2. Store httpRequest and forwardResponse in httpCache, as per the - // "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING] - // TODO: cache - } - } - - // 11. Set response’s URL list to a clone of httpRequest’s URL list. - response.urlList = [...httpRequest.urlList] - - // 12. If httpRequest’s header list contains `Range`, then set response’s - // range-requested flag. - if (httpRequest.headersList.contains('range')) { - response.rangeRequested = true - } - - // 13. Set response’s request-includes-credentials to includeCredentials. - response.requestIncludesCredentials = includeCredentials - - // 14. If response’s status is 401, httpRequest’s response tainting is not - // "cors", includeCredentials is true, and request’s window is an environment - // settings object, then: - // TODO - - // 15. If response’s status is 407, then: - if (response.status === 407) { - // 1. If request’s window is "no-window", then return a network error. - if (request.window === 'no-window') { - return makeNetworkError() - } - - // 2. ??? - - // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams. - if (isCancelled(fetchParams)) { - return makeAppropriateNetworkError(fetchParams) - } - - // 4. Prompt the end user as appropriate in request’s window and store - // the result as a proxy-authentication entry. [HTTP-AUTH] - // TODO: Invoke some kind of callback? - - // 5. Set response to the result of running HTTP-network-or-cache fetch given - // fetchParams. - // TODO - return makeNetworkError('proxy authentication required') - } - - // 16. If all of the following are true - if ( - // response’s status is 421 - response.status === 421 && - // isNewConnectionFetch is false - !isNewConnectionFetch && - // request’s body is null, or request’s body is non-null and request’s body’s source is non-null - (request.body == null || request.body.source != null) - ) { - // then: - - // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. - if (isCancelled(fetchParams)) { - return makeAppropriateNetworkError(fetchParams) - } - - // 2. Set response to the result of running HTTP-network-or-cache - // fetch given fetchParams, isAuthenticationFetch, and true. - - // TODO (spec): The spec doesn't specify this but we need to cancel - // the active response before we can start a new one. - // https://github.com/whatwg/fetch/issues/1293 - fetchParams.controller.connection.destroy() - - response = await httpNetworkOrCacheFetch( - fetchParams, - isAuthenticationFetch, - true - ) - } - - // 17. If isAuthenticationFetch is true, then create an authentication entry - if (isAuthenticationFetch) { - // TODO - } - - // 18. Return response. - return response -} - -// https://fetch.spec.whatwg.org/#http-network-fetch -async function httpNetworkFetch ( - fetchParams, - includeCredentials = false, - forceNewConnection = false -) { - assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed) - - fetchParams.controller.connection = { - abort: null, - destroyed: false, - destroy (err) { - if (!this.destroyed) { - this.destroyed = true - this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError')) - } - } - } - - // 1. Let request be fetchParams’s request. - const request = fetchParams.request - - // 2. Let response be null. - let response = null - - // 3. Let timingInfo be fetchParams’s timing info. - const timingInfo = fetchParams.timingInfo - - // 4. Let httpCache be the result of determining the HTTP cache partition, - // given request. - // TODO: cache - const httpCache = null - - // 5. If httpCache is null, then set request’s cache mode to "no-store". - if (httpCache == null) { - request.cache = 'no-store' - } - - // 6. Let networkPartitionKey be the result of determining the network - // partition key given request. - // TODO - - // 7. Let newConnection be "yes" if forceNewConnection is true; otherwise - // "no". - const newConnection = forceNewConnection ? 'yes' : 'no' - - // 8. Switch on request’s mode: - if (request.mode === 'websocket') { - // Let connection be the result of obtaining a WebSocket connection, - // given request’s current URL. - // TODO - } else { - // Let connection be the result of obtaining a connection, given - // networkPartitionKey, request’s current URL’s origin, - // includeCredentials, and forceNewConnection. - // TODO - } - - // 9. Run these steps, but abort when the ongoing fetch is terminated: - - // 1. If connection is failure, then return a network error. - - // 2. Set timingInfo’s final connection timing info to the result of - // calling clamp and coarsen connection timing info with connection’s - // timing info, timingInfo’s post-redirect start time, and fetchParams’s - // cross-origin isolated capability. - - // 3. If connection is not an HTTP/2 connection, request’s body is non-null, - // and request’s body’s source is null, then append (`Transfer-Encoding`, - // `chunked`) to request’s header list. - - // 4. Set timingInfo’s final network-request start time to the coarsened - // shared current time given fetchParams’s cross-origin isolated - // capability. - - // 5. Set response to the result of making an HTTP request over connection - // using request with the following caveats: - - // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS] - // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH] - - // - If request’s body is non-null, and request’s body’s source is null, - // then the user agent may have a buffer of up to 64 kibibytes and store - // a part of request’s body in that buffer. If the user agent reads from - // request’s body beyond that buffer’s size and the user agent needs to - // resend request, then instead return a network error. - - // - Set timingInfo’s final network-response start time to the coarsened - // shared current time given fetchParams’s cross-origin isolated capability, - // immediately after the user agent’s HTTP parser receives the first byte - // of the response (e.g., frame header bytes for HTTP/2 or response status - // line for HTTP/1.x). - - // - Wait until all the headers are transmitted. - - // - Any responses whose status is in the range 100 to 199, inclusive, - // and is not 101, are to be ignored, except for the purposes of setting - // timingInfo’s final network-response start time above. - - // - If request’s header list contains `Transfer-Encoding`/`chunked` and - // response is transferred via HTTP/1.0 or older, then return a network - // error. - - // - If the HTTP request results in a TLS client certificate dialog, then: - - // 1. If request’s window is an environment settings object, make the - // dialog available in request’s window. - - // 2. Otherwise, return a network error. - - // To transmit request’s body body, run these steps: - let requestBody = null - // 1. If body is null and fetchParams’s process request end-of-body is - // non-null, then queue a fetch task given fetchParams’s process request - // end-of-body and fetchParams’s task destination. - if (request.body == null && fetchParams.processRequestEndOfBody) { - queueMicrotask(() => fetchParams.processRequestEndOfBody()) - } else if (request.body != null) { - // 2. Otherwise, if body is non-null: - - // 1. Let processBodyChunk given bytes be these steps: - const processBodyChunk = async function * (bytes) { - // 1. If the ongoing fetch is terminated, then abort these steps. - if (isCancelled(fetchParams)) { - return - } - - // 2. Run this step in parallel: transmit bytes. - yield bytes - - // 3. If fetchParams’s process request body is non-null, then run - // fetchParams’s process request body given bytes’s length. - fetchParams.processRequestBodyChunkLength?.(bytes.byteLength) - } - - // 2. Let processEndOfBody be these steps: - const processEndOfBody = () => { - // 1. If fetchParams is canceled, then abort these steps. - if (isCancelled(fetchParams)) { - return - } - - // 2. If fetchParams’s process request end-of-body is non-null, - // then run fetchParams’s process request end-of-body. - if (fetchParams.processRequestEndOfBody) { - fetchParams.processRequestEndOfBody() - } - } - - // 3. Let processBodyError given e be these steps: - const processBodyError = (e) => { - // 1. If fetchParams is canceled, then abort these steps. - if (isCancelled(fetchParams)) { - return - } - - // 2. If e is an "AbortError" DOMException, then abort fetchParams’s controller. - if (e.name === 'AbortError') { - fetchParams.controller.abort() - } else { - fetchParams.controller.terminate(e) - } - } - - // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody, - // processBodyError, and fetchParams’s task destination. - requestBody = (async function * () { - try { - for await (const bytes of request.body.stream) { - yield * processBodyChunk(bytes) - } - processEndOfBody() - } catch (err) { - processBodyError(err) - } - })() - } - - try { - // socket is only provided for websockets - const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }) - - if (socket) { - response = makeResponse({ status, statusText, headersList, socket }) - } else { - const iterator = body[Symbol.asyncIterator]() - fetchParams.controller.next = () => iterator.next() - - response = makeResponse({ status, statusText, headersList }) - } - } catch (err) { - // 10. If aborted, then: - if (err.name === 'AbortError') { - // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame. - fetchParams.controller.connection.destroy() - - // 2. Return the appropriate network error for fetchParams. - return makeAppropriateNetworkError(fetchParams, err) - } - - return makeNetworkError(err) - } - - // 11. Let pullAlgorithm be an action that resumes the ongoing fetch - // if it is suspended. - const pullAlgorithm = () => { - fetchParams.controller.resume() - } - - // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s - // controller with reason, given reason. - const cancelAlgorithm = (reason) => { - fetchParams.controller.abort(reason) - } - - // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by - // the user agent. - // TODO - - // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object - // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent. - // TODO - - // 15. Let stream be a new ReadableStream. - // 16. Set up stream with pullAlgorithm set to pullAlgorithm, - // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to - // highWaterMark, and sizeAlgorithm set to sizeAlgorithm. - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(3774).ReadableStream) - } - - const stream = new ReadableStream( - { - async start (controller) { - fetchParams.controller.controller = controller - }, - async pull (controller) { - await pullAlgorithm(controller) - }, - async cancel (reason) { - await cancelAlgorithm(reason) - } - }, - { - highWaterMark: 0, - size () { - return 1 - } - } - ) - - // 17. Run these steps, but abort when the ongoing fetch is terminated: - - // 1. Set response’s body to a new body whose stream is stream. - response.body = { stream } - - // 2. If response is not a network error and request’s cache mode is - // not "no-store", then update response in httpCache for request. - // TODO - - // 3. If includeCredentials is true and the user agent is not configured - // to block cookies for request (see section 7 of [COOKIES]), then run the - // "set-cookie-string" parsing algorithm (see section 5.2 of [COOKIES]) on - // the value of each header whose name is a byte-case-insensitive match for - // `Set-Cookie` in response’s header list, if any, and request’s current URL. - // TODO - - // 18. If aborted, then: - // TODO - - // 19. Run these steps in parallel: - - // 1. Run these steps, but abort when fetchParams is canceled: - fetchParams.controller.on('terminated', onAborted) - fetchParams.controller.resume = async () => { - // 1. While true - while (true) { - // 1-3. See onData... - - // 4. Set bytes to the result of handling content codings given - // codings and bytes. - let bytes - let isFailure - try { - const { done, value } = await fetchParams.controller.next() - - if (isAborted(fetchParams)) { - break - } - - bytes = done ? undefined : value - } catch (err) { - if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { - // zlib doesn't like empty streams. - bytes = undefined - } else { - bytes = err - - // err may be propagated from the result of calling readablestream.cancel, - // which might not be an error. https://github.com/nodejs/undici/issues/2009 - isFailure = true - } - } - - if (bytes === undefined) { - // 2. Otherwise, if the bytes transmission for response’s message - // body is done normally and stream is readable, then close - // stream, finalize response for fetchParams and response, and - // abort these in-parallel steps. - readableStreamClose(fetchParams.controller.controller) - - finalizeResponse(fetchParams, response) - - return - } - - // 5. Increase timingInfo’s decoded body size by bytes’s length. - timingInfo.decodedBodySize += bytes?.byteLength ?? 0 - - // 6. If bytes is failure, then terminate fetchParams’s controller. - if (isFailure) { - fetchParams.controller.terminate(bytes) - return - } - - // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes - // into stream. - fetchParams.controller.controller.enqueue(new Uint8Array(bytes)) - - // 8. If stream is errored, then terminate the ongoing fetch. - if (isErrored(stream)) { - fetchParams.controller.terminate() - return - } - - // 9. If stream doesn’t need more data ask the user agent to suspend - // the ongoing fetch. - if (!fetchParams.controller.controller.desiredSize) { - return - } - } - } - - // 2. If aborted, then: - function onAborted (reason) { - // 2. If fetchParams is aborted, then: - if (isAborted(fetchParams)) { - // 1. Set response’s aborted flag. - response.aborted = true - - // 2. If stream is readable, then error stream with the result of - // deserialize a serialized abort reason given fetchParams’s - // controller’s serialized abort reason and an - // implementation-defined realm. - if (isReadable(stream)) { - fetchParams.controller.controller.error( - fetchParams.controller.serializedAbortReason - ) - } - } else { - // 3. Otherwise, if stream is readable, error stream with a TypeError. - if (isReadable(stream)) { - fetchParams.controller.controller.error(new TypeError('terminated', { - cause: isErrorLike(reason) ? reason : undefined - })) - } - } - - // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame. - // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so. - fetchParams.controller.connection.destroy() - } - - // 20. Return response. - return response - - async function dispatch ({ body }) { - const url = requestCurrentURL(request) - /** @type {import('../..').Agent} */ - const agent = fetchParams.controller.dispatcher - - return new Promise((resolve, reject) => agent.dispatch( - { - path: url.pathname + url.search, - origin: url.origin, - method: request.method, - body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body, - headers: request.headersList.entries, - maxRedirections: 0, - upgrade: request.mode === 'websocket' ? 'websocket' : undefined - }, - { - body: null, - abort: null, - - onConnect (abort) { - // TODO (fix): Do we need connection here? - const { connection } = fetchParams.controller - - if (connection.destroyed) { - abort(new DOMException('The operation was aborted.', 'AbortError')) - } else { - fetchParams.controller.on('terminated', abort) - this.abort = connection.abort = abort - } - }, - - onHeaders (status, headersList, resume, statusText) { - if (status < 200) { - return - } - - let codings = [] - let location = '' - - const headers = new Headers() - - // For H2, the headers are a plain JS object - // We distinguish between them and iterate accordingly - if (Array.isArray(headersList)) { - for (let n = 0; n < headersList.length; n += 2) { - const key = headersList[n + 0].toString('latin1') - const val = headersList[n + 1].toString('latin1') - if (key.toLowerCase() === 'content-encoding') { - // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 - // "All content-coding values are case-insensitive..." - codings = val.toLowerCase().split(',').map((x) => x.trim()) - } else if (key.toLowerCase() === 'location') { - location = val - } - - headers[kHeadersList].append(key, val) - } - } else { - const keys = Object.keys(headersList) - for (const key of keys) { - const val = headersList[key] - if (key.toLowerCase() === 'content-encoding') { - // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 - // "All content-coding values are case-insensitive..." - codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse() - } else if (key.toLowerCase() === 'location') { - location = val - } - - headers[kHeadersList].append(key, val) - } - } - - this.body = new Readable({ read: resume }) - - const decoders = [] - - const willFollow = request.redirect === 'follow' && - location && - redirectStatusSet.has(status) - - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding - if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) { - for (const coding of codings) { - // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2 - if (coding === 'x-gzip' || coding === 'gzip') { - decoders.push(zlib.createGunzip({ - // 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. - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH - })) - } else if (coding === 'deflate') { - decoders.push(zlib.createInflate()) - } else if (coding === 'br') { - decoders.push(zlib.createBrotliDecompress()) - } else { - decoders.length = 0 - break - } - } - } - - resolve({ - status, - statusText, - headersList: headers[kHeadersList], - body: decoders.length - ? pipeline(this.body, ...decoders, () => { }) - : this.body.on('error', () => {}) - }) - - return true - }, - - onData (chunk) { - if (fetchParams.controller.dump) { - return - } - - // 1. If one or more bytes have been transmitted from response’s - // message body, then: - - // 1. Let bytes be the transmitted bytes. - const bytes = chunk - - // 2. Let codings be the result of extracting header list values - // given `Content-Encoding` and response’s header list. - // See pullAlgorithm. - - // 3. Increase timingInfo’s encoded body size by bytes’s length. - timingInfo.encodedBodySize += bytes.byteLength - - // 4. See pullAlgorithm... - - return this.body.push(bytes) - }, - - onComplete () { - if (this.abort) { - fetchParams.controller.off('terminated', this.abort) - } - - fetchParams.controller.ended = true - - this.body.push(null) - }, - - onError (error) { - if (this.abort) { - fetchParams.controller.off('terminated', this.abort) - } - - this.body?.destroy(error) - - fetchParams.controller.terminate(error) - - reject(error) - }, - - onUpgrade (status, headersList, socket) { - if (status !== 101) { - return - } - - const headers = new Headers() - - for (let n = 0; n < headersList.length; n += 2) { - const key = headersList[n + 0].toString('latin1') - const val = headersList[n + 1].toString('latin1') - - headers[kHeadersList].append(key, val) - } - - resolve({ - status, - statusText: STATUS_CODES[status], - headersList: headers[kHeadersList], - socket - }) - - return true - } - } - )) - } -} - -module.exports = { - fetch, - Fetch, - fetching, - finalizeAndReportTiming -} - - -/***/ }), - -/***/ 4960: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -/* globals AbortController */ - - - -const { extractBody, mixinBody, cloneBody } = __nccwpck_require__(3893) -const { Headers, fill: fillHeaders, HeadersList } = __nccwpck_require__(6203) -const { FinalizationRegistry } = __nccwpck_require__(7108)() -const util = __nccwpck_require__(162) -const { - isValidHTTPToken, - sameOrigin, - normalizeMethod, - makePolicyContainer, - normalizeMethodRecord -} = __nccwpck_require__(7189) -const { - forbiddenMethodsSet, - corsSafeListedMethodsSet, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - requestDuplex -} = __nccwpck_require__(1356) -const { kEnumerableProperty } = util -const { kHeaders, kSignal, kState, kGuard, kRealm } = __nccwpck_require__(4236) -const { webidl } = __nccwpck_require__(7472) -const { getGlobalOrigin } = __nccwpck_require__(2498) -const { URLSerializer } = __nccwpck_require__(5892) -const { kHeadersList, kConstruct } = __nccwpck_require__(249) -const assert = __nccwpck_require__(2613) -const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __nccwpck_require__(4434) - -let TransformStream = globalThis.TransformStream - -const kAbortController = Symbol('abortController') - -const requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { - signal.removeEventListener('abort', abort) -}) - -// https://fetch.spec.whatwg.org/#request-class -class Request { - // https://fetch.spec.whatwg.org/#dom-request - constructor (input, init = {}) { - if (input === kConstruct) { - return - } - - webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' }) - - input = webidl.converters.RequestInfo(input) - init = webidl.converters.RequestInit(init) - - // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object - this[kRealm] = { - settingsObject: { - baseUrl: getGlobalOrigin(), - get origin () { - return this.baseUrl?.origin - }, - policyContainer: makePolicyContainer() - } - } - - // 1. Let request be null. - let request = null - - // 2. Let fallbackMode be null. - let fallbackMode = null - - // 3. Let baseURL be this’s relevant settings object’s API base URL. - const baseUrl = this[kRealm].settingsObject.baseUrl - - // 4. Let signal be null. - let signal = null - - // 5. If input is a string, then: - if (typeof input === 'string') { - // 1. Let parsedURL be the result of parsing input with baseURL. - // 2. If parsedURL is failure, then throw a TypeError. - let parsedURL - try { - parsedURL = new URL(input, baseUrl) - } catch (err) { - throw new TypeError('Failed to parse URL from ' + input, { cause: err }) - } - - // 3. If parsedURL includes credentials, then throw a TypeError. - if (parsedURL.username || parsedURL.password) { - throw new TypeError( - 'Request cannot be constructed from a URL that includes credentials: ' + - input - ) - } - - // 4. Set request to a new request whose URL is parsedURL. - request = makeRequest({ urlList: [parsedURL] }) - - // 5. Set fallbackMode to "cors". - fallbackMode = 'cors' - } else { - // 6. Otherwise: - - // 7. Assert: input is a Request object. - assert(input instanceof Request) - - // 8. Set request to input’s request. - request = input[kState] - - // 9. Set signal to input’s signal. - signal = input[kSignal] - } - - // 7. Let origin be this’s relevant settings object’s origin. - const origin = this[kRealm].settingsObject.origin - - // 8. Let window be "client". - let window = 'client' - - // 9. If request’s window is an environment settings object and its origin - // is same origin with origin, then set window to request’s window. - if ( - request.window?.constructor?.name === 'EnvironmentSettingsObject' && - sameOrigin(request.window, origin) - ) { - window = request.window - } - - // 10. If init["window"] exists and is non-null, then throw a TypeError. - if (init.window != null) { - throw new TypeError(`'window' option '${window}' must be null`) - } - - // 11. If init["window"] exists, then set window to "no-window". - if ('window' in init) { - window = 'no-window' - } - - // 12. Set request to a new request with the following properties: - request = makeRequest({ - // URL request’s URL. - // undici implementation note: this is set as the first item in request's urlList in makeRequest - // method request’s method. - method: request.method, - // header list A copy of request’s header list. - // undici implementation note: headersList is cloned in makeRequest - headersList: request.headersList, - // unsafe-request flag Set. - unsafeRequest: request.unsafeRequest, - // client This’s relevant settings object. - client: this[kRealm].settingsObject, - // window window. - window, - // priority request’s priority. - priority: request.priority, - // origin request’s origin. The propagation of the origin is only significant for navigation requests - // being handled by a service worker. In this scenario a request can have an origin that is different - // from the current client. - origin: request.origin, - // referrer request’s referrer. - referrer: request.referrer, - // referrer policy request’s referrer policy. - referrerPolicy: request.referrerPolicy, - // mode request’s mode. - mode: request.mode, - // credentials mode request’s credentials mode. - credentials: request.credentials, - // cache mode request’s cache mode. - cache: request.cache, - // redirect mode request’s redirect mode. - redirect: request.redirect, - // integrity metadata request’s integrity metadata. - integrity: request.integrity, - // keepalive request’s keepalive. - keepalive: request.keepalive, - // reload-navigation flag request’s reload-navigation flag. - reloadNavigation: request.reloadNavigation, - // history-navigation flag request’s history-navigation flag. - historyNavigation: request.historyNavigation, - // URL list A clone of request’s URL list. - urlList: [...request.urlList] - }) - - const initHasKey = Object.keys(init).length !== 0 - - // 13. If init is not empty, then: - if (initHasKey) { - // 1. If request’s mode is "navigate", then set it to "same-origin". - if (request.mode === 'navigate') { - request.mode = 'same-origin' - } - - // 2. Unset request’s reload-navigation flag. - request.reloadNavigation = false - - // 3. Unset request’s history-navigation flag. - request.historyNavigation = false - - // 4. Set request’s origin to "client". - request.origin = 'client' - - // 5. Set request’s referrer to "client" - request.referrer = 'client' - - // 6. Set request’s referrer policy to the empty string. - request.referrerPolicy = '' - - // 7. Set request’s URL to request’s current URL. - request.url = request.urlList[request.urlList.length - 1] - - // 8. Set request’s URL list to « request’s URL ». - request.urlList = [request.url] - } - - // 14. If init["referrer"] exists, then: - if (init.referrer !== undefined) { - // 1. Let referrer be init["referrer"]. - const referrer = init.referrer - - // 2. If referrer is the empty string, then set request’s referrer to "no-referrer". - if (referrer === '') { - request.referrer = 'no-referrer' - } else { - // 1. Let parsedReferrer be the result of parsing referrer with - // baseURL. - // 2. If parsedReferrer is failure, then throw a TypeError. - let parsedReferrer - try { - parsedReferrer = new URL(referrer, baseUrl) - } catch (err) { - throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }) - } - - // 3. If one of the following is true - // - parsedReferrer’s scheme is "about" and path is the string "client" - // - parsedReferrer’s origin is not same origin with origin - // then set request’s referrer to "client". - if ( - (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') || - (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl)) - ) { - request.referrer = 'client' - } else { - // 4. Otherwise, set request’s referrer to parsedReferrer. - request.referrer = parsedReferrer - } - } - } - - // 15. If init["referrerPolicy"] exists, then set request’s referrer policy - // to it. - if (init.referrerPolicy !== undefined) { - request.referrerPolicy = init.referrerPolicy - } - - // 16. Let mode be init["mode"] if it exists, and fallbackMode otherwise. - let mode - if (init.mode !== undefined) { - mode = init.mode - } else { - mode = fallbackMode - } - - // 17. If mode is "navigate", then throw a TypeError. - if (mode === 'navigate') { - throw webidl.errors.exception({ - header: 'Request constructor', - message: 'invalid request mode navigate.' - }) - } - - // 18. If mode is non-null, set request’s mode to mode. - if (mode != null) { - request.mode = mode - } - - // 19. If init["credentials"] exists, then set request’s credentials mode - // to it. - if (init.credentials !== undefined) { - request.credentials = init.credentials - } - - // 18. If init["cache"] exists, then set request’s cache mode to it. - if (init.cache !== undefined) { - request.cache = init.cache - } - - // 21. If request’s cache mode is "only-if-cached" and request’s mode is - // not "same-origin", then throw a TypeError. - if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { - throw new TypeError( - "'only-if-cached' can be set only with 'same-origin' mode" - ) - } - - // 22. If init["redirect"] exists, then set request’s redirect mode to it. - if (init.redirect !== undefined) { - request.redirect = init.redirect - } - - // 23. If init["integrity"] exists, then set request’s integrity metadata to it. - if (init.integrity != null) { - request.integrity = String(init.integrity) - } - - // 24. If init["keepalive"] exists, then set request’s keepalive to it. - if (init.keepalive !== undefined) { - request.keepalive = Boolean(init.keepalive) - } - - // 25. If init["method"] exists, then: - if (init.method !== undefined) { - // 1. Let method be init["method"]. - let method = init.method - - // 2. If method is not a method or method is a forbidden method, then - // throw a TypeError. - if (!isValidHTTPToken(method)) { - throw new TypeError(`'${method}' is not a valid HTTP method.`) - } - - if (forbiddenMethodsSet.has(method.toUpperCase())) { - throw new TypeError(`'${method}' HTTP method is unsupported.`) - } - - // 3. Normalize method. - method = normalizeMethodRecord[method] ?? normalizeMethod(method) - - // 4. Set request’s method to method. - request.method = method - } - - // 26. If init["signal"] exists, then set signal to it. - if (init.signal !== undefined) { - signal = init.signal - } - - // 27. Set this’s request to request. - this[kState] = request - - // 28. Set this’s signal to a new AbortSignal object with this’s relevant - // Realm. - // TODO: could this be simplified with AbortSignal.any - // (https://dom.spec.whatwg.org/#dom-abortsignal-any) - const ac = new AbortController() - this[kSignal] = ac.signal - this[kSignal][kRealm] = this[kRealm] - - // 29. If signal is not null, then make this’s signal follow signal. - if (signal != null) { - if ( - !signal || - typeof signal.aborted !== 'boolean' || - typeof signal.addEventListener !== 'function' - ) { - throw new TypeError( - "Failed to construct 'Request': member signal is not of type AbortSignal." - ) - } - - if (signal.aborted) { - ac.abort(signal.reason) - } else { - // Keep a strong ref to ac while request object - // is alive. This is needed to prevent AbortController - // from being prematurely garbage collected. - // See, https://github.com/nodejs/undici/issues/1926. - this[kAbortController] = ac - - const acRef = new WeakRef(ac) - const abort = function () { - const ac = acRef.deref() - if (ac !== undefined) { - ac.abort(this.reason) - } - } - - // Third-party AbortControllers may not work with these. - // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619. - try { - // If the max amount of listeners is equal to the default, increase it - // This is only available in node >= v19.9.0 - if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) { - setMaxListeners(100, signal) - } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) { - setMaxListeners(100, signal) - } - } catch {} - - util.addAbortListener(signal, abort) - requestFinalizer.register(ac, { signal, abort }) - } - } - - // 30. Set this’s headers to a new Headers object with this’s relevant - // Realm, whose header list is request’s header list and guard is - // "request". - this[kHeaders] = new Headers(kConstruct) - this[kHeaders][kHeadersList] = request.headersList - this[kHeaders][kGuard] = 'request' - this[kHeaders][kRealm] = this[kRealm] - - // 31. If this’s request’s mode is "no-cors", then: - if (mode === 'no-cors') { - // 1. If this’s request’s method is not a CORS-safelisted method, - // then throw a TypeError. - if (!corsSafeListedMethodsSet.has(request.method)) { - throw new TypeError( - `'${request.method} is unsupported in no-cors mode.` - ) - } - - // 2. Set this’s headers’s guard to "request-no-cors". - this[kHeaders][kGuard] = 'request-no-cors' - } - - // 32. If init is not empty, then: - if (initHasKey) { - /** @type {HeadersList} */ - const headersList = this[kHeaders][kHeadersList] - // 1. Let headers be a copy of this’s headers and its associated header - // list. - // 2. If init["headers"] exists, then set headers to init["headers"]. - const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList) - - // 3. Empty this’s headers’s header list. - headersList.clear() - - // 4. If headers is a Headers object, then for each header in its header - // list, append header’s name/header’s value to this’s headers. - if (headers instanceof HeadersList) { - for (const [key, val] of headers) { - headersList.append(key, val) - } - // Note: Copy the `set-cookie` meta-data. - headersList.cookies = headers.cookies - } else { - // 5. Otherwise, fill this’s headers with headers. - fillHeaders(this[kHeaders], headers) - } - } - - // 33. Let inputBody be input’s request’s body if input is a Request - // object; otherwise null. - const inputBody = input instanceof Request ? input[kState].body : null - - // 34. If either init["body"] exists and is non-null or inputBody is - // non-null, and request’s method is `GET` or `HEAD`, then throw a - // TypeError. - if ( - (init.body != null || inputBody != null) && - (request.method === 'GET' || request.method === 'HEAD') - ) { - throw new TypeError('Request with GET/HEAD method cannot have body.') - } - - // 35. Let initBody be null. - let initBody = null - - // 36. If init["body"] exists and is non-null, then: - if (init.body != null) { - // 1. Let Content-Type be null. - // 2. Set initBody and Content-Type to the result of extracting - // init["body"], with keepalive set to request’s keepalive. - const [extractedBody, contentType] = extractBody( - init.body, - request.keepalive - ) - initBody = extractedBody - - // 3, If Content-Type is non-null and this’s headers’s header list does - // not contain `Content-Type`, then append `Content-Type`/Content-Type to - // this’s headers. - if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) { - this[kHeaders].append('content-type', contentType) - } - } - - // 37. Let inputOrInitBody be initBody if it is non-null; otherwise - // inputBody. - const inputOrInitBody = initBody ?? inputBody - - // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is - // null, then: - if (inputOrInitBody != null && inputOrInitBody.source == null) { - // 1. If initBody is non-null and init["duplex"] does not exist, - // then throw a TypeError. - if (initBody != null && init.duplex == null) { - throw new TypeError('RequestInit: duplex option is required when sending a body.') - } - - // 2. If this’s request’s mode is neither "same-origin" nor "cors", - // then throw a TypeError. - if (request.mode !== 'same-origin' && request.mode !== 'cors') { - throw new TypeError( - 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' - ) - } - - // 3. Set this’s request’s use-CORS-preflight flag. - request.useCORSPreflightFlag = true - } - - // 39. Let finalBody be inputOrInitBody. - let finalBody = inputOrInitBody - - // 40. If initBody is null and inputBody is non-null, then: - if (initBody == null && inputBody != null) { - // 1. If input is unusable, then throw a TypeError. - if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) { - throw new TypeError( - 'Cannot construct a Request with a Request object that has already been used.' - ) - } - - // 2. Set finalBody to the result of creating a proxy for inputBody. - if (!TransformStream) { - TransformStream = (__nccwpck_require__(3774).TransformStream) - } - - // https://streams.spec.whatwg.org/#readablestream-create-a-proxy - const identityTransform = new TransformStream() - inputBody.stream.pipeThrough(identityTransform) - finalBody = { - source: inputBody.source, - length: inputBody.length, - stream: identityTransform.readable - } - } - - // 41. Set this’s request’s body to finalBody. - this[kState].body = finalBody - } - - // Returns request’s HTTP method, which is "GET" by default. - get method () { - webidl.brandCheck(this, Request) - - // The method getter steps are to return this’s request’s method. - return this[kState].method - } - - // Returns the URL of request as a string. - get url () { - webidl.brandCheck(this, Request) - - // The url getter steps are to return this’s request’s URL, serialized. - return URLSerializer(this[kState].url) - } - - // Returns a Headers object consisting of the headers associated with request. - // Note that headers added in the network layer by the user agent will not - // be accounted for in this object, e.g., the "Host" header. - get headers () { - webidl.brandCheck(this, Request) - - // The headers getter steps are to return this’s headers. - return this[kHeaders] - } - - // Returns the kind of resource requested by request, e.g., "document" - // or "script". - get destination () { - webidl.brandCheck(this, Request) - - // The destination getter are to return this’s request’s destination. - return this[kState].destination - } - - // Returns the referrer of request. Its value can be a same-origin URL if - // explicitly set in init, the empty string to indicate no referrer, and - // "about:client" when defaulting to the global’s default. This is used - // during fetching to determine the value of the `Referer` header of the - // request being made. - get referrer () { - webidl.brandCheck(this, Request) - - // 1. If this’s request’s referrer is "no-referrer", then return the - // empty string. - if (this[kState].referrer === 'no-referrer') { - return '' - } - - // 2. If this’s request’s referrer is "client", then return - // "about:client". - if (this[kState].referrer === 'client') { - return 'about:client' - } - - // Return this’s request’s referrer, serialized. - return this[kState].referrer.toString() - } - - // Returns the referrer policy associated with request. - // This is used during fetching to compute the value of the request’s - // referrer. - get referrerPolicy () { - webidl.brandCheck(this, Request) - - // The referrerPolicy getter steps are to return this’s request’s referrer policy. - return this[kState].referrerPolicy - } - - // Returns the mode associated with request, which is a string indicating - // whether the request will use CORS, or will be restricted to same-origin - // URLs. - get mode () { - webidl.brandCheck(this, Request) - - // The mode getter steps are to return this’s request’s mode. - return this[kState].mode - } - - // Returns the credentials mode associated with request, - // which is a string indicating whether credentials will be sent with the - // request always, never, or only when sent to a same-origin URL. - get credentials () { - // The credentials getter steps are to return this’s request’s credentials mode. - return this[kState].credentials - } - - // Returns the cache mode associated with request, - // which is a string indicating how the request will - // interact with the browser’s cache when fetching. - get cache () { - webidl.brandCheck(this, Request) - - // The cache getter steps are to return this’s request’s cache mode. - return this[kState].cache - } - - // Returns the redirect mode associated with request, - // which is a string indicating how redirects for the - // request will be handled during fetching. A request - // will follow redirects by default. - get redirect () { - webidl.brandCheck(this, Request) - - // The redirect getter steps are to return this’s request’s redirect mode. - return this[kState].redirect - } - - // Returns request’s subresource integrity metadata, which is a - // cryptographic hash of the resource being fetched. Its value - // consists of multiple hashes separated by whitespace. [SRI] - get integrity () { - webidl.brandCheck(this, Request) - - // The integrity getter steps are to return this’s request’s integrity - // metadata. - return this[kState].integrity - } - - // Returns a boolean indicating whether or not request can outlive the - // global in which it was created. - get keepalive () { - webidl.brandCheck(this, Request) - - // The keepalive getter steps are to return this’s request’s keepalive. - return this[kState].keepalive - } - - // Returns a boolean indicating whether or not request is for a reload - // navigation. - get isReloadNavigation () { - webidl.brandCheck(this, Request) - - // The isReloadNavigation getter steps are to return true if this’s - // request’s reload-navigation flag is set; otherwise false. - return this[kState].reloadNavigation - } - - // Returns a boolean indicating whether or not request is for a history - // navigation (a.k.a. back-foward navigation). - get isHistoryNavigation () { - webidl.brandCheck(this, Request) - - // The isHistoryNavigation getter steps are to return true if this’s request’s - // history-navigation flag is set; otherwise false. - return this[kState].historyNavigation - } - - // Returns the signal associated with request, which is an AbortSignal - // object indicating whether or not request has been aborted, and its - // abort event handler. - get signal () { - webidl.brandCheck(this, Request) - - // The signal getter steps are to return this’s signal. - return this[kSignal] - } - - get body () { - webidl.brandCheck(this, Request) - - return this[kState].body ? this[kState].body.stream : null - } - - get bodyUsed () { - webidl.brandCheck(this, Request) - - return !!this[kState].body && util.isDisturbed(this[kState].body.stream) - } - - get duplex () { - webidl.brandCheck(this, Request) - - return 'half' - } - - // Returns a clone of request. - clone () { - webidl.brandCheck(this, Request) - - // 1. If this is unusable, then throw a TypeError. - if (this.bodyUsed || this.body?.locked) { - throw new TypeError('unusable') - } - - // 2. Let clonedRequest be the result of cloning this’s request. - const clonedRequest = cloneRequest(this[kState]) - - // 3. Let clonedRequestObject be the result of creating a Request object, - // given clonedRequest, this’s headers’s guard, and this’s relevant Realm. - const clonedRequestObject = new Request(kConstruct) - clonedRequestObject[kState] = clonedRequest - clonedRequestObject[kRealm] = this[kRealm] - clonedRequestObject[kHeaders] = new Headers(kConstruct) - clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList - clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard] - clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm] - - // 4. Make clonedRequestObject’s signal follow this’s signal. - const ac = new AbortController() - if (this.signal.aborted) { - ac.abort(this.signal.reason) - } else { - util.addAbortListener( - this.signal, - () => { - ac.abort(this.signal.reason) - } - ) - } - clonedRequestObject[kSignal] = ac.signal - - // 4. Return clonedRequestObject. - return clonedRequestObject - } -} - -mixinBody(Request) - -function makeRequest (init) { - // https://fetch.spec.whatwg.org/#requests - const request = { - method: 'GET', - localURLsOnly: false, - unsafeRequest: false, - body: null, - client: null, - reservedClient: null, - replacesClientId: '', - window: 'client', - keepalive: false, - serviceWorkers: 'all', - initiator: '', - destination: '', - priority: null, - origin: 'client', - policyContainer: 'client', - referrer: 'client', - referrerPolicy: '', - mode: 'no-cors', - useCORSPreflightFlag: false, - credentials: 'same-origin', - useCredentials: false, - cache: 'default', - redirect: 'follow', - integrity: '', - cryptoGraphicsNonceMetadata: '', - parserMetadata: '', - reloadNavigation: false, - historyNavigation: false, - userActivation: false, - taintedOrigin: false, - redirectCount: 0, - responseTainting: 'basic', - preventNoCacheCacheControlHeaderModification: false, - done: false, - timingAllowFailed: false, - ...init, - headersList: init.headersList - ? new HeadersList(init.headersList) - : new HeadersList() - } - request.url = request.urlList[0] - return request -} - -// https://fetch.spec.whatwg.org/#concept-request-clone -function cloneRequest (request) { - // To clone a request request, run these steps: - - // 1. Let newRequest be a copy of request, except for its body. - const newRequest = makeRequest({ ...request, body: null }) - - // 2. If request’s body is non-null, set newRequest’s body to the - // result of cloning request’s body. - if (request.body != null) { - newRequest.body = cloneBody(request.body) - } - - // 3. Return newRequest. - return newRequest -} - -Object.defineProperties(Request.prototype, { - method: kEnumerableProperty, - url: kEnumerableProperty, - headers: kEnumerableProperty, - redirect: kEnumerableProperty, - clone: kEnumerableProperty, - signal: kEnumerableProperty, - duplex: kEnumerableProperty, - destination: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - isHistoryNavigation: kEnumerableProperty, - isReloadNavigation: kEnumerableProperty, - keepalive: kEnumerableProperty, - integrity: kEnumerableProperty, - cache: kEnumerableProperty, - credentials: kEnumerableProperty, - attribute: kEnumerableProperty, - referrerPolicy: kEnumerableProperty, - referrer: kEnumerableProperty, - mode: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Request', - configurable: true - } -}) - -webidl.converters.Request = webidl.interfaceConverter( - Request -) - -// https://fetch.spec.whatwg.org/#requestinfo -webidl.converters.RequestInfo = function (V) { - if (typeof V === 'string') { - return webidl.converters.USVString(V) - } - - if (V instanceof Request) { - return webidl.converters.Request(V) - } - - return webidl.converters.USVString(V) -} - -webidl.converters.AbortSignal = webidl.interfaceConverter( - AbortSignal -) - -// https://fetch.spec.whatwg.org/#requestinit -webidl.converters.RequestInit = webidl.dictionaryConverter([ - { - key: 'method', - converter: webidl.converters.ByteString - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - }, - { - key: 'body', - converter: webidl.nullableConverter( - webidl.converters.BodyInit - ) - }, - { - key: 'referrer', - converter: webidl.converters.USVString - }, - { - key: 'referrerPolicy', - converter: webidl.converters.DOMString, - // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy - allowedValues: referrerPolicy - }, - { - key: 'mode', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#concept-request-mode - allowedValues: requestMode - }, - { - key: 'credentials', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestcredentials - allowedValues: requestCredentials - }, - { - key: 'cache', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestcache - allowedValues: requestCache - }, - { - key: 'redirect', - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestredirect - allowedValues: requestRedirect - }, - { - key: 'integrity', - converter: webidl.converters.DOMString - }, - { - key: 'keepalive', - converter: webidl.converters.boolean - }, - { - key: 'signal', - converter: webidl.nullableConverter( - (signal) => webidl.converters.AbortSignal( - signal, - { strict: false } - ) - ) - }, - { - key: 'window', - converter: webidl.converters.any - }, - { - key: 'duplex', - converter: webidl.converters.DOMString, - allowedValues: requestDuplex - } -]) - -module.exports = { Request, makeRequest } - - -/***/ }), - -/***/ 3258: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { Headers, HeadersList, fill } = __nccwpck_require__(6203) -const { extractBody, cloneBody, mixinBody } = __nccwpck_require__(3893) -const util = __nccwpck_require__(162) -const { kEnumerableProperty } = util -const { - isValidReasonPhrase, - isCancelled, - isAborted, - isBlobLike, - serializeJavascriptValueToJSONString, - isErrorLike, - isomorphicEncode -} = __nccwpck_require__(7189) -const { - redirectStatusSet, - nullBodyStatus, - DOMException -} = __nccwpck_require__(1356) -const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(4236) -const { webidl } = __nccwpck_require__(7472) -const { FormData } = __nccwpck_require__(3639) -const { getGlobalOrigin } = __nccwpck_require__(2498) -const { URLSerializer } = __nccwpck_require__(5892) -const { kHeadersList, kConstruct } = __nccwpck_require__(249) -const assert = __nccwpck_require__(2613) -const { types } = __nccwpck_require__(9023) - -const ReadableStream = globalThis.ReadableStream || (__nccwpck_require__(3774).ReadableStream) -const textEncoder = new TextEncoder('utf-8') - -// https://fetch.spec.whatwg.org/#response-class -class Response { - // Creates network error Response. - static error () { - // TODO - const relevantRealm = { settingsObject: {} } - - // The static error() method steps are to return the result of creating a - // Response object, given a new network error, "immutable", and this’s - // relevant Realm. - const responseObject = new Response() - responseObject[kState] = makeNetworkError() - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList - responseObject[kHeaders][kGuard] = 'immutable' - responseObject[kHeaders][kRealm] = relevantRealm - return responseObject - } - - // https://fetch.spec.whatwg.org/#dom-response-json - static json (data, init = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' }) - - if (init !== null) { - init = webidl.converters.ResponseInit(init) - } - - // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data. - const bytes = textEncoder.encode( - serializeJavascriptValueToJSONString(data) - ) - - // 2. Let body be the result of extracting bytes. - const body = extractBody(bytes) - - // 3. Let responseObject be the result of creating a Response object, given a new response, - // "response", and this’s relevant Realm. - const relevantRealm = { settingsObject: {} } - const responseObject = new Response() - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kGuard] = 'response' - responseObject[kHeaders][kRealm] = relevantRealm - - // 4. Perform initialize a response given responseObject, init, and (body, "application/json"). - initializeResponse(responseObject, init, { body: body[0], type: 'application/json' }) - - // 5. Return responseObject. - return responseObject - } - - // Creates a redirect Response that redirects to url with status status. - static redirect (url, status = 302) { - const relevantRealm = { settingsObject: {} } - - webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' }) - - url = webidl.converters.USVString(url) - status = webidl.converters['unsigned short'](status) - - // 1. Let parsedURL be the result of parsing url with current settings - // object’s API base URL. - // 2. If parsedURL is failure, then throw a TypeError. - // TODO: base-URL? - let parsedURL - try { - parsedURL = new URL(url, getGlobalOrigin()) - } catch (err) { - throw Object.assign(new TypeError('Failed to parse URL from ' + url), { - cause: err - }) - } - - // 3. If status is not a redirect status, then throw a RangeError. - if (!redirectStatusSet.has(status)) { - throw new RangeError('Invalid status code ' + status) - } - - // 4. Let responseObject be the result of creating a Response object, - // given a new response, "immutable", and this’s relevant Realm. - const responseObject = new Response() - responseObject[kRealm] = relevantRealm - responseObject[kHeaders][kGuard] = 'immutable' - responseObject[kHeaders][kRealm] = relevantRealm - - // 5. Set responseObject’s response’s status to status. - responseObject[kState].status = status - - // 6. Let value be parsedURL, serialized and isomorphic encoded. - const value = isomorphicEncode(URLSerializer(parsedURL)) - - // 7. Append `Location`/value to responseObject’s response’s header list. - responseObject[kState].headersList.append('location', value) - - // 8. Return responseObject. - return responseObject - } - - // https://fetch.spec.whatwg.org/#dom-response - constructor (body = null, init = {}) { - if (body !== null) { - body = webidl.converters.BodyInit(body) - } - - init = webidl.converters.ResponseInit(init) - - // TODO - this[kRealm] = { settingsObject: {} } - - // 1. Set this’s response to a new response. - this[kState] = makeResponse({}) - - // 2. Set this’s headers to a new Headers object with this’s relevant - // Realm, whose header list is this’s response’s header list and guard - // is "response". - this[kHeaders] = new Headers(kConstruct) - this[kHeaders][kGuard] = 'response' - this[kHeaders][kHeadersList] = this[kState].headersList - this[kHeaders][kRealm] = this[kRealm] - - // 3. Let bodyWithType be null. - let bodyWithType = null - - // 4. If body is non-null, then set bodyWithType to the result of extracting body. - if (body != null) { - const [extractedBody, type] = extractBody(body) - bodyWithType = { body: extractedBody, type } - } - - // 5. Perform initialize a response given this, init, and bodyWithType. - initializeResponse(this, init, bodyWithType) - } - - // Returns response’s type, e.g., "cors". - get type () { - webidl.brandCheck(this, Response) - - // The type getter steps are to return this’s response’s type. - return this[kState].type - } - - // Returns response’s URL, if it has one; otherwise the empty string. - get url () { - webidl.brandCheck(this, Response) - - const urlList = this[kState].urlList - - // The url getter steps are to return the empty string if this’s - // response’s URL is null; otherwise this’s response’s URL, - // serialized with exclude fragment set to true. - const url = urlList[urlList.length - 1] ?? null - - if (url === null) { - return '' - } - - return URLSerializer(url, true) - } - - // Returns whether response was obtained through a redirect. - get redirected () { - webidl.brandCheck(this, Response) - - // The redirected getter steps are to return true if this’s response’s URL - // list has more than one item; otherwise false. - return this[kState].urlList.length > 1 - } - - // Returns response’s status. - get status () { - webidl.brandCheck(this, Response) - - // The status getter steps are to return this’s response’s status. - return this[kState].status - } - - // Returns whether response’s status is an ok status. - get ok () { - webidl.brandCheck(this, Response) - - // The ok getter steps are to return true if this’s response’s status is an - // ok status; otherwise false. - return this[kState].status >= 200 && this[kState].status <= 299 - } - - // Returns response’s status message. - get statusText () { - webidl.brandCheck(this, Response) - - // The statusText getter steps are to return this’s response’s status - // message. - return this[kState].statusText - } - - // Returns response’s headers as Headers. - get headers () { - webidl.brandCheck(this, Response) - - // The headers getter steps are to return this’s headers. - return this[kHeaders] - } - - get body () { - webidl.brandCheck(this, Response) - - return this[kState].body ? this[kState].body.stream : null - } - - get bodyUsed () { - webidl.brandCheck(this, Response) - - return !!this[kState].body && util.isDisturbed(this[kState].body.stream) - } - - // Returns a clone of response. - clone () { - webidl.brandCheck(this, Response) - - // 1. If this is unusable, then throw a TypeError. - if (this.bodyUsed || (this.body && this.body.locked)) { - throw webidl.errors.exception({ - header: 'Response.clone', - message: 'Body has already been consumed.' - }) - } - - // 2. Let clonedResponse be the result of cloning this’s response. - const clonedResponse = cloneResponse(this[kState]) - - // 3. Return the result of creating a Response object, given - // clonedResponse, this’s headers’s guard, and this’s relevant Realm. - const clonedResponseObject = new Response() - clonedResponseObject[kState] = clonedResponse - clonedResponseObject[kRealm] = this[kRealm] - clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList - clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard] - clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm] - - return clonedResponseObject - } -} - -mixinBody(Response) - -Object.defineProperties(Response.prototype, { - type: kEnumerableProperty, - url: kEnumerableProperty, - status: kEnumerableProperty, - ok: kEnumerableProperty, - redirected: kEnumerableProperty, - statusText: kEnumerableProperty, - headers: kEnumerableProperty, - clone: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'Response', - configurable: true - } -}) - -Object.defineProperties(Response, { - json: kEnumerableProperty, - redirect: kEnumerableProperty, - error: kEnumerableProperty -}) - -// https://fetch.spec.whatwg.org/#concept-response-clone -function cloneResponse (response) { - // To clone a response response, run these steps: - - // 1. If response is a filtered response, then return a new identical - // filtered response whose internal response is a clone of response’s - // internal response. - if (response.internalResponse) { - return filterResponse( - cloneResponse(response.internalResponse), - response.type - ) - } - - // 2. Let newResponse be a copy of response, except for its body. - const newResponse = makeResponse({ ...response, body: null }) - - // 3. If response’s body is non-null, then set newResponse’s body to the - // result of cloning response’s body. - if (response.body != null) { - newResponse.body = cloneBody(response.body) - } - - // 4. Return newResponse. - return newResponse -} - -function makeResponse (init) { - return { - aborted: false, - rangeRequested: false, - timingAllowPassed: false, - requestIncludesCredentials: false, - type: 'default', - status: 200, - timingInfo: null, - cacheState: '', - statusText: '', - ...init, - headersList: init.headersList - ? new HeadersList(init.headersList) - : new HeadersList(), - urlList: init.urlList ? [...init.urlList] : [] - } -} - -function makeNetworkError (reason) { - const isError = isErrorLike(reason) - return makeResponse({ - type: 'error', - status: 0, - error: isError - ? reason - : new Error(reason ? String(reason) : reason), - aborted: reason && reason.name === 'AbortError' - }) -} - -function makeFilteredResponse (response, state) { - state = { - internalResponse: response, - ...state - } - - return new Proxy(response, { - get (target, p) { - return p in state ? state[p] : target[p] - }, - set (target, p, value) { - assert(!(p in state)) - target[p] = value - return true - } - }) -} - -// https://fetch.spec.whatwg.org/#concept-filtered-response -function filterResponse (response, type) { - // Set response to the following filtered response with response as its - // internal response, depending on request’s response tainting: - if (type === 'basic') { - // A basic filtered response is a filtered response whose type is "basic" - // and header list excludes any headers in internal response’s header list - // whose name is a forbidden response-header name. - - // Note: undici does not implement forbidden response-header names - return makeFilteredResponse(response, { - type: 'basic', - headersList: response.headersList - }) - } else if (type === 'cors') { - // A CORS filtered response is a filtered response whose type is "cors" - // and header list excludes any headers in internal response’s header - // list whose name is not a CORS-safelisted response-header name, given - // internal response’s CORS-exposed header-name list. - - // Note: undici does not implement CORS-safelisted response-header names - return makeFilteredResponse(response, { - type: 'cors', - headersList: response.headersList - }) - } else if (type === 'opaque') { - // An opaque filtered response is a filtered response whose type is - // "opaque", URL list is the empty list, status is 0, status message - // is the empty byte sequence, header list is empty, and body is null. - - return makeFilteredResponse(response, { - type: 'opaque', - urlList: Object.freeze([]), - status: 0, - statusText: '', - body: null - }) - } else if (type === 'opaqueredirect') { - // An opaque-redirect filtered response is a filtered response whose type - // is "opaqueredirect", status is 0, status message is the empty byte - // sequence, header list is empty, and body is null. - - return makeFilteredResponse(response, { - type: 'opaqueredirect', - status: 0, - statusText: '', - headersList: [], - body: null - }) - } else { - assert(false) - } -} - -// https://fetch.spec.whatwg.org/#appropriate-network-error -function makeAppropriateNetworkError (fetchParams, err = null) { - // 1. Assert: fetchParams is canceled. - assert(isCancelled(fetchParams)) - - // 2. Return an aborted network error if fetchParams is aborted; - // otherwise return a network error. - return isAborted(fetchParams) - ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err })) - : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err })) -} - -// https://whatpr.org/fetch/1392.html#initialize-a-response -function initializeResponse (response, init, body) { - // 1. If init["status"] is not in the range 200 to 599, inclusive, then - // throw a RangeError. - if (init.status !== null && (init.status < 200 || init.status > 599)) { - throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.') - } - - // 2. If init["statusText"] does not match the reason-phrase token production, - // then throw a TypeError. - if ('statusText' in init && init.statusText != null) { - // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2: - // reason-phrase = *( HTAB / SP / VCHAR / obs-text ) - if (!isValidReasonPhrase(String(init.statusText))) { - throw new TypeError('Invalid statusText') - } - } - - // 3. Set response’s response’s status to init["status"]. - if ('status' in init && init.status != null) { - response[kState].status = init.status - } - - // 4. Set response’s response’s status message to init["statusText"]. - if ('statusText' in init && init.statusText != null) { - response[kState].statusText = init.statusText - } - - // 5. If init["headers"] exists, then fill response’s headers with init["headers"]. - if ('headers' in init && init.headers != null) { - fill(response[kHeaders], init.headers) - } - - // 6. If body was given, then: - if (body) { - // 1. If response's status is a null body status, then throw a TypeError. - if (nullBodyStatus.includes(response.status)) { - throw webidl.errors.exception({ - header: 'Response constructor', - message: 'Invalid response status code ' + response.status - }) - } - - // 2. Set response's body to body's body. - response[kState].body = body.body - - // 3. If body's type is non-null and response's header list does not contain - // `Content-Type`, then append (`Content-Type`, body's type) to response's header list. - if (body.type != null && !response[kState].headersList.contains('Content-Type')) { - response[kState].headersList.append('content-type', body.type) - } - } -} - -webidl.converters.ReadableStream = webidl.interfaceConverter( - ReadableStream -) - -webidl.converters.FormData = webidl.interfaceConverter( - FormData -) - -webidl.converters.URLSearchParams = webidl.interfaceConverter( - URLSearchParams -) - -// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit -webidl.converters.XMLHttpRequestBodyInit = function (V) { - if (typeof V === 'string') { - return webidl.converters.USVString(V) - } - - if (isBlobLike(V)) { - return webidl.converters.Blob(V, { strict: false }) - } - - if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) { - return webidl.converters.BufferSource(V) - } - - if (util.isFormDataLike(V)) { - return webidl.converters.FormData(V, { strict: false }) - } - - if (V instanceof URLSearchParams) { - return webidl.converters.URLSearchParams(V) - } - - return webidl.converters.DOMString(V) -} - -// https://fetch.spec.whatwg.org/#bodyinit -webidl.converters.BodyInit = function (V) { - if (V instanceof ReadableStream) { - return webidl.converters.ReadableStream(V) - } - - // Note: the spec doesn't include async iterables, - // this is an undici extension. - if (V?.[Symbol.asyncIterator]) { - return V - } - - return webidl.converters.XMLHttpRequestBodyInit(V) -} - -webidl.converters.ResponseInit = webidl.dictionaryConverter([ - { - key: 'status', - converter: webidl.converters['unsigned short'], - defaultValue: 200 - }, - { - key: 'statusText', - converter: webidl.converters.ByteString, - defaultValue: '' - }, - { - key: 'headers', - converter: webidl.converters.HeadersInit - } -]) - -module.exports = { - makeNetworkError, - makeResponse, - makeAppropriateNetworkError, - filterResponse, - Response, - cloneResponse -} - - -/***/ }), - -/***/ 4236: -/***/ ((module) => { - - - -module.exports = { - kUrl: Symbol('url'), - kHeaders: Symbol('headers'), - kSignal: Symbol('signal'), - kState: Symbol('state'), - kGuard: Symbol('guard'), - kRealm: Symbol('realm') -} - - -/***/ }), - -/***/ 7189: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = __nccwpck_require__(1356) -const { getGlobalOrigin } = __nccwpck_require__(2498) -const { performance } = __nccwpck_require__(2987) -const { isBlobLike, toUSVString, ReadableStreamFrom } = __nccwpck_require__(162) -const assert = __nccwpck_require__(2613) -const { isUint8Array } = __nccwpck_require__(8253) - -let supportedHashes = [] - -// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable -/** @type {import('crypto')|undefined} */ -let crypto - -try { - crypto = __nccwpck_require__(6982) - const possibleRelevantHashes = ['sha256', 'sha384', 'sha512'] - supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)) -/* c8 ignore next 3 */ -} catch { -} - -function responseURL (response) { - // https://fetch.spec.whatwg.org/#responses - // A response has an associated URL. It is a pointer to the last URL - // in response’s URL list and null if response’s URL list is empty. - const urlList = response.urlList - const length = urlList.length - return length === 0 ? null : urlList[length - 1].toString() -} - -// https://fetch.spec.whatwg.org/#concept-response-location-url -function responseLocationURL (response, requestFragment) { - // 1. If response’s status is not a redirect status, then return null. - if (!redirectStatusSet.has(response.status)) { - return null - } - - // 2. Let location be the result of extracting header list values given - // `Location` and response’s header list. - let location = response.headersList.get('location') - - // 3. If location is a header value, then set location to the result of - // parsing location with response’s URL. - if (location !== null && isValidHeaderValue(location)) { - location = new URL(location, responseURL(response)) - } - - // 4. If location is a URL whose fragment is null, then set location’s - // fragment to requestFragment. - if (location && !location.hash) { - location.hash = requestFragment - } - - // 5. Return location. - return location -} - -/** @returns {URL} */ -function requestCurrentURL (request) { - return request.urlList[request.urlList.length - 1] -} - -function requestBadPort (request) { - // 1. Let url be request’s current URL. - const url = requestCurrentURL(request) - - // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port, - // then return blocked. - if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { - return 'blocked' - } - - // 3. Return allowed. - return 'allowed' -} - -function isErrorLike (object) { - return object instanceof Error || ( - object?.constructor?.name === 'Error' || - object?.constructor?.name === 'DOMException' - ) -} - -// Check whether |statusText| is a ByteString and -// matches the Reason-Phrase token production. -// RFC 2616: https://tools.ietf.org/html/rfc2616 -// RFC 7230: https://tools.ietf.org/html/rfc7230 -// "reason-phrase = *( HTAB / SP / VCHAR / obs-text )" -// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116 -function isValidReasonPhrase (statusText) { - for (let i = 0; i < statusText.length; ++i) { - const c = statusText.charCodeAt(i) - if ( - !( - ( - c === 0x09 || // HTAB - (c >= 0x20 && c <= 0x7e) || // SP / VCHAR - (c >= 0x80 && c <= 0xff) - ) // obs-text - ) - ) { - return false - } - } - return true -} - -/** - * @see https://tools.ietf.org/html/rfc7230#section-3.2.6 - * @param {number} c - */ -function isTokenCharCode (c) { - switch (c) { - case 0x22: - case 0x28: - case 0x29: - case 0x2c: - case 0x2f: - case 0x3a: - case 0x3b: - case 0x3c: - case 0x3d: - case 0x3e: - case 0x3f: - case 0x40: - case 0x5b: - case 0x5c: - case 0x5d: - case 0x7b: - case 0x7d: - // DQUOTE and "(),/:;<=>?@[\]{}" - return false - default: - // VCHAR %x21-7E - return c >= 0x21 && c <= 0x7e - } -} - -/** - * @param {string} characters - */ -function isValidHTTPToken (characters) { - if (characters.length === 0) { - return false - } - for (let i = 0; i < characters.length; ++i) { - if (!isTokenCharCode(characters.charCodeAt(i))) { - return false - } - } - return true -} - -/** - * @see https://fetch.spec.whatwg.org/#header-name - * @param {string} potentialValue - */ -function isValidHeaderName (potentialValue) { - return isValidHTTPToken(potentialValue) -} - -/** - * @see https://fetch.spec.whatwg.org/#header-value - * @param {string} potentialValue - */ -function isValidHeaderValue (potentialValue) { - // - Has no leading or trailing HTTP tab or space bytes. - // - Contains no 0x00 (NUL) or HTTP newline bytes. - if ( - potentialValue.startsWith('\t') || - potentialValue.startsWith(' ') || - potentialValue.endsWith('\t') || - potentialValue.endsWith(' ') - ) { - return false - } - - if ( - potentialValue.includes('\0') || - potentialValue.includes('\r') || - potentialValue.includes('\n') - ) { - return false - } - - return true -} - -// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect -function setRequestReferrerPolicyOnRedirect (request, actualResponse) { - // Given a request request and a response actualResponse, this algorithm - // updates request’s referrer policy according to the Referrer-Policy - // header (if any) in actualResponse. - - // 1. Let policy be the result of executing § 8.1 Parse a referrer policy - // from a Referrer-Policy header on actualResponse. - - // 8.1 Parse a referrer policy from a Referrer-Policy header - // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list. - const { headersList } = actualResponse - // 2. Let policy be the empty string. - // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token. - // 4. Return policy. - const policyHeader = (headersList.get('referrer-policy') ?? '').split(',') - - // Note: As the referrer-policy can contain multiple policies - // separated by comma, we need to loop through all of them - // and pick the first valid one. - // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy - let policy = '' - if (policyHeader.length > 0) { - // The right-most policy takes precedence. - // The left-most policy is the fallback. - for (let i = policyHeader.length; i !== 0; i--) { - const token = policyHeader[i - 1].trim() - if (referrerPolicyTokens.has(token)) { - policy = token - break - } - } - } - - // 2. If policy is not the empty string, then set request’s referrer policy to policy. - if (policy !== '') { - request.referrerPolicy = policy - } -} - -// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check -function crossOriginResourcePolicyCheck () { - // TODO - return 'allowed' -} - -// https://fetch.spec.whatwg.org/#concept-cors-check -function corsCheck () { - // TODO - return 'success' -} - -// https://fetch.spec.whatwg.org/#concept-tao-check -function TAOCheck () { - // TODO - return 'success' -} - -function appendFetchMetadata (httpRequest) { - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header - // TODO - - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header - - // 1. Assert: r’s url is a potentially trustworthy URL. - // TODO - - // 2. Let header be a Structured Header whose value is a token. - let header = null - - // 3. Set header’s value to r’s mode. - header = httpRequest.mode - - // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list. - httpRequest.headersList.set('sec-fetch-mode', header) - - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header - // TODO - - // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header - // TODO -} - -// https://fetch.spec.whatwg.org/#append-a-request-origin-header -function appendRequestOriginHeader (request) { - // 1. Let serializedOrigin be the result of byte-serializing a request origin with request. - let serializedOrigin = request.origin - - // 2. If request’s response tainting is "cors" or request’s mode is "websocket", then append (`Origin`, serializedOrigin) to request’s header list. - if (request.responseTainting === 'cors' || request.mode === 'websocket') { - if (serializedOrigin) { - request.headersList.append('origin', serializedOrigin) - } - - // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then: - } else if (request.method !== 'GET' && request.method !== 'HEAD') { - // 1. Switch on request’s referrer policy: - switch (request.referrerPolicy) { - case 'no-referrer': - // Set serializedOrigin to `null`. - serializedOrigin = null - break - case 'no-referrer-when-downgrade': - case 'strict-origin': - case 'strict-origin-when-cross-origin': - // If request’s origin is a tuple origin, its scheme is "https", and request’s current URL’s scheme is not "https", then set serializedOrigin to `null`. - if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { - serializedOrigin = null - } - break - case 'same-origin': - // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`. - if (!sameOrigin(request, requestCurrentURL(request))) { - serializedOrigin = null - } - break - default: - // Do nothing. - } - - if (serializedOrigin) { - // 2. Append (`Origin`, serializedOrigin) to request’s header list. - request.headersList.append('origin', serializedOrigin) - } - } -} - -function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) { - // TODO - return performance.now() -} - -// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info -function createOpaqueTimingInfo (timingInfo) { - return { - startTime: timingInfo.startTime ?? 0, - redirectStartTime: 0, - redirectEndTime: 0, - postRedirectStartTime: timingInfo.startTime ?? 0, - finalServiceWorkerStartTime: 0, - finalNetworkResponseStartTime: 0, - finalNetworkRequestStartTime: 0, - endTime: 0, - encodedBodySize: 0, - decodedBodySize: 0, - finalConnectionTimingInfo: null - } -} - -// https://html.spec.whatwg.org/multipage/origin.html#policy-container -function makePolicyContainer () { - // Note: the fetch spec doesn't make use of embedder policy or CSP list - return { - referrerPolicy: 'strict-origin-when-cross-origin' - } -} - -// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container -function clonePolicyContainer (policyContainer) { - return { - referrerPolicy: policyContainer.referrerPolicy - } -} - -// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer -function determineRequestsReferrer (request) { - // 1. Let policy be request's referrer policy. - const policy = request.referrerPolicy - - // Note: policy cannot (shouldn't) be null or an empty string. - assert(policy) - - // 2. Let environment be request’s client. - - let referrerSource = null - - // 3. Switch on request’s referrer: - if (request.referrer === 'client') { - // Note: node isn't a browser and doesn't implement document/iframes, - // so we bypass this step and replace it with our own. - - const globalOrigin = getGlobalOrigin() - - if (!globalOrigin || globalOrigin.origin === 'null') { - return 'no-referrer' - } - - // note: we need to clone it as it's mutated - referrerSource = new URL(globalOrigin) - } else if (request.referrer instanceof URL) { - // Let referrerSource be request’s referrer. - referrerSource = request.referrer - } - - // 4. Let request’s referrerURL be the result of stripping referrerSource for - // use as a referrer. - let referrerURL = stripURLForReferrer(referrerSource) - - // 5. Let referrerOrigin be the result of stripping referrerSource for use as - // a referrer, with the origin-only flag set to true. - const referrerOrigin = stripURLForReferrer(referrerSource, true) - - // 6. If the result of serializing referrerURL is a string whose length is - // greater than 4096, set referrerURL to referrerOrigin. - if (referrerURL.toString().length > 4096) { - referrerURL = referrerOrigin - } - - const areSameOrigin = sameOrigin(request, referrerURL) - const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && - !isURLPotentiallyTrustworthy(request.url) - - // 8. Execute the switch statements corresponding to the value of policy: - switch (policy) { - case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true) - case 'unsafe-url': return referrerURL - case 'same-origin': - return areSameOrigin ? referrerOrigin : 'no-referrer' - case 'origin-when-cross-origin': - return areSameOrigin ? referrerURL : referrerOrigin - case 'strict-origin-when-cross-origin': { - const currentURL = requestCurrentURL(request) - - // 1. If the origin of referrerURL and the origin of request’s current - // URL are the same, then return referrerURL. - if (sameOrigin(referrerURL, currentURL)) { - return referrerURL - } - - // 2. If referrerURL is a potentially trustworthy URL and request’s - // current URL is not a potentially trustworthy URL, then return no - // referrer. - if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { - return 'no-referrer' - } - - // 3. Return referrerOrigin. - return referrerOrigin - } - case 'strict-origin': - /** - * 1. If referrerURL is a potentially trustworthy URL and - * request’s current URL is not a potentially trustworthy URL, - * then return no referrer. - * 2. Return referrerOrigin - */ - case 'no-referrer-when-downgrade': - /** - * 1. If referrerURL is a potentially trustworthy URL and - * request’s current URL is not a potentially trustworthy URL, - * then return no referrer. - * 2. Return referrerOrigin - */ - - default: - return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin - } -} - -/** - * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url - * @param {URL} url - * @param {boolean|undefined} originOnly - */ -function stripURLForReferrer (url, originOnly) { - // 1. Assert: url is a URL. - assert(url instanceof URL) - - // 2. If url’s scheme is a local scheme, then return no referrer. - if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') { - return 'no-referrer' - } - - // 3. Set url’s username to the empty string. - url.username = '' - - // 4. Set url’s password to the empty string. - url.password = '' - - // 5. Set url’s fragment to null. - url.hash = '' - - // 6. If the origin-only flag is true, then: - if (originOnly) { - // 1. Set url’s path to « the empty string ». - url.pathname = '' - - // 2. Set url’s query to null. - url.search = '' - } - - // 7. Return url. - return url -} - -function isURLPotentiallyTrustworthy (url) { - if (!(url instanceof URL)) { - return false - } - - // If child of about, return true - if (url.href === 'about:blank' || url.href === 'about:srcdoc') { - return true - } - - // If scheme is data, return true - if (url.protocol === 'data:') return true - - // If file, return true - if (url.protocol === 'file:') return true - - return isOriginPotentiallyTrustworthy(url.origin) - - function isOriginPotentiallyTrustworthy (origin) { - // If origin is explicitly null, return false - if (origin == null || origin === 'null') return false - - const originAsURL = new URL(origin) - - // If secure, return true - if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') { - return true - } - - // If localhost or variants, return true - if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || - (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) || - (originAsURL.hostname.endsWith('.localhost'))) { - return true - } - - // If any other, return false - return false - } -} - -/** - * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist - * @param {Uint8Array} bytes - * @param {string} metadataList - */ -function bytesMatch (bytes, metadataList) { - // If node is not built with OpenSSL support, we cannot check - // a request's integrity, so allow it by default (the spec will - // allow requests if an invalid hash is given, as precedence). - /* istanbul ignore if: only if node is built with --without-ssl */ - if (crypto === undefined) { - return true - } - - // 1. Let parsedMetadata be the result of parsing metadataList. - const parsedMetadata = parseMetadata(metadataList) - - // 2. If parsedMetadata is no metadata, return true. - if (parsedMetadata === 'no metadata') { - return true - } - - // 3. If response is not eligible for integrity validation, return false. - // TODO - - // 4. If parsedMetadata is the empty set, return true. - if (parsedMetadata.length === 0) { - return true - } - - // 5. Let metadata be the result of getting the strongest - // metadata from parsedMetadata. - const strongest = getStrongestMetadata(parsedMetadata) - const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest) - - // 6. For each item in metadata: - for (const item of metadata) { - // 1. Let algorithm be the alg component of item. - const algorithm = item.algo - - // 2. Let expectedValue be the val component of item. - const expectedValue = item.hash - - // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e - // "be liberal with padding". This is annoying, and it's not even in the spec. - - // 3. Let actualValue be the result of applying algorithm to bytes. - let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64') - - if (actualValue[actualValue.length - 1] === '=') { - if (actualValue[actualValue.length - 2] === '=') { - actualValue = actualValue.slice(0, -2) - } else { - actualValue = actualValue.slice(0, -1) - } - } - - // 4. If actualValue is a case-sensitive match for expectedValue, - // return true. - if (compareBase64Mixed(actualValue, expectedValue)) { - return true - } - } - - // 7. Return false. - return false -} - -// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options -// https://www.w3.org/TR/CSP2/#source-list-syntax -// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1 -const parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i - -/** - * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata - * @param {string} metadata - */ -function parseMetadata (metadata) { - // 1. Let result be the empty set. - /** @type {{ algo: string, hash: string }[]} */ - const result = [] - - // 2. Let empty be equal to true. - let empty = true - - // 3. For each token returned by splitting metadata on spaces: - for (const token of metadata.split(' ')) { - // 1. Set empty to false. - empty = false - - // 2. Parse token as a hash-with-options. - const parsedToken = parseHashWithOptions.exec(token) - - // 3. If token does not parse, continue to the next token. - if ( - parsedToken === null || - parsedToken.groups === undefined || - parsedToken.groups.algo === undefined - ) { - // Note: Chromium blocks the request at this point, but Firefox - // gives a warning that an invalid integrity was given. The - // correct behavior is to ignore these, and subsequently not - // check the integrity of the resource. - continue - } - - // 4. Let algorithm be the hash-algo component of token. - const algorithm = parsedToken.groups.algo.toLowerCase() - - // 5. If algorithm is a hash function recognized by the user - // agent, add the parsed token to result. - if (supportedHashes.includes(algorithm)) { - result.push(parsedToken.groups) - } - } - - // 4. Return no metadata if empty is true, otherwise return result. - if (empty === true) { - return 'no metadata' - } - - return result -} - -/** - * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList - */ -function getStrongestMetadata (metadataList) { - // Let algorithm be the algo component of the first item in metadataList. - // Can be sha256 - let algorithm = metadataList[0].algo - // If the algorithm is sha512, then it is the strongest - // and we can return immediately - if (algorithm[3] === '5') { - return algorithm - } - - for (let i = 1; i < metadataList.length; ++i) { - const metadata = metadataList[i] - // If the algorithm is sha512, then it is the strongest - // and we can break the loop immediately - if (metadata.algo[3] === '5') { - algorithm = 'sha512' - break - // If the algorithm is sha384, then a potential sha256 or sha384 is ignored - } else if (algorithm[3] === '3') { - continue - // algorithm is sha256, check if algorithm is sha384 and if so, set it as - // the strongest - } else if (metadata.algo[3] === '3') { - algorithm = 'sha384' - } - } - return algorithm -} - -function filterMetadataListByAlgorithm (metadataList, algorithm) { - if (metadataList.length === 1) { - return metadataList - } - - let pos = 0 - for (let i = 0; i < metadataList.length; ++i) { - if (metadataList[i].algo === algorithm) { - metadataList[pos++] = metadataList[i] - } - } - - metadataList.length = pos - - return metadataList -} - -/** - * Compares two base64 strings, allowing for base64url - * in the second string. - * -* @param {string} actualValue always base64 - * @param {string} expectedValue base64 or base64url - * @returns {boolean} - */ -function compareBase64Mixed (actualValue, expectedValue) { - if (actualValue.length !== expectedValue.length) { - return false - } - for (let i = 0; i < actualValue.length; ++i) { - if (actualValue[i] !== expectedValue[i]) { - if ( - (actualValue[i] === '+' && expectedValue[i] === '-') || - (actualValue[i] === '/' && expectedValue[i] === '_') - ) { - continue - } - return false - } - } - - return true -} - -// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request -function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) { - // TODO -} - -/** - * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin} - * @param {URL} A - * @param {URL} B - */ -function sameOrigin (A, B) { - // 1. If A and B are the same opaque origin, then return true. - if (A.origin === B.origin && A.origin === 'null') { - return true - } - - // 2. If A and B are both tuple origins and their schemes, - // hosts, and port are identical, then return true. - if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { - return true - } - - // 3. Return false. - return false -} - -function createDeferredPromise () { - let res - let rej - const promise = new Promise((resolve, reject) => { - res = resolve - rej = reject - }) - - return { promise, resolve: res, reject: rej } -} - -function isAborted (fetchParams) { - return fetchParams.controller.state === 'aborted' -} - -function isCancelled (fetchParams) { - return fetchParams.controller.state === 'aborted' || - fetchParams.controller.state === 'terminated' -} - -const normalizeMethodRecord = { - delete: 'DELETE', - DELETE: 'DELETE', - get: 'GET', - GET: 'GET', - head: 'HEAD', - HEAD: 'HEAD', - options: 'OPTIONS', - OPTIONS: 'OPTIONS', - post: 'POST', - POST: 'POST', - put: 'PUT', - PUT: 'PUT' -} - -// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. -Object.setPrototypeOf(normalizeMethodRecord, null) - -/** - * @see https://fetch.spec.whatwg.org/#concept-method-normalize - * @param {string} method - */ -function normalizeMethod (method) { - return normalizeMethodRecord[method.toLowerCase()] ?? method -} - -// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string -function serializeJavascriptValueToJSONString (value) { - // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »). - const result = JSON.stringify(value) - - // 2. If result is undefined, then throw a TypeError. - if (result === undefined) { - throw new TypeError('Value is not JSON serializable') - } - - // 3. Assert: result is a string. - assert(typeof result === 'string') - - // 4. Return result. - return result -} - -// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object -const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())) - -/** - * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object - * @param {() => unknown[]} iterator - * @param {string} name name of the instance - * @param {'key'|'value'|'key+value'} kind - */ -function makeIterator (iterator, name, kind) { - const object = { - index: 0, - kind, - target: iterator - } - - const i = { - next () { - // 1. Let interface be the interface for which the iterator prototype object exists. - - // 2. Let thisValue be the this value. - - // 3. Let object be ? ToObject(thisValue). - - // 4. If object is a platform object, then perform a security - // check, passing: - - // 5. If object is not a default iterator object for interface, - // then throw a TypeError. - if (Object.getPrototypeOf(this) !== i) { - throw new TypeError( - `'next' called on an object that does not implement interface ${name} Iterator.` - ) - } - - // 6. Let index be object’s index. - // 7. Let kind be object’s kind. - // 8. Let values be object’s target's value pairs to iterate over. - const { index, kind, target } = object - const values = target() - - // 9. Let len be the length of values. - const len = values.length - - // 10. If index is greater than or equal to len, then return - // CreateIterResultObject(undefined, true). - if (index >= len) { - return { value: undefined, done: true } - } - - // 11. Let pair be the entry in values at index index. - const pair = values[index] - - // 12. Set object’s index to index + 1. - object.index = index + 1 - - // 13. Return the iterator result for pair and kind. - return iteratorResult(pair, kind) - }, - // The class string of an iterator prototype object for a given interface is the - // result of concatenating the identifier of the interface and the string " Iterator". - [Symbol.toStringTag]: `${name} Iterator` - } - - // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%. - Object.setPrototypeOf(i, esIteratorPrototype) - // esIteratorPrototype needs to be the prototype of i - // which is the prototype of an empty object. Yes, it's confusing. - return Object.setPrototypeOf({}, i) -} - -// https://webidl.spec.whatwg.org/#iterator-result -function iteratorResult (pair, kind) { - let result - - // 1. Let result be a value determined by the value of kind: - switch (kind) { - case 'key': { - // 1. Let idlKey be pair’s key. - // 2. Let key be the result of converting idlKey to an - // ECMAScript value. - // 3. result is key. - result = pair[0] - break - } - case 'value': { - // 1. Let idlValue be pair’s value. - // 2. Let value be the result of converting idlValue to - // an ECMAScript value. - // 3. result is value. - result = pair[1] - break - } - case 'key+value': { - // 1. Let idlKey be pair’s key. - // 2. Let idlValue be pair’s value. - // 3. Let key be the result of converting idlKey to an - // ECMAScript value. - // 4. Let value be the result of converting idlValue to - // an ECMAScript value. - // 5. Let array be ! ArrayCreate(2). - // 6. Call ! CreateDataProperty(array, "0", key). - // 7. Call ! CreateDataProperty(array, "1", value). - // 8. result is array. - result = pair - break - } - } - - // 2. Return CreateIterResultObject(result, false). - return { value: result, done: false } -} - -/** - * @see https://fetch.spec.whatwg.org/#body-fully-read - */ -async function fullyReadBody (body, processBody, processBodyError) { - // 1. If taskDestination is null, then set taskDestination to - // the result of starting a new parallel queue. - - // 2. Let successSteps given a byte sequence bytes be to queue a - // fetch task to run processBody given bytes, with taskDestination. - const successSteps = processBody - - // 3. Let errorSteps be to queue a fetch task to run processBodyError, - // with taskDestination. - const errorSteps = processBodyError - - // 4. Let reader be the result of getting a reader for body’s stream. - // If that threw an exception, then run errorSteps with that - // exception and return. - let reader - - try { - reader = body.stream.getReader() - } catch (e) { - errorSteps(e) - return - } - - // 5. Read all bytes from reader, given successSteps and errorSteps. - try { - const result = await readAllBytes(reader) - successSteps(result) - } catch (e) { - errorSteps(e) - } -} - -/** @type {ReadableStream} */ -let ReadableStream = globalThis.ReadableStream - -function isReadableStreamLike (stream) { - if (!ReadableStream) { - ReadableStream = (__nccwpck_require__(3774).ReadableStream) - } - - return stream instanceof ReadableStream || ( - stream[Symbol.toStringTag] === 'ReadableStream' && - typeof stream.tee === 'function' - ) -} - -const MAXIMUM_ARGUMENT_LENGTH = 65535 - -/** - * @see https://infra.spec.whatwg.org/#isomorphic-decode - * @param {number[]|Uint8Array} input - */ -function isomorphicDecode (input) { - // 1. To isomorphic decode a byte sequence input, return a string whose code point - // length is equal to input’s length and whose code points have the same values - // as the values of input’s bytes, in the same order. - - if (input.length < MAXIMUM_ARGUMENT_LENGTH) { - return String.fromCharCode(...input) - } - - return input.reduce((previous, current) => previous + String.fromCharCode(current), '') -} - -/** - * @param {ReadableStreamController} controller - */ -function readableStreamClose (controller) { - try { - controller.close() - } catch (err) { - // TODO: add comment explaining why this error occurs. - if (!err.message.includes('Controller is already closed')) { - throw err - } - } -} - -/** - * @see https://infra.spec.whatwg.org/#isomorphic-encode - * @param {string} input - */ -function isomorphicEncode (input) { - // 1. Assert: input contains no code points greater than U+00FF. - for (let i = 0; i < input.length; i++) { - assert(input.charCodeAt(i) <= 0xFF) - } - - // 2. Return a byte sequence whose length is equal to input’s code - // point length and whose bytes have the same values as the - // values of input’s code points, in the same order - return input -} - -/** - * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes - * @see https://streams.spec.whatwg.org/#read-loop - * @param {ReadableStreamDefaultReader} reader - */ -async function readAllBytes (reader) { - const bytes = [] - let byteLength = 0 - - while (true) { - const { done, value: chunk } = await reader.read() - - if (done) { - // 1. Call successSteps with bytes. - return Buffer.concat(bytes, byteLength) - } - - // 1. If chunk is not a Uint8Array object, call failureSteps - // with a TypeError and abort these steps. - if (!isUint8Array(chunk)) { - throw new TypeError('Received non-Uint8Array chunk') - } - - // 2. Append the bytes represented by chunk to bytes. - bytes.push(chunk) - byteLength += chunk.length - - // 3. Read-loop given reader, bytes, successSteps, and failureSteps. - } -} - -/** - * @see https://fetch.spec.whatwg.org/#is-local - * @param {URL} url - */ -function urlIsLocal (url) { - assert('protocol' in url) // ensure it's a url object - - const protocol = url.protocol - - return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:' -} - -/** - * @param {string|URL} url - */ -function urlHasHttpsScheme (url) { - if (typeof url === 'string') { - return url.startsWith('https:') - } - - return url.protocol === 'https:' -} - -/** - * @see https://fetch.spec.whatwg.org/#http-scheme - * @param {URL} url - */ -function urlIsHttpHttpsScheme (url) { - assert('protocol' in url) // ensure it's a url object - - const protocol = url.protocol - - return protocol === 'http:' || protocol === 'https:' -} - -/** - * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0. - */ -const hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)) - -module.exports = { - isAborted, - isCancelled, - createDeferredPromise, - ReadableStreamFrom, - toUSVString, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - coarsenedSharedCurrentTime, - determineRequestsReferrer, - makePolicyContainer, - clonePolicyContainer, - appendFetchMetadata, - appendRequestOriginHeader, - TAOCheck, - corsCheck, - crossOriginResourcePolicyCheck, - createOpaqueTimingInfo, - setRequestReferrerPolicyOnRedirect, - isValidHTTPToken, - requestBadPort, - requestCurrentURL, - responseURL, - responseLocationURL, - isBlobLike, - isURLPotentiallyTrustworthy, - isValidReasonPhrase, - sameOrigin, - normalizeMethod, - serializeJavascriptValueToJSONString, - makeIterator, - isValidHeaderName, - isValidHeaderValue, - hasOwn, - isErrorLike, - fullyReadBody, - bytesMatch, - isReadableStreamLike, - readableStreamClose, - isomorphicEncode, - isomorphicDecode, - urlIsLocal, - urlHasHttpsScheme, - urlIsHttpHttpsScheme, - readAllBytes, - normalizeMethodRecord, - parseMetadata -} - - -/***/ }), - -/***/ 7472: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { types } = __nccwpck_require__(9023) -const { hasOwn, toUSVString } = __nccwpck_require__(7189) - -/** @type {import('../../types/webidl').Webidl} */ -const webidl = {} -webidl.converters = {} -webidl.util = {} -webidl.errors = {} - -webidl.errors.exception = function (message) { - return new TypeError(`${message.header}: ${message.message}`) -} - -webidl.errors.conversionFailed = function (context) { - const plural = context.types.length === 1 ? '' : ' one of' - const message = - `${context.argument} could not be converted to` + - `${plural}: ${context.types.join(', ')}.` - - return webidl.errors.exception({ - header: context.prefix, - message - }) -} - -webidl.errors.invalidArgument = function (context) { - return webidl.errors.exception({ - header: context.prefix, - message: `"${context.value}" is an invalid ${context.type}.` - }) -} - -// https://webidl.spec.whatwg.org/#implements -webidl.brandCheck = function (V, I, opts = undefined) { - if (opts?.strict !== false && !(V instanceof I)) { - throw new TypeError('Illegal invocation') - } else { - return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag] - } -} - -webidl.argumentLengthCheck = function ({ length }, min, ctx) { - if (length < min) { - throw webidl.errors.exception({ - message: `${min} argument${min !== 1 ? 's' : ''} required, ` + - `but${length ? ' only' : ''} ${length} found.`, - ...ctx - }) - } -} - -webidl.illegalConstructor = function () { - throw webidl.errors.exception({ - header: 'TypeError', - message: 'Illegal constructor' - }) -} - -// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values -webidl.util.Type = function (V) { - switch (typeof V) { - case 'undefined': return 'Undefined' - case 'boolean': return 'Boolean' - case 'string': return 'String' - case 'symbol': return 'Symbol' - case 'number': return 'Number' - case 'bigint': return 'BigInt' - case 'function': - case 'object': { - if (V === null) { - return 'Null' - } - - return 'Object' - } - } -} - -// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint -webidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) { - let upperBound - let lowerBound - - // 1. If bitLength is 64, then: - if (bitLength === 64) { - // 1. Let upperBound be 2^53 − 1. - upperBound = Math.pow(2, 53) - 1 - - // 2. If signedness is "unsigned", then let lowerBound be 0. - if (signedness === 'unsigned') { - lowerBound = 0 - } else { - // 3. Otherwise let lowerBound be −2^53 + 1. - lowerBound = Math.pow(-2, 53) + 1 - } - } else if (signedness === 'unsigned') { - // 2. Otherwise, if signedness is "unsigned", then: - - // 1. Let lowerBound be 0. - lowerBound = 0 - - // 2. Let upperBound be 2^bitLength − 1. - upperBound = Math.pow(2, bitLength) - 1 - } else { - // 3. Otherwise: - - // 1. Let lowerBound be -2^bitLength − 1. - lowerBound = Math.pow(-2, bitLength) - 1 - - // 2. Let upperBound be 2^bitLength − 1 − 1. - upperBound = Math.pow(2, bitLength - 1) - 1 - } - - // 4. Let x be ? ToNumber(V). - let x = Number(V) - - // 5. If x is −0, then set x to +0. - if (x === 0) { - x = 0 - } - - // 6. If the conversion is to an IDL type associated - // with the [EnforceRange] extended attribute, then: - if (opts.enforceRange === true) { - // 1. If x is NaN, +∞, or −∞, then throw a TypeError. - if ( - Number.isNaN(x) || - x === Number.POSITIVE_INFINITY || - x === Number.NEGATIVE_INFINITY - ) { - throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Could not convert ${V} to an integer.` - }) - } - - // 2. Set x to IntegerPart(x). - x = webidl.util.IntegerPart(x) - - // 3. If x < lowerBound or x > upperBound, then - // throw a TypeError. - if (x < lowerBound || x > upperBound) { - throw webidl.errors.exception({ - header: 'Integer conversion', - message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` - }) - } - - // 4. Return x. - return x - } - - // 7. If x is not NaN and the conversion is to an IDL - // type associated with the [Clamp] extended - // attribute, then: - if (!Number.isNaN(x) && opts.clamp === true) { - // 1. Set x to min(max(x, lowerBound), upperBound). - x = Math.min(Math.max(x, lowerBound), upperBound) - - // 2. Round x to the nearest integer, choosing the - // even integer if it lies halfway between two, - // and choosing +0 rather than −0. - if (Math.floor(x) % 2 === 0) { - x = Math.floor(x) - } else { - x = Math.ceil(x) - } - - // 3. Return x. - return x - } - - // 8. If x is NaN, +0, +∞, or −∞, then return +0. - if ( - Number.isNaN(x) || - (x === 0 && Object.is(0, x)) || - x === Number.POSITIVE_INFINITY || - x === Number.NEGATIVE_INFINITY - ) { - return 0 - } - - // 9. Set x to IntegerPart(x). - x = webidl.util.IntegerPart(x) - - // 10. Set x to x modulo 2^bitLength. - x = x % Math.pow(2, bitLength) - - // 11. If signedness is "signed" and x ≥ 2^bitLength − 1, - // then return x − 2^bitLength. - if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) { - return x - Math.pow(2, bitLength) - } - - // 12. Otherwise, return x. - return x -} - -// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart -webidl.util.IntegerPart = function (n) { - // 1. Let r be floor(abs(n)). - const r = Math.floor(Math.abs(n)) - - // 2. If n < 0, then return -1 × r. - if (n < 0) { - return -1 * r - } - - // 3. Otherwise, return r. - return r -} - -// https://webidl.spec.whatwg.org/#es-sequence -webidl.sequenceConverter = function (converter) { - return (V) => { - // 1. If Type(V) is not Object, throw a TypeError. - if (webidl.util.Type(V) !== 'Object') { - throw webidl.errors.exception({ - header: 'Sequence', - message: `Value of type ${webidl.util.Type(V)} is not an Object.` - }) - } - - // 2. Let method be ? GetMethod(V, @@iterator). - /** @type {Generator} */ - const method = V?.[Symbol.iterator]?.() - const seq = [] - - // 3. If method is undefined, throw a TypeError. - if ( - method === undefined || - typeof method.next !== 'function' - ) { - throw webidl.errors.exception({ - header: 'Sequence', - message: 'Object is not an iterator.' - }) - } - - // https://webidl.spec.whatwg.org/#create-sequence-from-iterable - while (true) { - const { done, value } = method.next() - - if (done) { - break - } - - seq.push(converter(value)) - } - - return seq - } -} - -// https://webidl.spec.whatwg.org/#es-to-record -webidl.recordConverter = function (keyConverter, valueConverter) { - return (O) => { - // 1. If Type(O) is not Object, throw a TypeError. - if (webidl.util.Type(O) !== 'Object') { - throw webidl.errors.exception({ - header: 'Record', - message: `Value of type ${webidl.util.Type(O)} is not an Object.` - }) - } - - // 2. Let result be a new empty instance of record. - const result = {} - - if (!types.isProxy(O)) { - // Object.keys only returns enumerable properties - const keys = Object.keys(O) - - for (const key of keys) { - // 1. Let typedKey be key converted to an IDL value of type K. - const typedKey = keyConverter(key) - - // 2. Let value be ? Get(O, key). - // 3. Let typedValue be value converted to an IDL value of type V. - const typedValue = valueConverter(O[key]) - - // 4. Set result[typedKey] to typedValue. - result[typedKey] = typedValue - } - - // 5. Return result. - return result - } - - // 3. Let keys be ? O.[[OwnPropertyKeys]](). - const keys = Reflect.ownKeys(O) - - // 4. For each key of keys. - for (const key of keys) { - // 1. Let desc be ? O.[[GetOwnProperty]](key). - const desc = Reflect.getOwnPropertyDescriptor(O, key) - - // 2. If desc is not undefined and desc.[[Enumerable]] is true: - if (desc?.enumerable) { - // 1. Let typedKey be key converted to an IDL value of type K. - const typedKey = keyConverter(key) - - // 2. Let value be ? Get(O, key). - // 3. Let typedValue be value converted to an IDL value of type V. - const typedValue = valueConverter(O[key]) - - // 4. Set result[typedKey] to typedValue. - result[typedKey] = typedValue - } - } - - // 5. Return result. - return result - } -} - -webidl.interfaceConverter = function (i) { - return (V, opts = {}) => { - if (opts.strict !== false && !(V instanceof i)) { - throw webidl.errors.exception({ - header: i.name, - message: `Expected ${V} to be an instance of ${i.name}.` - }) - } - - return V - } -} - -webidl.dictionaryConverter = function (converters) { - return (dictionary) => { - const type = webidl.util.Type(dictionary) - const dict = {} - - if (type === 'Null' || type === 'Undefined') { - return dict - } else if (type !== 'Object') { - throw webidl.errors.exception({ - header: 'Dictionary', - message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` - }) - } - - for (const options of converters) { - const { key, defaultValue, required, converter } = options - - if (required === true) { - if (!hasOwn(dictionary, key)) { - throw webidl.errors.exception({ - header: 'Dictionary', - message: `Missing required key "${key}".` - }) - } - } - - let value = dictionary[key] - const hasDefault = hasOwn(options, 'defaultValue') - - // Only use defaultValue if value is undefined and - // a defaultValue options was provided. - if (hasDefault && value !== null) { - value = value ?? defaultValue - } - - // A key can be optional and have no default value. - // When this happens, do not perform a conversion, - // and do not assign the key a value. - if (required || hasDefault || value !== undefined) { - value = converter(value) - - if ( - options.allowedValues && - !options.allowedValues.includes(value) - ) { - throw webidl.errors.exception({ - header: 'Dictionary', - message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` - }) - } - - dict[key] = value - } - } - - return dict - } -} - -webidl.nullableConverter = function (converter) { - return (V) => { - if (V === null) { - return V - } - - return converter(V) - } -} - -// https://webidl.spec.whatwg.org/#es-DOMString -webidl.converters.DOMString = function (V, opts = {}) { - // 1. If V is null and the conversion is to an IDL type - // associated with the [LegacyNullToEmptyString] - // extended attribute, then return the DOMString value - // that represents the empty string. - if (V === null && opts.legacyNullToEmptyString) { - return '' - } - - // 2. Let x be ? ToString(V). - if (typeof V === 'symbol') { - throw new TypeError('Could not convert argument of type symbol to string.') - } - - // 3. Return the IDL DOMString value that represents the - // same sequence of code units as the one the - // ECMAScript String value x represents. - return String(V) -} - -// https://webidl.spec.whatwg.org/#es-ByteString -webidl.converters.ByteString = function (V) { - // 1. Let x be ? ToString(V). - // Note: DOMString converter perform ? ToString(V) - const x = webidl.converters.DOMString(V) - - // 2. If the value of any element of x is greater than - // 255, then throw a TypeError. - for (let index = 0; index < x.length; index++) { - if (x.charCodeAt(index) > 255) { - throw new TypeError( - 'Cannot convert argument to a ByteString because the character at ' + - `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` - ) - } - } - - // 3. Return an IDL ByteString value whose length is the - // length of x, and where the value of each element is - // the value of the corresponding element of x. - return x -} - -// https://webidl.spec.whatwg.org/#es-USVString -webidl.converters.USVString = toUSVString - -// https://webidl.spec.whatwg.org/#es-boolean -webidl.converters.boolean = function (V) { - // 1. Let x be the result of computing ToBoolean(V). - const x = Boolean(V) - - // 2. Return the IDL boolean value that is the one that represents - // the same truth value as the ECMAScript Boolean value x. - return x -} - -// https://webidl.spec.whatwg.org/#es-any -webidl.converters.any = function (V) { - return V -} - -// https://webidl.spec.whatwg.org/#es-long-long -webidl.converters['long long'] = function (V) { - // 1. Let x be ? ConvertToInt(V, 64, "signed"). - const x = webidl.util.ConvertToInt(V, 64, 'signed') - - // 2. Return the IDL long long value that represents - // the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#es-unsigned-long-long -webidl.converters['unsigned long long'] = function (V) { - // 1. Let x be ? ConvertToInt(V, 64, "unsigned"). - const x = webidl.util.ConvertToInt(V, 64, 'unsigned') - - // 2. Return the IDL unsigned long long value that - // represents the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#es-unsigned-long -webidl.converters['unsigned long'] = function (V) { - // 1. Let x be ? ConvertToInt(V, 32, "unsigned"). - const x = webidl.util.ConvertToInt(V, 32, 'unsigned') - - // 2. Return the IDL unsigned long value that - // represents the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#es-unsigned-short -webidl.converters['unsigned short'] = function (V, opts) { - // 1. Let x be ? ConvertToInt(V, 16, "unsigned"). - const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts) - - // 2. Return the IDL unsigned short value that represents - // the same numeric value as x. - return x -} - -// https://webidl.spec.whatwg.org/#idl-ArrayBuffer -webidl.converters.ArrayBuffer = function (V, opts = {}) { - // 1. If Type(V) is not Object, or V does not have an - // [[ArrayBufferData]] internal slot, then throw a - // TypeError. - // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances - // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances - if ( - webidl.util.Type(V) !== 'Object' || - !types.isAnyArrayBuffer(V) - ) { - throw webidl.errors.conversionFailed({ - prefix: `${V}`, - argument: `${V}`, - types: ['ArrayBuffer'] - }) - } - - // 2. If the conversion is not to an IDL type associated - // with the [AllowShared] extended attribute, and - // IsSharedArrayBuffer(V) is true, then throw a - // TypeError. - if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { - throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }) - } - - // 3. If the conversion is not to an IDL type associated - // with the [AllowResizable] extended attribute, and - // IsResizableArrayBuffer(V) is true, then throw a - // TypeError. - // Note: resizable ArrayBuffers are currently a proposal. - - // 4. Return the IDL ArrayBuffer value that is a - // reference to the same object as V. - return V -} - -webidl.converters.TypedArray = function (V, T, opts = {}) { - // 1. Let T be the IDL type V is being converted to. - - // 2. If Type(V) is not Object, or V does not have a - // [[TypedArrayName]] internal slot with a value - // equal to T’s name, then throw a TypeError. - if ( - webidl.util.Type(V) !== 'Object' || - !types.isTypedArray(V) || - V.constructor.name !== T.name - ) { - throw webidl.errors.conversionFailed({ - prefix: `${T.name}`, - argument: `${V}`, - types: [T.name] - }) - } - - // 3. If the conversion is not to an IDL type associated - // with the [AllowShared] extended attribute, and - // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is - // true, then throw a TypeError. - if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { - throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }) - } - - // 4. If the conversion is not to an IDL type associated - // with the [AllowResizable] extended attribute, and - // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is - // true, then throw a TypeError. - // Note: resizable array buffers are currently a proposal - - // 5. Return the IDL value of type T that is a reference - // to the same object as V. - return V -} - -webidl.converters.DataView = function (V, opts = {}) { - // 1. If Type(V) is not Object, or V does not have a - // [[DataView]] internal slot, then throw a TypeError. - if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) { - throw webidl.errors.exception({ - header: 'DataView', - message: 'Object is not a DataView.' - }) - } - - // 2. If the conversion is not to an IDL type associated - // with the [AllowShared] extended attribute, and - // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true, - // then throw a TypeError. - if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { - throw webidl.errors.exception({ - header: 'ArrayBuffer', - message: 'SharedArrayBuffer is not allowed.' - }) - } - - // 3. If the conversion is not to an IDL type associated - // with the [AllowResizable] extended attribute, and - // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is - // true, then throw a TypeError. - // Note: resizable ArrayBuffers are currently a proposal - - // 4. Return the IDL DataView value that is a reference - // to the same object as V. - return V -} - -// https://webidl.spec.whatwg.org/#BufferSource -webidl.converters.BufferSource = function (V, opts = {}) { - if (types.isAnyArrayBuffer(V)) { - return webidl.converters.ArrayBuffer(V, opts) - } - - if (types.isTypedArray(V)) { - return webidl.converters.TypedArray(V, V.constructor) - } - - if (types.isDataView(V)) { - return webidl.converters.DataView(V, opts) - } - - throw new TypeError(`Could not convert ${V} to a BufferSource.`) -} - -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.ByteString -) - -webidl.converters['sequence>'] = webidl.sequenceConverter( - webidl.converters['sequence'] -) - -webidl.converters['record'] = webidl.recordConverter( - webidl.converters.ByteString, - webidl.converters.ByteString -) - -module.exports = { - webidl -} - - -/***/ }), - -/***/ 1798: -/***/ ((module) => { - - - -/** - * @see https://encoding.spec.whatwg.org/#concept-encoding-get - * @param {string|undefined} label - */ -function getEncoding (label) { - if (!label) { - return 'failure' - } - - // 1. Remove any leading and trailing ASCII whitespace from label. - // 2. If label is an ASCII case-insensitive match for any of the - // labels listed in the table below, then return the - // corresponding encoding; otherwise return failure. - switch (label.trim().toLowerCase()) { - case 'unicode-1-1-utf-8': - case 'unicode11utf8': - case 'unicode20utf8': - case 'utf-8': - case 'utf8': - case 'x-unicode20utf8': - return 'UTF-8' - case '866': - case 'cp866': - case 'csibm866': - case 'ibm866': - return 'IBM866' - case 'csisolatin2': - case 'iso-8859-2': - case 'iso-ir-101': - case 'iso8859-2': - case 'iso88592': - case 'iso_8859-2': - case 'iso_8859-2:1987': - case 'l2': - case 'latin2': - return 'ISO-8859-2' - case 'csisolatin3': - case 'iso-8859-3': - case 'iso-ir-109': - case 'iso8859-3': - case 'iso88593': - case 'iso_8859-3': - case 'iso_8859-3:1988': - case 'l3': - case 'latin3': - return 'ISO-8859-3' - case 'csisolatin4': - case 'iso-8859-4': - case 'iso-ir-110': - case 'iso8859-4': - case 'iso88594': - case 'iso_8859-4': - case 'iso_8859-4:1988': - case 'l4': - case 'latin4': - return 'ISO-8859-4' - case 'csisolatincyrillic': - case 'cyrillic': - case 'iso-8859-5': - case 'iso-ir-144': - case 'iso8859-5': - case 'iso88595': - case 'iso_8859-5': - case 'iso_8859-5:1988': - return 'ISO-8859-5' - case 'arabic': - case 'asmo-708': - case 'csiso88596e': - case 'csiso88596i': - case 'csisolatinarabic': - case 'ecma-114': - case 'iso-8859-6': - case 'iso-8859-6-e': - case 'iso-8859-6-i': - case 'iso-ir-127': - case 'iso8859-6': - case 'iso88596': - case 'iso_8859-6': - case 'iso_8859-6:1987': - return 'ISO-8859-6' - case 'csisolatingreek': - case 'ecma-118': - case 'elot_928': - case 'greek': - case 'greek8': - case 'iso-8859-7': - case 'iso-ir-126': - case 'iso8859-7': - case 'iso88597': - case 'iso_8859-7': - case 'iso_8859-7:1987': - case 'sun_eu_greek': - return 'ISO-8859-7' - case 'csiso88598e': - case 'csisolatinhebrew': - case 'hebrew': - case 'iso-8859-8': - case 'iso-8859-8-e': - case 'iso-ir-138': - case 'iso8859-8': - case 'iso88598': - case 'iso_8859-8': - case 'iso_8859-8:1988': - case 'visual': - return 'ISO-8859-8' - case 'csiso88598i': - case 'iso-8859-8-i': - case 'logical': - return 'ISO-8859-8-I' - case 'csisolatin6': - case 'iso-8859-10': - case 'iso-ir-157': - case 'iso8859-10': - case 'iso885910': - case 'l6': - case 'latin6': - return 'ISO-8859-10' - case 'iso-8859-13': - case 'iso8859-13': - case 'iso885913': - return 'ISO-8859-13' - case 'iso-8859-14': - case 'iso8859-14': - case 'iso885914': - return 'ISO-8859-14' - case 'csisolatin9': - case 'iso-8859-15': - case 'iso8859-15': - case 'iso885915': - case 'iso_8859-15': - case 'l9': - return 'ISO-8859-15' - case 'iso-8859-16': - return 'ISO-8859-16' - case 'cskoi8r': - case 'koi': - case 'koi8': - case 'koi8-r': - case 'koi8_r': - return 'KOI8-R' - case 'koi8-ru': - case 'koi8-u': - return 'KOI8-U' - case 'csmacintosh': - case 'mac': - case 'macintosh': - case 'x-mac-roman': - return 'macintosh' - case 'iso-8859-11': - case 'iso8859-11': - case 'iso885911': - case 'tis-620': - case 'windows-874': - return 'windows-874' - case 'cp1250': - case 'windows-1250': - case 'x-cp1250': - return 'windows-1250' - case 'cp1251': - case 'windows-1251': - case 'x-cp1251': - return 'windows-1251' - case 'ansi_x3.4-1968': - case 'ascii': - case 'cp1252': - case 'cp819': - case 'csisolatin1': - case 'ibm819': - case 'iso-8859-1': - case 'iso-ir-100': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'iso_8859-1:1987': - case 'l1': - case 'latin1': - case 'us-ascii': - case 'windows-1252': - case 'x-cp1252': - return 'windows-1252' - case 'cp1253': - case 'windows-1253': - case 'x-cp1253': - return 'windows-1253' - case 'cp1254': - case 'csisolatin5': - case 'iso-8859-9': - case 'iso-ir-148': - case 'iso8859-9': - case 'iso88599': - case 'iso_8859-9': - case 'iso_8859-9:1989': - case 'l5': - case 'latin5': - case 'windows-1254': - case 'x-cp1254': - return 'windows-1254' - case 'cp1255': - case 'windows-1255': - case 'x-cp1255': - return 'windows-1255' - case 'cp1256': - case 'windows-1256': - case 'x-cp1256': - return 'windows-1256' - case 'cp1257': - case 'windows-1257': - case 'x-cp1257': - return 'windows-1257' - case 'cp1258': - case 'windows-1258': - case 'x-cp1258': - return 'windows-1258' - case 'x-mac-cyrillic': - case 'x-mac-ukrainian': - return 'x-mac-cyrillic' - case 'chinese': - case 'csgb2312': - case 'csiso58gb231280': - case 'gb2312': - case 'gb_2312': - case 'gb_2312-80': - case 'gbk': - case 'iso-ir-58': - case 'x-gbk': - return 'GBK' - case 'gb18030': - return 'gb18030' - case 'big5': - case 'big5-hkscs': - case 'cn-big5': - case 'csbig5': - case 'x-x-big5': - return 'Big5' - case 'cseucpkdfmtjapanese': - case 'euc-jp': - case 'x-euc-jp': - return 'EUC-JP' - case 'csiso2022jp': - case 'iso-2022-jp': - return 'ISO-2022-JP' - case 'csshiftjis': - case 'ms932': - case 'ms_kanji': - case 'shift-jis': - case 'shift_jis': - case 'sjis': - case 'windows-31j': - case 'x-sjis': - return 'Shift_JIS' - case 'cseuckr': - case 'csksc56011987': - case 'euc-kr': - case 'iso-ir-149': - case 'korean': - case 'ks_c_5601-1987': - case 'ks_c_5601-1989': - case 'ksc5601': - case 'ksc_5601': - case 'windows-949': - return 'EUC-KR' - case 'csiso2022kr': - case 'hz-gb-2312': - case 'iso-2022-cn': - case 'iso-2022-cn-ext': - case 'iso-2022-kr': - case 'replacement': - return 'replacement' - case 'unicodefffe': - case 'utf-16be': - return 'UTF-16BE' - case 'csunicode': - case 'iso-10646-ucs-2': - case 'ucs-2': - case 'unicode': - case 'unicodefeff': - case 'utf-16': - case 'utf-16le': - return 'UTF-16LE' - case 'x-user-defined': - return 'x-user-defined' - default: return 'failure' - } -} - -module.exports = { - getEncoding -} - - -/***/ }), - -/***/ 5466: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent -} = __nccwpck_require__(8403) -const { - kState, - kError, - kResult, - kEvents, - kAborted -} = __nccwpck_require__(6766) -const { webidl } = __nccwpck_require__(7472) -const { kEnumerableProperty } = __nccwpck_require__(162) - -class FileReader extends EventTarget { - constructor () { - super() - - this[kState] = 'empty' - this[kResult] = null - this[kError] = null - this[kEvents] = { - loadend: null, - error: null, - abort: null, - load: null, - progress: null, - loadstart: null - } - } - - /** - * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer - * @param {import('buffer').Blob} blob - */ - readAsArrayBuffer (blob) { - webidl.brandCheck(this, FileReader) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' }) - - blob = webidl.converters.Blob(blob, { strict: false }) - - // The readAsArrayBuffer(blob) method, when invoked, - // must initiate a read operation for blob with ArrayBuffer. - readOperation(this, blob, 'ArrayBuffer') - } - - /** - * @see https://w3c.github.io/FileAPI/#readAsBinaryString - * @param {import('buffer').Blob} blob - */ - readAsBinaryString (blob) { - webidl.brandCheck(this, FileReader) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' }) - - blob = webidl.converters.Blob(blob, { strict: false }) - - // The readAsBinaryString(blob) method, when invoked, - // must initiate a read operation for blob with BinaryString. - readOperation(this, blob, 'BinaryString') - } - - /** - * @see https://w3c.github.io/FileAPI/#readAsDataText - * @param {import('buffer').Blob} blob - * @param {string?} encoding - */ - readAsText (blob, encoding = undefined) { - webidl.brandCheck(this, FileReader) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' }) - - blob = webidl.converters.Blob(blob, { strict: false }) - - if (encoding !== undefined) { - encoding = webidl.converters.DOMString(encoding) - } - - // The readAsText(blob, encoding) method, when invoked, - // must initiate a read operation for blob with Text and encoding. - readOperation(this, blob, 'Text', encoding) - } - - /** - * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL - * @param {import('buffer').Blob} blob - */ - readAsDataURL (blob) { - webidl.brandCheck(this, FileReader) - - webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' }) - - blob = webidl.converters.Blob(blob, { strict: false }) - - // The readAsDataURL(blob) method, when invoked, must - // initiate a read operation for blob with DataURL. - readOperation(this, blob, 'DataURL') - } - - /** - * @see https://w3c.github.io/FileAPI/#dfn-abort - */ - abort () { - // 1. If this's state is "empty" or if this's state is - // "done" set this's result to null and terminate - // this algorithm. - if (this[kState] === 'empty' || this[kState] === 'done') { - this[kResult] = null - return - } - - // 2. If this's state is "loading" set this's state to - // "done" and set this's result to null. - if (this[kState] === 'loading') { - this[kState] = 'done' - this[kResult] = null - } - - // 3. If there are any tasks from this on the file reading - // task source in an affiliated task queue, then remove - // those tasks from that task queue. - this[kAborted] = true - - // 4. Terminate the algorithm for the read method being processed. - // TODO - - // 5. Fire a progress event called abort at this. - fireAProgressEvent('abort', this) - - // 6. If this's state is not "loading", fire a progress - // event called loadend at this. - if (this[kState] !== 'loading') { - fireAProgressEvent('loadend', this) - } - } - - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate - */ - get readyState () { - webidl.brandCheck(this, FileReader) - - switch (this[kState]) { - case 'empty': return this.EMPTY - case 'loading': return this.LOADING - case 'done': return this.DONE - } - } - - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-result - */ - get result () { - webidl.brandCheck(this, FileReader) - - // The result attribute’s getter, when invoked, must return - // this's result. - return this[kResult] - } - - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-error - */ - get error () { - webidl.brandCheck(this, FileReader) - - // The error attribute’s getter, when invoked, must return - // this's error. - return this[kError] - } - - get onloadend () { - webidl.brandCheck(this, FileReader) - - return this[kEvents].loadend - } - - set onloadend (fn) { - webidl.brandCheck(this, FileReader) - - if (this[kEvents].loadend) { - this.removeEventListener('loadend', this[kEvents].loadend) - } - - if (typeof fn === 'function') { - this[kEvents].loadend = fn - this.addEventListener('loadend', fn) - } else { - this[kEvents].loadend = null - } - } - - get onerror () { - webidl.brandCheck(this, FileReader) - - return this[kEvents].error - } - - set onerror (fn) { - webidl.brandCheck(this, FileReader) - - if (this[kEvents].error) { - this.removeEventListener('error', this[kEvents].error) - } - - if (typeof fn === 'function') { - this[kEvents].error = fn - this.addEventListener('error', fn) - } else { - this[kEvents].error = null - } - } - - get onloadstart () { - webidl.brandCheck(this, FileReader) - - return this[kEvents].loadstart - } - - set onloadstart (fn) { - webidl.brandCheck(this, FileReader) - - if (this[kEvents].loadstart) { - this.removeEventListener('loadstart', this[kEvents].loadstart) - } - - if (typeof fn === 'function') { - this[kEvents].loadstart = fn - this.addEventListener('loadstart', fn) - } else { - this[kEvents].loadstart = null - } - } - - get onprogress () { - webidl.brandCheck(this, FileReader) - - return this[kEvents].progress - } - - set onprogress (fn) { - webidl.brandCheck(this, FileReader) - - if (this[kEvents].progress) { - this.removeEventListener('progress', this[kEvents].progress) - } - - if (typeof fn === 'function') { - this[kEvents].progress = fn - this.addEventListener('progress', fn) - } else { - this[kEvents].progress = null - } - } - - get onload () { - webidl.brandCheck(this, FileReader) - - return this[kEvents].load - } - - set onload (fn) { - webidl.brandCheck(this, FileReader) - - if (this[kEvents].load) { - this.removeEventListener('load', this[kEvents].load) - } - - if (typeof fn === 'function') { - this[kEvents].load = fn - this.addEventListener('load', fn) - } else { - this[kEvents].load = null - } - } - - get onabort () { - webidl.brandCheck(this, FileReader) - - return this[kEvents].abort - } - - set onabort (fn) { - webidl.brandCheck(this, FileReader) - - if (this[kEvents].abort) { - this.removeEventListener('abort', this[kEvents].abort) - } - - if (typeof fn === 'function') { - this[kEvents].abort = fn - this.addEventListener('abort', fn) - } else { - this[kEvents].abort = null - } - } -} - -// https://w3c.github.io/FileAPI/#dom-filereader-empty -FileReader.EMPTY = FileReader.prototype.EMPTY = 0 -// https://w3c.github.io/FileAPI/#dom-filereader-loading -FileReader.LOADING = FileReader.prototype.LOADING = 1 -// https://w3c.github.io/FileAPI/#dom-filereader-done -FileReader.DONE = FileReader.prototype.DONE = 2 - -Object.defineProperties(FileReader.prototype, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors, - readAsArrayBuffer: kEnumerableProperty, - readAsBinaryString: kEnumerableProperty, - readAsText: kEnumerableProperty, - readAsDataURL: kEnumerableProperty, - abort: kEnumerableProperty, - readyState: kEnumerableProperty, - result: kEnumerableProperty, - error: kEnumerableProperty, - onloadstart: kEnumerableProperty, - onprogress: kEnumerableProperty, - onload: kEnumerableProperty, - onabort: kEnumerableProperty, - onerror: kEnumerableProperty, - onloadend: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'FileReader', - writable: false, - enumerable: false, - configurable: true - } -}) - -Object.defineProperties(FileReader, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors -}) - -module.exports = { - FileReader -} - - -/***/ }), - -/***/ 42: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { webidl } = __nccwpck_require__(7472) - -const kState = Symbol('ProgressEvent state') - -/** - * @see https://xhr.spec.whatwg.org/#progressevent - */ -class ProgressEvent extends Event { - constructor (type, eventInitDict = {}) { - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}) - - super(type, eventInitDict) - - this[kState] = { - lengthComputable: eventInitDict.lengthComputable, - loaded: eventInitDict.loaded, - total: eventInitDict.total - } - } - - get lengthComputable () { - webidl.brandCheck(this, ProgressEvent) - - return this[kState].lengthComputable - } - - get loaded () { - webidl.brandCheck(this, ProgressEvent) - - return this[kState].loaded - } - - get total () { - webidl.brandCheck(this, ProgressEvent) - - return this[kState].total - } -} - -webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ - { - key: 'lengthComputable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'loaded', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'total', - converter: webidl.converters['unsigned long long'], - defaultValue: 0 - }, - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } -]) - -module.exports = { - ProgressEvent -} - - -/***/ }), - -/***/ 6766: -/***/ ((module) => { - - - -module.exports = { - kState: Symbol('FileReader state'), - kResult: Symbol('FileReader result'), - kError: Symbol('FileReader error'), - kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), - kEvents: Symbol('FileReader events'), - kAborted: Symbol('FileReader aborted') -} - - -/***/ }), - -/***/ 8403: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { - kState, - kError, - kResult, - kAborted, - kLastProgressEventFired -} = __nccwpck_require__(6766) -const { ProgressEvent } = __nccwpck_require__(42) -const { getEncoding } = __nccwpck_require__(1798) -const { DOMException } = __nccwpck_require__(1356) -const { serializeAMimeType, parseMIMEType } = __nccwpck_require__(5892) -const { types } = __nccwpck_require__(9023) -const { StringDecoder } = __nccwpck_require__(3193) -const { btoa } = __nccwpck_require__(181) - -/** @type {PropertyDescriptor} */ -const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false -} - -/** - * @see https://w3c.github.io/FileAPI/#readOperation - * @param {import('./filereader').FileReader} fr - * @param {import('buffer').Blob} blob - * @param {string} type - * @param {string?} encodingName - */ -function readOperation (fr, blob, type, encodingName) { - // 1. If fr’s state is "loading", throw an InvalidStateError - // DOMException. - if (fr[kState] === 'loading') { - throw new DOMException('Invalid state', 'InvalidStateError') - } - - // 2. Set fr’s state to "loading". - fr[kState] = 'loading' - - // 3. Set fr’s result to null. - fr[kResult] = null - - // 4. Set fr’s error to null. - fr[kError] = null - - // 5. Let stream be the result of calling get stream on blob. - /** @type {import('stream/web').ReadableStream} */ - const stream = blob.stream() - - // 6. Let reader be the result of getting a reader from stream. - const reader = stream.getReader() - - // 7. Let bytes be an empty byte sequence. - /** @type {Uint8Array[]} */ - const bytes = [] - - // 8. Let chunkPromise be the result of reading a chunk from - // stream with reader. - let chunkPromise = reader.read() - - // 9. Let isFirstChunk be true. - let isFirstChunk = true - - // 10. In parallel, while true: - // Note: "In parallel" just means non-blocking - // Note 2: readOperation itself cannot be async as double - // reading the body would then reject the promise, instead - // of throwing an error. - ;(async () => { - while (!fr[kAborted]) { - // 1. Wait for chunkPromise to be fulfilled or rejected. - try { - const { done, value } = await chunkPromise - - // 2. If chunkPromise is fulfilled, and isFirstChunk is - // true, queue a task to fire a progress event called - // loadstart at fr. - if (isFirstChunk && !fr[kAborted]) { - queueMicrotask(() => { - fireAProgressEvent('loadstart', fr) - }) - } - - // 3. Set isFirstChunk to false. - isFirstChunk = false - - // 4. If chunkPromise is fulfilled with an object whose - // done property is false and whose value property is - // a Uint8Array object, run these steps: - if (!done && types.isUint8Array(value)) { - // 1. Let bs be the byte sequence represented by the - // Uint8Array object. - - // 2. Append bs to bytes. - bytes.push(value) - - // 3. If roughly 50ms have passed since these steps - // were last invoked, queue a task to fire a - // progress event called progress at fr. - if ( - ( - fr[kLastProgressEventFired] === undefined || - Date.now() - fr[kLastProgressEventFired] >= 50 - ) && - !fr[kAborted] - ) { - fr[kLastProgressEventFired] = Date.now() - queueMicrotask(() => { - fireAProgressEvent('progress', fr) - }) - } - - // 4. Set chunkPromise to the result of reading a - // chunk from stream with reader. - chunkPromise = reader.read() - } else if (done) { - // 5. Otherwise, if chunkPromise is fulfilled with an - // object whose done property is true, queue a task - // to run the following steps and abort this algorithm: - queueMicrotask(() => { - // 1. Set fr’s state to "done". - fr[kState] = 'done' - - // 2. Let result be the result of package data given - // bytes, type, blob’s type, and encodingName. - try { - const result = packageData(bytes, type, blob.type, encodingName) - - // 4. Else: - - if (fr[kAborted]) { - return - } - - // 1. Set fr’s result to result. - fr[kResult] = result - - // 2. Fire a progress event called load at the fr. - fireAProgressEvent('load', fr) - } catch (error) { - // 3. If package data threw an exception error: - - // 1. Set fr’s error to error. - fr[kError] = error - - // 2. Fire a progress event called error at fr. - fireAProgressEvent('error', fr) - } - - // 5. If fr’s state is not "loading", fire a progress - // event called loadend at the fr. - if (fr[kState] !== 'loading') { - fireAProgressEvent('loadend', fr) - } - }) - - break - } - } catch (error) { - if (fr[kAborted]) { - return - } - - // 6. Otherwise, if chunkPromise is rejected with an - // error error, queue a task to run the following - // steps and abort this algorithm: - queueMicrotask(() => { - // 1. Set fr’s state to "done". - fr[kState] = 'done' - - // 2. Set fr’s error to error. - fr[kError] = error - - // 3. Fire a progress event called error at fr. - fireAProgressEvent('error', fr) - - // 4. If fr’s state is not "loading", fire a progress - // event called loadend at fr. - if (fr[kState] !== 'loading') { - fireAProgressEvent('loadend', fr) - } - }) - - break - } - } - })() -} - -/** - * @see https://w3c.github.io/FileAPI/#fire-a-progress-event - * @see https://dom.spec.whatwg.org/#concept-event-fire - * @param {string} e The name of the event - * @param {import('./filereader').FileReader} reader - */ -function fireAProgressEvent (e, reader) { - // The progress event e does not bubble. e.bubbles must be false - // The progress event e is NOT cancelable. e.cancelable must be false - const event = new ProgressEvent(e, { - bubbles: false, - cancelable: false - }) - - reader.dispatchEvent(event) -} - -/** - * @see https://w3c.github.io/FileAPI/#blob-package-data - * @param {Uint8Array[]} bytes - * @param {string} type - * @param {string?} mimeType - * @param {string?} encodingName - */ -function packageData (bytes, type, mimeType, encodingName) { - // 1. A Blob has an associated package data algorithm, given - // bytes, a type, a optional mimeType, and a optional - // encodingName, which switches on type and runs the - // associated steps: - - switch (type) { - case 'DataURL': { - // 1. Return bytes as a DataURL [RFC2397] subject to - // the considerations below: - // * Use mimeType as part of the Data URL if it is - // available in keeping with the Data URL - // specification [RFC2397]. - // * If mimeType is not available return a Data URL - // without a media-type. [RFC2397]. - - // https://datatracker.ietf.org/doc/html/rfc2397#section-3 - // dataurl := "data:" [ mediatype ] [ ";base64" ] "," data - // mediatype := [ type "/" subtype ] *( ";" parameter ) - // data := *urlchar - // parameter := attribute "=" value - let dataURL = 'data:' - - const parsed = parseMIMEType(mimeType || 'application/octet-stream') - - if (parsed !== 'failure') { - dataURL += serializeAMimeType(parsed) - } - - dataURL += ';base64,' - - const decoder = new StringDecoder('latin1') - - for (const chunk of bytes) { - dataURL += btoa(decoder.write(chunk)) - } - - dataURL += btoa(decoder.end()) - - return dataURL - } - case 'Text': { - // 1. Let encoding be failure - let encoding = 'failure' - - // 2. If the encodingName is present, set encoding to the - // result of getting an encoding from encodingName. - if (encodingName) { - encoding = getEncoding(encodingName) - } - - // 3. If encoding is failure, and mimeType is present: - if (encoding === 'failure' && mimeType) { - // 1. Let type be the result of parse a MIME type - // given mimeType. - const type = parseMIMEType(mimeType) - - // 2. If type is not failure, set encoding to the result - // of getting an encoding from type’s parameters["charset"]. - if (type !== 'failure') { - encoding = getEncoding(type.parameters.get('charset')) - } - } - - // 4. If encoding is failure, then set encoding to UTF-8. - if (encoding === 'failure') { - encoding = 'UTF-8' - } - - // 5. Decode bytes using fallback encoding encoding, and - // return the result. - return decode(bytes, encoding) - } - case 'ArrayBuffer': { - // Return a new ArrayBuffer whose contents are bytes. - const sequence = combineByteSequences(bytes) - - return sequence.buffer - } - case 'BinaryString': { - // Return bytes as a binary string, in which every byte - // is represented by a code unit of equal value [0..255]. - let binaryString = '' - - const decoder = new StringDecoder('latin1') - - for (const chunk of bytes) { - binaryString += decoder.write(chunk) - } - - binaryString += decoder.end() - - return binaryString - } - } -} - -/** - * @see https://encoding.spec.whatwg.org/#decode - * @param {Uint8Array[]} ioQueue - * @param {string} encoding - */ -function decode (ioQueue, encoding) { - const bytes = combineByteSequences(ioQueue) - - // 1. Let BOMEncoding be the result of BOM sniffing ioQueue. - const BOMEncoding = BOMSniffing(bytes) - - let slice = 0 - - // 2. If BOMEncoding is non-null: - if (BOMEncoding !== null) { - // 1. Set encoding to BOMEncoding. - encoding = BOMEncoding - - // 2. Read three bytes from ioQueue, if BOMEncoding is - // UTF-8; otherwise read two bytes. - // (Do nothing with those bytes.) - slice = BOMEncoding === 'UTF-8' ? 3 : 2 - } - - // 3. Process a queue with an instance of encoding’s - // decoder, ioQueue, output, and "replacement". - - // 4. Return output. - - const sliced = bytes.slice(slice) - return new TextDecoder(encoding).decode(sliced) -} - -/** - * @see https://encoding.spec.whatwg.org/#bom-sniff - * @param {Uint8Array} ioQueue - */ -function BOMSniffing (ioQueue) { - // 1. Let BOM be the result of peeking 3 bytes from ioQueue, - // converted to a byte sequence. - const [a, b, c] = ioQueue - - // 2. For each of the rows in the table below, starting with - // the first one and going down, if BOM starts with the - // bytes given in the first column, then return the - // encoding given in the cell in the second column of that - // row. Otherwise, return null. - if (a === 0xEF && b === 0xBB && c === 0xBF) { - return 'UTF-8' - } else if (a === 0xFE && b === 0xFF) { - return 'UTF-16BE' - } else if (a === 0xFF && b === 0xFE) { - return 'UTF-16LE' - } - - return null -} - -/** - * @param {Uint8Array[]} sequences - */ -function combineByteSequences (sequences) { - const size = sequences.reduce((a, b) => { - return a + b.byteLength - }, 0) - - let offset = 0 - - return sequences.reduce((a, b) => { - a.set(b, offset) - offset += b.byteLength - return a - }, new Uint8Array(size)) -} - -module.exports = { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent -} - - -/***/ }), - -/***/ 8127: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -// We include a version number for the Dispatcher API. In case of breaking changes, -// this version number must be increased to avoid conflicts. -const globalDispatcher = Symbol.for('undici.globalDispatcher.1') -const { InvalidArgumentError } = __nccwpck_require__(3785) -const Agent = __nccwpck_require__(6783) - -if (getGlobalDispatcher() === undefined) { - setGlobalDispatcher(new Agent()) -} - -function setGlobalDispatcher (agent) { - if (!agent || typeof agent.dispatch !== 'function') { - throw new InvalidArgumentError('Argument agent must implement Agent') - } - Object.defineProperty(globalThis, globalDispatcher, { - value: agent, - writable: true, - enumerable: false, - configurable: false - }) -} - -function getGlobalDispatcher () { - return globalThis[globalDispatcher] -} - -module.exports = { - setGlobalDispatcher, - getGlobalDispatcher -} - - -/***/ }), - -/***/ 7022: -/***/ ((module) => { - - - -module.exports = class DecoratorHandler { - constructor (handler) { - this.handler = handler - } - - onConnect (...args) { - return this.handler.onConnect(...args) - } - - onError (...args) { - return this.handler.onError(...args) - } - - onUpgrade (...args) { - return this.handler.onUpgrade(...args) - } - - onHeaders (...args) { - return this.handler.onHeaders(...args) - } - - onData (...args) { - return this.handler.onData(...args) - } - - onComplete (...args) { - return this.handler.onComplete(...args) - } - - onBodySent (...args) { - return this.handler.onBodySent(...args) - } -} - - -/***/ }), - -/***/ 4021: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const util = __nccwpck_require__(162) -const { kBodyUsed } = __nccwpck_require__(249) -const assert = __nccwpck_require__(2613) -const { InvalidArgumentError } = __nccwpck_require__(3785) -const EE = __nccwpck_require__(4434) - -const redirectableStatusCodes = [300, 301, 302, 303, 307, 308] - -const kBody = Symbol('body') - -class BodyAsyncIterable { - constructor (body) { - this[kBody] = body - this[kBodyUsed] = false - } - - async * [Symbol.asyncIterator] () { - assert(!this[kBodyUsed], 'disturbed') - this[kBodyUsed] = true - yield * this[kBody] - } -} - -class RedirectHandler { - constructor (dispatch, maxRedirections, opts, handler) { - if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { - throw new InvalidArgumentError('maxRedirections must be a positive number') - } - - util.validateHandler(handler, opts.method, opts.upgrade) - - this.dispatch = dispatch - this.location = null - this.abort = null - this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy - this.maxRedirections = maxRedirections - this.handler = handler - this.history = [] - - if (util.isStream(this.opts.body)) { - // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp - // so that it can be dispatched again? - // TODO (fix): Do we need 100-expect support to provide a way to do this properly? - if (util.bodyLength(this.opts.body) === 0) { - this.opts.body - .on('data', function () { - assert(false) - }) - } - - if (typeof this.opts.body.readableDidRead !== 'boolean') { - this.opts.body[kBodyUsed] = false - EE.prototype.on.call(this.opts.body, 'data', function () { - this[kBodyUsed] = true - }) - } - } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') { - // TODO (fix): We can't access ReadableStream internal state - // to determine whether or not it has been disturbed. This is just - // a workaround. - this.opts.body = new BodyAsyncIterable(this.opts.body) - } else if ( - this.opts.body && - typeof this.opts.body !== 'string' && - !ArrayBuffer.isView(this.opts.body) && - util.isIterable(this.opts.body) - ) { - // TODO: Should we allow re-using iterable if !this.opts.idempotent - // or through some other flag? - this.opts.body = new BodyAsyncIterable(this.opts.body) - } - } - - onConnect (abort) { - this.abort = abort - this.handler.onConnect(abort, { history: this.history }) - } - - onUpgrade (statusCode, headers, socket) { - this.handler.onUpgrade(statusCode, headers, socket) - } - - onError (error) { - this.handler.onError(error) - } - - onHeaders (statusCode, headers, resume, statusText) { - this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) - ? null - : parseLocation(statusCode, headers) - - if (this.opts.origin) { - this.history.push(new URL(this.opts.path, this.opts.origin)) - } - - if (!this.location) { - return this.handler.onHeaders(statusCode, headers, resume, statusText) - } - - const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))) - const path = search ? `${pathname}${search}` : pathname - - // Remove headers referring to the original URL. - // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers. - // https://tools.ietf.org/html/rfc7231#section-6.4 - this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin) - this.opts.path = path - this.opts.origin = origin - this.opts.maxRedirections = 0 - this.opts.query = null - - // https://tools.ietf.org/html/rfc7231#section-6.4.4 - // In case of HTTP 303, always replace method to be either HEAD or GET - if (statusCode === 303 && this.opts.method !== 'HEAD') { - this.opts.method = 'GET' - this.opts.body = null - } - } - - onData (chunk) { - if (this.location) { - /* - https://tools.ietf.org/html/rfc7231#section-6.4 - - TLDR: undici always ignores 3xx response bodies. - - Redirection is used to serve the requested resource from another URL, so it is assumes that - no body is generated (and thus can be ignored). Even though generating a body is not prohibited. - - For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually - (which means it's optional and not mandated) contain just an hyperlink to the value of - the Location response header, so the body can be ignored safely. - - For status 300, which is "Multiple Choices", the spec mentions both generating a Location - response header AND a response body with the other possible location to follow. - Since the spec explicitily chooses not to specify a format for such body and leave it to - servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it. - */ - } else { - return this.handler.onData(chunk) - } - } - - onComplete (trailers) { - if (this.location) { - /* - https://tools.ietf.org/html/rfc7231#section-6.4 - - TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections - and neither are useful if present. - - See comment on onData method above for more detailed informations. - */ - - this.location = null - this.abort = null - - this.dispatch(this.opts, this) - } else { - this.handler.onComplete(trailers) - } - } - - onBodySent (chunk) { - if (this.handler.onBodySent) { - this.handler.onBodySent(chunk) - } - } -} - -function parseLocation (statusCode, headers) { - if (redirectableStatusCodes.indexOf(statusCode) === -1) { - return null - } - - for (let i = 0; i < headers.length; i += 2) { - if (headers[i].toString().toLowerCase() === 'location') { - return headers[i + 1] - } - } -} - -// https://tools.ietf.org/html/rfc7231#section-6.4.4 -function shouldRemoveHeader (header, removeContent, unknownOrigin) { - if (header.length === 4) { - return util.headerNameToString(header) === 'host' - } - if (removeContent && util.headerNameToString(header).startsWith('content-')) { - return true - } - if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { - const name = util.headerNameToString(header) - return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization' - } - return false -} - -// https://tools.ietf.org/html/rfc7231#section-6.4 -function cleanRequestHeaders (headers, removeContent, unknownOrigin) { - const ret = [] - if (Array.isArray(headers)) { - for (let i = 0; i < headers.length; i += 2) { - if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { - ret.push(headers[i], headers[i + 1]) - } - } - } else if (headers && typeof headers === 'object') { - for (const key of Object.keys(headers)) { - if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { - ret.push(key, headers[key]) - } - } - } else { - assert(headers == null, 'headers must be an object or an array') - } - return ret -} - -module.exports = RedirectHandler - - -/***/ }), - -/***/ 6631: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const assert = __nccwpck_require__(2613) - -const { kRetryHandlerDefaultRetry } = __nccwpck_require__(249) -const { RequestRetryError } = __nccwpck_require__(3785) -const { isDisturbed, parseHeaders, parseRangeHeader } = __nccwpck_require__(162) - -function calculateRetryAfterHeader (retryAfter) { - const current = Date.now() - const diff = new Date(retryAfter).getTime() - current - - return diff -} - -class RetryHandler { - constructor (opts, handlers) { - const { retryOptions, ...dispatchOpts } = opts - const { - // Retry scoped - retry: retryFn, - maxRetries, - maxTimeout, - minTimeout, - timeoutFactor, - // Response scoped - methods, - errorCodes, - retryAfter, - statusCodes - } = retryOptions ?? {} - - this.dispatch = handlers.dispatch - this.handler = handlers.handler - this.opts = dispatchOpts - this.abort = null - this.aborted = false - this.retryOpts = { - retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry], - retryAfter: retryAfter ?? true, - maxTimeout: maxTimeout ?? 30 * 1000, // 30s, - timeout: minTimeout ?? 500, // .5s - timeoutFactor: timeoutFactor ?? 2, - maxRetries: maxRetries ?? 5, - // What errors we should retry - methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'], - // Indicates which errors to retry - statusCodes: statusCodes ?? [500, 502, 503, 504, 429], - // List of errors to retry - errorCodes: errorCodes ?? [ - 'ECONNRESET', - 'ECONNREFUSED', - 'ENOTFOUND', - 'ENETDOWN', - 'ENETUNREACH', - 'EHOSTDOWN', - 'EHOSTUNREACH', - 'EPIPE' - ] - } - - this.retryCount = 0 - this.start = 0 - this.end = null - this.etag = null - this.resume = null - - // Handle possible onConnect duplication - this.handler.onConnect(reason => { - this.aborted = true - if (this.abort) { - this.abort(reason) - } else { - this.reason = reason - } - }) - } - - onRequestSent () { - if (this.handler.onRequestSent) { - this.handler.onRequestSent() - } - } - - onUpgrade (statusCode, headers, socket) { - if (this.handler.onUpgrade) { - this.handler.onUpgrade(statusCode, headers, socket) - } - } - - onConnect (abort) { - if (this.aborted) { - abort(this.reason) - } else { - this.abort = abort - } - } - - onBodySent (chunk) { - if (this.handler.onBodySent) return this.handler.onBodySent(chunk) - } - - static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) { - const { statusCode, code, headers } = err - const { method, retryOptions } = opts - const { - maxRetries, - timeout, - maxTimeout, - timeoutFactor, - statusCodes, - errorCodes, - methods - } = retryOptions - let { counter, currentTimeout } = state - - currentTimeout = - currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout - - // Any code that is not a Undici's originated and allowed to retry - if ( - code && - code !== 'UND_ERR_REQ_RETRY' && - code !== 'UND_ERR_SOCKET' && - !errorCodes.includes(code) - ) { - cb(err) - return - } - - // If a set of method are provided and the current method is not in the list - if (Array.isArray(methods) && !methods.includes(method)) { - cb(err) - return - } - - // If a set of status code are provided and the current status code is not in the list - if ( - statusCode != null && - Array.isArray(statusCodes) && - !statusCodes.includes(statusCode) - ) { - cb(err) - return - } - - // If we reached the max number of retries - if (counter > maxRetries) { - cb(err) - return - } - - let retryAfterHeader = headers != null && headers['retry-after'] - if (retryAfterHeader) { - retryAfterHeader = Number(retryAfterHeader) - retryAfterHeader = isNaN(retryAfterHeader) - ? calculateRetryAfterHeader(retryAfterHeader) - : retryAfterHeader * 1e3 // Retry-After is in seconds - } - - const retryTimeout = - retryAfterHeader > 0 - ? Math.min(retryAfterHeader, maxTimeout) - : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout) - - state.currentTimeout = retryTimeout - - setTimeout(() => cb(null), retryTimeout) - } - - onHeaders (statusCode, rawHeaders, resume, statusMessage) { - const headers = parseHeaders(rawHeaders) - - this.retryCount += 1 - - if (statusCode >= 300) { - this.abort( - new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - }) - ) - return false - } - - // Checkpoint for resume from where we left it - if (this.resume != null) { - this.resume = null - - if (statusCode !== 206) { - return true - } - - const contentRange = parseRangeHeader(headers['content-range']) - // If no content range - if (!contentRange) { - this.abort( - new RequestRetryError('Content-Range mismatch', statusCode, { - headers, - count: this.retryCount - }) - ) - return false - } - - // Let's start with a weak etag check - if (this.etag != null && this.etag !== headers.etag) { - this.abort( - new RequestRetryError('ETag mismatch', statusCode, { - headers, - count: this.retryCount - }) - ) - return false - } - - const { start, size, end = size } = contentRange - - assert(this.start === start, 'content-range mismatch') - assert(this.end == null || this.end === end, 'content-range mismatch') - - this.resume = resume - return true - } - - if (this.end == null) { - if (statusCode === 206) { - // First time we receive 206 - const range = parseRangeHeader(headers['content-range']) - - if (range == null) { - return this.handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ) - } - - const { start, size, end = size } = range - - assert( - start != null && Number.isFinite(start) && this.start !== start, - 'content-range mismatch' - ) - assert(Number.isFinite(start)) - assert( - end != null && Number.isFinite(end) && this.end !== end, - 'invalid content-length' - ) - - this.start = start - this.end = end - } - - // We make our best to checkpoint the body for further range headers - if (this.end == null) { - const contentLength = headers['content-length'] - this.end = contentLength != null ? Number(contentLength) : null - } - - assert(Number.isFinite(this.start)) - assert( - this.end == null || Number.isFinite(this.end), - 'invalid content-length' - ) - - this.resume = resume - this.etag = headers.etag != null ? headers.etag : null - - return this.handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ) - } - - const err = new RequestRetryError('Request failed', statusCode, { - headers, - count: this.retryCount - }) - - this.abort(err) - - return false - } - - onData (chunk) { - this.start += chunk.length - - return this.handler.onData(chunk) - } - - onComplete (rawTrailers) { - this.retryCount = 0 - return this.handler.onComplete(rawTrailers) - } - - onError (err) { - if (this.aborted || isDisturbed(this.opts.body)) { - return this.handler.onError(err) - } - - this.retryOpts.retry( - err, - { - state: { counter: this.retryCount++, currentTimeout: this.retryAfter }, - opts: { retryOptions: this.retryOpts, ...this.opts } - }, - onRetry.bind(this) - ) - - function onRetry (err) { - if (err != null || this.aborted || isDisturbed(this.opts.body)) { - return this.handler.onError(err) - } - - if (this.start !== 0) { - this.opts = { - ...this.opts, - headers: { - ...this.opts.headers, - range: `bytes=${this.start}-${this.end ?? ''}` - } - } - } - - try { - this.dispatch(this.opts, this) - } catch (err) { - this.handler.onError(err) - } - } - } -} - -module.exports = RetryHandler - - -/***/ }), - -/***/ 3537: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const RedirectHandler = __nccwpck_require__(4021) - -function createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) { - return (dispatch) => { - return function Intercept (opts, handler) { - const { maxRedirections = defaultMaxRedirections } = opts - - if (!maxRedirections) { - return dispatch(opts, handler) - } - - const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler) - opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting. - return dispatch(opts, redirectHandler) - } - } -} - -module.exports = createRedirectInterceptor - - -/***/ }), - -/***/ 5658: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; -const utils_1 = __nccwpck_require__(5778); -// C headers -var ERROR; -(function (ERROR) { - ERROR[ERROR["OK"] = 0] = "OK"; - ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; - ERROR[ERROR["STRICT"] = 2] = "STRICT"; - ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; - ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; - ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; - ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; - ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; - ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; - ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; - ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; - ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; - ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; - ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; - ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; - ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; - ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; - ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; - ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; - ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; - ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; - ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; - ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; - ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; - ERROR[ERROR["USER"] = 24] = "USER"; -})(ERROR = exports.ERROR || (exports.ERROR = {})); -var TYPE; -(function (TYPE) { - TYPE[TYPE["BOTH"] = 0] = "BOTH"; - TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; - TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; -})(TYPE = exports.TYPE || (exports.TYPE = {})); -var FLAGS; -(function (FLAGS) { - FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; - FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; - FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; - FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; - FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; - FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; - FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; - FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; - // 1 << 8 is unused - FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; -})(FLAGS = exports.FLAGS || (exports.FLAGS = {})); -var LENIENT_FLAGS; -(function (LENIENT_FLAGS) { - LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; - LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; - LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; -})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); -var METHODS; -(function (METHODS) { - METHODS[METHODS["DELETE"] = 0] = "DELETE"; - METHODS[METHODS["GET"] = 1] = "GET"; - METHODS[METHODS["HEAD"] = 2] = "HEAD"; - METHODS[METHODS["POST"] = 3] = "POST"; - METHODS[METHODS["PUT"] = 4] = "PUT"; - /* pathological */ - METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; - METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; - METHODS[METHODS["TRACE"] = 7] = "TRACE"; - /* WebDAV */ - METHODS[METHODS["COPY"] = 8] = "COPY"; - METHODS[METHODS["LOCK"] = 9] = "LOCK"; - METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; - METHODS[METHODS["MOVE"] = 11] = "MOVE"; - METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; - METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; - METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; - METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; - METHODS[METHODS["BIND"] = 16] = "BIND"; - METHODS[METHODS["REBIND"] = 17] = "REBIND"; - METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; - METHODS[METHODS["ACL"] = 19] = "ACL"; - /* subversion */ - METHODS[METHODS["REPORT"] = 20] = "REPORT"; - METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; - METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; - METHODS[METHODS["MERGE"] = 23] = "MERGE"; - /* upnp */ - METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; - METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; - METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; - METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; - /* RFC-5789 */ - METHODS[METHODS["PATCH"] = 28] = "PATCH"; - METHODS[METHODS["PURGE"] = 29] = "PURGE"; - /* CalDAV */ - METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; - /* RFC-2068, section 19.6.1.2 */ - METHODS[METHODS["LINK"] = 31] = "LINK"; - METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; - /* icecast */ - METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; - /* RFC-7540, section 11.6 */ - METHODS[METHODS["PRI"] = 34] = "PRI"; - /* RFC-2326 RTSP */ - METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; - METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; - METHODS[METHODS["SETUP"] = 37] = "SETUP"; - METHODS[METHODS["PLAY"] = 38] = "PLAY"; - METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; - METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; - METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; - METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; - METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; - METHODS[METHODS["RECORD"] = 44] = "RECORD"; - /* RAOP */ - METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; -})(METHODS = exports.METHODS || (exports.METHODS = {})); -exports.METHODS_HTTP = [ - METHODS.DELETE, - METHODS.GET, - METHODS.HEAD, - METHODS.POST, - METHODS.PUT, - METHODS.CONNECT, - METHODS.OPTIONS, - METHODS.TRACE, - METHODS.COPY, - METHODS.LOCK, - METHODS.MKCOL, - METHODS.MOVE, - METHODS.PROPFIND, - METHODS.PROPPATCH, - METHODS.SEARCH, - METHODS.UNLOCK, - METHODS.BIND, - METHODS.REBIND, - METHODS.UNBIND, - METHODS.ACL, - METHODS.REPORT, - METHODS.MKACTIVITY, - METHODS.CHECKOUT, - METHODS.MERGE, - METHODS['M-SEARCH'], - METHODS.NOTIFY, - METHODS.SUBSCRIBE, - METHODS.UNSUBSCRIBE, - METHODS.PATCH, - METHODS.PURGE, - METHODS.MKCALENDAR, - METHODS.LINK, - METHODS.UNLINK, - METHODS.PRI, - // TODO(indutny): should we allow it with HTTP? - METHODS.SOURCE, -]; -exports.METHODS_ICE = [ - METHODS.SOURCE, -]; -exports.METHODS_RTSP = [ - METHODS.OPTIONS, - METHODS.DESCRIBE, - METHODS.ANNOUNCE, - METHODS.SETUP, - METHODS.PLAY, - METHODS.PAUSE, - METHODS.TEARDOWN, - METHODS.GET_PARAMETER, - METHODS.SET_PARAMETER, - METHODS.REDIRECT, - METHODS.RECORD, - METHODS.FLUSH, - // For AirPlay - METHODS.GET, - METHODS.POST, -]; -exports.METHOD_MAP = utils_1.enumToMap(METHODS); -exports.H_METHOD_MAP = {}; -Object.keys(exports.METHOD_MAP).forEach((key) => { - if (/^H/.test(key)) { - exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; - } -}); -var FINISH; -(function (FINISH) { - FINISH[FINISH["SAFE"] = 0] = "SAFE"; - FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; - FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; -})(FINISH = exports.FINISH || (exports.FINISH = {})); -exports.ALPHA = []; -for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { - // Upper case - exports.ALPHA.push(String.fromCharCode(i)); - // Lower case - exports.ALPHA.push(String.fromCharCode(i + 0x20)); -} -exports.NUM_MAP = { - 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, - 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, -}; -exports.HEX_MAP = { - 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, - 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, - A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF, - a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf, -}; -exports.NUM = [ - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', -]; -exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); -exports.MARK = ['-', '_', '.', '!', '~', '*', '\'', '(', ')']; -exports.USERINFO_CHARS = exports.ALPHANUM - .concat(exports.MARK) - .concat(['%', ';', ':', '&', '=', '+', '$', ',']); -// TODO(indutny): use RFC -exports.STRICT_URL_CHAR = [ - '!', '"', '$', '%', '&', '\'', - '(', ')', '*', '+', ',', '-', '.', '/', - ':', ';', '<', '=', '>', - '@', '[', '\\', ']', '^', '_', - '`', - '{', '|', '}', '~', -].concat(exports.ALPHANUM); -exports.URL_CHAR = exports.STRICT_URL_CHAR - .concat(['\t', '\f']); -// All characters with 0x80 bit set to 1 -for (let i = 0x80; i <= 0xff; i++) { - exports.URL_CHAR.push(i); -} -exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']); -/* Tokens as defined by rfc 2616. Also lowercases them. - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - */ -exports.STRICT_TOKEN = [ - '!', '#', '$', '%', '&', '\'', - '*', '+', '-', '.', - '^', '_', '`', - '|', '~', -].concat(exports.ALPHANUM); -exports.TOKEN = exports.STRICT_TOKEN.concat([' ']); -/* - * Verify that a char is a valid visible (printable) US-ASCII - * character or %x80-FF - */ -exports.HEADER_CHARS = ['\t']; -for (let i = 32; i <= 255; i++) { - if (i !== 127) { - exports.HEADER_CHARS.push(i); - } -} -// ',' = \x44 -exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); -exports.MAJOR = exports.NUM_MAP; -exports.MINOR = exports.MAJOR; -var HEADER_STATE; -(function (HEADER_STATE) { - HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; - HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; - HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; - HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; - HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; - HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; - HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; - HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; -})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); -exports.SPECIAL_HEADERS = { - 'connection': HEADER_STATE.CONNECTION, - 'content-length': HEADER_STATE.CONTENT_LENGTH, - 'proxy-connection': HEADER_STATE.CONNECTION, - 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, - 'upgrade': HEADER_STATE.UPGRADE, -}; -//# sourceMappingURL=constants.js.map - -/***/ }), - -/***/ 3008: -/***/ ((module) => { - -module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8=' - - -/***/ }), - -/***/ 9240: -/***/ ((module) => { - -module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==' - - -/***/ }), - -/***/ 5778: -/***/ ((__unused_webpack_module, exports) => { - - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.enumToMap = void 0; -function enumToMap(obj) { - const res = {}; - Object.keys(obj).forEach((key) => { - const value = obj[key]; - if (typeof value === 'number') { - res[key] = value; - } - }); - return res; -} -exports.enumToMap = enumToMap; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 8147: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { kClients } = __nccwpck_require__(249) -const Agent = __nccwpck_require__(6783) -const { - kAgent, - kMockAgentSet, - kMockAgentGet, - kDispatches, - kIsMockActive, - kNetConnect, - kGetNetConnect, - kOptions, - kFactory -} = __nccwpck_require__(6819) -const MockClient = __nccwpck_require__(7295) -const MockPool = __nccwpck_require__(6750) -const { matchValue, buildMockOptions } = __nccwpck_require__(119) -const { InvalidArgumentError, UndiciError } = __nccwpck_require__(3785) -const Dispatcher = __nccwpck_require__(1045) -const Pluralizer = __nccwpck_require__(623) -const PendingInterceptorsFormatter = __nccwpck_require__(7148) - -class FakeWeakRef { - constructor (value) { - this.value = value - } - - deref () { - return this.value - } -} - -class MockAgent extends Dispatcher { - constructor (opts) { - super(opts) - - this[kNetConnect] = true - this[kIsMockActive] = true - - // Instantiate Agent and encapsulate - if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) { - throw new InvalidArgumentError('Argument opts.agent must implement Agent') - } - const agent = opts && opts.agent ? opts.agent : new Agent(opts) - this[kAgent] = agent - - this[kClients] = agent[kClients] - this[kOptions] = buildMockOptions(opts) - } - - get (origin) { - let dispatcher = this[kMockAgentGet](origin) - - if (!dispatcher) { - dispatcher = this[kFactory](origin) - this[kMockAgentSet](origin, dispatcher) - } - return dispatcher - } - - dispatch (opts, handler) { - // Call MockAgent.get to perform additional setup before dispatching as normal - this.get(opts.origin) - return this[kAgent].dispatch(opts, handler) - } - - async close () { - await this[kAgent].close() - this[kClients].clear() - } - - deactivate () { - this[kIsMockActive] = false - } - - activate () { - this[kIsMockActive] = true - } - - enableNetConnect (matcher) { - if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) { - if (Array.isArray(this[kNetConnect])) { - this[kNetConnect].push(matcher) - } else { - this[kNetConnect] = [matcher] - } - } else if (typeof matcher === 'undefined') { - this[kNetConnect] = true - } else { - throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.') - } - } - - disableNetConnect () { - this[kNetConnect] = false - } - - // This is required to bypass issues caused by using global symbols - see: - // https://github.com/nodejs/undici/issues/1447 - get isMockActive () { - return this[kIsMockActive] - } - - [kMockAgentSet] (origin, dispatcher) { - this[kClients].set(origin, new FakeWeakRef(dispatcher)) - } - - [kFactory] (origin) { - const mockOptions = Object.assign({ agent: this }, this[kOptions]) - return this[kOptions] && this[kOptions].connections === 1 - ? new MockClient(origin, mockOptions) - : new MockPool(origin, mockOptions) - } - - [kMockAgentGet] (origin) { - // First check if we can immediately find it - const ref = this[kClients].get(origin) - if (ref) { - return ref.deref() - } - - // If the origin is not a string create a dummy parent pool and return to user - if (typeof origin !== 'string') { - const dispatcher = this[kFactory]('http://localhost:9999') - this[kMockAgentSet](origin, dispatcher) - return dispatcher - } - - // If we match, create a pool and assign the same dispatches - for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) { - const nonExplicitDispatcher = nonExplicitRef.deref() - if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) { - const dispatcher = this[kFactory](origin) - this[kMockAgentSet](origin, dispatcher) - dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches] - return dispatcher - } - } - } - - [kGetNetConnect] () { - return this[kNetConnect] - } - - pendingInterceptors () { - const mockAgentClients = this[kClients] - - return Array.from(mockAgentClients.entries()) - .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin }))) - .filter(({ pending }) => pending) - } - - assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { - const pending = this.pendingInterceptors() - - if (pending.length === 0) { - return - } - - const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length) - - throw new UndiciError(` -${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: - -${pendingInterceptorsFormatter.format(pending)} -`.trim()) - } -} - -module.exports = MockAgent - - -/***/ }), - -/***/ 7295: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { promisify } = __nccwpck_require__(9023) -const Client = __nccwpck_require__(5635) -const { buildMockDispatch } = __nccwpck_require__(119) -const { - kDispatches, - kMockAgent, - kClose, - kOriginalClose, - kOrigin, - kOriginalDispatch, - kConnected -} = __nccwpck_require__(6819) -const { MockInterceptor } = __nccwpck_require__(6217) -const Symbols = __nccwpck_require__(249) -const { InvalidArgumentError } = __nccwpck_require__(3785) - -/** - * MockClient provides an API that extends the Client to influence the mockDispatches. - */ -class MockClient extends Client { - constructor (origin, opts) { - super(origin, opts) - - if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { - throw new InvalidArgumentError('Argument opts.agent must implement Agent') - } - - this[kMockAgent] = opts.agent - this[kOrigin] = origin - this[kDispatches] = [] - this[kConnected] = 1 - this[kOriginalDispatch] = this.dispatch - this[kOriginalClose] = this.close.bind(this) - - this.dispatch = buildMockDispatch.call(this) - this.close = this[kClose] - } - - get [Symbols.kConnected] () { - return this[kConnected] - } - - /** - * Sets up the base interceptor for mocking replies from undici. - */ - intercept (opts) { - return new MockInterceptor(opts, this[kDispatches]) - } - - async [kClose] () { - await promisify(this[kOriginalClose])() - this[kConnected] = 0 - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) - } -} - -module.exports = MockClient - - -/***/ }), - -/***/ 4955: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { UndiciError } = __nccwpck_require__(3785) - -class MockNotMatchedError extends UndiciError { - constructor (message) { - super(message) - Error.captureStackTrace(this, MockNotMatchedError) - this.name = 'MockNotMatchedError' - this.message = message || 'The request does not match any registered mock dispatches' - this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED' - } -} - -module.exports = { - MockNotMatchedError -} - - -/***/ }), - -/***/ 6217: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { getResponseData, buildKey, addMockDispatch } = __nccwpck_require__(119) -const { - kDispatches, - kDispatchKey, - kDefaultHeaders, - kDefaultTrailers, - kContentLength, - kMockDispatch -} = __nccwpck_require__(6819) -const { InvalidArgumentError } = __nccwpck_require__(3785) -const { buildURL } = __nccwpck_require__(162) - -/** - * Defines the scope API for an interceptor reply - */ -class MockScope { - constructor (mockDispatch) { - this[kMockDispatch] = mockDispatch - } - - /** - * Delay a reply by a set amount in ms. - */ - delay (waitInMs) { - if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) { - throw new InvalidArgumentError('waitInMs must be a valid integer > 0') - } - - this[kMockDispatch].delay = waitInMs - return this - } - - /** - * For a defined reply, never mark as consumed. - */ - persist () { - this[kMockDispatch].persist = true - return this - } - - /** - * Allow one to define a reply for a set amount of matching requests. - */ - times (repeatTimes) { - if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { - throw new InvalidArgumentError('repeatTimes must be a valid integer > 0') - } - - this[kMockDispatch].times = repeatTimes - return this - } -} - -/** - * Defines an interceptor for a Mock - */ -class MockInterceptor { - constructor (opts, mockDispatches) { - if (typeof opts !== 'object') { - throw new InvalidArgumentError('opts must be an object') - } - if (typeof opts.path === 'undefined') { - throw new InvalidArgumentError('opts.path must be defined') - } - if (typeof opts.method === 'undefined') { - opts.method = 'GET' - } - // See https://github.com/nodejs/undici/issues/1245 - // As per RFC 3986, clients are not supposed to send URI - // fragments to servers when they retrieve a document, - if (typeof opts.path === 'string') { - if (opts.query) { - opts.path = buildURL(opts.path, opts.query) - } else { - // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811 - const parsedURL = new URL(opts.path, 'data://') - opts.path = parsedURL.pathname + parsedURL.search - } - } - if (typeof opts.method === 'string') { - opts.method = opts.method.toUpperCase() - } - - this[kDispatchKey] = buildKey(opts) - this[kDispatches] = mockDispatches - this[kDefaultHeaders] = {} - this[kDefaultTrailers] = {} - this[kContentLength] = false - } - - createMockScopeDispatchData (statusCode, data, responseOptions = {}) { - const responseData = getResponseData(data) - const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {} - const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers } - const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers } - - return { statusCode, data, headers, trailers } - } - - validateReplyParameters (statusCode, data, responseOptions) { - if (typeof statusCode === 'undefined') { - throw new InvalidArgumentError('statusCode must be defined') - } - if (typeof data === 'undefined') { - throw new InvalidArgumentError('data must be defined') - } - if (typeof responseOptions !== 'object') { - throw new InvalidArgumentError('responseOptions must be an object') - } - } - - /** - * Mock an undici request with a defined reply. - */ - reply (replyData) { - // Values of reply aren't available right now as they - // can only be available when the reply callback is invoked. - if (typeof replyData === 'function') { - // We'll first wrap the provided callback in another function, - // this function will properly resolve the data from the callback - // when invoked. - const wrappedDefaultsCallback = (opts) => { - // Our reply options callback contains the parameter for statusCode, data and options. - const resolvedData = replyData(opts) - - // Check if it is in the right format - if (typeof resolvedData !== 'object') { - throw new InvalidArgumentError('reply options callback must return an object') - } - - const { statusCode, data = '', responseOptions = {} } = resolvedData - this.validateReplyParameters(statusCode, data, responseOptions) - // Since the values can be obtained immediately we return them - // from this higher order function that will be resolved later. - return { - ...this.createMockScopeDispatchData(statusCode, data, responseOptions) - } - } - - // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data. - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback) - return new MockScope(newMockDispatch) - } - - // We can have either one or three parameters, if we get here, - // we should have 1-3 parameters. So we spread the arguments of - // this function to obtain the parameters, since replyData will always - // just be the statusCode. - const [statusCode, data = '', responseOptions = {}] = [...arguments] - this.validateReplyParameters(statusCode, data, responseOptions) - - // Send in-already provided data like usual - const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions) - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData) - return new MockScope(newMockDispatch) - } - - /** - * Mock an undici request with a defined error. - */ - replyWithError (error) { - if (typeof error === 'undefined') { - throw new InvalidArgumentError('error must be defined') - } - - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }) - return new MockScope(newMockDispatch) - } - - /** - * Set default reply headers on the interceptor for subsequent replies - */ - defaultReplyHeaders (headers) { - if (typeof headers === 'undefined') { - throw new InvalidArgumentError('headers must be defined') - } - - this[kDefaultHeaders] = headers - return this - } - - /** - * Set default reply trailers on the interceptor for subsequent replies - */ - defaultReplyTrailers (trailers) { - if (typeof trailers === 'undefined') { - throw new InvalidArgumentError('trailers must be defined') - } - - this[kDefaultTrailers] = trailers - return this - } - - /** - * Set reply content length header for replies on the interceptor - */ - replyContentLength () { - this[kContentLength] = true - return this - } -} - -module.exports.MockInterceptor = MockInterceptor -module.exports.MockScope = MockScope - - -/***/ }), - -/***/ 6750: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { promisify } = __nccwpck_require__(9023) -const Pool = __nccwpck_require__(2586) -const { buildMockDispatch } = __nccwpck_require__(119) -const { - kDispatches, - kMockAgent, - kClose, - kOriginalClose, - kOrigin, - kOriginalDispatch, - kConnected -} = __nccwpck_require__(6819) -const { MockInterceptor } = __nccwpck_require__(6217) -const Symbols = __nccwpck_require__(249) -const { InvalidArgumentError } = __nccwpck_require__(3785) - -/** - * MockPool provides an API that extends the Pool to influence the mockDispatches. - */ -class MockPool extends Pool { - constructor (origin, opts) { - super(origin, opts) - - if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { - throw new InvalidArgumentError('Argument opts.agent must implement Agent') - } - - this[kMockAgent] = opts.agent - this[kOrigin] = origin - this[kDispatches] = [] - this[kConnected] = 1 - this[kOriginalDispatch] = this.dispatch - this[kOriginalClose] = this.close.bind(this) - - this.dispatch = buildMockDispatch.call(this) - this.close = this[kClose] - } - - get [Symbols.kConnected] () { - return this[kConnected] - } - - /** - * Sets up the base interceptor for mocking replies from undici. - */ - intercept (opts) { - return new MockInterceptor(opts, this[kDispatches]) - } - - async [kClose] () { - await promisify(this[kOriginalClose])() - this[kConnected] = 0 - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) - } -} - -module.exports = MockPool - - -/***/ }), - -/***/ 6819: -/***/ ((module) => { - - - -module.exports = { - kAgent: Symbol('agent'), - kOptions: Symbol('options'), - kFactory: Symbol('factory'), - kDispatches: Symbol('dispatches'), - kDispatchKey: Symbol('dispatch key'), - kDefaultHeaders: Symbol('default headers'), - kDefaultTrailers: Symbol('default trailers'), - kContentLength: Symbol('content length'), - kMockAgent: Symbol('mock agent'), - kMockAgentSet: Symbol('mock agent set'), - kMockAgentGet: Symbol('mock agent get'), - kMockDispatch: Symbol('mock dispatch'), - kClose: Symbol('close'), - kOriginalClose: Symbol('original agent close'), - kOrigin: Symbol('origin'), - kIsMockActive: Symbol('is mock active'), - kNetConnect: Symbol('net connect'), - kGetNetConnect: Symbol('get net connect'), - kConnected: Symbol('connected') -} - - -/***/ }), - -/***/ 119: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { MockNotMatchedError } = __nccwpck_require__(4955) -const { - kDispatches, - kMockAgent, - kOriginalDispatch, - kOrigin, - kGetNetConnect -} = __nccwpck_require__(6819) -const { buildURL, nop } = __nccwpck_require__(162) -const { STATUS_CODES } = __nccwpck_require__(8611) -const { - types: { - isPromise - } -} = __nccwpck_require__(9023) - -function matchValue (match, value) { - if (typeof match === 'string') { - return match === value - } - if (match instanceof RegExp) { - return match.test(value) - } - if (typeof match === 'function') { - return match(value) === true - } - return false -} - -function lowerCaseEntries (headers) { - return Object.fromEntries( - Object.entries(headers).map(([headerName, headerValue]) => { - return [headerName.toLocaleLowerCase(), headerValue] - }) - ) -} - -/** - * @param {import('../../index').Headers|string[]|Record} headers - * @param {string} key - */ -function getHeaderByName (headers, key) { - if (Array.isArray(headers)) { - for (let i = 0; i < headers.length; i += 2) { - if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { - return headers[i + 1] - } - } - - return undefined - } else if (typeof headers.get === 'function') { - return headers.get(key) - } else { - return lowerCaseEntries(headers)[key.toLocaleLowerCase()] - } -} - -/** @param {string[]} headers */ -function buildHeadersFromArray (headers) { // fetch HeadersList - const clone = headers.slice() - const entries = [] - for (let index = 0; index < clone.length; index += 2) { - entries.push([clone[index], clone[index + 1]]) - } - return Object.fromEntries(entries) -} - -function matchHeaders (mockDispatch, headers) { - if (typeof mockDispatch.headers === 'function') { - if (Array.isArray(headers)) { // fetch HeadersList - headers = buildHeadersFromArray(headers) - } - return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}) - } - if (typeof mockDispatch.headers === 'undefined') { - return true - } - if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') { - return false - } - - for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) { - const headerValue = getHeaderByName(headers, matchHeaderName) - - if (!matchValue(matchHeaderValue, headerValue)) { - return false - } - } - return true -} - -function safeUrl (path) { - if (typeof path !== 'string') { - return path - } - - const pathSegments = path.split('?') - - if (pathSegments.length !== 2) { - return path - } - - const qp = new URLSearchParams(pathSegments.pop()) - qp.sort() - return [...pathSegments, qp.toString()].join('?') -} - -function matchKey (mockDispatch, { path, method, body, headers }) { - const pathMatch = matchValue(mockDispatch.path, path) - const methodMatch = matchValue(mockDispatch.method, method) - const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true - const headersMatch = matchHeaders(mockDispatch, headers) - return pathMatch && methodMatch && bodyMatch && headersMatch -} - -function getResponseData (data) { - if (Buffer.isBuffer(data)) { - return data - } else if (typeof data === 'object') { - return JSON.stringify(data) - } else { - return data.toString() - } -} - -function getMockDispatch (mockDispatches, key) { - const basePath = key.query ? buildURL(key.path, key.query) : key.path - const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath - - // Match path - let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath)) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`) - } - - // Match method - matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`) - } - - // Match body - matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`) - } - - // Match headers - matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers)) - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`) - } - - return matchedMockDispatches[0] -} - -function addMockDispatch (mockDispatches, key, data) { - const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false } - const replyData = typeof data === 'function' ? { callback: data } : { ...data } - const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } } - mockDispatches.push(newMockDispatch) - return newMockDispatch -} - -function deleteMockDispatch (mockDispatches, key) { - const index = mockDispatches.findIndex(dispatch => { - if (!dispatch.consumed) { - return false - } - return matchKey(dispatch, key) - }) - if (index !== -1) { - mockDispatches.splice(index, 1) - } -} - -function buildKey (opts) { - const { path, method, body, headers, query } = opts - return { - path, - method, - body, - headers, - query - } -} - -function generateKeyValues (data) { - return Object.entries(data).reduce((keyValuePairs, [key, value]) => [ - ...keyValuePairs, - Buffer.from(`${key}`), - Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`) - ], []) -} - -/** - * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status - * @param {number} statusCode - */ -function getStatusText (statusCode) { - return STATUS_CODES[statusCode] || 'unknown' -} - -async function getResponse (body) { - const buffers = [] - for await (const data of body) { - buffers.push(data) - } - return Buffer.concat(buffers).toString('utf8') -} - -/** - * Mock dispatch function used to simulate undici dispatches - */ -function mockDispatch (opts, handler) { - // Get mock dispatch from built key - const key = buildKey(opts) - const mockDispatch = getMockDispatch(this[kDispatches], key) - - mockDispatch.timesInvoked++ - - // Here's where we resolve a callback if a callback is present for the dispatch data. - if (mockDispatch.data.callback) { - mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) } - } - - // Parse mockDispatch data - const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch - const { timesInvoked, times } = mockDispatch - - // If it's used up and not persistent, mark as consumed - mockDispatch.consumed = !persist && timesInvoked >= times - mockDispatch.pending = timesInvoked < times - - // If specified, trigger dispatch error - if (error !== null) { - deleteMockDispatch(this[kDispatches], key) - handler.onError(error) - return true - } - - // Handle the request with a delay if necessary - if (typeof delay === 'number' && delay > 0) { - setTimeout(() => { - handleReply(this[kDispatches]) - }, delay) - } else { - handleReply(this[kDispatches]) - } - - function handleReply (mockDispatches, _data = data) { - // fetch's HeadersList is a 1D string array - const optsHeaders = Array.isArray(opts.headers) - ? buildHeadersFromArray(opts.headers) - : opts.headers - const body = typeof _data === 'function' - ? _data({ ...opts, headers: optsHeaders }) - : _data - - // util.types.isPromise is likely needed for jest. - if (isPromise(body)) { - // If handleReply is asynchronous, throwing an error - // in the callback will reject the promise, rather than - // synchronously throw the error, which breaks some tests. - // Rather, we wait for the callback to resolve if it is a - // promise, and then re-run handleReply with the new body. - body.then((newData) => handleReply(mockDispatches, newData)) - return - } - - const responseData = getResponseData(body) - const responseHeaders = generateKeyValues(headers) - const responseTrailers = generateKeyValues(trailers) - - handler.abort = nop - handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)) - handler.onData(Buffer.from(responseData)) - handler.onComplete(responseTrailers) - deleteMockDispatch(mockDispatches, key) - } - - function resume () {} - - return true -} - -function buildMockDispatch () { - const agent = this[kMockAgent] - const origin = this[kOrigin] - const originalDispatch = this[kOriginalDispatch] - - return function dispatch (opts, handler) { - if (agent.isMockActive) { - try { - mockDispatch.call(this, opts, handler) - } catch (error) { - if (error instanceof MockNotMatchedError) { - const netConnect = agent[kGetNetConnect]() - if (netConnect === false) { - throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`) - } - if (checkNetConnect(netConnect, origin)) { - originalDispatch.call(this, opts, handler) - } else { - throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`) - } - } else { - throw error - } - } - } else { - originalDispatch.call(this, opts, handler) - } - } -} - -function checkNetConnect (netConnect, origin) { - const url = new URL(origin) - if (netConnect === true) { - return true - } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { - return true - } - return false -} - -function buildMockOptions (opts) { - if (opts) { - const { agent, ...mockOptions } = opts - return mockOptions - } -} - -module.exports = { - getResponseData, - getMockDispatch, - addMockDispatch, - deleteMockDispatch, - buildKey, - generateKeyValues, - matchValue, - getResponse, - getStatusText, - mockDispatch, - buildMockDispatch, - checkNetConnect, - buildMockOptions, - getHeaderByName -} - - -/***/ }), - -/***/ 7148: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { Transform } = __nccwpck_require__(2203) -const { Console } = __nccwpck_require__(1855) - -/** - * Gets the output of `console.table(…)` as a string. - */ -module.exports = class PendingInterceptorsFormatter { - constructor ({ disableColors } = {}) { - this.transform = new Transform({ - transform (chunk, _enc, cb) { - cb(null, chunk) - } - }) - - this.logger = new Console({ - stdout: this.transform, - inspectOptions: { - colors: !disableColors && !process.env.CI - } - }) - } - - format (pendingInterceptors) { - const withPrettyHeaders = pendingInterceptors.map( - ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ - Method: method, - Origin: origin, - Path: path, - 'Status code': statusCode, - Persistent: persist ? '✅' : '❌', - Invocations: timesInvoked, - Remaining: persist ? Infinity : times - timesInvoked - })) - - this.logger.table(withPrettyHeaders) - return this.transform.read().toString() - } -} - - -/***/ }), - -/***/ 623: -/***/ ((module) => { - - - -const singulars = { - pronoun: 'it', - is: 'is', - was: 'was', - this: 'this' -} - -const plurals = { - pronoun: 'they', - is: 'are', - was: 'were', - this: 'these' -} - -module.exports = class Pluralizer { - constructor (singular, plural) { - this.singular = singular - this.plural = plural - } - - pluralize (count) { - const one = count === 1 - const keys = one ? singulars : plurals - const noun = one ? this.singular : this.plural - return { ...keys, count, noun } - } -} - - -/***/ }), - -/***/ 9115: -/***/ ((module) => { - - - - - -// Extracted from node/lib/internal/fixed_queue.js - -// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two. -const kSize = 2048; -const kMask = kSize - 1; - -// The FixedQueue is implemented as a singly-linked list of fixed-size -// circular buffers. It looks something like this: -// -// head tail -// | | -// v v -// +-----------+ <-----\ +-----------+ <------\ +-----------+ -// | [null] | \----- | next | \------- | next | -// +-----------+ +-----------+ +-----------+ -// | item | <-- bottom | item | <-- bottom | [empty] | -// | item | | item | | [empty] | -// | item | | item | | [empty] | -// | item | | item | | [empty] | -// | item | | item | bottom --> | item | -// | item | | item | | item | -// | ... | | ... | | ... | -// | item | | item | | item | -// | item | | item | | item | -// | [empty] | <-- top | item | | item | -// | [empty] | | item | | item | -// | [empty] | | [empty] | <-- top top --> | [empty] | -// +-----------+ +-----------+ +-----------+ -// -// Or, if there is only one circular buffer, it looks something -// like either of these: -// -// head tail head tail -// | | | | -// v v v v -// +-----------+ +-----------+ -// | [null] | | [null] | -// +-----------+ +-----------+ -// | [empty] | | item | -// | [empty] | | item | -// | item | <-- bottom top --> | [empty] | -// | item | | [empty] | -// | [empty] | <-- top bottom --> | item | -// | [empty] | | item | -// +-----------+ +-----------+ -// -// Adding a value means moving `top` forward by one, removing means -// moving `bottom` forward by one. After reaching the end, the queue -// wraps around. -// -// When `top === bottom` the current queue is empty and when -// `top + 1 === bottom` it's full. This wastes a single space of storage -// but allows much quicker checks. - -class FixedCircularBuffer { - constructor() { - this.bottom = 0; - this.top = 0; - this.list = new Array(kSize); - this.next = null; - } - - isEmpty() { - return this.top === this.bottom; - } - - isFull() { - return ((this.top + 1) & kMask) === this.bottom; - } - - push(data) { - this.list[this.top] = data; - this.top = (this.top + 1) & kMask; - } - - shift() { - const nextItem = this.list[this.bottom]; - if (nextItem === undefined) - return null; - this.list[this.bottom] = undefined; - this.bottom = (this.bottom + 1) & kMask; - return nextItem; - } -} - -module.exports = class FixedQueue { - constructor() { - this.head = this.tail = new FixedCircularBuffer(); - } - - isEmpty() { - return this.head.isEmpty(); - } - - push(data) { - if (this.head.isFull()) { - // Head is full: Creates a new queue, sets the old queue's `.next` to it, - // and sets it as the new main queue. - this.head = this.head.next = new FixedCircularBuffer(); - } - this.head.push(data); - } - - shift() { - const tail = this.tail; - const next = tail.shift(); - if (tail.isEmpty() && tail.next !== null) { - // If there is another queue, it forms the new tail. - this.tail = tail.next; - } - return next; - } -}; - - -/***/ }), - -/***/ 9538: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const DispatcherBase = __nccwpck_require__(6215) -const FixedQueue = __nccwpck_require__(9115) -const { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = __nccwpck_require__(249) -const PoolStats = __nccwpck_require__(9988) - -const kClients = Symbol('clients') -const kNeedDrain = Symbol('needDrain') -const kQueue = Symbol('queue') -const kClosedResolve = Symbol('closed resolve') -const kOnDrain = Symbol('onDrain') -const kOnConnect = Symbol('onConnect') -const kOnDisconnect = Symbol('onDisconnect') -const kOnConnectionError = Symbol('onConnectionError') -const kGetDispatcher = Symbol('get dispatcher') -const kAddClient = Symbol('add client') -const kRemoveClient = Symbol('remove client') -const kStats = Symbol('stats') - -class PoolBase extends DispatcherBase { - constructor () { - super() - - this[kQueue] = new FixedQueue() - this[kClients] = [] - this[kQueued] = 0 - - const pool = this - - this[kOnDrain] = function onDrain (origin, targets) { - const queue = pool[kQueue] - - let needDrain = false - - while (!needDrain) { - const item = queue.shift() - if (!item) { - break - } - pool[kQueued]-- - needDrain = !this.dispatch(item.opts, item.handler) - } - - this[kNeedDrain] = needDrain - - if (!this[kNeedDrain] && pool[kNeedDrain]) { - pool[kNeedDrain] = false - pool.emit('drain', origin, [pool, ...targets]) - } - - if (pool[kClosedResolve] && queue.isEmpty()) { - Promise - .all(pool[kClients].map(c => c.close())) - .then(pool[kClosedResolve]) - } - } - - this[kOnConnect] = (origin, targets) => { - pool.emit('connect', origin, [pool, ...targets]) - } - - this[kOnDisconnect] = (origin, targets, err) => { - pool.emit('disconnect', origin, [pool, ...targets], err) - } - - this[kOnConnectionError] = (origin, targets, err) => { - pool.emit('connectionError', origin, [pool, ...targets], err) - } - - this[kStats] = new PoolStats(this) - } - - get [kBusy] () { - return this[kNeedDrain] - } - - get [kConnected] () { - return this[kClients].filter(client => client[kConnected]).length - } - - get [kFree] () { - return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length - } - - get [kPending] () { - let ret = this[kQueued] - for (const { [kPending]: pending } of this[kClients]) { - ret += pending - } - return ret - } - - get [kRunning] () { - let ret = 0 - for (const { [kRunning]: running } of this[kClients]) { - ret += running - } - return ret - } - - get [kSize] () { - let ret = this[kQueued] - for (const { [kSize]: size } of this[kClients]) { - ret += size - } - return ret - } - - get stats () { - return this[kStats] - } - - async [kClose] () { - if (this[kQueue].isEmpty()) { - return Promise.all(this[kClients].map(c => c.close())) - } else { - return new Promise((resolve) => { - this[kClosedResolve] = resolve - }) - } - } - - async [kDestroy] (err) { - while (true) { - const item = this[kQueue].shift() - if (!item) { - break - } - item.handler.onError(err) - } - - return Promise.all(this[kClients].map(c => c.destroy(err))) - } - - [kDispatch] (opts, handler) { - const dispatcher = this[kGetDispatcher]() - - if (!dispatcher) { - this[kNeedDrain] = true - this[kQueue].push({ opts, handler }) - this[kQueued]++ - } else if (!dispatcher.dispatch(opts, handler)) { - dispatcher[kNeedDrain] = true - this[kNeedDrain] = !this[kGetDispatcher]() - } - - return !this[kNeedDrain] - } - - [kAddClient] (client) { - client - .on('drain', this[kOnDrain]) - .on('connect', this[kOnConnect]) - .on('disconnect', this[kOnDisconnect]) - .on('connectionError', this[kOnConnectionError]) - - this[kClients].push(client) - - if (this[kNeedDrain]) { - process.nextTick(() => { - if (this[kNeedDrain]) { - this[kOnDrain](client[kUrl], [this, client]) - } - }) - } - - return this - } - - [kRemoveClient] (client) { - client.close(() => { - const idx = this[kClients].indexOf(client) - if (idx !== -1) { - this[kClients].splice(idx, 1) - } - }) - - this[kNeedDrain] = this[kClients].some(dispatcher => ( - !dispatcher[kNeedDrain] && - dispatcher.closed !== true && - dispatcher.destroyed !== true - )) - } -} - -module.exports = { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher -} - - -/***/ }), - -/***/ 9988: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = __nccwpck_require__(249) -const kPool = Symbol('pool') - -class PoolStats { - constructor (pool) { - this[kPool] = pool - } - - get connected () { - return this[kPool][kConnected] - } - - get free () { - return this[kPool][kFree] - } - - get pending () { - return this[kPool][kPending] - } - - get queued () { - return this[kPool][kQueued] - } - - get running () { - return this[kPool][kRunning] - } - - get size () { - return this[kPool][kSize] - } -} - -module.exports = PoolStats - - -/***/ }), - -/***/ 2586: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kGetDispatcher -} = __nccwpck_require__(9538) -const Client = __nccwpck_require__(5635) -const { - InvalidArgumentError -} = __nccwpck_require__(3785) -const util = __nccwpck_require__(162) -const { kUrl, kInterceptors } = __nccwpck_require__(249) -const buildConnector = __nccwpck_require__(5786) - -const kOptions = Symbol('options') -const kConnections = Symbol('connections') -const kFactory = Symbol('factory') - -function defaultFactory (origin, opts) { - return new Client(origin, opts) -} - -class Pool extends PoolBase { - constructor (origin, { - connections, - factory = defaultFactory, - connect, - connectTimeout, - tls, - maxCachedSessions, - socketPath, - autoSelectFamily, - autoSelectFamilyAttemptTimeout, - allowH2, - ...options - } = {}) { - super() - - if (connections != null && (!Number.isFinite(connections) || connections < 0)) { - throw new InvalidArgumentError('invalid connections') - } - - if (typeof factory !== 'function') { - throw new InvalidArgumentError('factory must be a function.') - } - - if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { - throw new InvalidArgumentError('connect must be a function or an object') - } - - if (typeof connect !== 'function') { - connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), - ...connect - }) - } - - this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) - ? options.interceptors.Pool - : [] - this[kConnections] = connections || null - this[kUrl] = util.parseOrigin(origin) - this[kOptions] = { ...util.deepClone(options), connect, allowH2 } - this[kOptions].interceptors = options.interceptors - ? { ...options.interceptors } - : undefined - this[kFactory] = factory - } - - [kGetDispatcher] () { - let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain]) - - if (dispatcher) { - return dispatcher - } - - if (!this[kConnections] || this[kClients].length < this[kConnections]) { - dispatcher = this[kFactory](this[kUrl], this[kOptions]) - this[kAddClient](dispatcher) - } - - return dispatcher - } -} - -module.exports = Pool - - -/***/ }), - -/***/ 1354: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { kProxy, kClose, kDestroy, kInterceptors } = __nccwpck_require__(249) -const { URL } = __nccwpck_require__(7016) -const Agent = __nccwpck_require__(6783) -const Pool = __nccwpck_require__(2586) -const DispatcherBase = __nccwpck_require__(6215) -const { InvalidArgumentError, RequestAbortedError } = __nccwpck_require__(3785) -const buildConnector = __nccwpck_require__(5786) - -const kAgent = Symbol('proxy agent') -const kClient = Symbol('proxy client') -const kProxyHeaders = Symbol('proxy headers') -const kRequestTls = Symbol('request tls settings') -const kProxyTls = Symbol('proxy tls settings') -const kConnectEndpoint = Symbol('connect endpoint function') - -function defaultProtocolPort (protocol) { - return protocol === 'https:' ? 443 : 80 -} - -function buildProxyOptions (opts) { - if (typeof opts === 'string') { - opts = { uri: opts } - } - - if (!opts || !opts.uri) { - throw new InvalidArgumentError('Proxy opts.uri is mandatory') - } - - return { - uri: opts.uri, - protocol: opts.protocol || 'https' - } -} - -function defaultFactory (origin, opts) { - return new Pool(origin, opts) -} - -class ProxyAgent extends DispatcherBase { - constructor (opts) { - super(opts) - this[kProxy] = buildProxyOptions(opts) - this[kAgent] = new Agent(opts) - this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) - ? opts.interceptors.ProxyAgent - : [] - - if (typeof opts === 'string') { - opts = { uri: opts } - } - - if (!opts || !opts.uri) { - throw new InvalidArgumentError('Proxy opts.uri is mandatory') - } - - const { clientFactory = defaultFactory } = opts - - if (typeof clientFactory !== 'function') { - throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.') - } - - this[kRequestTls] = opts.requestTls - this[kProxyTls] = opts.proxyTls - this[kProxyHeaders] = opts.headers || {} - - const resolvedUrl = new URL(opts.uri) - const { origin, port, host, username, password } = resolvedUrl - - if (opts.auth && opts.token) { - throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token') - } else if (opts.auth) { - /* @deprecated in favour of opts.token */ - this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}` - } else if (opts.token) { - this[kProxyHeaders]['proxy-authorization'] = opts.token - } else if (username && password) { - this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}` - } - - const connect = buildConnector({ ...opts.proxyTls }) - this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }) - this[kClient] = clientFactory(resolvedUrl, { connect }) - this[kAgent] = new Agent({ - ...opts, - connect: async (opts, callback) => { - let requestedHost = opts.host - if (!opts.port) { - requestedHost += `:${defaultProtocolPort(opts.protocol)}` - } - try { - const { socket, statusCode } = await this[kClient].connect({ - origin, - port, - path: requestedHost, - signal: opts.signal, - headers: { - ...this[kProxyHeaders], - host - } - }) - if (statusCode !== 200) { - socket.on('error', () => {}).destroy() - callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)) - } - if (opts.protocol !== 'https:') { - callback(null, socket) - return - } - let servername - if (this[kRequestTls]) { - servername = this[kRequestTls].servername - } else { - servername = opts.servername - } - this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback) - } catch (err) { - callback(err) - } - } - }) - } - - dispatch (opts, handler) { - const { host } = new URL(opts.origin) - const headers = buildHeaders(opts.headers) - throwIfProxyAuthIsSent(headers) - return this[kAgent].dispatch( - { - ...opts, - headers: { - ...headers, - host - } - }, - handler - ) - } - - async [kClose] () { - await this[kAgent].close() - await this[kClient].close() - } - - async [kDestroy] () { - await this[kAgent].destroy() - await this[kClient].destroy() - } -} - -/** - * @param {string[] | Record} headers - * @returns {Record} - */ -function buildHeaders (headers) { - // When using undici.fetch, the headers list is stored - // as an array. - if (Array.isArray(headers)) { - /** @type {Record} */ - const headersPair = {} - - for (let i = 0; i < headers.length; i += 2) { - headersPair[headers[i]] = headers[i + 1] - } - - return headersPair - } - - return headers -} - -/** - * @param {Record} headers - * - * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers - * Nevertheless, it was changed and to avoid a security vulnerability by end users - * this check was created. - * It should be removed in the next major version for performance reasons - */ -function throwIfProxyAuthIsSent (headers) { - const existProxyAuth = headers && Object.keys(headers) - .find((key) => key.toLowerCase() === 'proxy-authorization') - if (existProxyAuth) { - throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor') - } -} - -module.exports = ProxyAgent - - -/***/ }), - -/***/ 7034: -/***/ ((module) => { - - - -let fastNow = Date.now() -let fastNowTimeout - -const fastTimers = [] - -function onTimeout () { - fastNow = Date.now() - - let len = fastTimers.length - let idx = 0 - while (idx < len) { - const timer = fastTimers[idx] - - if (timer.state === 0) { - timer.state = fastNow + timer.delay - } else if (timer.state > 0 && fastNow >= timer.state) { - timer.state = -1 - timer.callback(timer.opaque) - } - - if (timer.state === -1) { - timer.state = -2 - if (idx !== len - 1) { - fastTimers[idx] = fastTimers.pop() - } else { - fastTimers.pop() - } - len -= 1 - } else { - idx += 1 - } - } - - if (fastTimers.length > 0) { - refreshTimeout() - } -} - -function refreshTimeout () { - if (fastNowTimeout && fastNowTimeout.refresh) { - fastNowTimeout.refresh() - } else { - clearTimeout(fastNowTimeout) - fastNowTimeout = setTimeout(onTimeout, 1e3) - if (fastNowTimeout.unref) { - fastNowTimeout.unref() - } - } -} - -class Timeout { - constructor (callback, delay, opaque) { - this.callback = callback - this.delay = delay - this.opaque = opaque - - // -2 not in timer list - // -1 in timer list but inactive - // 0 in timer list waiting for time - // > 0 in timer list waiting for time to expire - this.state = -2 - - this.refresh() - } - - refresh () { - if (this.state === -2) { - fastTimers.push(this) - if (!fastNowTimeout || fastTimers.length === 1) { - refreshTimeout() - } - } - - this.state = 0 - } - - clear () { - this.state = -1 - } -} - -module.exports = { - setTimeout (callback, delay, opaque) { - return delay < 1e3 - ? setTimeout(callback, delay, opaque) - : new Timeout(callback, delay, opaque) - }, - clearTimeout (timeout) { - if (timeout instanceof Timeout) { - timeout.clear() - } else { - clearTimeout(timeout) - } - } -} - - -/***/ }), - -/***/ 5188: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const diagnosticsChannel = __nccwpck_require__(1637) -const { uid, states } = __nccwpck_require__(5455) -const { - kReadyState, - kSentClose, - kByteParser, - kReceivedClose -} = __nccwpck_require__(8075) -const { fireEvent, failWebsocketConnection } = __nccwpck_require__(7264) -const { CloseEvent } = __nccwpck_require__(4509) -const { makeRequest } = __nccwpck_require__(4960) -const { fetching } = __nccwpck_require__(3397) -const { Headers } = __nccwpck_require__(6203) -const { getGlobalDispatcher } = __nccwpck_require__(8127) -const { kHeadersList } = __nccwpck_require__(249) - -const channels = {} -channels.open = diagnosticsChannel.channel('undici:websocket:open') -channels.close = diagnosticsChannel.channel('undici:websocket:close') -channels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error') - -/** @type {import('crypto')} */ -let crypto -try { - crypto = __nccwpck_require__(6982) -} catch { - -} - -/** - * @see https://websockets.spec.whatwg.org/#concept-websocket-establish - * @param {URL} url - * @param {string|string[]} protocols - * @param {import('./websocket').WebSocket} ws - * @param {(response: any) => void} onEstablish - * @param {Partial} options - */ -function establishWebSocketConnection (url, protocols, ws, onEstablish, options) { - // 1. Let requestURL be a copy of url, with its scheme set to "http", if url’s - // scheme is "ws", and to "https" otherwise. - const requestURL = url - - requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:' - - // 2. Let request be a new request, whose URL is requestURL, client is client, - // service-workers mode is "none", referrer is "no-referrer", mode is - // "websocket", credentials mode is "include", cache mode is "no-store" , - // and redirect mode is "error". - const request = makeRequest({ - urlList: [requestURL], - serviceWorkers: 'none', - referrer: 'no-referrer', - mode: 'websocket', - credentials: 'include', - cache: 'no-store', - redirect: 'error' - }) - - // Note: undici extension, allow setting custom headers. - if (options.headers) { - const headersList = new Headers(options.headers)[kHeadersList] - - request.headersList = headersList - } - - // 3. Append (`Upgrade`, `websocket`) to request’s header list. - // 4. Append (`Connection`, `Upgrade`) to request’s header list. - // Note: both of these are handled by undici currently. - // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397 - - // 5. Let keyValue be a nonce consisting of a randomly selected - // 16-byte value that has been forgiving-base64-encoded and - // isomorphic encoded. - const keyValue = crypto.randomBytes(16).toString('base64') - - // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s - // header list. - request.headersList.append('sec-websocket-key', keyValue) - - // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s - // header list. - request.headersList.append('sec-websocket-version', '13') - - // 8. For each protocol in protocols, combine - // (`Sec-WebSocket-Protocol`, protocol) in request’s header - // list. - for (const protocol of protocols) { - request.headersList.append('sec-websocket-protocol', protocol) - } - - // 9. Let permessageDeflate be a user-agent defined - // "permessage-deflate" extension header value. - // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673 - // TODO: enable once permessage-deflate is supported - const permessageDeflate = '' // 'permessage-deflate; 15' - - // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to - // request’s header list. - // request.headersList.append('sec-websocket-extensions', permessageDeflate) - - // 11. Fetch request with useParallelQueue set to true, and - // processResponse given response being these steps: - const controller = fetching({ - request, - useParallelQueue: true, - dispatcher: options.dispatcher ?? getGlobalDispatcher(), - processResponse (response) { - // 1. If response is a network error or its status is not 101, - // fail the WebSocket connection. - if (response.type === 'error' || response.status !== 101) { - failWebsocketConnection(ws, 'Received network error or non-101 status code.') - return - } - - // 2. If protocols is not the empty list and extracting header - // list values given `Sec-WebSocket-Protocol` and response’s - // header list results in null, failure, or the empty byte - // sequence, then fail the WebSocket connection. - if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) { - failWebsocketConnection(ws, 'Server did not respond with sent protocols.') - return - } - - // 3. Follow the requirements stated step 2 to step 6, inclusive, - // of the last set of steps in section 4.1 of The WebSocket - // Protocol to validate response. This either results in fail - // the WebSocket connection or the WebSocket connection is - // established. - - // 2. If the response lacks an |Upgrade| header field or the |Upgrade| - // header field contains a value that is not an ASCII case- - // insensitive match for the value "websocket", the client MUST - // _Fail the WebSocket Connection_. - if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') { - failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".') - return - } - - // 3. If the response lacks a |Connection| header field or the - // |Connection| header field doesn't contain a token that is an - // ASCII case-insensitive match for the value "Upgrade", the client - // MUST _Fail the WebSocket Connection_. - if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') { - failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".') - return - } - - // 4. If the response lacks a |Sec-WebSocket-Accept| header field or - // the |Sec-WebSocket-Accept| contains a value other than the - // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket- - // Key| (as a string, not base64-decoded) with the string "258EAFA5- - // E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and - // trailing whitespace, the client MUST _Fail the WebSocket - // Connection_. - const secWSAccept = response.headersList.get('Sec-WebSocket-Accept') - const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64') - if (secWSAccept !== digest) { - failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.') - return - } - - // 5. If the response includes a |Sec-WebSocket-Extensions| header - // field and this header field indicates the use of an extension - // that was not present in the client's handshake (the server has - // indicated an extension not requested by the client), the client - // MUST _Fail the WebSocket Connection_. (The parsing of this - // header field to determine which extensions are requested is - // discussed in Section 9.1.) - const secExtension = response.headersList.get('Sec-WebSocket-Extensions') - - if (secExtension !== null && secExtension !== permessageDeflate) { - failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.') - return - } - - // 6. If the response includes a |Sec-WebSocket-Protocol| header field - // and this header field indicates the use of a subprotocol that was - // not present in the client's handshake (the server has indicated a - // subprotocol not requested by the client), the client MUST _Fail - // the WebSocket Connection_. - const secProtocol = response.headersList.get('Sec-WebSocket-Protocol') - - if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) { - failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.') - return - } - - response.socket.on('data', onSocketData) - response.socket.on('close', onSocketClose) - response.socket.on('error', onSocketError) - - if (channels.open.hasSubscribers) { - channels.open.publish({ - address: response.socket.address(), - protocol: secProtocol, - extensions: secExtension - }) - } - - onEstablish(response) - } - }) - - return controller -} - -/** - * @param {Buffer} chunk - */ -function onSocketData (chunk) { - if (!this.ws[kByteParser].write(chunk)) { - this.pause() - } -} - -/** - * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol - * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4 - */ -function onSocketClose () { - const { ws } = this - - // If the TCP connection was closed after the - // WebSocket closing handshake was completed, the WebSocket connection - // is said to have been closed _cleanly_. - const wasClean = ws[kSentClose] && ws[kReceivedClose] - - let code = 1005 - let reason = '' - - const result = ws[kByteParser].closingInfo - - if (result) { - code = result.code ?? 1005 - reason = result.reason - } else if (!ws[kSentClose]) { - // If _The WebSocket - // Connection is Closed_ and no Close control frame was received by the - // endpoint (such as could occur if the underlying transport connection - // is lost), _The WebSocket Connection Close Code_ is considered to be - // 1006. - code = 1006 - } - - // 1. Change the ready state to CLOSED (3). - ws[kReadyState] = states.CLOSED - - // 2. If the user agent was required to fail the WebSocket - // connection, or if the WebSocket connection was closed - // after being flagged as full, fire an event named error - // at the WebSocket object. - // TODO - - // 3. Fire an event named close at the WebSocket object, - // using CloseEvent, with the wasClean attribute - // initialized to true if the connection closed cleanly - // and false otherwise, the code attribute initialized to - // the WebSocket connection close code, and the reason - // attribute initialized to the result of applying UTF-8 - // decode without BOM to the WebSocket connection close - // reason. - fireEvent('close', ws, CloseEvent, { - wasClean, code, reason - }) - - if (channels.close.hasSubscribers) { - channels.close.publish({ - websocket: ws, - code, - reason - }) - } -} - -function onSocketError (error) { - const { ws } = this - - ws[kReadyState] = states.CLOSING - - if (channels.socketError.hasSubscribers) { - channels.socketError.publish(error) - } - - this.destroy() -} - -module.exports = { - establishWebSocketConnection -} - - -/***/ }), - -/***/ 5455: -/***/ ((module) => { - - - -// This is a Globally Unique Identifier unique used -// to validate that the endpoint accepts websocket -// connections. -// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3 -const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' - -/** @type {PropertyDescriptor} */ -const staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false -} - -const states = { - CONNECTING: 0, - OPEN: 1, - CLOSING: 2, - CLOSED: 3 -} - -const opcodes = { - CONTINUATION: 0x0, - TEXT: 0x1, - BINARY: 0x2, - CLOSE: 0x8, - PING: 0x9, - PONG: 0xA -} - -const maxUnsigned16Bit = 2 ** 16 - 1 // 65535 - -const parserStates = { - INFO: 0, - PAYLOADLENGTH_16: 2, - PAYLOADLENGTH_64: 3, - READ_DATA: 4 -} - -const emptyBuffer = Buffer.allocUnsafe(0) - -module.exports = { - uid, - staticPropertyDescriptors, - states, - opcodes, - maxUnsigned16Bit, - parserStates, - emptyBuffer -} - - -/***/ }), - -/***/ 4509: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { webidl } = __nccwpck_require__(7472) -const { kEnumerableProperty } = __nccwpck_require__(162) -const { MessagePort } = __nccwpck_require__(8167) - -/** - * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent - */ -class MessageEvent extends Event { - #eventInit - - constructor (type, eventInitDict = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' }) - - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.MessageEventInit(eventInitDict) - - super(type, eventInitDict) - - this.#eventInit = eventInitDict - } - - get data () { - webidl.brandCheck(this, MessageEvent) - - return this.#eventInit.data - } - - get origin () { - webidl.brandCheck(this, MessageEvent) - - return this.#eventInit.origin - } - - get lastEventId () { - webidl.brandCheck(this, MessageEvent) - - return this.#eventInit.lastEventId - } - - get source () { - webidl.brandCheck(this, MessageEvent) - - return this.#eventInit.source - } - - get ports () { - webidl.brandCheck(this, MessageEvent) - - if (!Object.isFrozen(this.#eventInit.ports)) { - Object.freeze(this.#eventInit.ports) - } - - return this.#eventInit.ports - } - - initMessageEvent ( - type, - bubbles = false, - cancelable = false, - data = null, - origin = '', - lastEventId = '', - source = null, - ports = [] - ) { - webidl.brandCheck(this, MessageEvent) - - webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' }) - - return new MessageEvent(type, { - bubbles, cancelable, data, origin, lastEventId, source, ports - }) - } -} - -/** - * @see https://websockets.spec.whatwg.org/#the-closeevent-interface - */ -class CloseEvent extends Event { - #eventInit - - constructor (type, eventInitDict = {}) { - webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' }) - - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.CloseEventInit(eventInitDict) - - super(type, eventInitDict) - - this.#eventInit = eventInitDict - } - - get wasClean () { - webidl.brandCheck(this, CloseEvent) - - return this.#eventInit.wasClean - } - - get code () { - webidl.brandCheck(this, CloseEvent) - - return this.#eventInit.code - } - - get reason () { - webidl.brandCheck(this, CloseEvent) - - return this.#eventInit.reason - } -} - -// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface -class ErrorEvent extends Event { - #eventInit - - constructor (type, eventInitDict) { - webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' }) - - super(type, eventInitDict) - - type = webidl.converters.DOMString(type) - eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}) - - this.#eventInit = eventInitDict - } - - get message () { - webidl.brandCheck(this, ErrorEvent) - - return this.#eventInit.message - } - - get filename () { - webidl.brandCheck(this, ErrorEvent) - - return this.#eventInit.filename - } - - get lineno () { - webidl.brandCheck(this, ErrorEvent) - - return this.#eventInit.lineno - } - - get colno () { - webidl.brandCheck(this, ErrorEvent) - - return this.#eventInit.colno - } - - get error () { - webidl.brandCheck(this, ErrorEvent) - - return this.#eventInit.error - } -} - -Object.defineProperties(MessageEvent.prototype, { - [Symbol.toStringTag]: { - value: 'MessageEvent', - configurable: true - }, - data: kEnumerableProperty, - origin: kEnumerableProperty, - lastEventId: kEnumerableProperty, - source: kEnumerableProperty, - ports: kEnumerableProperty, - initMessageEvent: kEnumerableProperty -}) - -Object.defineProperties(CloseEvent.prototype, { - [Symbol.toStringTag]: { - value: 'CloseEvent', - configurable: true - }, - reason: kEnumerableProperty, - code: kEnumerableProperty, - wasClean: kEnumerableProperty -}) - -Object.defineProperties(ErrorEvent.prototype, { - [Symbol.toStringTag]: { - value: 'ErrorEvent', - configurable: true - }, - message: kEnumerableProperty, - filename: kEnumerableProperty, - lineno: kEnumerableProperty, - colno: kEnumerableProperty, - error: kEnumerableProperty -}) - -webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort) - -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.MessagePort -) - -const eventInit = [ - { - key: 'bubbles', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'cancelable', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'composed', - converter: webidl.converters.boolean, - defaultValue: false - } -] - -webidl.converters.MessageEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'data', - converter: webidl.converters.any, - defaultValue: null - }, - { - key: 'origin', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lastEventId', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'source', - // Node doesn't implement WindowProxy or ServiceWorker, so the only - // valid value for source is a MessagePort. - converter: webidl.nullableConverter(webidl.converters.MessagePort), - defaultValue: null - }, - { - key: 'ports', - converter: webidl.converters['sequence'], - get defaultValue () { - return [] - } - } -]) - -webidl.converters.CloseEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'wasClean', - converter: webidl.converters.boolean, - defaultValue: false - }, - { - key: 'code', - converter: webidl.converters['unsigned short'], - defaultValue: 0 - }, - { - key: 'reason', - converter: webidl.converters.USVString, - defaultValue: '' - } -]) - -webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: 'message', - converter: webidl.converters.DOMString, - defaultValue: '' - }, - { - key: 'filename', - converter: webidl.converters.USVString, - defaultValue: '' - }, - { - key: 'lineno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'colno', - converter: webidl.converters['unsigned long'], - defaultValue: 0 - }, - { - key: 'error', - converter: webidl.converters.any - } -]) - -module.exports = { - MessageEvent, - CloseEvent, - ErrorEvent -} - - -/***/ }), - -/***/ 7315: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { maxUnsigned16Bit } = __nccwpck_require__(5455) - -/** @type {import('crypto')} */ -let crypto -try { - crypto = __nccwpck_require__(6982) -} catch { - -} - -class WebsocketFrameSend { - /** - * @param {Buffer|undefined} data - */ - constructor (data) { - this.frameData = data - this.maskKey = crypto.randomBytes(4) - } - - createFrame (opcode) { - const bodyLength = this.frameData?.byteLength ?? 0 - - /** @type {number} */ - let payloadLength = bodyLength // 0-125 - let offset = 6 - - if (bodyLength > maxUnsigned16Bit) { - offset += 8 // payload length is next 8 bytes - payloadLength = 127 - } else if (bodyLength > 125) { - offset += 2 // payload length is next 2 bytes - payloadLength = 126 - } - - const buffer = Buffer.allocUnsafe(bodyLength + offset) - - // Clear first 2 bytes, everything else is overwritten - buffer[0] = buffer[1] = 0 - buffer[0] |= 0x80 // FIN - buffer[0] = (buffer[0] & 0xF0) + opcode // opcode - - /*! ws. MIT License. Einar Otto Stangvik */ - buffer[offset - 4] = this.maskKey[0] - buffer[offset - 3] = this.maskKey[1] - buffer[offset - 2] = this.maskKey[2] - buffer[offset - 1] = this.maskKey[3] - - buffer[1] = payloadLength - - if (payloadLength === 126) { - buffer.writeUInt16BE(bodyLength, 2) - } else if (payloadLength === 127) { - // Clear extended payload length - buffer[2] = buffer[3] = 0 - buffer.writeUIntBE(bodyLength, 4, 6) - } - - buffer[1] |= 0x80 // MASK - - // mask body - for (let i = 0; i < bodyLength; i++) { - buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4] - } - - return buffer - } -} - -module.exports = { - WebsocketFrameSend -} - - -/***/ }), - -/***/ 93: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { Writable } = __nccwpck_require__(2203) -const diagnosticsChannel = __nccwpck_require__(1637) -const { parserStates, opcodes, states, emptyBuffer } = __nccwpck_require__(5455) -const { kReadyState, kSentClose, kResponse, kReceivedClose } = __nccwpck_require__(8075) -const { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = __nccwpck_require__(7264) -const { WebsocketFrameSend } = __nccwpck_require__(7315) - -// This code was influenced by ws released under the MIT license. -// Copyright (c) 2011 Einar Otto Stangvik -// Copyright (c) 2013 Arnout Kazemier and contributors -// Copyright (c) 2016 Luigi Pinca and contributors - -const channels = {} -channels.ping = diagnosticsChannel.channel('undici:websocket:ping') -channels.pong = diagnosticsChannel.channel('undici:websocket:pong') - -class ByteParser extends Writable { - #buffers = [] - #byteOffset = 0 - - #state = parserStates.INFO - - #info = {} - #fragments = [] - - constructor (ws) { - super() - - this.ws = ws - } - - /** - * @param {Buffer} chunk - * @param {() => void} callback - */ - _write (chunk, _, callback) { - this.#buffers.push(chunk) - this.#byteOffset += chunk.length - - this.run(callback) - } - - /** - * Runs whenever a new chunk is received. - * Callback is called whenever there are no more chunks buffering, - * or not enough bytes are buffered to parse. - */ - run (callback) { - while (true) { - if (this.#state === parserStates.INFO) { - // If there aren't enough bytes to parse the payload length, etc. - if (this.#byteOffset < 2) { - return callback() - } - - const buffer = this.consume(2) - - this.#info.fin = (buffer[0] & 0x80) !== 0 - this.#info.opcode = buffer[0] & 0x0F - - // If we receive a fragmented message, we use the type of the first - // frame to parse the full message as binary/text, when it's terminated - this.#info.originalOpcode ??= this.#info.opcode - - this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION - - if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) { - // Only text and binary frames can be fragmented - failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.') - return - } - - const payloadLength = buffer[1] & 0x7F - - if (payloadLength <= 125) { - this.#info.payloadLength = payloadLength - this.#state = parserStates.READ_DATA - } else if (payloadLength === 126) { - this.#state = parserStates.PAYLOADLENGTH_16 - } else if (payloadLength === 127) { - this.#state = parserStates.PAYLOADLENGTH_64 - } - - if (this.#info.fragmented && payloadLength > 125) { - // A fragmented frame can't be fragmented itself - failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.') - return - } else if ( - (this.#info.opcode === opcodes.PING || - this.#info.opcode === opcodes.PONG || - this.#info.opcode === opcodes.CLOSE) && - payloadLength > 125 - ) { - // Control frames can have a payload length of 125 bytes MAX - failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.') - return - } else if (this.#info.opcode === opcodes.CLOSE) { - if (payloadLength === 1) { - failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.') - return - } - - const body = this.consume(payloadLength) - - this.#info.closeInfo = this.parseCloseBody(false, body) - - if (!this.ws[kSentClose]) { - // If an endpoint receives a Close frame and did not previously send a - // Close frame, the endpoint MUST send a Close frame in response. (When - // sending a Close frame in response, the endpoint typically echos the - // status code it received.) - const body = Buffer.allocUnsafe(2) - body.writeUInt16BE(this.#info.closeInfo.code, 0) - const closeFrame = new WebsocketFrameSend(body) - - this.ws[kResponse].socket.write( - closeFrame.createFrame(opcodes.CLOSE), - (err) => { - if (!err) { - this.ws[kSentClose] = true - } - } - ) - } - - // Upon either sending or receiving a Close control frame, it is said - // that _The WebSocket Closing Handshake is Started_ and that the - // WebSocket connection is in the CLOSING state. - this.ws[kReadyState] = states.CLOSING - this.ws[kReceivedClose] = true - - this.end() - - return - } else if (this.#info.opcode === opcodes.PING) { - // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in - // response, unless it already received a Close frame. - // A Pong frame sent in response to a Ping frame must have identical - // "Application data" - - const body = this.consume(payloadLength) - - if (!this.ws[kReceivedClose]) { - const frame = new WebsocketFrameSend(body) - - this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)) - - if (channels.ping.hasSubscribers) { - channels.ping.publish({ - payload: body - }) - } - } - - this.#state = parserStates.INFO - - if (this.#byteOffset > 0) { - continue - } else { - callback() - return - } - } else if (this.#info.opcode === opcodes.PONG) { - // A Pong frame MAY be sent unsolicited. This serves as a - // unidirectional heartbeat. A response to an unsolicited Pong frame is - // not expected. - - const body = this.consume(payloadLength) - - if (channels.pong.hasSubscribers) { - channels.pong.publish({ - payload: body - }) - } - - if (this.#byteOffset > 0) { - continue - } else { - callback() - return - } - } - } else if (this.#state === parserStates.PAYLOADLENGTH_16) { - if (this.#byteOffset < 2) { - return callback() - } - - const buffer = this.consume(2) - - this.#info.payloadLength = buffer.readUInt16BE(0) - this.#state = parserStates.READ_DATA - } else if (this.#state === parserStates.PAYLOADLENGTH_64) { - if (this.#byteOffset < 8) { - return callback() - } - - const buffer = this.consume(8) - const upper = buffer.readUInt32BE(0) - - // 2^31 is the maxinimum bytes an arraybuffer can contain - // on 32-bit systems. Although, on 64-bit systems, this is - // 2^53-1 bytes. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length - // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275 - // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e - if (upper > 2 ** 31 - 1) { - failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.') - return - } - - const lower = buffer.readUInt32BE(4) - - this.#info.payloadLength = (upper << 8) + lower - this.#state = parserStates.READ_DATA - } else if (this.#state === parserStates.READ_DATA) { - if (this.#byteOffset < this.#info.payloadLength) { - // If there is still more data in this chunk that needs to be read - return callback() - } else if (this.#byteOffset >= this.#info.payloadLength) { - // If the server sent multiple frames in a single chunk - - const body = this.consume(this.#info.payloadLength) - - this.#fragments.push(body) - - // If the frame is unfragmented, or a fragmented frame was terminated, - // a message was received - if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) { - const fullMessage = Buffer.concat(this.#fragments) - - websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage) - - this.#info = {} - this.#fragments.length = 0 - } - - this.#state = parserStates.INFO - } - } - - if (this.#byteOffset > 0) { - continue - } else { - callback() - break - } - } - } - - /** - * Take n bytes from the buffered Buffers - * @param {number} n - * @returns {Buffer|null} - */ - consume (n) { - if (n > this.#byteOffset) { - return null - } else if (n === 0) { - return emptyBuffer - } - - if (this.#buffers[0].length === n) { - this.#byteOffset -= this.#buffers[0].length - return this.#buffers.shift() - } - - const buffer = Buffer.allocUnsafe(n) - let offset = 0 - - while (offset !== n) { - const next = this.#buffers[0] - const { length } = next - - if (length + offset === n) { - buffer.set(this.#buffers.shift(), offset) - break - } else if (length + offset > n) { - buffer.set(next.subarray(0, n - offset), offset) - this.#buffers[0] = next.subarray(n - offset) - break - } else { - buffer.set(this.#buffers.shift(), offset) - offset += next.length - } - } - - this.#byteOffset -= n - - return buffer - } - - parseCloseBody (onlyCode, data) { - // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5 - /** @type {number|undefined} */ - let code - - if (data.length >= 2) { - // _The WebSocket Connection Close Code_ is - // defined as the status code (Section 7.4) contained in the first Close - // control frame received by the application - code = data.readUInt16BE(0) - } - - if (onlyCode) { - if (!isValidStatusCode(code)) { - return null - } - - return { code } - } - - // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6 - /** @type {Buffer} */ - let reason = data.subarray(2) - - // Remove BOM - if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) { - reason = reason.subarray(3) - } - - if (code !== undefined && !isValidStatusCode(code)) { - return null - } - - try { - // TODO: optimize this - reason = new TextDecoder('utf-8', { fatal: true }).decode(reason) - } catch { - return null - } - - return { code, reason } - } - - get closingInfo () { - return this.#info.closeInfo - } -} - -module.exports = { - ByteParser -} - - -/***/ }), - -/***/ 8075: -/***/ ((module) => { - - - -module.exports = { - kWebSocketURL: Symbol('url'), - kReadyState: Symbol('ready state'), - kController: Symbol('controller'), - kResponse: Symbol('response'), - kBinaryType: Symbol('binary type'), - kSentClose: Symbol('sent close'), - kReceivedClose: Symbol('received close'), - kByteParser: Symbol('byte parser') -} - - -/***/ }), - -/***/ 7264: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __nccwpck_require__(8075) -const { states, opcodes } = __nccwpck_require__(5455) -const { MessageEvent, ErrorEvent } = __nccwpck_require__(4509) - -/* globals Blob */ - -/** - * @param {import('./websocket').WebSocket} ws - */ -function isEstablished (ws) { - // If the server's response is validated as provided for above, it is - // said that _The WebSocket Connection is Established_ and that the - // WebSocket Connection is in the OPEN state. - return ws[kReadyState] === states.OPEN -} - -/** - * @param {import('./websocket').WebSocket} ws - */ -function isClosing (ws) { - // Upon either sending or receiving a Close control frame, it is said - // that _The WebSocket Closing Handshake is Started_ and that the - // WebSocket connection is in the CLOSING state. - return ws[kReadyState] === states.CLOSING -} - -/** - * @param {import('./websocket').WebSocket} ws - */ -function isClosed (ws) { - return ws[kReadyState] === states.CLOSED -} - -/** - * @see https://dom.spec.whatwg.org/#concept-event-fire - * @param {string} e - * @param {EventTarget} target - * @param {EventInit | undefined} eventInitDict - */ -function fireEvent (e, target, eventConstructor = Event, eventInitDict) { - // 1. If eventConstructor is not given, then let eventConstructor be Event. - - // 2. Let event be the result of creating an event given eventConstructor, - // in the relevant realm of target. - // 3. Initialize event’s type attribute to e. - const event = new eventConstructor(e, eventInitDict) - - // 4. Initialize any other IDL attributes of event as described in the - // invocation of this algorithm. - - // 5. Return the result of dispatching event at target, with legacy target - // override flag set if set. - target.dispatchEvent(event) -} - -/** - * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol - * @param {import('./websocket').WebSocket} ws - * @param {number} type Opcode - * @param {Buffer} data application data - */ -function websocketMessageReceived (ws, type, data) { - // 1. If ready state is not OPEN (1), then return. - if (ws[kReadyState] !== states.OPEN) { - return - } - - // 2. Let dataForEvent be determined by switching on type and binary type: - let dataForEvent - - if (type === opcodes.TEXT) { - // -> type indicates that the data is Text - // a new DOMString containing data - try { - dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data) - } catch { - failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.') - return - } - } else if (type === opcodes.BINARY) { - if (ws[kBinaryType] === 'blob') { - // -> type indicates that the data is Binary and binary type is "blob" - // a new Blob object, created in the relevant Realm of the WebSocket - // object, that represents data as its raw data - dataForEvent = new Blob([data]) - } else { - // -> type indicates that the data is Binary and binary type is "arraybuffer" - // a new ArrayBuffer object, created in the relevant Realm of the - // WebSocket object, whose contents are data - dataForEvent = new Uint8Array(data).buffer - } - } - - // 3. Fire an event named message at the WebSocket object, using MessageEvent, - // with the origin attribute initialized to the serialization of the WebSocket - // object’s url's origin, and the data attribute initialized to dataForEvent. - fireEvent('message', ws, MessageEvent, { - origin: ws[kWebSocketURL].origin, - data: dataForEvent - }) -} - -/** - * @see https://datatracker.ietf.org/doc/html/rfc6455 - * @see https://datatracker.ietf.org/doc/html/rfc2616 - * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407 - * @param {string} protocol - */ -function isValidSubprotocol (protocol) { - // If present, this value indicates one - // or more comma-separated subprotocol the client wishes to speak, - // ordered by preference. The elements that comprise this value - // MUST be non-empty strings with characters in the range U+0021 to - // U+007E not including separator characters as defined in - // [RFC2616] and MUST all be unique strings. - if (protocol.length === 0) { - return false - } - - for (const char of protocol) { - const code = char.charCodeAt(0) - - if ( - code < 0x21 || - code > 0x7E || - char === '(' || - char === ')' || - char === '<' || - char === '>' || - char === '@' || - char === ',' || - char === ';' || - char === ':' || - char === '\\' || - char === '"' || - char === '/' || - char === '[' || - char === ']' || - char === '?' || - char === '=' || - char === '{' || - char === '}' || - code === 32 || // SP - code === 9 // HT - ) { - return false - } - } - - return true -} - -/** - * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4 - * @param {number} code - */ -function isValidStatusCode (code) { - if (code >= 1000 && code < 1015) { - return ( - code !== 1004 && // reserved - code !== 1005 && // "MUST NOT be set as a status code" - code !== 1006 // "MUST NOT be set as a status code" - ) - } - - return code >= 3000 && code <= 4999 -} - -/** - * @param {import('./websocket').WebSocket} ws - * @param {string|undefined} reason - */ -function failWebsocketConnection (ws, reason) { - const { [kController]: controller, [kResponse]: response } = ws - - controller.abort() - - if (response?.socket && !response.socket.destroyed) { - response.socket.destroy() - } - - if (reason) { - fireEvent('error', ws, ErrorEvent, { - error: new Error(reason) - }) - } -} - -module.exports = { - isEstablished, - isClosing, - isClosed, - fireEvent, - isValidSubprotocol, - isValidStatusCode, - failWebsocketConnection, - websocketMessageReceived -} - - -/***/ }), - -/***/ 329: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const { webidl } = __nccwpck_require__(7472) -const { DOMException } = __nccwpck_require__(1356) -const { URLSerializer } = __nccwpck_require__(5892) -const { getGlobalOrigin } = __nccwpck_require__(2498) -const { staticPropertyDescriptors, states, opcodes, emptyBuffer } = __nccwpck_require__(5455) -const { - kWebSocketURL, - kReadyState, - kController, - kBinaryType, - kResponse, - kSentClose, - kByteParser -} = __nccwpck_require__(8075) -const { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = __nccwpck_require__(7264) -const { establishWebSocketConnection } = __nccwpck_require__(5188) -const { WebsocketFrameSend } = __nccwpck_require__(7315) -const { ByteParser } = __nccwpck_require__(93) -const { kEnumerableProperty, isBlobLike } = __nccwpck_require__(162) -const { getGlobalDispatcher } = __nccwpck_require__(8127) -const { types } = __nccwpck_require__(9023) - -let experimentalWarned = false - -// https://websockets.spec.whatwg.org/#interface-definition -class WebSocket extends EventTarget { - #events = { - open: null, - error: null, - close: null, - message: null - } - - #bufferedAmount = 0 - #protocol = '' - #extensions = '' - - /** - * @param {string} url - * @param {string|string[]} protocols - */ - constructor (url, protocols = []) { - super() - - webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' }) - - if (!experimentalWarned) { - experimentalWarned = true - process.emitWarning('WebSockets are experimental, expect them to change at any time.', { - code: 'UNDICI-WS' - }) - } - - const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols) - - url = webidl.converters.USVString(url) - protocols = options.protocols - - // 1. Let baseURL be this's relevant settings object's API base URL. - const baseURL = getGlobalOrigin() - - // 1. Let urlRecord be the result of applying the URL parser to url with baseURL. - let urlRecord - - try { - urlRecord = new URL(url, baseURL) - } catch (e) { - // 3. If urlRecord is failure, then throw a "SyntaxError" DOMException. - throw new DOMException(e, 'SyntaxError') - } - - // 4. If urlRecord’s scheme is "http", then set urlRecord’s scheme to "ws". - if (urlRecord.protocol === 'http:') { - urlRecord.protocol = 'ws:' - } else if (urlRecord.protocol === 'https:') { - // 5. Otherwise, if urlRecord’s scheme is "https", set urlRecord’s scheme to "wss". - urlRecord.protocol = 'wss:' - } - - // 6. If urlRecord’s scheme is not "ws" or "wss", then throw a "SyntaxError" DOMException. - if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') { - throw new DOMException( - `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, - 'SyntaxError' - ) - } - - // 7. If urlRecord’s fragment is non-null, then throw a "SyntaxError" - // DOMException. - if (urlRecord.hash || urlRecord.href.endsWith('#')) { - throw new DOMException('Got fragment', 'SyntaxError') - } - - // 8. If protocols is a string, set protocols to a sequence consisting - // of just that string. - if (typeof protocols === 'string') { - protocols = [protocols] - } - - // 9. If any of the values in protocols occur more than once or otherwise - // fail to match the requirements for elements that comprise the value - // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket - // protocol, then throw a "SyntaxError" DOMException. - if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) { - throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') - } - - if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) { - throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') - } - - // 10. Set this's url to urlRecord. - this[kWebSocketURL] = new URL(urlRecord.href) - - // 11. Let client be this's relevant settings object. - - // 12. Run this step in parallel: - - // 1. Establish a WebSocket connection given urlRecord, protocols, - // and client. - this[kController] = establishWebSocketConnection( - urlRecord, - protocols, - this, - (response) => this.#onConnectionEstablished(response), - options - ) - - // Each WebSocket object has an associated ready state, which is a - // number representing the state of the connection. Initially it must - // be CONNECTING (0). - this[kReadyState] = WebSocket.CONNECTING - - // The extensions attribute must initially return the empty string. - - // The protocol attribute must initially return the empty string. - - // Each WebSocket object has an associated binary type, which is a - // BinaryType. Initially it must be "blob". - this[kBinaryType] = 'blob' - } - - /** - * @see https://websockets.spec.whatwg.org/#dom-websocket-close - * @param {number|undefined} code - * @param {string|undefined} reason - */ - close (code = undefined, reason = undefined) { - webidl.brandCheck(this, WebSocket) - - if (code !== undefined) { - code = webidl.converters['unsigned short'](code, { clamp: true }) - } - - if (reason !== undefined) { - reason = webidl.converters.USVString(reason) - } - - // 1. If code is present, but is neither an integer equal to 1000 nor an - // integer in the range 3000 to 4999, inclusive, throw an - // "InvalidAccessError" DOMException. - if (code !== undefined) { - if (code !== 1000 && (code < 3000 || code > 4999)) { - throw new DOMException('invalid code', 'InvalidAccessError') - } - } - - let reasonByteLength = 0 - - // 2. If reason is present, then run these substeps: - if (reason !== undefined) { - // 1. Let reasonBytes be the result of encoding reason. - // 2. If reasonBytes is longer than 123 bytes, then throw a - // "SyntaxError" DOMException. - reasonByteLength = Buffer.byteLength(reason) - - if (reasonByteLength > 123) { - throw new DOMException( - `Reason must be less than 123 bytes; received ${reasonByteLength}`, - 'SyntaxError' - ) - } - } - - // 3. Run the first matching steps from the following list: - if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) { - // If this's ready state is CLOSING (2) or CLOSED (3) - // Do nothing. - } else if (!isEstablished(this)) { - // If the WebSocket connection is not yet established - // Fail the WebSocket connection and set this's ready state - // to CLOSING (2). - failWebsocketConnection(this, 'Connection was closed before it was established.') - this[kReadyState] = WebSocket.CLOSING - } else if (!isClosing(this)) { - // If the WebSocket closing handshake has not yet been started - // Start the WebSocket closing handshake and set this's ready - // state to CLOSING (2). - // - If neither code nor reason is present, the WebSocket Close - // message must not have a body. - // - If code is present, then the status code to use in the - // WebSocket Close message must be the integer given by code. - // - If reason is also present, then reasonBytes must be - // provided in the Close message after the status code. - - const frame = new WebsocketFrameSend() - - // If neither code nor reason is present, the WebSocket Close - // message must not have a body. - - // If code is present, then the status code to use in the - // WebSocket Close message must be the integer given by code. - if (code !== undefined && reason === undefined) { - frame.frameData = Buffer.allocUnsafe(2) - frame.frameData.writeUInt16BE(code, 0) - } else if (code !== undefined && reason !== undefined) { - // If reason is also present, then reasonBytes must be - // provided in the Close message after the status code. - frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength) - frame.frameData.writeUInt16BE(code, 0) - // the body MAY contain UTF-8-encoded data with value /reason/ - frame.frameData.write(reason, 2, 'utf-8') - } else { - frame.frameData = emptyBuffer - } - - /** @type {import('stream').Duplex} */ - const socket = this[kResponse].socket - - socket.write(frame.createFrame(opcodes.CLOSE), (err) => { - if (!err) { - this[kSentClose] = true - } - }) - - // Upon either sending or receiving a Close control frame, it is said - // that _The WebSocket Closing Handshake is Started_ and that the - // WebSocket connection is in the CLOSING state. - this[kReadyState] = states.CLOSING - } else { - // Otherwise - // Set this's ready state to CLOSING (2). - this[kReadyState] = WebSocket.CLOSING - } - } - - /** - * @see https://websockets.spec.whatwg.org/#dom-websocket-send - * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data - */ - send (data) { - webidl.brandCheck(this, WebSocket) - - webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' }) - - data = webidl.converters.WebSocketSendData(data) - - // 1. If this's ready state is CONNECTING, then throw an - // "InvalidStateError" DOMException. - if (this[kReadyState] === WebSocket.CONNECTING) { - throw new DOMException('Sent before connected.', 'InvalidStateError') - } - - // 2. Run the appropriate set of steps from the following list: - // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1 - // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2 - - if (!isEstablished(this) || isClosing(this)) { - return - } - - /** @type {import('stream').Duplex} */ - const socket = this[kResponse].socket - - // If data is a string - if (typeof data === 'string') { - // If the WebSocket connection is established and the WebSocket - // closing handshake has not yet started, then the user agent - // must send a WebSocket Message comprised of the data argument - // using a text frame opcode; if the data cannot be sent, e.g. - // because it would need to be buffered but the buffer is full, - // the user agent must flag the WebSocket as full and then close - // the WebSocket connection. Any invocation of this method with a - // string argument that does not throw an exception must increase - // the bufferedAmount attribute by the number of bytes needed to - // express the argument as UTF-8. - - const value = Buffer.from(data) - const frame = new WebsocketFrameSend(value) - const buffer = frame.createFrame(opcodes.TEXT) - - this.#bufferedAmount += value.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= value.byteLength - }) - } else if (types.isArrayBuffer(data)) { - // If the WebSocket connection is established, and the WebSocket - // closing handshake has not yet started, then the user agent must - // send a WebSocket Message comprised of data using a binary frame - // opcode; if the data cannot be sent, e.g. because it would need - // to be buffered but the buffer is full, the user agent must flag - // the WebSocket as full and then close the WebSocket connection. - // The data to be sent is the data stored in the buffer described - // by the ArrayBuffer object. Any invocation of this method with an - // ArrayBuffer argument that does not throw an exception must - // increase the bufferedAmount attribute by the length of the - // ArrayBuffer in bytes. - - const value = Buffer.from(data) - const frame = new WebsocketFrameSend(value) - const buffer = frame.createFrame(opcodes.BINARY) - - this.#bufferedAmount += value.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= value.byteLength - }) - } else if (ArrayBuffer.isView(data)) { - // If the WebSocket connection is established, and the WebSocket - // closing handshake has not yet started, then the user agent must - // send a WebSocket Message comprised of data using a binary frame - // opcode; if the data cannot be sent, e.g. because it would need to - // be buffered but the buffer is full, the user agent must flag the - // WebSocket as full and then close the WebSocket connection. The - // data to be sent is the data stored in the section of the buffer - // described by the ArrayBuffer object that data references. Any - // invocation of this method with this kind of argument that does - // not throw an exception must increase the bufferedAmount attribute - // by the length of data’s buffer in bytes. - - const ab = Buffer.from(data, data.byteOffset, data.byteLength) - - const frame = new WebsocketFrameSend(ab) - const buffer = frame.createFrame(opcodes.BINARY) - - this.#bufferedAmount += ab.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= ab.byteLength - }) - } else if (isBlobLike(data)) { - // If the WebSocket connection is established, and the WebSocket - // closing handshake has not yet started, then the user agent must - // send a WebSocket Message comprised of data using a binary frame - // opcode; if the data cannot be sent, e.g. because it would need to - // be buffered but the buffer is full, the user agent must flag the - // WebSocket as full and then close the WebSocket connection. The data - // to be sent is the raw data represented by the Blob object. Any - // invocation of this method with a Blob argument that does not throw - // an exception must increase the bufferedAmount attribute by the size - // of the Blob object’s raw data, in bytes. - - const frame = new WebsocketFrameSend() - - data.arrayBuffer().then((ab) => { - const value = Buffer.from(ab) - frame.frameData = value - const buffer = frame.createFrame(opcodes.BINARY) - - this.#bufferedAmount += value.byteLength - socket.write(buffer, () => { - this.#bufferedAmount -= value.byteLength - }) - }) - } - } - - get readyState () { - webidl.brandCheck(this, WebSocket) - - // The readyState getter steps are to return this's ready state. - return this[kReadyState] - } - - get bufferedAmount () { - webidl.brandCheck(this, WebSocket) - - return this.#bufferedAmount - } - - get url () { - webidl.brandCheck(this, WebSocket) - - // The url getter steps are to return this's url, serialized. - return URLSerializer(this[kWebSocketURL]) - } - - get extensions () { - webidl.brandCheck(this, WebSocket) - - return this.#extensions - } - - get protocol () { - webidl.brandCheck(this, WebSocket) - - return this.#protocol - } - - get onopen () { - webidl.brandCheck(this, WebSocket) - - return this.#events.open - } - - set onopen (fn) { - webidl.brandCheck(this, WebSocket) - - if (this.#events.open) { - this.removeEventListener('open', this.#events.open) - } - - if (typeof fn === 'function') { - this.#events.open = fn - this.addEventListener('open', fn) - } else { - this.#events.open = null - } - } - - get onerror () { - webidl.brandCheck(this, WebSocket) - - return this.#events.error - } - - set onerror (fn) { - webidl.brandCheck(this, WebSocket) - - if (this.#events.error) { - this.removeEventListener('error', this.#events.error) - } - - if (typeof fn === 'function') { - this.#events.error = fn - this.addEventListener('error', fn) - } else { - this.#events.error = null - } - } - - get onclose () { - webidl.brandCheck(this, WebSocket) - - return this.#events.close - } - - set onclose (fn) { - webidl.brandCheck(this, WebSocket) - - if (this.#events.close) { - this.removeEventListener('close', this.#events.close) - } - - if (typeof fn === 'function') { - this.#events.close = fn - this.addEventListener('close', fn) - } else { - this.#events.close = null - } - } - - get onmessage () { - webidl.brandCheck(this, WebSocket) - - return this.#events.message - } - - set onmessage (fn) { - webidl.brandCheck(this, WebSocket) - - if (this.#events.message) { - this.removeEventListener('message', this.#events.message) - } - - if (typeof fn === 'function') { - this.#events.message = fn - this.addEventListener('message', fn) - } else { - this.#events.message = null - } - } - - get binaryType () { - webidl.brandCheck(this, WebSocket) - - return this[kBinaryType] - } - - set binaryType (type) { - webidl.brandCheck(this, WebSocket) - - if (type !== 'blob' && type !== 'arraybuffer') { - this[kBinaryType] = 'blob' - } else { - this[kBinaryType] = type - } - } - - /** - * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol - */ - #onConnectionEstablished (response) { - // processResponse is called when the "response’s header list has been received and initialized." - // once this happens, the connection is open - this[kResponse] = response - - const parser = new ByteParser(this) - parser.on('drain', function onParserDrain () { - this.ws[kResponse].socket.resume() - }) - - response.socket.ws = this - this[kByteParser] = parser - - // 1. Change the ready state to OPEN (1). - this[kReadyState] = states.OPEN - - // 2. Change the extensions attribute’s value to the extensions in use, if - // it is not the null value. - // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1 - const extensions = response.headersList.get('sec-websocket-extensions') - - if (extensions !== null) { - this.#extensions = extensions - } - - // 3. Change the protocol attribute’s value to the subprotocol in use, if - // it is not the null value. - // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9 - const protocol = response.headersList.get('sec-websocket-protocol') - - if (protocol !== null) { - this.#protocol = protocol - } - - // 4. Fire an event named open at the WebSocket object. - fireEvent('open', this) - } -} - -// https://websockets.spec.whatwg.org/#dom-websocket-connecting -WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING -// https://websockets.spec.whatwg.org/#dom-websocket-open -WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN -// https://websockets.spec.whatwg.org/#dom-websocket-closing -WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING -// https://websockets.spec.whatwg.org/#dom-websocket-closed -WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED - -Object.defineProperties(WebSocket.prototype, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors, - url: kEnumerableProperty, - readyState: kEnumerableProperty, - bufferedAmount: kEnumerableProperty, - onopen: kEnumerableProperty, - onerror: kEnumerableProperty, - onclose: kEnumerableProperty, - close: kEnumerableProperty, - onmessage: kEnumerableProperty, - binaryType: kEnumerableProperty, - send: kEnumerableProperty, - extensions: kEnumerableProperty, - protocol: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'WebSocket', - writable: false, - enumerable: false, - configurable: true - } -}) - -Object.defineProperties(WebSocket, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors -}) - -webidl.converters['sequence'] = webidl.sequenceConverter( - webidl.converters.DOMString -) - -webidl.converters['DOMString or sequence'] = function (V) { - if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) { - return webidl.converters['sequence'](V) - } - - return webidl.converters.DOMString(V) -} - -// This implements the propsal made in https://github.com/whatwg/websockets/issues/42 -webidl.converters.WebSocketInit = webidl.dictionaryConverter([ - { - key: 'protocols', - converter: webidl.converters['DOMString or sequence'], - get defaultValue () { - return [] - } - }, - { - key: 'dispatcher', - converter: (V) => V, - get defaultValue () { - return getGlobalDispatcher() - } - }, - { - key: 'headers', - converter: webidl.nullableConverter(webidl.converters.HeadersInit) - } -]) - -webidl.converters['DOMString or sequence or WebSocketInit'] = function (V) { - if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) { - return webidl.converters.WebSocketInit(V) - } - - return { protocols: webidl.converters['DOMString or sequence'](V) } -} - -webidl.converters.WebSocketSendData = function (V) { - if (webidl.util.Type(V) === 'Object') { - if (isBlobLike(V)) { - return webidl.converters.Blob(V, { strict: false }) - } - - if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { - return webidl.converters.BufferSource(V) - } - } - - return webidl.converters.USVString(V) -} - -module.exports = { - WebSocket -} - - -/***/ }), - -/***/ 6726: -/***/ ((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 - } -} - - -/***/ }), - -/***/ 2613: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("assert"); - -/***/ }), - -/***/ 290: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("async_hooks"); - -/***/ }), - -/***/ 181: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("buffer"); - -/***/ }), - -/***/ 5317: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("child_process"); - -/***/ }), - -/***/ 1855: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("console"); - -/***/ }), - -/***/ 6982: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("crypto"); - -/***/ }), - -/***/ 1637: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("diagnostics_channel"); - -/***/ }), - -/***/ 4434: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("events"); - -/***/ }), - -/***/ 9896: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs"); - -/***/ }), - -/***/ 8611: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http"); - -/***/ }), - -/***/ 5675: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http2"); - -/***/ }), - -/***/ 5692: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("https"); - -/***/ }), - -/***/ 9278: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("net"); - -/***/ }), - -/***/ 8474: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:events"); - -/***/ }), - -/***/ 7075: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:stream"); - -/***/ }), - -/***/ 7975: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util"); - -/***/ }), - -/***/ 857: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("os"); - -/***/ }), - -/***/ 6928: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("path"); - -/***/ }), - -/***/ 2987: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("perf_hooks"); - -/***/ }), - -/***/ 3480: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("querystring"); - -/***/ }), - -/***/ 2203: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream"); - -/***/ }), - -/***/ 3774: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream/web"); - -/***/ }), - -/***/ 3193: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("string_decoder"); - -/***/ }), - -/***/ 3557: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("timers"); - -/***/ }), - -/***/ 4756: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("tls"); - -/***/ }), - -/***/ 7016: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("url"); - -/***/ }), - -/***/ 9023: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("util"); - -/***/ }), - -/***/ 8253: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("util/types"); - -/***/ }), - -/***/ 8167: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("worker_threads"); - -/***/ }), - -/***/ 3106: -/***/ ((module) => { - -module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("zlib"); - -/***/ }), - -/***/ 6192: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const WritableStream = (__nccwpck_require__(7075).Writable) -const inherits = (__nccwpck_require__(7975).inherits) - -const StreamSearch = __nccwpck_require__(4262) - -const PartStream = __nccwpck_require__(950) -const HeaderParser = __nccwpck_require__(4045) - -const DASH = 45 -const B_ONEDASH = Buffer.from('-') -const B_CRLF = Buffer.from('\r\n') -const EMPTY_FN = function () {} - -function Dicer (cfg) { - if (!(this instanceof Dicer)) { return new Dicer(cfg) } - WritableStream.call(this, cfg) - - if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') } - - if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined } - - this._headerFirst = cfg.headerFirst - - this._dashes = 0 - this._parts = 0 - this._finished = false - this._realFinish = false - this._isPreamble = true - this._justMatched = false - this._firstWrite = true - this._inHeader = true - this._part = undefined - this._cb = undefined - this._ignoreData = false - this._partOpts = { highWaterMark: cfg.partHwm } - this._pause = false - - const self = this - this._hparser = new HeaderParser(cfg) - this._hparser.on('header', function (header) { - self._inHeader = false - self._part.emit('header', header) - }) -} -inherits(Dicer, WritableStream) - -Dicer.prototype.emit = function (ev) { - if (ev === 'finish' && !this._realFinish) { - if (!this._finished) { - const self = this - process.nextTick(function () { - self.emit('error', new Error('Unexpected end of multipart data')) - if (self._part && !self._ignoreData) { - const type = (self._isPreamble ? 'Preamble' : 'Part') - self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data')) - self._part.push(null) - process.nextTick(function () { - self._realFinish = true - self.emit('finish') - self._realFinish = false - }) - return - } - self._realFinish = true - self.emit('finish') - self._realFinish = false - }) - } - } else { WritableStream.prototype.emit.apply(this, arguments) } -} - -Dicer.prototype._write = function (data, encoding, cb) { - // ignore unexpected data (e.g. extra trailer data after finished) - if (!this._hparser && !this._bparser) { return cb() } - - if (this._headerFirst && this._isPreamble) { - if (!this._part) { - this._part = new PartStream(this._partOpts) - if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() } - } - const r = this._hparser.push(data) - if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() } - } - - // allows for "easier" testing - if (this._firstWrite) { - this._bparser.push(B_CRLF) - this._firstWrite = false - } - - this._bparser.push(data) - - if (this._pause) { this._cb = cb } else { cb() } -} - -Dicer.prototype.reset = function () { - this._part = undefined - this._bparser = undefined - this._hparser = undefined -} - -Dicer.prototype.setBoundary = function (boundary) { - const self = this - this._bparser = new StreamSearch('\r\n--' + boundary) - this._bparser.on('info', function (isMatch, data, start, end) { - self._oninfo(isMatch, data, start, end) - }) -} - -Dicer.prototype._ignore = function () { - if (this._part && !this._ignoreData) { - this._ignoreData = true - this._part.on('error', EMPTY_FN) - // we must perform some kind of read on the stream even though we are - // ignoring the data, otherwise node's Readable stream will not emit 'end' - // after pushing null to the stream - this._part.resume() - } -} - -Dicer.prototype._oninfo = function (isMatch, data, start, end) { - let buf; const self = this; let i = 0; let r; let shouldWriteMore = true - - if (!this._part && this._justMatched && data) { - while (this._dashes < 2 && (start + i) < end) { - if (data[start + i] === DASH) { - ++i - ++this._dashes - } else { - if (this._dashes) { buf = B_ONEDASH } - this._dashes = 0 - break - } - } - if (this._dashes === 2) { - if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) } - this.reset() - this._finished = true - // no more parts will be added - if (self._parts === 0) { - self._realFinish = true - self.emit('finish') - self._realFinish = false - } - } - if (this._dashes) { return } - } - if (this._justMatched) { this._justMatched = false } - if (!this._part) { - this._part = new PartStream(this._partOpts) - this._part._read = function (n) { - self._unpause() - } - if (this._isPreamble && this.listenerCount('preamble') !== 0) { - this.emit('preamble', this._part) - } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) { - this.emit('part', this._part) - } else { - this._ignore() - } - if (!this._isPreamble) { this._inHeader = true } - } - if (data && start < end && !this._ignoreData) { - if (this._isPreamble || !this._inHeader) { - if (buf) { shouldWriteMore = this._part.push(buf) } - shouldWriteMore = this._part.push(data.slice(start, end)) - if (!shouldWriteMore) { this._pause = true } - } else if (!this._isPreamble && this._inHeader) { - if (buf) { this._hparser.push(buf) } - r = this._hparser.push(data.slice(start, end)) - if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) } - } - } - if (isMatch) { - this._hparser.reset() - if (this._isPreamble) { this._isPreamble = false } else { - if (start !== end) { - ++this._parts - this._part.on('end', function () { - if (--self._parts === 0) { - if (self._finished) { - self._realFinish = true - self.emit('finish') - self._realFinish = false - } else { - self._unpause() - } - } - }) - } - } - this._part.push(null) - this._part = undefined - this._ignoreData = false - this._justMatched = true - this._dashes = 0 - } -} - -Dicer.prototype._unpause = function () { - if (!this._pause) { return } - - this._pause = false - if (this._cb) { - const cb = this._cb - this._cb = undefined - cb() - } -} - -module.exports = Dicer - - -/***/ }), - -/***/ 4045: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const EventEmitter = (__nccwpck_require__(8474).EventEmitter) -const inherits = (__nccwpck_require__(7975).inherits) -const getLimit = __nccwpck_require__(2291) - -const StreamSearch = __nccwpck_require__(4262) - -const B_DCRLF = Buffer.from('\r\n\r\n') -const RE_CRLF = /\r\n/g -const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/ - -function HeaderParser (cfg) { - EventEmitter.call(this) - - cfg = cfg || {} - const self = this - this.nread = 0 - this.maxed = false - this.npairs = 0 - this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000) - this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024) - this.buffer = '' - this.header = {} - this.finished = false - this.ss = new StreamSearch(B_DCRLF) - this.ss.on('info', function (isMatch, data, start, end) { - if (data && !self.maxed) { - if (self.nread + end - start >= self.maxHeaderSize) { - end = self.maxHeaderSize - self.nread + start - self.nread = self.maxHeaderSize - self.maxed = true - } else { self.nread += (end - start) } - - self.buffer += data.toString('binary', start, end) - } - if (isMatch) { self._finish() } - }) -} -inherits(HeaderParser, EventEmitter) - -HeaderParser.prototype.push = function (data) { - const r = this.ss.push(data) - if (this.finished) { return r } -} - -HeaderParser.prototype.reset = function () { - this.finished = false - this.buffer = '' - this.header = {} - this.ss.reset() -} - -HeaderParser.prototype._finish = function () { - if (this.buffer) { this._parseHeader() } - this.ss.matches = this.ss.maxMatches - const header = this.header - this.header = {} - this.buffer = '' - this.finished = true - this.nread = this.npairs = 0 - this.maxed = false - this.emit('header', header) -} - -HeaderParser.prototype._parseHeader = function () { - if (this.npairs === this.maxHeaderPairs) { return } - - const lines = this.buffer.split(RE_CRLF) - const len = lines.length - let m, h - - for (var i = 0; i < len; ++i) { - if (lines[i].length === 0) { continue } - if (lines[i][0] === '\t' || lines[i][0] === ' ') { - // folded header content - // RFC2822 says to just remove the CRLF and not the whitespace following - // it, so we follow the RFC and include the leading whitespace ... - if (h) { - this.header[h][this.header[h].length - 1] += lines[i] - continue - } - } - - const posColon = lines[i].indexOf(':') - if ( - posColon === -1 || - posColon === 0 - ) { - return - } - m = RE_HDR.exec(lines[i]) - h = m[1].toLowerCase() - this.header[h] = this.header[h] || [] - this.header[h].push((m[2] || '')) - if (++this.npairs === this.maxHeaderPairs) { break } - } -} - -module.exports = HeaderParser - - -/***/ }), - -/***/ 950: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const inherits = (__nccwpck_require__(7975).inherits) -const ReadableStream = (__nccwpck_require__(7075).Readable) - -function PartStream (opts) { - ReadableStream.call(this, opts) -} -inherits(PartStream, ReadableStream) - -PartStream.prototype._read = function (n) {} - -module.exports = PartStream - - -/***/ }), - -/***/ 4262: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -/** - * Copyright Brian White. All rights reserved. - * - * @see https://github.com/mscdex/streamsearch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation - * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool - */ -const EventEmitter = (__nccwpck_require__(8474).EventEmitter) -const inherits = (__nccwpck_require__(7975).inherits) - -function SBMH (needle) { - if (typeof needle === 'string') { - needle = Buffer.from(needle) - } - - if (!Buffer.isBuffer(needle)) { - throw new TypeError('The needle has to be a String or a Buffer.') - } - - const needleLength = needle.length - - if (needleLength === 0) { - throw new Error('The needle cannot be an empty String/Buffer.') - } - - if (needleLength > 256) { - throw new Error('The needle cannot have a length bigger than 256.') - } - - this.maxMatches = Infinity - this.matches = 0 - - this._occ = new Array(256) - .fill(needleLength) // Initialize occurrence table. - this._lookbehind_size = 0 - this._needle = needle - this._bufpos = 0 - - this._lookbehind = Buffer.alloc(needleLength) - - // Populate occurrence table with analysis of the needle, - // ignoring last letter. - for (var i = 0; i < needleLength - 1; ++i) { - this._occ[needle[i]] = needleLength - 1 - i - } -} -inherits(SBMH, EventEmitter) - -SBMH.prototype.reset = function () { - this._lookbehind_size = 0 - this.matches = 0 - this._bufpos = 0 -} - -SBMH.prototype.push = function (chunk, pos) { - if (!Buffer.isBuffer(chunk)) { - chunk = Buffer.from(chunk, 'binary') - } - const chlen = chunk.length - this._bufpos = pos || 0 - let r - while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) } - return r -} - -SBMH.prototype._sbmh_feed = function (data) { - const len = data.length - const needle = this._needle - const needleLength = needle.length - const lastNeedleChar = needle[needleLength - 1] - - // Positive: points to a position in `data` - // pos == 3 points to data[3] - // Negative: points to a position in the lookbehind buffer - // pos == -2 points to lookbehind[lookbehind_size - 2] - let pos = -this._lookbehind_size - let ch - - if (pos < 0) { - // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool - // search with character lookup code that considers both the - // lookbehind buffer and the current round's haystack data. - // - // Loop until - // there is a match. - // or until - // we've moved past the position that requires the - // lookbehind buffer. In this case we switch to the - // optimized loop. - // or until - // the character to look at lies outside the haystack. - while (pos < 0 && pos <= len - needleLength) { - ch = this._sbmh_lookup_char(data, pos + needleLength - 1) - - if ( - ch === lastNeedleChar && - this._sbmh_memcmp(data, pos, needleLength - 1) - ) { - this._lookbehind_size = 0 - ++this.matches - this.emit('info', true) - - return (this._bufpos = pos + needleLength) - } - pos += this._occ[ch] - } - - // No match. - - if (pos < 0) { - // There's too few data for Boyer-Moore-Horspool to run, - // so let's use a different algorithm to skip as much as - // we can. - // Forward pos until - // the trailing part of lookbehind + data - // looks like the beginning of the needle - // or until - // pos == 0 - while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos } - } - - if (pos >= 0) { - // Discard lookbehind buffer. - this.emit('info', false, this._lookbehind, 0, this._lookbehind_size) - this._lookbehind_size = 0 - } else { - // Cut off part of the lookbehind buffer that has - // been processed and append the entire haystack - // into it. - const bytesToCutOff = this._lookbehind_size + pos - if (bytesToCutOff > 0) { - // The cut off data is guaranteed not to contain the needle. - this.emit('info', false, this._lookbehind, 0, bytesToCutOff) - } - - this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff, - this._lookbehind_size - bytesToCutOff) - this._lookbehind_size -= bytesToCutOff - - data.copy(this._lookbehind, this._lookbehind_size) - this._lookbehind_size += len - - this._bufpos = len - return len - } - } - - pos += (pos >= 0) * this._bufpos - - // Lookbehind buffer is now empty. We only need to check if the - // needle is in the haystack. - if (data.indexOf(needle, pos) !== -1) { - pos = data.indexOf(needle, pos) - ++this.matches - if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) } - - return (this._bufpos = pos + needleLength) - } else { - pos = len - needleLength - } - - // There was no match. If there's trailing haystack data that we cannot - // match yet using the Boyer-Moore-Horspool algorithm (because the trailing - // data is less than the needle size) then match using a modified - // algorithm that starts matching from the beginning instead of the end. - // Whatever trailing data is left after running this algorithm is added to - // the lookbehind buffer. - while ( - pos < len && - ( - data[pos] !== needle[0] || - ( - (Buffer.compare( - data.subarray(pos, pos + len - pos), - needle.subarray(0, len - pos) - ) !== 0) - ) - ) - ) { - ++pos - } - if (pos < len) { - data.copy(this._lookbehind, 0, pos, pos + (len - pos)) - this._lookbehind_size = len - pos - } - - // Everything until pos is guaranteed not to contain needle data. - if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) } - - this._bufpos = len - return len -} - -SBMH.prototype._sbmh_lookup_char = function (data, pos) { - return (pos < 0) - ? this._lookbehind[this._lookbehind_size + pos] - : data[pos] -} - -SBMH.prototype._sbmh_memcmp = function (data, pos, len) { - for (var i = 0; i < len; ++i) { - if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false } - } - return true -} - -module.exports = SBMH - - -/***/ }), - -/***/ 4455: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const WritableStream = (__nccwpck_require__(7075).Writable) -const { inherits } = __nccwpck_require__(7975) -const Dicer = __nccwpck_require__(6192) - -const MultipartParser = __nccwpck_require__(5110) -const UrlencodedParser = __nccwpck_require__(7053) -const parseParams = __nccwpck_require__(2587) - -function Busboy (opts) { - if (!(this instanceof Busboy)) { return new Busboy(opts) } - - if (typeof opts !== 'object') { - throw new TypeError('Busboy expected an options-Object.') - } - if (typeof opts.headers !== 'object') { - throw new TypeError('Busboy expected an options-Object with headers-attribute.') - } - if (typeof opts.headers['content-type'] !== 'string') { - throw new TypeError('Missing Content-Type-header.') - } - - const { - headers, - ...streamOptions - } = opts - - this.opts = { - autoDestroy: false, - ...streamOptions - } - WritableStream.call(this, this.opts) - - this._done = false - this._parser = this.getParserByHeaders(headers) - this._finished = false -} -inherits(Busboy, WritableStream) - -Busboy.prototype.emit = function (ev) { - if (ev === 'finish') { - if (!this._done) { - this._parser?.end() - return - } else if (this._finished) { - return - } - this._finished = true - } - WritableStream.prototype.emit.apply(this, arguments) -} - -Busboy.prototype.getParserByHeaders = function (headers) { - const parsed = parseParams(headers['content-type']) - - const cfg = { - defCharset: this.opts.defCharset, - fileHwm: this.opts.fileHwm, - headers, - highWaterMark: this.opts.highWaterMark, - isPartAFile: this.opts.isPartAFile, - limits: this.opts.limits, - parsedConType: parsed, - preservePath: this.opts.preservePath - } - - if (MultipartParser.detect.test(parsed[0])) { - return new MultipartParser(this, cfg) - } - if (UrlencodedParser.detect.test(parsed[0])) { - return new UrlencodedParser(this, cfg) - } - throw new Error('Unsupported Content-Type.') -} - -Busboy.prototype._write = function (chunk, encoding, cb) { - this._parser.write(chunk, cb) -} - -module.exports = Busboy -module.exports["default"] = Busboy -module.exports.Busboy = Busboy - -module.exports.Dicer = Dicer - - -/***/ }), - -/***/ 5110: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -// TODO: -// * support 1 nested multipart level -// (see second multipart example here: -// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data) -// * support limits.fieldNameSize -// -- this will require modifications to utils.parseParams - -const { Readable } = __nccwpck_require__(7075) -const { inherits } = __nccwpck_require__(7975) - -const Dicer = __nccwpck_require__(6192) - -const parseParams = __nccwpck_require__(2587) -const decodeText = __nccwpck_require__(4233) -const basename = __nccwpck_require__(2654) -const getLimit = __nccwpck_require__(2291) - -const RE_BOUNDARY = /^boundary$/i -const RE_FIELD = /^form-data$/i -const RE_CHARSET = /^charset$/i -const RE_FILENAME = /^filename$/i -const RE_NAME = /^name$/i - -Multipart.detect = /^multipart\/form-data/i -function Multipart (boy, cfg) { - let i - let len - const self = this - let boundary - const limits = cfg.limits - const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined)) - const parsedConType = cfg.parsedConType || [] - const defCharset = cfg.defCharset || 'utf8' - const preservePath = cfg.preservePath - const fileOpts = { highWaterMark: cfg.fileHwm } - - for (i = 0, len = parsedConType.length; i < len; ++i) { - if (Array.isArray(parsedConType[i]) && - RE_BOUNDARY.test(parsedConType[i][0])) { - boundary = parsedConType[i][1] - break - } - } - - function checkFinished () { - if (nends === 0 && finished && !boy._done) { - finished = false - self.end() - } - } - - if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') } - - const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) - const fileSizeLimit = getLimit(limits, 'fileSize', Infinity) - const filesLimit = getLimit(limits, 'files', Infinity) - const fieldsLimit = getLimit(limits, 'fields', Infinity) - const partsLimit = getLimit(limits, 'parts', Infinity) - const headerPairsLimit = getLimit(limits, 'headerPairs', 2000) - const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024) - - let nfiles = 0 - let nfields = 0 - let nends = 0 - let curFile - let curField - let finished = false - - this._needDrain = false - this._pause = false - this._cb = undefined - this._nparts = 0 - this._boy = boy - - const parserCfg = { - boundary, - maxHeaderPairs: headerPairsLimit, - maxHeaderSize: headerSizeLimit, - partHwm: fileOpts.highWaterMark, - highWaterMark: cfg.highWaterMark - } - - this.parser = new Dicer(parserCfg) - this.parser.on('drain', function () { - self._needDrain = false - if (self._cb && !self._pause) { - const cb = self._cb - self._cb = undefined - cb() - } - }).on('part', function onPart (part) { - if (++self._nparts > partsLimit) { - self.parser.removeListener('part', onPart) - self.parser.on('part', skipPart) - boy.hitPartsLimit = true - boy.emit('partsLimit') - return skipPart(part) - } - - // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let - // us emit 'end' early since we know the part has ended if we are already - // seeing the next part - if (curField) { - const field = curField - field.emit('end') - field.removeAllListeners('end') - } - - part.on('header', function (header) { - let contype - let fieldname - let parsed - let charset - let encoding - let filename - let nsize = 0 - - if (header['content-type']) { - parsed = parseParams(header['content-type'][0]) - if (parsed[0]) { - contype = parsed[0].toLowerCase() - for (i = 0, len = parsed.length; i < len; ++i) { - if (RE_CHARSET.test(parsed[i][0])) { - charset = parsed[i][1].toLowerCase() - break - } - } - } - } - - if (contype === undefined) { contype = 'text/plain' } - if (charset === undefined) { charset = defCharset } - - if (header['content-disposition']) { - parsed = parseParams(header['content-disposition'][0]) - if (!RE_FIELD.test(parsed[0])) { return skipPart(part) } - for (i = 0, len = parsed.length; i < len; ++i) { - if (RE_NAME.test(parsed[i][0])) { - fieldname = parsed[i][1] - } else if (RE_FILENAME.test(parsed[i][0])) { - filename = parsed[i][1] - if (!preservePath) { filename = basename(filename) } - } - } - } else { return skipPart(part) } - - if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' } - - let onData, - onEnd - - if (isPartAFile(fieldname, contype, filename)) { - // file/binary field - if (nfiles === filesLimit) { - if (!boy.hitFilesLimit) { - boy.hitFilesLimit = true - boy.emit('filesLimit') - } - return skipPart(part) - } - - ++nfiles - - if (boy.listenerCount('file') === 0) { - self.parser._ignore() - return - } - - ++nends - const file = new FileStream(fileOpts) - curFile = file - file.on('end', function () { - --nends - self._pause = false - checkFinished() - if (self._cb && !self._needDrain) { - const cb = self._cb - self._cb = undefined - cb() - } - }) - file._read = function (n) { - if (!self._pause) { return } - self._pause = false - if (self._cb && !self._needDrain) { - const cb = self._cb - self._cb = undefined - cb() - } - } - boy.emit('file', fieldname, file, filename, encoding, contype) - - onData = function (data) { - if ((nsize += data.length) > fileSizeLimit) { - const extralen = fileSizeLimit - nsize + data.length - if (extralen > 0) { file.push(data.slice(0, extralen)) } - file.truncated = true - file.bytesRead = fileSizeLimit - part.removeAllListeners('data') - file.emit('limit') - return - } else if (!file.push(data)) { self._pause = true } - - file.bytesRead = nsize - } - - onEnd = function () { - curFile = undefined - file.push(null) - } - } else { - // non-file field - if (nfields === fieldsLimit) { - if (!boy.hitFieldsLimit) { - boy.hitFieldsLimit = true - boy.emit('fieldsLimit') - } - return skipPart(part) - } - - ++nfields - ++nends - let buffer = '' - let truncated = false - curField = part - - onData = function (data) { - if ((nsize += data.length) > fieldSizeLimit) { - const extralen = (fieldSizeLimit - (nsize - data.length)) - buffer += data.toString('binary', 0, extralen) - truncated = true - part.removeAllListeners('data') - } else { buffer += data.toString('binary') } - } - - onEnd = function () { - curField = undefined - if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) } - boy.emit('field', fieldname, buffer, false, truncated, encoding, contype) - --nends - checkFinished() - } - } - - /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become - broken. Streams2/streams3 is a huge black box of confusion, but - somehow overriding the sync state seems to fix things again (and still - seems to work for previous node versions). - */ - part._readableState.sync = false - - part.on('data', onData) - part.on('end', onEnd) - }).on('error', function (err) { - if (curFile) { curFile.emit('error', err) } - }) - }).on('error', function (err) { - boy.emit('error', err) - }).on('finish', function () { - finished = true - checkFinished() - }) -} - -Multipart.prototype.write = function (chunk, cb) { - const r = this.parser.write(chunk) - if (r && !this._pause) { - cb() - } else { - this._needDrain = !r - this._cb = cb - } -} - -Multipart.prototype.end = function () { - const self = this - - if (self.parser.writable) { - self.parser.end() - } else if (!self._boy._done) { - process.nextTick(function () { - self._boy._done = true - self._boy.emit('finish') - }) - } -} - -function skipPart (part) { - part.resume() -} - -function FileStream (opts) { - Readable.call(this, opts) - - this.bytesRead = 0 - - this.truncated = false -} - -inherits(FileStream, Readable) - -FileStream.prototype._read = function (n) {} - -module.exports = Multipart - - -/***/ }), - -/***/ 7053: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - -const Decoder = __nccwpck_require__(7462) -const decodeText = __nccwpck_require__(4233) -const getLimit = __nccwpck_require__(2291) - -const RE_CHARSET = /^charset$/i - -UrlEncoded.detect = /^application\/x-www-form-urlencoded/i -function UrlEncoded (boy, cfg) { - const limits = cfg.limits - const parsedConType = cfg.parsedConType - this.boy = boy - - this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) - this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100) - this.fieldsLimit = getLimit(limits, 'fields', Infinity) - - let charset - for (var i = 0, len = parsedConType.length; i < len; ++i) { - if (Array.isArray(parsedConType[i]) && - RE_CHARSET.test(parsedConType[i][0])) { - charset = parsedConType[i][1].toLowerCase() - break - } - } - - if (charset === undefined) { charset = cfg.defCharset || 'utf8' } - - this.decoder = new Decoder() - this.charset = charset - this._fields = 0 - this._state = 'key' - this._checkingBytes = true - this._bytesKey = 0 - this._bytesVal = 0 - this._key = '' - this._val = '' - this._keyTrunc = false - this._valTrunc = false - this._hitLimit = false -} - -UrlEncoded.prototype.write = function (data, cb) { - if (this._fields === this.fieldsLimit) { - if (!this.boy.hitFieldsLimit) { - this.boy.hitFieldsLimit = true - this.boy.emit('fieldsLimit') - } - return cb() - } - - let idxeq; let idxamp; let i; let p = 0; const len = data.length - - while (p < len) { - if (this._state === 'key') { - idxeq = idxamp = undefined - for (i = p; i < len; ++i) { - if (!this._checkingBytes) { ++p } - if (data[i] === 0x3D/* = */) { - idxeq = i - break - } else if (data[i] === 0x26/* & */) { - idxamp = i - break - } - if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { - this._hitLimit = true - break - } else if (this._checkingBytes) { ++this._bytesKey } - } - - if (idxeq !== undefined) { - // key with assignment - if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) } - this._state = 'val' - - this._hitLimit = false - this._checkingBytes = true - this._val = '' - this._bytesVal = 0 - this._valTrunc = false - this.decoder.reset() - - p = idxeq + 1 - } else if (idxamp !== undefined) { - // key with no assignment - ++this._fields - let key; const keyTrunc = this._keyTrunc - if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key } - - this._hitLimit = false - this._checkingBytes = true - this._key = '' - this._bytesKey = 0 - this._keyTrunc = false - this.decoder.reset() - - if (key.length) { - this.boy.emit('field', decodeText(key, 'binary', this.charset), - '', - keyTrunc, - false) - } - - p = idxamp + 1 - if (this._fields === this.fieldsLimit) { return cb() } - } else if (this._hitLimit) { - // we may not have hit the actual limit if there are encoded bytes... - if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) } - p = i - if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { - // yep, we actually did hit the limit - this._checkingBytes = false - this._keyTrunc = true - } - } else { - if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) } - p = len - } - } else { - idxamp = undefined - for (i = p; i < len; ++i) { - if (!this._checkingBytes) { ++p } - if (data[i] === 0x26/* & */) { - idxamp = i - break - } - if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { - this._hitLimit = true - break - } else if (this._checkingBytes) { ++this._bytesVal } - } - - if (idxamp !== undefined) { - ++this._fields - if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) } - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), - decodeText(this._val, 'binary', this.charset), - this._keyTrunc, - this._valTrunc) - this._state = 'key' - - this._hitLimit = false - this._checkingBytes = true - this._key = '' - this._bytesKey = 0 - this._keyTrunc = false - this.decoder.reset() - - p = idxamp + 1 - if (this._fields === this.fieldsLimit) { return cb() } - } else if (this._hitLimit) { - // we may not have hit the actual limit if there are encoded bytes... - if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) } - p = i - if ((this._val === '' && this.fieldSizeLimit === 0) || - (this._bytesVal = this._val.length) === this.fieldSizeLimit) { - // yep, we actually did hit the limit - this._checkingBytes = false - this._valTrunc = true - } - } else { - if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) } - p = len - } - } - } - cb() -} - -UrlEncoded.prototype.end = function () { - if (this.boy._done) { return } - - if (this._state === 'key' && this._key.length > 0) { - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), - '', - this._keyTrunc, - false) - } else if (this._state === 'val') { - this.boy.emit('field', decodeText(this._key, 'binary', this.charset), - decodeText(this._val, 'binary', this.charset), - this._keyTrunc, - this._valTrunc) - } - this.boy._done = true - this.boy.emit('finish') -} - -module.exports = UrlEncoded - - -/***/ }), - -/***/ 7462: -/***/ ((module) => { - - - -const RE_PLUS = /\+/g - -const HEX = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -] - -function Decoder () { - this.buffer = undefined -} -Decoder.prototype.write = function (str) { - // Replace '+' with ' ' before decoding - str = str.replace(RE_PLUS, ' ') - let res = '' - let i = 0; let p = 0; const len = str.length - for (; i < len; ++i) { - if (this.buffer !== undefined) { - if (!HEX[str.charCodeAt(i)]) { - res += '%' + this.buffer - this.buffer = undefined - --i // retry character - } else { - this.buffer += str[i] - ++p - if (this.buffer.length === 2) { - res += String.fromCharCode(parseInt(this.buffer, 16)) - this.buffer = undefined - } - } - } else if (str[i] === '%') { - if (i > p) { - res += str.substring(p, i) - p = i - } - this.buffer = '' - ++p - } - } - if (p < len && this.buffer === undefined) { res += str.substring(p) } - return res -} -Decoder.prototype.reset = function () { - this.buffer = undefined -} - -module.exports = Decoder - - -/***/ }), - -/***/ 2654: -/***/ ((module) => { - - - -module.exports = function basename (path) { - if (typeof path !== 'string') { return '' } - for (var i = path.length - 1; i >= 0; --i) { - switch (path.charCodeAt(i)) { - case 0x2F: // '/' - case 0x5C: // '\' - path = path.slice(i + 1) - return (path === '..' || path === '.' ? '' : path) - } - } - return (path === '..' || path === '.' ? '' : path) -} - - -/***/ }), - -/***/ 4233: -/***/ (function(module) { - - - -// Node has always utf-8 -const utf8Decoder = new TextDecoder('utf-8') -const textDecoders = new Map([ - ['utf-8', utf8Decoder], - ['utf8', utf8Decoder] -]) - -function getDecoder (charset) { - let lc - while (true) { - switch (charset) { - case 'utf-8': - case 'utf8': - return decoders.utf8 - case 'latin1': - case 'ascii': // TODO: Make these a separate, strict decoder? - case 'us-ascii': - case 'iso-8859-1': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'windows-1252': - case 'iso_8859-1:1987': - case 'cp1252': - case 'x-cp1252': - return decoders.latin1 - case 'utf16le': - case 'utf-16le': - case 'ucs2': - case 'ucs-2': - return decoders.utf16le - case 'base64': - return decoders.base64 - default: - if (lc === undefined) { - lc = true - charset = charset.toLowerCase() - continue - } - return decoders.other.bind(charset) - } - } -} - -const decoders = { - utf8: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.utf8Slice(0, data.length) - }, - - latin1: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - return data - } - return data.latin1Slice(0, data.length) - }, - - utf16le: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.ucs2Slice(0, data.length) - }, - - base64: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.base64Slice(0, data.length) - }, - - other: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - - if (textDecoders.has(this.toString())) { - try { - return textDecoders.get(this).decode(data) - } catch {} - } - return typeof data === 'string' - ? data - : data.toString() - } -} - -function decodeText (text, sourceEncoding, destEncoding) { - if (text) { - return getDecoder(destEncoding)(text, sourceEncoding) - } - return text -} - -module.exports = decodeText - - -/***/ }), - -/***/ 2291: -/***/ ((module) => { - - - -module.exports = function getLimit (limits, name, defaultLimit) { - if ( - !limits || - limits[name] === undefined || - limits[name] === null - ) { return defaultLimit } - - if ( - typeof limits[name] !== 'number' || - isNaN(limits[name]) - ) { throw new TypeError('Limit ' + name + ' is not a valid number') } - - return limits[name] -} - - -/***/ }), - -/***/ 2587: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - - - -const decodeText = __nccwpck_require__(4233) - -const RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g - -const EncodedLookup = { - '%00': '\x00', '%01': '\x01', '%02': '\x02', '%03': '\x03', '%04': '\x04', - '%05': '\x05', '%06': '\x06', '%07': '\x07', '%08': '\x08', '%09': '\x09', - '%0a': '\x0a', '%0A': '\x0a', '%0b': '\x0b', '%0B': '\x0b', '%0c': '\x0c', - '%0C': '\x0c', '%0d': '\x0d', '%0D': '\x0d', '%0e': '\x0e', '%0E': '\x0e', - '%0f': '\x0f', '%0F': '\x0f', '%10': '\x10', '%11': '\x11', '%12': '\x12', - '%13': '\x13', '%14': '\x14', '%15': '\x15', '%16': '\x16', '%17': '\x17', - '%18': '\x18', '%19': '\x19', '%1a': '\x1a', '%1A': '\x1a', '%1b': '\x1b', - '%1B': '\x1b', '%1c': '\x1c', '%1C': '\x1c', '%1d': '\x1d', '%1D': '\x1d', - '%1e': '\x1e', '%1E': '\x1e', '%1f': '\x1f', '%1F': '\x1f', '%20': '\x20', - '%21': '\x21', '%22': '\x22', '%23': '\x23', '%24': '\x24', '%25': '\x25', - '%26': '\x26', '%27': '\x27', '%28': '\x28', '%29': '\x29', '%2a': '\x2a', - '%2A': '\x2a', '%2b': '\x2b', '%2B': '\x2b', '%2c': '\x2c', '%2C': '\x2c', - '%2d': '\x2d', '%2D': '\x2d', '%2e': '\x2e', '%2E': '\x2e', '%2f': '\x2f', - '%2F': '\x2f', '%30': '\x30', '%31': '\x31', '%32': '\x32', '%33': '\x33', - '%34': '\x34', '%35': '\x35', '%36': '\x36', '%37': '\x37', '%38': '\x38', - '%39': '\x39', '%3a': '\x3a', '%3A': '\x3a', '%3b': '\x3b', '%3B': '\x3b', - '%3c': '\x3c', '%3C': '\x3c', '%3d': '\x3d', '%3D': '\x3d', '%3e': '\x3e', - '%3E': '\x3e', '%3f': '\x3f', '%3F': '\x3f', '%40': '\x40', '%41': '\x41', - '%42': '\x42', '%43': '\x43', '%44': '\x44', '%45': '\x45', '%46': '\x46', - '%47': '\x47', '%48': '\x48', '%49': '\x49', '%4a': '\x4a', '%4A': '\x4a', - '%4b': '\x4b', '%4B': '\x4b', '%4c': '\x4c', '%4C': '\x4c', '%4d': '\x4d', - '%4D': '\x4d', '%4e': '\x4e', '%4E': '\x4e', '%4f': '\x4f', '%4F': '\x4f', - '%50': '\x50', '%51': '\x51', '%52': '\x52', '%53': '\x53', '%54': '\x54', - '%55': '\x55', '%56': '\x56', '%57': '\x57', '%58': '\x58', '%59': '\x59', - '%5a': '\x5a', '%5A': '\x5a', '%5b': '\x5b', '%5B': '\x5b', '%5c': '\x5c', - '%5C': '\x5c', '%5d': '\x5d', '%5D': '\x5d', '%5e': '\x5e', '%5E': '\x5e', - '%5f': '\x5f', '%5F': '\x5f', '%60': '\x60', '%61': '\x61', '%62': '\x62', - '%63': '\x63', '%64': '\x64', '%65': '\x65', '%66': '\x66', '%67': '\x67', - '%68': '\x68', '%69': '\x69', '%6a': '\x6a', '%6A': '\x6a', '%6b': '\x6b', - '%6B': '\x6b', '%6c': '\x6c', '%6C': '\x6c', '%6d': '\x6d', '%6D': '\x6d', - '%6e': '\x6e', '%6E': '\x6e', '%6f': '\x6f', '%6F': '\x6f', '%70': '\x70', - '%71': '\x71', '%72': '\x72', '%73': '\x73', '%74': '\x74', '%75': '\x75', - '%76': '\x76', '%77': '\x77', '%78': '\x78', '%79': '\x79', '%7a': '\x7a', - '%7A': '\x7a', '%7b': '\x7b', '%7B': '\x7b', '%7c': '\x7c', '%7C': '\x7c', - '%7d': '\x7d', '%7D': '\x7d', '%7e': '\x7e', '%7E': '\x7e', '%7f': '\x7f', - '%7F': '\x7f', '%80': '\x80', '%81': '\x81', '%82': '\x82', '%83': '\x83', - '%84': '\x84', '%85': '\x85', '%86': '\x86', '%87': '\x87', '%88': '\x88', - '%89': '\x89', '%8a': '\x8a', '%8A': '\x8a', '%8b': '\x8b', '%8B': '\x8b', - '%8c': '\x8c', '%8C': '\x8c', '%8d': '\x8d', '%8D': '\x8d', '%8e': '\x8e', - '%8E': '\x8e', '%8f': '\x8f', '%8F': '\x8f', '%90': '\x90', '%91': '\x91', - '%92': '\x92', '%93': '\x93', '%94': '\x94', '%95': '\x95', '%96': '\x96', - '%97': '\x97', '%98': '\x98', '%99': '\x99', '%9a': '\x9a', '%9A': '\x9a', - '%9b': '\x9b', '%9B': '\x9b', '%9c': '\x9c', '%9C': '\x9c', '%9d': '\x9d', - '%9D': '\x9d', '%9e': '\x9e', '%9E': '\x9e', '%9f': '\x9f', '%9F': '\x9f', - '%a0': '\xa0', '%A0': '\xa0', '%a1': '\xa1', '%A1': '\xa1', '%a2': '\xa2', - '%A2': '\xa2', '%a3': '\xa3', '%A3': '\xa3', '%a4': '\xa4', '%A4': '\xa4', - '%a5': '\xa5', '%A5': '\xa5', '%a6': '\xa6', '%A6': '\xa6', '%a7': '\xa7', - '%A7': '\xa7', '%a8': '\xa8', '%A8': '\xa8', '%a9': '\xa9', '%A9': '\xa9', - '%aa': '\xaa', '%Aa': '\xaa', '%aA': '\xaa', '%AA': '\xaa', '%ab': '\xab', - '%Ab': '\xab', '%aB': '\xab', '%AB': '\xab', '%ac': '\xac', '%Ac': '\xac', - '%aC': '\xac', '%AC': '\xac', '%ad': '\xad', '%Ad': '\xad', '%aD': '\xad', - '%AD': '\xad', '%ae': '\xae', '%Ae': '\xae', '%aE': '\xae', '%AE': '\xae', - '%af': '\xaf', '%Af': '\xaf', '%aF': '\xaf', '%AF': '\xaf', '%b0': '\xb0', - '%B0': '\xb0', '%b1': '\xb1', '%B1': '\xb1', '%b2': '\xb2', '%B2': '\xb2', - '%b3': '\xb3', '%B3': '\xb3', '%b4': '\xb4', '%B4': '\xb4', '%b5': '\xb5', - '%B5': '\xb5', '%b6': '\xb6', '%B6': '\xb6', '%b7': '\xb7', '%B7': '\xb7', - '%b8': '\xb8', '%B8': '\xb8', '%b9': '\xb9', '%B9': '\xb9', '%ba': '\xba', - '%Ba': '\xba', '%bA': '\xba', '%BA': '\xba', '%bb': '\xbb', '%Bb': '\xbb', - '%bB': '\xbb', '%BB': '\xbb', '%bc': '\xbc', '%Bc': '\xbc', '%bC': '\xbc', - '%BC': '\xbc', '%bd': '\xbd', '%Bd': '\xbd', '%bD': '\xbd', '%BD': '\xbd', - '%be': '\xbe', '%Be': '\xbe', '%bE': '\xbe', '%BE': '\xbe', '%bf': '\xbf', - '%Bf': '\xbf', '%bF': '\xbf', '%BF': '\xbf', '%c0': '\xc0', '%C0': '\xc0', - '%c1': '\xc1', '%C1': '\xc1', '%c2': '\xc2', '%C2': '\xc2', '%c3': '\xc3', - '%C3': '\xc3', '%c4': '\xc4', '%C4': '\xc4', '%c5': '\xc5', '%C5': '\xc5', - '%c6': '\xc6', '%C6': '\xc6', '%c7': '\xc7', '%C7': '\xc7', '%c8': '\xc8', - '%C8': '\xc8', '%c9': '\xc9', '%C9': '\xc9', '%ca': '\xca', '%Ca': '\xca', - '%cA': '\xca', '%CA': '\xca', '%cb': '\xcb', '%Cb': '\xcb', '%cB': '\xcb', - '%CB': '\xcb', '%cc': '\xcc', '%Cc': '\xcc', '%cC': '\xcc', '%CC': '\xcc', - '%cd': '\xcd', '%Cd': '\xcd', '%cD': '\xcd', '%CD': '\xcd', '%ce': '\xce', - '%Ce': '\xce', '%cE': '\xce', '%CE': '\xce', '%cf': '\xcf', '%Cf': '\xcf', - '%cF': '\xcf', '%CF': '\xcf', '%d0': '\xd0', '%D0': '\xd0', '%d1': '\xd1', - '%D1': '\xd1', '%d2': '\xd2', '%D2': '\xd2', '%d3': '\xd3', '%D3': '\xd3', - '%d4': '\xd4', '%D4': '\xd4', '%d5': '\xd5', '%D5': '\xd5', '%d6': '\xd6', - '%D6': '\xd6', '%d7': '\xd7', '%D7': '\xd7', '%d8': '\xd8', '%D8': '\xd8', - '%d9': '\xd9', '%D9': '\xd9', '%da': '\xda', '%Da': '\xda', '%dA': '\xda', - '%DA': '\xda', '%db': '\xdb', '%Db': '\xdb', '%dB': '\xdb', '%DB': '\xdb', - '%dc': '\xdc', '%Dc': '\xdc', '%dC': '\xdc', '%DC': '\xdc', '%dd': '\xdd', - '%Dd': '\xdd', '%dD': '\xdd', '%DD': '\xdd', '%de': '\xde', '%De': '\xde', - '%dE': '\xde', '%DE': '\xde', '%df': '\xdf', '%Df': '\xdf', '%dF': '\xdf', - '%DF': '\xdf', '%e0': '\xe0', '%E0': '\xe0', '%e1': '\xe1', '%E1': '\xe1', - '%e2': '\xe2', '%E2': '\xe2', '%e3': '\xe3', '%E3': '\xe3', '%e4': '\xe4', - '%E4': '\xe4', '%e5': '\xe5', '%E5': '\xe5', '%e6': '\xe6', '%E6': '\xe6', - '%e7': '\xe7', '%E7': '\xe7', '%e8': '\xe8', '%E8': '\xe8', '%e9': '\xe9', - '%E9': '\xe9', '%ea': '\xea', '%Ea': '\xea', '%eA': '\xea', '%EA': '\xea', - '%eb': '\xeb', '%Eb': '\xeb', '%eB': '\xeb', '%EB': '\xeb', '%ec': '\xec', - '%Ec': '\xec', '%eC': '\xec', '%EC': '\xec', '%ed': '\xed', '%Ed': '\xed', - '%eD': '\xed', '%ED': '\xed', '%ee': '\xee', '%Ee': '\xee', '%eE': '\xee', - '%EE': '\xee', '%ef': '\xef', '%Ef': '\xef', '%eF': '\xef', '%EF': '\xef', - '%f0': '\xf0', '%F0': '\xf0', '%f1': '\xf1', '%F1': '\xf1', '%f2': '\xf2', - '%F2': '\xf2', '%f3': '\xf3', '%F3': '\xf3', '%f4': '\xf4', '%F4': '\xf4', - '%f5': '\xf5', '%F5': '\xf5', '%f6': '\xf6', '%F6': '\xf6', '%f7': '\xf7', - '%F7': '\xf7', '%f8': '\xf8', '%F8': '\xf8', '%f9': '\xf9', '%F9': '\xf9', - '%fa': '\xfa', '%Fa': '\xfa', '%fA': '\xfa', '%FA': '\xfa', '%fb': '\xfb', - '%Fb': '\xfb', '%fB': '\xfb', '%FB': '\xfb', '%fc': '\xfc', '%Fc': '\xfc', - '%fC': '\xfc', '%FC': '\xfc', '%fd': '\xfd', '%Fd': '\xfd', '%fD': '\xfd', - '%FD': '\xfd', '%fe': '\xfe', '%Fe': '\xfe', '%fE': '\xfe', '%FE': '\xfe', - '%ff': '\xff', '%Ff': '\xff', '%fF': '\xff', '%FF': '\xff' -} - -function encodedReplacer (match) { - return EncodedLookup[match] -} - -const STATE_KEY = 0 -const STATE_VALUE = 1 -const STATE_CHARSET = 2 -const STATE_LANG = 3 - -function parseParams (str) { - const res = [] - let state = STATE_KEY - let charset = '' - let inquote = false - let escaping = false - let p = 0 - let tmp = '' - const len = str.length - - for (var i = 0; i < len; ++i) { - const char = str[i] - if (char === '\\' && inquote) { - if (escaping) { escaping = false } else { - escaping = true - continue - } - } else if (char === '"') { - if (!escaping) { - if (inquote) { - inquote = false - state = STATE_KEY - } else { inquote = true } - continue - } else { escaping = false } - } else { - if (escaping && inquote) { tmp += '\\' } - escaping = false - if ((state === STATE_CHARSET || state === STATE_LANG) && char === "'") { - if (state === STATE_CHARSET) { - state = STATE_LANG - charset = tmp.substring(1) - } else { state = STATE_VALUE } - tmp = '' - continue - } else if (state === STATE_KEY && - (char === '*' || char === '=') && - res.length) { - state = char === '*' - ? STATE_CHARSET - : STATE_VALUE - res[p] = [tmp, undefined] - tmp = '' - continue - } else if (!inquote && char === ';') { - state = STATE_KEY - if (charset) { - if (tmp.length) { - tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), - 'binary', - charset) - } - charset = '' - } else if (tmp.length) { - tmp = decodeText(tmp, 'binary', 'utf8') - } - if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp } - tmp = '' - ++p - continue - } else if (!inquote && (char === ' ' || char === '\t')) { continue } - } - tmp += char - } - if (charset && tmp.length) { - tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), - 'binary', - charset) - } else if (tmp) { - tmp = decodeText(tmp, 'binary', 'utf8') - } - - if (res[p] === undefined) { - if (tmp) { res[p] = tmp } - } else { res[p][1] = tmp } - - return res -} - -module.exports = parseParams - - -/***/ }), - -/***/ 56: -/***/ ((module) => { - -module.exports = /*#__PURE__*/JSON.parse('{"name":"dotenv","version":"16.4.5","description":"Loads environment variables from .env file","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","require":"./lib/main.js","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","lint-readme":"standard-markdown","pretest":"npm run lint && npm run dts-check","test":"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov","prerelease":"npm test","release":"standard-version"},"repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"funding":"https://dotenvx.com","keywords":["dotenv","env",".env","environment","variables","config","settings"],"readmeFilename":"README.md","license":"BSD-2-Clause","devDependencies":{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3","decache":"^4.6.1","sinon":"^14.0.1","standard":"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0","tap":"^16.3.0","tar":"^6.1.11","typescript":"^4.8.4"},"engines":{"node":">=12"},"browser":{"fs":false}}'); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // 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 get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __nccwpck_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __nccwpck_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __nccwpck_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__nccwpck_require__.o(definition, key) && !__nccwpck_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __nccwpck_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __nccwpck_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/compat */ -/******/ -/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = new URL('.', import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/) ? 1 : 0, -1) + "/"; -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; - -// NAMESPACE OBJECT: ./node_modules/@sinclair/typebox/build/esm/type/type/type.mjs -var type_type_namespaceObject = {}; -__nccwpck_require__.r(type_type_namespaceObject); -__nccwpck_require__.d(type_type_namespaceObject, { - Any: () => (Any), - Array: () => (array_Array), - AsyncIterator: () => (src_AsyncIterator), - Awaited: () => (Awaited), - BigInt: () => (bigint_BigInt), - Boolean: () => (boolean_Boolean), - Capitalize: () => (Capitalize), - Composite: () => (Composite), - Const: () => (Const), - Constructor: () => (Constructor), - ConstructorParameters: () => (ConstructorParameters), - Date: () => (date_Date), - Enum: () => (Enum), - Exclude: () => (Exclude), - Extends: () => (Extends), - Extract: () => (Extract), - Function: () => (function_Function), - Index: () => (Index), - InstanceType: () => (InstanceType), - Integer: () => (Integer), - Intersect: () => (Intersect), - Iterator: () => (src_Iterator), - KeyOf: () => (KeyOf), - Literal: () => (Literal), - Lowercase: () => (Lowercase), - Mapped: () => (Mapped), - Module: () => (Module), - Never: () => (Never), - Not: () => (Not), - Null: () => (Null), - Number: () => (number_Number), - Object: () => (object_Object), - Omit: () => (Omit), - Optional: () => (Optional), - Parameters: () => (Parameters), - Partial: () => (Partial), - Pick: () => (Pick), - Promise: () => (promise_Promise), - Readonly: () => (Readonly), - ReadonlyOptional: () => (ReadonlyOptional), - Record: () => (Record), - Recursive: () => (Recursive), - Ref: () => (Ref), - RegExp: () => (regexp_RegExp), - Required: () => (Required), - Rest: () => (Rest), - ReturnType: () => (ReturnType), - String: () => (string_String), - Symbol: () => (symbol_Symbol), - TemplateLiteral: () => (TemplateLiteral), - Transform: () => (Transform), - Tuple: () => (Tuple), - Uint8Array: () => (uint8array_Uint8Array), - Uncapitalize: () => (Uncapitalize), - Undefined: () => (Undefined), - Union: () => (Union), - Unknown: () => (Unknown), - Unsafe: () => (Unsafe), - Uppercase: () => (Uppercase), - Void: () => (Void) -}); - -;// CONCATENATED MODULE: ./node_modules/@ubiquity-os/ubiquity-os-logger/dist/index.js -// src/constants.ts -var COLORS = { - reset: "\x1B[0m", - bright: "\x1B[1m", - dim: "\x1B[2m", - underscore: "\x1B[4m", - blink: "\x1B[5m", - reverse: "\x1B[7m", - hidden: "\x1B[8m", - fgBlack: "\x1B[30m", - fgRed: "\x1B[31m", - fgGreen: "\x1B[32m", - fgYellow: "\x1B[33m", - fgBlue: "\x1B[34m", - fgMagenta: "\x1B[35m", - fgCyan: "\x1B[36m", - fgWhite: "\x1B[37m", - bgBlack: "\x1B[40m", - bgRed: "\x1B[41m", - bgGreen: "\x1B[42m", - bgYellow: "\x1B[43m", - bgBlue: "\x1B[44m", - bgMagenta: "\x1B[45m", - bgCyan: "\x1B[46m", - bgWhite: "\x1B[47m" -}; -var dist_LOG_LEVEL = { - FATAL: "fatal", - ERROR: "error", - INFO: "info", - VERBOSE: "verbose", - DEBUG: "debug" -}; - -// src/pretty-logs.ts -var PrettyLogs = class { - constructor() { - this.ok = this.ok.bind(this); - this.info = this.info.bind(this); - this.error = this.error.bind(this); - this.fatal = this.fatal.bind(this); - this.debug = this.debug.bind(this); - this.verbose = this.verbose.bind(this); - } - fatal(message, metadata) { - this._logWithStack(dist_LOG_LEVEL.FATAL, message, metadata); - } - error(message, metadata) { - this._logWithStack(dist_LOG_LEVEL.ERROR, message, metadata); - } - ok(message, metadata) { - this._logWithStack("ok", message, metadata); - } - info(message, metadata) { - this._logWithStack(dist_LOG_LEVEL.INFO, message, metadata); - } - debug(message, metadata) { - this._logWithStack(dist_LOG_LEVEL.DEBUG, message, metadata); - } - verbose(message, metadata) { - this._logWithStack(dist_LOG_LEVEL.VERBOSE, message, metadata); - } - _logWithStack(type, message, metaData) { - this._log(type, message); - if (typeof metaData === "string") { - this._log(type, metaData); - return; - } - if (metaData) { - const metadata = metaData; - let stack = metadata?.error?.stack || metadata?.stack; - if (!stack) { - const stackTrace = new Error().stack?.split("\n"); - if (stackTrace) { - stackTrace.splice(0, 4); - stack = stackTrace.filter((line) => line.includes(".ts:")).join("\n"); - } - } - const newMetadata = { ...metadata }; - delete newMetadata.message; - delete newMetadata.name; - delete newMetadata.stack; - if (!this._isEmpty(newMetadata)) { - this._log(type, newMetadata); - } - if (typeof stack == "string") { - const prettyStack = this._formatStackTrace(stack, 1); - const colorizedStack = this._colorizeText(prettyStack, COLORS.dim); - this._log(type, colorizedStack); - } else if (stack) { - const prettyStack = this._formatStackTrace(stack.join("\n"), 1); - const colorizedStack = this._colorizeText(prettyStack, COLORS.dim); - this._log(type, colorizedStack); - } else { - throw new Error("Stack is null"); - } - } - } - _colorizeText(text, color) { - if (!color) { - throw new Error(`Invalid color: ${color}`); - } - return color.concat(text).concat(COLORS.reset); - } - _formatStackTrace(stack, linesToRemove = 0, prefix = "") { - const lines = stack.split("\n"); - for (let i = 0; i < linesToRemove; i++) { - lines.shift(); - } - return lines.map((line) => `${prefix}${line.replace(/\s*at\s*/, " \u21B3 ")}`).join("\n"); - } - _isEmpty(obj) { - return !Reflect.ownKeys(obj).some((key) => typeof obj[String(key)] !== "function"); - } - _log(type, message) { - const defaultSymbols = { - fatal: "\xD7", - ok: "\u2713", - error: "\u26A0", - info: "\u203A", - debug: "\u203A\u203A", - verbose: "\u{1F4AC}" - }; - const symbol = defaultSymbols[type]; - const messageFormatted = typeof message === "string" ? message : JSON.stringify(message, null, 2); - const lines = messageFormatted.split("\n"); - const logString = lines.map((line, index) => { - const prefix = index === 0 ? ` ${symbol}` : ` ${" ".repeat(symbol.length)}`; - return `${prefix} ${line}`; - }).join("\n"); - const fullLogString = logString; - const colorMap = { - fatal: ["error", COLORS.fgRed], - ok: ["log", COLORS.fgGreen], - error: ["warn", COLORS.fgYellow], - info: ["info", COLORS.dim], - debug: ["debug", COLORS.fgMagenta], - verbose: ["debug", COLORS.dim] - }; - const _console = console[colorMap[type][0]]; - if (typeof _console === "function" && fullLogString.length > 12) { - _console(this._colorizeText(fullLogString, colorMap[type][1])); - } else if (fullLogString.length <= 12) { - return; - } else { - throw new Error(fullLogString); - } - } -}; - -// src/types/log-types.ts -var dist_LogReturn = class { - logMessage; - metadata; - constructor(logMessage, metadata) { - this.logMessage = logMessage; - this.metadata = metadata; - } -}; - -// src/logs.ts -var dist_Logs = class _Logs { - _maxLevel = -1; - static console; - _log({ level, consoleLog, logMessage, metadata, type }) { - if (this._getNumericLevel(level) <= this._maxLevel) { - consoleLog(logMessage, metadata); - } - return new dist_LogReturn( - { - raw: logMessage, - diff: this._diffColorCommentMessage(type, logMessage), - type, - level - }, - metadata - ); - } - _addDiagnosticInformation(metadata) { - if (!metadata) { - metadata = {}; - } else if (typeof metadata !== "object") { - metadata = { message: metadata }; - } - const stackLines = new Error().stack?.split("\n") || []; - if (stackLines.length > 3) { - const callerLine = stackLines[3]; - const match = callerLine.match(/at (\S+)/); - if (match) { - metadata.caller = match[1]; - } - } - return metadata; - } - ok(log, metadata) { - metadata = this._addDiagnosticInformation(metadata); - return this._log({ - level: dist_LOG_LEVEL.INFO, - consoleLog: _Logs.console.ok, - logMessage: log, - metadata, - type: "ok" - }); - } - info(log, metadata) { - metadata = this._addDiagnosticInformation(metadata); - return this._log({ - level: dist_LOG_LEVEL.INFO, - consoleLog: _Logs.console.info, - logMessage: log, - metadata, - type: "info" - }); - } - error(log, metadata) { - metadata = this._addDiagnosticInformation(metadata); - return this._log({ - level: dist_LOG_LEVEL.ERROR, - consoleLog: _Logs.console.error, - logMessage: log, - metadata, - type: "error" - }); - } - debug(log, metadata) { - metadata = this._addDiagnosticInformation(metadata); - return this._log({ - level: dist_LOG_LEVEL.DEBUG, - consoleLog: _Logs.console.debug, - logMessage: log, - metadata, - type: "debug" - }); - } - fatal(log, metadata) { - if (!metadata) { - metadata = _Logs.convertErrorsIntoObjects(new Error(log)); - const stack = metadata.stack; - stack.splice(1, 1); - metadata.stack = stack; - } - if (metadata instanceof Error) { - metadata = _Logs.convertErrorsIntoObjects(metadata); - const stack = metadata.stack; - stack.splice(1, 1); - metadata.stack = stack; - } - metadata = this._addDiagnosticInformation(metadata); - return this._log({ - level: dist_LOG_LEVEL.FATAL, - consoleLog: _Logs.console.fatal, - logMessage: log, - metadata, - type: "fatal" - }); - } - verbose(log, metadata) { - metadata = this._addDiagnosticInformation(metadata); - return this._log({ - level: dist_LOG_LEVEL.VERBOSE, - consoleLog: _Logs.console.verbose, - logMessage: log, - metadata, - type: "verbose" - }); - } - constructor(logLevel) { - this._maxLevel = this._getNumericLevel(logLevel); - _Logs.console = new PrettyLogs(); - } - _diffColorCommentMessage(type, message) { - const diffPrefix = { - fatal: "-", - // - text in red - ok: "+", - // + text in green - error: "!", - // ! text in orange - info: "#", - // # text in gray - debug: "@@@@" - // @@ text in purple (and bold)@@ - }; - const selected = diffPrefix[type]; - if (selected) { - message = message.trim().split("\n").map((line) => `${selected} ${line}`).join("\n"); - } else if (type === "debug") { - message = message.split("\n").map((line) => `@@ ${line} @@`).join("\n"); - } else { - message = message.split("\n").map((line) => `# ${line}`).join("\n"); - } - const diffHeader = "```diff"; - const diffFooter = "```"; - return [diffHeader, message, diffFooter].join("\n"); - } - _getNumericLevel(level) { - switch (level) { - case dist_LOG_LEVEL.FATAL: - return 0; - case dist_LOG_LEVEL.ERROR: - return 1; - case dist_LOG_LEVEL.INFO: - return 2; - case dist_LOG_LEVEL.VERBOSE: - return 4; - case dist_LOG_LEVEL.DEBUG: - return 5; - default: - return -1; - } - } - static convertErrorsIntoObjects(obj) { - if (obj instanceof Error) { - return { - message: obj.message, - name: obj.name, - stack: obj.stack ? obj.stack.split("\n") : null - }; - } else if (typeof obj === "object" && obj !== null) { - const keys = Object.keys(obj); - keys.forEach((key) => { - obj[key] = this.convertErrorsIntoObjects(obj[key]); - }); - } - return obj; - } -}; - -// src/utils.ts -var ansiEscapeCodes = /\x1b\[\d+m|\s/g; -function cleanLogs(spy) { - const strs = spy.mock.calls.map((call) => call.map((str) => str?.toString()).join(" ")); - return strs.flat().map((str) => cleanLogString(str)); -} -function cleanLogString(logString) { - return logString.replaceAll(ansiEscapeCodes, "").replaceAll(/\n/g, "").replaceAll(/\r/g, "").replaceAll(/\t/g, "").trim(); -} -function cleanSpyLogs(spy) { - return cleanLogs(spy); -} - - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/guard/guard.mjs -// -------------------------------------------------------------------------- -// Iterators -// -------------------------------------------------------------------------- -/** Returns true if this value is an async iterator */ -function IsAsyncIterator(value) { - return IsObject(value) && Symbol.asyncIterator in value; -} -/** Returns true if this value is an iterator */ -function IsIterator(value) { - return IsObject(value) && Symbol.iterator in value; -} -// -------------------------------------------------------------------------- -// Object Instances -// -------------------------------------------------------------------------- -/** Returns true if this value is not an instance of a class */ -function IsStandardObject(value) { - return IsObject(value) && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null); -} -/** Returns true if this value is an instance of a class */ -function IsInstanceObject(value) { - return IsObject(value) && !IsArray(value) && IsFunction(value.constructor) && value.constructor.name !== 'Object'; -} -// -------------------------------------------------------------------------- -// JavaScript -// -------------------------------------------------------------------------- -/** Returns true if this value is a Promise */ -function IsPromise(value) { - return value instanceof Promise; -} -/** Returns true if this value is a Date */ -function IsDate(value) { - return value instanceof Date && Number.isFinite(value.getTime()); -} -/** Returns true if this value is an instance of Map */ -function IsMap(value) { - return value instanceof globalThis.Map; -} -/** Returns true if this value is an instance of Set */ -function IsSet(value) { - return value instanceof globalThis.Set; -} -/** Returns true if this value is RegExp */ -function IsRegExp(value) { - return value instanceof globalThis.RegExp; -} -/** Returns true if this value is a typed array */ -function IsTypedArray(value) { - return ArrayBuffer.isView(value); -} -/** Returns true if the value is a Int8Array */ -function IsInt8Array(value) { - return value instanceof globalThis.Int8Array; -} -/** Returns true if the value is a Uint8Array */ -function IsUint8Array(value) { - return value instanceof globalThis.Uint8Array; -} -/** Returns true if the value is a Uint8ClampedArray */ -function IsUint8ClampedArray(value) { - return value instanceof globalThis.Uint8ClampedArray; -} -/** Returns true if the value is a Int16Array */ -function IsInt16Array(value) { - return value instanceof globalThis.Int16Array; -} -/** Returns true if the value is a Uint16Array */ -function IsUint16Array(value) { - return value instanceof globalThis.Uint16Array; -} -/** Returns true if the value is a Int32Array */ -function IsInt32Array(value) { - return value instanceof globalThis.Int32Array; -} -/** Returns true if the value is a Uint32Array */ -function IsUint32Array(value) { - return value instanceof globalThis.Uint32Array; -} -/** Returns true if the value is a Float32Array */ -function IsFloat32Array(value) { - return value instanceof globalThis.Float32Array; -} -/** Returns true if the value is a Float64Array */ -function IsFloat64Array(value) { - return value instanceof globalThis.Float64Array; -} -/** Returns true if the value is a BigInt64Array */ -function IsBigInt64Array(value) { - return value instanceof globalThis.BigInt64Array; -} -/** Returns true if the value is a BigUint64Array */ -function IsBigUint64Array(value) { - return value instanceof globalThis.BigUint64Array; -} -// -------------------------------------------------------------------------- -// PropertyKey -// -------------------------------------------------------------------------- -/** Returns true if this value has this property key */ -function HasPropertyKey(value, key) { - return key in value; -} -// -------------------------------------------------------------------------- -// Standard -// -------------------------------------------------------------------------- -/** Returns true of this value is an object type */ -function IsObject(value) { - return value !== null && typeof value === 'object'; -} -/** Returns true if this value is an array, but not a typed array */ -function IsArray(value) { - return Array.isArray(value) && !ArrayBuffer.isView(value); -} -/** Returns true if this value is an undefined */ -function IsUndefined(value) { - return value === undefined; -} -/** Returns true if this value is an null */ -function IsNull(value) { - return value === null; -} -/** Returns true if this value is an boolean */ -function IsBoolean(value) { - return typeof value === 'boolean'; -} -/** Returns true if this value is an number */ -function IsNumber(value) { - return typeof value === 'number'; -} -/** Returns true if this value is an integer */ -function IsInteger(value) { - return Number.isInteger(value); -} -/** Returns true if this value is bigint */ -function IsBigInt(value) { - return typeof value === 'bigint'; -} -/** Returns true if this value is string */ -function IsString(value) { - return typeof value === 'string'; -} -/** Returns true if this value is a function */ -function IsFunction(value) { - return typeof value === 'function'; -} -/** Returns true if this value is a symbol */ -function IsSymbol(value) { - return typeof value === 'symbol'; -} -/** Returns true if this value is a value type such as number, string, boolean */ -function IsValueType(value) { - // prettier-ignore - return (IsBigInt(value) || - IsBoolean(value) || - IsNull(value) || - IsNumber(value) || - IsString(value) || - IsSymbol(value) || - IsUndefined(value)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/system/policy.mjs - -var TypeSystemPolicy; -(function (TypeSystemPolicy) { - // ------------------------------------------------------------------ - // TypeSystemPolicy: Instancing - // ------------------------------------------------------------------ - /** - * Configures the instantiation behavior of TypeBox types. The `default` option assigns raw JavaScript - * references for embedded types, which may cause side effects if type properties are explicitly updated - * outside the TypeBox type builder. The `clone` option creates copies of any shared types upon creation, - * preventing unintended side effects. The `freeze` option applies `Object.freeze()` to the type, making - * it fully readonly and immutable. Implementations should use `default` whenever possible, as it is the - * fastest way to instantiate types. The default setting is `default`. - */ - TypeSystemPolicy.InstanceMode = 'default'; - // ------------------------------------------------------------------ - // TypeSystemPolicy: Checking - // ------------------------------------------------------------------ - /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */ - TypeSystemPolicy.ExactOptionalPropertyTypes = false; - /** Sets whether arrays should be treated as a kind of objects. The default is `false` */ - TypeSystemPolicy.AllowArrayObject = false; - /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */ - TypeSystemPolicy.AllowNaN = false; - /** Sets whether `null` should validate for void types. The default is `false` */ - TypeSystemPolicy.AllowNullVoid = false; - /** Checks this value using the ExactOptionalPropertyTypes policy */ - function IsExactOptionalProperty(value, key) { - return TypeSystemPolicy.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined; - } - TypeSystemPolicy.IsExactOptionalProperty = IsExactOptionalProperty; - /** Checks this value using the AllowArrayObjects policy */ - function IsObjectLike(value) { - const isObject = IsObject(value); - return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !IsArray(value); - } - TypeSystemPolicy.IsObjectLike = IsObjectLike; - /** Checks this value as a record using the AllowArrayObjects policy */ - function IsRecordLike(value) { - return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array); - } - TypeSystemPolicy.IsRecordLike = IsRecordLike; - /** Checks this value using the AllowNaN policy */ - function IsNumberLike(value) { - return TypeSystemPolicy.AllowNaN ? IsNumber(value) : Number.isFinite(value); - } - TypeSystemPolicy.IsNumberLike = IsNumberLike; - /** Checks this value using the AllowVoidNull policy */ - function IsVoidLike(value) { - const isUndefined = IsUndefined(value); - return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined; - } - TypeSystemPolicy.IsVoidLike = IsVoidLike; -})(TypeSystemPolicy || (TypeSystemPolicy = {})); - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs -// -------------------------------------------------------------------------- -// PropertyKey -// -------------------------------------------------------------------------- -/** Returns true if this value has this property key */ -function value_HasPropertyKey(value, key) { - return key in value; -} -// -------------------------------------------------------------------------- -// Object Instances -// -------------------------------------------------------------------------- -/** Returns true if this value is an async iterator */ -function value_IsAsyncIterator(value) { - return value_IsObject(value) && !value_IsArray(value) && !value_IsUint8Array(value) && Symbol.asyncIterator in value; -} -/** Returns true if this value is an array */ -function value_IsArray(value) { - return Array.isArray(value); -} -/** Returns true if this value is bigint */ -function value_IsBigInt(value) { - return typeof value === 'bigint'; -} -/** Returns true if this value is a boolean */ -function value_IsBoolean(value) { - return typeof value === 'boolean'; -} -/** Returns true if this value is a Date object */ -function value_IsDate(value) { - return value instanceof globalThis.Date; -} -/** Returns true if this value is a function */ -function value_IsFunction(value) { - return typeof value === 'function'; -} -/** Returns true if this value is an iterator */ -function value_IsIterator(value) { - return value_IsObject(value) && !value_IsArray(value) && !value_IsUint8Array(value) && Symbol.iterator in value; -} -/** Returns true if this value is null */ -function value_IsNull(value) { - return value === null; -} -/** Returns true if this value is number */ -function value_IsNumber(value) { - return typeof value === 'number'; -} -/** Returns true if this value is an object */ -function value_IsObject(value) { - return typeof value === 'object' && value !== null; -} -/** Returns true if this value is RegExp */ -function value_IsRegExp(value) { - return value instanceof globalThis.RegExp; -} -/** Returns true if this value is string */ -function value_IsString(value) { - return typeof value === 'string'; -} -/** Returns true if this value is symbol */ -function value_IsSymbol(value) { - return typeof value === 'symbol'; -} -/** Returns true if this value is a Uint8Array */ -function value_IsUint8Array(value) { - return value instanceof globalThis.Uint8Array; -} -/** Returns true if this value is undefined */ -function value_IsUndefined(value) { - return value === undefined; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs - -function ImmutableArray(value) { - return globalThis.Object.freeze(value).map((value) => Immutable(value)); -} -function ImmutableDate(value) { - return value; -} -function ImmutableUint8Array(value) { - return value; -} -function ImmutableRegExp(value) { - return value; -} -function ImmutableObject(value) { - const result = {}; - for (const key of Object.getOwnPropertyNames(value)) { - result[key] = Immutable(value[key]); - } - for (const key of Object.getOwnPropertySymbols(value)) { - result[key] = Immutable(value[key]); - } - return globalThis.Object.freeze(result); -} -/** Specialized deep immutable value. Applies freeze recursively to the given value */ -// prettier-ignore -function Immutable(value) { - return (value_IsArray(value) ? ImmutableArray(value) : - value_IsDate(value) ? ImmutableDate(value) : - value_IsUint8Array(value) ? ImmutableUint8Array(value) : - value_IsRegExp(value) ? ImmutableRegExp(value) : - value_IsObject(value) ? ImmutableObject(value) : - value); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs - -function ArrayType(value) { - return value.map((value) => Visit(value)); -} -function DateType(value) { - return new Date(value.getTime()); -} -function Uint8ArrayType(value) { - return new Uint8Array(value); -} -function RegExpType(value) { - return new RegExp(value.source, value.flags); -} -function ObjectType(value) { - const result = {}; - for (const key of Object.getOwnPropertyNames(value)) { - result[key] = Visit(value[key]); - } - for (const key of Object.getOwnPropertySymbols(value)) { - result[key] = Visit(value[key]); - } - return result; -} -// prettier-ignore -function Visit(value) { - return (value_IsArray(value) ? ArrayType(value) : - value_IsDate(value) ? DateType(value) : - value_IsUint8Array(value) ? Uint8ArrayType(value) : - value_IsRegExp(value) ? RegExpType(value) : - value_IsObject(value) ? ObjectType(value) : - value); -} -/** Clones a value */ -function Clone(value) { - return Visit(value); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/create/type.mjs - - - -/** Creates TypeBox schematics using the configured InstanceMode */ -function CreateType(schema, options) { - const result = options !== undefined ? { ...options, ...schema } : schema; - switch (TypeSystemPolicy.InstanceMode) { - case 'freeze': - return Immutable(result); - case 'clone': - return Clone(result); - default: - return result; - } -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs -/** Symbol key applied to transform types */ -const TransformKind = Symbol.for('TypeBox.Transform'); -/** Symbol key applied to readonly types */ -const symbols_ReadonlyKind = Symbol.for('TypeBox.Readonly'); -/** Symbol key applied to optional types */ -const OptionalKind = Symbol.for('TypeBox.Optional'); -/** Symbol key applied to types */ -const symbols_Hint = Symbol.for('TypeBox.Hint'); -/** Symbol key applied to types */ -const Kind = Symbol.for('TypeBox.Kind'); - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/any/any.mjs - - -/** `[Json]` Creates an Any type */ -function Any(options) { - return CreateType({ [Kind]: 'Any' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/array/array.mjs - - -/** `[Json]` Creates an Array type */ -function array_Array(items, options) { - return CreateType({ [Kind]: 'Array', type: 'array', items }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs - - -/** `[JavaScript]` Creates a AsyncIterator type */ -function src_AsyncIterator(items, options) { - return CreateType({ [Kind]: 'AsyncIterator', type: 'AsyncIterator', items }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/computed/computed.mjs - - -/** `[Internal]` Creates a deferred computed type. This type is used exclusively in modules to defer resolution of computable types that contain interior references */ -function Computed(target, parameters, options) { - return CreateType({ [Kind]: 'Computed', target, parameters }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/never/never.mjs - - -/** `[Json]` Creates a Never type */ -function Never(options) { - return CreateType({ [Kind]: 'Never', not: {} }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/guard/kind.mjs - - -/** `[Kind-Only]` Returns true if this value has a Readonly symbol */ -function IsReadonly(value) { - return value_IsObject(value) && value[symbols_ReadonlyKind] === 'Readonly'; -} -/** `[Kind-Only]` Returns true if this value has a Optional symbol */ -function IsOptional(value) { - return value_IsObject(value) && value[OptionalKind] === 'Optional'; -} -/** `[Kind-Only]` Returns true if the given value is TAny */ -function IsAny(value) { - return IsKindOf(value, 'Any'); -} -/** `[Kind-Only]` Returns true if the given value is TArray */ -function kind_IsArray(value) { - return IsKindOf(value, 'Array'); -} -/** `[Kind-Only]` Returns true if the given value is TAsyncIterator */ -function kind_IsAsyncIterator(value) { - return IsKindOf(value, 'AsyncIterator'); -} -/** `[Kind-Only]` Returns true if the given value is TBigInt */ -function kind_IsBigInt(value) { - return IsKindOf(value, 'BigInt'); -} -/** `[Kind-Only]` Returns true if the given value is TBoolean */ -function kind_IsBoolean(value) { - return IsKindOf(value, 'Boolean'); -} -/** `[Kind-Only]` Returns true if the given value is TComputed */ -function IsComputed(value) { - return IsKindOf(value, 'Computed'); -} -/** `[Kind-Only]` Returns true if the given value is TConstructor */ -function IsConstructor(value) { - return IsKindOf(value, 'Constructor'); -} -/** `[Kind-Only]` Returns true if the given value is TDate */ -function kind_IsDate(value) { - return IsKindOf(value, 'Date'); -} -/** `[Kind-Only]` Returns true if the given value is TFunction */ -function kind_IsFunction(value) { - return IsKindOf(value, 'Function'); -} -/** `[Kind-Only]` Returns true if the given value is TInteger */ -function IsImport(value) { - return IsKindOf(value, 'Import'); -} -/** `[Kind-Only]` Returns true if the given value is TInteger */ -function kind_IsInteger(value) { - return IsKindOf(value, 'Integer'); -} -/** `[Kind-Only]` Returns true if the given schema is TProperties */ -function IsProperties(value) { - return ValueGuard.IsObject(value); -} -/** `[Kind-Only]` Returns true if the given value is TIntersect */ -function IsIntersect(value) { - return IsKindOf(value, 'Intersect'); -} -/** `[Kind-Only]` Returns true if the given value is TIterator */ -function kind_IsIterator(value) { - return IsKindOf(value, 'Iterator'); -} -/** `[Kind-Only]` Returns true if the given value is a TKind with the given name. */ -function IsKindOf(value, kind) { - return value_IsObject(value) && Kind in value && value[Kind] === kind; -} -/** `[Kind-Only]` Returns true if the given value is TLiteral */ -function IsLiteralString(value) { - return IsLiteral(value) && ValueGuard.IsString(value.const); -} -/** `[Kind-Only]` Returns true if the given value is TLiteral */ -function IsLiteralNumber(value) { - return IsLiteral(value) && ValueGuard.IsNumber(value.const); -} -/** `[Kind-Only]` Returns true if the given value is TLiteral */ -function IsLiteralBoolean(value) { - return IsLiteral(value) && ValueGuard.IsBoolean(value.const); -} -/** `[Kind-Only]` Returns true if the given value is TLiteralValue */ -function IsLiteralValue(value) { - return value_IsBoolean(value) || value_IsNumber(value) || value_IsString(value); -} -/** `[Kind-Only]` Returns true if the given value is TLiteral */ -function IsLiteral(value) { - return IsKindOf(value, 'Literal'); -} -/** `[Kind-Only]` Returns true if the given value is a TMappedKey */ -function IsMappedKey(value) { - return IsKindOf(value, 'MappedKey'); -} -/** `[Kind-Only]` Returns true if the given value is TMappedResult */ -function IsMappedResult(value) { - return IsKindOf(value, 'MappedResult'); -} -/** `[Kind-Only]` Returns true if the given value is TNever */ -function IsNever(value) { - return IsKindOf(value, 'Never'); -} -/** `[Kind-Only]` Returns true if the given value is TNot */ -function IsNot(value) { - return IsKindOf(value, 'Not'); -} -/** `[Kind-Only]` Returns true if the given value is TNull */ -function kind_IsNull(value) { - return IsKindOf(value, 'Null'); -} -/** `[Kind-Only]` Returns true if the given value is TNumber */ -function kind_IsNumber(value) { - return IsKindOf(value, 'Number'); -} -/** `[Kind-Only]` Returns true if the given value is TObject */ -function kind_IsObject(value) { - return IsKindOf(value, 'Object'); -} -/** `[Kind-Only]` Returns true if the given value is TPromise */ -function kind_IsPromise(value) { - return IsKindOf(value, 'Promise'); -} -/** `[Kind-Only]` Returns true if the given value is TRecord */ -function IsRecord(value) { - return IsKindOf(value, 'Record'); -} -/** `[Kind-Only]` Returns true if this value is TRecursive */ -function IsRecursive(value) { - return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive'; -} -/** `[Kind-Only]` Returns true if the given value is TRef */ -function IsRef(value) { - return IsKindOf(value, 'Ref'); -} -/** `[Kind-Only]` Returns true if the given value is TRegExp */ -function kind_IsRegExp(value) { - return IsKindOf(value, 'RegExp'); -} -/** `[Kind-Only]` Returns true if the given value is TString */ -function kind_IsString(value) { - return IsKindOf(value, 'String'); -} -/** `[Kind-Only]` Returns true if the given value is TSymbol */ -function kind_IsSymbol(value) { - return IsKindOf(value, 'Symbol'); -} -/** `[Kind-Only]` Returns true if the given value is TTemplateLiteral */ -function IsTemplateLiteral(value) { - return IsKindOf(value, 'TemplateLiteral'); -} -/** `[Kind-Only]` Returns true if the given value is TThis */ -function IsThis(value) { - return IsKindOf(value, 'This'); -} -/** `[Kind-Only]` Returns true of this value is TTransform */ -function IsTransform(value) { - return value_IsObject(value) && TransformKind in value; -} -/** `[Kind-Only]` Returns true if the given value is TTuple */ -function IsTuple(value) { - return IsKindOf(value, 'Tuple'); -} -/** `[Kind-Only]` Returns true if the given value is TUndefined */ -function kind_IsUndefined(value) { - return IsKindOf(value, 'Undefined'); -} -/** `[Kind-Only]` Returns true if the given value is TUnion */ -function IsUnion(value) { - return IsKindOf(value, 'Union'); -} -/** `[Kind-Only]` Returns true if the given value is TUint8Array */ -function kind_IsUint8Array(value) { - return IsKindOf(value, 'Uint8Array'); -} -/** `[Kind-Only]` Returns true if the given value is TUnknown */ -function IsUnknown(value) { - return IsKindOf(value, 'Unknown'); -} -/** `[Kind-Only]` Returns true if the given value is a raw TUnsafe */ -function IsUnsafe(value) { - return IsKindOf(value, 'Unsafe'); -} -/** `[Kind-Only]` Returns true if the given value is TVoid */ -function IsVoid(value) { - return IsKindOf(value, 'Void'); -} -/** `[Kind-Only]` Returns true if the given value is TKind */ -function IsKind(value) { - return value_IsObject(value) && Kind in value && value_IsString(value[Kind]); -} -/** `[Kind-Only]` Returns true if the given value is TSchema */ -function IsSchema(value) { - // prettier-ignore - return (IsAny(value) || - kind_IsArray(value) || - kind_IsBoolean(value) || - kind_IsBigInt(value) || - kind_IsAsyncIterator(value) || - IsConstructor(value) || - kind_IsDate(value) || - kind_IsFunction(value) || - kind_IsInteger(value) || - IsIntersect(value) || - kind_IsIterator(value) || - IsLiteral(value) || - IsMappedKey(value) || - IsMappedResult(value) || - IsNever(value) || - IsNot(value) || - kind_IsNull(value) || - kind_IsNumber(value) || - kind_IsObject(value) || - kind_IsPromise(value) || - IsRecord(value) || - IsRef(value) || - kind_IsRegExp(value) || - kind_IsString(value) || - kind_IsSymbol(value) || - IsTemplateLiteral(value) || - IsThis(value) || - IsTuple(value) || - kind_IsUndefined(value) || - IsUnion(value) || - kind_IsUint8Array(value) || - IsUnknown(value) || - IsUnsafe(value) || - IsVoid(value) || - IsKind(value)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// IntersectCreate -// ------------------------------------------------------------------ -// prettier-ignore -function IntersectCreate(T, options = {}) { - const allObjects = T.every((schema) => kind_IsObject(schema)); - const clonedUnevaluatedProperties = IsSchema(options.unevaluatedProperties) - ? { unevaluatedProperties: options.unevaluatedProperties } - : {}; - return CreateType((options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects - ? { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', type: 'object', allOf: T } - : { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', allOf: T }), options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.mjs - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -/** `[Json]` Creates an evaluated Intersect type */ -function Intersect(types, options) { - if (types.length === 1) - return CreateType(types[0], options); - if (types.length === 0) - return Never(options); - if (types.some((schema) => IsTransform(schema))) - throw new Error('Cannot intersect transform types'); - return IntersectCreate(types, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/union/union-create.mjs - - -function UnionCreate(T, options) { - return CreateType({ [Kind]: 'Union', anyOf: T }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/union/union.mjs - - - -/** `[Json]` Creates a Union type */ -function Union(types, options) { - // prettier-ignore - return (types.length === 0 ? Never(options) : - types.length === 1 ? CreateType(types[0], options) : - UnionCreate(types, options)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/ref/ref.mjs - - -/** `[Json]` Creates a Ref type. The referenced type must contain a $id */ -function Ref($ref, options) { - return CreateType({ [Kind]: 'Ref', $ref }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.mjs - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function FromComputed(target, parameters) { - return Computed('Awaited', [Computed(target, parameters)]); -} -// prettier-ignore -function FromRef($ref) { - return Computed('Awaited', [Ref($ref)]); -} -// prettier-ignore -function FromIntersect(types) { - return Intersect(FromRest(types)); -} -// prettier-ignore -function FromUnion(types) { - return Union(FromRest(types)); -} -// prettier-ignore -function FromPromise(type) { - return Awaited(type); -} -// prettier-ignore -function FromRest(types) { - return types.map(type => Awaited(type)); -} -/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */ -function Awaited(type, options) { - return CreateType(IsComputed(type) ? FromComputed(type.target, type.parameters) : IsIntersect(type) ? FromIntersect(type.allOf) : IsUnion(type) ? FromUnion(type.anyOf) : kind_IsPromise(type) ? FromPromise(type.item) : IsRef(type) ? FromRef(type.$ref) : type, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.mjs - - -/** `[JavaScript]` Creates a BigInt type */ -function bigint_BigInt(options) { - return CreateType({ [Kind]: 'BigInt', type: 'bigint' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.mjs - - -/** `[Json]` Creates a Boolean type */ -function boolean_Boolean(options) { - return CreateType({ [Kind]: 'Boolean', type: 'boolean' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/discard/discard.mjs -function DiscardKey(value, key) { - const { [key]: _, ...rest } = value; - return rest; -} -/** Discards property keys from the given value. This function returns a shallow Clone. */ -function Discard(value, keys) { - return keys.reduce((acc, key) => DiscardKey(acc, key), value); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs - - -// prettier-ignore -function MappedResult(properties) { - return CreateType({ - [Kind]: 'MappedResult', - properties - }); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs - - -// prettier-ignore -function FromProperties(P, F) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(P)) - Acc[K2] = Optional(P[K2], F); - return Acc; -} -// prettier-ignore -function FromMappedResult(R, F) { - return FromProperties(R.properties, F); -} -// prettier-ignore -function OptionalFromMappedResult(R, F) { - const P = FromMappedResult(R, F); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/optional/optional.mjs - - - - - -function RemoveOptional(schema) { - return CreateType(Discard(schema, [OptionalKind])); -} -function AddOptional(schema) { - return CreateType({ ...schema, [OptionalKind]: 'Optional' }); -} -// prettier-ignore -function OptionalWithFlag(schema, F) { - return (F === false - ? RemoveOptional(schema) - : AddOptional(schema)); -} -/** `[Json]` Creates a Optional property */ -function Optional(schema, enable) { - const F = enable ?? true; - return IsMappedResult(schema) ? OptionalFromMappedResult(schema, F) : OptionalWithFlag(schema, F); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs - - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function IsIntersectOptional(types) { - return types.every(left => IsOptional(left)); -} -// prettier-ignore -function RemoveOptionalFromType(type) { - return (Discard(type, [OptionalKind])); -} -// prettier-ignore -function RemoveOptionalFromRest(types) { - return types.map(left => IsOptional(left) ? RemoveOptionalFromType(left) : left); -} -// prettier-ignore -function ResolveIntersect(types, options) { - return (IsIntersectOptional(types) - ? Optional(IntersectCreate(RemoveOptionalFromRest(types), options)) - : IntersectCreate(RemoveOptionalFromRest(types), options)); -} -/** `[Json]` Creates an evaluated Intersect type */ -function IntersectEvaluated(types, options = {}) { - if (types.length === 1) - return CreateType(types[0], options); - if (types.length === 0) - return Never(options); - if (types.some((schema) => IsTransform(schema))) - throw new Error('Cannot intersect transform types'); - return ResolveIntersect(types, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/literal/literal.mjs - - -/** `[Json]` Creates a Literal type */ -function Literal(value, options) { - return CreateType({ - [Kind]: 'Literal', - const: value, - type: typeof value, - }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs - - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function IsUnionOptional(types) { - return types.some(type => IsOptional(type)); -} -// prettier-ignore -function union_evaluated_RemoveOptionalFromRest(types) { - return types.map(left => IsOptional(left) ? union_evaluated_RemoveOptionalFromType(left) : left); -} -// prettier-ignore -function union_evaluated_RemoveOptionalFromType(T) { - return (Discard(T, [OptionalKind])); -} -// prettier-ignore -function ResolveUnion(types, options) { - const isOptional = IsUnionOptional(types); - return (isOptional - ? Optional(UnionCreate(union_evaluated_RemoveOptionalFromRest(types), options)) - : UnionCreate(union_evaluated_RemoveOptionalFromRest(types), options)); -} -/** `[Json]` Creates an evaluated Union type */ -function UnionEvaluated(T, options) { - // prettier-ignore - return (T.length === 1 ? CreateType(T[0], options) : - T.length === 0 ? Never(options) : - ResolveUnion(T, options)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/error/error.mjs -/** The base Error type thrown for all TypeBox exceptions */ -class error_TypeBoxError extends Error { - constructor(message) { - super(message); - } -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.mjs - -// ------------------------------------------------------------------ -// TemplateLiteralParserError -// ------------------------------------------------------------------ -class TemplateLiteralParserError extends error_TypeBoxError { -} -// ------------------------------------------------------------------- -// Unescape -// -// Unescape for these control characters specifically. Note that this -// function is only called on non union group content, and where we -// still want to allow the user to embed control characters in that -// content. For review. -// ------------------------------------------------------------------- -// prettier-ignore -function Unescape(pattern) { - return pattern - .replace(/\\\$/g, '$') - .replace(/\\\*/g, '*') - .replace(/\\\^/g, '^') - .replace(/\\\|/g, '|') - .replace(/\\\(/g, '(') - .replace(/\\\)/g, ')'); -} -// ------------------------------------------------------------------- -// Control Characters -// ------------------------------------------------------------------- -function IsNonEscaped(pattern, index, char) { - return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92; -} -function IsOpenParen(pattern, index) { - return IsNonEscaped(pattern, index, '('); -} -function IsCloseParen(pattern, index) { - return IsNonEscaped(pattern, index, ')'); -} -function IsSeparator(pattern, index) { - return IsNonEscaped(pattern, index, '|'); -} -// ------------------------------------------------------------------- -// Control Groups -// ------------------------------------------------------------------- -function IsGroup(pattern) { - if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1))) - return false; - let count = 0; - for (let index = 0; index < pattern.length; index++) { - if (IsOpenParen(pattern, index)) - count += 1; - if (IsCloseParen(pattern, index)) - count -= 1; - if (count === 0 && index !== pattern.length - 1) - return false; - } - return true; -} -// prettier-ignore -function InGroup(pattern) { - return pattern.slice(1, pattern.length - 1); -} -// prettier-ignore -function IsPrecedenceOr(pattern) { - let count = 0; - for (let index = 0; index < pattern.length; index++) { - if (IsOpenParen(pattern, index)) - count += 1; - if (IsCloseParen(pattern, index)) - count -= 1; - if (IsSeparator(pattern, index) && count === 0) - return true; - } - return false; -} -// prettier-ignore -function IsPrecedenceAnd(pattern) { - for (let index = 0; index < pattern.length; index++) { - if (IsOpenParen(pattern, index)) - return true; - } - return false; -} -// prettier-ignore -function Or(pattern) { - let [count, start] = [0, 0]; - const expressions = []; - for (let index = 0; index < pattern.length; index++) { - if (IsOpenParen(pattern, index)) - count += 1; - if (IsCloseParen(pattern, index)) - count -= 1; - if (IsSeparator(pattern, index) && count === 0) { - const range = pattern.slice(start, index); - if (range.length > 0) - expressions.push(TemplateLiteralParse(range)); - start = index + 1; - } - } - const range = pattern.slice(start); - if (range.length > 0) - expressions.push(TemplateLiteralParse(range)); - if (expressions.length === 0) - return { type: 'const', const: '' }; - if (expressions.length === 1) - return expressions[0]; - return { type: 'or', expr: expressions }; -} -// prettier-ignore -function And(pattern) { - function Group(value, index) { - if (!IsOpenParen(value, index)) - throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`); - let count = 0; - for (let scan = index; scan < value.length; scan++) { - if (IsOpenParen(value, scan)) - count += 1; - if (IsCloseParen(value, scan)) - count -= 1; - if (count === 0) - return [index, scan]; - } - throw new TemplateLiteralParserError(`TemplateLiteralParser: Unclosed group parens in expression`); - } - function Range(pattern, index) { - for (let scan = index; scan < pattern.length; scan++) { - if (IsOpenParen(pattern, scan)) - return [index, scan]; - } - return [index, pattern.length]; - } - const expressions = []; - for (let index = 0; index < pattern.length; index++) { - if (IsOpenParen(pattern, index)) { - const [start, end] = Group(pattern, index); - const range = pattern.slice(start, end + 1); - expressions.push(TemplateLiteralParse(range)); - index = end; - } - else { - const [start, end] = Range(pattern, index); - const range = pattern.slice(start, end); - if (range.length > 0) - expressions.push(TemplateLiteralParse(range)); - index = end - 1; - } - } - return ((expressions.length === 0) ? { type: 'const', const: '' } : - (expressions.length === 1) ? expressions[0] : - { type: 'and', expr: expressions }); -} -// ------------------------------------------------------------------ -// TemplateLiteralParse -// ------------------------------------------------------------------ -/** Parses a pattern and returns an expression tree */ -function TemplateLiteralParse(pattern) { - // prettier-ignore - return (IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) : - IsPrecedenceOr(pattern) ? Or(pattern) : - IsPrecedenceAnd(pattern) ? And(pattern) : - { type: 'const', const: Unescape(pattern) }); -} -// ------------------------------------------------------------------ -// TemplateLiteralParseExact -// ------------------------------------------------------------------ -/** Parses a pattern and strips forward and trailing ^ and $ */ -function TemplateLiteralParseExact(pattern) { - return TemplateLiteralParse(pattern.slice(1, pattern.length - 1)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.mjs - - -// ------------------------------------------------------------------ -// TemplateLiteralFiniteError -// ------------------------------------------------------------------ -class TemplateLiteralFiniteError extends error_TypeBoxError { -} -// ------------------------------------------------------------------ -// IsTemplateLiteralFiniteCheck -// ------------------------------------------------------------------ -// prettier-ignore -function IsNumberExpression(expression) { - return (expression.type === 'or' && - expression.expr.length === 2 && - expression.expr[0].type === 'const' && - expression.expr[0].const === '0' && - expression.expr[1].type === 'const' && - expression.expr[1].const === '[1-9][0-9]*'); -} -// prettier-ignore -function IsBooleanExpression(expression) { - return (expression.type === 'or' && - expression.expr.length === 2 && - expression.expr[0].type === 'const' && - expression.expr[0].const === 'true' && - expression.expr[1].type === 'const' && - expression.expr[1].const === 'false'); -} -// prettier-ignore -function IsStringExpression(expression) { - return expression.type === 'const' && expression.const === '.*'; -} -// ------------------------------------------------------------------ -// IsTemplateLiteralExpressionFinite -// ------------------------------------------------------------------ -// prettier-ignore -function IsTemplateLiteralExpressionFinite(expression) { - return (IsNumberExpression(expression) || IsStringExpression(expression) ? false : - IsBooleanExpression(expression) ? true : - (expression.type === 'and') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : - (expression.type === 'or') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : - (expression.type === 'const') ? true : - (() => { throw new TemplateLiteralFiniteError(`Unknown expression type`); })()); -} -/** Returns true if this TemplateLiteral resolves to a finite set of values */ -function IsTemplateLiteralFinite(schema) { - const expression = TemplateLiteralParseExact(schema.pattern); - return IsTemplateLiteralExpressionFinite(expression); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.mjs - - - -// ------------------------------------------------------------------ -// TemplateLiteralGenerateError -// ------------------------------------------------------------------ -class TemplateLiteralGenerateError extends error_TypeBoxError { -} -// ------------------------------------------------------------------ -// TemplateLiteralExpressionGenerate -// ------------------------------------------------------------------ -// prettier-ignore -function* GenerateReduce(buffer) { - if (buffer.length === 1) - return yield* buffer[0]; - for (const left of buffer[0]) { - for (const right of GenerateReduce(buffer.slice(1))) { - yield `${left}${right}`; - } - } -} -// prettier-ignore -function* GenerateAnd(expression) { - return yield* GenerateReduce(expression.expr.map((expr) => [...TemplateLiteralExpressionGenerate(expr)])); -} -// prettier-ignore -function* GenerateOr(expression) { - for (const expr of expression.expr) - yield* TemplateLiteralExpressionGenerate(expr); -} -// prettier-ignore -function* GenerateConst(expression) { - return yield expression.const; -} -function* TemplateLiteralExpressionGenerate(expression) { - return expression.type === 'and' - ? yield* GenerateAnd(expression) - : expression.type === 'or' - ? yield* GenerateOr(expression) - : expression.type === 'const' - ? yield* GenerateConst(expression) - : (() => { - throw new TemplateLiteralGenerateError('Unknown expression'); - })(); -} -/** Generates a tuple of strings from the given TemplateLiteral. Returns an empty tuple if infinite. */ -function TemplateLiteralGenerate(schema) { - const expression = TemplateLiteralParseExact(schema.pattern); - // prettier-ignore - return (IsTemplateLiteralExpressionFinite(expression) - ? [...TemplateLiteralExpressionGenerate(expression)] - : []); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function FromTemplateLiteral(templateLiteral) { - const result = TemplateLiteralGenerate(templateLiteral); - return result.map(S => S.toString()); -} -// prettier-ignore -function indexed_property_keys_FromUnion(type) { - const result = []; - for (const left of type) - result.push(...IndexPropertyKeys(left)); - return result; -} -// prettier-ignore -function FromLiteral(T) { - return ([T.toString()] // TS 5.4 observes TLiteralValue as not having a toString() - ); -} -/** Returns a tuple of PropertyKeys derived from the given TSchema */ -// prettier-ignore -function IndexPropertyKeys(type) { - return [...new Set((IsTemplateLiteral(type) ? FromTemplateLiteral(type) : - IsUnion(type) ? indexed_property_keys_FromUnion(type.anyOf) : - IsLiteral(type) ? FromLiteral(type.const) : - kind_IsNumber(type) ? ['[number]'] : - kind_IsInteger(type) ? ['[number]'] : - []))]; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs - - - -// prettier-ignore -function MappedIndexPropertyKey(type, key, options) { - return { [key]: Index(type, [key], Clone(options)) }; -} -// prettier-ignore -function MappedIndexPropertyKeys(type, propertyKeys, options) { - return propertyKeys.reduce((result, left) => { - return { ...result, ...MappedIndexPropertyKey(type, left, options) }; - }, {}); -} -// prettier-ignore -function MappedIndexProperties(type, mappedKey, options) { - return MappedIndexPropertyKeys(type, mappedKey.keys, options); -} -// prettier-ignore -function IndexFromMappedKey(type, mappedKey, options) { - const properties = MappedIndexProperties(type, mappedKey, options); - return MappedResult(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs - - - -// prettier-ignore -function indexed_from_mapped_result_FromProperties(type, properties, options) { - const result = {}; - for (const K2 of Object.getOwnPropertyNames(properties)) { - const keys = IndexPropertyKeys(properties[K2]); - result[K2] = Index(type, keys, options); - } - return result; -} -// prettier-ignore -function indexed_from_mapped_result_FromMappedResult(type, mappedResult, options) { - return indexed_from_mapped_result_FromProperties(type, mappedResult.properties, options); -} -// prettier-ignore -function IndexFromMappedResult(type, mappedResult, options) { - const properties = indexed_from_mapped_result_FromMappedResult(type, mappedResult, options); - return MappedResult(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.mjs - - - - - - -// ------------------------------------------------------------------ -// Infrastructure -// ------------------------------------------------------------------ - - - -// ------------------------------------------------------------------ -// KindGuard -// ------------------------------------------------------------------ - - -// prettier-ignore -function indexed_FromRest(types, key) { - return types.map(left => IndexFromPropertyKey(left, key)); -} -// prettier-ignore -function FromIntersectRest(types) { - return types.filter(left => !IsNever(left)); -} -// prettier-ignore -function indexed_FromIntersect(types, key) { - return (IntersectEvaluated(FromIntersectRest(indexed_FromRest(types, key)))); -} -// prettier-ignore -function FromUnionRest(types) { - return (types.some(L => IsNever(L)) - ? [] - : types); -} -// prettier-ignore -function indexed_FromUnion(types, key) { - return (UnionEvaluated(FromUnionRest(indexed_FromRest(types, key)))); -} -// prettier-ignore -function FromTuple(types, key) { - return (key === '[number]' ? UnionEvaluated(types) : - key in types ? types[key] : - Never()); -} -// prettier-ignore -function FromArray(type, key) { - // ... ? - return (key === '[number]' ? type : Never()); -} -// prettier-ignore -function FromProperty(properties, key) { - return (key in properties ? properties[key] : Never()); -} -// prettier-ignore -function IndexFromPropertyKey(type, key) { - return (IsIntersect(type) ? indexed_FromIntersect(type.allOf, key) : - IsUnion(type) ? indexed_FromUnion(type.anyOf, key) : - IsTuple(type) ? FromTuple(type.items ?? [], key) : - kind_IsArray(type) ? FromArray(type.items, key) : - kind_IsObject(type) ? FromProperty(type.properties, key) : - Never()); -} -// prettier-ignore -function IndexFromPropertyKeys(type, propertyKeys) { - return propertyKeys.map(left => IndexFromPropertyKey(type, left)); -} -// prettier-ignore -function FromType(type, propertyKeys) { - const result = IndexFromPropertyKeys(type, propertyKeys); - return UnionEvaluated(result); -} -// prettier-ignore -function UnionFromPropertyKeys(propertyKeys) { - const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []); - return UnionEvaluated(result); -} -/** `[Json]` Returns an Indexed property type for the given keys */ -// prettier-ignore -function Index(type, key, options) { - const typeKey = value_IsArray(key) ? UnionFromPropertyKeys(key) : key; - const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key; - const isTypeRef = IsRef(type); - const isKeyRef = IsRef(key); - return (IsMappedResult(key) ? IndexFromMappedResult(type, key, options) : - IsMappedKey(key) ? IndexFromMappedKey(type, key, options) : - (isTypeRef && isKeyRef) ? Computed('Index', [type, typeKey], options) : - (!isTypeRef && isKeyRef) ? Computed('Index', [type, typeKey], options) : - (isTypeRef && !isKeyRef) ? Computed('Index', [type, typeKey], options) : - CreateType(FromType(type, propertyKeys), options)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/sets/set.mjs -/** Returns true if element right is in the set of left */ -// prettier-ignore -function SetIncludes(T, S) { - return T.includes(S); -} -/** Returns true if left is a subset of right */ -function SetIsSubset(T, S) { - return T.every((L) => SetIncludes(S, L)); -} -/** Returns a distinct set of elements */ -function SetDistinct(T) { - return [...new Set(T)]; -} -/** Returns the Intersect of the given sets */ -function SetIntersect(T, S) { - return T.filter((L) => S.includes(L)); -} -/** Returns the Union of the given sets */ -function SetUnion(T, S) { - return [...T, ...S]; -} -/** Returns the Complement by omitting elements in T that are in S */ -// prettier-ignore -function SetComplement(T, S) { - return T.filter(L => !S.includes(L)); -} -// prettier-ignore -function SetIntersectManyResolve(T, Init) { - return T.reduce((Acc, L) => { - return SetIntersect(Acc, L); - }, Init); -} -// prettier-ignore -function SetIntersectMany(T) { - return (T.length === 1 - ? T[0] - // Use left to initialize the accumulator for resolve - : T.length > 1 - ? SetIntersectManyResolve(T.slice(1), T[0]) - : []); -} -/** Returns the Union of multiple sets */ -function SetUnionMany(T) { - const Acc = []; - for (const L of T) - Acc.push(...L); - return Acc; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function keyof_property_keys_FromRest(types) { - const result = []; - for (const L of types) - result.push(KeyOfPropertyKeys(L)); - return result; -} -// prettier-ignore -function keyof_property_keys_FromIntersect(types) { - const propertyKeysArray = keyof_property_keys_FromRest(types); - const propertyKeys = SetUnionMany(propertyKeysArray); - return propertyKeys; -} -// prettier-ignore -function keyof_property_keys_FromUnion(types) { - const propertyKeysArray = keyof_property_keys_FromRest(types); - const propertyKeys = SetIntersectMany(propertyKeysArray); - return propertyKeys; -} -// prettier-ignore -function keyof_property_keys_FromTuple(types) { - return types.map((_, indexer) => indexer.toString()); -} -// prettier-ignore -function keyof_property_keys_FromArray(_) { - return (['[number]']); -} -// prettier-ignore -function keyof_property_keys_FromProperties(T) { - return (globalThis.Object.getOwnPropertyNames(T)); -} -// ------------------------------------------------------------------ -// FromPatternProperties -// ------------------------------------------------------------------ -// prettier-ignore -function FromPatternProperties(patternProperties) { - if (!includePatternProperties) - return []; - const patternPropertyKeys = globalThis.Object.getOwnPropertyNames(patternProperties); - return patternPropertyKeys.map(key => { - return (key[0] === '^' && key[key.length - 1] === '$') - ? key.slice(1, key.length - 1) - : key; - }); -} -/** Returns a tuple of PropertyKeys derived from the given TSchema. */ -// prettier-ignore -function KeyOfPropertyKeys(type) { - return (IsIntersect(type) ? keyof_property_keys_FromIntersect(type.allOf) : - IsUnion(type) ? keyof_property_keys_FromUnion(type.anyOf) : - IsTuple(type) ? keyof_property_keys_FromTuple(type.items ?? []) : - kind_IsArray(type) ? keyof_property_keys_FromArray(type.items) : - kind_IsObject(type) ? keyof_property_keys_FromProperties(type.properties) : - IsRecord(type) ? FromPatternProperties(type.patternProperties) : - []); -} -// ---------------------------------------------------------------- -// KeyOfPattern -// ---------------------------------------------------------------- -let includePatternProperties = false; -/** Returns a regular expression pattern derived from the given TSchema */ -function KeyOfPattern(schema) { - includePatternProperties = true; - const keys = KeyOfPropertyKeys(schema); - includePatternProperties = false; - const pattern = keys.map((key) => `(${key})`); - return `^(${pattern.join('|')})$`; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/object/object.mjs - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -function RequiredKeys(properties) { - const keys = []; - for (let key in properties) { - if (!IsOptional(properties[key])) - keys.push(key); - } - return keys; -} -/** `[Json]` Creates an Object type */ -function _Object(properties, options) { - const required = RequiredKeys(properties); - const schematic = required.length > 0 ? { [Kind]: 'Object', type: 'object', properties, required } : { [Kind]: 'Object', type: 'object', properties }; - return CreateType(schematic, options); -} -/** `[Json]` Creates an Object type */ -var object_Object = _Object; - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/composite/composite.mjs - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function CompositeKeys(T) { - const Acc = []; - for (const L of T) - Acc.push(...KeyOfPropertyKeys(L)); - return SetDistinct(Acc); -} -// prettier-ignore -function FilterNever(T) { - return T.filter(L => !IsNever(L)); -} -// prettier-ignore -function CompositeProperty(T, K) { - const Acc = []; - for (const L of T) - Acc.push(...IndexFromPropertyKeys(L, [K])); - return FilterNever(Acc); -} -// prettier-ignore -function CompositeProperties(T, K) { - const Acc = {}; - for (const L of K) { - Acc[L] = IntersectEvaluated(CompositeProperty(T, L)); - } - return Acc; -} -// prettier-ignore -function Composite(T, options) { - const K = CompositeKeys(T); - const P = CompositeProperties(T, K); - const R = object_Object(P, options); - return R; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/date/date.mjs - - -/** `[JavaScript]` Creates a Date type */ -function date_Date(options) { - return CreateType({ [Kind]: 'Date', type: 'Date' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/function/function.mjs - - -/** `[JavaScript]` Creates a Function type */ -function function_Function(parameters, returns, options) { - return CreateType({ [Kind]: 'Function', type: 'Function', parameters, returns }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/null/null.mjs - - -/** `[Json]` Creates a Null type */ -function Null(options) { - return CreateType({ [Kind]: 'Null', type: 'null' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.mjs - - -/** `[JavaScript]` Creates a Symbol type */ -function symbol_Symbol(options) { - return CreateType({ [Kind]: 'Symbol', type: 'symbol' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.mjs - - -/** `[Json]` Creates a Tuple type */ -function Tuple(types, options) { - // prettier-ignore - return CreateType(types.length > 0 ? - { [Kind]: 'Tuple', type: 'array', items: types, additionalItems: false, minItems: types.length, maxItems: types.length } : - { [Kind]: 'Tuple', type: 'array', minItems: types.length, maxItems: types.length }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs - - -// prettier-ignore -function readonly_from_mapped_result_FromProperties(K, F) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(K)) - Acc[K2] = Readonly(K[K2], F); - return Acc; -} -// prettier-ignore -function readonly_from_mapped_result_FromMappedResult(R, F) { - return readonly_from_mapped_result_FromProperties(R.properties, F); -} -// prettier-ignore -function ReadonlyFromMappedResult(R, F) { - const P = readonly_from_mapped_result_FromMappedResult(R, F); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.mjs - - - - - -function RemoveReadonly(schema) { - return CreateType(Discard(schema, [symbols_ReadonlyKind])); -} -function AddReadonly(schema) { - return CreateType({ ...schema, [symbols_ReadonlyKind]: 'Readonly' }); -} -// prettier-ignore -function ReadonlyWithFlag(schema, F) { - return (F === false - ? RemoveReadonly(schema) - : AddReadonly(schema)); -} -/** `[Json]` Creates a Readonly property */ -function Readonly(schema, enable) { - const F = enable ?? true; - return IsMappedResult(schema) ? ReadonlyFromMappedResult(schema, F) : ReadonlyWithFlag(schema, F); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.mjs - - -/** `[JavaScript]` Creates a Undefined type */ -function Undefined(options) { - return CreateType({ [Kind]: 'Undefined', type: 'undefined' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs - - -/** `[JavaScript]` Creates a Uint8Array type */ -function uint8array_Uint8Array(options) { - return CreateType({ [Kind]: 'Uint8Array', type: 'Uint8Array' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.mjs - - -/** `[Json]` Creates an Unknown type */ -function Unknown(options) { - return CreateType({ [Kind]: 'Unknown' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/const/const.mjs - - - - - - - - - - - - - - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function const_FromArray(T) { - return T.map(L => FromValue(L, false)); -} -// prettier-ignore -function const_FromProperties(value) { - const Acc = {}; - for (const K of globalThis.Object.getOwnPropertyNames(value)) - Acc[K] = Readonly(FromValue(value[K], false)); - return Acc; -} -function ConditionalReadonly(T, root) { - return (root === true ? T : Readonly(T)); -} -// prettier-ignore -function FromValue(value, root) { - return (value_IsAsyncIterator(value) ? ConditionalReadonly(Any(), root) : - value_IsIterator(value) ? ConditionalReadonly(Any(), root) : - value_IsArray(value) ? Readonly(Tuple(const_FromArray(value))) : - value_IsUint8Array(value) ? uint8array_Uint8Array() : - value_IsDate(value) ? date_Date() : - value_IsObject(value) ? ConditionalReadonly(object_Object(const_FromProperties(value)), root) : - value_IsFunction(value) ? ConditionalReadonly(function_Function([], Unknown()), root) : - value_IsUndefined(value) ? Undefined() : - value_IsNull(value) ? Null() : - value_IsSymbol(value) ? symbol_Symbol() : - value_IsBigInt(value) ? bigint_BigInt() : - value_IsNumber(value) ? Literal(value) : - value_IsBoolean(value) ? Literal(value) : - value_IsString(value) ? Literal(value) : - object_Object({})); -} -/** `[JavaScript]` Creates a readonly const type from the given value. */ -function Const(T, options) { - return CreateType(FromValue(T, true), options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.mjs - - -/** `[JavaScript]` Creates a Constructor type */ -function Constructor(parameters, returns, options) { - return CreateType({ [Kind]: 'Constructor', type: 'Constructor', parameters, returns }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs - -/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */ -function ConstructorParameters(schema, options) { - return Tuple(schema.parameters, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/enum/enum.mjs - - - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -/** `[Json]` Creates a Enum type */ -function Enum(item, options) { - if (value_IsUndefined(item)) - throw new Error('Enum undefined or empty'); - const values1 = globalThis.Object.getOwnPropertyNames(item) - .filter((key) => isNaN(key)) - .map((key) => item[key]); - const values2 = [...new Set(values1)]; - const anyOf = values2.map((value) => Literal(value)); - return Union(anyOf, { ...options, [symbols_Hint]: 'Enum' }); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/number/number.mjs - - -/** `[Json]` Creates a Number type */ -function number_Number(options) { - return CreateType({ [Kind]: 'Number', type: 'number' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/string/string.mjs - - -/** `[Json]` Creates a String type */ -function string_String(options) { - return CreateType({ [Kind]: 'String', type: 'string' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/union.mjs - - - -/** Returns a Union from the given TemplateLiteral */ -function TemplateLiteralToUnion(schema) { - const R = TemplateLiteralGenerate(schema); - const L = R.map((S) => Literal(S)); - return UnionEvaluated(L); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.mjs -const PatternBoolean = '(true|false)'; -const PatternNumber = '(0|[1-9][0-9]*)'; -const PatternString = '(.*)'; -const PatternNever = '(?!.*)'; -const PatternBooleanExact = (/* unused pure expression or super */ null && (`^${PatternBoolean}$`)); -const PatternNumberExact = `^${PatternNumber}$`; -const PatternStringExact = `^${PatternString}$`; -const PatternNeverExact = `^${PatternNever}$`; - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/guard/type.mjs - - - -class TypeGuardUnknownTypeError extends (/* unused pure expression or super */ null && (TypeBoxError)) { -} -const KnownTypes = [ - 'Any', - 'Array', - 'AsyncIterator', - 'BigInt', - 'Boolean', - 'Computed', - 'Constructor', - 'Date', - 'Enum', - 'Function', - 'Integer', - 'Intersect', - 'Iterator', - 'Literal', - 'MappedKey', - 'MappedResult', - 'Not', - 'Null', - 'Number', - 'Object', - 'Promise', - 'Record', - 'Ref', - 'RegExp', - 'String', - 'Symbol', - 'TemplateLiteral', - 'This', - 'Tuple', - 'Undefined', - 'Union', - 'Uint8Array', - 'Unknown', - 'Void', -]; -function IsPattern(value) { - try { - new RegExp(value); - return true; - } - catch { - return false; - } -} -function IsControlCharacterFree(value) { - if (!value_IsString(value)) - return false; - for (let i = 0; i < value.length; i++) { - const code = value.charCodeAt(i); - if ((code >= 7 && code <= 13) || code === 27 || code === 127) { - return false; - } - } - return true; -} -function IsAdditionalProperties(value) { - return IsOptionalBoolean(value) || type_IsSchema(value); -} -function IsOptionalBigInt(value) { - return value_IsUndefined(value) || value_IsBigInt(value); -} -function IsOptionalNumber(value) { - return value_IsUndefined(value) || value_IsNumber(value); -} -function IsOptionalBoolean(value) { - return value_IsUndefined(value) || value_IsBoolean(value); -} -function IsOptionalString(value) { - return value_IsUndefined(value) || value_IsString(value); -} -function IsOptionalPattern(value) { - return value_IsUndefined(value) || (value_IsString(value) && IsControlCharacterFree(value) && IsPattern(value)); -} -function IsOptionalFormat(value) { - return value_IsUndefined(value) || (value_IsString(value) && IsControlCharacterFree(value)); -} -function IsOptionalSchema(value) { - return value_IsUndefined(value) || type_IsSchema(value); -} -// ------------------------------------------------------------------ -// Modifiers -// ------------------------------------------------------------------ -/** Returns true if this value has a Readonly symbol */ -function type_IsReadonly(value) { - return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly'; -} -/** Returns true if this value has a Optional symbol */ -function type_IsOptional(value) { - return value_IsObject(value) && value[OptionalKind] === 'Optional'; -} -// ------------------------------------------------------------------ -// Types -// ------------------------------------------------------------------ -/** Returns true if the given value is TAny */ -function type_IsAny(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Any') && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is TArray */ -function type_IsArray(value) { - return (type_IsKindOf(value, 'Array') && - value.type === 'array' && - IsOptionalString(value.$id) && - type_IsSchema(value.items) && - IsOptionalNumber(value.minItems) && - IsOptionalNumber(value.maxItems) && - IsOptionalBoolean(value.uniqueItems) && - IsOptionalSchema(value.contains) && - IsOptionalNumber(value.minContains) && - IsOptionalNumber(value.maxContains)); -} -/** Returns true if the given value is TAsyncIterator */ -function type_IsAsyncIterator(value) { - // prettier-ignore - return (type_IsKindOf(value, 'AsyncIterator') && - value.type === 'AsyncIterator' && - IsOptionalString(value.$id) && - type_IsSchema(value.items)); -} -/** Returns true if the given value is TBigInt */ -function type_IsBigInt(value) { - // prettier-ignore - return (type_IsKindOf(value, 'BigInt') && - value.type === 'bigint' && - IsOptionalString(value.$id) && - IsOptionalBigInt(value.exclusiveMaximum) && - IsOptionalBigInt(value.exclusiveMinimum) && - IsOptionalBigInt(value.maximum) && - IsOptionalBigInt(value.minimum) && - IsOptionalBigInt(value.multipleOf)); -} -/** Returns true if the given value is TBoolean */ -function type_IsBoolean(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Boolean') && - value.type === 'boolean' && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is TComputed */ -function type_IsComputed(value) { - return type_IsKindOf(value, 'Computed') && type_IsString(value.target) && ValueGuard.IsArray(value.parameters) && value.parameters.every((schema) => type_IsSchema(schema)); -} -/** Returns true if the given value is TConstructor */ -function type_IsConstructor(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Constructor') && - value.type === 'Constructor' && - IsOptionalString(value.$id) && - value_IsArray(value.parameters) && - value.parameters.every(schema => type_IsSchema(schema)) && - type_IsSchema(value.returns)); -} -/** Returns true if the given value is TDate */ -function type_IsDate(value) { - return (type_IsKindOf(value, 'Date') && - value.type === 'Date' && - IsOptionalString(value.$id) && - IsOptionalNumber(value.exclusiveMaximumTimestamp) && - IsOptionalNumber(value.exclusiveMinimumTimestamp) && - IsOptionalNumber(value.maximumTimestamp) && - IsOptionalNumber(value.minimumTimestamp) && - IsOptionalNumber(value.multipleOfTimestamp)); -} -/** Returns true if the given value is TFunction */ -function type_IsFunction(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Function') && - value.type === 'Function' && - IsOptionalString(value.$id) && - value_IsArray(value.parameters) && - value.parameters.every(schema => type_IsSchema(schema)) && - type_IsSchema(value.returns)); -} -/** Returns true if the given value is TImport */ -function type_IsImport(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Import') && - ValueGuard.HasPropertyKey(value, '$defs') && - ValueGuard.IsObject(value.$defs) && - type_IsProperties(value.$defs) && - ValueGuard.HasPropertyKey(value, '$ref') && - ValueGuard.IsString(value.$ref) && - value.$ref in value.$defs // required - ); -} -/** Returns true if the given value is TInteger */ -function type_IsInteger(value) { - return (type_IsKindOf(value, 'Integer') && - value.type === 'integer' && - IsOptionalString(value.$id) && - IsOptionalNumber(value.exclusiveMaximum) && - IsOptionalNumber(value.exclusiveMinimum) && - IsOptionalNumber(value.maximum) && - IsOptionalNumber(value.minimum) && - IsOptionalNumber(value.multipleOf)); -} -/** Returns true if the given schema is TProperties */ -function type_IsProperties(value) { - // prettier-ignore - return (value_IsObject(value) && - Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && type_IsSchema(schema))); -} -/** Returns true if the given value is TIntersect */ -function type_IsIntersect(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Intersect') && - (value_IsString(value.type) && value.type !== 'object' ? false : true) && - value_IsArray(value.allOf) && - value.allOf.every(schema => type_IsSchema(schema) && !type_IsTransform(schema)) && - IsOptionalString(value.type) && - (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is TIterator */ -function type_IsIterator(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Iterator') && - value.type === 'Iterator' && - IsOptionalString(value.$id) && - type_IsSchema(value.items)); -} -/** Returns true if the given value is a TKind with the given name. */ -function type_IsKindOf(value, kind) { - return value_IsObject(value) && Kind in value && value[Kind] === kind; -} -/** Returns true if the given value is TLiteral */ -function type_IsLiteralString(value) { - return type_IsLiteral(value) && value_IsString(value.const); -} -/** Returns true if the given value is TLiteral */ -function type_IsLiteralNumber(value) { - return type_IsLiteral(value) && value_IsNumber(value.const); -} -/** Returns true if the given value is TLiteral */ -function type_IsLiteralBoolean(value) { - return type_IsLiteral(value) && value_IsBoolean(value.const); -} -/** Returns true if the given value is TLiteral */ -function type_IsLiteral(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Literal') && - IsOptionalString(value.$id) && type_IsLiteralValue(value.const)); -} -/** Returns true if the given value is a TLiteralValue */ -function type_IsLiteralValue(value) { - return value_IsBoolean(value) || value_IsNumber(value) || value_IsString(value); -} -/** Returns true if the given value is a TMappedKey */ -function type_IsMappedKey(value) { - // prettier-ignore - return (type_IsKindOf(value, 'MappedKey') && - value_IsArray(value.keys) && - value.keys.every(key => value_IsNumber(key) || value_IsString(key))); -} -/** Returns true if the given value is TMappedResult */ -function type_IsMappedResult(value) { - // prettier-ignore - return (type_IsKindOf(value, 'MappedResult') && - type_IsProperties(value.properties)); -} -/** Returns true if the given value is TNever */ -function type_IsNever(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Never') && - value_IsObject(value.not) && - Object.getOwnPropertyNames(value.not).length === 0); -} -/** Returns true if the given value is TNot */ -function type_IsNot(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Not') && - type_IsSchema(value.not)); -} -/** Returns true if the given value is TNull */ -function type_IsNull(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Null') && - value.type === 'null' && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is TNumber */ -function type_IsNumber(value) { - return (type_IsKindOf(value, 'Number') && - value.type === 'number' && - IsOptionalString(value.$id) && - IsOptionalNumber(value.exclusiveMaximum) && - IsOptionalNumber(value.exclusiveMinimum) && - IsOptionalNumber(value.maximum) && - IsOptionalNumber(value.minimum) && - IsOptionalNumber(value.multipleOf)); -} -/** Returns true if the given value is TObject */ -function type_IsObject(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Object') && - value.type === 'object' && - IsOptionalString(value.$id) && - type_IsProperties(value.properties) && - IsAdditionalProperties(value.additionalProperties) && - IsOptionalNumber(value.minProperties) && - IsOptionalNumber(value.maxProperties)); -} -/** Returns true if the given value is TPromise */ -function type_IsPromise(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Promise') && - value.type === 'Promise' && - IsOptionalString(value.$id) && - type_IsSchema(value.item)); -} -/** Returns true if the given value is TRecord */ -function type_IsRecord(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Record') && - value.type === 'object' && - IsOptionalString(value.$id) && - IsAdditionalProperties(value.additionalProperties) && - value_IsObject(value.patternProperties) && - ((schema) => { - const keys = Object.getOwnPropertyNames(schema.patternProperties); - return (keys.length === 1 && - IsPattern(keys[0]) && - value_IsObject(schema.patternProperties) && - type_IsSchema(schema.patternProperties[keys[0]])); - })(value)); -} -/** Returns true if this value is TRecursive */ -function type_IsRecursive(value) { - return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive'; -} -/** Returns true if the given value is TRef */ -function type_IsRef(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Ref') && - IsOptionalString(value.$id) && - value_IsString(value.$ref)); -} -/** Returns true if the given value is TRegExp */ -function type_IsRegExp(value) { - // prettier-ignore - return (type_IsKindOf(value, 'RegExp') && - IsOptionalString(value.$id) && - value_IsString(value.source) && - value_IsString(value.flags) && - IsOptionalNumber(value.maxLength) && - IsOptionalNumber(value.minLength)); -} -/** Returns true if the given value is TString */ -function type_IsString(value) { - // prettier-ignore - return (type_IsKindOf(value, 'String') && - value.type === 'string' && - IsOptionalString(value.$id) && - IsOptionalNumber(value.minLength) && - IsOptionalNumber(value.maxLength) && - IsOptionalPattern(value.pattern) && - IsOptionalFormat(value.format)); -} -/** Returns true if the given value is TSymbol */ -function type_IsSymbol(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Symbol') && - value.type === 'symbol' && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is TTemplateLiteral */ -function type_IsTemplateLiteral(value) { - // prettier-ignore - return (type_IsKindOf(value, 'TemplateLiteral') && - value.type === 'string' && - value_IsString(value.pattern) && - value.pattern[0] === '^' && - value.pattern[value.pattern.length - 1] === '$'); -} -/** Returns true if the given value is TThis */ -function type_IsThis(value) { - // prettier-ignore - return (type_IsKindOf(value, 'This') && - IsOptionalString(value.$id) && - value_IsString(value.$ref)); -} -/** Returns true of this value is TTransform */ -function type_IsTransform(value) { - return value_IsObject(value) && TransformKind in value; -} -/** Returns true if the given value is TTuple */ -function type_IsTuple(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Tuple') && - value.type === 'array' && - IsOptionalString(value.$id) && - value_IsNumber(value.minItems) && - value_IsNumber(value.maxItems) && - value.minItems === value.maxItems && - (( // empty - value_IsUndefined(value.items) && - value_IsUndefined(value.additionalItems) && - value.minItems === 0) || (value_IsArray(value.items) && - value.items.every(schema => type_IsSchema(schema))))); -} -/** Returns true if the given value is TUndefined */ -function type_IsUndefined(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Undefined') && - value.type === 'undefined' && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is TUnion[]> */ -function IsUnionLiteral(value) { - return type_IsUnion(value) && value.anyOf.every((schema) => type_IsLiteralString(schema) || type_IsLiteralNumber(schema)); -} -/** Returns true if the given value is TUnion */ -function type_IsUnion(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Union') && - IsOptionalString(value.$id) && - value_IsObject(value) && - value_IsArray(value.anyOf) && - value.anyOf.every(schema => type_IsSchema(schema))); -} -/** Returns true if the given value is TUint8Array */ -function type_IsUint8Array(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Uint8Array') && - value.type === 'Uint8Array' && - IsOptionalString(value.$id) && - IsOptionalNumber(value.minByteLength) && - IsOptionalNumber(value.maxByteLength)); -} -/** Returns true if the given value is TUnknown */ -function type_IsUnknown(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Unknown') && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is a raw TUnsafe */ -function type_IsUnsafe(value) { - return type_IsKindOf(value, 'Unsafe'); -} -/** Returns true if the given value is TVoid */ -function type_IsVoid(value) { - // prettier-ignore - return (type_IsKindOf(value, 'Void') && - value.type === 'void' && - IsOptionalString(value.$id)); -} -/** Returns true if the given value is TKind */ -function type_IsKind(value) { - return value_IsObject(value) && Kind in value && value_IsString(value[Kind]) && !KnownTypes.includes(value[Kind]); -} -/** Returns true if the given value is TSchema */ -function type_IsSchema(value) { - // prettier-ignore - return (value_IsObject(value)) && (type_IsAny(value) || - type_IsArray(value) || - type_IsBoolean(value) || - type_IsBigInt(value) || - type_IsAsyncIterator(value) || - type_IsConstructor(value) || - type_IsDate(value) || - type_IsFunction(value) || - type_IsInteger(value) || - type_IsIntersect(value) || - type_IsIterator(value) || - type_IsLiteral(value) || - type_IsMappedKey(value) || - type_IsMappedResult(value) || - type_IsNever(value) || - type_IsNot(value) || - type_IsNull(value) || - type_IsNumber(value) || - type_IsObject(value) || - type_IsPromise(value) || - type_IsRecord(value) || - type_IsRef(value) || - type_IsRegExp(value) || - type_IsString(value) || - type_IsSymbol(value) || - type_IsTemplateLiteral(value) || - type_IsThis(value) || - type_IsTuple(value) || - type_IsUndefined(value) || - type_IsUnion(value) || - type_IsUint8Array(value) || - type_IsUnknown(value) || - type_IsUnsafe(value) || - type_IsVoid(value) || - type_IsKind(value)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.mjs - - - - - - - - - - -class ExtendsResolverError extends error_TypeBoxError { -} -var ExtendsResult; -(function (ExtendsResult) { - ExtendsResult[ExtendsResult["Union"] = 0] = "Union"; - ExtendsResult[ExtendsResult["True"] = 1] = "True"; - ExtendsResult[ExtendsResult["False"] = 2] = "False"; -})(ExtendsResult || (ExtendsResult = {})); -// ------------------------------------------------------------------ -// IntoBooleanResult -// ------------------------------------------------------------------ -// prettier-ignore -function IntoBooleanResult(result) { - return result === ExtendsResult.False ? result : ExtendsResult.True; -} -// ------------------------------------------------------------------ -// Throw -// ------------------------------------------------------------------ -// prettier-ignore -function Throw(message) { - throw new ExtendsResolverError(message); -} -// ------------------------------------------------------------------ -// StructuralRight -// ------------------------------------------------------------------ -// prettier-ignore -function IsStructuralRight(right) { - return (type_IsNever(right) || - type_IsIntersect(right) || - type_IsUnion(right) || - type_IsUnknown(right) || - type_IsAny(right)); -} -// prettier-ignore -function StructuralRight(left, right) { - return (type_IsNever(right) ? FromNeverRight(left, right) : - type_IsIntersect(right) ? FromIntersectRight(left, right) : - type_IsUnion(right) ? FromUnionRight(left, right) : - type_IsUnknown(right) ? FromUnknownRight(left, right) : - type_IsAny(right) ? FromAnyRight(left, right) : - Throw('StructuralRight')); -} -// ------------------------------------------------------------------ -// Any -// ------------------------------------------------------------------ -// prettier-ignore -function FromAnyRight(left, right) { - return ExtendsResult.True; -} -// prettier-ignore -function FromAny(left, right) { - return (type_IsIntersect(right) ? FromIntersectRight(left, right) : - (type_IsUnion(right) && right.anyOf.some((schema) => type_IsAny(schema) || type_IsUnknown(schema))) ? ExtendsResult.True : - type_IsUnion(right) ? ExtendsResult.Union : - type_IsUnknown(right) ? ExtendsResult.True : - type_IsAny(right) ? ExtendsResult.True : - ExtendsResult.Union); -} -// ------------------------------------------------------------------ -// Array -// ------------------------------------------------------------------ -// prettier-ignore -function FromArrayRight(left, right) { - return (type_IsUnknown(left) ? ExtendsResult.False : - type_IsAny(left) ? ExtendsResult.Union : - type_IsNever(left) ? ExtendsResult.True : - ExtendsResult.False); -} -// prettier-ignore -function extends_check_FromArray(left, right) { - return (type_IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True : - IsStructuralRight(right) ? StructuralRight(left, right) : - !type_IsArray(right) ? ExtendsResult.False : - IntoBooleanResult(extends_check_Visit(left.items, right.items))); -} -// ------------------------------------------------------------------ -// AsyncIterator -// ------------------------------------------------------------------ -// prettier-ignore -function FromAsyncIterator(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - !type_IsAsyncIterator(right) ? ExtendsResult.False : - IntoBooleanResult(extends_check_Visit(left.items, right.items))); -} -// ------------------------------------------------------------------ -// BigInt -// ------------------------------------------------------------------ -// prettier-ignore -function FromBigInt(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsBigInt(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Boolean -// ------------------------------------------------------------------ -// prettier-ignore -function FromBooleanRight(left, right) { - return (type_IsLiteralBoolean(left) ? ExtendsResult.True : - type_IsBoolean(left) ? ExtendsResult.True : - ExtendsResult.False); -} -// prettier-ignore -function FromBoolean(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsBoolean(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Constructor -// ------------------------------------------------------------------ -// prettier-ignore -function FromConstructor(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - !type_IsConstructor(right) ? ExtendsResult.False : - left.parameters.length > right.parameters.length ? ExtendsResult.False : - (!left.parameters.every((schema, index) => IntoBooleanResult(extends_check_Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False : - IntoBooleanResult(extends_check_Visit(left.returns, right.returns))); -} -// ------------------------------------------------------------------ -// Date -// ------------------------------------------------------------------ -// prettier-ignore -function FromDate(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsDate(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Function -// ------------------------------------------------------------------ -// prettier-ignore -function FromFunction(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - !type_IsFunction(right) ? ExtendsResult.False : - left.parameters.length > right.parameters.length ? ExtendsResult.False : - (!left.parameters.every((schema, index) => IntoBooleanResult(extends_check_Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False : - IntoBooleanResult(extends_check_Visit(left.returns, right.returns))); -} -// ------------------------------------------------------------------ -// Integer -// ------------------------------------------------------------------ -// prettier-ignore -function FromIntegerRight(left, right) { - return (type_IsLiteral(left) && value_IsNumber(left.const) ? ExtendsResult.True : - type_IsNumber(left) || type_IsInteger(left) ? ExtendsResult.True : - ExtendsResult.False); -} -// prettier-ignore -function FromInteger(left, right) { - return (type_IsInteger(right) || type_IsNumber(right) ? ExtendsResult.True : - IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Intersect -// ------------------------------------------------------------------ -// prettier-ignore -function FromIntersectRight(left, right) { - return right.allOf.every((schema) => extends_check_Visit(left, schema) === ExtendsResult.True) - ? ExtendsResult.True - : ExtendsResult.False; -} -// prettier-ignore -function extends_check_FromIntersect(left, right) { - return left.allOf.some((schema) => extends_check_Visit(schema, right) === ExtendsResult.True) - ? ExtendsResult.True - : ExtendsResult.False; -} -// ------------------------------------------------------------------ -// Iterator -// ------------------------------------------------------------------ -// prettier-ignore -function FromIterator(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - !type_IsIterator(right) ? ExtendsResult.False : - IntoBooleanResult(extends_check_Visit(left.items, right.items))); -} -// ------------------------------------------------------------------ -// Literal -// ------------------------------------------------------------------ -// prettier-ignore -function extends_check_FromLiteral(left, right) { - return (type_IsLiteral(right) && right.const === left.const ? ExtendsResult.True : - IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsString(right) ? FromStringRight(left, right) : - type_IsNumber(right) ? FromNumberRight(left, right) : - type_IsInteger(right) ? FromIntegerRight(left, right) : - type_IsBoolean(right) ? FromBooleanRight(left, right) : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Never -// ------------------------------------------------------------------ -// prettier-ignore -function FromNeverRight(left, right) { - return ExtendsResult.False; -} -// prettier-ignore -function FromNever(left, right) { - return ExtendsResult.True; -} -// ------------------------------------------------------------------ -// Not -// ------------------------------------------------------------------ -// prettier-ignore -function UnwrapTNot(schema) { - let [current, depth] = [schema, 0]; - while (true) { - if (!type_IsNot(current)) - break; - current = current.not; - depth += 1; - } - return depth % 2 === 0 ? current : Unknown(); -} -// prettier-ignore -function FromNot(left, right) { - // TypeScript has no concept of negated types, and attempts to correctly check the negated - // type at runtime would put TypeBox at odds with TypeScripts ability to statically infer - // the type. Instead we unwrap to either unknown or T and continue evaluating. - // prettier-ignore - return (type_IsNot(left) ? extends_check_Visit(UnwrapTNot(left), right) : - type_IsNot(right) ? extends_check_Visit(left, UnwrapTNot(right)) : - Throw('Invalid fallthrough for Not')); -} -// ------------------------------------------------------------------ -// Null -// ------------------------------------------------------------------ -// prettier-ignore -function FromNull(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsNull(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Number -// ------------------------------------------------------------------ -// prettier-ignore -function FromNumberRight(left, right) { - return (type_IsLiteralNumber(left) ? ExtendsResult.True : - type_IsNumber(left) || type_IsInteger(left) ? ExtendsResult.True : - ExtendsResult.False); -} -// prettier-ignore -function FromNumber(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsInteger(right) || type_IsNumber(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Object -// ------------------------------------------------------------------ -// prettier-ignore -function IsObjectPropertyCount(schema, count) { - return Object.getOwnPropertyNames(schema.properties).length === count; -} -// prettier-ignore -function IsObjectStringLike(schema) { - return IsObjectArrayLike(schema); -} -// prettier-ignore -function IsObjectSymbolLike(schema) { - return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'description' in schema.properties && type_IsUnion(schema.properties.description) && schema.properties.description.anyOf.length === 2 && ((type_IsString(schema.properties.description.anyOf[0]) && - type_IsUndefined(schema.properties.description.anyOf[1])) || (type_IsString(schema.properties.description.anyOf[1]) && - type_IsUndefined(schema.properties.description.anyOf[0])))); -} -// prettier-ignore -function IsObjectNumberLike(schema) { - return IsObjectPropertyCount(schema, 0); -} -// prettier-ignore -function IsObjectBooleanLike(schema) { - return IsObjectPropertyCount(schema, 0); -} -// prettier-ignore -function IsObjectBigIntLike(schema) { - return IsObjectPropertyCount(schema, 0); -} -// prettier-ignore -function IsObjectDateLike(schema) { - return IsObjectPropertyCount(schema, 0); -} -// prettier-ignore -function IsObjectUint8ArrayLike(schema) { - return IsObjectArrayLike(schema); -} -// prettier-ignore -function IsObjectFunctionLike(schema) { - const length = number_Number(); - return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(extends_check_Visit(schema.properties['length'], length)) === ExtendsResult.True); -} -// prettier-ignore -function IsObjectConstructorLike(schema) { - return IsObjectPropertyCount(schema, 0); -} -// prettier-ignore -function IsObjectArrayLike(schema) { - const length = number_Number(); - return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(extends_check_Visit(schema.properties['length'], length)) === ExtendsResult.True); -} -// prettier-ignore -function IsObjectPromiseLike(schema) { - const then = function_Function([Any()], Any()); - return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'then' in schema.properties && IntoBooleanResult(extends_check_Visit(schema.properties['then'], then)) === ExtendsResult.True); -} -// ------------------------------------------------------------------ -// Property -// ------------------------------------------------------------------ -// prettier-ignore -function Property(left, right) { - return (extends_check_Visit(left, right) === ExtendsResult.False ? ExtendsResult.False : - type_IsOptional(left) && !type_IsOptional(right) ? ExtendsResult.False : - ExtendsResult.True); -} -// prettier-ignore -function FromObjectRight(left, right) { - return (type_IsUnknown(left) ? ExtendsResult.False : - type_IsAny(left) ? ExtendsResult.Union : (type_IsNever(left) || - (type_IsLiteralString(left) && IsObjectStringLike(right)) || - (type_IsLiteralNumber(left) && IsObjectNumberLike(right)) || - (type_IsLiteralBoolean(left) && IsObjectBooleanLike(right)) || - (type_IsSymbol(left) && IsObjectSymbolLike(right)) || - (type_IsBigInt(left) && IsObjectBigIntLike(right)) || - (type_IsString(left) && IsObjectStringLike(right)) || - (type_IsSymbol(left) && IsObjectSymbolLike(right)) || - (type_IsNumber(left) && IsObjectNumberLike(right)) || - (type_IsInteger(left) && IsObjectNumberLike(right)) || - (type_IsBoolean(left) && IsObjectBooleanLike(right)) || - (type_IsUint8Array(left) && IsObjectUint8ArrayLike(right)) || - (type_IsDate(left) && IsObjectDateLike(right)) || - (type_IsConstructor(left) && IsObjectConstructorLike(right)) || - (type_IsFunction(left) && IsObjectFunctionLike(right))) ? ExtendsResult.True : - (type_IsRecord(left) && type_IsString(RecordKey(left))) ? (() => { - // When expressing a Record with literal key values, the Record is converted into a Object with - // the Hint assigned as `Record`. This is used to invert the extends logic. - return right[symbols_Hint] === 'Record' ? ExtendsResult.True : ExtendsResult.False; - })() : - (type_IsRecord(left) && type_IsNumber(RecordKey(left))) ? (() => { - return IsObjectPropertyCount(right, 0) ? ExtendsResult.True : ExtendsResult.False; - })() : - ExtendsResult.False); -} -// prettier-ignore -function FromObject(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - !type_IsObject(right) ? ExtendsResult.False : - (() => { - for (const key of Object.getOwnPropertyNames(right.properties)) { - if (!(key in left.properties) && !type_IsOptional(right.properties[key])) { - return ExtendsResult.False; - } - if (type_IsOptional(right.properties[key])) { - return ExtendsResult.True; - } - if (Property(left.properties[key], right.properties[key]) === ExtendsResult.False) { - return ExtendsResult.False; - } - } - return ExtendsResult.True; - })()); -} -// ------------------------------------------------------------------ -// Promise -// ------------------------------------------------------------------ -// prettier-ignore -function extends_check_FromPromise(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) && IsObjectPromiseLike(right) ? ExtendsResult.True : - !type_IsPromise(right) ? ExtendsResult.False : - IntoBooleanResult(extends_check_Visit(left.item, right.item))); -} -// ------------------------------------------------------------------ -// Record -// ------------------------------------------------------------------ -// prettier-ignore -function RecordKey(schema) { - return (PatternNumberExact in schema.patternProperties ? number_Number() : - PatternStringExact in schema.patternProperties ? string_String() : - Throw('Unknown record key pattern')); -} -// prettier-ignore -function RecordValue(schema) { - return (PatternNumberExact in schema.patternProperties ? schema.patternProperties[PatternNumberExact] : - PatternStringExact in schema.patternProperties ? schema.patternProperties[PatternStringExact] : - Throw('Unable to get record value schema')); -} -// prettier-ignore -function FromRecordRight(left, right) { - const [Key, Value] = [RecordKey(right), RecordValue(right)]; - return ((type_IsLiteralString(left) && type_IsNumber(Key) && IntoBooleanResult(extends_check_Visit(left, Value)) === ExtendsResult.True) ? ExtendsResult.True : - type_IsUint8Array(left) && type_IsNumber(Key) ? extends_check_Visit(left, Value) : - type_IsString(left) && type_IsNumber(Key) ? extends_check_Visit(left, Value) : - type_IsArray(left) && type_IsNumber(Key) ? extends_check_Visit(left, Value) : - type_IsObject(left) ? (() => { - for (const key of Object.getOwnPropertyNames(left.properties)) { - if (Property(Value, left.properties[key]) === ExtendsResult.False) { - return ExtendsResult.False; - } - } - return ExtendsResult.True; - })() : - ExtendsResult.False); -} -// prettier-ignore -function FromRecord(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - !type_IsRecord(right) ? ExtendsResult.False : - extends_check_Visit(RecordValue(left), RecordValue(right))); -} -// ------------------------------------------------------------------ -// RegExp -// ------------------------------------------------------------------ -// prettier-ignore -function FromRegExp(left, right) { - // Note: RegExp types evaluate as strings, not RegExp objects. - // Here we remap either into string and continue evaluating. - const L = type_IsRegExp(left) ? string_String() : left; - const R = type_IsRegExp(right) ? string_String() : right; - return extends_check_Visit(L, R); -} -// ------------------------------------------------------------------ -// String -// ------------------------------------------------------------------ -// prettier-ignore -function FromStringRight(left, right) { - return (type_IsLiteral(left) && value_IsString(left.const) ? ExtendsResult.True : - type_IsString(left) ? ExtendsResult.True : - ExtendsResult.False); -} -// prettier-ignore -function FromString(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsString(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Symbol -// ------------------------------------------------------------------ -// prettier-ignore -function FromSymbol(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsSymbol(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// TemplateLiteral -// ------------------------------------------------------------------ -// prettier-ignore -function extends_check_FromTemplateLiteral(left, right) { - // TemplateLiteral types are resolved to either unions for finite expressions or string - // for infinite expressions. Here we call to TemplateLiteralResolver to resolve for - // either type and continue evaluating. - return (type_IsTemplateLiteral(left) ? extends_check_Visit(TemplateLiteralToUnion(left), right) : - type_IsTemplateLiteral(right) ? extends_check_Visit(left, TemplateLiteralToUnion(right)) : - Throw('Invalid fallthrough for TemplateLiteral')); -} -// ------------------------------------------------------------------ -// Tuple -// ------------------------------------------------------------------ -// prettier-ignore -function IsArrayOfTuple(left, right) { - return (type_IsArray(right) && - left.items !== undefined && - left.items.every((schema) => extends_check_Visit(schema, right.items) === ExtendsResult.True)); -} -// prettier-ignore -function FromTupleRight(left, right) { - return (type_IsNever(left) ? ExtendsResult.True : - type_IsUnknown(left) ? ExtendsResult.False : - type_IsAny(left) ? ExtendsResult.Union : - ExtendsResult.False); -} -// prettier-ignore -function extends_check_FromTuple(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True : - type_IsArray(right) && IsArrayOfTuple(left, right) ? ExtendsResult.True : - !type_IsTuple(right) ? ExtendsResult.False : - (value_IsUndefined(left.items) && !value_IsUndefined(right.items)) || (!value_IsUndefined(left.items) && value_IsUndefined(right.items)) ? ExtendsResult.False : - (value_IsUndefined(left.items) && !value_IsUndefined(right.items)) ? ExtendsResult.True : - left.items.every((schema, index) => extends_check_Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Uint8Array -// ------------------------------------------------------------------ -// prettier-ignore -function FromUint8Array(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsUint8Array(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Undefined -// ------------------------------------------------------------------ -// prettier-ignore -function FromUndefined(left, right) { - return (IsStructuralRight(right) ? StructuralRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsRecord(right) ? FromRecordRight(left, right) : - type_IsVoid(right) ? FromVoidRight(left, right) : - type_IsUndefined(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Union -// ------------------------------------------------------------------ -// prettier-ignore -function FromUnionRight(left, right) { - return right.anyOf.some((schema) => extends_check_Visit(left, schema) === ExtendsResult.True) - ? ExtendsResult.True - : ExtendsResult.False; -} -// prettier-ignore -function extends_check_FromUnion(left, right) { - return left.anyOf.every((schema) => extends_check_Visit(schema, right) === ExtendsResult.True) - ? ExtendsResult.True - : ExtendsResult.False; -} -// ------------------------------------------------------------------ -// Unknown -// ------------------------------------------------------------------ -// prettier-ignore -function FromUnknownRight(left, right) { - return ExtendsResult.True; -} -// prettier-ignore -function FromUnknown(left, right) { - return (type_IsNever(right) ? FromNeverRight(left, right) : - type_IsIntersect(right) ? FromIntersectRight(left, right) : - type_IsUnion(right) ? FromUnionRight(left, right) : - type_IsAny(right) ? FromAnyRight(left, right) : - type_IsString(right) ? FromStringRight(left, right) : - type_IsNumber(right) ? FromNumberRight(left, right) : - type_IsInteger(right) ? FromIntegerRight(left, right) : - type_IsBoolean(right) ? FromBooleanRight(left, right) : - type_IsArray(right) ? FromArrayRight(left, right) : - type_IsTuple(right) ? FromTupleRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsUnknown(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// ------------------------------------------------------------------ -// Void -// ------------------------------------------------------------------ -// prettier-ignore -function FromVoidRight(left, right) { - return (type_IsUndefined(left) ? ExtendsResult.True : - type_IsUndefined(left) ? ExtendsResult.True : - ExtendsResult.False); -} -// prettier-ignore -function FromVoid(left, right) { - return (type_IsIntersect(right) ? FromIntersectRight(left, right) : - type_IsUnion(right) ? FromUnionRight(left, right) : - type_IsUnknown(right) ? FromUnknownRight(left, right) : - type_IsAny(right) ? FromAnyRight(left, right) : - type_IsObject(right) ? FromObjectRight(left, right) : - type_IsVoid(right) ? ExtendsResult.True : - ExtendsResult.False); -} -// prettier-ignore -function extends_check_Visit(left, right) { - return ( - // resolvable - (type_IsTemplateLiteral(left) || type_IsTemplateLiteral(right)) ? extends_check_FromTemplateLiteral(left, right) : - (type_IsRegExp(left) || type_IsRegExp(right)) ? FromRegExp(left, right) : - (type_IsNot(left) || type_IsNot(right)) ? FromNot(left, right) : - // standard - type_IsAny(left) ? FromAny(left, right) : - type_IsArray(left) ? extends_check_FromArray(left, right) : - type_IsBigInt(left) ? FromBigInt(left, right) : - type_IsBoolean(left) ? FromBoolean(left, right) : - type_IsAsyncIterator(left) ? FromAsyncIterator(left, right) : - type_IsConstructor(left) ? FromConstructor(left, right) : - type_IsDate(left) ? FromDate(left, right) : - type_IsFunction(left) ? FromFunction(left, right) : - type_IsInteger(left) ? FromInteger(left, right) : - type_IsIntersect(left) ? extends_check_FromIntersect(left, right) : - type_IsIterator(left) ? FromIterator(left, right) : - type_IsLiteral(left) ? extends_check_FromLiteral(left, right) : - type_IsNever(left) ? FromNever(left, right) : - type_IsNull(left) ? FromNull(left, right) : - type_IsNumber(left) ? FromNumber(left, right) : - type_IsObject(left) ? FromObject(left, right) : - type_IsRecord(left) ? FromRecord(left, right) : - type_IsString(left) ? FromString(left, right) : - type_IsSymbol(left) ? FromSymbol(left, right) : - type_IsTuple(left) ? extends_check_FromTuple(left, right) : - type_IsPromise(left) ? extends_check_FromPromise(left, right) : - type_IsUint8Array(left) ? FromUint8Array(left, right) : - type_IsUndefined(left) ? FromUndefined(left, right) : - type_IsUnion(left) ? extends_check_FromUnion(left, right) : - type_IsUnknown(left) ? FromUnknown(left, right) : - type_IsVoid(left) ? FromVoid(left, right) : - Throw(`Unknown left type operand '${left[Kind]}'`)); -} -function ExtendsCheck(left, right) { - return extends_check_Visit(left, right); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs - - -// prettier-ignore -function exclude_from_mapped_result_FromProperties(P, U) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(P)) - Acc[K2] = Exclude(P[K2], U); - return Acc; -} -// prettier-ignore -function exclude_from_mapped_result_FromMappedResult(R, T) { - return exclude_from_mapped_result_FromProperties(R.properties, T); -} -// prettier-ignore -function ExcludeFromMappedResult(R, T) { - const P = exclude_from_mapped_result_FromMappedResult(R, T); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs - - -function ExcludeFromTemplateLiteral(L, R) { - return Exclude(TemplateLiteralToUnion(L), R); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.mjs - - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -function ExcludeRest(L, R) { - const excluded = L.filter((inner) => ExtendsCheck(inner, R) === ExtendsResult.False); - return excluded.length === 1 ? excluded[0] : Union(excluded); -} -/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */ -function Exclude(L, R, options = {}) { - // overloads - if (IsTemplateLiteral(L)) - return CreateType(ExcludeFromTemplateLiteral(L, R), options); - if (IsMappedResult(L)) - return CreateType(ExcludeFromMappedResult(L, R), options); - // prettier-ignore - return CreateType(IsUnion(L) ? ExcludeRest(L.anyOf, R) : - ExtendsCheck(L, R) !== ExtendsResult.False ? Never() : L, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs - - - - -// prettier-ignore -function FromPropertyKey(K, U, L, R, options) { - return { - [K]: Extends(Literal(K), U, L, R, Clone(options)) - }; -} -// prettier-ignore -function FromPropertyKeys(K, U, L, R, options) { - return K.reduce((Acc, LK) => { - return { ...Acc, ...FromPropertyKey(LK, U, L, R, options) }; - }, {}); -} -// prettier-ignore -function FromMappedKey(K, U, L, R, options) { - return FromPropertyKeys(K.keys, U, L, R, options); -} -// prettier-ignore -function ExtendsFromMappedKey(T, U, L, R, options) { - const P = FromMappedKey(T, U, L, R, options); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs - - - -// prettier-ignore -function extends_from_mapped_result_FromProperties(P, Right, True, False, options) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(P)) - Acc[K2] = Extends(P[K2], Right, True, False, Clone(options)); - return Acc; -} -// prettier-ignore -function extends_from_mapped_result_FromMappedResult(Left, Right, True, False, options) { - return extends_from_mapped_result_FromProperties(Left.properties, Right, True, False, options); -} -// prettier-ignore -function ExtendsFromMappedResult(Left, Right, True, False, options) { - const P = extends_from_mapped_result_FromMappedResult(Left, Right, True, False, options); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends.mjs - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function ExtendsResolve(left, right, trueType, falseType) { - const R = ExtendsCheck(left, right); - return (R === ExtendsResult.Union ? Union([trueType, falseType]) : - R === ExtendsResult.True ? trueType : - falseType); -} -/** `[Json]` Creates a Conditional type */ -function Extends(L, R, T, F, options) { - // prettier-ignore - return (IsMappedResult(L) ? ExtendsFromMappedResult(L, R, T, F, options) : - IsMappedKey(L) ? CreateType(ExtendsFromMappedKey(L, R, T, F, options)) : - CreateType(ExtendsResolve(L, R, T, F), options)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs - - -// prettier-ignore -function extract_from_mapped_result_FromProperties(P, T) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(P)) - Acc[K2] = Extract(P[K2], T); - return Acc; -} -// prettier-ignore -function extract_from_mapped_result_FromMappedResult(R, T) { - return extract_from_mapped_result_FromProperties(R.properties, T); -} -// prettier-ignore -function ExtractFromMappedResult(R, T) { - const P = extract_from_mapped_result_FromMappedResult(R, T); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs - - -function ExtractFromTemplateLiteral(L, R) { - return Extract(TemplateLiteralToUnion(L), R); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extract/extract.mjs - - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -function ExtractRest(L, R) { - const extracted = L.filter((inner) => ExtendsCheck(inner, R) !== ExtendsResult.False); - return extracted.length === 1 ? extracted[0] : Union(extracted); -} -/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */ -function Extract(L, R, options) { - // overloads - if (IsTemplateLiteral(L)) - return CreateType(ExtractFromTemplateLiteral(L, R), options); - if (IsMappedResult(L)) - return CreateType(ExtractFromMappedResult(L, R), options); - // prettier-ignore - return CreateType(IsUnion(L) ? ExtractRest(L.anyOf, R) : - ExtendsCheck(L, R) !== ExtendsResult.False ? L : Never(), options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs - -/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */ -function InstanceType(schema, options) { - return CreateType(schema.returns, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/integer/integer.mjs - - -/** `[Json]` Creates an Integer type */ -function Integer(options) { - return CreateType({ [Kind]: 'Integer', type: 'integer' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs - - - - - - - -// ------------------------------------------------------------------ -// SyntaxParsers -// ------------------------------------------------------------------ -// prettier-ignore -function* syntax_FromUnion(syntax) { - const trim = syntax.trim().replace(/"|'/g, ''); - return (trim === 'boolean' ? yield boolean_Boolean() : - trim === 'number' ? yield number_Number() : - trim === 'bigint' ? yield bigint_BigInt() : - trim === 'string' ? yield string_String() : - yield (() => { - const literals = trim.split('|').map((literal) => Literal(literal.trim())); - return (literals.length === 0 ? Never() : - literals.length === 1 ? literals[0] : - UnionEvaluated(literals)); - })()); -} -// prettier-ignore -function* FromTerminal(syntax) { - if (syntax[1] !== '{') { - const L = Literal('$'); - const R = FromSyntax(syntax.slice(1)); - return yield* [L, ...R]; - } - for (let i = 2; i < syntax.length; i++) { - if (syntax[i] === '}') { - const L = syntax_FromUnion(syntax.slice(2, i)); - const R = FromSyntax(syntax.slice(i + 1)); - return yield* [...L, ...R]; - } - } - yield Literal(syntax); -} -// prettier-ignore -function* FromSyntax(syntax) { - for (let i = 0; i < syntax.length; i++) { - if (syntax[i] === '$') { - const L = Literal(syntax.slice(0, i)); - const R = FromTerminal(syntax.slice(i)); - return yield* [L, ...R]; - } - } - yield Literal(syntax); -} -/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */ -function TemplateLiteralSyntax(syntax) { - return [...FromSyntax(syntax)]; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// TemplateLiteralPatternError -// ------------------------------------------------------------------ -class TemplateLiteralPatternError extends error_TypeBoxError { -} -// ------------------------------------------------------------------ -// TemplateLiteralPattern -// ------------------------------------------------------------------ -function Escape(value) { - return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); -} -// prettier-ignore -function pattern_Visit(schema, acc) { - return (IsTemplateLiteral(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) : - IsUnion(schema) ? `(${schema.anyOf.map((schema) => pattern_Visit(schema, acc)).join('|')})` : - kind_IsNumber(schema) ? `${acc}${PatternNumber}` : - kind_IsInteger(schema) ? `${acc}${PatternNumber}` : - kind_IsBigInt(schema) ? `${acc}${PatternNumber}` : - kind_IsString(schema) ? `${acc}${PatternString}` : - IsLiteral(schema) ? `${acc}${Escape(schema.const.toString())}` : - kind_IsBoolean(schema) ? `${acc}${PatternBoolean}` : - (() => { throw new TemplateLiteralPatternError(`Unexpected Kind '${schema[Kind]}'`); })()); -} -function TemplateLiteralPattern(kinds) { - return `^${kinds.map((schema) => pattern_Visit(schema, '')).join('')}\$`; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs - - - - - -/** `[Json]` Creates a TemplateLiteral type */ -// prettier-ignore -function TemplateLiteral(unresolved, options) { - const pattern = value_IsString(unresolved) - ? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved)) - : TemplateLiteralPattern(unresolved); - return CreateType({ [Kind]: 'TemplateLiteral', type: 'string', pattern }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs - - - - -// prettier-ignore -function MappedIntrinsicPropertyKey(K, M, options) { - return { - [K]: Intrinsic(Literal(K), M, Clone(options)) - }; -} -// prettier-ignore -function MappedIntrinsicPropertyKeys(K, M, options) { - const result = K.reduce((Acc, L) => { - return { ...Acc, ...MappedIntrinsicPropertyKey(L, M, options) }; - }, {}); - return result; -} -// prettier-ignore -function MappedIntrinsicProperties(T, M, options) { - return MappedIntrinsicPropertyKeys(T['keys'], M, options); -} -// prettier-ignore -function IntrinsicFromMappedKey(T, M, options) { - const P = MappedIntrinsicProperties(T, M, options); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// Apply -// ------------------------------------------------------------------ -function ApplyUncapitalize(value) { - const [first, rest] = [value.slice(0, 1), value.slice(1)]; - return [first.toLowerCase(), rest].join(''); -} -function ApplyCapitalize(value) { - const [first, rest] = [value.slice(0, 1), value.slice(1)]; - return [first.toUpperCase(), rest].join(''); -} -function ApplyUppercase(value) { - return value.toUpperCase(); -} -function ApplyLowercase(value) { - return value.toLowerCase(); -} -function intrinsic_FromTemplateLiteral(schema, mode, options) { - // note: template literals require special runtime handling as they are encoded in string patterns. - // This diverges from the mapped type which would otherwise map on the template literal kind. - const expression = TemplateLiteralParseExact(schema.pattern); - const finite = IsTemplateLiteralExpressionFinite(expression); - if (!finite) - return { ...schema, pattern: FromLiteralValue(schema.pattern, mode) }; - const strings = [...TemplateLiteralExpressionGenerate(expression)]; - const literals = strings.map((value) => Literal(value)); - const mapped = intrinsic_FromRest(literals, mode); - const union = Union(mapped); - return TemplateLiteral([union], options); -} -// prettier-ignore -function FromLiteralValue(value, mode) { - return (typeof value === 'string' ? (mode === 'Uncapitalize' ? ApplyUncapitalize(value) : - mode === 'Capitalize' ? ApplyCapitalize(value) : - mode === 'Uppercase' ? ApplyUppercase(value) : - mode === 'Lowercase' ? ApplyLowercase(value) : - value) : value.toString()); -} -// prettier-ignore -function intrinsic_FromRest(T, M) { - return T.map(L => Intrinsic(L, M)); -} -/** Applies an intrinsic string manipulation to the given type. */ -function Intrinsic(schema, mode, options = {}) { - // prettier-ignore - return ( - // Intrinsic-Mapped-Inference - IsMappedKey(schema) ? IntrinsicFromMappedKey(schema, mode, options) : - // Standard-Inference - IsTemplateLiteral(schema) ? intrinsic_FromTemplateLiteral(schema, mode, options) : - IsUnion(schema) ? Union(intrinsic_FromRest(schema.anyOf, mode), options) : - IsLiteral(schema) ? Literal(FromLiteralValue(schema.const, mode), options) : - // Default Type - CreateType(schema, options)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs - -/** `[Json]` Intrinsic function to Capitalize LiteralString types */ -function Capitalize(T, options = {}) { - return Intrinsic(T, 'Capitalize', options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs - -/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */ -function Uncapitalize(T, options = {}) { - return Intrinsic(T, 'Uncapitalize', options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs - -/** `[Json]` Intrinsic function to Lowercase LiteralString types */ -function Lowercase(T, options = {}) { - return Intrinsic(T, 'Lowercase', options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs - -/** `[Json]` Intrinsic function to Uppercase LiteralString types */ -function Uppercase(T, options = {}) { - return Intrinsic(T, 'Uppercase', options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.mjs - - -/** `[JavaScript]` Creates an Iterator type */ -function src_Iterator(items, options) { - return CreateType({ [Kind]: 'Iterator', type: 'Iterator', items }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs - - - -// prettier-ignore -function keyof_from_mapped_result_FromProperties(properties, options) { - const result = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(properties)) - result[K2] = KeyOf(properties[K2], Clone(options)); - return result; -} -// prettier-ignore -function keyof_from_mapped_result_FromMappedResult(mappedResult, options) { - return keyof_from_mapped_result_FromProperties(mappedResult.properties, options); -} -// prettier-ignore -function KeyOfFromMappedResult(mappedResult, options) { - const properties = keyof_from_mapped_result_FromMappedResult(mappedResult, options); - return MappedResult(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.mjs - - - - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function keyof_FromComputed(target, parameters) { - return Computed('KeyOf', [Computed(target, parameters)]); -} -// prettier-ignore -function keyof_FromRef($ref) { - return Computed('KeyOf', [Ref($ref)]); -} -// prettier-ignore -function KeyOfFromType(type, options) { - const propertyKeys = KeyOfPropertyKeys(type); - const propertyKeyTypes = KeyOfPropertyKeysToRest(propertyKeys); - const result = UnionEvaluated(propertyKeyTypes); - return CreateType(result, options); -} -// prettier-ignore -function KeyOfPropertyKeysToRest(propertyKeys) { - return propertyKeys.map(L => L === '[number]' ? number_Number() : Literal(L)); -} -/** `[Json]` Creates a KeyOf type */ -function KeyOf(type, options) { - return (IsComputed(type) ? keyof_FromComputed(type.target, type.parameters) : IsRef(type) ? keyof_FromRef(type.$ref) : IsMappedResult(type) ? KeyOfFromMappedResult(type, options) : KeyOfFromType(type, options)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/promise/promise.mjs - - -/** `[JavaScript]` Creates a Promise type */ -function promise_Promise(item, options) { - return CreateType({ [Kind]: 'Promise', type: 'Promise', item }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs - - -// evaluation types - - - - - - - - - - - - - - -// operator - -// mapping types - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function mapped_FromMappedResult(K, P) { - return (K in P - ? FromSchemaType(K, P[K]) - : MappedResult(P)); -} -// prettier-ignore -function MappedKeyToKnownMappedResultProperties(K) { - return { [K]: Literal(K) }; -} -// prettier-ignore -function MappedKeyToUnknownMappedResultProperties(P) { - const Acc = {}; - for (const L of P) - Acc[L] = Literal(L); - return Acc; -} -// prettier-ignore -function MappedKeyToMappedResultProperties(K, P) { - return (SetIncludes(P, K) - ? MappedKeyToKnownMappedResultProperties(K) - : MappedKeyToUnknownMappedResultProperties(P)); -} -// prettier-ignore -function mapped_FromMappedKey(K, P) { - const R = MappedKeyToMappedResultProperties(K, P); - return mapped_FromMappedResult(K, R); -} -// prettier-ignore -function mapped_FromRest(K, T) { - return T.map(L => FromSchemaType(K, L)); -} -// prettier-ignore -function mapped_FromProperties(K, T) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(T)) - Acc[K2] = FromSchemaType(K, T[K2]); - return Acc; -} -// prettier-ignore -function FromSchemaType(K, T) { - // required to retain user defined options for mapped type - const options = { ...T }; - return ( - // unevaluated modifier types - IsOptional(T) ? Optional(FromSchemaType(K, Discard(T, [OptionalKind]))) : - IsReadonly(T) ? Readonly(FromSchemaType(K, Discard(T, [symbols_ReadonlyKind]))) : - // unevaluated mapped types - IsMappedResult(T) ? mapped_FromMappedResult(K, T.properties) : - IsMappedKey(T) ? mapped_FromMappedKey(K, T.keys) : - // unevaluated types - IsConstructor(T) ? Constructor(mapped_FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) : - kind_IsFunction(T) ? function_Function(mapped_FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) : - kind_IsAsyncIterator(T) ? src_AsyncIterator(FromSchemaType(K, T.items), options) : - kind_IsIterator(T) ? src_Iterator(FromSchemaType(K, T.items), options) : - IsIntersect(T) ? Intersect(mapped_FromRest(K, T.allOf), options) : - IsUnion(T) ? Union(mapped_FromRest(K, T.anyOf), options) : - IsTuple(T) ? Tuple(mapped_FromRest(K, T.items ?? []), options) : - kind_IsObject(T) ? object_Object(mapped_FromProperties(K, T.properties), options) : - kind_IsArray(T) ? array_Array(FromSchemaType(K, T.items), options) : - kind_IsPromise(T) ? promise_Promise(FromSchemaType(K, T.item), options) : - T); -} -// prettier-ignore -function MappedFunctionReturnType(K, T) { - const Acc = {}; - for (const L of K) - Acc[L] = FromSchemaType(L, T); - return Acc; -} -/** `[Json]` Creates a Mapped object type */ -function Mapped(key, map, options) { - const K = IsSchema(key) ? IndexPropertyKeys(key) : key; - const RT = map({ [Kind]: 'MappedKey', keys: K }); - const R = MappedFunctionReturnType(K, RT); - return object_Object(R, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs - - - -// prettier-ignore -function omit_from_mapped_key_FromPropertyKey(type, key, options) { - return { [key]: Omit(type, [key], Clone(options)) }; -} -// prettier-ignore -function omit_from_mapped_key_FromPropertyKeys(type, propertyKeys, options) { - return propertyKeys.reduce((Acc, LK) => { - return { ...Acc, ...omit_from_mapped_key_FromPropertyKey(type, LK, options) }; - }, {}); -} -// prettier-ignore -function omit_from_mapped_key_FromMappedKey(type, mappedKey, options) { - return omit_from_mapped_key_FromPropertyKeys(type, mappedKey.keys, options); -} -// prettier-ignore -function OmitFromMappedKey(type, mappedKey, options) { - const properties = omit_from_mapped_key_FromMappedKey(type, mappedKey, options); - return MappedResult(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs - - - -// prettier-ignore -function omit_from_mapped_result_FromProperties(properties, propertyKeys, options) { - const result = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(properties)) - result[K2] = Omit(properties[K2], propertyKeys, Clone(options)); - return result; -} -// prettier-ignore -function omit_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options) { - return omit_from_mapped_result_FromProperties(mappedResult.properties, propertyKeys, options); -} -// prettier-ignore -function OmitFromMappedResult(mappedResult, propertyKeys, options) { - const properties = omit_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options); - return MappedResult(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/omit/omit.mjs - - - - - - - - - -// ------------------------------------------------------------------ -// Mapped -// ------------------------------------------------------------------ - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - - -// prettier-ignore -function omit_FromIntersect(types, propertyKeys) { - return types.map((type) => OmitResolve(type, propertyKeys)); -} -// prettier-ignore -function omit_FromUnion(types, propertyKeys) { - return types.map((type) => OmitResolve(type, propertyKeys)); -} -// ------------------------------------------------------------------ -// FromProperty -// ------------------------------------------------------------------ -// prettier-ignore -function omit_FromProperty(properties, key) { - const { [key]: _, ...R } = properties; - return R; -} -// prettier-ignore -function omit_FromProperties(properties, propertyKeys) { - return propertyKeys.reduce((T, K2) => omit_FromProperty(T, K2), properties); -} -// prettier-ignore -function omit_FromObject(properties, propertyKeys) { - const options = Discard(properties, [TransformKind, '$id', 'required', 'properties']); - const omittedProperties = omit_FromProperties(properties['properties'], propertyKeys); - return object_Object(omittedProperties, options); -} -// prettier-ignore -function omit_UnionFromPropertyKeys(propertyKeys) { - const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []); - return Union(result); -} -// prettier-ignore -function OmitResolve(properties, propertyKeys) { - return (IsIntersect(properties) ? Intersect(omit_FromIntersect(properties.allOf, propertyKeys)) : - IsUnion(properties) ? Union(omit_FromUnion(properties.anyOf, propertyKeys)) : - kind_IsObject(properties) ? omit_FromObject(properties, propertyKeys) : - object_Object({})); -} -/** `[Json]` Constructs a type whose keys are picked from the given type */ -// prettier-ignore -function Omit(type, key, options) { - const typeKey = value_IsArray(key) ? omit_UnionFromPropertyKeys(key) : key; - const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key; - const isTypeRef = IsRef(type); - const isKeyRef = IsRef(key); - return (IsMappedResult(type) ? OmitFromMappedResult(type, propertyKeys, options) : - IsMappedKey(key) ? OmitFromMappedKey(type, key, options) : - (isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) : - (!isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) : - (isTypeRef && !isKeyRef) ? Computed('Omit', [type, typeKey], options) : - CreateType({ ...OmitResolve(type, propertyKeys), ...options })); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs - - - -// prettier-ignore -function pick_from_mapped_key_FromPropertyKey(type, key, options) { - return { - [key]: Pick(type, [key], Clone(options)) - }; -} -// prettier-ignore -function pick_from_mapped_key_FromPropertyKeys(type, propertyKeys, options) { - return propertyKeys.reduce((result, leftKey) => { - return { ...result, ...pick_from_mapped_key_FromPropertyKey(type, leftKey, options) }; - }, {}); -} -// prettier-ignore -function pick_from_mapped_key_FromMappedKey(type, mappedKey, options) { - return pick_from_mapped_key_FromPropertyKeys(type, mappedKey.keys, options); -} -// prettier-ignore -function PickFromMappedKey(type, mappedKey, options) { - const properties = pick_from_mapped_key_FromMappedKey(type, mappedKey, options); - return MappedResult(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs - - - -// prettier-ignore -function pick_from_mapped_result_FromProperties(properties, propertyKeys, options) { - const result = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(properties)) - result[K2] = Pick(properties[K2], propertyKeys, Clone(options)); - return result; -} -// prettier-ignore -function pick_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options) { - return pick_from_mapped_result_FromProperties(mappedResult.properties, propertyKeys, options); -} -// prettier-ignore -function PickFromMappedResult(mappedResult, propertyKeys, options) { - const properties = pick_from_mapped_result_FromMappedResult(mappedResult, propertyKeys, options); - return MappedResult(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/pick/pick.mjs - - - - - - - - - -// ------------------------------------------------------------------ -// Guards -// ------------------------------------------------------------------ - - -// ------------------------------------------------------------------ -// Infrastructure -// ------------------------------------------------------------------ - - -function pick_FromIntersect(types, propertyKeys) { - return types.map((type) => PickResolve(type, propertyKeys)); -} -// prettier-ignore -function pick_FromUnion(types, propertyKeys) { - return types.map((type) => PickResolve(type, propertyKeys)); -} -// prettier-ignore -function pick_FromProperties(properties, propertyKeys) { - const result = {}; - for (const K2 of propertyKeys) - if (K2 in properties) - result[K2] = properties[K2]; - return result; -} -// prettier-ignore -function pick_FromObject(T, K) { - const options = Discard(T, [TransformKind, '$id', 'required', 'properties']); - const properties = pick_FromProperties(T['properties'], K); - return object_Object(properties, options); -} -// prettier-ignore -function pick_UnionFromPropertyKeys(propertyKeys) { - const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []); - return Union(result); -} -// prettier-ignore -function PickResolve(properties, propertyKeys) { - return (IsIntersect(properties) ? Intersect(pick_FromIntersect(properties.allOf, propertyKeys)) : - IsUnion(properties) ? Union(pick_FromUnion(properties.anyOf, propertyKeys)) : - kind_IsObject(properties) ? pick_FromObject(properties, propertyKeys) : - object_Object({})); -} -/** `[Json]` Constructs a type whose keys are picked from the given type */ -// prettier-ignore -function Pick(type, key, options) { - const typeKey = value_IsArray(key) ? pick_UnionFromPropertyKeys(key) : key; - const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key; - const isTypeRef = IsRef(type); - const isKeyRef = IsRef(key); - return (IsMappedResult(type) ? PickFromMappedResult(type, propertyKeys, options) : - IsMappedKey(key) ? PickFromMappedKey(type, key, options) : - (isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) : - (!isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) : - (isTypeRef && !isKeyRef) ? Computed('Pick', [type, typeKey], options) : - CreateType({ ...PickResolve(type, propertyKeys), ...options })); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs - - - -// prettier-ignore -function partial_from_mapped_result_FromProperties(K, options) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(K)) - Acc[K2] = Partial(K[K2], Clone(options)); - return Acc; -} -// prettier-ignore -function partial_from_mapped_result_FromMappedResult(R, options) { - return partial_from_mapped_result_FromProperties(R.properties, options); -} -// prettier-ignore -function PartialFromMappedResult(R, options) { - const P = partial_from_mapped_result_FromMappedResult(R, options); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/partial/partial.mjs - - - - - - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function partial_FromComputed(target, parameters) { - return Computed('Partial', [Computed(target, parameters)]); -} -// prettier-ignore -function partial_FromRef($ref) { - return Computed('Partial', [Ref($ref)]); -} -// prettier-ignore -function partial_FromProperties(properties) { - const partialProperties = {}; - for (const K of globalThis.Object.getOwnPropertyNames(properties)) - partialProperties[K] = Optional(properties[K]); - return partialProperties; -} -// prettier-ignore -function partial_FromObject(T) { - const options = Discard(T, [TransformKind, '$id', 'required', 'properties']); - const properties = partial_FromProperties(T['properties']); - return object_Object(properties, options); -} -// prettier-ignore -function partial_FromRest(types) { - return types.map(type => PartialResolve(type)); -} -// ------------------------------------------------------------------ -// PartialResolve -// ------------------------------------------------------------------ -// prettier-ignore -function PartialResolve(type) { - return (IsComputed(type) ? partial_FromComputed(type.target, type.parameters) : - IsRef(type) ? partial_FromRef(type.$ref) : - IsIntersect(type) ? Intersect(partial_FromRest(type.allOf)) : - IsUnion(type) ? Union(partial_FromRest(type.anyOf)) : - kind_IsObject(type) ? partial_FromObject(type) : - object_Object({})); -} -/** `[Json]` Constructs a type where all properties are optional */ -function Partial(type, options) { - if (IsMappedResult(type)) { - return PartialFromMappedResult(type, options); - } - else { - // special: mapping types require overridable options - return CreateType({ ...PartialResolve(type), ...options }); - } -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/record/record.mjs - - - - - - - - - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// RecordCreateFromPattern -// ------------------------------------------------------------------ -// prettier-ignore -function RecordCreateFromPattern(pattern, T, options) { - return CreateType({ - [Kind]: 'Record', - type: 'object', - patternProperties: { [pattern]: T } - }, options); -} -// ------------------------------------------------------------------ -// RecordCreateFromKeys -// ------------------------------------------------------------------ -// prettier-ignore -function RecordCreateFromKeys(K, T, options) { - const Acc = {}; - for (const K2 of K) - Acc[K2] = T; - return object_Object(Acc, { ...options, [symbols_Hint]: 'Record' }); -} -// prettier-ignore -function FromTemplateLiteralKey(K, T, options) { - return (IsTemplateLiteralFinite(K) - ? RecordCreateFromKeys(IndexPropertyKeys(K), T, options) - : RecordCreateFromPattern(K.pattern, T, options)); -} -// prettier-ignore -function FromUnionKey(K, T, options) { - return RecordCreateFromKeys(IndexPropertyKeys(Union(K)), T, options); -} -// prettier-ignore -function FromLiteralKey(K, T, options) { - return RecordCreateFromKeys([K.toString()], T, options); -} -// prettier-ignore -function FromRegExpKey(K, T, options) { - return RecordCreateFromPattern(K.source, T, options); -} -// prettier-ignore -function FromStringKey(K, T, options) { - const pattern = value_IsUndefined(K.pattern) ? PatternStringExact : K.pattern; - return RecordCreateFromPattern(pattern, T, options); -} -// prettier-ignore -function FromAnyKey(K, T, options) { - return RecordCreateFromPattern(PatternStringExact, T, options); -} -// prettier-ignore -function FromNeverKey(K, T, options) { - return RecordCreateFromPattern(PatternNeverExact, T, options); -} -// prettier-ignore -function FromIntegerKey(_, T, options) { - return RecordCreateFromPattern(PatternNumberExact, T, options); -} -// prettier-ignore -function FromNumberKey(_, T, options) { - return RecordCreateFromPattern(PatternNumberExact, T, options); -} -// ------------------------------------------------------------------ -// TRecordOrObject -// ------------------------------------------------------------------ -/** `[Json]` Creates a Record type */ -function Record(key, type, options = {}) { - // prettier-ignore - return (IsRef(type) ? Computed('Record', [key, type]) : - IsRef(key) ? Computed('Record', [key, type]) : - IsUnion(key) ? FromUnionKey(key.anyOf, type, options) : - IsTemplateLiteral(key) ? FromTemplateLiteralKey(key, type, options) : - IsLiteral(key) ? FromLiteralKey(key.const, type, options) : - kind_IsInteger(key) ? FromIntegerKey(key, type, options) : - kind_IsNumber(key) ? FromNumberKey(key, type, options) : - kind_IsRegExp(key) ? FromRegExpKey(key, type, options) : - kind_IsString(key) ? FromStringKey(key, type, options) : - IsAny(key) ? FromAnyKey(key, type, options) : - IsNever(key) ? FromNeverKey(key, type, options) : - Never(options)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs - - -// prettier-ignore -function required_from_mapped_result_FromProperties(P, options) { - const Acc = {}; - for (const K2 of globalThis.Object.getOwnPropertyNames(P)) - Acc[K2] = Required(P[K2], options); - return Acc; -} -// prettier-ignore -function required_from_mapped_result_FromMappedResult(R, options) { - return required_from_mapped_result_FromProperties(R.properties, options); -} -// prettier-ignore -function RequiredFromMappedResult(R, options) { - const P = required_from_mapped_result_FromMappedResult(R, options); - return MappedResult(P); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/required/required.mjs - - - - - - - - - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function required_FromComputed(target, parameters) { - return Computed('Required', [Computed(target, parameters)]); -} -// prettier-ignore -function required_FromRef($ref) { - return Computed('Required', [Ref($ref)]); -} -// prettier-ignore -function required_FromProperties(properties) { - const requiredProperties = {}; - for (const K of globalThis.Object.getOwnPropertyNames(properties)) - requiredProperties[K] = Discard(properties[K], [OptionalKind]); - return requiredProperties; -} -// prettier-ignore -function required_FromObject(type) { - const options = Discard(type, [TransformKind, '$id', 'required', 'properties']); - const properties = required_FromProperties(type['properties']); - return object_Object(properties, options); -} -// prettier-ignore -function required_FromRest(types) { - return types.map(type => RequiredResolve(type)); -} -// ------------------------------------------------------------------ -// RequiredResolve -// ------------------------------------------------------------------ -// prettier-ignore -function RequiredResolve(type) { - return (IsComputed(type) ? required_FromComputed(type.target, type.parameters) : - IsRef(type) ? required_FromRef(type.$ref) : - IsIntersect(type) ? Intersect(required_FromRest(type.allOf)) : - IsUnion(type) ? Union(required_FromRest(type.anyOf)) : - kind_IsObject(type) ? required_FromObject(type) : - object_Object({})); -} -/** `[Json]` Constructs a type where all properties are required */ -function Required(type, options) { - if (IsMappedResult(type)) { - return RequiredFromMappedResult(type, options); - } - else { - // special: mapping types require overridable options - return CreateType({ ...RequiredResolve(type), ...options }); - } -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/module/compute.mjs - - - - - - - - - - - - - - - - - - - -// ------------------------------------------------------------------ -// KindGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function DerefParameters(moduleProperties, types) { - return types.map((type) => { - return IsRef(type) - ? Deref(moduleProperties, type.$ref) - : compute_FromType(moduleProperties, type); - }); -} -// prettier-ignore -function Deref(moduleProperties, ref) { - return (ref in moduleProperties - ? IsRef(moduleProperties[ref]) - ? Deref(moduleProperties, moduleProperties[ref].$ref) - : compute_FromType(moduleProperties, moduleProperties[ref]) - : Never()); -} -// prettier-ignore -function FromAwaited(parameters) { - return Awaited(parameters[0]); -} -// prettier-ignore -function FromIndex(parameters) { - return Index(parameters[0], parameters[1]); -} -// prettier-ignore -function FromKeyOf(parameters) { - return KeyOf(parameters[0]); -} -// prettier-ignore -function FromPartial(parameters) { - return Partial(parameters[0]); -} -// prettier-ignore -function FromOmit(parameters) { - return Omit(parameters[0], parameters[1]); -} -// prettier-ignore -function FromPick(parameters) { - return Pick(parameters[0], parameters[1]); -} -// prettier-ignore -function compute_FromRecord(parameters) { - return Record(parameters[0], parameters[1]); -} -// prettier-ignore -function FromRequired(parameters) { - return Required(parameters[0]); -} -// prettier-ignore -function compute_FromComputed(moduleProperties, target, parameters) { - const dereferenced = DerefParameters(moduleProperties, parameters); - return (target === 'Awaited' ? FromAwaited(dereferenced) : - target === 'Index' ? FromIndex(dereferenced) : - target === 'KeyOf' ? FromKeyOf(dereferenced) : - target === 'Partial' ? FromPartial(dereferenced) : - target === 'Omit' ? FromOmit(dereferenced) : - target === 'Pick' ? FromPick(dereferenced) : - target === 'Record' ? compute_FromRecord(dereferenced) : - target === 'Required' ? FromRequired(dereferenced) : - Never()); -} -function compute_FromObject(moduleProperties, properties) { - return object_Object(globalThis.Object.keys(properties).reduce((result, key) => { - return { ...result, [key]: compute_FromType(moduleProperties, properties[key]) }; - }, {})); -} -// prettier-ignore -function compute_FromConstructor(moduleProperties, parameters, instanceType) { - return Constructor(compute_FromRest(moduleProperties, parameters), compute_FromType(moduleProperties, instanceType)); -} -// prettier-ignore -function compute_FromFunction(moduleProperties, parameters, returnType) { - return function_Function(compute_FromRest(moduleProperties, parameters), compute_FromType(moduleProperties, returnType)); -} -function compute_FromTuple(moduleProperties, types) { - return Tuple(compute_FromRest(moduleProperties, types)); -} -function compute_FromIntersect(moduleProperties, types) { - return Intersect(compute_FromRest(moduleProperties, types)); -} -function compute_FromUnion(moduleProperties, types) { - return Union(compute_FromRest(moduleProperties, types)); -} -function compute_FromArray(moduleProperties, type) { - return array_Array(compute_FromType(moduleProperties, type)); -} -function compute_FromAsyncIterator(moduleProperties, type) { - return src_AsyncIterator(compute_FromType(moduleProperties, type)); -} -function compute_FromIterator(moduleProperties, type) { - return src_Iterator(compute_FromType(moduleProperties, type)); -} -function compute_FromRest(moduleProperties, types) { - return types.map((type) => compute_FromType(moduleProperties, type)); -} -// prettier-ignore -function compute_FromType(moduleProperties, type) { - return ( - // Note: The 'as never' is required due to excessive resolution of TIndex. In fact TIndex, TPick, TOmit and - // all need re-implementation to remove the PropertyKey[] selector. Reimplementation of these types should - // be a priority as there is a potential for the current inference to break on TS compiler changes. - IsComputed(type) ? CreateType(compute_FromComputed(moduleProperties, type.target, type.parameters)) : - kind_IsObject(type) ? CreateType(compute_FromObject(moduleProperties, type.properties), type) : - IsConstructor(type) ? CreateType(compute_FromConstructor(moduleProperties, type.parameters, type.returns), type) : - kind_IsFunction(type) ? CreateType(compute_FromFunction(moduleProperties, type.parameters, type.returns), type) : - IsTuple(type) ? CreateType(compute_FromTuple(moduleProperties, type.items || []), type) : - IsIntersect(type) ? CreateType(compute_FromIntersect(moduleProperties, type.allOf), type) : - IsUnion(type) ? CreateType(compute_FromUnion(moduleProperties, type.anyOf), type) : - kind_IsArray(type) ? CreateType(compute_FromArray(moduleProperties, type.items), type) : - kind_IsAsyncIterator(type) ? CreateType(compute_FromAsyncIterator(moduleProperties, type.items), type) : - kind_IsIterator(type) ? CreateType(compute_FromIterator(moduleProperties, type.items), type) : - type); -} -// prettier-ignore -function ComputeType(moduleProperties, key) { - return (key in moduleProperties - ? compute_FromType(moduleProperties, moduleProperties[key]) - : Never()); -} -// prettier-ignore -function ComputeModuleProperties(moduleProperties) { - return globalThis.Object.getOwnPropertyNames(moduleProperties).reduce((result, key) => { - return { ...result, [key]: ComputeType(moduleProperties, key) }; - }, {}); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/module/module.mjs - - -// ------------------------------------------------------------------ -// Module Infrastructure Types -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// Module -// ------------------------------------------------------------------ -// prettier-ignore -class TModule { - constructor($defs) { - const computed = ComputeModuleProperties($defs); - const identified = this.WithIdentifiers(computed); - this.$defs = identified; - } - /** `[Json]` Imports a Type by Key. */ - Import(key, options) { - return CreateType({ [Kind]: 'Import', $defs: this.$defs, $ref: key }, options); - } - // prettier-ignore - WithIdentifiers($defs) { - return globalThis.Object.getOwnPropertyNames($defs).reduce((result, key) => { - return { ...result, [key]: { ...$defs[key], $id: key } }; - }, {}); - } -} -/** `[Json]` Creates a Type Definition Module. */ -function Module(properties) { - return new TModule(properties); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/not/not.mjs - - -/** `[Json]` Creates a Not type */ -function Not(type, options) { - return CreateType({ [Kind]: 'Not', not: type }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.mjs - -/** `[JavaScript]` Extracts the Parameters from the given Function type */ -function Parameters(schema, options) { - return Tuple(schema.parameters, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs - - -/** `[Json]` Creates a Readonly and Optional property */ -function ReadonlyOptional(schema) { - return Readonly(Optional(schema)); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/clone/type.mjs - -/** Clones a Rest */ -function CloneRest(schemas) { - return schemas.map((schema) => CloneType(schema)); -} -/** Clones a Type */ -function CloneType(schema, options) { - return options === undefined ? Clone(schema) : Clone({ ...options, ...schema }); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.mjs - - - - -// Auto Tracked For Recursive Types without ID's -let Ordinal = 0; -/** `[Json]` Creates a Recursive type */ -function Recursive(callback, options = {}) { - if (value_IsUndefined(options.$id)) - options.$id = `T${Ordinal++}`; - const thisType = CloneType(callback({ [Kind]: 'This', $ref: `${options.$id}` })); - thisType.$id = options.$id; - // prettier-ignore - return CreateType({ [symbols_Hint]: 'Recursive', ...thisType }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.mjs - - - -/** `[JavaScript]` Creates a RegExp type */ -function regexp_RegExp(unresolved, options) { - const expr = value_IsString(unresolved) ? new globalThis.RegExp(unresolved) : unresolved; - return CreateType({ [Kind]: 'RegExp', type: 'RegExp', source: expr.source, flags: expr.flags }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/rest/rest.mjs -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function RestResolve(T) { - return (IsIntersect(T) ? T.allOf : - IsUnion(T) ? T.anyOf : - IsTuple(T) ? T.items ?? [] : - []); -} -/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */ -function Rest(T) { - return RestResolve(T); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.mjs - -/** `[JavaScript]` Extracts the ReturnType from the given Function type */ -function ReturnType(schema, options) { - return CreateType(schema.returns, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/transform/transform.mjs - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// TransformBuilders -// ------------------------------------------------------------------ -class TransformDecodeBuilder { - constructor(schema) { - this.schema = schema; - } - Decode(decode) { - return new TransformEncodeBuilder(this.schema, decode); - } -} -// prettier-ignore -class TransformEncodeBuilder { - constructor(schema, decode) { - this.schema = schema; - this.decode = decode; - } - EncodeTransform(encode, schema) { - const Encode = (value) => schema[TransformKind].Encode(encode(value)); - const Decode = (value) => this.decode(schema[TransformKind].Decode(value)); - const Codec = { Encode: Encode, Decode: Decode }; - return { ...schema, [TransformKind]: Codec }; - } - EncodeSchema(encode, schema) { - const Codec = { Decode: this.decode, Encode: encode }; - return { ...schema, [TransformKind]: Codec }; - } - Encode(encode) { - return (IsTransform(this.schema) ? this.EncodeTransform(encode, this.schema) : this.EncodeSchema(encode, this.schema)); - } -} -/** `[Json]` Creates a Transform type */ -function Transform(schema) { - return new TransformDecodeBuilder(schema); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs - - -/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */ -function Unsafe(options = {}) { - return CreateType({ [Kind]: options[Kind] ?? 'Unsafe' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/void/void.mjs - - -/** `[JavaScript]` Creates a Void type */ -function Void(options) { - return CreateType({ [Kind]: 'Void', type: 'void' }, options); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/type/type.mjs -// ------------------------------------------------------------------ -// Type: Module -// ------------------------------------------------------------------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/type/index.mjs -// ------------------------------------------------------------------ -// JsonTypeBuilder -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// JavaScriptTypeBuilder -// ------------------------------------------------------------------ - - -/** JavaScript Type Builder with Static Resolution for TypeScript */ -const Type = type_type_namespaceObject; - - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/utils/body.js -// src/utils/body.ts - -var parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => { - const { all = false, dot = false } = options; - const headers = request instanceof HonoRequest ? request.raw.headers : request.headers; - const contentType = headers.get("Content-Type"); - if (contentType?.startsWith("multipart/form-data") || contentType?.startsWith("application/x-www-form-urlencoded")) { - return parseFormData(request, { all, dot }); - } - return {}; -}; -async function parseFormData(request, options) { - const formData = await request.formData(); - if (formData) { - return convertFormDataToBodyData(formData, options); - } - return {}; -} -function convertFormDataToBodyData(formData, options) { - const form = /* @__PURE__ */ Object.create(null); - formData.forEach((value, key) => { - const shouldParseAllValues = options.all || key.endsWith("[]"); - if (!shouldParseAllValues) { - form[key] = value; - } else { - handleParsingAllValues(form, key, value); - } - }); - if (options.dot) { - Object.entries(form).forEach(([key, value]) => { - const shouldParseDotValues = key.includes("."); - if (shouldParseDotValues) { - handleParsingNestedValues(form, key, value); - delete form[key]; - } - }); - } - return form; -} -var handleParsingAllValues = (form, key, value) => { - if (form[key] !== void 0) { - if (Array.isArray(form[key])) { - ; - form[key].push(value); - } else { - form[key] = [form[key], value]; - } - } else { - form[key] = value; - } -}; -var handleParsingNestedValues = (form, key, value) => { - let nestedForm = form; - const keys = key.split("."); - keys.forEach((key2, index) => { - if (index === keys.length - 1) { - nestedForm[key2] = value; - } else { - if (!nestedForm[key2] || typeof nestedForm[key2] !== "object" || Array.isArray(nestedForm[key2]) || nestedForm[key2] instanceof File) { - nestedForm[key2] = /* @__PURE__ */ Object.create(null); - } - nestedForm = nestedForm[key2]; - } - }); -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/utils/url.js -// src/utils/url.ts -var splitPath = (path) => { - const paths = path.split("/"); - if (paths[0] === "") { - paths.shift(); - } - return paths; -}; -var splitRoutingPath = (routePath) => { - const { groups, path } = extractGroupsFromPath(routePath); - const paths = splitPath(path); - return replaceGroupMarks(paths, groups); -}; -var extractGroupsFromPath = (path) => { - const groups = []; - path = path.replace(/\{[^}]+\}/g, (match, index) => { - const mark = `@${index}`; - groups.push([mark, match]); - return mark; - }); - return { groups, path }; -}; -var replaceGroupMarks = (paths, groups) => { - for (let i = groups.length - 1; i >= 0; i--) { - const [mark] = groups[i]; - for (let j = paths.length - 1; j >= 0; j--) { - if (paths[j].includes(mark)) { - paths[j] = paths[j].replace(mark, groups[i][1]); - break; - } - } - } - return paths; -}; -var patternCache = {}; -var getPattern = (label) => { - if (label === "*") { - return "*"; - } - const match = label.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/); - if (match) { - if (!patternCache[label]) { - if (match[2]) { - patternCache[label] = [label, match[1], new RegExp("^" + match[2] + "$")]; - } else { - patternCache[label] = [label, match[1], true]; - } - } - return patternCache[label]; - } - return null; -}; -var tryDecode = (str, decoder) => { - try { - return decoder(str); - } catch { - return str.replace(/(?:%[0-9A-Fa-f]{2})+/g, (match) => { - try { - return decoder(match); - } catch { - return match; - } - }); - } -}; -var tryDecodeURI = (str) => tryDecode(str, decodeURI); -var getPath = (request) => { - const url = request.url; - const start = url.indexOf("/", 8); - let i = start; - for (; i < url.length; i++) { - const charCode = url.charCodeAt(i); - if (charCode === 37) { - const queryIndex = url.indexOf("?", i); - const path = url.slice(start, queryIndex === -1 ? void 0 : queryIndex); - return tryDecodeURI(path.includes("%25") ? path.replace(/%25/g, "%2525") : path); - } else if (charCode === 63) { - break; - } - } - return url.slice(start, i); -}; -var getQueryStrings = (url) => { - const queryIndex = url.indexOf("?", 8); - return queryIndex === -1 ? "" : "?" + url.slice(queryIndex + 1); -}; -var getPathNoStrict = (request) => { - const result = getPath(request); - return result.length > 1 && result[result.length - 1] === "/" ? result.slice(0, -1) : result; -}; -var mergePath = (...paths) => { - let p = ""; - let endsWithSlash = false; - for (let path of paths) { - if (p[p.length - 1] === "/") { - p = p.slice(0, -1); - endsWithSlash = true; - } - if (path[0] !== "/") { - path = `/${path}`; - } - if (path === "/" && endsWithSlash) { - p = `${p}/`; - } else if (path !== "/") { - p = `${p}${path}`; - } - if (path === "/" && p === "") { - p = "/"; - } - } - return p; -}; -var checkOptionalParameter = (path) => { - if (!path.match(/\:.+\?$/)) { - return null; - } - const segments = path.split("/"); - const results = []; - let basePath = ""; - segments.forEach((segment) => { - if (segment !== "" && !/\:/.test(segment)) { - basePath += "/" + segment; - } else if (/\:/.test(segment)) { - if (/\?/.test(segment)) { - if (results.length === 0 && basePath === "") { - results.push("/"); - } else { - results.push(basePath); - } - const optionalSegment = segment.replace("?", ""); - basePath += "/" + optionalSegment; - results.push(basePath); - } else { - basePath += "/" + segment; - } - } - }); - return results.filter((v, i, a) => a.indexOf(v) === i); -}; -var _decodeURI = (value) => { - if (!/[%+]/.test(value)) { - return value; - } - if (value.indexOf("+") !== -1) { - value = value.replace(/\+/g, " "); - } - return value.indexOf("%") !== -1 ? decodeURIComponent_(value) : value; -}; -var _getQueryParam = (url, key, multiple) => { - let encoded; - if (!multiple && key && !/[%+]/.test(key)) { - let keyIndex2 = url.indexOf(`?${key}`, 8); - if (keyIndex2 === -1) { - keyIndex2 = url.indexOf(`&${key}`, 8); - } - while (keyIndex2 !== -1) { - const trailingKeyCode = url.charCodeAt(keyIndex2 + key.length + 1); - if (trailingKeyCode === 61) { - const valueIndex = keyIndex2 + key.length + 2; - const endIndex = url.indexOf("&", valueIndex); - return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex)); - } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) { - return ""; - } - keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1); - } - encoded = /[%+]/.test(url); - if (!encoded) { - return void 0; - } - } - const results = {}; - encoded ??= /[%+]/.test(url); - let keyIndex = url.indexOf("?", 8); - while (keyIndex !== -1) { - const nextKeyIndex = url.indexOf("&", keyIndex + 1); - let valueIndex = url.indexOf("=", keyIndex); - if (valueIndex > nextKeyIndex && nextKeyIndex !== -1) { - valueIndex = -1; - } - let name = url.slice( - keyIndex + 1, - valueIndex === -1 ? nextKeyIndex === -1 ? void 0 : nextKeyIndex : valueIndex - ); - if (encoded) { - name = _decodeURI(name); - } - keyIndex = nextKeyIndex; - if (name === "") { - continue; - } - let value; - if (valueIndex === -1) { - value = ""; - } else { - value = url.slice(valueIndex + 1, nextKeyIndex === -1 ? void 0 : nextKeyIndex); - if (encoded) { - value = _decodeURI(value); - } - } - if (multiple) { - if (!(results[name] && Array.isArray(results[name]))) { - results[name] = []; - } - ; - results[name].push(value); - } else { - results[name] ??= value; - } - } - return key ? results[key] : results; -}; -var getQueryParam = _getQueryParam; -var getQueryParams = (url, key) => { - return _getQueryParam(url, key, true); -}; -var decodeURIComponent_ = decodeURIComponent; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/request.js -// src/request.ts - - -var tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_); -var HonoRequest = class { - raw; - #validatedData; - #matchResult; - routeIndex = 0; - path; - bodyCache = {}; - constructor(request, path = "/", matchResult = [[]]) { - this.raw = request; - this.path = path; - this.#matchResult = matchResult; - this.#validatedData = {}; - } - param(key) { - return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams(); - } - #getDecodedParam(key) { - const paramKey = this.#matchResult[0][this.routeIndex][1][key]; - const param = this.#getParamValue(paramKey); - return param ? /\%/.test(param) ? tryDecodeURIComponent(param) : param : void 0; - } - #getAllDecodedParams() { - const decoded = {}; - const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]); - for (const key of keys) { - const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]); - if (value && typeof value === "string") { - decoded[key] = /\%/.test(value) ? tryDecodeURIComponent(value) : value; - } - } - return decoded; - } - #getParamValue(paramKey) { - return this.#matchResult[1] ? this.#matchResult[1][paramKey] : paramKey; - } - query(key) { - return getQueryParam(this.url, key); - } - queries(key) { - return getQueryParams(this.url, key); - } - header(name) { - if (name) { - return this.raw.headers.get(name.toLowerCase()) ?? void 0; - } - const headerData = {}; - this.raw.headers.forEach((value, key) => { - headerData[key] = value; - }); - return headerData; - } - async parseBody(options) { - return this.bodyCache.parsedBody ??= await parseBody(this, options); - } - #cachedBody = (key) => { - const { bodyCache, raw } = this; - const cachedBody = bodyCache[key]; - if (cachedBody) { - return cachedBody; - } - const anyCachedKey = Object.keys(bodyCache)[0]; - if (anyCachedKey) { - return bodyCache[anyCachedKey].then((body) => { - if (anyCachedKey === "json") { - body = JSON.stringify(body); - } - return new Response(body)[key](); - }); - } - return bodyCache[key] = raw[key](); - }; - json() { - return this.#cachedBody("json"); - } - text() { - return this.#cachedBody("text"); - } - arrayBuffer() { - return this.#cachedBody("arrayBuffer"); - } - blob() { - return this.#cachedBody("blob"); - } - formData() { - return this.#cachedBody("formData"); - } - addValidatedData(target, data) { - this.#validatedData[target] = data; - } - valid(target) { - return this.#validatedData[target]; - } - get url() { - return this.raw.url; - } - get method() { - return this.raw.method; - } - get matchedRoutes() { - return this.#matchResult[0].map(([[, route]]) => route); - } - get routePath() { - return this.#matchResult[0].map(([[, route]]) => route)[this.routeIndex].path; - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/utils/html.js -// src/utils/html.ts -var HtmlEscapedCallbackPhase = { - Stringify: 1, - BeforeStream: 2, - Stream: 3 -}; -var raw = (value, callbacks) => { - const escapedString = new String(value); - escapedString.isEscaped = true; - escapedString.callbacks = callbacks; - return escapedString; -}; -var escapeRe = /[&<>'"]/; -var stringBufferToString = async (buffer, callbacks) => { - let str = ""; - callbacks ||= []; - const resolvedBuffer = await Promise.all(buffer); - for (let i = resolvedBuffer.length - 1; ; i--) { - str += resolvedBuffer[i]; - i--; - if (i < 0) { - break; - } - let r = resolvedBuffer[i]; - if (typeof r === "object") { - callbacks.push(...r.callbacks || []); - } - const isEscaped = r.isEscaped; - r = await (typeof r === "object" ? r.toString() : r); - if (typeof r === "object") { - callbacks.push(...r.callbacks || []); - } - if (r.isEscaped ?? isEscaped) { - str += r; - } else { - const buf = [str]; - escapeToBuffer(r, buf); - str = buf[0]; - } - } - return raw(str, callbacks); -}; -var escapeToBuffer = (str, buffer) => { - const match = str.search(escapeRe); - if (match === -1) { - buffer[0] += str; - return; - } - let escape; - let index; - let lastIndex = 0; - for (index = match; index < str.length; index++) { - switch (str.charCodeAt(index)) { - case 34: - escape = """; - break; - case 39: - escape = "'"; - break; - case 38: - escape = "&"; - break; - case 60: - escape = "<"; - break; - case 62: - escape = ">"; - break; - default: - continue; - } - buffer[0] += str.substring(lastIndex, index) + escape; - lastIndex = index + 1; - } - buffer[0] += str.substring(lastIndex, index); -}; -var resolveCallbackSync = (str) => { - const callbacks = str.callbacks; - if (!callbacks?.length) { - return str; - } - const buffer = [str]; - const context = {}; - callbacks.forEach((c) => c({ phase: HtmlEscapedCallbackPhase.Stringify, buffer, context })); - return buffer[0]; -}; -var resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => { - if (typeof str === "object" && !(str instanceof String)) { - if (!(str instanceof Promise)) { - str = str.toString(); - } - if (str instanceof Promise) { - str = await str; - } - } - const callbacks = str.callbacks; - if (!callbacks?.length) { - return Promise.resolve(str); - } - if (buffer) { - buffer[0] += str; - } else { - buffer = [str]; - } - const resStr = Promise.all(callbacks.map((c) => c({ phase, buffer, context }))).then( - (res) => Promise.all( - res.filter(Boolean).map((str2) => resolveCallback(str2, phase, false, context, buffer)) - ).then(() => buffer[0]) - ); - if (preserveCallbacks) { - return raw(await resStr, callbacks); - } else { - return resStr; - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/context.js -// src/context.ts - - -var TEXT_PLAIN = "text/plain; charset=UTF-8"; -var setHeaders = (headers, map = {}) => { - for (const key of Object.keys(map)) { - headers.set(key, map[key]); - } - return headers; -}; -var Context = class { - #rawRequest; - #req; - env = {}; - #var; - finalized = false; - error; - #status = 200; - #executionCtx; - #headers; - #preparedHeaders; - #res; - #isFresh = true; - #layout; - #renderer; - #notFoundHandler; - #matchResult; - #path; - constructor(req, options) { - this.#rawRequest = req; - if (options) { - this.#executionCtx = options.executionCtx; - this.env = options.env; - this.#notFoundHandler = options.notFoundHandler; - this.#path = options.path; - this.#matchResult = options.matchResult; - } - } - get req() { - this.#req ??= new HonoRequest(this.#rawRequest, this.#path, this.#matchResult); - return this.#req; - } - get event() { - if (this.#executionCtx && "respondWith" in this.#executionCtx) { - return this.#executionCtx; - } else { - throw Error("This context has no FetchEvent"); - } - } - get executionCtx() { - if (this.#executionCtx) { - return this.#executionCtx; - } else { - throw Error("This context has no ExecutionContext"); - } - } - get res() { - this.#isFresh = false; - return this.#res ||= new Response("404 Not Found", { status: 404 }); - } - set res(_res) { - this.#isFresh = false; - if (this.#res && _res) { - try { - for (const [k, v] of this.#res.headers.entries()) { - if (k === "content-type") { - continue; - } - if (k === "set-cookie") { - const cookies = this.#res.headers.getSetCookie(); - _res.headers.delete("set-cookie"); - for (const cookie of cookies) { - _res.headers.append("set-cookie", cookie); - } - } else { - _res.headers.set(k, v); - } - } - } catch (e) { - if (e instanceof TypeError && e.message.includes("immutable")) { - this.res = new Response(_res.body, { - headers: _res.headers, - status: _res.status - }); - return; - } else { - throw e; - } - } - } - this.#res = _res; - this.finalized = true; - } - render = (...args) => { - this.#renderer ??= (content) => this.html(content); - return this.#renderer(...args); - }; - setLayout = (layout) => this.#layout = layout; - getLayout = () => this.#layout; - setRenderer = (renderer) => { - this.#renderer = renderer; - }; - header = (name, value, options) => { - if (value === void 0) { - if (this.#headers) { - this.#headers.delete(name); - } else if (this.#preparedHeaders) { - delete this.#preparedHeaders[name.toLocaleLowerCase()]; - } - if (this.finalized) { - this.res.headers.delete(name); - } - return; - } - if (options?.append) { - if (!this.#headers) { - this.#isFresh = false; - this.#headers = new Headers(this.#preparedHeaders); - this.#preparedHeaders = {}; - } - this.#headers.append(name, value); - } else { - if (this.#headers) { - this.#headers.set(name, value); - } else { - this.#preparedHeaders ??= {}; - this.#preparedHeaders[name.toLowerCase()] = value; - } - } - if (this.finalized) { - if (options?.append) { - this.res.headers.append(name, value); - } else { - this.res.headers.set(name, value); - } - } - }; - status = (status) => { - this.#isFresh = false; - this.#status = status; - }; - set = (key, value) => { - this.#var ??= /* @__PURE__ */ new Map(); - this.#var.set(key, value); - }; - get = (key) => { - return this.#var ? this.#var.get(key) : void 0; - }; - get var() { - if (!this.#var) { - return {}; - } - return Object.fromEntries(this.#var); - } - #newResponse(data, arg, headers) { - if (this.#isFresh && !headers && !arg && this.#status === 200) { - return new Response(data, { - headers: this.#preparedHeaders - }); - } - if (arg && typeof arg !== "number") { - const header = new Headers(arg.headers); - if (this.#headers) { - this.#headers.forEach((v, k) => { - if (k === "set-cookie") { - header.append(k, v); - } else { - header.set(k, v); - } - }); - } - const headers2 = setHeaders(header, this.#preparedHeaders); - return new Response(data, { - headers: headers2, - status: arg.status ?? this.#status - }); - } - const status = typeof arg === "number" ? arg : this.#status; - this.#preparedHeaders ??= {}; - this.#headers ??= new Headers(); - setHeaders(this.#headers, this.#preparedHeaders); - if (this.#res) { - this.#res.headers.forEach((v, k) => { - if (k === "set-cookie") { - this.#headers?.append(k, v); - } else { - this.#headers?.set(k, v); - } - }); - setHeaders(this.#headers, this.#preparedHeaders); - } - headers ??= {}; - for (const [k, v] of Object.entries(headers)) { - if (typeof v === "string") { - this.#headers.set(k, v); - } else { - this.#headers.delete(k); - for (const v2 of v) { - this.#headers.append(k, v2); - } - } - } - return new Response(data, { - status, - headers: this.#headers - }); - } - newResponse = (...args) => this.#newResponse(...args); - body = (data, arg, headers) => { - return typeof arg === "number" ? this.#newResponse(data, arg, headers) : this.#newResponse(data, arg); - }; - text = (text, arg, headers) => { - if (!this.#preparedHeaders) { - if (this.#isFresh && !headers && !arg) { - return new Response(text); - } - this.#preparedHeaders = {}; - } - this.#preparedHeaders["content-type"] = TEXT_PLAIN; - return typeof arg === "number" ? this.#newResponse(text, arg, headers) : this.#newResponse(text, arg); - }; - json = (object, arg, headers) => { - const body = JSON.stringify(object); - this.#preparedHeaders ??= {}; - this.#preparedHeaders["content-type"] = "application/json; charset=UTF-8"; - return typeof arg === "number" ? this.#newResponse(body, arg, headers) : this.#newResponse(body, arg); - }; - html = (html, arg, headers) => { - this.#preparedHeaders ??= {}; - this.#preparedHeaders["content-type"] = "text/html; charset=UTF-8"; - if (typeof html === "object") { - return resolveCallback(html, HtmlEscapedCallbackPhase.Stringify, false, {}).then((html2) => { - return typeof arg === "number" ? this.#newResponse(html2, arg, headers) : this.#newResponse(html2, arg); - }); - } - return typeof arg === "number" ? this.#newResponse(html, arg, headers) : this.#newResponse(html, arg); - }; - redirect = (location, status) => { - this.#headers ??= new Headers(); - this.#headers.set("Location", String(location)); - return this.newResponse(null, status ?? 302); - }; - notFound = () => { - this.#notFoundHandler ??= () => new Response(); - return this.#notFoundHandler(this); - }; -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/compose.js -// src/compose.ts - -var compose = (middleware, onError, onNotFound) => { - return (context, next) => { - let index = -1; - const isContext = context instanceof Context; - return dispatch(0); - async function dispatch(i) { - if (i <= index) { - throw new Error("next() called multiple times"); - } - index = i; - let res; - let isError = false; - let handler; - if (middleware[i]) { - handler = middleware[i][0][0]; - if (isContext) { - context.req.routeIndex = i; - } - } else { - handler = i === middleware.length && next || void 0; - } - if (!handler) { - if (isContext && context.finalized === false && onNotFound) { - res = await onNotFound(context); - } - } else { - try { - res = await handler(context, () => { - return dispatch(i + 1); - }); - } catch (err) { - if (err instanceof Error && isContext && onError) { - context.error = err; - res = await onError(err, context); - isError = true; - } else { - throw err; - } - } - } - if (res && (context.finalized === false || isError)) { - context.res = res; - } - return context; - } - }; -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router.js -// src/router.ts -var METHOD_NAME_ALL = "ALL"; -var METHOD_NAME_ALL_LOWERCASE = "all"; -var METHODS = ["get", "post", "put", "delete", "options", "patch"]; -var MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is already built."; -var UnsupportedPathError = class extends Error { -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/hono-base.js -// src/hono-base.ts - - - - -var COMPOSED_HANDLER = Symbol("composedHandler"); -var notFoundHandler = (c) => { - return c.text("404 Not Found", 404); -}; -var errorHandler = (err, c) => { - if ("getResponse" in err) { - return err.getResponse(); - } - console.error(err); - return c.text("Internal Server Error", 500); -}; -var hono_base_Hono = class { - get; - post; - put; - delete; - options; - patch; - all; - on; - use; - router; - getPath; - _basePath = "/"; - #path = "/"; - routes = []; - constructor(options = {}) { - const allMethods = [...METHODS, METHOD_NAME_ALL_LOWERCASE]; - allMethods.forEach((method) => { - this[method] = (args1, ...args) => { - if (typeof args1 === "string") { - this.#path = args1; - } else { - this.#addRoute(method, this.#path, args1); - } - args.forEach((handler) => { - this.#addRoute(method, this.#path, handler); - }); - return this; - }; - }); - this.on = (method, path, ...handlers) => { - for (const p of [path].flat()) { - this.#path = p; - for (const m of [method].flat()) { - handlers.map((handler) => { - this.#addRoute(m.toUpperCase(), this.#path, handler); - }); - } - } - return this; - }; - this.use = (arg1, ...handlers) => { - if (typeof arg1 === "string") { - this.#path = arg1; - } else { - this.#path = "*"; - handlers.unshift(arg1); - } - handlers.forEach((handler) => { - this.#addRoute(METHOD_NAME_ALL, this.#path, handler); - }); - return this; - }; - const strict = options.strict ?? true; - delete options.strict; - Object.assign(this, options); - this.getPath = strict ? options.getPath ?? getPath : getPathNoStrict; - } - #clone() { - const clone = new hono_base_Hono({ - router: this.router, - getPath: this.getPath - }); - clone.routes = this.routes; - return clone; - } - #notFoundHandler = notFoundHandler; - errorHandler = errorHandler; - route(path, app) { - const subApp = this.basePath(path); - app.routes.map((r) => { - let handler; - if (app.errorHandler === errorHandler) { - handler = r.handler; - } else { - handler = async (c, next) => (await compose([], app.errorHandler)(c, () => r.handler(c, next))).res; - handler[COMPOSED_HANDLER] = r.handler; - } - subApp.#addRoute(r.method, r.path, handler); - }); - return this; - } - basePath(path) { - const subApp = this.#clone(); - subApp._basePath = mergePath(this._basePath, path); - return subApp; - } - onError = (handler) => { - this.errorHandler = handler; - return this; - }; - notFound = (handler) => { - this.#notFoundHandler = handler; - return this; - }; - mount(path, applicationHandler, options) { - let replaceRequest; - let optionHandler; - if (options) { - if (typeof options === "function") { - optionHandler = options; - } else { - optionHandler = options.optionHandler; - replaceRequest = options.replaceRequest; - } - } - const getOptions = optionHandler ? (c) => { - const options2 = optionHandler(c); - return Array.isArray(options2) ? options2 : [options2]; - } : (c) => { - let executionContext = void 0; - try { - executionContext = c.executionCtx; - } catch { - } - return [c.env, executionContext]; - }; - replaceRequest ||= (() => { - const mergedPath = mergePath(this._basePath, path); - const pathPrefixLength = mergedPath === "/" ? 0 : mergedPath.length; - return (request) => { - const url = new URL(request.url); - url.pathname = url.pathname.slice(pathPrefixLength) || "/"; - return new Request(url, request); - }; - })(); - const handler = async (c, next) => { - const res = await applicationHandler(replaceRequest(c.req.raw), ...getOptions(c)); - if (res) { - return res; - } - await next(); - }; - this.#addRoute(METHOD_NAME_ALL, mergePath(path, "*"), handler); - return this; - } - #addRoute(method, path, handler) { - method = method.toUpperCase(); - path = mergePath(this._basePath, path); - const r = { path, method, handler }; - this.router.add(method, path, [handler, r]); - this.routes.push(r); - } - #handleError(err, c) { - if (err instanceof Error) { - return this.errorHandler(err, c); - } - throw err; - } - #dispatch(request, executionCtx, env, method) { - if (method === "HEAD") { - return (async () => new Response(null, await this.#dispatch(request, executionCtx, env, "GET")))(); - } - const path = this.getPath(request, { env }); - const matchResult = this.router.match(method, path); - const c = new Context(request, { - path, - matchResult, - env, - executionCtx, - notFoundHandler: this.#notFoundHandler - }); - if (matchResult[0].length === 1) { - let res; - try { - res = matchResult[0][0][0][0](c, async () => { - c.res = await this.#notFoundHandler(c); - }); - } catch (err) { - return this.#handleError(err, c); - } - return res instanceof Promise ? res.then( - (resolved) => resolved || (c.finalized ? c.res : this.#notFoundHandler(c)) - ).catch((err) => this.#handleError(err, c)) : res ?? this.#notFoundHandler(c); - } - const composed = compose(matchResult[0], this.errorHandler, this.#notFoundHandler); - return (async () => { - try { - const context = await composed(c); - if (!context.finalized) { - throw new Error( - "Context is not finalized. Did you forget to return a Response object or `await next()`?" - ); - } - return context.res; - } catch (err) { - return this.#handleError(err, c); - } - })(); - } - fetch = (request, ...rest) => { - return this.#dispatch(request, rest[1], rest[0], request.method); - }; - request = (input, requestInit, Env, executionCtx) => { - if (input instanceof Request) { - return this.fetch(requestInit ? new Request(input, requestInit) : input, Env, executionCtx); - } - input = input.toString(); - return this.fetch( - new Request( - /^https?:\/\//.test(input) ? input : `http://localhost${mergePath("/", input)}`, - requestInit - ), - Env, - executionCtx - ); - }; - fire = () => { - addEventListener("fetch", (event) => { - event.respondWith(this.#dispatch(event.request, event, void 0, event.request.method)); - }); - }; -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/node.js -// src/router/reg-exp-router/node.ts -var LABEL_REG_EXP_STR = "[^/]+"; -var ONLY_WILDCARD_REG_EXP_STR = ".*"; -var TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)"; -var PATH_ERROR = Symbol(); -var regExpMetaChars = new Set(".\\+*[^]$()"); -function compareKey(a, b) { - if (a.length === 1) { - return b.length === 1 ? a < b ? -1 : 1 : -1; - } - if (b.length === 1) { - return 1; - } - if (a === ONLY_WILDCARD_REG_EXP_STR || a === TAIL_WILDCARD_REG_EXP_STR) { - return 1; - } else if (b === ONLY_WILDCARD_REG_EXP_STR || b === TAIL_WILDCARD_REG_EXP_STR) { - return -1; - } - if (a === LABEL_REG_EXP_STR) { - return 1; - } else if (b === LABEL_REG_EXP_STR) { - return -1; - } - return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length; -} -var Node = class { - #index; - #varIndex; - #children = /* @__PURE__ */ Object.create(null); - insert(tokens, index, paramMap, context, pathErrorCheckOnly) { - if (tokens.length === 0) { - if (this.#index !== void 0) { - throw PATH_ERROR; - } - if (pathErrorCheckOnly) { - return; - } - this.#index = index; - return; - } - const [token, ...restTokens] = tokens; - const pattern = token === "*" ? restTokens.length === 0 ? ["", "", ONLY_WILDCARD_REG_EXP_STR] : ["", "", LABEL_REG_EXP_STR] : token === "/*" ? ["", "", TAIL_WILDCARD_REG_EXP_STR] : token.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/); - let node; - if (pattern) { - const name = pattern[1]; - let regexpStr = pattern[2] || LABEL_REG_EXP_STR; - if (name && pattern[2]) { - regexpStr = regexpStr.replace(/^\((?!\?:)(?=[^)]+\)$)/, "(?:"); - if (/\((?!\?:)/.test(regexpStr)) { - throw PATH_ERROR; - } - } - node = this.#children[regexpStr]; - if (!node) { - if (Object.keys(this.#children).some( - (k) => k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR - )) { - throw PATH_ERROR; - } - if (pathErrorCheckOnly) { - return; - } - node = this.#children[regexpStr] = new Node(); - if (name !== "") { - node.#varIndex = context.varIndex++; - } - } - if (!pathErrorCheckOnly && name !== "") { - paramMap.push([name, node.#varIndex]); - } - } else { - node = this.#children[token]; - if (!node) { - if (Object.keys(this.#children).some( - (k) => k.length > 1 && k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR - )) { - throw PATH_ERROR; - } - if (pathErrorCheckOnly) { - return; - } - node = this.#children[token] = new Node(); - } - } - node.insert(restTokens, index, paramMap, context, pathErrorCheckOnly); - } - buildRegExpStr() { - const childKeys = Object.keys(this.#children).sort(compareKey); - const strList = childKeys.map((k) => { - const c = this.#children[k]; - return (typeof c.#varIndex === "number" ? `(${k})@${c.#varIndex}` : regExpMetaChars.has(k) ? `\\${k}` : k) + c.buildRegExpStr(); - }); - if (typeof this.#index === "number") { - strList.unshift(`#${this.#index}`); - } - if (strList.length === 0) { - return ""; - } - if (strList.length === 1) { - return strList[0]; - } - return "(?:" + strList.join("|") + ")"; - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/trie.js -// src/router/reg-exp-router/trie.ts - -var Trie = class { - #context = { varIndex: 0 }; - #root = new Node(); - insert(path, index, pathErrorCheckOnly) { - const paramAssoc = []; - const groups = []; - for (let i = 0; ; ) { - let replaced = false; - path = path.replace(/\{[^}]+\}/g, (m) => { - const mark = `@\\${i}`; - groups[i] = [mark, m]; - i++; - replaced = true; - return mark; - }); - if (!replaced) { - break; - } - } - const tokens = path.match(/(?::[^\/]+)|(?:\/\*$)|./g) || []; - for (let i = groups.length - 1; i >= 0; i--) { - const [mark] = groups[i]; - for (let j = tokens.length - 1; j >= 0; j--) { - if (tokens[j].indexOf(mark) !== -1) { - tokens[j] = tokens[j].replace(mark, groups[i][1]); - break; - } - } - } - this.#root.insert(tokens, index, paramAssoc, this.#context, pathErrorCheckOnly); - return paramAssoc; - } - buildRegExp() { - let regexp = this.#root.buildRegExpStr(); - if (regexp === "") { - return [/^$/, [], []]; - } - let captureIndex = 0; - const indexReplacementMap = []; - const paramReplacementMap = []; - regexp = regexp.replace(/#(\d+)|@(\d+)|\.\*\$/g, (_, handlerIndex, paramIndex) => { - if (handlerIndex !== void 0) { - indexReplacementMap[++captureIndex] = Number(handlerIndex); - return "$()"; - } - if (paramIndex !== void 0) { - paramReplacementMap[Number(paramIndex)] = ++captureIndex; - return ""; - } - return ""; - }); - return [new RegExp(`^${regexp}`), indexReplacementMap, paramReplacementMap]; - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/router.js -// src/router/reg-exp-router/router.ts - - - - -var emptyParam = []; -var nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)]; -var wildcardRegExpCache = /* @__PURE__ */ Object.create(null); -function buildWildcardRegExp(path) { - return wildcardRegExpCache[path] ??= new RegExp( - path === "*" ? "" : `^${path.replace( - /\/\*$|([.\\+*[^\]$()])/g, - (_, metaChar) => metaChar ? `\\${metaChar}` : "(?:|/.*)" - )}$` - ); -} -function clearWildcardRegExpCache() { - wildcardRegExpCache = /* @__PURE__ */ Object.create(null); -} -function buildMatcherFromPreprocessedRoutes(routes) { - const trie = new Trie(); - const handlerData = []; - if (routes.length === 0) { - return nullMatcher; - } - const routesWithStaticPathFlag = routes.map( - (route) => [!/\*|\/:/.test(route[0]), ...route] - ).sort( - ([isStaticA, pathA], [isStaticB, pathB]) => isStaticA ? 1 : isStaticB ? -1 : pathA.length - pathB.length - ); - const staticMap = /* @__PURE__ */ Object.create(null); - for (let i = 0, j = -1, len = routesWithStaticPathFlag.length; i < len; i++) { - const [pathErrorCheckOnly, path, handlers] = routesWithStaticPathFlag[i]; - if (pathErrorCheckOnly) { - staticMap[path] = [handlers.map(([h]) => [h, /* @__PURE__ */ Object.create(null)]), emptyParam]; - } else { - j++; - } - let paramAssoc; - try { - paramAssoc = trie.insert(path, j, pathErrorCheckOnly); - } catch (e) { - throw e === PATH_ERROR ? new UnsupportedPathError(path) : e; - } - if (pathErrorCheckOnly) { - continue; - } - handlerData[j] = handlers.map(([h, paramCount]) => { - const paramIndexMap = /* @__PURE__ */ Object.create(null); - paramCount -= 1; - for (; paramCount >= 0; paramCount--) { - const [key, value] = paramAssoc[paramCount]; - paramIndexMap[key] = value; - } - return [h, paramIndexMap]; - }); - } - const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp(); - for (let i = 0, len = handlerData.length; i < len; i++) { - for (let j = 0, len2 = handlerData[i].length; j < len2; j++) { - const map = handlerData[i][j]?.[1]; - if (!map) { - continue; - } - const keys = Object.keys(map); - for (let k = 0, len3 = keys.length; k < len3; k++) { - map[keys[k]] = paramReplacementMap[map[keys[k]]]; - } - } - } - const handlerMap = []; - for (const i in indexReplacementMap) { - handlerMap[i] = handlerData[indexReplacementMap[i]]; - } - return [regexp, handlerMap, staticMap]; -} -function findMiddleware(middleware, path) { - if (!middleware) { - return void 0; - } - for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) { - if (buildWildcardRegExp(k).test(path)) { - return [...middleware[k]]; - } - } - return void 0; -} -var RegExpRouter = class { - name = "RegExpRouter"; - #middleware; - #routes; - constructor() { - this.#middleware = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) }; - this.#routes = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) }; - } - add(method, path, handler) { - const middleware = this.#middleware; - const routes = this.#routes; - if (!middleware || !routes) { - throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT); - } - if (!middleware[method]) { - ; - [middleware, routes].forEach((handlerMap) => { - handlerMap[method] = /* @__PURE__ */ Object.create(null); - Object.keys(handlerMap[METHOD_NAME_ALL]).forEach((p) => { - handlerMap[method][p] = [...handlerMap[METHOD_NAME_ALL][p]]; - }); - }); - } - if (path === "/*") { - path = "*"; - } - const paramCount = (path.match(/\/:/g) || []).length; - if (/\*$/.test(path)) { - const re = buildWildcardRegExp(path); - if (method === METHOD_NAME_ALL) { - Object.keys(middleware).forEach((m) => { - middleware[m][path] ||= findMiddleware(middleware[m], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || []; - }); - } else { - middleware[method][path] ||= findMiddleware(middleware[method], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || []; - } - Object.keys(middleware).forEach((m) => { - if (method === METHOD_NAME_ALL || method === m) { - Object.keys(middleware[m]).forEach((p) => { - re.test(p) && middleware[m][p].push([handler, paramCount]); - }); - } - }); - Object.keys(routes).forEach((m) => { - if (method === METHOD_NAME_ALL || method === m) { - Object.keys(routes[m]).forEach( - (p) => re.test(p) && routes[m][p].push([handler, paramCount]) - ); - } - }); - return; - } - const paths = checkOptionalParameter(path) || [path]; - for (let i = 0, len = paths.length; i < len; i++) { - const path2 = paths[i]; - Object.keys(routes).forEach((m) => { - if (method === METHOD_NAME_ALL || method === m) { - routes[m][path2] ||= [ - ...findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || [] - ]; - routes[m][path2].push([handler, paramCount - len + i + 1]); - } - }); - } - } - match(method, path) { - clearWildcardRegExpCache(); - const matchers = this.#buildAllMatchers(); - this.match = (method2, path2) => { - const matcher = matchers[method2] || matchers[METHOD_NAME_ALL]; - const staticMatch = matcher[2][path2]; - if (staticMatch) { - return staticMatch; - } - const match = path2.match(matcher[0]); - if (!match) { - return [[], emptyParam]; - } - const index = match.indexOf("", 1); - return [matcher[1][index], match]; - }; - return this.match(method, path); - } - #buildAllMatchers() { - const matchers = /* @__PURE__ */ Object.create(null); - Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach((method) => { - matchers[method] ||= this.#buildMatcher(method); - }); - this.#middleware = this.#routes = void 0; - return matchers; - } - #buildMatcher(method) { - const routes = []; - let hasOwnRoute = method === METHOD_NAME_ALL; - [this.#middleware, this.#routes].forEach((r) => { - const ownRoute = r[method] ? Object.keys(r[method]).map((path) => [path, r[method][path]]) : []; - if (ownRoute.length !== 0) { - hasOwnRoute ||= true; - routes.push(...ownRoute); - } else if (method !== METHOD_NAME_ALL) { - routes.push( - ...Object.keys(r[METHOD_NAME_ALL]).map((path) => [path, r[METHOD_NAME_ALL][path]]) - ); - } - }); - if (!hasOwnRoute) { - return null; - } else { - return buildMatcherFromPreprocessedRoutes(routes); - } - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/reg-exp-router/index.js -// src/router/reg-exp-router/index.ts - - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/smart-router/router.js -// src/router/smart-router/router.ts - -var SmartRouter = class { - name = "SmartRouter"; - #routers = []; - #routes = []; - constructor(init) { - this.#routers = init.routers; - } - add(method, path, handler) { - if (!this.#routes) { - throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT); - } - this.#routes.push([method, path, handler]); - } - match(method, path) { - if (!this.#routes) { - throw new Error("Fatal error"); - } - const routers = this.#routers; - const routes = this.#routes; - const len = routers.length; - let i = 0; - let res; - for (; i < len; i++) { - const router = routers[i]; - try { - for (let i2 = 0, len2 = routes.length; i2 < len2; i2++) { - router.add(...routes[i2]); - } - res = router.match(method, path); - } catch (e) { - if (e instanceof UnsupportedPathError) { - continue; - } - throw e; - } - this.match = router.match.bind(router); - this.#routers = [router]; - this.#routes = void 0; - break; - } - if (i === len) { - throw new Error("Fatal error"); - } - this.name = `SmartRouter + ${this.activeRouter.name}`; - return res; - } - get activeRouter() { - if (this.#routes || this.#routers.length !== 1) { - throw new Error("No active router has been determined yet."); - } - return this.#routers[0]; - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/trie-router/node.js -// src/router/trie-router/node.ts - - -var node_Node = class { - #methods; - #children; - #patterns; - #order = 0; - #params = /* @__PURE__ */ Object.create(null); - constructor(method, handler, children) { - this.#children = children || /* @__PURE__ */ Object.create(null); - this.#methods = []; - if (method && handler) { - const m = /* @__PURE__ */ Object.create(null); - m[method] = { handler, possibleKeys: [], score: 0 }; - this.#methods = [m]; - } - this.#patterns = []; - } - insert(method, path, handler) { - this.#order = ++this.#order; - let curNode = this; - const parts = splitRoutingPath(path); - const possibleKeys = []; - for (let i = 0, len = parts.length; i < len; i++) { - const p = parts[i]; - if (Object.keys(curNode.#children).includes(p)) { - curNode = curNode.#children[p]; - const pattern2 = getPattern(p); - if (pattern2) { - possibleKeys.push(pattern2[1]); - } - continue; - } - curNode.#children[p] = new node_Node(); - const pattern = getPattern(p); - if (pattern) { - curNode.#patterns.push(pattern); - possibleKeys.push(pattern[1]); - } - curNode = curNode.#children[p]; - } - const m = /* @__PURE__ */ Object.create(null); - const handlerSet = { - handler, - possibleKeys: possibleKeys.filter((v, i, a) => a.indexOf(v) === i), - score: this.#order - }; - m[method] = handlerSet; - curNode.#methods.push(m); - return curNode; - } - #getHandlerSets(node, method, nodeParams, params) { - const handlerSets = []; - for (let i = 0, len = node.#methods.length; i < len; i++) { - const m = node.#methods[i]; - const handlerSet = m[method] || m[METHOD_NAME_ALL]; - const processedSet = {}; - if (handlerSet !== void 0) { - handlerSet.params = /* @__PURE__ */ Object.create(null); - for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) { - const key = handlerSet.possibleKeys[i2]; - const processed = processedSet[handlerSet.score]; - handlerSet.params[key] = params[key] && !processed ? params[key] : nodeParams[key] ?? params[key]; - processedSet[handlerSet.score] = true; - } - handlerSets.push(handlerSet); - } - } - return handlerSets; - } - search(method, path) { - const handlerSets = []; - this.#params = /* @__PURE__ */ Object.create(null); - const curNode = this; - let curNodes = [curNode]; - const parts = splitPath(path); - for (let i = 0, len = parts.length; i < len; i++) { - const part = parts[i]; - const isLast = i === len - 1; - const tempNodes = []; - for (let j = 0, len2 = curNodes.length; j < len2; j++) { - const node = curNodes[j]; - const nextNode = node.#children[part]; - if (nextNode) { - nextNode.#params = node.#params; - if (isLast) { - if (nextNode.#children["*"]) { - handlerSets.push( - ...this.#getHandlerSets( - nextNode.#children["*"], - method, - node.#params, - /* @__PURE__ */ Object.create(null) - ) - ); - } - handlerSets.push( - ...this.#getHandlerSets(nextNode, method, node.#params, /* @__PURE__ */ Object.create(null)) - ); - } else { - tempNodes.push(nextNode); - } - } - for (let k = 0, len3 = node.#patterns.length; k < len3; k++) { - const pattern = node.#patterns[k]; - const params = { ...node.#params }; - if (pattern === "*") { - const astNode = node.#children["*"]; - if (astNode) { - handlerSets.push( - ...this.#getHandlerSets(astNode, method, node.#params, /* @__PURE__ */ Object.create(null)) - ); - tempNodes.push(astNode); - } - continue; - } - if (part === "") { - continue; - } - const [key, name, matcher] = pattern; - const child = node.#children[key]; - const restPathString = parts.slice(i).join("/"); - if (matcher instanceof RegExp && matcher.test(restPathString)) { - params[name] = restPathString; - handlerSets.push(...this.#getHandlerSets(child, method, node.#params, params)); - continue; - } - if (matcher === true || matcher.test(part)) { - params[name] = part; - if (isLast) { - handlerSets.push(...this.#getHandlerSets(child, method, params, node.#params)); - if (child.#children["*"]) { - handlerSets.push( - ...this.#getHandlerSets(child.#children["*"], method, params, node.#params) - ); - } - } else { - child.#params = params; - tempNodes.push(child); - } - } - } - } - curNodes = tempNodes; - } - if (handlerSets.length > 1) { - handlerSets.sort((a, b) => { - return a.score - b.score; - }); - } - return [handlerSets.map(({ handler, params }) => [handler, params])]; - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/trie-router/router.js -// src/router/trie-router/router.ts - - -var TrieRouter = class { - name = "TrieRouter"; - #node; - constructor() { - this.#node = new node_Node(); - } - add(method, path, handler) { - const results = checkOptionalParameter(path); - if (results) { - for (let i = 0, len = results.length; i < len; i++) { - this.#node.insert(method, results[i], handler); - } - return; - } - this.#node.insert(method, path, handler); - } - match(method, path) { - return this.#node.search(method, path); - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/router/trie-router/index.js -// src/router/trie-router/index.ts - - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/hono.js -// src/hono.ts - - - - -var hono_Hono = class extends hono_base_Hono { - constructor(options = {}) { - super(options); - this.router = options.router ?? new SmartRouter({ - routers: [new RegExpRouter(), new TrieRouter()] - }); - } -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/index.js -// src/index.ts - - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/helper/adapter/index.js -// src/helper/adapter/index.ts -var env = (c, runtime) => { - const global = globalThis; - const globalEnv = global?.process?.env; - runtime ??= getRuntimeKey(); - const runtimeEnvHandlers = { - bun: () => globalEnv, - node: () => globalEnv, - "edge-light": () => globalEnv, - deno: () => { - return Deno.env.toObject(); - }, - workerd: () => c.env, - fastly: () => ({}), - other: () => ({}) - }; - return runtimeEnvHandlers[runtime](); -}; -var knownUserAgents = { - deno: "Deno", - bun: "Bun", - workerd: "Cloudflare-Workers", - node: "Node.js" -}; -var getRuntimeKey = () => { - const global = globalThis; - const userAgentSupported = typeof navigator !== "undefined" && typeof navigator.userAgent === "string"; - if (userAgentSupported) { - for (const [runtimeKey, userAgent] of Object.entries(knownUserAgents)) { - if (checkUserAgentEquals(userAgent)) { - return runtimeKey; - } - } - } - if (typeof global?.EdgeRuntime === "string") { - return "edge-light"; - } - if (global?.fastly !== void 0) { - return "fastly"; - } - if (global?.process?.release?.name === "node") { - return "node"; - } - return "other"; -}; -var checkUserAgentEquals = (platform) => { - const userAgent = navigator.userAgent; - return userAgent.startsWith(platform); -}; - - -;// CONCATENATED MODULE: ./node_modules/hono/dist/http-exception.js -// src/http-exception.ts -var http_exception_HTTPException = class extends Error { - res; - status; - constructor(status = 500, options) { - super(options?.message, { cause: options?.cause }); - this.res = options?.res; - this.status = status; - } - getResponse() { - if (this.res) { - const newResponse = new Response(this.res.body, { - status: this.status, - headers: this.res.headers - }); - return newResponse; - } - return new Response(this.message, { - status: this.status - }); - } -}; - - -;// CONCATENATED MODULE: ./node_modules/universal-user-agent/index.js -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && process.version !== undefined) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${ - process.arch - })`; - } - - return ""; -} - -;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/register.js -// @ts-check - -function register(state, name, method, options) { - if (typeof method !== "function") { - throw new Error("method for before hook must be a function"); - } - - if (!options) { - options = {}; - } - - if (Array.isArray(name)) { - return name.reverse().reduce((callback, name) => { - return register.bind(null, state, name, callback, options); - }, method)(); - } - - return Promise.resolve().then(() => { - if (!state.registry[name]) { - return method(options); - } - - return state.registry[name].reduce((method, registered) => { - return registered.hook.bind(null, method, options); - }, method)(); - }); -} - -;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/add.js -// @ts-check - -function addHook(state, kind, name, hook) { - const orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = (method, options) => { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - hook = (method, options) => { - let result; - return Promise.resolve() - .then(method.bind(null, options)) - .then((result_) => { - result = result_; - return orig(result, options); - }) - .then(() => { - return result; - }); - }; - } - - if (kind === "error") { - hook = (method, options) => { - return Promise.resolve() - .then(method.bind(null, options)) - .catch((error) => { - return orig(error, options); - }); - }; - } - - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} - -;// CONCATENATED MODULE: ./node_modules/before-after-hook/lib/remove.js -// @ts-check - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - const index = state.registry[name] - .map((registered) => { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); -} - -;// CONCATENATED MODULE: ./node_modules/before-after-hook/index.js -// @ts-check - - - - - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -const bind = Function.bind; -const bindable = bind.bind(bind); - -function bindApi(hook, state, name) { - const removeHookRef = bindable(removeHook, null).apply( - null, - name ? [state, name] : [state] - ); - hook.api = { remove: removeHookRef }; - hook.remove = removeHookRef; - ["before", "error", "after", "wrap"].forEach((kind) => { - const args = name ? [state, kind, name] : [state, kind]; - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); - }); -} - -function Singular() { - const singularHookName = Symbol("Singular"); - const singularHookState = { - registry: {}, - }; - const singularHook = register.bind(null, singularHookState, singularHookName); - bindApi(singularHook, singularHookState, singularHookName); - return singularHook; -} - -function Collection() { - const state = { - registry: {}, - }; - - const hook = register.bind(null, state); - bindApi(hook, state); - - return hook; -} - -/* harmony default export */ const before_after_hook = ({ Singular, Collection }); - -;// CONCATENATED MODULE: ./node_modules/@octokit/endpoint/dist-bundle/index.js -// pkg/dist-src/defaults.js - - -// pkg/dist-src/version.js -var VERSION = "0.0.0-development"; - -// pkg/dist-src/defaults.js -var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; -var DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "" - } -}; - -// pkg/dist-src/util/lowercase-keys.js -function lowercaseKeys(object) { - if (!object) { - return {}; - } - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -// pkg/dist-src/util/is-plain-object.js -function isPlainObject(value) { - if (typeof value !== "object" || value === null) - return false; - if (Object.prototype.toString.call(value) !== "[object Object]") - return false; - const proto = Object.getPrototypeOf(value); - if (proto === null) - return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); -} - -// pkg/dist-src/util/merge-deep.js -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach((key) => { - if (isPlainObject(options[key])) { - if (!(key in defaults)) - Object.assign(result, { [key]: options[key] }); - else - result[key] = mergeDeep(defaults[key], options[key]); - } else { - Object.assign(result, { [key]: options[key] }); - } - }); - return result; -} - -// pkg/dist-src/util/remove-undefined-properties.js -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === void 0) { - delete obj[key]; - } - } - return obj; -} - -// pkg/dist-src/merge.js -function merge(defaults, route, options) { - if (typeof route === "string") { - let [method, url] = route.split(" "); - options = Object.assign(url ? { method, url } : { url: method }, options); - } else { - options = Object.assign({}, route); - } - options.headers = lowercaseKeys(options.headers); - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); - if (options.url === "/graphql") { - if (defaults && defaults.mediaType.previews?.length) { - mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( - (preview) => !mergedOptions.mediaType.previews.includes(preview) - ).concat(mergedOptions.mediaType.previews); - } - mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); - } - return mergedOptions; -} - -// pkg/dist-src/util/add-query-parameters.js -function addQueryParameters(url, parameters) { - const separator = /\?/.test(url) ? "&" : "?"; - const names = Object.keys(parameters); - if (names.length === 0) { - return url; - } - return url + separator + names.map((name) => { - if (name === "q") { - return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); - } - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -// pkg/dist-src/util/extract-url-variable-names.js -var urlVariableRegex = /\{[^}]+\}/g; -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - if (!matches) { - return []; - } - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -// pkg/dist-src/util/omit.js -function omit(object, keysToOmit) { - const result = { __proto__: null }; - for (const key of Object.keys(object)) { - if (keysToOmit.indexOf(key) === -1) { - result[key] = object[key]; - } - } - return result; -} - -// pkg/dist-src/util/url-template.js -function encodeReserved(str) { - return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { - if (!/%[0-9A-Fa-f]/.test(part)) { - part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); - } - return part; - }).join(""); -} -function encodeUnreserved(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} -function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); - if (key) { - return encodeUnreserved(key) + "=" + value; - } else { - return value; - } -} -function isDefined(value) { - return value !== void 0 && value !== null; -} -function isKeyOperator(operator) { - return operator === ";" || operator === "&" || operator === "?"; -} -function getValues(context, operator, key, modifier) { - var value = context[key], result = []; - if (isDefined(value) && value !== "") { - if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { - value = value.toString(); - if (modifier && modifier !== "*") { - value = value.substring(0, parseInt(modifier, 10)); - } - result.push( - encodeValue(operator, value, isKeyOperator(operator) ? key : "") - ); - } else { - if (modifier === "*") { - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - result.push( - encodeValue(operator, value2, isKeyOperator(operator) ? key : "") - ); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); - } - } else { - const tmp = []; - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - tmp.push(encodeValue(operator, value2)); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); - } - }); - } - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); - } else if (tmp.length !== 0) { - result.push(tmp.join(",")); - } - } - } - } else { - if (operator === ";") { - if (isDefined(value)) { - result.push(encodeUnreserved(key)); - } - } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); - } else if (value === "") { - result.push(""); - } - } - return result; -} -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - template = template.replace( - /\{([^\{\}]+)\}|([^\{\}]+)/g, - function(_, expression, literal) { - if (expression) { - let operator = ""; - const values = []; - if (operators.indexOf(expression.charAt(0)) !== -1) { - operator = expression.charAt(0); - expression = expression.substr(1); - } - expression.split(/,/g).forEach(function(variable) { - var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); - }); - if (operator && operator !== "+") { - var separator = ","; - if (operator === "?") { - separator = "&"; - } else if (operator !== "#") { - separator = operator; - } - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); - } - } - ); - if (template === "/") { - return template; - } else { - return template.replace(/\/$/, ""); - } -} - -// pkg/dist-src/parse.js -function parse(options) { - let method = options.method.toUpperCase(); - let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); - let headers = Object.assign({}, options.headers); - let body; - let parameters = omit(options, [ - "method", - "baseUrl", - "url", - "headers", - "request", - "mediaType" - ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); - if (!/^http/.test(url)) { - url = options.baseUrl + url; - } - const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); - const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); - if (!isBinaryRequest) { - if (options.mediaType.format) { - headers.accept = headers.accept.split(/,/).map( - (format) => format.replace( - /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, - `application/vnd$1$2.${options.mediaType.format}` - ) - ).join(","); - } - if (url.endsWith("/graphql")) { - if (options.mediaType.previews?.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); - } - } - } - if (["GET", "HEAD"].includes(method)) { - url = addQueryParameters(url, remainingParameters); - } else { - if ("data" in remainingParameters) { - body = remainingParameters.data; - } else { - if (Object.keys(remainingParameters).length) { - body = remainingParameters; - } - } - } - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } - return Object.assign( - { method, url, headers }, - typeof body !== "undefined" ? { body } : null, - options.request ? { request: options.request } : null - ); -} - -// pkg/dist-src/endpoint-with-defaults.js -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); -} - -// pkg/dist-src/with-defaults.js -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS2 = merge(oldDefaults, newDefaults); - const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); - return Object.assign(endpoint2, { - DEFAULTS: DEFAULTS2, - defaults: withDefaults.bind(null, DEFAULTS2), - merge: merge.bind(null, DEFAULTS2), - parse - }); -} - -// pkg/dist-src/index.js -var endpoint = withDefaults(null, DEFAULTS); - - -;// CONCATENATED MODULE: ./node_modules/@octokit/request-error/dist-src/index.js -class RequestError extends Error { - name; - /** - * http status code - */ - status; - /** - * Request options that lead to the error. - */ - request; - /** - * Response object if a response was received - */ - response; - constructor(message, statusCode, options) { - super(message); - this.name = "HttpError"; - this.status = Number.parseInt(statusCode); - if (Number.isNaN(this.status)) { - this.status = 0; - } - if ("response" in options) { - this.response = options.response; - } - const requestCopy = Object.assign({}, options.request); - if (options.request.headers.authorization) { - requestCopy.headers = Object.assign({}, options.request.headers, { - authorization: options.request.headers.authorization.replace( - / .*$/, - " [REDACTED]" - ) - }); - } - requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); - this.request = requestCopy; - } -} - - -;// CONCATENATED MODULE: ./node_modules/@octokit/request/dist-bundle/index.js -// pkg/dist-src/index.js - - -// pkg/dist-src/defaults.js - - -// pkg/dist-src/version.js -var dist_bundle_VERSION = "0.0.0-development"; - -// pkg/dist-src/defaults.js -var defaults_default = { - headers: { - "user-agent": `octokit-request.js/${dist_bundle_VERSION} ${getUserAgent()}` - } -}; - -// pkg/dist-src/is-plain-object.js -function dist_bundle_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); -} - -// pkg/dist-src/fetch-wrapper.js - -async function fetchWrapper(requestOptions) { - const fetch = requestOptions.request?.fetch || globalThis.fetch; - if (!fetch) { - throw new Error( - "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" - ); - } - const log = requestOptions.request?.log || console; - const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false; - const body = dist_bundle_isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body) ? JSON.stringify(requestOptions.body) : requestOptions.body; - const requestHeaders = Object.fromEntries( - Object.entries(requestOptions.headers).map(([name, value]) => [ - name, - String(value) - ]) - ); - let fetchResponse; - try { - fetchResponse = await fetch(requestOptions.url, { - method: requestOptions.method, - body, - redirect: requestOptions.request?.redirect, - headers: requestHeaders, - signal: requestOptions.request?.signal, - // duplex must be set if request.body is ReadableStream or Async Iterables. - // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. - ...requestOptions.body && { duplex: "half" } - }); - } catch (error) { - let message = "Unknown Error"; - if (error instanceof Error) { - if (error.name === "AbortError") { - error.status = 500; - throw error; - } - message = error.message; - if (error.name === "TypeError" && "cause" in error) { - if (error.cause instanceof Error) { - message = error.cause.message; - } else if (typeof error.cause === "string") { - message = error.cause; - } - } - } - const requestError = new RequestError(message, 500, { - request: requestOptions - }); - requestError.cause = error; - throw requestError; - } - const status = fetchResponse.status; - const url = fetchResponse.url; - const responseHeaders = {}; - for (const [key, value] of fetchResponse.headers) { - responseHeaders[key] = value; - } - const octokitResponse = { - url, - status, - headers: responseHeaders, - data: "" - }; - if ("deprecation" in responseHeaders) { - const matches = responseHeaders.link && responseHeaders.link.match(/<([^>]+)>; rel="deprecation"/); - const deprecationLink = matches && matches.pop(); - log.warn( - `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` - ); - } - if (status === 204 || status === 205) { - return octokitResponse; - } - if (requestOptions.method === "HEAD") { - if (status < 400) { - return octokitResponse; - } - throw new RequestError(fetchResponse.statusText, status, { - response: octokitResponse, - request: requestOptions - }); - } - if (status === 304) { - octokitResponse.data = await getResponseData(fetchResponse); - throw new RequestError("Not modified", status, { - response: octokitResponse, - request: requestOptions - }); - } - if (status >= 400) { - octokitResponse.data = await getResponseData(fetchResponse); - throw new RequestError(toErrorMessage(octokitResponse.data), status, { - response: octokitResponse, - request: requestOptions - }); - } - octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body; - return octokitResponse; -} -async function getResponseData(response) { - const contentType = response.headers.get("content-type"); - if (/application\/json/.test(contentType)) { - return response.json().catch(() => response.text()).catch(() => ""); - } - if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { - return response.text(); - } - return response.arrayBuffer(); -} -function toErrorMessage(data) { - if (typeof data === "string") { - return data; - } - if (data instanceof ArrayBuffer) { - return "Unknown error"; - } - if ("message" in data) { - const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : ""; - return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`; - } - return `Unknown error: ${JSON.stringify(data)}`; -} - -// pkg/dist-src/with-defaults.js -function dist_bundle_withDefaults(oldEndpoint, newDefaults) { - const endpoint2 = oldEndpoint.defaults(newDefaults); - const newApi = function(route, parameters) { - const endpointOptions = endpoint2.merge(route, parameters); - if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint2.parse(endpointOptions)); - } - const request2 = (route2, parameters2) => { - return fetchWrapper( - endpoint2.parse(endpoint2.merge(route2, parameters2)) - ); - }; - Object.assign(request2, { - endpoint: endpoint2, - defaults: dist_bundle_withDefaults.bind(null, endpoint2) - }); - return endpointOptions.request.hook(request2, endpointOptions); - }; - return Object.assign(newApi, { - endpoint: endpoint2, - defaults: dist_bundle_withDefaults.bind(null, endpoint2) - }); -} - -// pkg/dist-src/index.js -var request = dist_bundle_withDefaults(endpoint, defaults_default); - - -;// CONCATENATED MODULE: ./node_modules/@octokit/graphql/dist-bundle/index.js -// pkg/dist-src/index.js - - - -// pkg/dist-src/version.js -var graphql_dist_bundle_VERSION = "0.0.0-development"; - -// pkg/dist-src/with-defaults.js - - -// pkg/dist-src/graphql.js - - -// pkg/dist-src/error.js -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors: -` + data.errors.map((e) => ` - ${e.message}`).join("\n"); -} -var GraphqlResponseError = class extends Error { - constructor(request2, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request2; - this.headers = headers; - this.response = response; - this.errors = response.errors; - this.data = response.data; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } - name = "GraphqlResponseError"; - errors; - data; -}; - -// pkg/dist-src/graphql.js -var NON_VARIABLE_OPTIONS = [ - "method", - "baseUrl", - "url", - "headers", - "request", - "query", - "mediaType" -]; -var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request2, query, options) { - if (options) { - if (typeof query === "string" && "query" in options) { - return Promise.reject( - new Error(`[@octokit/graphql] "query" cannot be used as variable name`) - ); - } - for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) - continue; - return Promise.reject( - new Error( - `[@octokit/graphql] "${key}" cannot be used as variable name` - ) - ); - } - } - const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; - const requestOptions = Object.keys( - parsedOptions - ).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { - result[key] = parsedOptions[key]; - return result; - } - if (!result.variables) { - result.variables = {}; - } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); - const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); - } - return request2(requestOptions).then((response) => { - if (response.data.errors) { - const headers = {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } - throw new GraphqlResponseError( - requestOptions, - headers, - response.data - ); - } - return response.data.data; - }); -} - -// pkg/dist-src/with-defaults.js -function graphql_dist_bundle_withDefaults(request2, newDefaults) { - const newRequest = request2.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; - return Object.assign(newApi, { - defaults: graphql_dist_bundle_withDefaults.bind(null, newRequest), - endpoint: newRequest.endpoint - }); -} - -// pkg/dist-src/index.js -var graphql2 = graphql_dist_bundle_withDefaults(request, { - headers: { - "user-agent": `octokit-graphql.js/${graphql_dist_bundle_VERSION} ${getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return graphql_dist_bundle_withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); -} - - -;// CONCATENATED MODULE: ./node_modules/@octokit/auth-token/dist-bundle/index.js -// pkg/dist-src/auth.js -var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -var REGEX_IS_INSTALLATION = /^ghs_/; -var 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, - tokenType - }; -} - -// pkg/dist-src/with-authorization-prefix.js -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - return `token ${token}`; -} - -// pkg/dist-src/hook.js -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge( - route, - parameters - ); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); -} - -// pkg/dist-src/index.js -var createTokenAuth = function createTokenAuth2(token) { - if (!token) { - throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); - } - if (typeof token !== "string") { - throw new Error( - "[@octokit/auth-token] Token passed to createTokenAuth is not a string" - ); - } - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) - }); -}; - - -;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/version.js -const version_VERSION = "6.1.2"; - - -;// CONCATENATED MODULE: ./node_modules/@octokit/core/dist-src/index.js - - - - - - -const noop = () => { -}; -const consoleWarn = console.warn.bind(console); -const consoleError = console.error.bind(console); -const userAgentTrail = `octokit-core.js/${version_VERSION} ${getUserAgent()}`; -class Octokit { - static VERSION = version_VERSION; - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args) { - const options = args[0] || {}; - if (typeof defaults === "function") { - super(defaults(options)); - return; - } - super( - Object.assign( - {}, - defaults, - options, - options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null - ) - ); - } - }; - return OctokitWithDefaults; - } - static plugins = []; - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - static plugin(...newPlugins) { - const currentPlugins = this.plugins; - const NewOctokit = class extends this { - static plugins = currentPlugins.concat( - newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) - ); - }; - return NewOctokit; - } - constructor(options = {}) { - const hook = new before_after_hook.Collection(); - const requestDefaults = { - baseUrl: request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; - } - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; - } - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; - } - this.request = request.defaults(requestDefaults); - this.graphql = withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign( - { - debug: noop, - info: noop, - warn: consoleWarn, - error: consoleError - }, - options.log - ); - this.hook = hook; - if (!options.authStrategy) { - if (!options.auth) { - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - const auth = createTokenAuth(options.auth); - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { authStrategy, ...otherOptions } = options; - const auth = authStrategy( - Object.assign( - { - request: this.request, - log: this.log, - // we pass the current octokit instance as well as its constructor options - // to allow for authentication strategies that return a new octokit instance - // that shares the same internal state as the current one. The original - // requirement for this was the "event-octokit" authentication strategy - // of https://github.com/probot/octokit-auth-probot. - octokit: this, - octokitOptions: otherOptions - }, - options.auth - ) - ); - hook.wrap("request", auth.hook); - this.auth = auth; - } - const classConstructor = this.constructor; - for (let i = 0; i < classConstructor.plugins.length; ++i) { - Object.assign(this, classConstructor.plugins[i](this, options)); - } - } - // assigned during constructor - request; - graphql; - log; - hook; - // TODO: type `octokit.auth` based on passed options.authStrategy - auth; -} - - -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-paginate-rest/dist-bundle/index.js -// pkg/dist-src/version.js -var plugin_paginate_rest_dist_bundle_VERSION = "0.0.0-development"; - -// pkg/dist-src/normalize-paginated-list-response.js -function normalizePaginatedListResponse(response) { - if (!response.data) { - return { - ...response, - data: [] - }; - } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; - } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } - response.data.total_count = totalCount; - return response; -} - -// pkg/dist-src/iterator.js -function iterator(octokit, route, parameters) { - const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = typeof route === "function" ? route : octokit.request; - const method = options.method; - const headers = options.headers; - let url = options.url; - return { - [Symbol.asyncIterator]: () => ({ - async next() { - if (!url) return { done: true }; - try { - const response = await requestMethod({ method, url, headers }); - const normalizedResponse = normalizePaginatedListResponse(response); - url = ((normalizedResponse.headers.link || "").match( - /<([^>]+)>;\s*rel="next"/ - ) || [])[1]; - return { value: normalizedResponse }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } - }) - }; -} - -// pkg/dist-src/paginate.js -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = void 0; - } - return gather( - octokit, - [], - iterator(octokit, route, parameters)[Symbol.asyncIterator](), - mapFn - ); -} -function gather(octokit, results, iterator2, mapFn) { - return iterator2.next().then((result) => { - if (result.done) { - return results; - } - let earlyExit = false; - function done() { - earlyExit = true; - } - results = results.concat( - mapFn ? mapFn(result.value, done) : result.value.data - ); - if (earlyExit) { - return results; - } - return gather(octokit, results, iterator2, mapFn); - }); -} - -// pkg/dist-src/compose-paginate.js -var composePaginateRest = Object.assign(paginate, { - iterator -}); - -// pkg/dist-src/generated/paginating-endpoints.js -var paginatingEndpoints = (/* unused pure expression or super */ null && ([ - "GET /advisories", - "GET /app/hook/deliveries", - "GET /app/installation-requests", - "GET /app/installations", - "GET /assignments/{assignment_id}/accepted_assignments", - "GET /classrooms", - "GET /classrooms/{classroom_id}/assignments", - "GET /enterprises/{enterprise}/copilot/usage", - "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/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}/copilot/billing/seats", - "GET /orgs/{org}/copilot/usage", - "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}/organization-roles/{role_id}/teams", - "GET /orgs/{org}/organization-roles/{role_id}/users", - "GET /orgs/{org}/outside_collaborators", - "GET /orgs/{org}/packages", - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - "GET /orgs/{org}/personal-access-token-requests", - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", - "GET /orgs/{org}/personal-access-tokens", - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", - "GET /orgs/{org}/projects", - "GET /orgs/{org}/properties/values", - "GET /orgs/{org}/public_members", - "GET /orgs/{org}/repos", - "GET /orgs/{org}/rulesets", - "GET /orgs/{org}/rulesets/rule-suites", - "GET /orgs/{org}/secret-scanning/alerts", - "GET /orgs/{org}/security-advisories", - "GET /orgs/{org}/team/{team_slug}/copilot/usage", - "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/{owner}/{repo}/actions/artifacts", - "GET /repos/{owner}/{repo}/actions/caches", - "GET /repos/{owner}/{repo}/actions/organization-secrets", - "GET /repos/{owner}/{repo}/actions/organization-variables", - "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}/activity", - "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}/environments/{environment_name}/deployment_protection_rules/apps", - "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets", - "GET /repos/{owner}/{repo}/environments/{environment_name}/variables", - "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}/rules/branches/{branch}", - "GET /repos/{owner}/{repo}/rulesets", - "GET /repos/{owner}/{repo}/rulesets/rule-suites", - "GET /repos/{owner}/{repo}/secret-scanning/alerts", - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", - "GET /repos/{owner}/{repo}/security-advisories", - "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 /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/social_accounts", - "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}/social_accounts", - "GET /users/{username}/ssh_signing_keys", - "GET /users/{username}/starred", - "GET /users/{username}/subscriptions" -])); - -// pkg/dist-src/paginating-endpoints.js -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); - } else { - return false; - } -} - -// pkg/dist-src/index.js -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; -} -paginateRest.VERSION = plugin_paginate_rest_dist_bundle_VERSION; - - -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js -const dist_src_version_VERSION = "13.2.6"; - -//# sourceMappingURL=version.js.map - -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js -const Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: [ - "POST /orgs/{org}/actions/runners/{runner_id}/labels" - ], - addCustomLabelsToSelfHostedRunnerForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - approveWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" - ], - cancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" - ], - createEnvironmentVariable: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/variables" - ], - createOrUpdateEnvironmentSecret: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" - ], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - createOrgVariable: ["POST /orgs/{org}/actions/variables"], - createRegistrationTokenForOrg: [ - "POST /orgs/{org}/actions/runners/registration-token" - ], - createRegistrationTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/registration-token" - ], - createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], - createRemoveTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/remove-token" - ], - createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], - createWorkflowDispatch: [ - "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" - ], - deleteActionsCacheById: [ - "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" - ], - deleteActionsCacheByKey: [ - "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" - ], - deleteArtifact: [ - "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" - ], - deleteEnvironmentSecret: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" - ], - deleteEnvironmentVariable: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - deleteRepoVariable: [ - "DELETE /repos/{owner}/{repo}/actions/variables/{name}" - ], - deleteSelfHostedRunnerFromOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}" - ], - deleteSelfHostedRunnerFromRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], - deleteWorkflowRunLogs: [ - "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - disableSelectedRepositoryGithubActionsOrganization: [ - "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - disableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" - ], - downloadArtifact: [ - "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" - ], - downloadJobLogsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" - ], - downloadWorkflowRunAttemptLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" - ], - downloadWorkflowRunLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - enableSelectedRepositoryGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - enableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" - ], - forceCancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" - ], - generateRunnerJitconfigForOrg: [ - "POST /orgs/{org}/actions/runners/generate-jitconfig" - ], - generateRunnerJitconfigForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" - ], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: [ - "GET /orgs/{org}/actions/cache/usage-by-repository" - ], - getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], - getAllowedActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/selected-actions" - ], - getAllowedActionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], - getCustomOidcSubClaimForRepo: [ - "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - getEnvironmentPublicKey: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key" - ], - getEnvironmentSecret: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}" - ], - getEnvironmentVariable: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" - ], - getGithubActionsDefaultWorkflowPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions/workflow" - ], - getGithubActionsDefaultWorkflowPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/workflow" - ], - getGithubActionsPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions" - ], - getGithubActionsPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions" - ], - getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], - getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], - getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], - getPendingDeploymentsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - getRepoPermissions: [ - "GET /repos/{owner}/{repo}/actions/permissions", - {}, - { renamed: ["actions", "getGithubActionsPermissionsRepository"] } - ], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], - getReviewsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" - ], - getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], - getSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], - getWorkflowAccessToRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/access" - ], - getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], - getWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" - ], - getWorkflowRunUsage: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" - ], - getWorkflowUsage: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" - ], - listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], - listEnvironmentSecrets: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets" - ], - listEnvironmentVariables: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/variables" - ], - listJobsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" - ], - listJobsForWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" - ], - listLabelsForSelfHostedRunnerForOrg: [ - "GET /orgs/{org}/actions/runners/{runner_id}/labels" - ], - listLabelsForSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], - listOrgVariables: ["GET /orgs/{org}/actions/variables"], - listRepoOrganizationSecrets: [ - "GET /repos/{owner}/{repo}/actions/organization-secrets" - ], - listRepoOrganizationVariables: [ - "GET /repos/{owner}/{repo}/actions/organization-variables" - ], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], - listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], - listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], - listRunnerApplicationsForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/downloads" - ], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - listSelectedReposForOrgVariable: [ - "GET /orgs/{org}/actions/variables/{name}/repositories" - ], - listSelectedRepositoriesEnabledGithubActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/repositories" - ], - listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], - listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], - listWorkflowRunArtifacts: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" - ], - listWorkflowRuns: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" - ], - listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], - reRunJobForWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" - ], - reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], - reRunWorkflowFailedJobs: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" - ], - removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" - ], - removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - removeCustomLabelFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" - ], - removeCustomLabelFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgVariable: [ - "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - reviewCustomGatesForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" - ], - reviewPendingDeploymentsForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - setAllowedActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/selected-actions" - ], - setAllowedActionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - setCustomLabelsForSelfHostedRunnerForOrg: [ - "PUT /orgs/{org}/actions/runners/{runner_id}/labels" - ], - setCustomLabelsForSelfHostedRunnerForRepo: [ - "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - setCustomOidcSubClaimForRepo: [ - "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - setGithubActionsDefaultWorkflowPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/workflow" - ], - setGithubActionsDefaultWorkflowPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/workflow" - ], - setGithubActionsPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions" - ], - setGithubActionsPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories" - ], - setSelectedRepositoriesEnabledGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories" - ], - setWorkflowAccessToRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/access" - ], - updateEnvironmentVariable: [ - "PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}" - ], - updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], - updateRepoVariable: [ - "PATCH /repos/{owner}/{repo}/actions/variables/{name}" - ] - }, - activity: { - checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], - deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], - deleteThreadSubscription: [ - "DELETE /notifications/threads/{thread_id}/subscription" - ], - getFeeds: ["GET /feeds"], - getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], - getThread: ["GET /notifications/threads/{thread_id}"], - getThreadSubscriptionForAuthenticatedUser: [ - "GET /notifications/threads/{thread_id}/subscription" - ], - listEventsForAuthenticatedUser: ["GET /users/{username}/events"], - listNotificationsForAuthenticatedUser: ["GET /notifications"], - listOrgEventsForAuthenticatedUser: [ - "GET /users/{username}/events/orgs/{org}" - ], - listPublicEvents: ["GET /events"], - listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], - listPublicEventsForUser: ["GET /users/{username}/events/public"], - listPublicOrgEvents: ["GET /orgs/{org}/events"], - listReceivedEventsForUser: ["GET /users/{username}/received_events"], - listReceivedPublicEventsForUser: [ - "GET /users/{username}/received_events/public" - ], - listRepoEvents: ["GET /repos/{owner}/{repo}/events"], - listRepoNotificationsForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/notifications" - ], - listReposStarredByAuthenticatedUser: ["GET /user/starred"], - listReposStarredByUser: ["GET /users/{username}/starred"], - listReposWatchedByUser: ["GET /users/{username}/subscriptions"], - listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], - listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], - listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], - markNotificationsAsRead: ["PUT /notifications"], - markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], - markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], - markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], - setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], - setThreadSubscription: [ - "PUT /notifications/threads/{thread_id}/subscription" - ], - starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], - unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] - }, - apps: { - addRepoToInstallation: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } - ], - addRepoToInstallationForAuthenticatedUser: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}" - ], - checkToken: ["POST /applications/{client_id}/token"], - createFromManifest: ["POST /app-manifests/{code}/conversions"], - createInstallationAccessToken: [ - "POST /app/installations/{installation_id}/access_tokens" - ], - deleteAuthorization: ["DELETE /applications/{client_id}/grant"], - deleteInstallation: ["DELETE /app/installations/{installation_id}"], - deleteToken: ["DELETE /applications/{client_id}/token"], - getAuthenticated: ["GET /app"], - getBySlug: ["GET /apps/{app_slug}"], - getInstallation: ["GET /app/installations/{installation_id}"], - getOrgInstallation: ["GET /orgs/{org}/installation"], - getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], - getSubscriptionPlanForAccount: [ - "GET /marketplace_listing/accounts/{account_id}" - ], - getSubscriptionPlanForAccountStubbed: [ - "GET /marketplace_listing/stubbed/accounts/{account_id}" - ], - getUserInstallation: ["GET /users/{username}/installation"], - getWebhookConfigForApp: ["GET /app/hook/config"], - getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], - listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], - listAccountsForPlanStubbed: [ - "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" - ], - listInstallationReposForAuthenticatedUser: [ - "GET /user/installations/{installation_id}/repositories" - ], - listInstallationRequestsForAuthenticatedApp: [ - "GET /app/installation-requests" - ], - listInstallations: ["GET /app/installations"], - listInstallationsForAuthenticatedUser: ["GET /user/installations"], - listPlans: ["GET /marketplace_listing/plans"], - listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], - listReposAccessibleToInstallation: ["GET /installation/repositories"], - listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], - listSubscriptionsForAuthenticatedUserStubbed: [ - "GET /user/marketplace_purchases/stubbed" - ], - listWebhookDeliveries: ["GET /app/hook/deliveries"], - redeliverWebhookDelivery: [ - "POST /app/hook/deliveries/{delivery_id}/attempts" - ], - removeRepoFromInstallation: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } - ], - removeRepoFromInstallationForAuthenticatedUser: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}" - ], - resetToken: ["PATCH /applications/{client_id}/token"], - revokeInstallationAccessToken: ["DELETE /installation/token"], - scopeToken: ["POST /applications/{client_id}/token/scoped"], - suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], - unsuspendInstallation: [ - "DELETE /app/installations/{installation_id}/suspended" - ], - updateWebhookConfigForApp: ["PATCH /app/hook/config"] - }, - billing: { - getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], - getGithubActionsBillingUser: [ - "GET /users/{username}/settings/billing/actions" - ], - getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], - getGithubPackagesBillingUser: [ - "GET /users/{username}/settings/billing/packages" - ], - getSharedStorageBillingOrg: [ - "GET /orgs/{org}/settings/billing/shared-storage" - ], - getSharedStorageBillingUser: [ - "GET /users/{username}/settings/billing/shared-storage" - ] - }, - checks: { - create: ["POST /repos/{owner}/{repo}/check-runs"], - createSuite: ["POST /repos/{owner}/{repo}/check-suites"], - get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], - getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], - listAnnotations: [ - "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" - ], - listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], - listForSuite: [ - "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" - ], - listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], - rerequestRun: [ - "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" - ], - rerequestSuite: [ - "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" - ], - setSuitesPreferences: [ - "PATCH /repos/{owner}/{repo}/check-suites/preferences" - ], - update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] - }, - codeScanning: { - deleteAnalysis: [ - "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" - ], - getAlert: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", - {}, - { renamedParameters: { alert_id: "alert_number" } } - ], - getAnalysis: [ - "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" - ], - getCodeqlDatabase: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" - ], - getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - listAlertInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" - ], - listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], - listAlertsInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", - {}, - { renamed: ["codeScanning", "listAlertInstances"] } - ], - listCodeqlDatabases: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" - ], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" - ], - updateDefaultSetup: [ - "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" - ], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - checkPermissionsForDevcontainer: [ - "GET /repos/{owner}/{repo}/codespaces/permissions_check" - ], - codespaceMachinesForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/machines" - ], - createForAuthenticatedUser: ["POST /user/codespaces"], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - createOrUpdateSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}" - ], - createWithPrForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" - ], - createWithRepoForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/codespaces" - ], - deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], - deleteFromOrganization: [ - "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - deleteSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}" - ], - exportForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/exports" - ], - getCodespacesForUserInOrg: [ - "GET /orgs/{org}/members/{username}/codespaces" - ], - getExportDetailsForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/exports/{export_id}" - ], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], - getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], - getPublicKeyForAuthenticatedUser: [ - "GET /user/codespaces/secrets/public-key" - ], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - getSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}" - ], - listDevcontainersInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/devcontainers" - ], - listForAuthenticatedUser: ["GET /user/codespaces"], - listInOrganization: [ - "GET /orgs/{org}/codespaces", - {}, - { renamedParameters: { org_id: "org" } } - ], - listInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces" - ], - listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}/repositories" - ], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - preFlightWithRepoForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/new" - ], - publishForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/publish" - ], - removeRepositoryForSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - repoMachinesForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/machines" - ], - setRepositoriesForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], - stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], - stopInOrganization: [ - "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" - ], - updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] - }, - copilot: { - addCopilotSeatsForTeams: [ - "POST /orgs/{org}/copilot/billing/selected_teams" - ], - addCopilotSeatsForUsers: [ - "POST /orgs/{org}/copilot/billing/selected_users" - ], - cancelCopilotSeatAssignmentForTeams: [ - "DELETE /orgs/{org}/copilot/billing/selected_teams" - ], - cancelCopilotSeatAssignmentForUsers: [ - "DELETE /orgs/{org}/copilot/billing/selected_users" - ], - getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], - getCopilotSeatDetailsForUser: [ - "GET /orgs/{org}/members/{username}/copilot" - ], - listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"], - usageMetricsForEnterprise: ["GET /enterprises/{enterprise}/copilot/usage"], - usageMetricsForOrg: ["GET /orgs/{org}/copilot/usage"], - usageMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/usage"] - }, - dependabot: { - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/dependabot/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], - listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" - ] - }, - dependencyGraph: { - createRepositorySnapshot: [ - "POST /repos/{owner}/{repo}/dependency-graph/snapshots" - ], - diffRange: [ - "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" - ], - exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] - }, - emojis: { get: ["GET /emojis"] }, - gists: { - checkIsStarred: ["GET /gists/{gist_id}/star"], - create: ["POST /gists"], - createComment: ["POST /gists/{gist_id}/comments"], - delete: ["DELETE /gists/{gist_id}"], - deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], - fork: ["POST /gists/{gist_id}/forks"], - get: ["GET /gists/{gist_id}"], - getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], - getRevision: ["GET /gists/{gist_id}/{sha}"], - list: ["GET /gists"], - listComments: ["GET /gists/{gist_id}/comments"], - listCommits: ["GET /gists/{gist_id}/commits"], - listForUser: ["GET /users/{username}/gists"], - listForks: ["GET /gists/{gist_id}/forks"], - listPublic: ["GET /gists/public"], - listStarred: ["GET /gists/starred"], - star: ["PUT /gists/{gist_id}/star"], - unstar: ["DELETE /gists/{gist_id}/star"], - update: ["PATCH /gists/{gist_id}"], - updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] - }, - git: { - createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], - createCommit: ["POST /repos/{owner}/{repo}/git/commits"], - createRef: ["POST /repos/{owner}/{repo}/git/refs"], - createTag: ["POST /repos/{owner}/{repo}/git/tags"], - createTree: ["POST /repos/{owner}/{repo}/git/trees"], - deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], - getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], - getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], - getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], - getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], - getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], - listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], - updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] - }, - gitignore: { - getAllTemplates: ["GET /gitignore/templates"], - getTemplate: ["GET /gitignore/templates/{name}"] - }, - interactions: { - getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], - getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], - getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], - getRestrictionsForYourPublicRepos: [ - "GET /user/interaction-limits", - {}, - { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } - ], - removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], - removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], - removeRestrictionsForRepo: [ - "DELETE /repos/{owner}/{repo}/interaction-limits" - ], - removeRestrictionsForYourPublicRepos: [ - "DELETE /user/interaction-limits", - {}, - { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } - ], - setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], - setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], - setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], - setRestrictionsForYourPublicRepos: [ - "PUT /user/interaction-limits", - {}, - { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } - ] - }, - issues: { - addAssignees: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], - checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], - checkUserCanBeAssignedToIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" - ], - create: ["POST /repos/{owner}/{repo}/issues"], - createComment: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" - ], - createLabel: ["POST /repos/{owner}/{repo}/labels"], - createMilestone: ["POST /repos/{owner}/{repo}/milestones"], - deleteComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" - ], - deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], - deleteMilestone: [ - "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" - ], - get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], - getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], - getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], - getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], - getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], - list: ["GET /issues"], - listAssignees: ["GET /repos/{owner}/{repo}/assignees"], - listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], - listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], - listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], - listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], - listEventsForTimeline: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" - ], - listForAuthenticatedUser: ["GET /user/issues"], - listForOrg: ["GET /orgs/{org}/issues"], - listForRepo: ["GET /repos/{owner}/{repo}/issues"], - listLabelsForMilestone: [ - "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" - ], - listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], - listLabelsOnIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - listMilestones: ["GET /repos/{owner}/{repo}/milestones"], - lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], - removeAllLabels: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - removeAssignees: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - removeLabel: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" - ], - setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], - unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], - update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], - updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], - updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], - updateMilestone: [ - "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" - ] - }, - licenses: { - get: ["GET /licenses/{license}"], - getAllCommonlyUsed: ["GET /licenses"], - getForRepo: ["GET /repos/{owner}/{repo}/license"] - }, - markdown: { - render: ["POST /markdown"], - renderRaw: [ - "POST /markdown/raw", - { headers: { "content-type": "text/plain; charset=utf-8" } } - ] - }, - meta: { - get: ["GET /meta"], - getAllVersions: ["GET /versions"], - getOctocat: ["GET /octocat"], - getZen: ["GET /zen"], - root: ["GET /"] - }, - migrations: { - deleteArchiveForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/archive" - ], - deleteArchiveForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/archive" - ], - downloadArchiveForOrg: [ - "GET /orgs/{org}/migrations/{migration_id}/archive" - ], - getArchiveForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/archive" - ], - getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], - getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], - listForAuthenticatedUser: ["GET /user/migrations"], - listForOrg: ["GET /orgs/{org}/migrations"], - listReposForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/repositories" - ], - listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], - listReposForUser: [ - "GET /user/migrations/{migration_id}/repositories", - {}, - { renamed: ["migrations", "listReposForAuthenticatedUser"] } - ], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - unlockRepoForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" - ], - unlockRepoForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" - ] - }, - oidc: { - getOidcCustomSubTemplateForOrg: [ - "GET /orgs/{org}/actions/oidc/customization/sub" - ], - updateOidcCustomSubTemplateForOrg: [ - "PUT /orgs/{org}/actions/oidc/customization/sub" - ] - }, - orgs: { - addSecurityManagerTeam: [ - "PUT /orgs/{org}/security-managers/teams/{team_slug}" - ], - assignTeamToOrgRole: [ - "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - assignUserToOrgRole: [ - "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - blockUser: ["PUT /orgs/{org}/blocks/{username}"], - cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], - checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], - checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], - checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], - convertMemberToOutsideCollaborator: [ - "PUT /orgs/{org}/outside_collaborators/{username}" - ], - createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], - createInvitation: ["POST /orgs/{org}/invitations"], - createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], - createOrUpdateCustomPropertiesValuesForRepos: [ - "PATCH /orgs/{org}/properties/values" - ], - createOrUpdateCustomProperty: [ - "PUT /orgs/{org}/properties/schema/{custom_property_name}" - ], - createWebhook: ["POST /orgs/{org}/hooks"], - delete: ["DELETE /orgs/{org}"], - deleteCustomOrganizationRole: [ - "DELETE /orgs/{org}/organization-roles/{role_id}" - ], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - enableOrDisableSecurityProductOnAllOrgRepos: [ - "POST /orgs/{org}/{security_product}/{enablement}" - ], - get: ["GET /orgs/{org}"], - getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], - getCustomProperty: [ - "GET /orgs/{org}/properties/schema/{custom_property_name}" - ], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], - getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], - getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], - getWebhookDelivery: [ - "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - list: ["GET /organizations"], - listAppInstallations: ["GET /orgs/{org}/installations"], - listBlockedUsers: ["GET /orgs/{org}/blocks"], - listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], - listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], - listForAuthenticatedUser: ["GET /user/orgs"], - listForUser: ["GET /users/{username}/orgs"], - listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], - listMembers: ["GET /orgs/{org}/members"], - listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], - listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], - listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], - listOrgRoles: ["GET /orgs/{org}/organization-roles"], - listOrganizationFineGrainedPermissions: [ - "GET /orgs/{org}/organization-fine-grained-permissions" - ], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - listPatGrantRepositories: [ - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" - ], - listPatGrantRequestRepositories: [ - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" - ], - listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], - listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], - listPendingInvitations: ["GET /orgs/{org}/invitations"], - listPublicMembers: ["GET /orgs/{org}/public_members"], - listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], - listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], - listWebhooks: ["GET /orgs/{org}/hooks"], - patchCustomOrganizationRole: [ - "PATCH /orgs/{org}/organization-roles/{role_id}" - ], - pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeCustomProperty: [ - "DELETE /orgs/{org}/properties/schema/{custom_property_name}" - ], - removeMember: ["DELETE /orgs/{org}/members/{username}"], - removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], - removeOutsideCollaborator: [ - "DELETE /orgs/{org}/outside_collaborators/{username}" - ], - removePublicMembershipForAuthenticatedUser: [ - "DELETE /orgs/{org}/public_members/{username}" - ], - removeSecurityManagerTeam: [ - "DELETE /orgs/{org}/security-managers/teams/{team_slug}" - ], - reviewPatGrantRequest: [ - "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" - ], - reviewPatGrantRequestsInBulk: [ - "POST /orgs/{org}/personal-access-token-requests" - ], - revokeAllOrgRolesTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" - ], - revokeAllOrgRolesUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}" - ], - revokeOrgRoleTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - revokeOrgRoleUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], - setPublicMembershipForAuthenticatedUser: [ - "PUT /orgs/{org}/public_members/{username}" - ], - unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], - update: ["PATCH /orgs/{org}"], - updateMembershipForAuthenticatedUser: [ - "PATCH /user/memberships/orgs/{org}" - ], - updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], - updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], - updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], - updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] - }, - packages: { - deletePackageForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}" - ], - deletePackageForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}" - ], - deletePackageForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}" - ], - deletePackageVersionForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getAllPackageVersionsForAPackageOwnedByAnOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - {}, - { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } - ], - getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions", - {}, - { - renamed: [ - "packages", - "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" - ] - } - ], - getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions" - ], - getPackageForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}" - ], - getPackageForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}" - ], - getPackageForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}" - ], - getPackageVersionForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - listDockerMigrationConflictingPackagesForAuthenticatedUser: [ - "GET /user/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForOrganization: [ - "GET /orgs/{org}/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForUser: [ - "GET /users/{username}/docker/conflicts" - ], - listPackagesForAuthenticatedUser: ["GET /user/packages"], - listPackagesForOrganization: ["GET /orgs/{org}/packages"], - listPackagesForUser: ["GET /users/{username}/packages"], - restorePackageForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageVersionForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ] - }, - projects: { - addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], - createCard: ["POST /projects/columns/{column_id}/cards"], - createColumn: ["POST /projects/{project_id}/columns"], - createForAuthenticatedUser: ["POST /user/projects"], - createForOrg: ["POST /orgs/{org}/projects"], - createForRepo: ["POST /repos/{owner}/{repo}/projects"], - delete: ["DELETE /projects/{project_id}"], - deleteCard: ["DELETE /projects/columns/cards/{card_id}"], - deleteColumn: ["DELETE /projects/columns/{column_id}"], - get: ["GET /projects/{project_id}"], - getCard: ["GET /projects/columns/cards/{card_id}"], - getColumn: ["GET /projects/columns/{column_id}"], - getPermissionForUser: [ - "GET /projects/{project_id}/collaborators/{username}/permission" - ], - listCards: ["GET /projects/columns/{column_id}/cards"], - listCollaborators: ["GET /projects/{project_id}/collaborators"], - listColumns: ["GET /projects/{project_id}/columns"], - listForOrg: ["GET /orgs/{org}/projects"], - listForRepo: ["GET /repos/{owner}/{repo}/projects"], - listForUser: ["GET /users/{username}/projects"], - moveCard: ["POST /projects/columns/cards/{card_id}/moves"], - moveColumn: ["POST /projects/columns/{column_id}/moves"], - removeCollaborator: [ - "DELETE /projects/{project_id}/collaborators/{username}" - ], - update: ["PATCH /projects/{project_id}"], - updateCard: ["PATCH /projects/columns/cards/{card_id}"], - updateColumn: ["PATCH /projects/columns/{column_id}"] - }, - pulls: { - checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - create: ["POST /repos/{owner}/{repo}/pulls"], - createReplyForReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" - ], - createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - createReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - deletePendingReview: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - deleteReviewComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ], - dismissReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" - ], - get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], - getReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], - list: ["GET /repos/{owner}/{repo}/pulls"], - listCommentsForReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" - ], - listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], - listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], - listRequestedReviewers: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - listReviewComments: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], - listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - removeRequestedReviewers: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - requestReviewers: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - submitReview: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" - ], - update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], - updateBranch: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" - ], - updateReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - updateReviewComment: [ - "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ] - }, - rateLimit: { get: ["GET /rate_limit"] }, - reactions: { - createForCommitComment: [ - "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - createForIssue: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" - ], - createForIssueComment: [ - "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - createForPullRequestReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - createForRelease: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - createForTeamDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - createForTeamDiscussionInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ], - deleteForCommitComment: [ - "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForIssue: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" - ], - deleteForIssueComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForPullRequestComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForRelease: [ - "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" - ], - deleteForTeamDiscussion: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" - ], - deleteForTeamDiscussionComment: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" - ], - listForCommitComment: [ - "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], - listForIssueComment: [ - "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - listForPullRequestReviewComment: [ - "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - listForRelease: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - listForTeamDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - listForTeamDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ] - }, - repos: { - acceptInvitation: [ - "PATCH /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } - ], - acceptInvitationForAuthenticatedUser: [ - "PATCH /user/repository_invitations/{invitation_id}" - ], - addAppAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], - addStatusCheckContexts: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - addTeamAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - addUserAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - cancelPagesDeployment: [ - "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" - ], - checkAutomatedSecurityFixes: [ - "GET /repos/{owner}/{repo}/automated-security-fixes" - ], - checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], - checkPrivateVulnerabilityReporting: [ - "GET /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - checkVulnerabilityAlerts: [ - "GET /repos/{owner}/{repo}/vulnerability-alerts" - ], - codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], - compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], - compareCommitsWithBasehead: [ - "GET /repos/{owner}/{repo}/compare/{basehead}" - ], - createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], - createCommitComment: [ - "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - createCommitSignatureProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], - createDeployKey: ["POST /repos/{owner}/{repo}/keys"], - createDeployment: ["POST /repos/{owner}/{repo}/deployments"], - createDeploymentBranchPolicy: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - createDeploymentProtectionRule: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - createDeploymentStatus: [ - "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], - createForAuthenticatedUser: ["POST /user/repos"], - createFork: ["POST /repos/{owner}/{repo}/forks"], - createInOrg: ["POST /orgs/{org}/repos"], - createOrUpdateCustomPropertiesValues: [ - "PATCH /repos/{owner}/{repo}/properties/values" - ], - createOrUpdateEnvironment: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}" - ], - createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], - createOrgRuleset: ["POST /orgs/{org}/rulesets"], - createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], - createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], - createUsingTemplate: [ - "POST /repos/{template_owner}/{template_repo}/generate" - ], - createWebhook: ["POST /repos/{owner}/{repo}/hooks"], - declineInvitation: [ - "DELETE /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } - ], - declineInvitationForAuthenticatedUser: [ - "DELETE /user/repository_invitations/{invitation_id}" - ], - delete: ["DELETE /repos/{owner}/{repo}"], - deleteAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - deleteAdminBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - deleteAnEnvironment: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}" - ], - deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], - deleteBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" - ], - deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], - deleteCommitSignatureProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], - deleteDeployment: [ - "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" - ], - deleteDeploymentBranchPolicy: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], - deleteInvitation: [ - "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], - deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], - deletePullRequestReviewProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], - deleteReleaseAsset: [ - "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - deleteTagProtection: [ - "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" - ], - deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], - disableAutomatedSecurityFixes: [ - "DELETE /repos/{owner}/{repo}/automated-security-fixes" - ], - disableDeploymentProtectionRule: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - disablePrivateVulnerabilityReporting: [ - "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - disableVulnerabilityAlerts: [ - "DELETE /repos/{owner}/{repo}/vulnerability-alerts" - ], - downloadArchive: [ - "GET /repos/{owner}/{repo}/zipball/{ref}", - {}, - { renamed: ["repos", "downloadZipballArchive"] } - ], - downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], - downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], - enableAutomatedSecurityFixes: [ - "PUT /repos/{owner}/{repo}/automated-security-fixes" - ], - enablePrivateVulnerabilityReporting: [ - "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - enableVulnerabilityAlerts: [ - "PUT /repos/{owner}/{repo}/vulnerability-alerts" - ], - generateReleaseNotes: [ - "POST /repos/{owner}/{repo}/releases/generate-notes" - ], - get: ["GET /repos/{owner}/{repo}"], - getAccessRestrictions: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - getAdminBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - getAllDeploymentProtectionRules: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], - getAllStatusCheckContexts: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" - ], - getAllTopics: ["GET /repos/{owner}/{repo}/topics"], - getAppsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" - ], - getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], - getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], - getBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection" - ], - getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], - getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], - getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], - getCollaboratorPermissionLevel: [ - "GET /repos/{owner}/{repo}/collaborators/{username}/permission" - ], - getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], - getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], - getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], - getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], - getCommitSignatureProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], - getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], - getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], - getCustomDeploymentProtectionRule: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], - getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], - getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], - getDeploymentBranchPolicy: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - getDeploymentStatus: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" - ], - getEnvironment: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}" - ], - getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], - getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], - getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], - getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], - getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], - getOrgRulesets: ["GET /orgs/{org}/rulesets"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], - getPagesDeployment: [ - "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" - ], - getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], - getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], - getPullRequestReviewProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], - getReadme: ["GET /repos/{owner}/{repo}/readme"], - getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], - getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], - getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], - getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], - getRepoRuleSuite: [ - "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" - ], - getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], - getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], - getStatusChecksProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - getTeamsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" - ], - getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], - getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], - getUsersWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" - ], - getViews: ["GET /repos/{owner}/{repo}/traffic/views"], - getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], - getWebhookConfigForRepo: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - getWebhookDelivery: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - listActivities: ["GET /repos/{owner}/{repo}/activity"], - listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], - listBranches: ["GET /repos/{owner}/{repo}/branches"], - listBranchesForHeadCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" - ], - listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], - listCommentsForCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], - listCommitStatusesForRef: [ - "GET /repos/{owner}/{repo}/commits/{ref}/statuses" - ], - listCommits: ["GET /repos/{owner}/{repo}/commits"], - listContributors: ["GET /repos/{owner}/{repo}/contributors"], - listCustomDeploymentRuleIntegrations: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" - ], - listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], - listDeploymentBranchPolicies: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - listDeploymentStatuses: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - listDeployments: ["GET /repos/{owner}/{repo}/deployments"], - listForAuthenticatedUser: ["GET /user/repos"], - listForOrg: ["GET /orgs/{org}/repos"], - listForUser: ["GET /users/{username}/repos"], - listForks: ["GET /repos/{owner}/{repo}/forks"], - listInvitations: ["GET /repos/{owner}/{repo}/invitations"], - listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], - listLanguages: ["GET /repos/{owner}/{repo}/languages"], - listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], - listPublic: ["GET /repositories"], - listPullRequestsAssociatedWithCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" - ], - listReleaseAssets: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/assets" - ], - listReleases: ["GET /repos/{owner}/{repo}/releases"], - listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], - listTags: ["GET /repos/{owner}/{repo}/tags"], - listTeams: ["GET /repos/{owner}/{repo}/teams"], - listWebhookDeliveries: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" - ], - listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], - merge: ["POST /repos/{owner}/{repo}/merges"], - mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], - pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeAppAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - removeCollaborator: [ - "DELETE /repos/{owner}/{repo}/collaborators/{username}" - ], - removeStatusCheckContexts: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - removeStatusCheckProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - removeTeamAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - removeUserAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], - replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], - requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], - setAdminBranchProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - setAppAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - setStatusCheckContexts: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - setTeamAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - setUserAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], - transfer: ["POST /repos/{owner}/{repo}/transfer"], - update: ["PATCH /repos/{owner}/{repo}"], - updateBranchProtection: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection" - ], - updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], - updateDeploymentBranchPolicy: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], - updateInvitation: [ - "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], - updatePullRequestReviewProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], - updateReleaseAsset: [ - "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - updateStatusCheckPotection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", - {}, - { renamed: ["repos", "updateStatusCheckProtection"] } - ], - updateStatusCheckProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], - updateWebhookConfigForRepo: [ - "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - uploadReleaseAsset: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", - { baseUrl: "https://uploads.github.com" } - ] - }, - search: { - code: ["GET /search/code"], - commits: ["GET /search/commits"], - issuesAndPullRequests: ["GET /search/issues"], - labels: ["GET /search/labels"], - repos: ["GET /search/repositories"], - topics: ["GET /search/topics"], - users: ["GET /search/users"] - }, - secretScanning: { - getAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/secret-scanning/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], - listLocationsForAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ] - }, - securityAdvisories: { - createFork: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" - ], - createPrivateVulnerabilityReport: [ - "POST /repos/{owner}/{repo}/security-advisories/reports" - ], - createRepositoryAdvisory: [ - "POST /repos/{owner}/{repo}/security-advisories" - ], - createRepositoryAdvisoryCveRequest: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" - ], - getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], - getRepositoryAdvisory: [ - "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ], - listGlobalAdvisories: ["GET /advisories"], - listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], - listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], - updateRepositoryAdvisory: [ - "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ] - }, - teams: { - addOrUpdateMembershipForUserInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - addOrUpdateProjectPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - addOrUpdateRepoPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - checkPermissionsForProjectInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - checkPermissionsForRepoInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - create: ["POST /orgs/{org}/teams"], - createDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], - deleteDiscussionCommentInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - deleteDiscussionInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], - getByName: ["GET /orgs/{org}/teams/{team_slug}"], - getDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - getDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - getMembershipForUserInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - list: ["GET /orgs/{org}/teams"], - listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], - listDiscussionCommentsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], - listForAuthenticatedUser: ["GET /user/teams"], - listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], - listPendingInvitationsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/invitations" - ], - listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], - listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], - removeMembershipForUserInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - removeProjectInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - removeRepoInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - updateDiscussionCommentInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - updateDiscussionInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] - }, - users: { - addEmailForAuthenticated: [ - "POST /user/emails", - {}, - { renamed: ["users", "addEmailForAuthenticatedUser"] } - ], - addEmailForAuthenticatedUser: ["POST /user/emails"], - addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], - block: ["PUT /user/blocks/{username}"], - checkBlocked: ["GET /user/blocks/{username}"], - checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], - checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], - createGpgKeyForAuthenticated: [ - "POST /user/gpg_keys", - {}, - { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } - ], - createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], - createPublicSshKeyForAuthenticated: [ - "POST /user/keys", - {}, - { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } - ], - createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], - createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], - deleteEmailForAuthenticated: [ - "DELETE /user/emails", - {}, - { renamed: ["users", "deleteEmailForAuthenticatedUser"] } - ], - deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], - deleteGpgKeyForAuthenticated: [ - "DELETE /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } - ], - deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], - deletePublicSshKeyForAuthenticated: [ - "DELETE /user/keys/{key_id}", - {}, - { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } - ], - deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], - deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], - deleteSshSigningKeyForAuthenticatedUser: [ - "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - follow: ["PUT /user/following/{username}"], - getAuthenticated: ["GET /user"], - getByUsername: ["GET /users/{username}"], - getContextForUser: ["GET /users/{username}/hovercard"], - getGpgKeyForAuthenticated: [ - "GET /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } - ], - getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], - getPublicSshKeyForAuthenticated: [ - "GET /user/keys/{key_id}", - {}, - { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } - ], - getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], - getSshSigningKeyForAuthenticatedUser: [ - "GET /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - list: ["GET /users"], - listBlockedByAuthenticated: [ - "GET /user/blocks", - {}, - { renamed: ["users", "listBlockedByAuthenticatedUser"] } - ], - listBlockedByAuthenticatedUser: ["GET /user/blocks"], - listEmailsForAuthenticated: [ - "GET /user/emails", - {}, - { renamed: ["users", "listEmailsForAuthenticatedUser"] } - ], - listEmailsForAuthenticatedUser: ["GET /user/emails"], - listFollowedByAuthenticated: [ - "GET /user/following", - {}, - { renamed: ["users", "listFollowedByAuthenticatedUser"] } - ], - listFollowedByAuthenticatedUser: ["GET /user/following"], - listFollowersForAuthenticatedUser: ["GET /user/followers"], - listFollowersForUser: ["GET /users/{username}/followers"], - listFollowingForUser: ["GET /users/{username}/following"], - listGpgKeysForAuthenticated: [ - "GET /user/gpg_keys", - {}, - { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } - ], - listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], - listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], - listPublicEmailsForAuthenticated: [ - "GET /user/public_emails", - {}, - { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } - ], - listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], - listPublicKeysForUser: ["GET /users/{username}/keys"], - listPublicSshKeysForAuthenticated: [ - "GET /user/keys", - {}, - { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } - ], - listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], - listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], - listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], - listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], - listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], - setPrimaryEmailVisibilityForAuthenticated: [ - "PATCH /user/email/visibility", - {}, - { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } - ], - setPrimaryEmailVisibilityForAuthenticatedUser: [ - "PATCH /user/email/visibility" - ], - unblock: ["DELETE /user/blocks/{username}"], - unfollow: ["DELETE /user/following/{username}"], - updateAuthenticated: ["PATCH /user"] - } -}; -var endpoints_default = Endpoints; - -//# sourceMappingURL=endpoints.js.map - -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js - -const endpointMethodsMap = /* @__PURE__ */ new Map(); -for (const [scope, endpoints] of Object.entries(endpoints_default)) { - for (const [methodName, endpoint] of Object.entries(endpoints)) { - const [route, defaults, decorations] = endpoint; - const [method, url] = route.split(/ /); - const endpointDefaults = Object.assign( - { - method, - url - }, - defaults - ); - if (!endpointMethodsMap.has(scope)) { - endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); - } - endpointMethodsMap.get(scope).set(methodName, { - scope, - methodName, - endpointDefaults, - decorations - }); - } -} -const handler = { - has({ scope }, methodName) { - return endpointMethodsMap.get(scope).has(methodName); - }, - getOwnPropertyDescriptor(target, methodName) { - return { - value: this.get(target, methodName), - // ensures method is in the cache - configurable: true, - writable: true, - enumerable: true - }; - }, - defineProperty(target, methodName, descriptor) { - Object.defineProperty(target.cache, methodName, descriptor); - return true; - }, - deleteProperty(target, methodName) { - delete target.cache[methodName]; - return true; - }, - ownKeys({ scope }) { - return [...endpointMethodsMap.get(scope).keys()]; - }, - set(target, methodName, value) { - return target.cache[methodName] = value; - }, - get({ octokit, scope, cache }, methodName) { - if (cache[methodName]) { - return cache[methodName]; - } - const method = endpointMethodsMap.get(scope).get(methodName); - if (!method) { - return void 0; - } - const { endpointDefaults, decorations } = method; - if (decorations) { - cache[methodName] = decorate( - octokit, - scope, - methodName, - endpointDefaults, - decorations - ); - } else { - cache[methodName] = octokit.request.defaults(endpointDefaults); - } - return cache[methodName]; - } -}; -function endpointsToMethods(octokit) { - const newMethods = {}; - for (const scope of endpointMethodsMap.keys()) { - newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); - } - return newMethods; -} -function decorate(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - function withDecorations(...args) { - let options = requestWithDefaults.endpoint.merge(...args); - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: void 0 - }); - return requestWithDefaults(options); - } - if (decorations.renamed) { - const [newScope, newMethodName] = decorations.renamed; - octokit.log.warn( - `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` - ); - } - if (decorations.deprecated) { - octokit.log.warn(decorations.deprecated); - } - if (decorations.renamedParameters) { - const options2 = requestWithDefaults.endpoint.merge(...args); - for (const [name, alias] of Object.entries( - decorations.renamedParameters - )) { - if (name in options2) { - octokit.log.warn( - `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` - ); - if (!(alias in options2)) { - options2[alias] = options2[name]; - } - delete options2[name]; - } - } - return requestWithDefaults(options2); - } - return requestWithDefaults(...args); - } - return Object.assign(withDecorations, requestWithDefaults); -} - -//# sourceMappingURL=endpoints-to-methods.js.map - -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js - - -function restEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - rest: api - }; -} -restEndpointMethods.VERSION = dist_src_version_VERSION; -function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - ...api, - rest: api - }; -} -legacyRestEndpointMethods.VERSION = dist_src_version_VERSION; - -//# sourceMappingURL=index.js.map - -// EXTERNAL MODULE: ./node_modules/bottleneck/light.js -var light = __nccwpck_require__(2029); -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-retry/dist-bundle/index.js -// pkg/dist-src/version.js -var plugin_retry_dist_bundle_VERSION = "0.0.0-development"; - -// pkg/dist-src/error-request.js -async function errorRequest(state, octokit, error, options) { - if (!error.request || !error.request.request) { - throw error; - } - if (error.status >= 400 && !state.doNotRetry.includes(error.status)) { - const retries = options.request.retries != null ? options.request.retries : state.retries; - const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2); - throw octokit.retry.retryRequest(error, retries, retryAfter); - } - throw error; -} - -// pkg/dist-src/wrap-request.js - - -async function wrapRequest(state, octokit, request, options) { - const limiter = new light(); - limiter.on("failed", function(error, info) { - const maxRetries = ~~error.request.request.retries; - const after = ~~error.request.request.retryAfter; - options.request.retryCount = info.retryCount + 1; - if (maxRetries > info.retryCount) { - return after * state.retryAfterBaseValue; - } - }); - return limiter.schedule( - requestWithGraphqlErrorHandling.bind(null, state, octokit, request), - options - ); -} -async function requestWithGraphqlErrorHandling(state, octokit, request, options) { - const response = await request(request, options); - if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( - response.data.errors[0].message - )) { - const error = new RequestError(response.data.errors[0].message, 500, { - request: options, - response - }); - return errorRequest(state, octokit, error, options); - } - return response; -} - -// pkg/dist-src/index.js -function retry(octokit, octokitOptions) { - const state = Object.assign( - { - enabled: true, - retryAfterBaseValue: 1e3, - doNotRetry: [400, 401, 403, 404, 422, 451], - retries: 3 - }, - octokitOptions.retry - ); - if (state.enabled) { - octokit.hook.error("request", errorRequest.bind(null, state, octokit)); - octokit.hook.wrap("request", wrapRequest.bind(null, state, octokit)); - } - return { - retry: { - retryRequest: (error, retries, retryAfter) => { - error.request.request = Object.assign({}, error.request.request, { - retries, - retryAfter - }); - return error; - } - } - }; -} -retry.VERSION = plugin_retry_dist_bundle_VERSION; - - -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-throttling/dist-bundle/index.js -// pkg/dist-src/index.js - - -// pkg/dist-src/version.js -var plugin_throttling_dist_bundle_VERSION = "0.0.0-development"; - -// pkg/dist-src/wrap-request.js -var dist_bundle_noop = () => Promise.resolve(); -function dist_bundle_wrapRequest(state, request, options) { - return state.retryLimiter.schedule(doRequest, state, request, options); -} -async function doRequest(state, request, options) { - const isWrite = options.method !== "GET" && options.method !== "HEAD"; - const { pathname } = new URL(options.url, "http://github.test"); - const isSearch = options.method === "GET" && pathname.startsWith("/search/"); - const isGraphQL = pathname.startsWith("/graphql"); - const retryCount = ~~request.retryCount; - const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {}; - if (state.clustering) { - jobOptions.expiration = 1e3 * 60; - } - if (isWrite || isGraphQL) { - await state.write.key(state.id).schedule(jobOptions, dist_bundle_noop); - } - if (isWrite && state.triggersNotification(pathname)) { - await state.notifications.key(state.id).schedule(jobOptions, dist_bundle_noop); - } - if (isSearch) { - await state.search.key(state.id).schedule(jobOptions, dist_bundle_noop); - } - const req = state.global.key(state.id).schedule(jobOptions, request, options); - if (isGraphQL) { - const res = await req; - if (res.data.errors != null && res.data.errors.some((error) => error.type === "RATE_LIMITED")) { - const error = Object.assign(new Error("GraphQL Rate Limit Exceeded"), { - response: res, - data: res.data - }); - throw error; - } - } - return req; -} - -// pkg/dist-src/generated/triggers-notification-paths.js -var triggers_notification_paths_default = [ - "/orgs/{org}/invitations", - "/orgs/{org}/invitations/{invitation_id}", - "/orgs/{org}/teams/{team_slug}/discussions", - "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", - "/repos/{owner}/{repo}/collaborators/{username}", - "/repos/{owner}/{repo}/commits/{commit_sha}/comments", - "/repos/{owner}/{repo}/issues", - "/repos/{owner}/{repo}/issues/{issue_number}/comments", - "/repos/{owner}/{repo}/pulls", - "/repos/{owner}/{repo}/pulls/{pull_number}/comments", - "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", - "/repos/{owner}/{repo}/pulls/{pull_number}/merge", - "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews", - "/repos/{owner}/{repo}/releases", - "/teams/{team_id}/discussions", - "/teams/{team_id}/discussions/{discussion_number}/comments" -]; - -// pkg/dist-src/route-matcher.js -function routeMatcher(paths) { - const regexes = paths.map( - (path) => path.split("/").map((c) => c.startsWith("{") ? "(?:.+?)" : c).join("/") - ); - const regex2 = `^(?:${regexes.map((r) => `(?:${r})`).join("|")})[^/]*$`; - return new RegExp(regex2, "i"); -} - -// pkg/dist-src/index.js -var regex = routeMatcher(triggers_notification_paths_default); -var triggersNotification = regex.test.bind(regex); -var groups = {}; -var createGroups = function(Bottleneck, common) { - groups.global = new Bottleneck.Group({ - id: "octokit-global", - maxConcurrent: 10, - ...common - }); - groups.search = new Bottleneck.Group({ - id: "octokit-search", - maxConcurrent: 1, - minTime: 2e3, - ...common - }); - groups.write = new Bottleneck.Group({ - id: "octokit-write", - maxConcurrent: 1, - minTime: 1e3, - ...common - }); - groups.notifications = new Bottleneck.Group({ - id: "octokit-notifications", - maxConcurrent: 1, - minTime: 3e3, - ...common - }); -}; -function throttling(octokit, octokitOptions) { - const { - enabled = true, - Bottleneck = light, - id = "no-id", - timeout = 1e3 * 60 * 2, - // Redis TTL: 2 minutes - connection - } = octokitOptions.throttle || {}; - if (!enabled) { - return {}; - } - const common = { timeout }; - if (typeof connection !== "undefined") { - common.connection = connection; - } - if (groups.global == null) { - createGroups(Bottleneck, common); - } - const state = Object.assign( - { - clustering: connection != null, - triggersNotification, - fallbackSecondaryRateRetryAfter: 60, - retryAfterBaseValue: 1e3, - retryLimiter: new Bottleneck(), - id, - ...groups - }, - octokitOptions.throttle - ); - if (typeof state.onSecondaryRateLimit !== "function" || typeof state.onRateLimit !== "function") { - throw new Error(`octokit/plugin-throttling error: - You must pass the onSecondaryRateLimit and onRateLimit error handlers. - See https://octokit.github.io/rest.js/#throttling - - const octokit = new Octokit({ - throttle: { - onSecondaryRateLimit: (retryAfter, options) => {/* ... */}, - onRateLimit: (retryAfter, options) => {/* ... */} - } - }) - `); - } - const events = {}; - const emitter = new Bottleneck.Events(events); - events.on("secondary-limit", state.onSecondaryRateLimit); - events.on("rate-limit", state.onRateLimit); - events.on( - "error", - (e) => octokit.log.warn("Error in throttling-plugin limit handler", e) - ); - state.retryLimiter.on("failed", async function(error, info) { - const [state2, request, options] = info.args; - const { pathname } = new URL(options.url, "http://github.test"); - const shouldRetryGraphQL = pathname.startsWith("/graphql") && error.status !== 401; - if (!(shouldRetryGraphQL || error.status === 403 || error.status === 429)) { - return; - } - const retryCount = ~~request.retryCount; - request.retryCount = retryCount; - options.request.retryCount = retryCount; - const { wantRetry, retryAfter = 0 } = await async function() { - if (/\bsecondary rate\b/i.test(error.message)) { - const retryAfter2 = Number(error.response.headers["retry-after"]) || state2.fallbackSecondaryRateRetryAfter; - const wantRetry2 = await emitter.trigger( - "secondary-limit", - retryAfter2, - options, - octokit, - retryCount - ); - return { wantRetry: wantRetry2, retryAfter: retryAfter2 }; - } - if (error.response.headers != null && error.response.headers["x-ratelimit-remaining"] === "0" || (error.response.data?.errors ?? []).some( - (error2) => error2.type === "RATE_LIMITED" - )) { - const rateLimitReset = new Date( - ~~error.response.headers["x-ratelimit-reset"] * 1e3 - ).getTime(); - const retryAfter2 = Math.max( - // Add one second so we retry _after_ the reset time - // https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#exceeding-the-rate-limit - Math.ceil((rateLimitReset - Date.now()) / 1e3) + 1, - 0 - ); - const wantRetry2 = await emitter.trigger( - "rate-limit", - retryAfter2, - options, - octokit, - retryCount - ); - return { wantRetry: wantRetry2, retryAfter: retryAfter2 }; - } - return {}; - }(); - if (wantRetry) { - request.retryCount++; - return retryAfter * state2.retryAfterBaseValue; - } - }); - octokit.hook.wrap("request", dist_bundle_wrapRequest.bind(null, state)); - return {}; -} -throttling.VERSION = plugin_throttling_dist_bundle_VERSION; -throttling.triggersNotification = triggersNotification; - - -;// CONCATENATED MODULE: ./node_modules/@octokit/plugin-paginate-graphql/dist-bundle/index.js -// pkg/dist-src/errors.js -var generateMessage = (path, cursorValue) => `The cursor at "${path.join( - "," -)}" did not change its value "${cursorValue}" after a page transition. Please make sure your that your query is set up correctly.`; -var MissingCursorChange = class extends Error { - constructor(pageInfo, cursorValue) { - super(generateMessage(pageInfo.pathInQuery, cursorValue)); - this.pageInfo = pageInfo; - this.cursorValue = cursorValue; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } - name = "MissingCursorChangeError"; -}; -var MissingPageInfo = class extends Error { - constructor(response) { - super( - `No pageInfo property found in response. Please make sure to specify the pageInfo in your query. Response-Data: ${JSON.stringify( - response, - null, - 2 - )}` - ); - this.response = response; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } - name = "MissingPageInfo"; -}; - -// pkg/dist-src/object-helpers.js -var isObject = (value) => Object.prototype.toString.call(value) === "[object Object]"; -function findPaginatedResourcePath(responseData) { - const paginatedResourcePath = deepFindPathToProperty( - responseData, - "pageInfo" - ); - if (paginatedResourcePath.length === 0) { - throw new MissingPageInfo(responseData); - } - return paginatedResourcePath; -} -var deepFindPathToProperty = (object, searchProp, path = []) => { - for (const key of Object.keys(object)) { - const currentPath = [...path, key]; - const currentValue = object[key]; - if (isObject(currentValue)) { - if (currentValue.hasOwnProperty(searchProp)) { - return currentPath; - } - const result = deepFindPathToProperty( - currentValue, - searchProp, - currentPath - ); - if (result.length > 0) { - return result; - } - } - } - return []; -}; -var get = (object, path) => { - return path.reduce((current, nextProperty) => current[nextProperty], object); -}; -var set = (object, path, mutator) => { - const lastProperty = path[path.length - 1]; - const parentPath = [...path].slice(0, -1); - const parent = get(object, parentPath); - if (typeof mutator === "function") { - parent[lastProperty] = mutator(parent[lastProperty]); - } else { - parent[lastProperty] = mutator; - } -}; - -// pkg/dist-src/extract-page-info.js -var extractPageInfos = (responseData) => { - const pageInfoPath = findPaginatedResourcePath(responseData); - return { - pathInQuery: pageInfoPath, - pageInfo: get(responseData, [...pageInfoPath, "pageInfo"]) - }; -}; - -// pkg/dist-src/page-info.js -var isForwardSearch = (givenPageInfo) => { - return givenPageInfo.hasOwnProperty("hasNextPage"); -}; -var getCursorFrom = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.endCursor : pageInfo.startCursor; -var hasAnotherPage = (pageInfo) => isForwardSearch(pageInfo) ? pageInfo.hasNextPage : pageInfo.hasPreviousPage; - -// pkg/dist-src/iterator.js -var createIterator = (octokit) => { - return (query, initialParameters = {}) => { - let nextPageExists = true; - let parameters = { ...initialParameters }; - return { - [Symbol.asyncIterator]: () => ({ - async next() { - if (!nextPageExists) return { done: true, value: {} }; - const response = await octokit.graphql( - query, - parameters - ); - const pageInfoContext = extractPageInfos(response); - const nextCursorValue = getCursorFrom(pageInfoContext.pageInfo); - nextPageExists = hasAnotherPage(pageInfoContext.pageInfo); - if (nextPageExists && nextCursorValue === parameters.cursor) { - throw new MissingCursorChange(pageInfoContext, nextCursorValue); - } - parameters = { - ...parameters, - cursor: nextCursorValue - }; - return { done: false, value: response }; - } - }) - }; - }; -}; - -// pkg/dist-src/merge-responses.js -var mergeResponses = (response1, response2) => { - if (Object.keys(response1).length === 0) { - return Object.assign(response1, response2); - } - const path = findPaginatedResourcePath(response1); - const nodesPath = [...path, "nodes"]; - const newNodes = get(response2, nodesPath); - if (newNodes) { - set(response1, nodesPath, (values) => { - return [...values, ...newNodes]; - }); - } - const edgesPath = [...path, "edges"]; - const newEdges = get(response2, edgesPath); - if (newEdges) { - set(response1, edgesPath, (values) => { - return [...values, ...newEdges]; - }); - } - const pageInfoPath = [...path, "pageInfo"]; - set(response1, pageInfoPath, get(response2, pageInfoPath)); - return response1; -}; - -// pkg/dist-src/paginate.js -var createPaginate = (octokit) => { - const iterator = createIterator(octokit); - return async (query, initialParameters = {}) => { - let mergedResponse = {}; - for await (const response of iterator( - query, - initialParameters - )) { - mergedResponse = mergeResponses(mergedResponse, response); - } - return mergedResponse; - }; -}; - -// pkg/dist-src/version.js -var plugin_paginate_graphql_dist_bundle_VERSION = "0.0.0-development"; - -// pkg/dist-src/index.js -function paginateGraphQL(octokit) { - return { - graphql: Object.assign(octokit.graphql, { - paginate: Object.assign(createPaginate(octokit), { - iterator: createIterator(octokit) - }) - }) - }; -} - - -// EXTERNAL MODULE: ./node_modules/@actions/core/lib/core.js -var core = __nccwpck_require__(2738); -// EXTERNAL MODULE: ./node_modules/@actions/github/lib/github.js -var github = __nccwpck_require__(3098); -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/registry/format.mjs -/** A registry for user defined string formats */ -const map = new Map(); -/** Returns the entries in this registry */ -function Entries() { - return new Map(map); -} -/** Clears all user defined string formats */ -function Clear() { - return map.clear(); -} -/** Deletes a registered format */ -function Delete(format) { - return map.delete(format); -} -/** Returns true if the user defined string format exists */ -function Has(format) { - return map.has(format); -} -/** Sets a validation function for a user defined string format */ -function format_Set(format, func) { - map.set(format, func); -} -/** Gets a validation function for a user defined string format */ -function Get(format) { - return map.get(format); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs -/** A registry for user defined types */ -const type_map = new Map(); -/** Returns the entries in this registry */ -function type_Entries() { - return new Map(type_map); -} -/** Clears all user defined types */ -function type_Clear() { - return type_map.clear(); -} -/** Deletes a registered type */ -function type_Delete(kind) { - return type_map.delete(kind); -} -/** Returns true if this registry contains this kind */ -function type_Has(kind) { - return type_map.has(kind); -} -/** Sets a validation function for a user defined type */ -function type_Set(kind, func) { - type_map.set(kind, func); -} -/** Gets a custom validation function for a user defined type */ -function type_Get(kind) { - return type_map.get(kind); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs - -/** Fast undefined check used for properties of type undefined */ -function extends_undefined_Intersect(schema) { - return schema.allOf.every((schema) => ExtendsUndefinedCheck(schema)); -} -function extends_undefined_Union(schema) { - return schema.anyOf.some((schema) => ExtendsUndefinedCheck(schema)); -} -function extends_undefined_Not(schema) { - return !ExtendsUndefinedCheck(schema.not); -} -/** Fast undefined check used for properties of type undefined */ -// prettier-ignore -function ExtendsUndefinedCheck(schema) { - return (schema[Kind] === 'Intersect' ? extends_undefined_Intersect(schema) : - schema[Kind] === 'Union' ? extends_undefined_Union(schema) : - schema[Kind] === 'Not' ? extends_undefined_Not(schema) : - schema[Kind] === 'Undefined' ? true : - false); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/errors/function.mjs - - -/** Creates an error message using en-US as the default locale */ -function DefaultErrorFunction(error) { - switch (error.errorType) { - case ValueErrorType.ArrayContains: - return 'Expected array to contain at least one matching value'; - case ValueErrorType.ArrayMaxContains: - return `Expected array to contain no more than ${error.schema.maxContains} matching values`; - case ValueErrorType.ArrayMinContains: - return `Expected array to contain at least ${error.schema.minContains} matching values`; - case ValueErrorType.ArrayMaxItems: - return `Expected array length to be less or equal to ${error.schema.maxItems}`; - case ValueErrorType.ArrayMinItems: - return `Expected array length to be greater or equal to ${error.schema.minItems}`; - case ValueErrorType.ArrayUniqueItems: - return 'Expected array elements to be unique'; - case ValueErrorType.Array: - return 'Expected array'; - case ValueErrorType.AsyncIterator: - return 'Expected AsyncIterator'; - case ValueErrorType.BigIntExclusiveMaximum: - return `Expected bigint to be less than ${error.schema.exclusiveMaximum}`; - case ValueErrorType.BigIntExclusiveMinimum: - return `Expected bigint to be greater than ${error.schema.exclusiveMinimum}`; - case ValueErrorType.BigIntMaximum: - return `Expected bigint to be less or equal to ${error.schema.maximum}`; - case ValueErrorType.BigIntMinimum: - return `Expected bigint to be greater or equal to ${error.schema.minimum}`; - case ValueErrorType.BigIntMultipleOf: - return `Expected bigint to be a multiple of ${error.schema.multipleOf}`; - case ValueErrorType.BigInt: - return 'Expected bigint'; - case ValueErrorType.Boolean: - return 'Expected boolean'; - case ValueErrorType.DateExclusiveMinimumTimestamp: - return `Expected Date timestamp to be greater than ${error.schema.exclusiveMinimumTimestamp}`; - case ValueErrorType.DateExclusiveMaximumTimestamp: - return `Expected Date timestamp to be less than ${error.schema.exclusiveMaximumTimestamp}`; - case ValueErrorType.DateMinimumTimestamp: - return `Expected Date timestamp to be greater or equal to ${error.schema.minimumTimestamp}`; - case ValueErrorType.DateMaximumTimestamp: - return `Expected Date timestamp to be less or equal to ${error.schema.maximumTimestamp}`; - case ValueErrorType.DateMultipleOfTimestamp: - return `Expected Date timestamp to be a multiple of ${error.schema.multipleOfTimestamp}`; - case ValueErrorType.Date: - return 'Expected Date'; - case ValueErrorType.Function: - return 'Expected function'; - case ValueErrorType.IntegerExclusiveMaximum: - return `Expected integer to be less than ${error.schema.exclusiveMaximum}`; - case ValueErrorType.IntegerExclusiveMinimum: - return `Expected integer to be greater than ${error.schema.exclusiveMinimum}`; - case ValueErrorType.IntegerMaximum: - return `Expected integer to be less or equal to ${error.schema.maximum}`; - case ValueErrorType.IntegerMinimum: - return `Expected integer to be greater or equal to ${error.schema.minimum}`; - case ValueErrorType.IntegerMultipleOf: - return `Expected integer to be a multiple of ${error.schema.multipleOf}`; - case ValueErrorType.Integer: - return 'Expected integer'; - case ValueErrorType.IntersectUnevaluatedProperties: - return 'Unexpected property'; - case ValueErrorType.Intersect: - return 'Expected all values to match'; - case ValueErrorType.Iterator: - return 'Expected Iterator'; - case ValueErrorType.Literal: - return `Expected ${typeof error.schema.const === 'string' ? `'${error.schema.const}'` : error.schema.const}`; - case ValueErrorType.Never: - return 'Never'; - case ValueErrorType.Not: - return 'Value should not match'; - case ValueErrorType.Null: - return 'Expected null'; - case ValueErrorType.NumberExclusiveMaximum: - return `Expected number to be less than ${error.schema.exclusiveMaximum}`; - case ValueErrorType.NumberExclusiveMinimum: - return `Expected number to be greater than ${error.schema.exclusiveMinimum}`; - case ValueErrorType.NumberMaximum: - return `Expected number to be less or equal to ${error.schema.maximum}`; - case ValueErrorType.NumberMinimum: - return `Expected number to be greater or equal to ${error.schema.minimum}`; - case ValueErrorType.NumberMultipleOf: - return `Expected number to be a multiple of ${error.schema.multipleOf}`; - case ValueErrorType.Number: - return 'Expected number'; - case ValueErrorType.Object: - return 'Expected object'; - case ValueErrorType.ObjectAdditionalProperties: - return 'Unexpected property'; - case ValueErrorType.ObjectMaxProperties: - return `Expected object to have no more than ${error.schema.maxProperties} properties`; - case ValueErrorType.ObjectMinProperties: - return `Expected object to have at least ${error.schema.minProperties} properties`; - case ValueErrorType.ObjectRequiredProperty: - return 'Expected required property'; - case ValueErrorType.Promise: - return 'Expected Promise'; - case ValueErrorType.RegExp: - return 'Expected string to match regular expression'; - case ValueErrorType.StringFormatUnknown: - return `Unknown format '${error.schema.format}'`; - case ValueErrorType.StringFormat: - return `Expected string to match '${error.schema.format}' format`; - case ValueErrorType.StringMaxLength: - return `Expected string length less or equal to ${error.schema.maxLength}`; - case ValueErrorType.StringMinLength: - return `Expected string length greater or equal to ${error.schema.minLength}`; - case ValueErrorType.StringPattern: - return `Expected string to match '${error.schema.pattern}'`; - case ValueErrorType.String: - return 'Expected string'; - case ValueErrorType.Symbol: - return 'Expected symbol'; - case ValueErrorType.TupleLength: - return `Expected tuple to have ${error.schema.maxItems || 0} elements`; - case ValueErrorType.Tuple: - return 'Expected tuple'; - case ValueErrorType.Uint8ArrayMaxByteLength: - return `Expected byte length less or equal to ${error.schema.maxByteLength}`; - case ValueErrorType.Uint8ArrayMinByteLength: - return `Expected byte length greater or equal to ${error.schema.minByteLength}`; - case ValueErrorType.Uint8Array: - return 'Expected Uint8Array'; - case ValueErrorType.Undefined: - return 'Expected undefined'; - case ValueErrorType.Union: - return 'Expected union value'; - case ValueErrorType.Void: - return 'Expected void'; - case ValueErrorType.Kind: - return `Expected kind '${error.schema[Kind]}'`; - default: - return 'Unknown error type'; - } -} -/** Manages error message providers */ -let errorFunction = DefaultErrorFunction; -/** Sets the error function used to generate error messages. */ -function SetErrorFunction(callback) { - errorFunction = callback; -} -/** Gets the error function used to generate error messages */ -function GetErrorFunction() { - return errorFunction; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/deref/deref.mjs - - - -class TypeDereferenceError extends error_TypeBoxError { - constructor(schema) { - super(`Unable to dereference schema with $id '${schema.$ref}'`); - this.schema = schema; - } -} -function Resolve(schema, references) { - const target = references.find((target) => target.$id === schema.$ref); - if (target === undefined) - throw new TypeDereferenceError(schema); - return deref_Deref(target, references); -} -/** `[Internal]` Pushes a schema onto references if the schema has an $id and does not exist on references */ -function Pushref(schema, references) { - if (!IsString(schema.$id) || references.some((target) => target.$id === schema.$id)) - return references; - references.push(schema); - return references; -} -/** `[Internal]` Dereferences a schema from the references array or throws if not found */ -function deref_Deref(schema, references) { - // prettier-ignore - return (schema[Kind] === 'This' || schema[Kind] === 'Ref') - ? Resolve(schema, references) - : schema; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/hash/hash.mjs - - -// ------------------------------------------------------------------ -// Errors -// ------------------------------------------------------------------ -class ValueHashError extends error_TypeBoxError { - constructor(value) { - super(`Unable to hash value`); - this.value = value; - } -} -// ------------------------------------------------------------------ -// ByteMarker -// ------------------------------------------------------------------ -var ByteMarker; -(function (ByteMarker) { - ByteMarker[ByteMarker["Undefined"] = 0] = "Undefined"; - ByteMarker[ByteMarker["Null"] = 1] = "Null"; - ByteMarker[ByteMarker["Boolean"] = 2] = "Boolean"; - ByteMarker[ByteMarker["Number"] = 3] = "Number"; - ByteMarker[ByteMarker["String"] = 4] = "String"; - ByteMarker[ByteMarker["Object"] = 5] = "Object"; - ByteMarker[ByteMarker["Array"] = 6] = "Array"; - ByteMarker[ByteMarker["Date"] = 7] = "Date"; - ByteMarker[ByteMarker["Uint8Array"] = 8] = "Uint8Array"; - ByteMarker[ByteMarker["Symbol"] = 9] = "Symbol"; - ByteMarker[ByteMarker["BigInt"] = 10] = "BigInt"; -})(ByteMarker || (ByteMarker = {})); -// ------------------------------------------------------------------ -// State -// ------------------------------------------------------------------ -let Accumulator = BigInt('14695981039346656037'); -const [Prime, Size] = [BigInt('1099511628211'), BigInt('18446744073709551616' /* 2 ^ 64 */)]; -const Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i)); -const F64 = new Float64Array(1); -const F64In = new DataView(F64.buffer); -const F64Out = new Uint8Array(F64.buffer); -// ------------------------------------------------------------------ -// NumberToBytes -// ------------------------------------------------------------------ -function* NumberToBytes(value) { - const byteCount = value === 0 ? 1 : Math.ceil(Math.floor(Math.log2(value) + 1) / 8); - for (let i = 0; i < byteCount; i++) { - yield (value >> (8 * (byteCount - 1 - i))) & 0xff; - } -} -// ------------------------------------------------------------------ -// Hashing Functions -// ------------------------------------------------------------------ -function hash_ArrayType(value) { - FNV1A64(ByteMarker.Array); - for (const item of value) { - hash_Visit(item); - } -} -function BooleanType(value) { - FNV1A64(ByteMarker.Boolean); - FNV1A64(value ? 1 : 0); -} -function BigIntType(value) { - FNV1A64(ByteMarker.BigInt); - F64In.setBigInt64(0, value); - for (const byte of F64Out) { - FNV1A64(byte); - } -} -function hash_DateType(value) { - FNV1A64(ByteMarker.Date); - hash_Visit(value.getTime()); -} -function NullType(value) { - FNV1A64(ByteMarker.Null); -} -function NumberType(value) { - FNV1A64(ByteMarker.Number); - F64In.setFloat64(0, value); - for (const byte of F64Out) { - FNV1A64(byte); - } -} -function hash_ObjectType(value) { - FNV1A64(ByteMarker.Object); - for (const key of globalThis.Object.getOwnPropertyNames(value).sort()) { - hash_Visit(key); - hash_Visit(value[key]); - } -} -function StringType(value) { - FNV1A64(ByteMarker.String); - for (let i = 0; i < value.length; i++) { - for (const byte of NumberToBytes(value.charCodeAt(i))) { - FNV1A64(byte); - } - } -} -function SymbolType(value) { - FNV1A64(ByteMarker.Symbol); - hash_Visit(value.description); -} -function hash_Uint8ArrayType(value) { - FNV1A64(ByteMarker.Uint8Array); - for (let i = 0; i < value.length; i++) { - FNV1A64(value[i]); - } -} -function UndefinedType(value) { - return FNV1A64(ByteMarker.Undefined); -} -function hash_Visit(value) { - if (IsArray(value)) - return hash_ArrayType(value); - if (IsBoolean(value)) - return BooleanType(value); - if (IsBigInt(value)) - return BigIntType(value); - if (IsDate(value)) - return hash_DateType(value); - if (IsNull(value)) - return NullType(value); - if (IsNumber(value)) - return NumberType(value); - if (IsObject(value)) - return hash_ObjectType(value); - if (IsString(value)) - return StringType(value); - if (IsSymbol(value)) - return SymbolType(value); - if (IsUint8Array(value)) - return hash_Uint8ArrayType(value); - if (IsUndefined(value)) - return UndefinedType(value); - throw new ValueHashError(value); -} -function FNV1A64(byte) { - Accumulator = Accumulator ^ Bytes[byte]; - Accumulator = (Accumulator * Prime) % Size; -} -// ------------------------------------------------------------------ -// Hash -// ------------------------------------------------------------------ -/** Creates a FNV1A-64 non cryptographic hash of the given value */ -function Hash(value) { - Accumulator = BigInt('14695981039346656037'); - hash_Visit(value); - return Accumulator; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/check/check.mjs - - - - - - - - - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// KindGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// Errors -// ------------------------------------------------------------------ -class ValueCheckUnknownTypeError extends error_TypeBoxError { - constructor(schema) { - super(`Unknown type`); - this.schema = schema; - } -} -// ------------------------------------------------------------------ -// TypeGuards -// ------------------------------------------------------------------ -function IsAnyOrUnknown(schema) { - return schema[Kind] === 'Any' || schema[Kind] === 'Unknown'; -} -// ------------------------------------------------------------------ -// Guards -// ------------------------------------------------------------------ -function IsDefined(value) { - return value !== undefined; -} -// ------------------------------------------------------------------ -// Types -// ------------------------------------------------------------------ -function check_FromAny(schema, references, value) { - return true; -} -function check_FromArray(schema, references, value) { - if (!IsArray(value)) - return false; - if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) { - return false; - } - if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) { - return false; - } - if (!value.every((value) => check_Visit(schema.items, references, value))) { - return false; - } - // prettier-ignore - if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) { - const hashed = Hash(element); - if (set.has(hashed)) { - return false; - } - else { - set.add(hashed); - } - } return true; })())) { - return false; - } - // contains - if (!(IsDefined(schema.contains) || IsNumber(schema.minContains) || IsNumber(schema.maxContains))) { - return true; // exit - } - const containsSchema = IsDefined(schema.contains) ? schema.contains : Never(); - const containsCount = value.reduce((acc, value) => (check_Visit(containsSchema, references, value) ? acc + 1 : acc), 0); - if (containsCount === 0) { - return false; - } - if (IsNumber(schema.minContains) && containsCount < schema.minContains) { - return false; - } - if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) { - return false; - } - return true; -} -function check_FromAsyncIterator(schema, references, value) { - return IsAsyncIterator(value); -} -function check_FromBigInt(schema, references, value) { - if (!IsBigInt(value)) - return false; - if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { - return false; - } - if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { - return false; - } - if (IsDefined(schema.maximum) && !(value <= schema.maximum)) { - return false; - } - if (IsDefined(schema.minimum) && !(value >= schema.minimum)) { - return false; - } - if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) { - return false; - } - return true; -} -function check_FromBoolean(schema, references, value) { - return IsBoolean(value); -} -function check_FromConstructor(schema, references, value) { - return check_Visit(schema.returns, references, value.prototype); -} -function check_FromDate(schema, references, value) { - if (!IsDate(value)) - return false; - if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) { - return false; - } - if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) { - return false; - } - if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) { - return false; - } - if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) { - return false; - } - if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) { - return false; - } - return true; -} -function check_FromFunction(schema, references, value) { - return IsFunction(value); -} -function FromImport(schema, references, value) { - const definitions = globalThis.Object.values(schema.$defs); - const target = schema.$defs[schema.$ref]; - return check_Visit(target, [...references, ...definitions], value); -} -function check_FromInteger(schema, references, value) { - if (!IsInteger(value)) { - return false; - } - if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { - return false; - } - if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { - return false; - } - if (IsDefined(schema.maximum) && !(value <= schema.maximum)) { - return false; - } - if (IsDefined(schema.minimum) && !(value >= schema.minimum)) { - return false; - } - if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { - return false; - } - return true; -} -function check_FromIntersect(schema, references, value) { - const check1 = schema.allOf.every((schema) => check_Visit(schema, references, value)); - if (schema.unevaluatedProperties === false) { - const keyPattern = new RegExp(KeyOfPattern(schema)); - const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key)); - return check1 && check2; - } - else if (IsSchema(schema.unevaluatedProperties)) { - const keyCheck = new RegExp(KeyOfPattern(schema)); - const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || check_Visit(schema.unevaluatedProperties, references, value[key])); - return check1 && check2; - } - else { - return check1; - } -} -function check_FromIterator(schema, references, value) { - return IsIterator(value); -} -function check_FromLiteral(schema, references, value) { - return value === schema.const; -} -function check_FromNever(schema, references, value) { - return false; -} -function check_FromNot(schema, references, value) { - return !check_Visit(schema.not, references, value); -} -function check_FromNull(schema, references, value) { - return IsNull(value); -} -function check_FromNumber(schema, references, value) { - if (!TypeSystemPolicy.IsNumberLike(value)) - return false; - if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { - return false; - } - if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { - return false; - } - if (IsDefined(schema.minimum) && !(value >= schema.minimum)) { - return false; - } - if (IsDefined(schema.maximum) && !(value <= schema.maximum)) { - return false; - } - if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { - return false; - } - return true; -} -function check_FromObject(schema, references, value) { - if (!TypeSystemPolicy.IsObjectLike(value)) - return false; - if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { - return false; - } - if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { - return false; - } - const knownKeys = Object.getOwnPropertyNames(schema.properties); - for (const knownKey of knownKeys) { - const property = schema.properties[knownKey]; - if (schema.required && schema.required.includes(knownKey)) { - if (!check_Visit(property, references, value[knownKey])) { - return false; - } - if ((ExtendsUndefinedCheck(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) { - return false; - } - } - else { - if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !check_Visit(property, references, value[knownKey])) { - return false; - } - } - } - if (schema.additionalProperties === false) { - const valueKeys = Object.getOwnPropertyNames(value); - // optimization: value is valid if schemaKey length matches the valueKey length - if (schema.required && schema.required.length === knownKeys.length && valueKeys.length === knownKeys.length) { - return true; - } - else { - return valueKeys.every((valueKey) => knownKeys.includes(valueKey)); - } - } - else if (typeof schema.additionalProperties === 'object') { - const valueKeys = Object.getOwnPropertyNames(value); - return valueKeys.every((key) => knownKeys.includes(key) || check_Visit(schema.additionalProperties, references, value[key])); - } - else { - return true; - } -} -function check_FromPromise(schema, references, value) { - return IsPromise(value); -} -function check_FromRecord(schema, references, value) { - if (!TypeSystemPolicy.IsRecordLike(value)) { - return false; - } - if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { - return false; - } - if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { - return false; - } - const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0]; - const regex = new RegExp(patternKey); - // prettier-ignore - const check1 = Object.entries(value).every(([key, value]) => { - return (regex.test(key)) ? check_Visit(patternSchema, references, value) : true; - }); - // prettier-ignore - const check2 = typeof schema.additionalProperties === 'object' ? Object.entries(value).every(([key, value]) => { - return (!regex.test(key)) ? check_Visit(schema.additionalProperties, references, value) : true; - }) : true; - const check3 = schema.additionalProperties === false - ? Object.getOwnPropertyNames(value).every((key) => { - return regex.test(key); - }) - : true; - return check1 && check2 && check3; -} -function check_FromRef(schema, references, value) { - return check_Visit(deref_Deref(schema, references), references, value); -} -function check_FromRegExp(schema, references, value) { - const regex = new RegExp(schema.source, schema.flags); - if (IsDefined(schema.minLength)) { - if (!(value.length >= schema.minLength)) - return false; - } - if (IsDefined(schema.maxLength)) { - if (!(value.length <= schema.maxLength)) - return false; - } - return regex.test(value); -} -function check_FromString(schema, references, value) { - if (!IsString(value)) { - return false; - } - if (IsDefined(schema.minLength)) { - if (!(value.length >= schema.minLength)) - return false; - } - if (IsDefined(schema.maxLength)) { - if (!(value.length <= schema.maxLength)) - return false; - } - if (IsDefined(schema.pattern)) { - const regex = new RegExp(schema.pattern); - if (!regex.test(value)) - return false; - } - if (IsDefined(schema.format)) { - if (!Has(schema.format)) - return false; - const func = Get(schema.format); - return func(value); - } - return true; -} -function check_FromSymbol(schema, references, value) { - return IsSymbol(value); -} -function check_FromTemplateLiteral(schema, references, value) { - return IsString(value) && new RegExp(schema.pattern).test(value); -} -function FromThis(schema, references, value) { - return check_Visit(deref_Deref(schema, references), references, value); -} -function check_FromTuple(schema, references, value) { - if (!IsArray(value)) { - return false; - } - if (schema.items === undefined && !(value.length === 0)) { - return false; - } - if (!(value.length === schema.maxItems)) { - return false; - } - if (!schema.items) { - return true; - } - for (let i = 0; i < schema.items.length; i++) { - if (!check_Visit(schema.items[i], references, value[i])) - return false; - } - return true; -} -function check_FromUndefined(schema, references, value) { - return IsUndefined(value); -} -function check_FromUnion(schema, references, value) { - return schema.anyOf.some((inner) => check_Visit(inner, references, value)); -} -function check_FromUint8Array(schema, references, value) { - if (!IsUint8Array(value)) { - return false; - } - if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) { - return false; - } - if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) { - return false; - } - return true; -} -function check_FromUnknown(schema, references, value) { - return true; -} -function check_FromVoid(schema, references, value) { - return TypeSystemPolicy.IsVoidLike(value); -} -function FromKind(schema, references, value) { - if (!type_Has(schema[Kind])) - return false; - const func = type_Get(schema[Kind]); - return func(schema, value); -} -function check_Visit(schema, references, value) { - const references_ = IsDefined(schema.$id) ? Pushref(schema, references) : references; - const schema_ = schema; - switch (schema_[Kind]) { - case 'Any': - return check_FromAny(schema_, references_, value); - case 'Array': - return check_FromArray(schema_, references_, value); - case 'AsyncIterator': - return check_FromAsyncIterator(schema_, references_, value); - case 'BigInt': - return check_FromBigInt(schema_, references_, value); - case 'Boolean': - return check_FromBoolean(schema_, references_, value); - case 'Constructor': - return check_FromConstructor(schema_, references_, value); - case 'Date': - return check_FromDate(schema_, references_, value); - case 'Function': - return check_FromFunction(schema_, references_, value); - case 'Import': - return FromImport(schema_, references_, value); - case 'Integer': - return check_FromInteger(schema_, references_, value); - case 'Intersect': - return check_FromIntersect(schema_, references_, value); - case 'Iterator': - return check_FromIterator(schema_, references_, value); - case 'Literal': - return check_FromLiteral(schema_, references_, value); - case 'Never': - return check_FromNever(schema_, references_, value); - case 'Not': - return check_FromNot(schema_, references_, value); - case 'Null': - return check_FromNull(schema_, references_, value); - case 'Number': - return check_FromNumber(schema_, references_, value); - case 'Object': - return check_FromObject(schema_, references_, value); - case 'Promise': - return check_FromPromise(schema_, references_, value); - case 'Record': - return check_FromRecord(schema_, references_, value); - case 'Ref': - return check_FromRef(schema_, references_, value); - case 'RegExp': - return check_FromRegExp(schema_, references_, value); - case 'String': - return check_FromString(schema_, references_, value); - case 'Symbol': - return check_FromSymbol(schema_, references_, value); - case 'TemplateLiteral': - return check_FromTemplateLiteral(schema_, references_, value); - case 'This': - return FromThis(schema_, references_, value); - case 'Tuple': - return check_FromTuple(schema_, references_, value); - case 'Undefined': - return check_FromUndefined(schema_, references_, value); - case 'Union': - return check_FromUnion(schema_, references_, value); - case 'Uint8Array': - return check_FromUint8Array(schema_, references_, value); - case 'Unknown': - return check_FromUnknown(schema_, references_, value); - case 'Void': - return check_FromVoid(schema_, references_, value); - default: - if (!type_Has(schema_[Kind])) - throw new ValueCheckUnknownTypeError(schema_); - return FromKind(schema_, references_, value); - } -} -/** Returns true if the value matches the given type. */ -function Check(...args) { - return args.length === 3 ? check_Visit(args[0], args[1], args[2]) : check_Visit(args[0], [], args[1]); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/errors/errors.mjs - - - - - - - - - - - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ -// prettier-ignore - -// ------------------------------------------------------------------ -// ValueErrorType -// ------------------------------------------------------------------ -var ValueErrorType; -(function (ValueErrorType) { - ValueErrorType[ValueErrorType["ArrayContains"] = 0] = "ArrayContains"; - ValueErrorType[ValueErrorType["ArrayMaxContains"] = 1] = "ArrayMaxContains"; - ValueErrorType[ValueErrorType["ArrayMaxItems"] = 2] = "ArrayMaxItems"; - ValueErrorType[ValueErrorType["ArrayMinContains"] = 3] = "ArrayMinContains"; - ValueErrorType[ValueErrorType["ArrayMinItems"] = 4] = "ArrayMinItems"; - ValueErrorType[ValueErrorType["ArrayUniqueItems"] = 5] = "ArrayUniqueItems"; - ValueErrorType[ValueErrorType["Array"] = 6] = "Array"; - ValueErrorType[ValueErrorType["AsyncIterator"] = 7] = "AsyncIterator"; - ValueErrorType[ValueErrorType["BigIntExclusiveMaximum"] = 8] = "BigIntExclusiveMaximum"; - ValueErrorType[ValueErrorType["BigIntExclusiveMinimum"] = 9] = "BigIntExclusiveMinimum"; - ValueErrorType[ValueErrorType["BigIntMaximum"] = 10] = "BigIntMaximum"; - ValueErrorType[ValueErrorType["BigIntMinimum"] = 11] = "BigIntMinimum"; - ValueErrorType[ValueErrorType["BigIntMultipleOf"] = 12] = "BigIntMultipleOf"; - ValueErrorType[ValueErrorType["BigInt"] = 13] = "BigInt"; - ValueErrorType[ValueErrorType["Boolean"] = 14] = "Boolean"; - ValueErrorType[ValueErrorType["DateExclusiveMaximumTimestamp"] = 15] = "DateExclusiveMaximumTimestamp"; - ValueErrorType[ValueErrorType["DateExclusiveMinimumTimestamp"] = 16] = "DateExclusiveMinimumTimestamp"; - ValueErrorType[ValueErrorType["DateMaximumTimestamp"] = 17] = "DateMaximumTimestamp"; - ValueErrorType[ValueErrorType["DateMinimumTimestamp"] = 18] = "DateMinimumTimestamp"; - ValueErrorType[ValueErrorType["DateMultipleOfTimestamp"] = 19] = "DateMultipleOfTimestamp"; - ValueErrorType[ValueErrorType["Date"] = 20] = "Date"; - ValueErrorType[ValueErrorType["Function"] = 21] = "Function"; - ValueErrorType[ValueErrorType["IntegerExclusiveMaximum"] = 22] = "IntegerExclusiveMaximum"; - ValueErrorType[ValueErrorType["IntegerExclusiveMinimum"] = 23] = "IntegerExclusiveMinimum"; - ValueErrorType[ValueErrorType["IntegerMaximum"] = 24] = "IntegerMaximum"; - ValueErrorType[ValueErrorType["IntegerMinimum"] = 25] = "IntegerMinimum"; - ValueErrorType[ValueErrorType["IntegerMultipleOf"] = 26] = "IntegerMultipleOf"; - ValueErrorType[ValueErrorType["Integer"] = 27] = "Integer"; - ValueErrorType[ValueErrorType["IntersectUnevaluatedProperties"] = 28] = "IntersectUnevaluatedProperties"; - ValueErrorType[ValueErrorType["Intersect"] = 29] = "Intersect"; - ValueErrorType[ValueErrorType["Iterator"] = 30] = "Iterator"; - ValueErrorType[ValueErrorType["Kind"] = 31] = "Kind"; - ValueErrorType[ValueErrorType["Literal"] = 32] = "Literal"; - ValueErrorType[ValueErrorType["Never"] = 33] = "Never"; - ValueErrorType[ValueErrorType["Not"] = 34] = "Not"; - ValueErrorType[ValueErrorType["Null"] = 35] = "Null"; - ValueErrorType[ValueErrorType["NumberExclusiveMaximum"] = 36] = "NumberExclusiveMaximum"; - ValueErrorType[ValueErrorType["NumberExclusiveMinimum"] = 37] = "NumberExclusiveMinimum"; - ValueErrorType[ValueErrorType["NumberMaximum"] = 38] = "NumberMaximum"; - ValueErrorType[ValueErrorType["NumberMinimum"] = 39] = "NumberMinimum"; - ValueErrorType[ValueErrorType["NumberMultipleOf"] = 40] = "NumberMultipleOf"; - ValueErrorType[ValueErrorType["Number"] = 41] = "Number"; - ValueErrorType[ValueErrorType["ObjectAdditionalProperties"] = 42] = "ObjectAdditionalProperties"; - ValueErrorType[ValueErrorType["ObjectMaxProperties"] = 43] = "ObjectMaxProperties"; - ValueErrorType[ValueErrorType["ObjectMinProperties"] = 44] = "ObjectMinProperties"; - ValueErrorType[ValueErrorType["ObjectRequiredProperty"] = 45] = "ObjectRequiredProperty"; - ValueErrorType[ValueErrorType["Object"] = 46] = "Object"; - ValueErrorType[ValueErrorType["Promise"] = 47] = "Promise"; - ValueErrorType[ValueErrorType["RegExp"] = 48] = "RegExp"; - ValueErrorType[ValueErrorType["StringFormatUnknown"] = 49] = "StringFormatUnknown"; - ValueErrorType[ValueErrorType["StringFormat"] = 50] = "StringFormat"; - ValueErrorType[ValueErrorType["StringMaxLength"] = 51] = "StringMaxLength"; - ValueErrorType[ValueErrorType["StringMinLength"] = 52] = "StringMinLength"; - ValueErrorType[ValueErrorType["StringPattern"] = 53] = "StringPattern"; - ValueErrorType[ValueErrorType["String"] = 54] = "String"; - ValueErrorType[ValueErrorType["Symbol"] = 55] = "Symbol"; - ValueErrorType[ValueErrorType["TupleLength"] = 56] = "TupleLength"; - ValueErrorType[ValueErrorType["Tuple"] = 57] = "Tuple"; - ValueErrorType[ValueErrorType["Uint8ArrayMaxByteLength"] = 58] = "Uint8ArrayMaxByteLength"; - ValueErrorType[ValueErrorType["Uint8ArrayMinByteLength"] = 59] = "Uint8ArrayMinByteLength"; - ValueErrorType[ValueErrorType["Uint8Array"] = 60] = "Uint8Array"; - ValueErrorType[ValueErrorType["Undefined"] = 61] = "Undefined"; - ValueErrorType[ValueErrorType["Union"] = 62] = "Union"; - ValueErrorType[ValueErrorType["Void"] = 63] = "Void"; -})(ValueErrorType || (ValueErrorType = {})); -// ------------------------------------------------------------------ -// ValueErrors -// ------------------------------------------------------------------ -class ValueErrorsUnknownTypeError extends error_TypeBoxError { - constructor(schema) { - super('Unknown type'); - this.schema = schema; - } -} -// ------------------------------------------------------------------ -// EscapeKey -// ------------------------------------------------------------------ -function EscapeKey(key) { - return key.replace(/~/g, '~0').replace(/\//g, '~1'); // RFC6901 Path -} -// ------------------------------------------------------------------ -// Guards -// ------------------------------------------------------------------ -function errors_IsDefined(value) { - return value !== undefined; -} -// ------------------------------------------------------------------ -// ValueErrorIterator -// ------------------------------------------------------------------ -class ValueErrorIterator { - constructor(iterator) { - this.iterator = iterator; - } - [Symbol.iterator]() { - return this.iterator; - } - /** Returns the first value error or undefined if no errors */ - First() { - const next = this.iterator.next(); - return next.done ? undefined : next.value; - } -} -// -------------------------------------------------------------------------- -// Create -// -------------------------------------------------------------------------- -function Create(errorType, schema, path, value, errors = []) { - return { - type: errorType, - schema, - path, - value, - message: GetErrorFunction()({ errorType, path, schema, value, errors }), - errors, - }; -} -// -------------------------------------------------------------------------- -// Types -// -------------------------------------------------------------------------- -function* errors_FromAny(schema, references, path, value) { } -function* errors_FromArray(schema, references, path, value) { - if (!IsArray(value)) { - return yield Create(ValueErrorType.Array, schema, path, value); - } - if (errors_IsDefined(schema.minItems) && !(value.length >= schema.minItems)) { - yield Create(ValueErrorType.ArrayMinItems, schema, path, value); - } - if (errors_IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) { - yield Create(ValueErrorType.ArrayMaxItems, schema, path, value); - } - for (let i = 0; i < value.length; i++) { - yield* errors_Visit(schema.items, references, `${path}/${i}`, value[i]); - } - // prettier-ignore - if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) { - const hashed = Hash(element); - if (set.has(hashed)) { - return false; - } - else { - set.add(hashed); - } - } return true; })())) { - yield Create(ValueErrorType.ArrayUniqueItems, schema, path, value); - } - // contains - if (!(errors_IsDefined(schema.contains) || errors_IsDefined(schema.minContains) || errors_IsDefined(schema.maxContains))) { - return; - } - const containsSchema = errors_IsDefined(schema.contains) ? schema.contains : Never(); - const containsCount = value.reduce((acc, value, index) => (errors_Visit(containsSchema, references, `${path}${index}`, value).next().done === true ? acc + 1 : acc), 0); - if (containsCount === 0) { - yield Create(ValueErrorType.ArrayContains, schema, path, value); - } - if (IsNumber(schema.minContains) && containsCount < schema.minContains) { - yield Create(ValueErrorType.ArrayMinContains, schema, path, value); - } - if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) { - yield Create(ValueErrorType.ArrayMaxContains, schema, path, value); - } -} -function* errors_FromAsyncIterator(schema, references, path, value) { - if (!IsAsyncIterator(value)) - yield Create(ValueErrorType.AsyncIterator, schema, path, value); -} -function* errors_FromBigInt(schema, references, path, value) { - if (!IsBigInt(value)) - return yield Create(ValueErrorType.BigInt, schema, path, value); - if (errors_IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { - yield Create(ValueErrorType.BigIntExclusiveMaximum, schema, path, value); - } - if (errors_IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { - yield Create(ValueErrorType.BigIntExclusiveMinimum, schema, path, value); - } - if (errors_IsDefined(schema.maximum) && !(value <= schema.maximum)) { - yield Create(ValueErrorType.BigIntMaximum, schema, path, value); - } - if (errors_IsDefined(schema.minimum) && !(value >= schema.minimum)) { - yield Create(ValueErrorType.BigIntMinimum, schema, path, value); - } - if (errors_IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) { - yield Create(ValueErrorType.BigIntMultipleOf, schema, path, value); - } -} -function* errors_FromBoolean(schema, references, path, value) { - if (!IsBoolean(value)) - yield Create(ValueErrorType.Boolean, schema, path, value); -} -function* errors_FromConstructor(schema, references, path, value) { - yield* errors_Visit(schema.returns, references, path, value.prototype); -} -function* errors_FromDate(schema, references, path, value) { - if (!IsDate(value)) - return yield Create(ValueErrorType.Date, schema, path, value); - if (errors_IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) { - yield Create(ValueErrorType.DateExclusiveMaximumTimestamp, schema, path, value); - } - if (errors_IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) { - yield Create(ValueErrorType.DateExclusiveMinimumTimestamp, schema, path, value); - } - if (errors_IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) { - yield Create(ValueErrorType.DateMaximumTimestamp, schema, path, value); - } - if (errors_IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) { - yield Create(ValueErrorType.DateMinimumTimestamp, schema, path, value); - } - if (errors_IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) { - yield Create(ValueErrorType.DateMultipleOfTimestamp, schema, path, value); - } -} -function* errors_FromFunction(schema, references, path, value) { - if (!IsFunction(value)) - yield Create(ValueErrorType.Function, schema, path, value); -} -function* errors_FromImport(schema, references, path, value) { - const definitions = globalThis.Object.values(schema.$defs); - const target = schema.$defs[schema.$ref]; - yield* errors_Visit(target, [...references, ...definitions], path, value); -} -function* errors_FromInteger(schema, references, path, value) { - if (!IsInteger(value)) - return yield Create(ValueErrorType.Integer, schema, path, value); - if (errors_IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { - yield Create(ValueErrorType.IntegerExclusiveMaximum, schema, path, value); - } - if (errors_IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { - yield Create(ValueErrorType.IntegerExclusiveMinimum, schema, path, value); - } - if (errors_IsDefined(schema.maximum) && !(value <= schema.maximum)) { - yield Create(ValueErrorType.IntegerMaximum, schema, path, value); - } - if (errors_IsDefined(schema.minimum) && !(value >= schema.minimum)) { - yield Create(ValueErrorType.IntegerMinimum, schema, path, value); - } - if (errors_IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { - yield Create(ValueErrorType.IntegerMultipleOf, schema, path, value); - } -} -function* errors_FromIntersect(schema, references, path, value) { - let hasError = false; - for (const inner of schema.allOf) { - for (const error of errors_Visit(inner, references, path, value)) { - hasError = true; - yield error; - } - } - if (hasError) { - return yield Create(ValueErrorType.Intersect, schema, path, value); - } - if (schema.unevaluatedProperties === false) { - const keyCheck = new RegExp(KeyOfPattern(schema)); - for (const valueKey of Object.getOwnPropertyNames(value)) { - if (!keyCheck.test(valueKey)) { - yield Create(ValueErrorType.IntersectUnevaluatedProperties, schema, `${path}/${valueKey}`, value); - } - } - } - if (typeof schema.unevaluatedProperties === 'object') { - const keyCheck = new RegExp(KeyOfPattern(schema)); - for (const valueKey of Object.getOwnPropertyNames(value)) { - if (!keyCheck.test(valueKey)) { - const next = errors_Visit(schema.unevaluatedProperties, references, `${path}/${valueKey}`, value[valueKey]).next(); - if (!next.done) - yield next.value; // yield interior - } - } - } -} -function* errors_FromIterator(schema, references, path, value) { - if (!IsIterator(value)) - yield Create(ValueErrorType.Iterator, schema, path, value); -} -function* errors_FromLiteral(schema, references, path, value) { - if (!(value === schema.const)) - yield Create(ValueErrorType.Literal, schema, path, value); -} -function* errors_FromNever(schema, references, path, value) { - yield Create(ValueErrorType.Never, schema, path, value); -} -function* errors_FromNot(schema, references, path, value) { - if (errors_Visit(schema.not, references, path, value).next().done === true) - yield Create(ValueErrorType.Not, schema, path, value); -} -function* errors_FromNull(schema, references, path, value) { - if (!IsNull(value)) - yield Create(ValueErrorType.Null, schema, path, value); -} -function* errors_FromNumber(schema, references, path, value) { - if (!TypeSystemPolicy.IsNumberLike(value)) - return yield Create(ValueErrorType.Number, schema, path, value); - if (errors_IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) { - yield Create(ValueErrorType.NumberExclusiveMaximum, schema, path, value); - } - if (errors_IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) { - yield Create(ValueErrorType.NumberExclusiveMinimum, schema, path, value); - } - if (errors_IsDefined(schema.maximum) && !(value <= schema.maximum)) { - yield Create(ValueErrorType.NumberMaximum, schema, path, value); - } - if (errors_IsDefined(schema.minimum) && !(value >= schema.minimum)) { - yield Create(ValueErrorType.NumberMinimum, schema, path, value); - } - if (errors_IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) { - yield Create(ValueErrorType.NumberMultipleOf, schema, path, value); - } -} -function* errors_FromObject(schema, references, path, value) { - if (!TypeSystemPolicy.IsObjectLike(value)) - return yield Create(ValueErrorType.Object, schema, path, value); - if (errors_IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { - yield Create(ValueErrorType.ObjectMinProperties, schema, path, value); - } - if (errors_IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { - yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value); - } - const requiredKeys = Array.isArray(schema.required) ? schema.required : []; - const knownKeys = Object.getOwnPropertyNames(schema.properties); - const unknownKeys = Object.getOwnPropertyNames(value); - for (const requiredKey of requiredKeys) { - if (unknownKeys.includes(requiredKey)) - continue; - yield Create(ValueErrorType.ObjectRequiredProperty, schema.properties[requiredKey], `${path}/${EscapeKey(requiredKey)}`, undefined); - } - if (schema.additionalProperties === false) { - for (const valueKey of unknownKeys) { - if (!knownKeys.includes(valueKey)) { - yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(valueKey)}`, value[valueKey]); - } - } - } - if (typeof schema.additionalProperties === 'object') { - for (const valueKey of unknownKeys) { - if (knownKeys.includes(valueKey)) - continue; - yield* errors_Visit(schema.additionalProperties, references, `${path}/${EscapeKey(valueKey)}`, value[valueKey]); - } - } - for (const knownKey of knownKeys) { - const property = schema.properties[knownKey]; - if (schema.required && schema.required.includes(knownKey)) { - yield* errors_Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]); - if (ExtendsUndefinedCheck(schema) && !(knownKey in value)) { - yield Create(ValueErrorType.ObjectRequiredProperty, property, `${path}/${EscapeKey(knownKey)}`, undefined); - } - } - else { - if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey)) { - yield* errors_Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]); - } - } - } -} -function* errors_FromPromise(schema, references, path, value) { - if (!IsPromise(value)) - yield Create(ValueErrorType.Promise, schema, path, value); -} -function* errors_FromRecord(schema, references, path, value) { - if (!TypeSystemPolicy.IsRecordLike(value)) - return yield Create(ValueErrorType.Object, schema, path, value); - if (errors_IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) { - yield Create(ValueErrorType.ObjectMinProperties, schema, path, value); - } - if (errors_IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) { - yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value); - } - const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0]; - const regex = new RegExp(patternKey); - for (const [propertyKey, propertyValue] of Object.entries(value)) { - if (regex.test(propertyKey)) - yield* errors_Visit(patternSchema, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue); - } - if (typeof schema.additionalProperties === 'object') { - for (const [propertyKey, propertyValue] of Object.entries(value)) { - if (!regex.test(propertyKey)) - yield* errors_Visit(schema.additionalProperties, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue); - } - } - if (schema.additionalProperties === false) { - for (const [propertyKey, propertyValue] of Object.entries(value)) { - if (regex.test(propertyKey)) - continue; - return yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(propertyKey)}`, propertyValue); - } - } -} -function* errors_FromRef(schema, references, path, value) { - yield* errors_Visit(deref_Deref(schema, references), references, path, value); -} -function* errors_FromRegExp(schema, references, path, value) { - if (!IsString(value)) - return yield Create(ValueErrorType.String, schema, path, value); - if (errors_IsDefined(schema.minLength) && !(value.length >= schema.minLength)) { - yield Create(ValueErrorType.StringMinLength, schema, path, value); - } - if (errors_IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) { - yield Create(ValueErrorType.StringMaxLength, schema, path, value); - } - const regex = new RegExp(schema.source, schema.flags); - if (!regex.test(value)) { - return yield Create(ValueErrorType.RegExp, schema, path, value); - } -} -function* errors_FromString(schema, references, path, value) { - if (!IsString(value)) - return yield Create(ValueErrorType.String, schema, path, value); - if (errors_IsDefined(schema.minLength) && !(value.length >= schema.minLength)) { - yield Create(ValueErrorType.StringMinLength, schema, path, value); - } - if (errors_IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) { - yield Create(ValueErrorType.StringMaxLength, schema, path, value); - } - if (IsString(schema.pattern)) { - const regex = new RegExp(schema.pattern); - if (!regex.test(value)) { - yield Create(ValueErrorType.StringPattern, schema, path, value); - } - } - if (IsString(schema.format)) { - if (!Has(schema.format)) { - yield Create(ValueErrorType.StringFormatUnknown, schema, path, value); - } - else { - const format = Get(schema.format); - if (!format(value)) { - yield Create(ValueErrorType.StringFormat, schema, path, value); - } - } - } -} -function* errors_FromSymbol(schema, references, path, value) { - if (!IsSymbol(value)) - yield Create(ValueErrorType.Symbol, schema, path, value); -} -function* errors_FromTemplateLiteral(schema, references, path, value) { - if (!IsString(value)) - return yield Create(ValueErrorType.String, schema, path, value); - const regex = new RegExp(schema.pattern); - if (!regex.test(value)) { - yield Create(ValueErrorType.StringPattern, schema, path, value); - } -} -function* errors_FromThis(schema, references, path, value) { - yield* errors_Visit(deref_Deref(schema, references), references, path, value); -} -function* errors_FromTuple(schema, references, path, value) { - if (!IsArray(value)) - return yield Create(ValueErrorType.Tuple, schema, path, value); - if (schema.items === undefined && !(value.length === 0)) { - return yield Create(ValueErrorType.TupleLength, schema, path, value); - } - if (!(value.length === schema.maxItems)) { - return yield Create(ValueErrorType.TupleLength, schema, path, value); - } - if (!schema.items) { - return; - } - for (let i = 0; i < schema.items.length; i++) { - yield* errors_Visit(schema.items[i], references, `${path}/${i}`, value[i]); - } -} -function* errors_FromUndefined(schema, references, path, value) { - if (!IsUndefined(value)) - yield Create(ValueErrorType.Undefined, schema, path, value); -} -function* errors_FromUnion(schema, references, path, value) { - if (Check(schema, references, value)) - return; - const errors = schema.anyOf.map((variant) => new ValueErrorIterator(errors_Visit(variant, references, path, value))); - yield Create(ValueErrorType.Union, schema, path, value, errors); -} -function* errors_FromUint8Array(schema, references, path, value) { - if (!IsUint8Array(value)) - return yield Create(ValueErrorType.Uint8Array, schema, path, value); - if (errors_IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) { - yield Create(ValueErrorType.Uint8ArrayMaxByteLength, schema, path, value); - } - if (errors_IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) { - yield Create(ValueErrorType.Uint8ArrayMinByteLength, schema, path, value); - } -} -function* errors_FromUnknown(schema, references, path, value) { } -function* errors_FromVoid(schema, references, path, value) { - if (!TypeSystemPolicy.IsVoidLike(value)) - yield Create(ValueErrorType.Void, schema, path, value); -} -function* errors_FromKind(schema, references, path, value) { - const check = type_Get(schema[Kind]); - if (!check(schema, value)) - yield Create(ValueErrorType.Kind, schema, path, value); -} -function* errors_Visit(schema, references, path, value) { - const references_ = errors_IsDefined(schema.$id) ? [...references, schema] : references; - const schema_ = schema; - switch (schema_[Kind]) { - case 'Any': - return yield* errors_FromAny(schema_, references_, path, value); - case 'Array': - return yield* errors_FromArray(schema_, references_, path, value); - case 'AsyncIterator': - return yield* errors_FromAsyncIterator(schema_, references_, path, value); - case 'BigInt': - return yield* errors_FromBigInt(schema_, references_, path, value); - case 'Boolean': - return yield* errors_FromBoolean(schema_, references_, path, value); - case 'Constructor': - return yield* errors_FromConstructor(schema_, references_, path, value); - case 'Date': - return yield* errors_FromDate(schema_, references_, path, value); - case 'Function': - return yield* errors_FromFunction(schema_, references_, path, value); - case 'Import': - return yield* errors_FromImport(schema_, references_, path, value); - case 'Integer': - return yield* errors_FromInteger(schema_, references_, path, value); - case 'Intersect': - return yield* errors_FromIntersect(schema_, references_, path, value); - case 'Iterator': - return yield* errors_FromIterator(schema_, references_, path, value); - case 'Literal': - return yield* errors_FromLiteral(schema_, references_, path, value); - case 'Never': - return yield* errors_FromNever(schema_, references_, path, value); - case 'Not': - return yield* errors_FromNot(schema_, references_, path, value); - case 'Null': - return yield* errors_FromNull(schema_, references_, path, value); - case 'Number': - return yield* errors_FromNumber(schema_, references_, path, value); - case 'Object': - return yield* errors_FromObject(schema_, references_, path, value); - case 'Promise': - return yield* errors_FromPromise(schema_, references_, path, value); - case 'Record': - return yield* errors_FromRecord(schema_, references_, path, value); - case 'Ref': - return yield* errors_FromRef(schema_, references_, path, value); - case 'RegExp': - return yield* errors_FromRegExp(schema_, references_, path, value); - case 'String': - return yield* errors_FromString(schema_, references_, path, value); - case 'Symbol': - return yield* errors_FromSymbol(schema_, references_, path, value); - case 'TemplateLiteral': - return yield* errors_FromTemplateLiteral(schema_, references_, path, value); - case 'This': - return yield* errors_FromThis(schema_, references_, path, value); - case 'Tuple': - return yield* errors_FromTuple(schema_, references_, path, value); - case 'Undefined': - return yield* errors_FromUndefined(schema_, references_, path, value); - case 'Union': - return yield* errors_FromUnion(schema_, references_, path, value); - case 'Uint8Array': - return yield* errors_FromUint8Array(schema_, references_, path, value); - case 'Unknown': - return yield* errors_FromUnknown(schema_, references_, path, value); - case 'Void': - return yield* errors_FromVoid(schema_, references_, path, value); - default: - if (!type_Has(schema_[Kind])) - throw new ValueErrorsUnknownTypeError(schema); - return yield* errors_FromKind(schema_, references_, path, value); - } -} -/** Returns an iterator for each error in this value. */ -function Errors(...args) { - const iterator = args.length === 3 ? errors_Visit(args[0], args[1], '', args[2]) : errors_Visit(args[0], [], '', args[1]); - return new ValueErrorIterator(iterator); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.mjs - - -/** - * `[Utility]` Resolves an array of keys and schemas from the given schema. This method is faster - * than obtaining the keys and resolving each individually via indexing. This method was written - * accellerate Intersect and Union encoding. - */ -function KeyOfPropertyEntries(schema) { - const keys = KeyOfPropertyKeys(schema); - const schemas = IndexFromPropertyKeys(schema, keys); - return keys.map((_, index) => [keys[index], schemas[index]]); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/transform/decode.mjs - - - - - - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// KindGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// Errors -// ------------------------------------------------------------------ -// thrown externally -// prettier-ignore -class TransformDecodeCheckError extends error_TypeBoxError { - constructor(schema, value, error) { - super(`Unable to decode value as it does not match the expected schema`); - this.schema = schema; - this.value = value; - this.error = error; - } -} -// prettier-ignore -class TransformDecodeError extends error_TypeBoxError { - constructor(schema, path, value, error) { - super(error instanceof Error ? error.message : 'Unknown error'); - this.schema = schema; - this.path = path; - this.value = value; - this.error = error; - } -} -// ------------------------------------------------------------------ -// Decode -// ------------------------------------------------------------------ -// prettier-ignore -function Default(schema, path, value) { - try { - return IsTransform(schema) ? schema[TransformKind].Decode(value) : value; - } - catch (error) { - throw new TransformDecodeError(schema, path, value, error); - } -} -// prettier-ignore -function decode_FromArray(schema, references, path, value) { - return (IsArray(value)) - ? Default(schema, path, value.map((value, index) => decode_Visit(schema.items, references, `${path}/${index}`, value))) - : Default(schema, path, value); -} -// prettier-ignore -function decode_FromIntersect(schema, references, path, value) { - if (!IsObject(value) || IsValueType(value)) - return Default(schema, path, value); - const knownEntries = KeyOfPropertyEntries(schema); - const knownKeys = knownEntries.map(entry => entry[0]); - const knownProperties = { ...value }; - for (const [knownKey, knownSchema] of knownEntries) - if (knownKey in knownProperties) { - knownProperties[knownKey] = decode_Visit(knownSchema, references, `${path}/${knownKey}`, knownProperties[knownKey]); - } - if (!IsTransform(schema.unevaluatedProperties)) { - return Default(schema, path, knownProperties); - } - const unknownKeys = Object.getOwnPropertyNames(knownProperties); - const unevaluatedProperties = schema.unevaluatedProperties; - const unknownProperties = { ...knownProperties }; - for (const key of unknownKeys) - if (!knownKeys.includes(key)) { - unknownProperties[key] = Default(unevaluatedProperties, `${path}/${key}`, unknownProperties[key]); - } - return Default(schema, path, unknownProperties); -} -// prettier-ignore -function decode_FromImport(schema, references, path, value) { - const definitions = globalThis.Object.values(schema.$defs); - const target = schema.$defs[schema.$ref]; - const transform = schema[TransformKind]; - // Note: we need to re-spec the target as TSchema + [TransformKind] - const transformTarget = { [TransformKind]: transform, ...target }; - return decode_Visit(transformTarget, [...references, ...definitions], path, value); -} -function decode_FromNot(schema, references, path, value) { - return Default(schema, path, decode_Visit(schema.not, references, path, value)); -} -// prettier-ignore -function decode_FromObject(schema, references, path, value) { - if (!IsObject(value)) - return Default(schema, path, value); - const knownKeys = KeyOfPropertyKeys(schema); - const knownProperties = { ...value }; - for (const key of knownKeys) { - if (!HasPropertyKey(knownProperties, key)) - continue; - // if the property value is undefined, but the target is not, nor does it satisfy exact optional - // property policy, then we need to continue. This is a special case for optional property handling - // where a transforms wrapped in a optional modifiers should not run. - if (IsUndefined(knownProperties[key]) && (!kind_IsUndefined(schema.properties[key]) || - TypeSystemPolicy.IsExactOptionalProperty(knownProperties, key))) - continue; - // decode property - knownProperties[key] = decode_Visit(schema.properties[key], references, `${path}/${key}`, knownProperties[key]); - } - if (!IsSchema(schema.additionalProperties)) { - return Default(schema, path, knownProperties); - } - const unknownKeys = Object.getOwnPropertyNames(knownProperties); - const additionalProperties = schema.additionalProperties; - const unknownProperties = { ...knownProperties }; - for (const key of unknownKeys) - if (!knownKeys.includes(key)) { - unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]); - } - return Default(schema, path, unknownProperties); -} -// prettier-ignore -function decode_FromRecord(schema, references, path, value) { - if (!IsObject(value)) - return Default(schema, path, value); - const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0]; - const knownKeys = new RegExp(pattern); - const knownProperties = { ...value }; - for (const key of Object.getOwnPropertyNames(value)) - if (knownKeys.test(key)) { - knownProperties[key] = decode_Visit(schema.patternProperties[pattern], references, `${path}/${key}`, knownProperties[key]); - } - if (!IsSchema(schema.additionalProperties)) { - return Default(schema, path, knownProperties); - } - const unknownKeys = Object.getOwnPropertyNames(knownProperties); - const additionalProperties = schema.additionalProperties; - const unknownProperties = { ...knownProperties }; - for (const key of unknownKeys) - if (!knownKeys.test(key)) { - unknownProperties[key] = Default(additionalProperties, `${path}/${key}`, unknownProperties[key]); - } - return Default(schema, path, unknownProperties); -} -// prettier-ignore -function decode_FromRef(schema, references, path, value) { - const target = deref_Deref(schema, references); - return Default(schema, path, decode_Visit(target, references, path, value)); -} -// prettier-ignore -function decode_FromThis(schema, references, path, value) { - const target = deref_Deref(schema, references); - return Default(schema, path, decode_Visit(target, references, path, value)); -} -// prettier-ignore -function decode_FromTuple(schema, references, path, value) { - return (IsArray(value) && IsArray(schema.items)) - ? Default(schema, path, schema.items.map((schema, index) => decode_Visit(schema, references, `${path}/${index}`, value[index]))) - : Default(schema, path, value); -} -// prettier-ignore -function decode_FromUnion(schema, references, path, value) { - for (const subschema of schema.anyOf) { - if (!Check(subschema, references, value)) - continue; - // note: ensure interior is decoded first - const decoded = decode_Visit(subschema, references, path, value); - return Default(schema, path, decoded); - } - return Default(schema, path, value); -} -// prettier-ignore -function decode_Visit(schema, references, path, value) { - const references_ = Pushref(schema, references); - const schema_ = schema; - switch (schema[Kind]) { - case 'Array': - return decode_FromArray(schema_, references_, path, value); - case 'Import': - return decode_FromImport(schema_, references_, path, value); - case 'Intersect': - return decode_FromIntersect(schema_, references_, path, value); - case 'Not': - return decode_FromNot(schema_, references_, path, value); - case 'Object': - return decode_FromObject(schema_, references_, path, value); - case 'Record': - return decode_FromRecord(schema_, references_, path, value); - case 'Ref': - return decode_FromRef(schema_, references_, path, value); - case 'Symbol': - return Default(schema_, path, value); - case 'This': - return decode_FromThis(schema_, references_, path, value); - case 'Tuple': - return decode_FromTuple(schema_, references_, path, value); - case 'Union': - return decode_FromUnion(schema_, references_, path, value); - default: - return Default(schema_, path, value); - } -} -/** - * `[Internal]` Decodes the value and returns the result. This function requires that - * the caller `Check` the value before use. Passing unchecked values may result in - * undefined behavior. Refer to the `Value.Decode()` for implementation details. - */ -function TransformDecode(schema, references, value) { - return decode_Visit(schema, references, '', value); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/transform/has.mjs - - -// ------------------------------------------------------------------ -// KindGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -// prettier-ignore -function has_FromArray(schema, references) { - return IsTransform(schema) || has_Visit(schema.items, references); -} -// prettier-ignore -function has_FromAsyncIterator(schema, references) { - return IsTransform(schema) || has_Visit(schema.items, references); -} -// prettier-ignore -function has_FromConstructor(schema, references) { - return IsTransform(schema) || has_Visit(schema.returns, references) || schema.parameters.some((schema) => has_Visit(schema, references)); -} -// prettier-ignore -function has_FromFunction(schema, references) { - return IsTransform(schema) || has_Visit(schema.returns, references) || schema.parameters.some((schema) => has_Visit(schema, references)); -} -// prettier-ignore -function has_FromIntersect(schema, references) { - return IsTransform(schema) || IsTransform(schema.unevaluatedProperties) || schema.allOf.some((schema) => has_Visit(schema, references)); -} -// prettier-ignore -function has_FromIterator(schema, references) { - return IsTransform(schema) || has_Visit(schema.items, references); -} -// prettier-ignore -function has_FromNot(schema, references) { - return IsTransform(schema) || has_Visit(schema.not, references); -} -// prettier-ignore -function has_FromObject(schema, references) { - return (IsTransform(schema) || - Object.values(schema.properties).some((schema) => has_Visit(schema, references)) || - (IsSchema(schema.additionalProperties) && has_Visit(schema.additionalProperties, references))); -} -// prettier-ignore -function has_FromPromise(schema, references) { - return IsTransform(schema) || has_Visit(schema.item, references); -} -// prettier-ignore -function has_FromRecord(schema, references) { - const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0]; - const property = schema.patternProperties[pattern]; - return IsTransform(schema) || has_Visit(property, references) || (IsSchema(schema.additionalProperties) && IsTransform(schema.additionalProperties)); -} -// prettier-ignore -function has_FromRef(schema, references) { - if (IsTransform(schema)) - return true; - return has_Visit(deref_Deref(schema, references), references); -} -// prettier-ignore -function has_FromThis(schema, references) { - if (IsTransform(schema)) - return true; - return has_Visit(deref_Deref(schema, references), references); -} -// prettier-ignore -function has_FromTuple(schema, references) { - return IsTransform(schema) || (!IsUndefined(schema.items) && schema.items.some((schema) => has_Visit(schema, references))); -} -// prettier-ignore -function has_FromUnion(schema, references) { - return IsTransform(schema) || schema.anyOf.some((schema) => has_Visit(schema, references)); -} -// prettier-ignore -function has_Visit(schema, references) { - const references_ = Pushref(schema, references); - const schema_ = schema; - if (schema.$id && visited.has(schema.$id)) - return false; - if (schema.$id) - visited.add(schema.$id); - switch (schema[Kind]) { - case 'Array': - return has_FromArray(schema_, references_); - case 'AsyncIterator': - return has_FromAsyncIterator(schema_, references_); - case 'Constructor': - return has_FromConstructor(schema_, references_); - case 'Function': - return has_FromFunction(schema_, references_); - case 'Intersect': - return has_FromIntersect(schema_, references_); - case 'Iterator': - return has_FromIterator(schema_, references_); - case 'Not': - return has_FromNot(schema_, references_); - case 'Object': - return has_FromObject(schema_, references_); - case 'Promise': - return has_FromPromise(schema_, references_); - case 'Record': - return has_FromRecord(schema_, references_); - case 'Ref': - return has_FromRef(schema_, references_); - case 'This': - return has_FromThis(schema_, references_); - case 'Tuple': - return has_FromTuple(schema_, references_); - case 'Union': - return has_FromUnion(schema_, references_); - default: - return IsTransform(schema); - } -} -const visited = new Set(); -/** Returns true if this schema contains a transform codec */ -function HasTransform(schema, references) { - visited.clear(); - return has_Visit(schema, references); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/decode/decode.mjs - - - -/** Decodes a value or throws if error */ -function Decode(...args) { - const [schema, references, value] = args.length === 3 ? [args[0], args[1], args[2]] : [args[0], [], args[1]]; - if (!Check(schema, references, value)) - throw new TransformDecodeCheckError(schema, value, Errors(schema, references, value).First()); - return HasTransform(schema, references) ? TransformDecode(schema, references, value) : value; -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/clone/clone.mjs -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// Clonable -// ------------------------------------------------------------------ -function clone_FromObject(value) { - const Acc = {}; - for (const key of Object.getOwnPropertyNames(value)) { - Acc[key] = clone_Clone(value[key]); - } - for (const key of Object.getOwnPropertySymbols(value)) { - Acc[key] = clone_Clone(value[key]); - } - return Acc; -} -function clone_FromArray(value) { - return value.map((element) => clone_Clone(element)); -} -function FromTypedArray(value) { - return value.slice(); -} -function FromMap(value) { - return new Map(clone_Clone([...value.entries()])); -} -function FromSet(value) { - return new Set(clone_Clone([...value.entries()])); -} -function clone_FromDate(value) { - return new Date(value.toISOString()); -} -function clone_FromValue(value) { - return value; -} -// ------------------------------------------------------------------ -// Clone -// ------------------------------------------------------------------ -/** Returns a clone of the given value */ -function clone_Clone(value) { - if (IsArray(value)) - return clone_FromArray(value); - if (IsDate(value)) - return clone_FromDate(value); - if (IsTypedArray(value)) - return FromTypedArray(value); - if (IsMap(value)) - return FromMap(value); - if (IsSet(value)) - return FromSet(value); - if (IsObject(value)) - return clone_FromObject(value); - if (IsValueType(value)) - return clone_FromValue(value); - throw new Error('ValueClone: Unable to clone value'); -} - -;// CONCATENATED MODULE: ./node_modules/@sinclair/typebox/build/esm/value/default/default.mjs - - - - -// ------------------------------------------------------------------ -// ValueGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// TypeGuard -// ------------------------------------------------------------------ - -// ------------------------------------------------------------------ -// ValueOrDefault -// ------------------------------------------------------------------ -function ValueOrDefault(schema, value) { - const defaultValue = HasPropertyKey(schema, 'default') ? schema.default : undefined; - const clone = IsFunction(defaultValue) ? defaultValue() : clone_Clone(defaultValue); - return IsUndefined(value) ? clone : IsObject(value) && IsObject(clone) ? Object.assign(clone, value) : value; -} -// ------------------------------------------------------------------ -// HasDefaultProperty -// ------------------------------------------------------------------ -function HasDefaultProperty(schema) { - return IsKind(schema) && 'default' in schema; -} -// ------------------------------------------------------------------ -// Types -// ------------------------------------------------------------------ -function default_FromArray(schema, references, value) { - // if the value is an array, we attempt to initialize it's elements - if (IsArray(value)) { - for (let i = 0; i < value.length; i++) { - value[i] = default_Visit(schema.items, references, value[i]); - } - return value; - } - // ... otherwise use default initialization - const defaulted = ValueOrDefault(schema, value); - if (!IsArray(defaulted)) - return defaulted; - for (let i = 0; i < defaulted.length; i++) { - defaulted[i] = default_Visit(schema.items, references, defaulted[i]); - } - return defaulted; -} -function default_FromDate(schema, references, value) { - // special case intercept for dates - return IsDate(value) ? value : ValueOrDefault(schema, value); -} -function default_FromImport(schema, references, value) { - const definitions = globalThis.Object.values(schema.$defs); - const target = schema.$defs[schema.$ref]; - return default_Visit(target, [...references, ...definitions], value); -} -function default_FromIntersect(schema, references, value) { - const defaulted = ValueOrDefault(schema, value); - return schema.allOf.reduce((acc, schema) => { - const next = default_Visit(schema, references, defaulted); - return IsObject(next) ? { ...acc, ...next } : next; - }, {}); -} -function default_FromObject(schema, references, value) { - const defaulted = ValueOrDefault(schema, value); - // return defaulted - if (!IsObject(defaulted)) - return defaulted; - const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties); - // properties - for (const key of knownPropertyKeys) { - // note: we need to traverse into the object and test if the return value - // yielded a non undefined result. Here we interpret an undefined result as - // a non assignable property and continue. - const propertyValue = default_Visit(schema.properties[key], references, defaulted[key]); - if (IsUndefined(propertyValue)) - continue; - defaulted[key] = default_Visit(schema.properties[key], references, defaulted[key]); - } - // return if not additional properties - if (!HasDefaultProperty(schema.additionalProperties)) - return defaulted; - // additional properties - for (const key of Object.getOwnPropertyNames(defaulted)) { - if (knownPropertyKeys.includes(key)) - continue; - defaulted[key] = default_Visit(schema.additionalProperties, references, defaulted[key]); - } - return defaulted; -} -function default_FromRecord(schema, references, value) { - const defaulted = ValueOrDefault(schema, value); - if (!IsObject(defaulted)) - return defaulted; - const additionalPropertiesSchema = schema.additionalProperties; - const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0]; - const knownPropertyKey = new RegExp(propertyKeyPattern); - // properties - for (const key of Object.getOwnPropertyNames(defaulted)) { - if (!(knownPropertyKey.test(key) && HasDefaultProperty(propertySchema))) - continue; - defaulted[key] = default_Visit(propertySchema, references, defaulted[key]); - } - // return if not additional properties - if (!HasDefaultProperty(additionalPropertiesSchema)) - return defaulted; - // additional properties - for (const key of Object.getOwnPropertyNames(defaulted)) { - if (knownPropertyKey.test(key)) - continue; - defaulted[key] = default_Visit(additionalPropertiesSchema, references, defaulted[key]); - } - return defaulted; -} -function default_FromRef(schema, references, value) { - return default_Visit(deref_Deref(schema, references), references, ValueOrDefault(schema, value)); -} -function default_FromThis(schema, references, value) { - return default_Visit(deref_Deref(schema, references), references, value); -} -function default_FromTuple(schema, references, value) { - const defaulted = ValueOrDefault(schema, value); - if (!IsArray(defaulted) || IsUndefined(schema.items)) - return defaulted; - const [items, max] = [schema.items, Math.max(schema.items.length, defaulted.length)]; - for (let i = 0; i < max; i++) { - if (i < items.length) - defaulted[i] = default_Visit(items[i], references, defaulted[i]); - } - return defaulted; -} -function default_FromUnion(schema, references, value) { - const defaulted = ValueOrDefault(schema, value); - for (const inner of schema.anyOf) { - const result = default_Visit(inner, references, clone_Clone(defaulted)); - if (Check(inner, references, result)) { - return result; - } - } - return defaulted; -} -function default_Visit(schema, references, value) { - const references_ = Pushref(schema, references); - const schema_ = schema; - switch (schema_[Kind]) { - case 'Array': - return default_FromArray(schema_, references_, value); - case 'Date': - return default_FromDate(schema_, references_, value); - case 'Import': - return default_FromImport(schema_, references_, value); - case 'Intersect': - return default_FromIntersect(schema_, references_, value); - case 'Object': - return default_FromObject(schema_, references_, value); - case 'Record': - return default_FromRecord(schema_, references_, value); - case 'Ref': - return default_FromRef(schema_, references_, value); - case 'This': - return default_FromThis(schema_, references_, value); - case 'Tuple': - return default_FromTuple(schema_, references_, value); - case 'Union': - return default_FromUnion(schema_, references_, value); - default: - return ValueOrDefault(schema_, value); - } -} -/** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */ -function default_Default(...args) { - return args.length === 3 ? default_Visit(args[0], args[1], args[2]) : default_Visit(args[0], [], args[1]); -} - -// EXTERNAL MODULE: ./node_modules/dotenv/lib/main.js -var main = __nccwpck_require__(7159); -;// CONCATENATED MODULE: ./node_modules/@ubiquity-os/plugin-sdk/dist/index.mjs -// src/server.ts - - - - - - - -// src/util.ts -function sanitizeMetadata(obj) { - return JSON.stringify(obj, null, 2).replace(//g, ">").replace(/--/g, "--"); -} - -// src/comment.ts -var HEADER_NAME = "Ubiquity"; -async function postComment(context2, message) { - if ("issue" in context2.payload && context2.payload.repository?.owner?.login) { - const metadata = createStructuredMetadata(message.metadata?.name, message); - await context2.octokit.rest.issues.createComment({ - owner: context2.payload.repository.owner.login, - repo: context2.payload.repository.name, - issue_number: context2.payload.issue.number, - body: [message.logMessage.diff, metadata].join("\n") - }); - } else { - context2.logger.info("Cannot post comment because issue is not found in the payload"); - } -} -function createStructuredMetadata(className, logReturn) { - const logMessage = logReturn.logMessage; - const metadata = logReturn.metadata; - const jsonPretty = sanitizeMetadata(metadata); - const stack = logReturn.metadata?.stack; - const stackLine = (Array.isArray(stack) ? stack.join("\n") : stack)?.split("\n")[2] ?? ""; - const caller = stackLine.match(/at (\S+)/)?.[1] ?? ""; - const ubiquityMetadataHeader = `"].join("\n"); - if (logMessage?.type === "fatal") { - metadataSerialized = [metadataSerializedVisible, metadataSerializedHidden].join("\n"); - } else { - metadataSerialized = metadataSerializedHidden; - } - return ` -${metadataSerialized} -`; -} - -// src/constants.ts -var KERNEL_PUBLIC_KEY = `-----BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs96DOU+JqM8SyNXOB6u3 -uBKIFiyrcST/LZTYN6y7LeJlyCuGPqSDrWCfjU9Ph5PLf9TWiNmeM8DGaOpwEFC7 -U3NRxOSglo4plnQ5zRwIHHXvxyK400sQP2oISXymISuBQWjEIqkC9DybQrKwNzf+ -I0JHWPqmwMIw26UvVOtXGOOWBqTkk+N2+/9f8eDIJP5QQVwwszc8s1rXOsLMlVIf -wShw7GO4E2jyK8TSJKpyjV8eb1JJMDwFhPiRrtZfQJUtDf2mV/67shQww61BH2Y/ -Plnalo58kWIbkqZoq1yJrL5sFb73osM5+vADTXVn79bkvea7W19nSkdMiarYt4Hq -JQIDAQAB ------END PUBLIC KEY----- -`; - -// src/octokit.ts - - - - - - -var defaultOptions = { - throttle: { - onAbuseLimit: (retryAfter, options, octokit) => { - octokit.log.warn(`Abuse limit hit with "${options.method} ${options.url}", retrying in ${retryAfter} seconds.`); - return true; - }, - onRateLimit: (retryAfter, options, octokit) => { - octokit.log.warn(`Rate limit hit with "${options.method} ${options.url}", retrying in ${retryAfter} seconds.`); - return true; - }, - onSecondaryRateLimit: (retryAfter, options, octokit) => { - octokit.log.warn(`Secondary rate limit hit with "${options.method} ${options.url}", retrying in ${retryAfter} seconds.`); - return true; - } - } -}; -var customOctokit = Octokit.plugin(throttling, retry, paginateRest, restEndpointMethods, paginateGraphQL).defaults((instanceOptions) => { - return { ...defaultOptions, ...instanceOptions }; -}); - -// src/signature.ts -async function verifySignature(publicKeyPem, inputs, signature) { - try { - const inputsOrdered = { - stateId: inputs.stateId, - eventName: inputs.eventName, - eventPayload: inputs.eventPayload, - settings: inputs.settings, - authToken: inputs.authToken, - ref: inputs.ref, - command: inputs.command - }; - const pemContents = publicKeyPem.replace("-----BEGIN PUBLIC KEY-----", "").replace("-----END PUBLIC KEY-----", "").trim(); - const binaryDer = Uint8Array.from(atob(pemContents), (c) => c.charCodeAt(0)); - const publicKey = await crypto.subtle.importKey( - "spki", - binaryDer, - { - name: "RSASSA-PKCS1-v1_5", - hash: "SHA-256" - }, - true, - ["verify"] - ); - const signatureArray = Uint8Array.from(atob(signature), (c) => c.charCodeAt(0)); - const dataArray = new TextEncoder().encode(JSON.stringify(inputsOrdered)); - return await crypto.subtle.verify("RSASSA-PKCS1-v1_5", publicKey, signatureArray, dataArray); - } catch (error) { - console.error(error); - return false; - } -} - -// src/server.ts -var inputSchema = Type.Object({ - stateId: Type.String(), - eventName: Type.String(), - eventPayload: Type.Record(Type.String(), Type.Any()), - command: Type.Union([Type.Null(), Type.Object({ name: Type.String(), parameters: Type.Unknown() })]), - authToken: Type.String(), - settings: Type.Record(Type.String(), Type.Any()), - ref: Type.String(), - signature: Type.String() -}); -function createPlugin(handler, manifest, options) { - const pluginOptions = { - kernelPublicKey: options?.kernelPublicKey ?? KERNEL_PUBLIC_KEY, - logLevel: options?.logLevel ?? LOG_LEVEL.INFO, - postCommentOnError: options?.postCommentOnError ?? true, - settingsSchema: options?.settingsSchema, - envSchema: options?.envSchema, - commandSchema: options?.commandSchema, - bypassSignatureVerification: options?.bypassSignatureVerification || false - }; - const app = new Hono(); - app.get("/manifest.json", (ctx) => { - return ctx.json(manifest); - }); - app.post("/", async (ctx) => { - if (ctx.req.header("content-type") !== "application/json") { - throw new HTTPException(400, { message: "Content-Type must be application/json" }); - } - const body = await ctx.req.json(); - const inputSchemaErrors = [...Value.Errors(inputSchema, body)]; - if (inputSchemaErrors.length) { - console.log(inputSchemaErrors, { depth: null }); - throw new HTTPException(400, { message: "Invalid body" }); - } - const inputs = Value.Decode(inputSchema, body); - const signature = inputs.signature; - if (!pluginOptions.bypassSignatureVerification && !await verifySignature(pluginOptions.kernelPublicKey, inputs, signature)) { - throw new HTTPException(400, { message: "Invalid signature" }); - } - let config2; - if (pluginOptions.settingsSchema) { - try { - config2 = Value.Decode(pluginOptions.settingsSchema, Value.Default(pluginOptions.settingsSchema, inputs.settings)); - } catch (e) { - console.log(...Value.Errors(pluginOptions.settingsSchema, inputs.settings), { depth: null }); - throw e; - } - } else { - config2 = inputs.settings; - } - let env; - const honoEnvironment = honoEnv(ctx); - if (pluginOptions.envSchema) { - try { - env = Value.Decode(pluginOptions.envSchema, Value.Default(pluginOptions.envSchema, honoEnvironment)); - } catch (e) { - console.log(...Value.Errors(pluginOptions.envSchema, honoEnvironment), { depth: null }); - throw e; - } - } else { - env = ctx.env; - } - let command = null; - if (inputs.command && pluginOptions.commandSchema) { - try { - command = Value.Decode(pluginOptions.commandSchema, Value.Default(pluginOptions.commandSchema, inputs.command)); - } catch (e) { - console.log(...Value.Errors(pluginOptions.commandSchema, inputs.command), { depth: null }); - throw e; - } - } else if (inputs.command) { - command = inputs.command; - } - const context2 = { - eventName: inputs.eventName, - payload: inputs.eventPayload, - command, - octokit: new customOctokit({ auth: inputs.authToken }), - config: config2, - env, - logger: new Logs(pluginOptions.logLevel) - }; - try { - const result = await handler(context2); - return ctx.json({ stateId: inputs.stateId, output: result ?? {} }); - } catch (error) { - console.error(error); - let loggerError; - if (error instanceof Error) { - loggerError = context2.logger.error(`Error: ${error}`, { error }); - } else if (error instanceof LogReturn) { - loggerError = error; - } else { - loggerError = context2.logger.error(`Error: ${error}`); - } - if (pluginOptions.postCommentOnError && loggerError) { - await postComment(context2, loggerError); - } - throw new HTTPException(500, { message: "Unexpected error" }); - } - }); - return app; -} - -// src/actions.ts - - - - - - - -// src/types/util.ts - - -function jsonType(type) { - return Type.Transform(Type.String()).Decode((value) => { - const parsed = JSON.parse(value); - return Decode(type, default_Default(type, parsed)); - }).Encode((value) => JSON.stringify(value)); -} - -// src/types/command.ts - -var commandCallSchema = Type.Union([Type.Null(), Type.Object({ name: Type.String(), parameters: Type.Unknown() })]); - -// src/actions.ts -(0,main.config)(); -var inputSchema2 = Type.Object({ - stateId: Type.String(), - eventName: Type.String(), - eventPayload: jsonType(Type.Record(Type.String(), Type.Any())), - command: jsonType(commandCallSchema), - authToken: Type.String(), - settings: jsonType(Type.Record(Type.String(), Type.Any())), - ref: Type.String(), - signature: Type.String() -}); -async function createActionsPlugin(handler, options) { - const pluginOptions = { - logLevel: options?.logLevel ?? dist_LOG_LEVEL.INFO, - postCommentOnError: options?.postCommentOnError ?? true, - settingsSchema: options?.settingsSchema, - envSchema: options?.envSchema, - commandSchema: options?.commandSchema, - kernelPublicKey: options?.kernelPublicKey ?? KERNEL_PUBLIC_KEY, - bypassSignatureVerification: options?.bypassSignatureVerification || false - }; - const pluginGithubToken = process.env.PLUGIN_GITHUB_TOKEN; - if (!pluginGithubToken) { - core.setFailed("Error: PLUGIN_GITHUB_TOKEN env is not set"); - return; - } - const body = github.context.payload.inputs; - const signature = body.signature; - if (!pluginOptions.bypassSignatureVerification && !await verifySignature(pluginOptions.kernelPublicKey, body, signature)) { - core.setFailed(`Error: Invalid signature`); - return; - } - const inputPayload = github.context.payload.inputs; - const inputSchemaErrors = [...Errors(inputSchema2, inputPayload)]; - if (inputSchemaErrors.length) { - console.dir(inputSchemaErrors, { depth: null }); - core.setFailed(`Error: Invalid inputs payload: ${inputSchemaErrors.join(",")}`); - return; - } - const inputs = Decode(inputSchema2, inputPayload); - let config2; - if (pluginOptions.settingsSchema) { - try { - config2 = Decode(pluginOptions.settingsSchema, default_Default(pluginOptions.settingsSchema, inputs.settings)); - } catch (e) { - console.dir(...Errors(pluginOptions.settingsSchema, inputs.settings), { depth: null }); - throw e; - } - } else { - config2 = inputs.settings; - } - let env; - if (pluginOptions.envSchema) { - try { - env = Decode(pluginOptions.envSchema, default_Default(pluginOptions.envSchema, process.env)); - } catch (e) { - console.dir(...Errors(pluginOptions.envSchema, process.env), { depth: null }); - throw e; - } - } else { - env = process.env; - } - let command = null; - if (inputs.command && pluginOptions.commandSchema) { - try { - command = Decode(pluginOptions.commandSchema, default_Default(pluginOptions.commandSchema, inputs.command)); - } catch (e) { - console.dir(...Errors(pluginOptions.commandSchema, inputs.command), { depth: null }); - throw e; - } - } else if (inputs.command) { - command = inputs.command; - } - const context2 = { - eventName: inputs.eventName, - payload: inputs.eventPayload, - command, - octokit: new customOctokit({ auth: inputs.authToken }), - config: config2, - env, - logger: new dist_Logs(pluginOptions.logLevel) - }; - try { - const result = await handler(context2); - core.setOutput("result", result); - await returnDataToKernel(pluginGithubToken, inputs.stateId, result); - } catch (error) { - console.error(error); - let loggerError; - if (error instanceof Error) { - core.setFailed(error); - loggerError = context2.logger.error(`Error: ${error}`, { error }); - } else if (error instanceof dist_LogReturn) { - core.setFailed(error.logMessage.raw); - loggerError = error; - } else { - core.setFailed(`Error: ${error}`); - loggerError = context2.logger.error(`Error: ${error}`); - } - if (pluginOptions.postCommentOnError && loggerError) { - await postErrorComment(context2, loggerError); - } - } -} -async function postErrorComment(context2, error) { - if ("issue" in context2.payload && context2.payload.repository?.owner?.login) { - await context2.octokit.rest.issues.createComment({ - owner: context2.payload.repository.owner.login, - repo: context2.payload.repository.name, - issue_number: context2.payload.issue.number, - body: `${error.logMessage.diff} -` - }); - } else { - context2.logger.info("Cannot post error comment because issue is not found in the payload"); - } -} -function getGithubWorkflowRunUrl() { - return `${github.context.payload.repository?.html_url}/actions/runs/${github.context.runId}`; -} -async function returnDataToKernel(repoToken, stateId, output) { - const octokit = new customOctokit({ auth: repoToken }); - await octokit.rest.repos.createDispatchEvent({ - owner: github.context.repo.owner, - repo: github.context.repo.repo, - event_type: "return-data-to-ubiquity-os-kernel", - client_payload: { - state_id: stateId, - output: output ? JSON.stringify(output) : null - } - }); -} - - -;// CONCATENATED MODULE: ./src/helpers/get-watched-repos.ts -async function getWatchedRepos(context) { - const { config: { watch: { optOut }, }, } = context; - const repoNames = new Set(); - const owner = context.payload.repository.owner?.login; - if (!owner) { - throw new Error("No owner found in the payload"); - } - const orgRepos = await getReposForOrg(context, owner); - orgRepos.forEach((repo) => repoNames.add(repo.name.toLowerCase())); - for (const repo of optOut) { - repoNames.forEach((name) => (name.includes(repo) ? repoNames.delete(name) : null)); - } - return Array.from(repoNames) - .map((name) => orgRepos.find((repo) => repo.name.toLowerCase() === name)) - .filter((repo) => repo !== undefined); -} -async function getReposForOrg(context, orgOrRepo) { - const { octokit } = context; - try { - return await octokit.paginate(octokit.rest.repos.listForOrg, { - org: orgOrRepo, - per_page: 100, - }); - } - catch (er) { - throw new Error(`Error getting repositories for org ${orgOrRepo}: ` + JSON.stringify(er)); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/errors.js -// these aren't really private, but nor are they really useful to document - -/** - * @private - */ -class LuxonError extends Error {} - -/** - * @private - */ -class InvalidDateTimeError extends LuxonError { - constructor(reason) { - super(`Invalid DateTime: ${reason.toMessage()}`); - } -} - -/** - * @private - */ -class InvalidIntervalError extends LuxonError { - constructor(reason) { - super(`Invalid Interval: ${reason.toMessage()}`); - } -} - -/** - * @private - */ -class InvalidDurationError extends LuxonError { - constructor(reason) { - super(`Invalid Duration: ${reason.toMessage()}`); - } -} - -/** - * @private - */ -class ConflictingSpecificationError extends LuxonError {} - -/** - * @private - */ -class InvalidUnitError extends LuxonError { - constructor(unit) { - super(`Invalid unit ${unit}`); - } -} - -/** - * @private - */ -class InvalidArgumentError extends LuxonError {} - -/** - * @private - */ -class ZoneIsAbstractError extends LuxonError { - constructor() { - super("Zone is an abstract class"); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/formats.js -/** - * @private - */ - -const n = "numeric", - s = "short", - l = "long"; - -const DATE_SHORT = { - year: n, - month: n, - day: n, -}; - -const DATE_MED = { - year: n, - month: s, - day: n, -}; - -const DATE_MED_WITH_WEEKDAY = { - year: n, - month: s, - day: n, - weekday: s, -}; - -const DATE_FULL = { - year: n, - month: l, - day: n, -}; - -const DATE_HUGE = { - year: n, - month: l, - day: n, - weekday: l, -}; - -const TIME_SIMPLE = { - hour: n, - minute: n, -}; - -const TIME_WITH_SECONDS = { - hour: n, - minute: n, - second: n, -}; - -const TIME_WITH_SHORT_OFFSET = { - hour: n, - minute: n, - second: n, - timeZoneName: s, -}; - -const TIME_WITH_LONG_OFFSET = { - hour: n, - minute: n, - second: n, - timeZoneName: l, -}; - -const TIME_24_SIMPLE = { - hour: n, - minute: n, - hourCycle: "h23", -}; - -const TIME_24_WITH_SECONDS = { - hour: n, - minute: n, - second: n, - hourCycle: "h23", -}; - -const TIME_24_WITH_SHORT_OFFSET = { - hour: n, - minute: n, - second: n, - hourCycle: "h23", - timeZoneName: s, -}; - -const TIME_24_WITH_LONG_OFFSET = { - hour: n, - minute: n, - second: n, - hourCycle: "h23", - timeZoneName: l, -}; - -const DATETIME_SHORT = { - year: n, - month: n, - day: n, - hour: n, - minute: n, -}; - -const DATETIME_SHORT_WITH_SECONDS = { - year: n, - month: n, - day: n, - hour: n, - minute: n, - second: n, -}; - -const DATETIME_MED = { - year: n, - month: s, - day: n, - hour: n, - minute: n, -}; - -const DATETIME_MED_WITH_SECONDS = { - year: n, - month: s, - day: n, - hour: n, - minute: n, - second: n, -}; - -const DATETIME_MED_WITH_WEEKDAY = { - year: n, - month: s, - day: n, - weekday: s, - hour: n, - minute: n, -}; - -const DATETIME_FULL = { - year: n, - month: l, - day: n, - hour: n, - minute: n, - timeZoneName: s, -}; - -const DATETIME_FULL_WITH_SECONDS = { - year: n, - month: l, - day: n, - hour: n, - minute: n, - second: n, - timeZoneName: s, -}; - -const DATETIME_HUGE = { - year: n, - month: l, - day: n, - weekday: l, - hour: n, - minute: n, - timeZoneName: l, -}; - -const DATETIME_HUGE_WITH_SECONDS = { - year: n, - month: l, - day: n, - weekday: l, - hour: n, - minute: n, - second: n, - timeZoneName: l, -}; - -;// CONCATENATED MODULE: ./node_modules/luxon/src/zone.js - - -/** - * @interface - */ -class Zone { - /** - * The type of zone - * @abstract - * @type {string} - */ - get type() { - throw new ZoneIsAbstractError(); - } - - /** - * The name of this zone. - * @abstract - * @type {string} - */ - get name() { - throw new ZoneIsAbstractError(); - } - - get ianaName() { - return this.name; - } - - /** - * Returns whether the offset is known to be fixed for the whole year. - * @abstract - * @type {boolean} - */ - get isUniversal() { - throw new ZoneIsAbstractError(); - } - - /** - * Returns the offset's common name (such as EST) at the specified timestamp - * @abstract - * @param {number} ts - Epoch milliseconds for which to get the name - * @param {Object} opts - Options to affect the format - * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'. - * @param {string} opts.locale - What locale to return the offset name in. - * @return {string} - */ - offsetName(ts, opts) { - throw new ZoneIsAbstractError(); - } - - /** - * Returns the offset's value as a string - * @abstract - * @param {number} ts - Epoch milliseconds for which to get the offset - * @param {string} format - What style of offset to return. - * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively - * @return {string} - */ - formatOffset(ts, format) { - throw new ZoneIsAbstractError(); - } - - /** - * Return the offset in minutes for this zone at the specified timestamp. - * @abstract - * @param {number} ts - Epoch milliseconds for which to compute the offset - * @return {number} - */ - offset(ts) { - throw new ZoneIsAbstractError(); - } - - /** - * Return whether this Zone is equal to another zone - * @abstract - * @param {Zone} otherZone - the zone to compare - * @return {boolean} - */ - equals(otherZone) { - throw new ZoneIsAbstractError(); - } - - /** - * Return whether this Zone is valid. - * @abstract - * @type {boolean} - */ - get isValid() { - throw new ZoneIsAbstractError(); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/systemZone.js - - - -let singleton = null; - -/** - * Represents the local zone for this JavaScript environment. - * @implements {Zone} - */ -class SystemZone extends Zone { - /** - * Get a singleton instance of the local zone - * @return {SystemZone} - */ - static get instance() { - if (singleton === null) { - singleton = new SystemZone(); - } - return singleton; - } - - /** @override **/ - get type() { - return "system"; - } - - /** @override **/ - get name() { - return new Intl.DateTimeFormat().resolvedOptions().timeZone; - } - - /** @override **/ - get isUniversal() { - return false; - } - - /** @override **/ - offsetName(ts, { format, locale }) { - return parseZoneInfo(ts, format, locale); - } - - /** @override **/ - formatOffset(ts, format) { - return formatOffset(this.offset(ts), format); - } - - /** @override **/ - offset(ts) { - return -new Date(ts).getTimezoneOffset(); - } - - /** @override **/ - equals(otherZone) { - return otherZone.type === "system"; - } - - /** @override **/ - get isValid() { - return true; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/IANAZone.js - - - -let dtfCache = {}; -function makeDTF(zone) { - if (!dtfCache[zone]) { - dtfCache[zone] = new Intl.DateTimeFormat("en-US", { - hour12: false, - timeZone: zone, - year: "numeric", - month: "2-digit", - day: "2-digit", - hour: "2-digit", - minute: "2-digit", - second: "2-digit", - era: "short", - }); - } - return dtfCache[zone]; -} - -const typeToPos = { - year: 0, - month: 1, - day: 2, - era: 3, - hour: 4, - minute: 5, - second: 6, -}; - -function hackyOffset(dtf, date) { - const formatted = dtf.format(date).replace(/\u200E/g, ""), - parsed = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted), - [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed; - return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond]; -} - -function partsOffset(dtf, date) { - const formatted = dtf.formatToParts(date); - const filled = []; - for (let i = 0; i < formatted.length; i++) { - const { type, value } = formatted[i]; - const pos = typeToPos[type]; - - if (type === "era") { - filled[pos] = value; - } else if (!isUndefined(pos)) { - filled[pos] = parseInt(value, 10); - } - } - return filled; -} - -let ianaZoneCache = {}; -/** - * A zone identified by an IANA identifier, like America/New_York - * @implements {Zone} - */ -class IANAZone extends Zone { - /** - * @param {string} name - Zone name - * @return {IANAZone} - */ - static create(name) { - if (!ianaZoneCache[name]) { - ianaZoneCache[name] = new IANAZone(name); - } - return ianaZoneCache[name]; - } - - /** - * Reset local caches. Should only be necessary in testing scenarios. - * @return {void} - */ - static resetCache() { - ianaZoneCache = {}; - dtfCache = {}; - } - - /** - * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that. - * @param {string} s - The string to check validity on - * @example IANAZone.isValidSpecifier("America/New_York") //=> true - * @example IANAZone.isValidSpecifier("Sport~~blorp") //=> false - * @deprecated This method returns false for some valid IANA names. Use isValidZone instead. - * @return {boolean} - */ - static isValidSpecifier(s) { - return this.isValidZone(s); - } - - /** - * Returns whether the provided string identifies a real zone - * @param {string} zone - The string to check - * @example IANAZone.isValidZone("America/New_York") //=> true - * @example IANAZone.isValidZone("Fantasia/Castle") //=> false - * @example IANAZone.isValidZone("Sport~~blorp") //=> false - * @return {boolean} - */ - static isValidZone(zone) { - if (!zone) { - return false; - } - try { - new Intl.DateTimeFormat("en-US", { timeZone: zone }).format(); - return true; - } catch (e) { - return false; - } - } - - constructor(name) { - super(); - /** @private **/ - this.zoneName = name; - /** @private **/ - this.valid = IANAZone.isValidZone(name); - } - - /** @override **/ - get type() { - return "iana"; - } - - /** @override **/ - get name() { - return this.zoneName; - } - - /** @override **/ - get isUniversal() { - return false; - } - - /** @override **/ - offsetName(ts, { format, locale }) { - return parseZoneInfo(ts, format, locale, this.name); - } - - /** @override **/ - formatOffset(ts, format) { - return formatOffset(this.offset(ts), format); - } - - /** @override **/ - offset(ts) { - const date = new Date(ts); - - if (isNaN(date)) return NaN; - - const dtf = makeDTF(this.name); - let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts - ? partsOffset(dtf, date) - : hackyOffset(dtf, date); - - if (adOrBc === "BC") { - year = -Math.abs(year) + 1; - } - - // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat - const adjustedHour = hour === 24 ? 0 : hour; - - const asUTC = objToLocalTS({ - year, - month, - day, - hour: adjustedHour, - minute, - second, - millisecond: 0, - }); - - let asTS = +date; - const over = asTS % 1000; - asTS -= over >= 0 ? over : 1000 + over; - return (asUTC - asTS) / (60 * 1000); - } - - /** @override **/ - equals(otherZone) { - return otherZone.type === "iana" && otherZone.name === this.name; - } - - /** @override **/ - get isValid() { - return this.valid; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/locale.js - - - - - - -// todo - remap caching - -let intlLFCache = {}; -function getCachedLF(locString, opts = {}) { - const key = JSON.stringify([locString, opts]); - let dtf = intlLFCache[key]; - if (!dtf) { - dtf = new Intl.ListFormat(locString, opts); - intlLFCache[key] = dtf; - } - return dtf; -} - -let intlDTCache = {}; -function getCachedDTF(locString, opts = {}) { - const key = JSON.stringify([locString, opts]); - let dtf = intlDTCache[key]; - if (!dtf) { - dtf = new Intl.DateTimeFormat(locString, opts); - intlDTCache[key] = dtf; - } - return dtf; -} - -let intlNumCache = {}; -function getCachedINF(locString, opts = {}) { - const key = JSON.stringify([locString, opts]); - let inf = intlNumCache[key]; - if (!inf) { - inf = new Intl.NumberFormat(locString, opts); - intlNumCache[key] = inf; - } - return inf; -} - -let intlRelCache = {}; -function getCachedRTF(locString, opts = {}) { - const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options - const key = JSON.stringify([locString, cacheKeyOpts]); - let inf = intlRelCache[key]; - if (!inf) { - inf = new Intl.RelativeTimeFormat(locString, opts); - intlRelCache[key] = inf; - } - return inf; -} - -let sysLocaleCache = null; -function systemLocale() { - if (sysLocaleCache) { - return sysLocaleCache; - } else { - sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale; - return sysLocaleCache; - } -} - -let weekInfoCache = {}; -function getCachedWeekInfo(locString) { - let data = weekInfoCache[locString]; - if (!data) { - const locale = new Intl.Locale(locString); - // browsers currently implement this as a property, but spec says it should be a getter function - data = "getWeekInfo" in locale ? locale.getWeekInfo() : locale.weekInfo; - weekInfoCache[locString] = data; - } - return data; -} - -function parseLocaleString(localeStr) { - // I really want to avoid writing a BCP 47 parser - // see, e.g. https://github.com/wooorm/bcp-47 - // Instead, we'll do this: - - // a) if the string has no -u extensions, just leave it alone - // b) if it does, use Intl to resolve everything - // c) if Intl fails, try again without the -u - - // private subtags and unicode subtags have ordering requirements, - // and we're not properly parsing this, so just strip out the - // private ones if they exist. - const xIndex = localeStr.indexOf("-x-"); - if (xIndex !== -1) { - localeStr = localeStr.substring(0, xIndex); - } - - const uIndex = localeStr.indexOf("-u-"); - if (uIndex === -1) { - return [localeStr]; - } else { - let options; - let selectedStr; - try { - options = getCachedDTF(localeStr).resolvedOptions(); - selectedStr = localeStr; - } catch (e) { - const smaller = localeStr.substring(0, uIndex); - options = getCachedDTF(smaller).resolvedOptions(); - selectedStr = smaller; - } - - const { numberingSystem, calendar } = options; - return [selectedStr, numberingSystem, calendar]; - } -} - -function intlConfigString(localeStr, numberingSystem, outputCalendar) { - if (outputCalendar || numberingSystem) { - if (!localeStr.includes("-u-")) { - localeStr += "-u"; - } - - if (outputCalendar) { - localeStr += `-ca-${outputCalendar}`; - } - - if (numberingSystem) { - localeStr += `-nu-${numberingSystem}`; - } - return localeStr; - } else { - return localeStr; - } -} - -function mapMonths(f) { - const ms = []; - for (let i = 1; i <= 12; i++) { - const dt = DateTime.utc(2009, i, 1); - ms.push(f(dt)); - } - return ms; -} - -function mapWeekdays(f) { - const ms = []; - for (let i = 1; i <= 7; i++) { - const dt = DateTime.utc(2016, 11, 13 + i); - ms.push(f(dt)); - } - return ms; -} - -function listStuff(loc, length, englishFn, intlFn) { - const mode = loc.listingMode(); - - if (mode === "error") { - return null; - } else if (mode === "en") { - return englishFn(length); - } else { - return intlFn(length); - } -} - -function supportsFastNumbers(loc) { - if (loc.numberingSystem && loc.numberingSystem !== "latn") { - return false; - } else { - return ( - loc.numberingSystem === "latn" || - !loc.locale || - loc.locale.startsWith("en") || - new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === "latn" - ); - } -} - -/** - * @private - */ - -class PolyNumberFormatter { - constructor(intl, forceSimple, opts) { - this.padTo = opts.padTo || 0; - this.floor = opts.floor || false; - - const { padTo, floor, ...otherOpts } = opts; - - if (!forceSimple || Object.keys(otherOpts).length > 0) { - const intlOpts = { useGrouping: false, ...opts }; - if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo; - this.inf = getCachedINF(intl, intlOpts); - } - } - - format(i) { - if (this.inf) { - const fixed = this.floor ? Math.floor(i) : i; - return this.inf.format(fixed); - } else { - // to match the browser's numberformatter defaults - const fixed = this.floor ? Math.floor(i) : roundTo(i, 3); - return padStart(fixed, this.padTo); - } - } -} - -/** - * @private - */ - -class PolyDateFormatter { - constructor(dt, intl, opts) { - this.opts = opts; - this.originalZone = undefined; - - let z = undefined; - if (this.opts.timeZone) { - // Don't apply any workarounds if a timeZone is explicitly provided in opts - this.dt = dt; - } else if (dt.zone.type === "fixed") { - // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like. - // That is why fixed-offset TZ is set to that unless it is: - // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT. - // 2. Unsupported by the browser: - // - some do not support Etc/ - // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata - const gmtOffset = -1 * (dt.offset / 60); - const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`; - if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) { - z = offsetZ; - this.dt = dt; - } else { - // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so - // we manually apply the offset and substitute the zone as needed. - z = "UTC"; - this.dt = dt.offset === 0 ? dt : dt.setZone("UTC").plus({ minutes: dt.offset }); - this.originalZone = dt.zone; - } - } else if (dt.zone.type === "system") { - this.dt = dt; - } else if (dt.zone.type === "iana") { - this.dt = dt; - z = dt.zone.name; - } else { - // Custom zones can have any offset / offsetName so we just manually - // apply the offset and substitute the zone as needed. - z = "UTC"; - this.dt = dt.setZone("UTC").plus({ minutes: dt.offset }); - this.originalZone = dt.zone; - } - - const intlOpts = { ...this.opts }; - intlOpts.timeZone = intlOpts.timeZone || z; - this.dtf = getCachedDTF(intl, intlOpts); - } - - format() { - if (this.originalZone) { - // If we have to substitute in the actual zone name, we have to use - // formatToParts so that the timezone can be replaced. - return this.formatToParts() - .map(({ value }) => value) - .join(""); - } - return this.dtf.format(this.dt.toJSDate()); - } - - formatToParts() { - const parts = this.dtf.formatToParts(this.dt.toJSDate()); - if (this.originalZone) { - return parts.map((part) => { - if (part.type === "timeZoneName") { - const offsetName = this.originalZone.offsetName(this.dt.ts, { - locale: this.dt.locale, - format: this.opts.timeZoneName, - }); - return { - ...part, - value: offsetName, - }; - } else { - return part; - } - }); - } - return parts; - } - - resolvedOptions() { - return this.dtf.resolvedOptions(); - } -} - -/** - * @private - */ -class PolyRelFormatter { - constructor(intl, isEnglish, opts) { - this.opts = { style: "long", ...opts }; - if (!isEnglish && hasRelative()) { - this.rtf = getCachedRTF(intl, opts); - } - } - - format(count, unit) { - if (this.rtf) { - return this.rtf.format(count, unit); - } else { - return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== "long"); - } - } - - formatToParts(count, unit) { - if (this.rtf) { - return this.rtf.formatToParts(count, unit); - } else { - return []; - } - } -} - -const fallbackWeekSettings = { - firstDay: 1, - minimalDays: 4, - weekend: [6, 7], -}; - -/** - * @private - */ - -class Locale { - static fromOpts(opts) { - return Locale.create( - opts.locale, - opts.numberingSystem, - opts.outputCalendar, - opts.weekSettings, - opts.defaultToEN - ); - } - - static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) { - const specifiedLocale = locale || Settings.defaultLocale; - // the system locale is useful for human readable strings but annoying for parsing/formatting known formats - const localeR = specifiedLocale || (defaultToEN ? "en-US" : systemLocale()); - const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem; - const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar; - const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings; - return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale); - } - - static resetCache() { - sysLocaleCache = null; - intlDTCache = {}; - intlNumCache = {}; - intlRelCache = {}; - } - - static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) { - return Locale.create(locale, numberingSystem, outputCalendar, weekSettings); - } - - constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) { - const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale); - - this.locale = parsedLocale; - this.numberingSystem = numbering || parsedNumberingSystem || null; - this.outputCalendar = outputCalendar || parsedOutputCalendar || null; - this.weekSettings = weekSettings; - this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar); - - this.weekdaysCache = { format: {}, standalone: {} }; - this.monthsCache = { format: {}, standalone: {} }; - this.meridiemCache = null; - this.eraCache = {}; - - this.specifiedLocale = specifiedLocale; - this.fastNumbersCached = null; - } - - get fastNumbers() { - if (this.fastNumbersCached == null) { - this.fastNumbersCached = supportsFastNumbers(this); - } - - return this.fastNumbersCached; - } - - listingMode() { - const isActuallyEn = this.isEnglish(); - const hasNoWeirdness = - (this.numberingSystem === null || this.numberingSystem === "latn") && - (this.outputCalendar === null || this.outputCalendar === "gregory"); - return isActuallyEn && hasNoWeirdness ? "en" : "intl"; - } - - clone(alts) { - if (!alts || Object.getOwnPropertyNames(alts).length === 0) { - return this; - } else { - return Locale.create( - alts.locale || this.specifiedLocale, - alts.numberingSystem || this.numberingSystem, - alts.outputCalendar || this.outputCalendar, - validateWeekSettings(alts.weekSettings) || this.weekSettings, - alts.defaultToEN || false - ); - } - } - - redefaultToEN(alts = {}) { - return this.clone({ ...alts, defaultToEN: true }); - } - - redefaultToSystem(alts = {}) { - return this.clone({ ...alts, defaultToEN: false }); - } - - months(length, format = false) { - return listStuff(this, length, months, () => { - const intl = format ? { month: length, day: "numeric" } : { month: length }, - formatStr = format ? "format" : "standalone"; - if (!this.monthsCache[formatStr][length]) { - this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, "month")); - } - return this.monthsCache[formatStr][length]; - }); - } - - weekdays(length, format = false) { - return listStuff(this, length, weekdays, () => { - const intl = format - ? { weekday: length, year: "numeric", month: "long", day: "numeric" } - : { weekday: length }, - formatStr = format ? "format" : "standalone"; - if (!this.weekdaysCache[formatStr][length]) { - this.weekdaysCache[formatStr][length] = mapWeekdays((dt) => - this.extract(dt, intl, "weekday") - ); - } - return this.weekdaysCache[formatStr][length]; - }); - } - - meridiems() { - return listStuff( - this, - undefined, - () => meridiems, - () => { - // In theory there could be aribitrary day periods. We're gonna assume there are exactly two - // for AM and PM. This is probably wrong, but it's makes parsing way easier. - if (!this.meridiemCache) { - const intl = { hour: "numeric", hourCycle: "h12" }; - this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map( - (dt) => this.extract(dt, intl, "dayperiod") - ); - } - - return this.meridiemCache; - } - ); - } - - eras(length) { - return listStuff(this, length, eras, () => { - const intl = { era: length }; - - // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates - // to definitely enumerate them. - if (!this.eraCache[length]) { - this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) => - this.extract(dt, intl, "era") - ); - } - - return this.eraCache[length]; - }); - } - - extract(dt, intlOpts, field) { - const df = this.dtFormatter(dt, intlOpts), - results = df.formatToParts(), - matching = results.find((m) => m.type.toLowerCase() === field); - return matching ? matching.value : null; - } - - numberFormatter(opts = {}) { - // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave) - // (in contrast, the rest of the condition is used heavily) - return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts); - } - - dtFormatter(dt, intlOpts = {}) { - return new PolyDateFormatter(dt, this.intl, intlOpts); - } - - relFormatter(opts = {}) { - return new PolyRelFormatter(this.intl, this.isEnglish(), opts); - } - - listFormatter(opts = {}) { - return getCachedLF(this.intl, opts); - } - - isEnglish() { - return ( - this.locale === "en" || - this.locale.toLowerCase() === "en-us" || - new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us") - ); - } - - getWeekSettings() { - if (this.weekSettings) { - return this.weekSettings; - } else if (!hasLocaleWeekInfo()) { - return fallbackWeekSettings; - } else { - return getCachedWeekInfo(this.locale); - } - } - - getStartOfWeek() { - return this.getWeekSettings().firstDay; - } - - getMinDaysInFirstWeek() { - return this.getWeekSettings().minimalDays; - } - - getWeekendDays() { - return this.getWeekSettings().weekend; - } - - equals(other) { - return ( - this.locale === other.locale && - this.numberingSystem === other.numberingSystem && - this.outputCalendar === other.outputCalendar - ); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/fixedOffsetZone.js - - - -let fixedOffsetZone_singleton = null; - -/** - * A zone with a fixed offset (meaning no DST) - * @implements {Zone} - */ -class FixedOffsetZone extends Zone { - /** - * Get a singleton instance of UTC - * @return {FixedOffsetZone} - */ - static get utcInstance() { - if (fixedOffsetZone_singleton === null) { - fixedOffsetZone_singleton = new FixedOffsetZone(0); - } - return fixedOffsetZone_singleton; - } - - /** - * Get an instance with a specified offset - * @param {number} offset - The offset in minutes - * @return {FixedOffsetZone} - */ - static instance(offset) { - return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset); - } - - /** - * Get an instance of FixedOffsetZone from a UTC offset string, like "UTC+6" - * @param {string} s - The offset string to parse - * @example FixedOffsetZone.parseSpecifier("UTC+6") - * @example FixedOffsetZone.parseSpecifier("UTC+06") - * @example FixedOffsetZone.parseSpecifier("UTC-6:00") - * @return {FixedOffsetZone} - */ - static parseSpecifier(s) { - if (s) { - const r = s.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i); - if (r) { - return new FixedOffsetZone(signedOffset(r[1], r[2])); - } - } - return null; - } - - constructor(offset) { - super(); - /** @private **/ - this.fixed = offset; - } - - /** @override **/ - get type() { - return "fixed"; - } - - /** @override **/ - get name() { - return this.fixed === 0 ? "UTC" : `UTC${formatOffset(this.fixed, "narrow")}`; - } - - get ianaName() { - if (this.fixed === 0) { - return "Etc/UTC"; - } else { - return `Etc/GMT${formatOffset(-this.fixed, "narrow")}`; - } - } - - /** @override **/ - offsetName() { - return this.name; - } - - /** @override **/ - formatOffset(ts, format) { - return formatOffset(this.fixed, format); - } - - /** @override **/ - get isUniversal() { - return true; - } - - /** @override **/ - offset() { - return this.fixed; - } - - /** @override **/ - equals(otherZone) { - return otherZone.type === "fixed" && otherZone.fixed === this.fixed; - } - - /** @override **/ - get isValid() { - return true; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/zones/invalidZone.js - - -/** - * A zone that failed to parse. You should never need to instantiate this. - * @implements {Zone} - */ -class InvalidZone extends Zone { - constructor(zoneName) { - super(); - /** @private */ - this.zoneName = zoneName; - } - - /** @override **/ - get type() { - return "invalid"; - } - - /** @override **/ - get name() { - return this.zoneName; - } - - /** @override **/ - get isUniversal() { - return false; - } - - /** @override **/ - offsetName() { - return null; - } - - /** @override **/ - formatOffset() { - return ""; - } - - /** @override **/ - offset() { - return NaN; - } - - /** @override **/ - equals() { - return false; - } - - /** @override **/ - get isValid() { - return false; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/zoneUtil.js -/** - * @private - */ - - - - - - - - - -function normalizeZone(input, defaultZone) { - let offset; - if (isUndefined(input) || input === null) { - return defaultZone; - } else if (input instanceof Zone) { - return input; - } else if (isString(input)) { - const lowered = input.toLowerCase(); - if (lowered === "default") return defaultZone; - else if (lowered === "local" || lowered === "system") return SystemZone.instance; - else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance; - else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input); - } else if (isNumber(input)) { - return FixedOffsetZone.instance(input); - } else if (typeof input === "object" && "offset" in input && typeof input.offset === "function") { - // This is dumb, but the instanceof check above doesn't seem to really work - // so we're duck checking it - return input; - } else { - return new InvalidZone(input); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/settings.js - - - - - - - -let now = () => Date.now(), - defaultZone = "system", - defaultLocale = null, - defaultNumberingSystem = null, - defaultOutputCalendar = null, - twoDigitCutoffYear = 60, - throwOnInvalid, - defaultWeekSettings = null; - -/** - * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here. - */ -class Settings { - /** - * Get the callback for returning the current timestamp. - * @type {function} - */ - static get now() { - return now; - } - - /** - * Set the callback for returning the current timestamp. - * The function should return a number, which will be interpreted as an Epoch millisecond count - * @type {function} - * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future - * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time - */ - static set now(n) { - now = n; - } - - /** - * Set the default time zone to create DateTimes in. Does not affect existing instances. - * Use the value "system" to reset this value to the system's time zone. - * @type {string} - */ - static set defaultZone(zone) { - defaultZone = zone; - } - - /** - * Get the default time zone object currently used to create DateTimes. Does not affect existing instances. - * The default value is the system's time zone (the one set on the machine that runs this code). - * @type {Zone} - */ - static get defaultZone() { - return normalizeZone(defaultZone, SystemZone.instance); - } - - /** - * Get the default locale to create DateTimes with. Does not affect existing instances. - * @type {string} - */ - static get defaultLocale() { - return defaultLocale; - } - - /** - * Set the default locale to create DateTimes with. Does not affect existing instances. - * @type {string} - */ - static set defaultLocale(locale) { - defaultLocale = locale; - } - - /** - * Get the default numbering system to create DateTimes with. Does not affect existing instances. - * @type {string} - */ - static get defaultNumberingSystem() { - return defaultNumberingSystem; - } - - /** - * Set the default numbering system to create DateTimes with. Does not affect existing instances. - * @type {string} - */ - static set defaultNumberingSystem(numberingSystem) { - defaultNumberingSystem = numberingSystem; - } - - /** - * Get the default output calendar to create DateTimes with. Does not affect existing instances. - * @type {string} - */ - static get defaultOutputCalendar() { - return defaultOutputCalendar; - } - - /** - * Set the default output calendar to create DateTimes with. Does not affect existing instances. - * @type {string} - */ - static set defaultOutputCalendar(outputCalendar) { - defaultOutputCalendar = outputCalendar; - } - - /** - * @typedef {Object} WeekSettings - * @property {number} firstDay - * @property {number} minimalDays - * @property {number[]} weekend - */ - - /** - * @return {WeekSettings|null} - */ - static get defaultWeekSettings() { - return defaultWeekSettings; - } - - /** - * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and - * how many days are required in the first week of a year. - * Does not affect existing instances. - * - * @param {WeekSettings|null} weekSettings - */ - static set defaultWeekSettings(weekSettings) { - defaultWeekSettings = validateWeekSettings(weekSettings); - } - - /** - * Get the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century. - * @type {number} - */ - static get twoDigitCutoffYear() { - return twoDigitCutoffYear; - } - - /** - * Set the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century. - * @type {number} - * @example Settings.twoDigitCutoffYear = 0 // cut-off year is 0, so all 'yy' are interpreted as current century - * @example Settings.twoDigitCutoffYear = 50 // '49' -> 1949; '50' -> 2050 - * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50 - * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50 - */ - static set twoDigitCutoffYear(cutoffYear) { - twoDigitCutoffYear = cutoffYear % 100; - } - - /** - * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals - * @type {boolean} - */ - static get throwOnInvalid() { - return throwOnInvalid; - } - - /** - * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals - * @type {boolean} - */ - static set throwOnInvalid(t) { - throwOnInvalid = t; - } - - /** - * Reset Luxon's global caches. Should only be necessary in testing scenarios. - * @return {void} - */ - static resetCaches() { - Locale.resetCache(); - IANAZone.resetCache(); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/invalid.js -class Invalid { - constructor(reason, explanation) { - this.reason = reason; - this.explanation = explanation; - } - - toMessage() { - if (this.explanation) { - return `${this.reason}: ${this.explanation}`; - } else { - return this.reason; - } - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/conversions.js - - - - -const nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], - leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]; - -function unitOutOfRange(unit, value) { - return new Invalid( - "unit out of range", - `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid` - ); -} - -function dayOfWeek(year, month, day) { - const d = new Date(Date.UTC(year, month - 1, day)); - - if (year < 100 && year >= 0) { - d.setUTCFullYear(d.getUTCFullYear() - 1900); - } - - const js = d.getUTCDay(); - - return js === 0 ? 7 : js; -} - -function computeOrdinal(year, month, day) { - return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1]; -} - -function uncomputeOrdinal(year, ordinal) { - const table = isLeapYear(year) ? leapLadder : nonLeapLadder, - month0 = table.findIndex((i) => i < ordinal), - day = ordinal - table[month0]; - return { month: month0 + 1, day }; -} - -function isoWeekdayToLocal(isoWeekday, startOfWeek) { - return ((isoWeekday - startOfWeek + 7) % 7) + 1; -} - -/** - * @private - */ - -function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) { - const { year, month, day } = gregObj, - ordinal = computeOrdinal(year, month, day), - weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek); - - let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7), - weekYear; - - if (weekNumber < 1) { - weekYear = year - 1; - weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek); - } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) { - weekYear = year + 1; - weekNumber = 1; - } else { - weekYear = year; - } - - return { weekYear, weekNumber, weekday, ...timeObject(gregObj) }; -} - -function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) { - const { weekYear, weekNumber, weekday } = weekData, - weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek), - yearInDays = daysInYear(weekYear); - - let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek, - year; - - if (ordinal < 1) { - year = weekYear - 1; - ordinal += daysInYear(year); - } else if (ordinal > yearInDays) { - year = weekYear + 1; - ordinal -= daysInYear(weekYear); - } else { - year = weekYear; - } - - const { month, day } = uncomputeOrdinal(year, ordinal); - return { year, month, day, ...timeObject(weekData) }; -} - -function gregorianToOrdinal(gregData) { - const { year, month, day } = gregData; - const ordinal = computeOrdinal(year, month, day); - return { year, ordinal, ...timeObject(gregData) }; -} - -function ordinalToGregorian(ordinalData) { - const { year, ordinal } = ordinalData; - const { month, day } = uncomputeOrdinal(year, ordinal); - return { year, month, day, ...timeObject(ordinalData) }; -} - -/** - * Check if local week units like localWeekday are used in obj. - * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties. - * Modifies obj in-place! - * @param obj the object values - */ -function usesLocalWeekValues(obj, loc) { - const hasLocaleWeekData = - !isUndefined(obj.localWeekday) || - !isUndefined(obj.localWeekNumber) || - !isUndefined(obj.localWeekYear); - if (hasLocaleWeekData) { - const hasIsoWeekData = - !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear); - - if (hasIsoWeekData) { - throw new ConflictingSpecificationError( - "Cannot mix locale-based week fields with ISO-based week fields" - ); - } - if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday; - if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber; - if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear; - delete obj.localWeekday; - delete obj.localWeekNumber; - delete obj.localWeekYear; - return { - minDaysInFirstWeek: loc.getMinDaysInFirstWeek(), - startOfWeek: loc.getStartOfWeek(), - }; - } else { - return { minDaysInFirstWeek: 4, startOfWeek: 1 }; - } -} - -function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) { - const validYear = isInteger(obj.weekYear), - validWeek = integerBetween( - obj.weekNumber, - 1, - weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek) - ), - validWeekday = integerBetween(obj.weekday, 1, 7); - - if (!validYear) { - return unitOutOfRange("weekYear", obj.weekYear); - } else if (!validWeek) { - return unitOutOfRange("week", obj.weekNumber); - } else if (!validWeekday) { - return unitOutOfRange("weekday", obj.weekday); - } else return false; -} - -function hasInvalidOrdinalData(obj) { - const validYear = isInteger(obj.year), - validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year)); - - if (!validYear) { - return unitOutOfRange("year", obj.year); - } else if (!validOrdinal) { - return unitOutOfRange("ordinal", obj.ordinal); - } else return false; -} - -function hasInvalidGregorianData(obj) { - const validYear = isInteger(obj.year), - validMonth = integerBetween(obj.month, 1, 12), - validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month)); - - if (!validYear) { - return unitOutOfRange("year", obj.year); - } else if (!validMonth) { - return unitOutOfRange("month", obj.month); - } else if (!validDay) { - return unitOutOfRange("day", obj.day); - } else return false; -} - -function hasInvalidTimeData(obj) { - const { hour, minute, second, millisecond } = obj; - const validHour = - integerBetween(hour, 0, 23) || - (hour === 24 && minute === 0 && second === 0 && millisecond === 0), - validMinute = integerBetween(minute, 0, 59), - validSecond = integerBetween(second, 0, 59), - validMillisecond = integerBetween(millisecond, 0, 999); - - if (!validHour) { - return unitOutOfRange("hour", hour); - } else if (!validMinute) { - return unitOutOfRange("minute", minute); - } else if (!validSecond) { - return unitOutOfRange("second", second); - } else if (!validMillisecond) { - return unitOutOfRange("millisecond", millisecond); - } else return false; -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/util.js -/* - This is just a junk drawer, containing anything used across multiple classes. - Because Luxon is small(ish), this should stay small and we won't worry about splitting - it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area. -*/ - - - - - -/** - * @private - */ - -// TYPES - -function isUndefined(o) { - return typeof o === "undefined"; -} - -function isNumber(o) { - return typeof o === "number"; -} - -function isInteger(o) { - return typeof o === "number" && o % 1 === 0; -} - -function isString(o) { - return typeof o === "string"; -} - -function isDate(o) { - return Object.prototype.toString.call(o) === "[object Date]"; -} - -// CAPABILITIES - -function hasRelative() { - try { - return typeof Intl !== "undefined" && !!Intl.RelativeTimeFormat; - } catch (e) { - return false; - } -} - -function hasLocaleWeekInfo() { - try { - return ( - typeof Intl !== "undefined" && - !!Intl.Locale && - ("weekInfo" in Intl.Locale.prototype || "getWeekInfo" in Intl.Locale.prototype) - ); - } catch (e) { - return false; - } -} - -// OBJECTS AND ARRAYS - -function maybeArray(thing) { - return Array.isArray(thing) ? thing : [thing]; -} - -function bestBy(arr, by, compare) { - if (arr.length === 0) { - return undefined; - } - return arr.reduce((best, next) => { - const pair = [by(next), next]; - if (!best) { - return pair; - } else if (compare(best[0], pair[0]) === best[0]) { - return best; - } else { - return pair; - } - }, null)[1]; -} - -function util_pick(obj, keys) { - return keys.reduce((a, k) => { - a[k] = obj[k]; - return a; - }, {}); -} - -function util_hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -function validateWeekSettings(settings) { - if (settings == null) { - return null; - } else if (typeof settings !== "object") { - throw new InvalidArgumentError("Week settings must be an object"); - } else { - if ( - !integerBetween(settings.firstDay, 1, 7) || - !integerBetween(settings.minimalDays, 1, 7) || - !Array.isArray(settings.weekend) || - settings.weekend.some((v) => !integerBetween(v, 1, 7)) - ) { - throw new InvalidArgumentError("Invalid week settings"); - } - return { - firstDay: settings.firstDay, - minimalDays: settings.minimalDays, - weekend: Array.from(settings.weekend), - }; - } -} - -// NUMBERS AND STRINGS - -function integerBetween(thing, bottom, top) { - return isInteger(thing) && thing >= bottom && thing <= top; -} - -// x % n but takes the sign of n instead of x -function floorMod(x, n) { - return x - n * Math.floor(x / n); -} - -function padStart(input, n = 2) { - const isNeg = input < 0; - let padded; - if (isNeg) { - padded = "-" + ("" + -input).padStart(n, "0"); - } else { - padded = ("" + input).padStart(n, "0"); - } - return padded; -} - -function parseInteger(string) { - if (isUndefined(string) || string === null || string === "") { - return undefined; - } else { - return parseInt(string, 10); - } -} - -function parseFloating(string) { - if (isUndefined(string) || string === null || string === "") { - return undefined; - } else { - return parseFloat(string); - } -} - -function parseMillis(fraction) { - // Return undefined (instead of 0) in these cases, where fraction is not set - if (isUndefined(fraction) || fraction === null || fraction === "") { - return undefined; - } else { - const f = parseFloat("0." + fraction) * 1000; - return Math.floor(f); - } -} - -function roundTo(number, digits, towardZero = false) { - const factor = 10 ** digits, - rounder = towardZero ? Math.trunc : Math.round; - return rounder(number * factor) / factor; -} - -// DATE BASICS - -function isLeapYear(year) { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); -} - -function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; -} - -function daysInMonth(year, month) { - const modMonth = floorMod(month - 1, 12) + 1, - modYear = year + (month - modMonth) / 12; - - if (modMonth === 2) { - return isLeapYear(modYear) ? 29 : 28; - } else { - return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1]; - } -} - -// convert a calendar object to a local timestamp (epoch, but with the offset baked in) -function objToLocalTS(obj) { - let d = Date.UTC( - obj.year, - obj.month - 1, - obj.day, - obj.hour, - obj.minute, - obj.second, - obj.millisecond - ); - - // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that - if (obj.year < 100 && obj.year >= 0) { - d = new Date(d); - // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not - // so if obj.year is in 99, but obj.day makes it roll over into year 100, - // the calculations done by Date.UTC are using year 2000 - which is incorrect - d.setUTCFullYear(obj.year, obj.month - 1, obj.day); - } - return +d; -} - -// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js -function firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) { - const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek); - return -fwdlw + minDaysInFirstWeek - 1; -} - -function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) { - const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek); - const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek); - return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7; -} - -function untruncateYear(year) { - if (year > 99) { - return year; - } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year; -} - -// PARSING - -function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) { - const date = new Date(ts), - intlOpts = { - hourCycle: "h23", - year: "numeric", - month: "2-digit", - day: "2-digit", - hour: "2-digit", - minute: "2-digit", - }; - - if (timeZone) { - intlOpts.timeZone = timeZone; - } - - const modified = { timeZoneName: offsetFormat, ...intlOpts }; - - const parsed = new Intl.DateTimeFormat(locale, modified) - .formatToParts(date) - .find((m) => m.type.toLowerCase() === "timezonename"); - return parsed ? parsed.value : null; -} - -// signedOffset('-5', '30') -> -330 -function signedOffset(offHourStr, offMinuteStr) { - let offHour = parseInt(offHourStr, 10); - - // don't || this because we want to preserve -0 - if (Number.isNaN(offHour)) { - offHour = 0; - } - - const offMin = parseInt(offMinuteStr, 10) || 0, - offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin; - return offHour * 60 + offMinSigned; -} - -// COERCION - -function asNumber(value) { - const numericValue = Number(value); - if (typeof value === "boolean" || value === "" || Number.isNaN(numericValue)) - throw new InvalidArgumentError(`Invalid unit value ${value}`); - return numericValue; -} - -function normalizeObject(obj, normalizer) { - const normalized = {}; - for (const u in obj) { - if (util_hasOwnProperty(obj, u)) { - const v = obj[u]; - if (v === undefined || v === null) continue; - normalized[normalizer(u)] = asNumber(v); - } - } - return normalized; -} - -function formatOffset(offset, format) { - const hours = Math.trunc(Math.abs(offset / 60)), - minutes = Math.trunc(Math.abs(offset % 60)), - sign = offset >= 0 ? "+" : "-"; - - switch (format) { - case "short": - return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`; - case "narrow": - return `${sign}${hours}${minutes > 0 ? `:${minutes}` : ""}`; - case "techie": - return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`; - default: - throw new RangeError(`Value format ${format} is out of range for property format`); - } -} - -function timeObject(obj) { - return util_pick(obj, ["hour", "minute", "second", "millisecond"]); -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/english.js - - - -function stringify(obj) { - return JSON.stringify(obj, Object.keys(obj).sort()); -} - -/** - * @private - */ - -const monthsLong = [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December", -]; - -const monthsShort = [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec", -]; - -const monthsNarrow = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"]; - -function months(length) { - switch (length) { - case "narrow": - return [...monthsNarrow]; - case "short": - return [...monthsShort]; - case "long": - return [...monthsLong]; - case "numeric": - return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; - case "2-digit": - return ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]; - default: - return null; - } -} - -const weekdaysLong = [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday", -]; - -const weekdaysShort = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; - -const weekdaysNarrow = ["M", "T", "W", "T", "F", "S", "S"]; - -function weekdays(length) { - switch (length) { - case "narrow": - return [...weekdaysNarrow]; - case "short": - return [...weekdaysShort]; - case "long": - return [...weekdaysLong]; - case "numeric": - return ["1", "2", "3", "4", "5", "6", "7"]; - default: - return null; - } -} - -const meridiems = ["AM", "PM"]; - -const erasLong = ["Before Christ", "Anno Domini"]; - -const erasShort = ["BC", "AD"]; - -const erasNarrow = ["B", "A"]; - -function eras(length) { - switch (length) { - case "narrow": - return [...erasNarrow]; - case "short": - return [...erasShort]; - case "long": - return [...erasLong]; - default: - return null; - } -} - -function meridiemForDateTime(dt) { - return meridiems[dt.hour < 12 ? 0 : 1]; -} - -function weekdayForDateTime(dt, length) { - return weekdays(length)[dt.weekday - 1]; -} - -function monthForDateTime(dt, length) { - return months(length)[dt.month - 1]; -} - -function eraForDateTime(dt, length) { - return eras(length)[dt.year < 0 ? 0 : 1]; -} - -function formatRelativeTime(unit, count, numeric = "always", narrow = false) { - const units = { - years: ["year", "yr."], - quarters: ["quarter", "qtr."], - months: ["month", "mo."], - weeks: ["week", "wk."], - days: ["day", "day", "days"], - hours: ["hour", "hr."], - minutes: ["minute", "min."], - seconds: ["second", "sec."], - }; - - const lastable = ["hours", "minutes", "seconds"].indexOf(unit) === -1; - - if (numeric === "auto" && lastable) { - const isDay = unit === "days"; - switch (count) { - case 1: - return isDay ? "tomorrow" : `next ${units[unit][0]}`; - case -1: - return isDay ? "yesterday" : `last ${units[unit][0]}`; - case 0: - return isDay ? "today" : `this ${units[unit][0]}`; - default: // fall through - } - } - - const isInPast = Object.is(count, -0) || count < 0, - fmtValue = Math.abs(count), - singular = fmtValue === 1, - lilUnits = units[unit], - fmtUnit = narrow - ? singular - ? lilUnits[1] - : lilUnits[2] || lilUnits[1] - : singular - ? units[unit][0] - : unit; - return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`; -} - -function formatString(knownFormat) { - // these all have the offsets removed because we don't have access to them - // without all the intl stuff this is backfilling - const filtered = pick(knownFormat, [ - "weekday", - "era", - "year", - "month", - "day", - "hour", - "minute", - "second", - "timeZoneName", - "hourCycle", - ]), - key = stringify(filtered), - dateTimeHuge = "EEEE, LLLL d, yyyy, h:mm a"; - switch (key) { - case stringify(Formats.DATE_SHORT): - return "M/d/yyyy"; - case stringify(Formats.DATE_MED): - return "LLL d, yyyy"; - case stringify(Formats.DATE_MED_WITH_WEEKDAY): - return "EEE, LLL d, yyyy"; - case stringify(Formats.DATE_FULL): - return "LLLL d, yyyy"; - case stringify(Formats.DATE_HUGE): - return "EEEE, LLLL d, yyyy"; - case stringify(Formats.TIME_SIMPLE): - return "h:mm a"; - case stringify(Formats.TIME_WITH_SECONDS): - return "h:mm:ss a"; - case stringify(Formats.TIME_WITH_SHORT_OFFSET): - return "h:mm a"; - case stringify(Formats.TIME_WITH_LONG_OFFSET): - return "h:mm a"; - case stringify(Formats.TIME_24_SIMPLE): - return "HH:mm"; - case stringify(Formats.TIME_24_WITH_SECONDS): - return "HH:mm:ss"; - case stringify(Formats.TIME_24_WITH_SHORT_OFFSET): - return "HH:mm"; - case stringify(Formats.TIME_24_WITH_LONG_OFFSET): - return "HH:mm"; - case stringify(Formats.DATETIME_SHORT): - return "M/d/yyyy, h:mm a"; - case stringify(Formats.DATETIME_MED): - return "LLL d, yyyy, h:mm a"; - case stringify(Formats.DATETIME_FULL): - return "LLLL d, yyyy, h:mm a"; - case stringify(Formats.DATETIME_HUGE): - return dateTimeHuge; - case stringify(Formats.DATETIME_SHORT_WITH_SECONDS): - return "M/d/yyyy, h:mm:ss a"; - case stringify(Formats.DATETIME_MED_WITH_SECONDS): - return "LLL d, yyyy, h:mm:ss a"; - case stringify(Formats.DATETIME_MED_WITH_WEEKDAY): - return "EEE, d LLL yyyy, h:mm a"; - case stringify(Formats.DATETIME_FULL_WITH_SECONDS): - return "LLLL d, yyyy, h:mm:ss a"; - case stringify(Formats.DATETIME_HUGE_WITH_SECONDS): - return "EEEE, LLLL d, yyyy, h:mm:ss a"; - default: - return dateTimeHuge; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/formatter.js - - - - -function stringifyTokens(splits, tokenToString) { - let s = ""; - for (const token of splits) { - if (token.literal) { - s += token.val; - } else { - s += tokenToString(token.val); - } - } - return s; -} - -const macroTokenToFormatOpts = { - D: DATE_SHORT, - DD: DATE_MED, - DDD: DATE_FULL, - DDDD: DATE_HUGE, - t: TIME_SIMPLE, - tt: TIME_WITH_SECONDS, - ttt: TIME_WITH_SHORT_OFFSET, - tttt: TIME_WITH_LONG_OFFSET, - T: TIME_24_SIMPLE, - TT: TIME_24_WITH_SECONDS, - TTT: TIME_24_WITH_SHORT_OFFSET, - TTTT: TIME_24_WITH_LONG_OFFSET, - f: DATETIME_SHORT, - ff: DATETIME_MED, - fff: DATETIME_FULL, - ffff: DATETIME_HUGE, - F: DATETIME_SHORT_WITH_SECONDS, - FF: DATETIME_MED_WITH_SECONDS, - FFF: DATETIME_FULL_WITH_SECONDS, - FFFF: DATETIME_HUGE_WITH_SECONDS, -}; - -/** - * @private - */ - -class Formatter { - static create(locale, opts = {}) { - return new Formatter(locale, opts); - } - - static parseFormat(fmt) { - // white-space is always considered a literal in user-provided formats - // the " " token has a special meaning (see unitForToken) - - let current = null, - currentFull = "", - bracketed = false; - const splits = []; - for (let i = 0; i < fmt.length; i++) { - const c = fmt.charAt(i); - if (c === "'") { - if (currentFull.length > 0) { - splits.push({ literal: bracketed || /^\s+$/.test(currentFull), val: currentFull }); - } - current = null; - currentFull = ""; - bracketed = !bracketed; - } else if (bracketed) { - currentFull += c; - } else if (c === current) { - currentFull += c; - } else { - if (currentFull.length > 0) { - splits.push({ literal: /^\s+$/.test(currentFull), val: currentFull }); - } - currentFull = c; - current = c; - } - } - - if (currentFull.length > 0) { - splits.push({ literal: bracketed || /^\s+$/.test(currentFull), val: currentFull }); - } - - return splits; - } - - static macroTokenToFormatOpts(token) { - return macroTokenToFormatOpts[token]; - } - - constructor(locale, formatOpts) { - this.opts = formatOpts; - this.loc = locale; - this.systemLoc = null; - } - - formatWithSystemDefault(dt, opts) { - if (this.systemLoc === null) { - this.systemLoc = this.loc.redefaultToSystem(); - } - const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts }); - return df.format(); - } - - dtFormatter(dt, opts = {}) { - return this.loc.dtFormatter(dt, { ...this.opts, ...opts }); - } - - formatDateTime(dt, opts) { - return this.dtFormatter(dt, opts).format(); - } - - formatDateTimeParts(dt, opts) { - return this.dtFormatter(dt, opts).formatToParts(); - } - - formatInterval(interval, opts) { - const df = this.dtFormatter(interval.start, opts); - return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate()); - } - - resolvedOptions(dt, opts) { - return this.dtFormatter(dt, opts).resolvedOptions(); - } - - num(n, p = 0) { - // we get some perf out of doing this here, annoyingly - if (this.opts.forceSimple) { - return padStart(n, p); - } - - const opts = { ...this.opts }; - - if (p > 0) { - opts.padTo = p; - } - - return this.loc.numberFormatter(opts).format(n); - } - - formatDateTimeFromString(dt, fmt) { - const knownEnglish = this.loc.listingMode() === "en", - useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory", - string = (opts, extract) => this.loc.extract(dt, opts, extract), - formatOffset = (opts) => { - if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) { - return "Z"; - } - - return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : ""; - }, - meridiem = () => - knownEnglish - ? meridiemForDateTime(dt) - : string({ hour: "numeric", hourCycle: "h12" }, "dayperiod"), - month = (length, standalone) => - knownEnglish - ? monthForDateTime(dt, length) - : string(standalone ? { month: length } : { month: length, day: "numeric" }, "month"), - weekday = (length, standalone) => - knownEnglish - ? weekdayForDateTime(dt, length) - : string( - standalone ? { weekday: length } : { weekday: length, month: "long", day: "numeric" }, - "weekday" - ), - maybeMacro = (token) => { - const formatOpts = Formatter.macroTokenToFormatOpts(token); - if (formatOpts) { - return this.formatWithSystemDefault(dt, formatOpts); - } else { - return token; - } - }, - era = (length) => - knownEnglish ? eraForDateTime(dt, length) : string({ era: length }, "era"), - tokenToString = (token) => { - // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols - switch (token) { - // ms - case "S": - return this.num(dt.millisecond); - case "u": - // falls through - case "SSS": - return this.num(dt.millisecond, 3); - // seconds - case "s": - return this.num(dt.second); - case "ss": - return this.num(dt.second, 2); - // fractional seconds - case "uu": - return this.num(Math.floor(dt.millisecond / 10), 2); - case "uuu": - return this.num(Math.floor(dt.millisecond / 100)); - // minutes - case "m": - return this.num(dt.minute); - case "mm": - return this.num(dt.minute, 2); - // hours - case "h": - return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12); - case "hh": - return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2); - case "H": - return this.num(dt.hour); - case "HH": - return this.num(dt.hour, 2); - // offset - case "Z": - // like +6 - return formatOffset({ format: "narrow", allowZ: this.opts.allowZ }); - case "ZZ": - // like +06:00 - return formatOffset({ format: "short", allowZ: this.opts.allowZ }); - case "ZZZ": - // like +0600 - return formatOffset({ format: "techie", allowZ: this.opts.allowZ }); - case "ZZZZ": - // like EST - return dt.zone.offsetName(dt.ts, { format: "short", locale: this.loc.locale }); - case "ZZZZZ": - // like Eastern Standard Time - return dt.zone.offsetName(dt.ts, { format: "long", locale: this.loc.locale }); - // zone - case "z": - // like America/New_York - return dt.zoneName; - // meridiems - case "a": - return meridiem(); - // dates - case "d": - return useDateTimeFormatter ? string({ day: "numeric" }, "day") : this.num(dt.day); - case "dd": - return useDateTimeFormatter ? string({ day: "2-digit" }, "day") : this.num(dt.day, 2); - // weekdays - standalone - case "c": - // like 1 - return this.num(dt.weekday); - case "ccc": - // like 'Tues' - return weekday("short", true); - case "cccc": - // like 'Tuesday' - return weekday("long", true); - case "ccccc": - // like 'T' - return weekday("narrow", true); - // weekdays - format - case "E": - // like 1 - return this.num(dt.weekday); - case "EEE": - // like 'Tues' - return weekday("short", false); - case "EEEE": - // like 'Tuesday' - return weekday("long", false); - case "EEEEE": - // like 'T' - return weekday("narrow", false); - // months - standalone - case "L": - // like 1 - return useDateTimeFormatter - ? string({ month: "numeric", day: "numeric" }, "month") - : this.num(dt.month); - case "LL": - // like 01, doesn't seem to work - return useDateTimeFormatter - ? string({ month: "2-digit", day: "numeric" }, "month") - : this.num(dt.month, 2); - case "LLL": - // like Jan - return month("short", true); - case "LLLL": - // like January - return month("long", true); - case "LLLLL": - // like J - return month("narrow", true); - // months - format - case "M": - // like 1 - return useDateTimeFormatter - ? string({ month: "numeric" }, "month") - : this.num(dt.month); - case "MM": - // like 01 - return useDateTimeFormatter - ? string({ month: "2-digit" }, "month") - : this.num(dt.month, 2); - case "MMM": - // like Jan - return month("short", false); - case "MMMM": - // like January - return month("long", false); - case "MMMMM": - // like J - return month("narrow", false); - // years - case "y": - // like 2014 - return useDateTimeFormatter ? string({ year: "numeric" }, "year") : this.num(dt.year); - case "yy": - // like 14 - return useDateTimeFormatter - ? string({ year: "2-digit" }, "year") - : this.num(dt.year.toString().slice(-2), 2); - case "yyyy": - // like 0012 - return useDateTimeFormatter - ? string({ year: "numeric" }, "year") - : this.num(dt.year, 4); - case "yyyyyy": - // like 000012 - return useDateTimeFormatter - ? string({ year: "numeric" }, "year") - : this.num(dt.year, 6); - // eras - case "G": - // like AD - return era("short"); - case "GG": - // like Anno Domini - return era("long"); - case "GGGGG": - return era("narrow"); - case "kk": - return this.num(dt.weekYear.toString().slice(-2), 2); - case "kkkk": - return this.num(dt.weekYear, 4); - case "W": - return this.num(dt.weekNumber); - case "WW": - return this.num(dt.weekNumber, 2); - case "n": - return this.num(dt.localWeekNumber); - case "nn": - return this.num(dt.localWeekNumber, 2); - case "ii": - return this.num(dt.localWeekYear.toString().slice(-2), 2); - case "iiii": - return this.num(dt.localWeekYear, 4); - case "o": - return this.num(dt.ordinal); - case "ooo": - return this.num(dt.ordinal, 3); - case "q": - // like 1 - return this.num(dt.quarter); - case "qq": - // like 01 - return this.num(dt.quarter, 2); - case "X": - return this.num(Math.floor(dt.ts / 1000)); - case "x": - return this.num(dt.ts); - default: - return maybeMacro(token); - } - }; - - return stringifyTokens(Formatter.parseFormat(fmt), tokenToString); - } - - formatDurationFromString(dur, fmt) { - const tokenToField = (token) => { - switch (token[0]) { - case "S": - return "millisecond"; - case "s": - return "second"; - case "m": - return "minute"; - case "h": - return "hour"; - case "d": - return "day"; - case "w": - return "week"; - case "M": - return "month"; - case "y": - return "year"; - default: - return null; - } - }, - tokenToString = (lildur) => (token) => { - const mapped = tokenToField(token); - if (mapped) { - return this.num(lildur.get(mapped), token.length); - } else { - return token; - } - }, - tokens = Formatter.parseFormat(fmt), - realTokens = tokens.reduce( - (found, { literal, val }) => (literal ? found : found.concat(val)), - [] - ), - collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t)); - return stringifyTokens(tokens, tokenToString(collapsed)); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/regexParser.js - - - - - -/* - * This file handles parsing for well-specified formats. Here's how it works: - * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match. - * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object - * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence. - * Extractors can take a "cursor" representing the offset in the match to look at. This makes it easy to combine extractors. - * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions. - * Some extractions are super dumb and simpleParse and fromStrings help DRY them. - */ - -const ianaRegex = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/; - -function combineRegexes(...regexes) { - const full = regexes.reduce((f, r) => f + r.source, ""); - return RegExp(`^${full}$`); -} - -function combineExtractors(...extractors) { - return (m) => - extractors - .reduce( - ([mergedVals, mergedZone, cursor], ex) => { - const [val, zone, next] = ex(m, cursor); - return [{ ...mergedVals, ...val }, zone || mergedZone, next]; - }, - [{}, null, 1] - ) - .slice(0, 2); -} - -function regexParser_parse(s, ...patterns) { - if (s == null) { - return [null, null]; - } - - for (const [regex, extractor] of patterns) { - const m = regex.exec(s); - if (m) { - return extractor(m); - } - } - return [null, null]; -} - -function simpleParse(...keys) { - return (match, cursor) => { - const ret = {}; - let i; - - for (i = 0; i < keys.length; i++) { - ret[keys[i]] = parseInteger(match[cursor + i]); - } - return [ret, null, cursor + i]; - }; -} - -// ISO and SQL parsing -const offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/; -const isoExtendedZone = `(?:${offsetRegex.source}?(?:\\[(${ianaRegex.source})\\])?)?`; -const isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/; -const isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`); -const isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`); -const isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/; -const isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/; -const isoOrdinalRegex = /(\d{4})-?(\d{3})/; -const extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"); -const extractISOOrdinalData = simpleParse("year", "ordinal"); -const sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/; // dumbed-down version of the ISO one -const sqlTimeRegex = RegExp( - `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?` -); -const sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`); - -function regexParser_int(match, pos, fallback) { - const m = match[pos]; - return isUndefined(m) ? fallback : parseInteger(m); -} - -function extractISOYmd(match, cursor) { - const item = { - year: regexParser_int(match, cursor), - month: regexParser_int(match, cursor + 1, 1), - day: regexParser_int(match, cursor + 2, 1), - }; - - return [item, null, cursor + 3]; -} - -function extractISOTime(match, cursor) { - const item = { - hours: regexParser_int(match, cursor, 0), - minutes: regexParser_int(match, cursor + 1, 0), - seconds: regexParser_int(match, cursor + 2, 0), - milliseconds: parseMillis(match[cursor + 3]), - }; - - return [item, null, cursor + 4]; -} - -function extractISOOffset(match, cursor) { - const local = !match[cursor] && !match[cursor + 1], - fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]), - zone = local ? null : FixedOffsetZone.instance(fullOffset); - return [{}, zone, cursor + 3]; -} - -function extractIANAZone(match, cursor) { - const zone = match[cursor] ? IANAZone.create(match[cursor]) : null; - return [{}, zone, cursor + 1]; -} - -// ISO time parsing - -const isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`); - -// ISO duration parsing - -const isoDuration = - /^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/; - -function extractISODuration(match) { - const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] = - match; - - const hasNegativePrefix = s[0] === "-"; - const negativeSeconds = secondStr && secondStr[0] === "-"; - - const maybeNegate = (num, force = false) => - num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num; - - return [ - { - years: maybeNegate(parseFloating(yearStr)), - months: maybeNegate(parseFloating(monthStr)), - weeks: maybeNegate(parseFloating(weekStr)), - days: maybeNegate(parseFloating(dayStr)), - hours: maybeNegate(parseFloating(hourStr)), - minutes: maybeNegate(parseFloating(minuteStr)), - seconds: maybeNegate(parseFloating(secondStr), secondStr === "-0"), - milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds), - }, - ]; -} - -// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York -// and not just that we're in -240 *right now*. But since I don't think these are used that often -// I'm just going to ignore that -const obsOffsets = { - GMT: 0, - EDT: -4 * 60, - EST: -5 * 60, - CDT: -5 * 60, - CST: -6 * 60, - MDT: -6 * 60, - MST: -7 * 60, - PDT: -7 * 60, - PST: -8 * 60, -}; - -function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { - const result = { - year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr), - month: monthsShort.indexOf(monthStr) + 1, - day: parseInteger(dayStr), - hour: parseInteger(hourStr), - minute: parseInteger(minuteStr), - }; - - if (secondStr) result.second = parseInteger(secondStr); - if (weekdayStr) { - result.weekday = - weekdayStr.length > 3 - ? weekdaysLong.indexOf(weekdayStr) + 1 - : weekdaysShort.indexOf(weekdayStr) + 1; - } - - return result; -} - -// RFC 2822/5322 -const rfc2822 = - /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/; - -function extractRFC2822(match) { - const [ - , - weekdayStr, - dayStr, - monthStr, - yearStr, - hourStr, - minuteStr, - secondStr, - obsOffset, - milOffset, - offHourStr, - offMinuteStr, - ] = match, - result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); - - let offset; - if (obsOffset) { - offset = obsOffsets[obsOffset]; - } else if (milOffset) { - offset = 0; - } else { - offset = signedOffset(offHourStr, offMinuteStr); - } - - return [result, new FixedOffsetZone(offset)]; -} - -function preprocessRFC2822(s) { - // Remove comments and folding whitespace and replace multiple-spaces with a single space - return s - .replace(/\([^()]*\)|[\n\t]/g, " ") - .replace(/(\s\s+)/g, " ") - .trim(); -} - -// http date - -const rfc1123 = - /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/, - rfc850 = - /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/, - ascii = - /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/; - -function extractRFC1123Or850(match) { - const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match, - result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); - return [result, FixedOffsetZone.utcInstance]; -} - -function extractASCII(match) { - const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match, - result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); - return [result, FixedOffsetZone.utcInstance]; -} - -const isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex); -const isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex); -const isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex); -const isoTimeCombinedRegex = combineRegexes(isoTimeRegex); - -const extractISOYmdTimeAndOffset = combineExtractors( - extractISOYmd, - extractISOTime, - extractISOOffset, - extractIANAZone -); -const extractISOWeekTimeAndOffset = combineExtractors( - extractISOWeekData, - extractISOTime, - extractISOOffset, - extractIANAZone -); -const extractISOOrdinalDateAndTime = combineExtractors( - extractISOOrdinalData, - extractISOTime, - extractISOOffset, - extractIANAZone -); -const extractISOTimeAndOffset = combineExtractors( - extractISOTime, - extractISOOffset, - extractIANAZone -); - -/* - * @private - */ - -function parseISODate(s) { - return regexParser_parse( - s, - [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], - [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], - [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], - [isoTimeCombinedRegex, extractISOTimeAndOffset] - ); -} - -function parseRFC2822Date(s) { - return regexParser_parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]); -} - -function parseHTTPDate(s) { - return regexParser_parse( - s, - [rfc1123, extractRFC1123Or850], - [rfc850, extractRFC1123Or850], - [ascii, extractASCII] - ); -} - -function parseISODuration(s) { - return regexParser_parse(s, [isoDuration, extractISODuration]); -} - -const extractISOTimeOnly = combineExtractors(extractISOTime); - -function parseISOTimeOnly(s) { - return regexParser_parse(s, [isoTimeOnly, extractISOTimeOnly]); -} - -const sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex); -const sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex); - -const extractISOTimeOffsetAndIANAZone = combineExtractors( - extractISOTime, - extractISOOffset, - extractIANAZone -); - -function parseSQL(s) { - return regexParser_parse( - s, - [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], - [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone] - ); -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/duration.js - - - - - - - - - -const INVALID = "Invalid Duration"; - -// unit conversion constants -const lowOrderMatrix = { - weeks: { - days: 7, - hours: 7 * 24, - minutes: 7 * 24 * 60, - seconds: 7 * 24 * 60 * 60, - milliseconds: 7 * 24 * 60 * 60 * 1000, - }, - days: { - hours: 24, - minutes: 24 * 60, - seconds: 24 * 60 * 60, - milliseconds: 24 * 60 * 60 * 1000, - }, - hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 }, - minutes: { seconds: 60, milliseconds: 60 * 1000 }, - seconds: { milliseconds: 1000 }, - }, - casualMatrix = { - years: { - quarters: 4, - months: 12, - weeks: 52, - days: 365, - hours: 365 * 24, - minutes: 365 * 24 * 60, - seconds: 365 * 24 * 60 * 60, - milliseconds: 365 * 24 * 60 * 60 * 1000, - }, - quarters: { - months: 3, - weeks: 13, - days: 91, - hours: 91 * 24, - minutes: 91 * 24 * 60, - seconds: 91 * 24 * 60 * 60, - milliseconds: 91 * 24 * 60 * 60 * 1000, - }, - months: { - weeks: 4, - days: 30, - hours: 30 * 24, - minutes: 30 * 24 * 60, - seconds: 30 * 24 * 60 * 60, - milliseconds: 30 * 24 * 60 * 60 * 1000, - }, - - ...lowOrderMatrix, - }, - daysInYearAccurate = 146097.0 / 400, - daysInMonthAccurate = 146097.0 / 4800, - accurateMatrix = { - years: { - quarters: 4, - months: 12, - weeks: daysInYearAccurate / 7, - days: daysInYearAccurate, - hours: daysInYearAccurate * 24, - minutes: daysInYearAccurate * 24 * 60, - seconds: daysInYearAccurate * 24 * 60 * 60, - milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000, - }, - quarters: { - months: 3, - weeks: daysInYearAccurate / 28, - days: daysInYearAccurate / 4, - hours: (daysInYearAccurate * 24) / 4, - minutes: (daysInYearAccurate * 24 * 60) / 4, - seconds: (daysInYearAccurate * 24 * 60 * 60) / 4, - milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4, - }, - months: { - weeks: daysInMonthAccurate / 7, - days: daysInMonthAccurate, - hours: daysInMonthAccurate * 24, - minutes: daysInMonthAccurate * 24 * 60, - seconds: daysInMonthAccurate * 24 * 60 * 60, - milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000, - }, - ...lowOrderMatrix, - }; - -// units ordered by size -const orderedUnits = [ - "years", - "quarters", - "months", - "weeks", - "days", - "hours", - "minutes", - "seconds", - "milliseconds", -]; - -const reverseUnits = orderedUnits.slice(0).reverse(); - -// clone really means "create another instance just like this one, but with these changes" -function clone(dur, alts, clear = false) { - // deep merge for vals - const conf = { - values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) }, - loc: dur.loc.clone(alts.loc), - conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy, - matrix: alts.matrix || dur.matrix, - }; - return new Duration(conf); -} - -function durationToMillis(matrix, vals) { - let sum = vals.milliseconds ?? 0; - for (const unit of reverseUnits.slice(1)) { - if (vals[unit]) { - sum += vals[unit] * matrix[unit]["milliseconds"]; - } - } - return sum; -} - -// NB: mutates parameters -function normalizeValues(matrix, vals) { - // the logic below assumes the overall value of the duration is positive - // if this is not the case, factor is used to make it so - const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1; - - orderedUnits.reduceRight((previous, current) => { - if (!isUndefined(vals[current])) { - if (previous) { - const previousVal = vals[previous] * factor; - const conv = matrix[current][previous]; - - // if (previousVal < 0): - // lower order unit is negative (e.g. { years: 2, days: -2 }) - // normalize this by reducing the higher order unit by the appropriate amount - // and increasing the lower order unit - // this can never make the higher order unit negative, because this function only operates - // on positive durations, so the amount of time represented by the lower order unit cannot - // be larger than the higher order unit - // else: - // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 }) - // in this case we attempt to convert as much as possible from the lower order unit into - // the higher order one - // - // Math.floor takes care of both of these cases, rounding away from 0 - // if previousVal < 0 it makes the absolute value larger - // if previousVal >= it makes the absolute value smaller - const rollUp = Math.floor(previousVal / conv); - vals[current] += rollUp * factor; - vals[previous] -= rollUp * conv * factor; - } - return current; - } else { - return previous; - } - }, null); - - // try to convert any decimals into smaller units if possible - // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 } - orderedUnits.reduce((previous, current) => { - if (!isUndefined(vals[current])) { - if (previous) { - const fraction = vals[previous] % 1; - vals[previous] -= fraction; - vals[current] += fraction * matrix[previous][current]; - } - return current; - } else { - return previous; - } - }, null); -} - -// Remove all properties with a value of 0 from an object -function removeZeroes(vals) { - const newVals = {}; - for (const [key, value] of Object.entries(vals)) { - if (value !== 0) { - newVals[key] = value; - } - } - return newVals; -} - -/** - * A Duration object represents a period of time, like "2 months" or "1 day, 1 hour". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime. - * - * Here is a brief overview of commonly used methods and getters in Duration: - * - * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}. - * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors. - * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors. - * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}. - * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON} - * - * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation. - */ -class Duration { - /** - * @private - */ - constructor(config) { - const accurate = config.conversionAccuracy === "longterm" || false; - let matrix = accurate ? accurateMatrix : casualMatrix; - - if (config.matrix) { - matrix = config.matrix; - } - - /** - * @access private - */ - this.values = config.values; - /** - * @access private - */ - this.loc = config.loc || Locale.create(); - /** - * @access private - */ - this.conversionAccuracy = accurate ? "longterm" : "casual"; - /** - * @access private - */ - this.invalid = config.invalid || null; - /** - * @access private - */ - this.matrix = matrix; - /** - * @access private - */ - this.isLuxonDuration = true; - } - - /** - * Create Duration from a number of milliseconds. - * @param {number} count of milliseconds - * @param {Object} opts - options for parsing - * @param {string} [opts.locale='en-US'] - the locale to use - * @param {string} opts.numberingSystem - the numbering system to use - * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use - * @return {Duration} - */ - static fromMillis(count, opts) { - return Duration.fromObject({ milliseconds: count }, opts); - } - - /** - * Create a Duration from a JavaScript object with keys like 'years' and 'hours'. - * If this object is empty then a zero milliseconds duration is returned. - * @param {Object} obj - the object to create the DateTime from - * @param {number} obj.years - * @param {number} obj.quarters - * @param {number} obj.months - * @param {number} obj.weeks - * @param {number} obj.days - * @param {number} obj.hours - * @param {number} obj.minutes - * @param {number} obj.seconds - * @param {number} obj.milliseconds - * @param {Object} [opts=[]] - options for creating this Duration - * @param {string} [opts.locale='en-US'] - the locale to use - * @param {string} opts.numberingSystem - the numbering system to use - * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use - * @param {string} [opts.matrix=Object] - the custom conversion system to use - * @return {Duration} - */ - static fromObject(obj, opts = {}) { - if (obj == null || typeof obj !== "object") { - throw new InvalidArgumentError( - `Duration.fromObject: argument expected to be an object, got ${ - obj === null ? "null" : typeof obj - }` - ); - } - - return new Duration({ - values: normalizeObject(obj, Duration.normalizeUnit), - loc: Locale.fromObject(opts), - conversionAccuracy: opts.conversionAccuracy, - matrix: opts.matrix, - }); - } - - /** - * Create a Duration from DurationLike. - * - * @param {Object | number | Duration} durationLike - * One of: - * - object with keys like 'years' and 'hours'. - * - number representing milliseconds - * - Duration instance - * @return {Duration} - */ - static fromDurationLike(durationLike) { - if (isNumber(durationLike)) { - return Duration.fromMillis(durationLike); - } else if (Duration.isDuration(durationLike)) { - return durationLike; - } else if (typeof durationLike === "object") { - return Duration.fromObject(durationLike); - } else { - throw new InvalidArgumentError( - `Unknown duration argument ${durationLike} of type ${typeof durationLike}` - ); - } - } - - /** - * Create a Duration from an ISO 8601 duration string. - * @param {string} text - text to parse - * @param {Object} opts - options for parsing - * @param {string} [opts.locale='en-US'] - the locale to use - * @param {string} opts.numberingSystem - the numbering system to use - * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use - * @param {string} [opts.matrix=Object] - the preset conversion system to use - * @see https://en.wikipedia.org/wiki/ISO_8601#Durations - * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 } - * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 } - * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 } - * @return {Duration} - */ - static fromISO(text, opts) { - const [parsed] = parseISODuration(text); - if (parsed) { - return Duration.fromObject(parsed, opts); - } else { - return Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); - } - } - - /** - * Create a Duration from an ISO 8601 time string. - * @param {string} text - text to parse - * @param {Object} opts - options for parsing - * @param {string} [opts.locale='en-US'] - the locale to use - * @param {string} opts.numberingSystem - the numbering system to use - * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use - * @param {string} [opts.matrix=Object] - the conversion system to use - * @see https://en.wikipedia.org/wiki/ISO_8601#Times - * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 } - * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } - * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } - * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } - * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } - * @return {Duration} - */ - static fromISOTime(text, opts) { - const [parsed] = parseISOTimeOnly(text); - if (parsed) { - return Duration.fromObject(parsed, opts); - } else { - return Duration.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); - } - } - - /** - * Create an invalid Duration. - * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent - * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information - * @return {Duration} - */ - static invalid(reason, explanation = null) { - if (!reason) { - throw new InvalidArgumentError("need to specify a reason the Duration is invalid"); - } - - const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); - - if (Settings.throwOnInvalid) { - throw new InvalidDurationError(invalid); - } else { - return new Duration({ invalid }); - } - } - - /** - * @private - */ - static normalizeUnit(unit) { - const normalized = { - year: "years", - years: "years", - quarter: "quarters", - quarters: "quarters", - month: "months", - months: "months", - week: "weeks", - weeks: "weeks", - day: "days", - days: "days", - hour: "hours", - hours: "hours", - minute: "minutes", - minutes: "minutes", - second: "seconds", - seconds: "seconds", - millisecond: "milliseconds", - milliseconds: "milliseconds", - }[unit ? unit.toLowerCase() : unit]; - - if (!normalized) throw new InvalidUnitError(unit); - - return normalized; - } - - /** - * Check if an object is a Duration. Works across context boundaries - * @param {object} o - * @return {boolean} - */ - static isDuration(o) { - return (o && o.isLuxonDuration) || false; - } - - /** - * Get the locale of a Duration, such 'en-GB' - * @type {string} - */ - get locale() { - return this.isValid ? this.loc.locale : null; - } - - /** - * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration - * - * @type {string} - */ - get numberingSystem() { - return this.isValid ? this.loc.numberingSystem : null; - } - - /** - * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens: - * * `S` for milliseconds - * * `s` for seconds - * * `m` for minutes - * * `h` for hours - * * `d` for days - * * `w` for weeks - * * `M` for months - * * `y` for years - * Notes: - * * Add padding by repeating the token, e.g. "yy" pads the years to two digits, "hhhh" pads the hours out to four digits - * * Tokens can be escaped by wrapping with single quotes. - * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting. - * @param {string} fmt - the format string - * @param {Object} opts - options - * @param {boolean} [opts.floor=true] - floor numerical values - * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("y d s") //=> "1 6 2" - * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("yy dd sss") //=> "01 06 002" - * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat("M S") //=> "12 518402000" - * @return {string} - */ - toFormat(fmt, opts = {}) { - // reverse-compat since 1.2; we always round down now, never up, and we do it by default - const fmtOpts = { - ...opts, - floor: opts.round !== false && opts.floor !== false, - }; - return this.isValid - ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) - : INVALID; - } - - /** - * Returns a string representation of a Duration with all units included. - * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant. - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options - * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`. - * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor. - * @example - * ```js - * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 }) - * dur.toHuman() //=> '1 day, 5 hours, 6 minutes' - * dur.toHuman({ listStyle: "long" }) //=> '1 day, 5 hours, and 6 minutes' - * dur.toHuman({ unitDisplay: "short" }) //=> '1 day, 5 hr, 6 min' - * ``` - */ - toHuman(opts = {}) { - if (!this.isValid) return INVALID; - - const l = orderedUnits - .map((unit) => { - const val = this.values[unit]; - if (isUndefined(val)) { - return null; - } - return this.loc - .numberFormatter({ style: "unit", unitDisplay: "long", ...opts, unit: unit.slice(0, -1) }) - .format(val); - }) - .filter((n) => n); - - return this.loc - .listFormatter({ type: "conjunction", style: opts.listStyle || "narrow", ...opts }) - .format(l); - } - - /** - * Returns a JavaScript object with this Duration's values. - * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 } - * @return {Object} - */ - toObject() { - if (!this.isValid) return {}; - return { ...this.values }; - } - - /** - * Returns an ISO 8601-compliant string representation of this Duration. - * @see https://en.wikipedia.org/wiki/ISO_8601#Durations - * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S' - * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S' - * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M' - * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M' - * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S' - * @return {string} - */ - toISO() { - // we could use the formatter, but this is an easier way to get the minimum string - if (!this.isValid) return null; - - let s = "P"; - if (this.years !== 0) s += this.years + "Y"; - if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + "M"; - if (this.weeks !== 0) s += this.weeks + "W"; - if (this.days !== 0) s += this.days + "D"; - if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) - s += "T"; - if (this.hours !== 0) s += this.hours + "H"; - if (this.minutes !== 0) s += this.minutes + "M"; - if (this.seconds !== 0 || this.milliseconds !== 0) - // this will handle "floating point madness" by removing extra decimal places - // https://stackoverflow.com/questions/588004/is-floating-point-math-broken - s += roundTo(this.seconds + this.milliseconds / 1000, 3) + "S"; - if (s === "P") s += "T0S"; - return s; - } - - /** - * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day. - * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours. - * @see https://en.wikipedia.org/wiki/ISO_8601#Times - * @param {Object} opts - options - * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 - * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 - * @param {boolean} [opts.includePrefix=false] - include the `T` prefix - * @param {string} [opts.format='extended'] - choose between the basic and extended format - * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000' - * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00' - * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00' - * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000' - * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000' - * @return {string} - */ - toISOTime(opts = {}) { - if (!this.isValid) return null; - - const millis = this.toMillis(); - if (millis < 0 || millis >= 86400000) return null; - - opts = { - suppressMilliseconds: false, - suppressSeconds: false, - includePrefix: false, - format: "extended", - ...opts, - includeOffset: false, - }; - - const dateTime = DateTime.fromMillis(millis, { zone: "UTC" }); - return dateTime.toISOTime(opts); - } - - /** - * Returns an ISO 8601 representation of this Duration appropriate for use in JSON. - * @return {string} - */ - toJSON() { - return this.toISO(); - } - - /** - * Returns an ISO 8601 representation of this Duration appropriate for use in debugging. - * @return {string} - */ - toString() { - return this.toISO(); - } - - /** - * Returns a string representation of this Duration appropriate for the REPL. - * @return {string} - */ - [Symbol.for("nodejs.util.inspect.custom")]() { - if (this.isValid) { - return `Duration { values: ${JSON.stringify(this.values)} }`; - } else { - return `Duration { Invalid, reason: ${this.invalidReason} }`; - } - } - - /** - * Returns an milliseconds value of this Duration. - * @return {number} - */ - toMillis() { - if (!this.isValid) return NaN; - - return durationToMillis(this.matrix, this.values); - } - - /** - * Returns an milliseconds value of this Duration. Alias of {@link toMillis} - * @return {number} - */ - valueOf() { - return this.toMillis(); - } - - /** - * Make this Duration longer by the specified amount. Return a newly-constructed Duration. - * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() - * @return {Duration} - */ - plus(duration) { - if (!this.isValid) return this; - - const dur = Duration.fromDurationLike(duration), - result = {}; - - for (const k of orderedUnits) { - if (util_hasOwnProperty(dur.values, k) || util_hasOwnProperty(this.values, k)) { - result[k] = dur.get(k) + this.get(k); - } - } - - return clone(this, { values: result }, true); - } - - /** - * Make this Duration shorter by the specified amount. Return a newly-constructed Duration. - * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() - * @return {Duration} - */ - minus(duration) { - if (!this.isValid) return this; - - const dur = Duration.fromDurationLike(duration); - return this.plus(dur.negate()); - } - - /** - * Scale this Duration by the specified amount. Return a newly-constructed Duration. - * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number. - * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 } - * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === "hours" ? x * 2 : x) //=> { hours: 2, minutes: 30 } - * @return {Duration} - */ - mapUnits(fn) { - if (!this.isValid) return this; - const result = {}; - for (const k of Object.keys(this.values)) { - result[k] = asNumber(fn(this.values[k], k)); - } - return clone(this, { values: result }, true); - } - - /** - * Get the value of unit. - * @param {string} unit - a unit such as 'minute' or 'day' - * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2 - * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0 - * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3 - * @return {number} - */ - get(unit) { - return this[Duration.normalizeUnit(unit)]; - } - - /** - * "Set" the values of specified units. Return a newly-constructed Duration. - * @param {Object} values - a mapping of units to numbers - * @example dur.set({ years: 2017 }) - * @example dur.set({ hours: 8, minutes: 30 }) - * @return {Duration} - */ - set(values) { - if (!this.isValid) return this; - - const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) }; - return clone(this, { values: mixed }); - } - - /** - * "Set" the locale and/or numberingSystem. Returns a newly-constructed Duration. - * @example dur.reconfigure({ locale: 'en-GB' }) - * @return {Duration} - */ - reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) { - const loc = this.loc.clone({ locale, numberingSystem }); - const opts = { loc, matrix, conversionAccuracy }; - return clone(this, opts); - } - - /** - * Return the length of the duration in the specified unit. - * @param {string} unit - a unit such as 'minutes' or 'days' - * @example Duration.fromObject({years: 1}).as('days') //=> 365 - * @example Duration.fromObject({years: 1}).as('months') //=> 12 - * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5 - * @return {number} - */ - as(unit) { - return this.isValid ? this.shiftTo(unit).get(unit) : NaN; - } - - /** - * Reduce this Duration to its canonical representation in its current units. - * Assuming the overall value of the Duration is positive, this means: - * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example) - * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise - * the overall value would be negative, see third example) - * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example) - * - * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`. - * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 } - * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 } - * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 } - * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 } - * @return {Duration} - */ - normalize() { - if (!this.isValid) return this; - const vals = this.toObject(); - normalizeValues(this.matrix, vals); - return clone(this, { values: vals }, true); - } - - /** - * Rescale units to its largest representation - * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 } - * @return {Duration} - */ - rescale() { - if (!this.isValid) return this; - const vals = removeZeroes(this.normalize().shiftToAll().toObject()); - return clone(this, { values: vals }, true); - } - - /** - * Convert this Duration into its representation in a different set of units. - * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 } - * @return {Duration} - */ - shiftTo(...units) { - if (!this.isValid) return this; - - if (units.length === 0) { - return this; - } - - units = units.map((u) => Duration.normalizeUnit(u)); - - const built = {}, - accumulated = {}, - vals = this.toObject(); - let lastUnit; - - for (const k of orderedUnits) { - if (units.indexOf(k) >= 0) { - lastUnit = k; - - let own = 0; - - // anything we haven't boiled down yet should get boiled to this unit - for (const ak in accumulated) { - own += this.matrix[ak][k] * accumulated[ak]; - accumulated[ak] = 0; - } - - // plus anything that's already in this unit - if (isNumber(vals[k])) { - own += vals[k]; - } - - // only keep the integer part for now in the hopes of putting any decimal part - // into a smaller unit later - const i = Math.trunc(own); - built[k] = i; - accumulated[k] = (own * 1000 - i * 1000) / 1000; - - // otherwise, keep it in the wings to boil it later - } else if (isNumber(vals[k])) { - accumulated[k] = vals[k]; - } - } - - // anything leftover becomes the decimal for the last unit - // lastUnit must be defined since units is not empty - for (const key in accumulated) { - if (accumulated[key] !== 0) { - built[lastUnit] += - key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key]; - } - } - - normalizeValues(this.matrix, built); - return clone(this, { values: built }, true); - } - - /** - * Shift this Duration to all available units. - * Same as shiftTo("years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds") - * @return {Duration} - */ - shiftToAll() { - if (!this.isValid) return this; - return this.shiftTo( - "years", - "months", - "weeks", - "days", - "hours", - "minutes", - "seconds", - "milliseconds" - ); - } - - /** - * Return the negative of this Duration. - * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 } - * @return {Duration} - */ - negate() { - if (!this.isValid) return this; - const negated = {}; - for (const k of Object.keys(this.values)) { - negated[k] = this.values[k] === 0 ? 0 : -this.values[k]; - } - return clone(this, { values: negated }, true); - } - - /** - * Get the years. - * @type {number} - */ - get years() { - return this.isValid ? this.values.years || 0 : NaN; - } - - /** - * Get the quarters. - * @type {number} - */ - get quarters() { - return this.isValid ? this.values.quarters || 0 : NaN; - } - - /** - * Get the months. - * @type {number} - */ - get months() { - return this.isValid ? this.values.months || 0 : NaN; - } - - /** - * Get the weeks - * @type {number} - */ - get weeks() { - return this.isValid ? this.values.weeks || 0 : NaN; - } - - /** - * Get the days. - * @type {number} - */ - get days() { - return this.isValid ? this.values.days || 0 : NaN; - } - - /** - * Get the hours. - * @type {number} - */ - get hours() { - return this.isValid ? this.values.hours || 0 : NaN; - } - - /** - * Get the minutes. - * @type {number} - */ - get minutes() { - return this.isValid ? this.values.minutes || 0 : NaN; - } - - /** - * Get the seconds. - * @return {number} - */ - get seconds() { - return this.isValid ? this.values.seconds || 0 : NaN; - } - - /** - * Get the milliseconds. - * @return {number} - */ - get milliseconds() { - return this.isValid ? this.values.milliseconds || 0 : NaN; - } - - /** - * Returns whether the Duration is invalid. Invalid durations are returned by diff operations - * on invalid DateTimes or Intervals. - * @return {boolean} - */ - get isValid() { - return this.invalid === null; - } - - /** - * Returns an error code if this Duration became invalid, or null if the Duration is valid - * @return {string} - */ - get invalidReason() { - return this.invalid ? this.invalid.reason : null; - } - - /** - * Returns an explanation of why this Duration became invalid, or null if the Duration is valid - * @type {string} - */ - get invalidExplanation() { - return this.invalid ? this.invalid.explanation : null; - } - - /** - * Equality check - * Two Durations are equal iff they have the same units and the same values for each unit. - * @param {Duration} other - * @return {boolean} - */ - equals(other) { - if (!this.isValid || !other.isValid) { - return false; - } - - if (!this.loc.equals(other.loc)) { - return false; - } - - function eq(v1, v2) { - // Consider 0 and undefined as equal - if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0; - return v1 === v2; - } - - for (const u of orderedUnits) { - if (!eq(this.values[u], other.values[u])) { - return false; - } - } - return true; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/interval.js - - - - - - - - -const interval_INVALID = "Invalid Interval"; - -// checks if the start is equal to or before the end -function validateStartEnd(start, end) { - if (!start || !start.isValid) { - return Interval.invalid("missing or invalid start"); - } else if (!end || !end.isValid) { - return Interval.invalid("missing or invalid end"); - } else if (end < start) { - return Interval.invalid( - "end before start", - `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}` - ); - } else { - return null; - } -} - -/** - * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them. - * - * Here is a brief overview of the most commonly used methods and getters in Interval: - * - * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}. - * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end. - * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}. - * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}. - * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs} - * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}. - */ -class Interval { - /** - * @private - */ - constructor(config) { - /** - * @access private - */ - this.s = config.start; - /** - * @access private - */ - this.e = config.end; - /** - * @access private - */ - this.invalid = config.invalid || null; - /** - * @access private - */ - this.isLuxonInterval = true; - } - - /** - * Create an invalid Interval. - * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent - * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information - * @return {Interval} - */ - static invalid(reason, explanation = null) { - if (!reason) { - throw new InvalidArgumentError("need to specify a reason the Interval is invalid"); - } - - const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); - - if (Settings.throwOnInvalid) { - throw new InvalidIntervalError(invalid); - } else { - return new Interval({ invalid }); - } - } - - /** - * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end. - * @param {DateTime|Date|Object} start - * @param {DateTime|Date|Object} end - * @return {Interval} - */ - static fromDateTimes(start, end) { - const builtStart = friendlyDateTime(start), - builtEnd = friendlyDateTime(end); - - const validateError = validateStartEnd(builtStart, builtEnd); - - if (validateError == null) { - return new Interval({ - start: builtStart, - end: builtEnd, - }); - } else { - return validateError; - } - } - - /** - * Create an Interval from a start DateTime and a Duration to extend to. - * @param {DateTime|Date|Object} start - * @param {Duration|Object|number} duration - the length of the Interval. - * @return {Interval} - */ - static after(start, duration) { - const dur = Duration.fromDurationLike(duration), - dt = friendlyDateTime(start); - return Interval.fromDateTimes(dt, dt.plus(dur)); - } - - /** - * Create an Interval from an end DateTime and a Duration to extend backwards to. - * @param {DateTime|Date|Object} end - * @param {Duration|Object|number} duration - the length of the Interval. - * @return {Interval} - */ - static before(end, duration) { - const dur = Duration.fromDurationLike(duration), - dt = friendlyDateTime(end); - return Interval.fromDateTimes(dt.minus(dur), dt); - } - - /** - * Create an Interval from an ISO 8601 string. - * Accepts `/`, `/`, and `/` formats. - * @param {string} text - the ISO string to parse - * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO} - * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals - * @return {Interval} - */ - static fromISO(text, opts) { - const [s, e] = (text || "").split("/", 2); - if (s && e) { - let start, startIsValid; - try { - start = DateTime.fromISO(s, opts); - startIsValid = start.isValid; - } catch (e) { - startIsValid = false; - } - - let end, endIsValid; - try { - end = DateTime.fromISO(e, opts); - endIsValid = end.isValid; - } catch (e) { - endIsValid = false; - } - - if (startIsValid && endIsValid) { - return Interval.fromDateTimes(start, end); - } - - if (startIsValid) { - const dur = Duration.fromISO(e, opts); - if (dur.isValid) { - return Interval.after(start, dur); - } - } else if (endIsValid) { - const dur = Duration.fromISO(s, opts); - if (dur.isValid) { - return Interval.before(end, dur); - } - } - } - return Interval.invalid("unparsable", `the input "${text}" can't be parsed as ISO 8601`); - } - - /** - * Check if an object is an Interval. Works across context boundaries - * @param {object} o - * @return {boolean} - */ - static isInterval(o) { - return (o && o.isLuxonInterval) || false; - } - - /** - * Returns the start of the Interval - * @type {DateTime} - */ - get start() { - return this.isValid ? this.s : null; - } - - /** - * Returns the end of the Interval - * @type {DateTime} - */ - get end() { - return this.isValid ? this.e : null; - } - - /** - * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'. - * @type {boolean} - */ - get isValid() { - return this.invalidReason === null; - } - - /** - * Returns an error code if this Interval is invalid, or null if the Interval is valid - * @type {string} - */ - get invalidReason() { - return this.invalid ? this.invalid.reason : null; - } - - /** - * Returns an explanation of why this Interval became invalid, or null if the Interval is valid - * @type {string} - */ - get invalidExplanation() { - return this.invalid ? this.invalid.explanation : null; - } - - /** - * Returns the length of the Interval in the specified unit. - * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in. - * @return {number} - */ - length(unit = "milliseconds") { - return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN; - } - - /** - * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part. - * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day' - * asks 'what dates are included in this interval?', not 'how many days long is this interval?' - * @param {string} [unit='milliseconds'] - the unit of time to count. - * @param {Object} opts - options - * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime - * @return {number} - */ - count(unit = "milliseconds", opts) { - if (!this.isValid) return NaN; - const start = this.start.startOf(unit, opts); - let end; - if (opts?.useLocaleWeeks) { - end = this.end.reconfigure({ locale: start.locale }); - } else { - end = this.end; - } - end = end.startOf(unit, opts); - return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf()); - } - - /** - * Returns whether this Interval's start and end are both in the same unit of time - * @param {string} unit - the unit of time to check sameness on - * @return {boolean} - */ - hasSame(unit) { - return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; - } - - /** - * Return whether this Interval has the same start and end DateTimes. - * @return {boolean} - */ - isEmpty() { - return this.s.valueOf() === this.e.valueOf(); - } - - /** - * Return whether this Interval's start is after the specified DateTime. - * @param {DateTime} dateTime - * @return {boolean} - */ - isAfter(dateTime) { - if (!this.isValid) return false; - return this.s > dateTime; - } - - /** - * Return whether this Interval's end is before the specified DateTime. - * @param {DateTime} dateTime - * @return {boolean} - */ - isBefore(dateTime) { - if (!this.isValid) return false; - return this.e <= dateTime; - } - - /** - * Return whether this Interval contains the specified DateTime. - * @param {DateTime} dateTime - * @return {boolean} - */ - contains(dateTime) { - if (!this.isValid) return false; - return this.s <= dateTime && this.e > dateTime; - } - - /** - * "Sets" the start and/or end dates. Returns a newly-constructed Interval. - * @param {Object} values - the values to set - * @param {DateTime} values.start - the starting DateTime - * @param {DateTime} values.end - the ending DateTime - * @return {Interval} - */ - set({ start, end } = {}) { - if (!this.isValid) return this; - return Interval.fromDateTimes(start || this.s, end || this.e); - } - - /** - * Split this Interval at each of the specified DateTimes - * @param {...DateTime} dateTimes - the unit of time to count. - * @return {Array} - */ - splitAt(...dateTimes) { - if (!this.isValid) return []; - const sorted = dateTimes - .map(friendlyDateTime) - .filter((d) => this.contains(d)) - .sort((a, b) => a.toMillis() - b.toMillis()), - results = []; - let { s } = this, - i = 0; - - while (s < this.e) { - const added = sorted[i] || this.e, - next = +added > +this.e ? this.e : added; - results.push(Interval.fromDateTimes(s, next)); - s = next; - i += 1; - } - - return results; - } - - /** - * Split this Interval into smaller Intervals, each of the specified length. - * Left over time is grouped into a smaller interval - * @param {Duration|Object|number} duration - The length of each resulting interval. - * @return {Array} - */ - splitBy(duration) { - const dur = Duration.fromDurationLike(duration); - - if (!this.isValid || !dur.isValid || dur.as("milliseconds") === 0) { - return []; - } - - let { s } = this, - idx = 1, - next; - - const results = []; - while (s < this.e) { - const added = this.start.plus(dur.mapUnits((x) => x * idx)); - next = +added > +this.e ? this.e : added; - results.push(Interval.fromDateTimes(s, next)); - s = next; - idx += 1; - } - - return results; - } - - /** - * Split this Interval into the specified number of smaller intervals. - * @param {number} numberOfParts - The number of Intervals to divide the Interval into. - * @return {Array} - */ - divideEqually(numberOfParts) { - if (!this.isValid) return []; - return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts); - } - - /** - * Return whether this Interval overlaps with the specified Interval - * @param {Interval} other - * @return {boolean} - */ - overlaps(other) { - return this.e > other.s && this.s < other.e; - } - - /** - * Return whether this Interval's end is adjacent to the specified Interval's start. - * @param {Interval} other - * @return {boolean} - */ - abutsStart(other) { - if (!this.isValid) return false; - return +this.e === +other.s; - } - - /** - * Return whether this Interval's start is adjacent to the specified Interval's end. - * @param {Interval} other - * @return {boolean} - */ - abutsEnd(other) { - if (!this.isValid) return false; - return +other.e === +this.s; - } - - /** - * Return whether this Interval engulfs the start and end of the specified Interval. - * @param {Interval} other - * @return {boolean} - */ - engulfs(other) { - if (!this.isValid) return false; - return this.s <= other.s && this.e >= other.e; - } - - /** - * Return whether this Interval has the same start and end as the specified Interval. - * @param {Interval} other - * @return {boolean} - */ - equals(other) { - if (!this.isValid || !other.isValid) { - return false; - } - - return this.s.equals(other.s) && this.e.equals(other.e); - } - - /** - * Return an Interval representing the intersection of this Interval and the specified Interval. - * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals. - * Returns null if the intersection is empty, meaning, the intervals don't intersect. - * @param {Interval} other - * @return {Interval} - */ - intersection(other) { - if (!this.isValid) return this; - const s = this.s > other.s ? this.s : other.s, - e = this.e < other.e ? this.e : other.e; - - if (s >= e) { - return null; - } else { - return Interval.fromDateTimes(s, e); - } - } - - /** - * Return an Interval representing the union of this Interval and the specified Interval. - * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals. - * @param {Interval} other - * @return {Interval} - */ - union(other) { - if (!this.isValid) return this; - const s = this.s < other.s ? this.s : other.s, - e = this.e > other.e ? this.e : other.e; - return Interval.fromDateTimes(s, e); - } - - /** - * Merge an array of Intervals into a equivalent minimal set of Intervals. - * Combines overlapping and adjacent Intervals. - * @param {Array} intervals - * @return {Array} - */ - static merge(intervals) { - const [found, final] = intervals - .sort((a, b) => a.s - b.s) - .reduce( - ([sofar, current], item) => { - if (!current) { - return [sofar, item]; - } else if (current.overlaps(item) || current.abutsStart(item)) { - return [sofar, current.union(item)]; - } else { - return [sofar.concat([current]), item]; - } - }, - [[], null] - ); - if (final) { - found.push(final); - } - return found; - } - - /** - * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals. - * @param {Array} intervals - * @return {Array} - */ - static xor(intervals) { - let start = null, - currentCount = 0; - const results = [], - ends = intervals.map((i) => [ - { time: i.s, type: "s" }, - { time: i.e, type: "e" }, - ]), - flattened = Array.prototype.concat(...ends), - arr = flattened.sort((a, b) => a.time - b.time); - - for (const i of arr) { - currentCount += i.type === "s" ? 1 : -1; - - if (currentCount === 1) { - start = i.time; - } else { - if (start && +start !== +i.time) { - results.push(Interval.fromDateTimes(start, i.time)); - } - - start = null; - } - } - - return Interval.merge(results); - } - - /** - * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals. - * @param {...Interval} intervals - * @return {Array} - */ - difference(...intervals) { - return Interval.xor([this].concat(intervals)) - .map((i) => this.intersection(i)) - .filter((i) => i && !i.isEmpty()); - } - - /** - * Returns a string representation of this Interval appropriate for debugging. - * @return {string} - */ - toString() { - if (!this.isValid) return interval_INVALID; - return `[${this.s.toISO()} – ${this.e.toISO()})`; - } - - /** - * Returns a string representation of this Interval appropriate for the REPL. - * @return {string} - */ - [Symbol.for("nodejs.util.inspect.custom")]() { - if (this.isValid) { - return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`; - } else { - return `Interval { Invalid, reason: ${this.invalidReason} }`; - } - } - - /** - * Returns a localized string representing this Interval. Accepts the same options as the - * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as - * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method - * is browser-specific, but in general it will return an appropriate representation of the - * Interval in the assigned locale. Defaults to the system's locale if no locale has been - * specified. - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or - * Intl.DateTimeFormat constructor options. - * @param {Object} opts - Options to override the configuration of the start DateTime. - * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022 - * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022 - * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022 - * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM - * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p - * @return {string} - */ - toLocaleString(formatOpts = DATE_SHORT, opts = {}) { - return this.isValid - ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this) - : interval_INVALID; - } - - /** - * Returns an ISO 8601-compliant string representation of this Interval. - * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals - * @param {Object} opts - The same options as {@link DateTime#toISO} - * @return {string} - */ - toISO(opts) { - if (!this.isValid) return interval_INVALID; - return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`; - } - - /** - * Returns an ISO 8601-compliant string representation of date of this Interval. - * The time components are ignored. - * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals - * @return {string} - */ - toISODate() { - if (!this.isValid) return interval_INVALID; - return `${this.s.toISODate()}/${this.e.toISODate()}`; - } - - /** - * Returns an ISO 8601-compliant string representation of time of this Interval. - * The date components are ignored. - * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals - * @param {Object} opts - The same options as {@link DateTime#toISO} - * @return {string} - */ - toISOTime(opts) { - if (!this.isValid) return interval_INVALID; - return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`; - } - - /** - * Returns a string representation of this Interval formatted according to the specified format - * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible - * formatting tool. - * @param {string} dateFormat - The format string. This string formats the start and end time. - * See {@link DateTime#toFormat} for details. - * @param {Object} opts - Options. - * @param {string} [opts.separator = ' – '] - A separator to place between the start and end - * representations. - * @return {string} - */ - toFormat(dateFormat, { separator = " – " } = {}) { - if (!this.isValid) return interval_INVALID; - return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`; - } - - /** - * Return a Duration representing the time spanned by this interval. - * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration. - * @param {Object} opts - options that affect the creation of the Duration - * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use - * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 } - * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 } - * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 } - * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 } - * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 } - * @return {Duration} - */ - toDuration(unit, opts) { - if (!this.isValid) { - return Duration.invalid(this.invalidReason); - } - return this.e.diff(this.s, unit, opts); - } - - /** - * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes - * @param {function} mapFn - * @return {Interval} - * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC()) - * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 })) - */ - mapEndpoints(mapFn) { - return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e)); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/info.js - - - - - - - - -/** - * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment. - */ -class Info { - /** - * Return whether the specified zone contains a DST. - * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone. - * @return {boolean} - */ - static hasDST(zone = Settings.defaultZone) { - const proto = DateTime.now().setZone(zone).set({ month: 12 }); - - return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset; - } - - /** - * Return whether the specified zone is a valid IANA specifier. - * @param {string} zone - Zone to check - * @return {boolean} - */ - static isValidIANAZone(zone) { - return IANAZone.isValidZone(zone); - } - - /** - * Converts the input into a {@link Zone} instance. - * - * * If `input` is already a Zone instance, it is returned unchanged. - * * If `input` is a string containing a valid time zone name, a Zone instance - * with that name is returned. - * * If `input` is a string that doesn't refer to a known time zone, a Zone - * instance with {@link Zone#isValid} == false is returned. - * * If `input is a number, a Zone instance with the specified fixed offset - * in minutes is returned. - * * If `input` is `null` or `undefined`, the default zone is returned. - * @param {string|Zone|number} [input] - the value to be converted - * @return {Zone} - */ - static normalizeZone(input) { - return normalizeZone(input, Settings.defaultZone); - } - - /** - * Get the weekday on which the week starts according to the given locale. - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @param {string} [opts.locObj=null] - an existing locale object to use - * @returns {number} the start of the week, 1 for Monday through 7 for Sunday - */ - static getStartOfWeek({ locale = null, locObj = null } = {}) { - return (locObj || Locale.create(locale)).getStartOfWeek(); - } - - /** - * Get the minimum number of days necessary in a week before it is considered part of the next year according - * to the given locale. - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @param {string} [opts.locObj=null] - an existing locale object to use - * @returns {number} - */ - static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) { - return (locObj || Locale.create(locale)).getMinDaysInFirstWeek(); - } - - /** - * Get the weekdays, which are considered the weekend according to the given locale - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @param {string} [opts.locObj=null] - an existing locale object to use - * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday - */ - static getWeekendWeekdays({ locale = null, locObj = null } = {}) { - // copy the array, because we cache it internally - return (locObj || Locale.create(locale)).getWeekendDays().slice(); - } - - /** - * Return an array of standalone month names. - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the month representation, such as "numeric", "2-digit", "narrow", "short", "long" - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @param {string} [opts.numberingSystem=null] - the numbering system - * @param {string} [opts.locObj=null] - an existing locale object to use - * @param {string} [opts.outputCalendar='gregory'] - the calendar - * @example Info.months()[0] //=> 'January' - * @example Info.months('short')[0] //=> 'Jan' - * @example Info.months('numeric')[0] //=> '1' - * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.' - * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١' - * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I' - * @return {Array} - */ - static months( - length = "long", - { locale = null, numberingSystem = null, locObj = null, outputCalendar = "gregory" } = {} - ) { - return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length); - } - - /** - * Return an array of format month names. - * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that - * changes the string. - * See {@link Info#months} - * @param {string} [length='long'] - the length of the month representation, such as "numeric", "2-digit", "narrow", "short", "long" - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @param {string} [opts.numberingSystem=null] - the numbering system - * @param {string} [opts.locObj=null] - an existing locale object to use - * @param {string} [opts.outputCalendar='gregory'] - the calendar - * @return {Array} - */ - static monthsFormat( - length = "long", - { locale = null, numberingSystem = null, locObj = null, outputCalendar = "gregory" } = {} - ) { - return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true); - } - - /** - * Return an array of standalone week names. - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @param {string} [opts.numberingSystem=null] - the numbering system - * @param {string} [opts.locObj=null] - an existing locale object to use - * @example Info.weekdays()[0] //=> 'Monday' - * @example Info.weekdays('short')[0] //=> 'Mon' - * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.' - * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين' - * @return {Array} - */ - static weekdays(length = "long", { locale = null, numberingSystem = null, locObj = null } = {}) { - return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length); - } - - /** - * Return an array of format week names. - * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that - * changes the string. - * See {@link Info#weekdays} - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". - * @param {Object} opts - options - * @param {string} [opts.locale=null] - the locale code - * @param {string} [opts.numberingSystem=null] - the numbering system - * @param {string} [opts.locObj=null] - an existing locale object to use - * @return {Array} - */ - static weekdaysFormat( - length = "long", - { locale = null, numberingSystem = null, locObj = null } = {} - ) { - return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true); - } - - /** - * Return an array of meridiems. - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @example Info.meridiems() //=> [ 'AM', 'PM' ] - * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ] - * @return {Array} - */ - static meridiems({ locale = null } = {}) { - return Locale.create(locale).meridiems(); - } - - /** - * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian. - * @param {string} [length='short'] - the length of the era representation, such as "short" or "long". - * @param {Object} opts - options - * @param {string} [opts.locale] - the locale code - * @example Info.eras() //=> [ 'BC', 'AD' ] - * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ] - * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ] - * @return {Array} - */ - static eras(length = "short", { locale = null } = {}) { - return Locale.create(locale, null, "gregory").eras(length); - } - - /** - * Return the set of available features in this environment. - * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case. - * Keys: - * * `relative`: whether this environment supports relative time formatting - * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale - * @example Info.features() //=> { relative: false, localeWeek: true } - * @return {Object} - */ - static features() { - return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() }; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/diff.js - - -function dayDiff(earlier, later) { - const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf("day").valueOf(), - ms = utcDayStart(later) - utcDayStart(earlier); - return Math.floor(Duration.fromMillis(ms).as("days")); -} - -function highOrderDiffs(cursor, later, units) { - const differs = [ - ["years", (a, b) => b.year - a.year], - ["quarters", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4], - ["months", (a, b) => b.month - a.month + (b.year - a.year) * 12], - [ - "weeks", - (a, b) => { - const days = dayDiff(a, b); - return (days - (days % 7)) / 7; - }, - ], - ["days", dayDiff], - ]; - - const results = {}; - const earlier = cursor; - let lowestOrder, highWater; - - /* This loop tries to diff using larger units first. - If we overshoot, we backtrack and try the next smaller unit. - "cursor" starts out at the earlier timestamp and moves closer and closer to "later" - as we use smaller and smaller units. - highWater keeps track of where we would be if we added one more of the smallest unit, - this is used later to potentially convert any difference smaller than the smallest higher order unit - into a fraction of that smallest higher order unit - */ - for (const [unit, differ] of differs) { - if (units.indexOf(unit) >= 0) { - lowestOrder = unit; - - results[unit] = differ(cursor, later); - highWater = earlier.plus(results); - - if (highWater > later) { - // we overshot the end point, backtrack cursor by 1 - results[unit]--; - cursor = earlier.plus(results); - - // if we are still overshooting now, we need to backtrack again - // this happens in certain situations when diffing times in different zones, - // because this calculation ignores time zones - if (cursor > later) { - // keep the "overshot by 1" around as highWater - highWater = cursor; - // backtrack cursor by 1 - results[unit]--; - cursor = earlier.plus(results); - } - } else { - cursor = highWater; - } - } - } - - return [cursor, results, highWater, lowestOrder]; -} - -/* harmony default export */ function diff(earlier, later, units, opts) { - let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units); - - const remainingMillis = later - cursor; - - const lowerOrderUnits = units.filter( - (u) => ["hours", "minutes", "seconds", "milliseconds"].indexOf(u) >= 0 - ); - - if (lowerOrderUnits.length === 0) { - if (highWater < later) { - highWater = cursor.plus({ [lowestOrder]: 1 }); - } - - if (highWater !== cursor) { - results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor); - } - } - - const duration = Duration.fromObject(results, opts); - - if (lowerOrderUnits.length > 0) { - return Duration.fromMillis(remainingMillis, opts) - .shiftTo(...lowerOrderUnits) - .plus(duration); - } else { - return duration; - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/digits.js -const numberingSystems = { - arab: "[\u0660-\u0669]", - arabext: "[\u06F0-\u06F9]", - bali: "[\u1B50-\u1B59]", - beng: "[\u09E6-\u09EF]", - deva: "[\u0966-\u096F]", - fullwide: "[\uFF10-\uFF19]", - gujr: "[\u0AE6-\u0AEF]", - hanidec: "[〇|一|二|三|四|五|六|七|八|九]", - khmr: "[\u17E0-\u17E9]", - knda: "[\u0CE6-\u0CEF]", - laoo: "[\u0ED0-\u0ED9]", - limb: "[\u1946-\u194F]", - mlym: "[\u0D66-\u0D6F]", - mong: "[\u1810-\u1819]", - mymr: "[\u1040-\u1049]", - orya: "[\u0B66-\u0B6F]", - tamldec: "[\u0BE6-\u0BEF]", - telu: "[\u0C66-\u0C6F]", - thai: "[\u0E50-\u0E59]", - tibt: "[\u0F20-\u0F29]", - latn: "\\d", -}; - -const numberingSystemsUTF16 = { - arab: [1632, 1641], - arabext: [1776, 1785], - bali: [6992, 7001], - beng: [2534, 2543], - deva: [2406, 2415], - fullwide: [65296, 65303], - gujr: [2790, 2799], - khmr: [6112, 6121], - knda: [3302, 3311], - laoo: [3792, 3801], - limb: [6470, 6479], - mlym: [3430, 3439], - mong: [6160, 6169], - mymr: [4160, 4169], - orya: [2918, 2927], - tamldec: [3046, 3055], - telu: [3174, 3183], - thai: [3664, 3673], - tibt: [3872, 3881], -}; - -const hanidecChars = numberingSystems.hanidec.replace(/[\[|\]]/g, "").split(""); - -function parseDigits(str) { - let value = parseInt(str, 10); - if (isNaN(value)) { - value = ""; - for (let i = 0; i < str.length; i++) { - const code = str.charCodeAt(i); - - if (str[i].search(numberingSystems.hanidec) !== -1) { - value += hanidecChars.indexOf(str[i]); - } else { - for (const key in numberingSystemsUTF16) { - const [min, max] = numberingSystemsUTF16[key]; - if (code >= min && code <= max) { - value += code - min; - } - } - } - } - return parseInt(value, 10); - } else { - return value; - } -} - -function digitRegex({ numberingSystem }, append = "") { - return new RegExp(`${numberingSystems[numberingSystem || "latn"]}${append}`); -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/impl/tokenParser.js - - - - - - - - -const MISSING_FTP = "missing Intl.DateTimeFormat.formatToParts support"; - -function intUnit(regex, post = (i) => i) { - return { regex, deser: ([s]) => post(parseDigits(s)) }; -} - -const NBSP = String.fromCharCode(160); -const spaceOrNBSP = `[ ${NBSP}]`; -const spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); - -function fixListRegex(s) { - // make dots optional and also make them literal - // make space and non breakable space characters interchangeable - return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); -} - -function stripInsensitivities(s) { - return s - .replace(/\./g, "") // ignore dots that were made optional - .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp - .toLowerCase(); -} - -function oneOf(strings, startIndex) { - if (strings === null) { - return null; - } else { - return { - regex: RegExp(strings.map(fixListRegex).join("|")), - deser: ([s]) => - strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex, - }; - } -} - -function offset(regex, groups) { - return { regex, deser: ([, h, m]) => signedOffset(h, m), groups }; -} - -function simple(regex) { - return { regex, deser: ([s]) => s }; -} - -function escapeToken(value) { - return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); -} - -/** - * @param token - * @param {Locale} loc - */ -function unitForToken(token, loc) { - const one = digitRegex(loc), - two = digitRegex(loc, "{2}"), - three = digitRegex(loc, "{3}"), - four = digitRegex(loc, "{4}"), - six = digitRegex(loc, "{6}"), - oneOrTwo = digitRegex(loc, "{1,2}"), - oneToThree = digitRegex(loc, "{1,3}"), - oneToSix = digitRegex(loc, "{1,6}"), - oneToNine = digitRegex(loc, "{1,9}"), - twoToFour = digitRegex(loc, "{2,4}"), - fourToSix = digitRegex(loc, "{4,6}"), - literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }), - unitate = (t) => { - if (token.literal) { - return literal(t); - } - switch (t.val) { - // era - case "G": - return oneOf(loc.eras("short"), 0); - case "GG": - return oneOf(loc.eras("long"), 0); - // years - case "y": - return intUnit(oneToSix); - case "yy": - return intUnit(twoToFour, untruncateYear); - case "yyyy": - return intUnit(four); - case "yyyyy": - return intUnit(fourToSix); - case "yyyyyy": - return intUnit(six); - // months - case "M": - return intUnit(oneOrTwo); - case "MM": - return intUnit(two); - case "MMM": - return oneOf(loc.months("short", true), 1); - case "MMMM": - return oneOf(loc.months("long", true), 1); - case "L": - return intUnit(oneOrTwo); - case "LL": - return intUnit(two); - case "LLL": - return oneOf(loc.months("short", false), 1); - case "LLLL": - return oneOf(loc.months("long", false), 1); - // dates - case "d": - return intUnit(oneOrTwo); - case "dd": - return intUnit(two); - // ordinals - case "o": - return intUnit(oneToThree); - case "ooo": - return intUnit(three); - // time - case "HH": - return intUnit(two); - case "H": - return intUnit(oneOrTwo); - case "hh": - return intUnit(two); - case "h": - return intUnit(oneOrTwo); - case "mm": - return intUnit(two); - case "m": - return intUnit(oneOrTwo); - case "q": - return intUnit(oneOrTwo); - case "qq": - return intUnit(two); - case "s": - return intUnit(oneOrTwo); - case "ss": - return intUnit(two); - case "S": - return intUnit(oneToThree); - case "SSS": - return intUnit(three); - case "u": - return simple(oneToNine); - case "uu": - return simple(oneOrTwo); - case "uuu": - return intUnit(one); - // meridiem - case "a": - return oneOf(loc.meridiems(), 0); - // weekYear (k) - case "kkkk": - return intUnit(four); - case "kk": - return intUnit(twoToFour, untruncateYear); - // weekNumber (W) - case "W": - return intUnit(oneOrTwo); - case "WW": - return intUnit(two); - // weekdays - case "E": - case "c": - return intUnit(one); - case "EEE": - return oneOf(loc.weekdays("short", false), 1); - case "EEEE": - return oneOf(loc.weekdays("long", false), 1); - case "ccc": - return oneOf(loc.weekdays("short", true), 1); - case "cccc": - return oneOf(loc.weekdays("long", true), 1); - // offset/zone - case "Z": - case "ZZ": - return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2); - case "ZZZ": - return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2); - // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing - // because we don't have any way to figure out what they are - case "z": - return simple(/[a-z_+-/]{1,256}?/i); - // this special-case "token" represents a place where a macro-token expanded into a white-space literal - // in this case we accept any non-newline white-space - case " ": - return simple(/[^\S\n\r]/); - default: - return literal(t); - } - }; - - const unit = unitate(token) || { - invalidReason: MISSING_FTP, - }; - - unit.token = token; - - return unit; -} - -const partTypeStyleToTokenVal = { - year: { - "2-digit": "yy", - numeric: "yyyyy", - }, - month: { - numeric: "M", - "2-digit": "MM", - short: "MMM", - long: "MMMM", - }, - day: { - numeric: "d", - "2-digit": "dd", - }, - weekday: { - short: "EEE", - long: "EEEE", - }, - dayperiod: "a", - dayPeriod: "a", - hour12: { - numeric: "h", - "2-digit": "hh", - }, - hour24: { - numeric: "H", - "2-digit": "HH", - }, - minute: { - numeric: "m", - "2-digit": "mm", - }, - second: { - numeric: "s", - "2-digit": "ss", - }, - timeZoneName: { - long: "ZZZZZ", - short: "ZZZ", - }, -}; - -function tokenForPart(part, formatOpts, resolvedOpts) { - const { type, value } = part; - - if (type === "literal") { - const isSpace = /^\s+$/.test(value); - return { - literal: !isSpace, - val: isSpace ? " " : value, - }; - } - - const style = formatOpts[type]; - - // The user might have explicitly specified hour12 or hourCycle - // if so, respect their decision - // if not, refer back to the resolvedOpts, which are based on the locale - let actualType = type; - if (type === "hour") { - if (formatOpts.hour12 != null) { - actualType = formatOpts.hour12 ? "hour12" : "hour24"; - } else if (formatOpts.hourCycle != null) { - if (formatOpts.hourCycle === "h11" || formatOpts.hourCycle === "h12") { - actualType = "hour12"; - } else { - actualType = "hour24"; - } - } else { - // tokens only differentiate between 24 hours or not, - // so we do not need to check hourCycle here, which is less supported anyways - actualType = resolvedOpts.hour12 ? "hour12" : "hour24"; - } - } - let val = partTypeStyleToTokenVal[actualType]; - if (typeof val === "object") { - val = val[style]; - } - - if (val) { - return { - literal: false, - val, - }; - } - - return undefined; -} - -function buildRegex(units) { - const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, ""); - return [`^${re}$`, units]; -} - -function match(input, regex, handlers) { - const matches = input.match(regex); - - if (matches) { - const all = {}; - let matchIndex = 1; - for (const i in handlers) { - if (util_hasOwnProperty(handlers, i)) { - const h = handlers[i], - groups = h.groups ? h.groups + 1 : 1; - if (!h.literal && h.token) { - all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups)); - } - matchIndex += groups; - } - } - return [matches, all]; - } else { - return [matches, {}]; - } -} - -function dateTimeFromMatches(matches) { - const toField = (token) => { - switch (token) { - case "S": - return "millisecond"; - case "s": - return "second"; - case "m": - return "minute"; - case "h": - case "H": - return "hour"; - case "d": - return "day"; - case "o": - return "ordinal"; - case "L": - case "M": - return "month"; - case "y": - return "year"; - case "E": - case "c": - return "weekday"; - case "W": - return "weekNumber"; - case "k": - return "weekYear"; - case "q": - return "quarter"; - default: - return null; - } - }; - - let zone = null; - let specificOffset; - if (!isUndefined(matches.z)) { - zone = IANAZone.create(matches.z); - } - - if (!isUndefined(matches.Z)) { - if (!zone) { - zone = new FixedOffsetZone(matches.Z); - } - specificOffset = matches.Z; - } - - if (!isUndefined(matches.q)) { - matches.M = (matches.q - 1) * 3 + 1; - } - - if (!isUndefined(matches.h)) { - if (matches.h < 12 && matches.a === 1) { - matches.h += 12; - } else if (matches.h === 12 && matches.a === 0) { - matches.h = 0; - } - } - - if (matches.G === 0 && matches.y) { - matches.y = -matches.y; - } - - if (!isUndefined(matches.u)) { - matches.S = parseMillis(matches.u); - } - - const vals = Object.keys(matches).reduce((r, k) => { - const f = toField(k); - if (f) { - r[f] = matches[k]; - } - - return r; - }, {}); - - return [vals, zone, specificOffset]; -} - -let dummyDateTimeCache = null; - -function getDummyDateTime() { - if (!dummyDateTimeCache) { - dummyDateTimeCache = DateTime.fromMillis(1555555555555); - } - - return dummyDateTimeCache; -} - -function maybeExpandMacroToken(token, locale) { - if (token.literal) { - return token; - } - - const formatOpts = Formatter.macroTokenToFormatOpts(token.val); - const tokens = formatOptsToTokens(formatOpts, locale); - - if (tokens == null || tokens.includes(undefined)) { - return token; - } - - return tokens; -} - -function expandMacroTokens(tokens, locale) { - return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale))); -} - -/** - * @private - */ - -function explainFromTokens(locale, input, format) { - const tokens = expandMacroTokens(Formatter.parseFormat(format), locale), - units = tokens.map((t) => unitForToken(t, locale)), - disqualifyingUnit = units.find((t) => t.invalidReason); - - if (disqualifyingUnit) { - return { input, tokens, invalidReason: disqualifyingUnit.invalidReason }; - } else { - const [regexString, handlers] = buildRegex(units), - regex = RegExp(regexString, "i"), - [rawMatches, matches] = match(input, regex, handlers), - [result, zone, specificOffset] = matches - ? dateTimeFromMatches(matches) - : [null, null, undefined]; - if (util_hasOwnProperty(matches, "a") && util_hasOwnProperty(matches, "H")) { - throw new ConflictingSpecificationError( - "Can't include meridiem when specifying 24-hour format" - ); - } - return { input, tokens, regex, rawMatches, matches, result, zone, specificOffset }; - } -} - -function parseFromTokens(locale, input, format) { - const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format); - return [result, zone, specificOffset, invalidReason]; -} - -function formatOptsToTokens(formatOpts, locale) { - if (!formatOpts) { - return null; - } - - const formatter = Formatter.create(locale, formatOpts); - const df = formatter.dtFormatter(getDummyDateTime()); - const parts = df.formatToParts(); - const resolvedOpts = df.resolvedOptions(); - return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts)); -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/datetime.js - - - - - - - - - - - - - - - - - -const datetime_INVALID = "Invalid DateTime"; -const MAX_DATE = 8.64e15; - -function unsupportedZone(zone) { - return new Invalid("unsupported zone", `the zone "${zone.name}" is not supported`); -} - -// we cache week data on the DT object and this intermediates the cache -/** - * @param {DateTime} dt - */ -function possiblyCachedWeekData(dt) { - if (dt.weekData === null) { - dt.weekData = gregorianToWeek(dt.c); - } - return dt.weekData; -} - -/** - * @param {DateTime} dt - */ -function possiblyCachedLocalWeekData(dt) { - if (dt.localWeekData === null) { - dt.localWeekData = gregorianToWeek( - dt.c, - dt.loc.getMinDaysInFirstWeek(), - dt.loc.getStartOfWeek() - ); - } - return dt.localWeekData; -} - -// clone really means, "make a new object with these modifications". all "setters" really use this -// to create a new object while only changing some of the properties -function datetime_clone(inst, alts) { - const current = { - ts: inst.ts, - zone: inst.zone, - c: inst.c, - o: inst.o, - loc: inst.loc, - invalid: inst.invalid, - }; - return new DateTime({ ...current, ...alts, old: current }); -} - -// find the right offset a given local time. The o input is our guess, which determines which -// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST) -function fixOffset(localTS, o, tz) { - // Our UTC time is just a guess because our offset is just a guess - let utcGuess = localTS - o * 60 * 1000; - - // Test whether the zone matches the offset for this ts - const o2 = tz.offset(utcGuess); - - // If so, offset didn't change and we're done - if (o === o2) { - return [utcGuess, o]; - } - - // If not, change the ts by the difference in the offset - utcGuess -= (o2 - o) * 60 * 1000; - - // If that gives us the local time we want, we're done - const o3 = tz.offset(utcGuess); - if (o2 === o3) { - return [utcGuess, o2]; - } - - // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time - return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)]; -} - -// convert an epoch timestamp into a calendar object with the given offset -function tsToObj(ts, offset) { - ts += offset * 60 * 1000; - - const d = new Date(ts); - - return { - year: d.getUTCFullYear(), - month: d.getUTCMonth() + 1, - day: d.getUTCDate(), - hour: d.getUTCHours(), - minute: d.getUTCMinutes(), - second: d.getUTCSeconds(), - millisecond: d.getUTCMilliseconds(), - }; -} - -// convert a calendar object to a epoch timestamp -function objToTS(obj, offset, zone) { - return fixOffset(objToLocalTS(obj), offset, zone); -} - -// create a new DT instance by adding a duration, adjusting for DSTs -function adjustTime(inst, dur) { - const oPre = inst.o, - year = inst.c.year + Math.trunc(dur.years), - month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, - c = { - ...inst.c, - year, - month, - day: - Math.min(inst.c.day, daysInMonth(year, month)) + - Math.trunc(dur.days) + - Math.trunc(dur.weeks) * 7, - }, - millisToAdd = Duration.fromObject({ - years: dur.years - Math.trunc(dur.years), - quarters: dur.quarters - Math.trunc(dur.quarters), - months: dur.months - Math.trunc(dur.months), - weeks: dur.weeks - Math.trunc(dur.weeks), - days: dur.days - Math.trunc(dur.days), - hours: dur.hours, - minutes: dur.minutes, - seconds: dur.seconds, - milliseconds: dur.milliseconds, - }).as("milliseconds"), - localTS = objToLocalTS(c); - - let [ts, o] = fixOffset(localTS, oPre, inst.zone); - - if (millisToAdd !== 0) { - ts += millisToAdd; - // that could have changed the offset by going over a DST, but we want to keep the ts the same - o = inst.zone.offset(ts); - } - - return { ts, o }; -} - -// helper useful in turning the results of parsing into real dates -// by handling the zone options -function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) { - const { setZone, zone } = opts; - if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) { - const interpretationZone = parsedZone || zone, - inst = DateTime.fromObject(parsed, { - ...opts, - zone: interpretationZone, - specificOffset, - }); - return setZone ? inst : inst.setZone(zone); - } else { - return DateTime.invalid( - new Invalid("unparsable", `the input "${text}" can't be parsed as ${format}`) - ); - } -} - -// if you want to output a technical format (e.g. RFC 2822), this helper -// helps handle the details -function toTechFormat(dt, format, allowZ = true) { - return dt.isValid - ? Formatter.create(Locale.create("en-US"), { - allowZ, - forceSimple: true, - }).formatDateTimeFromString(dt, format) - : null; -} - -function toISODate(o, extended) { - const longFormat = o.c.year > 9999 || o.c.year < 0; - let c = ""; - if (longFormat && o.c.year >= 0) c += "+"; - c += padStart(o.c.year, longFormat ? 6 : 4); - - if (extended) { - c += "-"; - c += padStart(o.c.month); - c += "-"; - c += padStart(o.c.day); - } else { - c += padStart(o.c.month); - c += padStart(o.c.day); - } - return c; -} - -function toISOTime( - o, - extended, - suppressSeconds, - suppressMilliseconds, - includeOffset, - extendedZone -) { - let c = padStart(o.c.hour); - if (extended) { - c += ":"; - c += padStart(o.c.minute); - if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) { - c += ":"; - } - } else { - c += padStart(o.c.minute); - } - - if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) { - c += padStart(o.c.second); - - if (o.c.millisecond !== 0 || !suppressMilliseconds) { - c += "."; - c += padStart(o.c.millisecond, 3); - } - } - - if (includeOffset) { - if (o.isOffsetFixed && o.offset === 0 && !extendedZone) { - c += "Z"; - } else if (o.o < 0) { - c += "-"; - c += padStart(Math.trunc(-o.o / 60)); - c += ":"; - c += padStart(Math.trunc(-o.o % 60)); - } else { - c += "+"; - c += padStart(Math.trunc(o.o / 60)); - c += ":"; - c += padStart(Math.trunc(o.o % 60)); - } - } - - if (extendedZone) { - c += "[" + o.zone.ianaName + "]"; - } - return c; -} - -// defaults for unspecified units in the supported calendars -const defaultUnitValues = { - month: 1, - day: 1, - hour: 0, - minute: 0, - second: 0, - millisecond: 0, - }, - defaultWeekUnitValues = { - weekNumber: 1, - weekday: 1, - hour: 0, - minute: 0, - second: 0, - millisecond: 0, - }, - defaultOrdinalUnitValues = { - ordinal: 1, - hour: 0, - minute: 0, - second: 0, - millisecond: 0, - }; - -// Units in the supported calendars, sorted by bigness -const datetime_orderedUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"], - orderedWeekUnits = [ - "weekYear", - "weekNumber", - "weekday", - "hour", - "minute", - "second", - "millisecond", - ], - orderedOrdinalUnits = ["year", "ordinal", "hour", "minute", "second", "millisecond"]; - -// standardize case and plurality in units -function normalizeUnit(unit) { - const normalized = { - year: "year", - years: "year", - month: "month", - months: "month", - day: "day", - days: "day", - hour: "hour", - hours: "hour", - minute: "minute", - minutes: "minute", - quarter: "quarter", - quarters: "quarter", - second: "second", - seconds: "second", - millisecond: "millisecond", - milliseconds: "millisecond", - weekday: "weekday", - weekdays: "weekday", - weeknumber: "weekNumber", - weeksnumber: "weekNumber", - weeknumbers: "weekNumber", - weekyear: "weekYear", - weekyears: "weekYear", - ordinal: "ordinal", - }[unit.toLowerCase()]; - - if (!normalized) throw new InvalidUnitError(unit); - - return normalized; -} - -function normalizeUnitWithLocalWeeks(unit) { - switch (unit.toLowerCase()) { - case "localweekday": - case "localweekdays": - return "localWeekday"; - case "localweeknumber": - case "localweeknumbers": - return "localWeekNumber"; - case "localweekyear": - case "localweekyears": - return "localWeekYear"; - default: - return normalizeUnit(unit); - } -} - -// this is a dumbed down version of fromObject() that runs about 60% faster -// but doesn't do any validation, makes a bunch of assumptions about what units -// are present, and so on. -function quickDT(obj, opts) { - const zone = normalizeZone(opts.zone, Settings.defaultZone), - loc = Locale.fromObject(opts), - tsNow = Settings.now(); - - let ts, o; - - // assume we have the higher-order units - if (!isUndefined(obj.year)) { - for (const u of datetime_orderedUnits) { - if (isUndefined(obj[u])) { - obj[u] = defaultUnitValues[u]; - } - } - - const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj); - if (invalid) { - return DateTime.invalid(invalid); - } - - const offsetProvis = zone.offset(tsNow); - [ts, o] = objToTS(obj, offsetProvis, zone); - } else { - ts = tsNow; - } - - return new DateTime({ ts, zone, loc, o }); -} - -function diffRelative(start, end, opts) { - const round = isUndefined(opts.round) ? true : opts.round, - format = (c, unit) => { - c = roundTo(c, round || opts.calendary ? 0 : 2, true); - const formatter = end.loc.clone(opts).relFormatter(opts); - return formatter.format(c, unit); - }, - differ = (unit) => { - if (opts.calendary) { - if (!end.hasSame(start, unit)) { - return end.startOf(unit).diff(start.startOf(unit), unit).get(unit); - } else return 0; - } else { - return end.diff(start, unit).get(unit); - } - }; - - if (opts.unit) { - return format(differ(opts.unit), opts.unit); - } - - for (const unit of opts.units) { - const count = differ(unit); - if (Math.abs(count) >= 1) { - return format(count, unit); - } - } - return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]); -} - -function lastOpts(argList) { - let opts = {}, - args; - if (argList.length > 0 && typeof argList[argList.length - 1] === "object") { - opts = argList[argList.length - 1]; - args = Array.from(argList).slice(0, argList.length - 1); - } else { - args = Array.from(argList); - } - return [opts, args]; -} - -/** - * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them. - * - * A DateTime comprises of: - * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch. - * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone). - * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`. - * - * Here is a brief overview of the most commonly used functionality it provides: - * - * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}. - * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month}, - * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors. - * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors. - * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors. - * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}. - * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}. - * - * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation. - */ -class DateTime { - /** - * @access private - */ - constructor(config) { - const zone = config.zone || Settings.defaultZone; - - let invalid = - config.invalid || - (Number.isNaN(config.ts) ? new Invalid("invalid input") : null) || - (!zone.isValid ? unsupportedZone(zone) : null); - /** - * @access private - */ - this.ts = isUndefined(config.ts) ? Settings.now() : config.ts; - - let c = null, - o = null; - if (!invalid) { - const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone); - - if (unchanged) { - [c, o] = [config.old.c, config.old.o]; - } else { - const ot = zone.offset(this.ts); - c = tsToObj(this.ts, ot); - invalid = Number.isNaN(c.year) ? new Invalid("invalid input") : null; - c = invalid ? null : c; - o = invalid ? null : ot; - } - } - - /** - * @access private - */ - this._zone = zone; - /** - * @access private - */ - this.loc = config.loc || Locale.create(); - /** - * @access private - */ - this.invalid = invalid; - /** - * @access private - */ - this.weekData = null; - /** - * @access private - */ - this.localWeekData = null; - /** - * @access private - */ - this.c = c; - /** - * @access private - */ - this.o = o; - /** - * @access private - */ - this.isLuxonDateTime = true; - } - - // CONSTRUCT - - /** - * Create a DateTime for the current instant, in the system's time zone. - * - * Use Settings to override these default values if needed. - * @example DateTime.now().toISO() //~> now in the ISO format - * @return {DateTime} - */ - static now() { - return new DateTime({}); - } - - /** - * Create a local DateTime - * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used - * @param {number} [month=1] - The month, 1-indexed - * @param {number} [day=1] - The day of the month, 1-indexed - * @param {number} [hour=0] - The hour of the day, in 24-hour time - * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 - * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 - * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 - * @example DateTime.local() //~> now - * @example DateTime.local({ zone: "America/New_York" }) //~> now, in US east coast time - * @example DateTime.local(2017) //~> 2017-01-01T00:00:00 - * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00 - * @example DateTime.local(2017, 3, 12, { locale: "fr" }) //~> 2017-03-12T00:00:00, with a French locale - * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00 - * @example DateTime.local(2017, 3, 12, 5, { zone: "utc" }) //~> 2017-03-12T05:00:00, in UTC - * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00 - * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10 - * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765 - * @return {DateTime} - */ - static local() { - const [opts, args] = lastOpts(arguments), - [year, month, day, hour, minute, second, millisecond] = args; - return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); - } - - /** - * Create a DateTime in UTC - * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used - * @param {number} [month=1] - The month, 1-indexed - * @param {number} [day=1] - The day of the month - * @param {number} [hour=0] - The hour of the day, in 24-hour time - * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 - * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 - * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 - * @param {Object} options - configuration options for the DateTime - * @param {string} [options.locale] - a locale to set on the resulting DateTime instance - * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance - * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance - * @example DateTime.utc() //~> now - * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z - * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z - * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z - * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z - * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z - * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: "fr" }) //~> 2017-03-12T05:45:00Z with a French locale - * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z - * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: "fr" }) //~> 2017-03-12T05:45:10.765Z with a French locale - * @return {DateTime} - */ - static utc() { - const [opts, args] = lastOpts(arguments), - [year, month, day, hour, minute, second, millisecond] = args; - - opts.zone = FixedOffsetZone.utcInstance; - return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); - } - - /** - * Create a DateTime from a JavaScript Date object. Uses the default zone. - * @param {Date} date - a JavaScript Date object - * @param {Object} options - configuration options for the DateTime - * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into - * @return {DateTime} - */ - static fromJSDate(date, options = {}) { - const ts = isDate(date) ? date.valueOf() : NaN; - if (Number.isNaN(ts)) { - return DateTime.invalid("invalid input"); - } - - const zoneToUse = normalizeZone(options.zone, Settings.defaultZone); - if (!zoneToUse.isValid) { - return DateTime.invalid(unsupportedZone(zoneToUse)); - } - - return new DateTime({ - ts: ts, - zone: zoneToUse, - loc: Locale.fromObject(options), - }); - } - - /** - * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone. - * @param {number} milliseconds - a number of milliseconds since 1970 UTC - * @param {Object} options - configuration options for the DateTime - * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into - * @param {string} [options.locale] - a locale to set on the resulting DateTime instance - * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance - * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance - * @return {DateTime} - */ - static fromMillis(milliseconds, options = {}) { - if (!isNumber(milliseconds)) { - throw new InvalidArgumentError( - `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}` - ); - } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) { - // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start - return DateTime.invalid("Timestamp out of range"); - } else { - return new DateTime({ - ts: milliseconds, - zone: normalizeZone(options.zone, Settings.defaultZone), - loc: Locale.fromObject(options), - }); - } - } - - /** - * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone. - * @param {number} seconds - a number of seconds since 1970 UTC - * @param {Object} options - configuration options for the DateTime - * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into - * @param {string} [options.locale] - a locale to set on the resulting DateTime instance - * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance - * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance - * @return {DateTime} - */ - static fromSeconds(seconds, options = {}) { - if (!isNumber(seconds)) { - throw new InvalidArgumentError("fromSeconds requires a numerical input"); - } else { - return new DateTime({ - ts: seconds * 1000, - zone: normalizeZone(options.zone, Settings.defaultZone), - loc: Locale.fromObject(options), - }); - } - } - - /** - * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults. - * @param {Object} obj - the object to create the DateTime from - * @param {number} obj.year - a year, such as 1987 - * @param {number} obj.month - a month, 1-12 - * @param {number} obj.day - a day of the month, 1-31, depending on the month - * @param {number} obj.ordinal - day of the year, 1-365 or 366 - * @param {number} obj.weekYear - an ISO week year - * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year - * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday - * @param {number} obj.localWeekYear - a week year, according to the locale - * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale - * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale - * @param {number} obj.hour - hour of the day, 0-23 - * @param {number} obj.minute - minute of the hour, 0-59 - * @param {number} obj.second - second of the minute, 0-59 - * @param {number} obj.millisecond - millisecond of the second, 0-999 - * @param {Object} opts - options for creating this DateTime - * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone() - * @param {string} [opts.locale='system\'s locale'] - a locale to set on the resulting DateTime instance - * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance - * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance - * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25' - * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01' - * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06 - * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }), - * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' }) - * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' }) - * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13' - * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: "en-US" }).toISODate() //=> '2021-12-26' - * @return {DateTime} - */ - static fromObject(obj, opts = {}) { - obj = obj || {}; - const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone); - if (!zoneToUse.isValid) { - return DateTime.invalid(unsupportedZone(zoneToUse)); - } - - const loc = Locale.fromObject(opts); - const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks); - const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc); - - const tsNow = Settings.now(), - offsetProvis = !isUndefined(opts.specificOffset) - ? opts.specificOffset - : zoneToUse.offset(tsNow), - containsOrdinal = !isUndefined(normalized.ordinal), - containsGregorYear = !isUndefined(normalized.year), - containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), - containsGregor = containsGregorYear || containsGregorMD, - definiteWeekDef = normalized.weekYear || normalized.weekNumber; - - // cases: - // just a weekday -> this week's instance of that weekday, no worries - // (gregorian data or ordinal) + (weekYear or weekNumber) -> error - // (gregorian month or day) + ordinal -> error - // otherwise just use weeks or ordinals or gregorian, depending on what's specified - - if ((containsGregor || containsOrdinal) && definiteWeekDef) { - throw new ConflictingSpecificationError( - "Can't mix weekYear/weekNumber units with year/month/day or ordinals" - ); - } - - if (containsGregorMD && containsOrdinal) { - throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); - } - - const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor); - - // configure ourselves to deal with gregorian dates or week stuff - let units, - defaultValues, - objNow = tsToObj(tsNow, offsetProvis); - if (useWeekData) { - units = orderedWeekUnits; - defaultValues = defaultWeekUnitValues; - objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek); - } else if (containsOrdinal) { - units = orderedOrdinalUnits; - defaultValues = defaultOrdinalUnitValues; - objNow = gregorianToOrdinal(objNow); - } else { - units = datetime_orderedUnits; - defaultValues = defaultUnitValues; - } - - // set default values for missing stuff - let foundFirst = false; - for (const u of units) { - const v = normalized[u]; - if (!isUndefined(v)) { - foundFirst = true; - } else if (foundFirst) { - normalized[u] = defaultValues[u]; - } else { - normalized[u] = objNow[u]; - } - } - - // make sure the values we have are in range - const higherOrderInvalid = useWeekData - ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek) - : containsOrdinal - ? hasInvalidOrdinalData(normalized) - : hasInvalidGregorianData(normalized), - invalid = higherOrderInvalid || hasInvalidTimeData(normalized); - - if (invalid) { - return DateTime.invalid(invalid); - } - - // compute the actual time - const gregorian = useWeekData - ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek) - : containsOrdinal - ? ordinalToGregorian(normalized) - : normalized, - [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse), - inst = new DateTime({ - ts: tsFinal, - zone: zoneToUse, - o: offsetFinal, - loc, - }); - - // gregorian data + weekday serves only to validate - if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) { - return DateTime.invalid( - "mismatched weekday", - `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}` - ); - } - - return inst; - } - - /** - * Create a DateTime from an ISO 8601 string - * @param {string} text - the ISO string - * @param {Object} opts - options to affect the creation - * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone - * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one - * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance - * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance - * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance - * @example DateTime.fromISO('2016-05-25T09:08:34.123') - * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00') - * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true}) - * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'}) - * @example DateTime.fromISO('2016-W05-4') - * @return {DateTime} - */ - static fromISO(text, opts = {}) { - const [vals, parsedZone] = parseISODate(text); - return parseDataToDateTime(vals, parsedZone, opts, "ISO 8601", text); - } - - /** - * Create a DateTime from an RFC 2822 string - * @param {string} text - the RFC 2822 string - * @param {Object} opts - options to affect the creation - * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in. - * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one - * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance - * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance - * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance - * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT') - * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600') - * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z') - * @return {DateTime} - */ - static fromRFC2822(text, opts = {}) { - const [vals, parsedZone] = parseRFC2822Date(text); - return parseDataToDateTime(vals, parsedZone, opts, "RFC 2822", text); - } - - /** - * Create a DateTime from an HTTP header date - * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 - * @param {string} text - the HTTP header date - * @param {Object} opts - options to affect the creation - * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in. - * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods. - * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance - * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance - * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance - * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT') - * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT') - * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994') - * @return {DateTime} - */ - static fromHTTP(text, opts = {}) { - const [vals, parsedZone] = parseHTTPDate(text); - return parseDataToDateTime(vals, parsedZone, opts, "HTTP", opts); - } - - /** - * Create a DateTime from an input string and format string. - * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens). - * @param {string} text - the string to parse - * @param {string} fmt - the format the string is expected to be in (see the link below for the formats) - * @param {Object} opts - options to affect the creation - * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone - * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one - * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale - * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system - * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance - * @return {DateTime} - */ - static fromFormat(text, fmt, opts = {}) { - if (isUndefined(text) || isUndefined(fmt)) { - throw new InvalidArgumentError("fromFormat requires an input string and a format"); - } - - const { locale = null, numberingSystem = null } = opts, - localeToUse = Locale.fromOpts({ - locale, - numberingSystem, - defaultToEN: true, - }), - [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt); - if (invalid) { - return DateTime.invalid(invalid); - } else { - return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset); - } - } - - /** - * @deprecated use fromFormat instead - */ - static fromString(text, fmt, opts = {}) { - return DateTime.fromFormat(text, fmt, opts); - } - - /** - * Create a DateTime from a SQL date, time, or datetime - * Defaults to en-US if no locale has been specified, regardless of the system's locale - * @param {string} text - the string to parse - * @param {Object} opts - options to affect the creation - * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone - * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one - * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale - * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system - * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance - * @example DateTime.fromSQL('2017-05-15') - * @example DateTime.fromSQL('2017-05-15 09:12:34') - * @example DateTime.fromSQL('2017-05-15 09:12:34.342') - * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00') - * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles') - * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true }) - * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' }) - * @example DateTime.fromSQL('09:12:34.342') - * @return {DateTime} - */ - static fromSQL(text, opts = {}) { - const [vals, parsedZone] = parseSQL(text); - return parseDataToDateTime(vals, parsedZone, opts, "SQL", text); - } - - /** - * Create an invalid DateTime. - * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent. - * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information - * @return {DateTime} - */ - static invalid(reason, explanation = null) { - if (!reason) { - throw new InvalidArgumentError("need to specify a reason the DateTime is invalid"); - } - - const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation); - - if (Settings.throwOnInvalid) { - throw new InvalidDateTimeError(invalid); - } else { - return new DateTime({ invalid }); - } - } - - /** - * Check if an object is an instance of DateTime. Works across context boundaries - * @param {object} o - * @return {boolean} - */ - static isDateTime(o) { - return (o && o.isLuxonDateTime) || false; - } - - /** - * Produce the format string for a set of options - * @param formatOpts - * @param localeOpts - * @returns {string} - */ - static parseFormatForOpts(formatOpts, localeOpts = {}) { - const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts)); - return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(""); - } - - /** - * Produce the the fully expanded format token for the locale - * Does NOT quote characters, so quoted tokens will not round trip correctly - * @param fmt - * @param localeOpts - * @returns {string} - */ - static expandFormat(fmt, localeOpts = {}) { - const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts)); - return expanded.map((t) => t.val).join(""); - } - - // INFO - - /** - * Get the value of unit. - * @param {string} unit - a unit such as 'minute' or 'day' - * @example DateTime.local(2017, 7, 4).get('month'); //=> 7 - * @example DateTime.local(2017, 7, 4).get('day'); //=> 4 - * @return {number} - */ - get(unit) { - return this[unit]; - } - - /** - * Returns whether the DateTime is valid. Invalid DateTimes occur when: - * * The DateTime was created from invalid calendar information, such as the 13th month or February 30 - * * The DateTime was created by an operation on another invalid date - * @type {boolean} - */ - get isValid() { - return this.invalid === null; - } - - /** - * Returns an error code if this DateTime is invalid, or null if the DateTime is valid - * @type {string} - */ - get invalidReason() { - return this.invalid ? this.invalid.reason : null; - } - - /** - * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid - * @type {string} - */ - get invalidExplanation() { - return this.invalid ? this.invalid.explanation : null; - } - - /** - * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime - * - * @type {string} - */ - get locale() { - return this.isValid ? this.loc.locale : null; - } - - /** - * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime - * - * @type {string} - */ - get numberingSystem() { - return this.isValid ? this.loc.numberingSystem : null; - } - - /** - * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime - * - * @type {string} - */ - get outputCalendar() { - return this.isValid ? this.loc.outputCalendar : null; - } - - /** - * Get the time zone associated with this DateTime. - * @type {Zone} - */ - get zone() { - return this._zone; - } - - /** - * Get the name of the time zone. - * @type {string} - */ - get zoneName() { - return this.isValid ? this.zone.name : null; - } - - /** - * Get the year - * @example DateTime.local(2017, 5, 25).year //=> 2017 - * @type {number} - */ - get year() { - return this.isValid ? this.c.year : NaN; - } - - /** - * Get the quarter - * @example DateTime.local(2017, 5, 25).quarter //=> 2 - * @type {number} - */ - get quarter() { - return this.isValid ? Math.ceil(this.c.month / 3) : NaN; - } - - /** - * Get the month (1-12). - * @example DateTime.local(2017, 5, 25).month //=> 5 - * @type {number} - */ - get month() { - return this.isValid ? this.c.month : NaN; - } - - /** - * Get the day of the month (1-30ish). - * @example DateTime.local(2017, 5, 25).day //=> 25 - * @type {number} - */ - get day() { - return this.isValid ? this.c.day : NaN; - } - - /** - * Get the hour of the day (0-23). - * @example DateTime.local(2017, 5, 25, 9).hour //=> 9 - * @type {number} - */ - get hour() { - return this.isValid ? this.c.hour : NaN; - } - - /** - * Get the minute of the hour (0-59). - * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30 - * @type {number} - */ - get minute() { - return this.isValid ? this.c.minute : NaN; - } - - /** - * Get the second of the minute (0-59). - * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52 - * @type {number} - */ - get second() { - return this.isValid ? this.c.second : NaN; - } - - /** - * Get the millisecond of the second (0-999). - * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654 - * @type {number} - */ - get millisecond() { - return this.isValid ? this.c.millisecond : NaN; - } - - /** - * Get the week year - * @see https://en.wikipedia.org/wiki/ISO_week_date - * @example DateTime.local(2014, 12, 31).weekYear //=> 2015 - * @type {number} - */ - get weekYear() { - return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN; - } - - /** - * Get the week number of the week year (1-52ish). - * @see https://en.wikipedia.org/wiki/ISO_week_date - * @example DateTime.local(2017, 5, 25).weekNumber //=> 21 - * @type {number} - */ - get weekNumber() { - return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN; - } - - /** - * Get the day of the week. - * 1 is Monday and 7 is Sunday - * @see https://en.wikipedia.org/wiki/ISO_week_date - * @example DateTime.local(2014, 11, 31).weekday //=> 4 - * @type {number} - */ - get weekday() { - return this.isValid ? possiblyCachedWeekData(this).weekday : NaN; - } - - /** - * Returns true if this date is on a weekend according to the locale, false otherwise - * @returns {boolean} - */ - get isWeekend() { - return this.isValid && this.loc.getWeekendDays().includes(this.weekday); - } - - /** - * Get the day of the week according to the locale. - * 1 is the first day of the week and 7 is the last day of the week. - * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1, - * @returns {number} - */ - get localWeekday() { - return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN; - } - - /** - * Get the week number of the week year according to the locale. Different locales assign week numbers differently, - * because the week can start on different days of the week (see localWeekday) and because a different number of days - * is required for a week to count as the first week of a year. - * @returns {number} - */ - get localWeekNumber() { - return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN; - } - - /** - * Get the week year according to the locale. Different locales assign week numbers (and therefor week years) - * differently, see localWeekNumber. - * @returns {number} - */ - get localWeekYear() { - return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN; - } - - /** - * Get the ordinal (meaning the day of the year) - * @example DateTime.local(2017, 5, 25).ordinal //=> 145 - * @type {number|DateTime} - */ - get ordinal() { - return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN; - } - - /** - * Get the human readable short month name, such as 'Oct'. - * Defaults to the system's locale if no locale has been specified - * @example DateTime.local(2017, 10, 30).monthShort //=> Oct - * @type {string} - */ - get monthShort() { - return this.isValid ? Info.months("short", { locObj: this.loc })[this.month - 1] : null; - } - - /** - * Get the human readable long month name, such as 'October'. - * Defaults to the system's locale if no locale has been specified - * @example DateTime.local(2017, 10, 30).monthLong //=> October - * @type {string} - */ - get monthLong() { - return this.isValid ? Info.months("long", { locObj: this.loc })[this.month - 1] : null; - } - - /** - * Get the human readable short weekday, such as 'Mon'. - * Defaults to the system's locale if no locale has been specified - * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon - * @type {string} - */ - get weekdayShort() { - return this.isValid ? Info.weekdays("short", { locObj: this.loc })[this.weekday - 1] : null; - } - - /** - * Get the human readable long weekday, such as 'Monday'. - * Defaults to the system's locale if no locale has been specified - * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday - * @type {string} - */ - get weekdayLong() { - return this.isValid ? Info.weekdays("long", { locObj: this.loc })[this.weekday - 1] : null; - } - - /** - * Get the UTC offset of this DateTime in minutes - * @example DateTime.now().offset //=> -240 - * @example DateTime.utc().offset //=> 0 - * @type {number} - */ - get offset() { - return this.isValid ? +this.o : NaN; - } - - /** - * Get the short human name for the zone's current offset, for example "EST" or "EDT". - * Defaults to the system's locale if no locale has been specified - * @type {string} - */ - get offsetNameShort() { - if (this.isValid) { - return this.zone.offsetName(this.ts, { - format: "short", - locale: this.locale, - }); - } else { - return null; - } - } - - /** - * Get the long human name for the zone's current offset, for example "Eastern Standard Time" or "Eastern Daylight Time". - * Defaults to the system's locale if no locale has been specified - * @type {string} - */ - get offsetNameLong() { - if (this.isValid) { - return this.zone.offsetName(this.ts, { - format: "long", - locale: this.locale, - }); - } else { - return null; - } - } - - /** - * Get whether this zone's offset ever changes, as in a DST. - * @type {boolean} - */ - get isOffsetFixed() { - return this.isValid ? this.zone.isUniversal : null; - } - - /** - * Get whether the DateTime is in a DST. - * @type {boolean} - */ - get isInDST() { - if (this.isOffsetFixed) { - return false; - } else { - return ( - this.offset > this.set({ month: 1, day: 1 }).offset || - this.offset > this.set({ month: 5 }).offset - ); - } - } - - /** - * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC - * in this DateTime's zone. During DST changes local time can be ambiguous, for example - * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`. - * This method will return both possible DateTimes if this DateTime's local time is ambiguous. - * @returns {DateTime[]} - */ - getPossibleOffsets() { - if (!this.isValid || this.isOffsetFixed) { - return [this]; - } - const dayMs = 86400000; - const minuteMs = 60000; - const localTS = objToLocalTS(this.c); - const oEarlier = this.zone.offset(localTS - dayMs); - const oLater = this.zone.offset(localTS + dayMs); - - const o1 = this.zone.offset(localTS - oEarlier * minuteMs); - const o2 = this.zone.offset(localTS - oLater * minuteMs); - if (o1 === o2) { - return [this]; - } - const ts1 = localTS - o1 * minuteMs; - const ts2 = localTS - o2 * minuteMs; - const c1 = tsToObj(ts1, o1); - const c2 = tsToObj(ts2, o2); - if ( - c1.hour === c2.hour && - c1.minute === c2.minute && - c1.second === c2.second && - c1.millisecond === c2.millisecond - ) { - return [datetime_clone(this, { ts: ts1 }), datetime_clone(this, { ts: ts2 })]; - } - return [this]; - } - - /** - * Returns true if this DateTime is in a leap year, false otherwise - * @example DateTime.local(2016).isInLeapYear //=> true - * @example DateTime.local(2013).isInLeapYear //=> false - * @type {boolean} - */ - get isInLeapYear() { - return isLeapYear(this.year); - } - - /** - * Returns the number of days in this DateTime's month - * @example DateTime.local(2016, 2).daysInMonth //=> 29 - * @example DateTime.local(2016, 3).daysInMonth //=> 31 - * @type {number} - */ - get daysInMonth() { - return daysInMonth(this.year, this.month); - } - - /** - * Returns the number of days in this DateTime's year - * @example DateTime.local(2016).daysInYear //=> 366 - * @example DateTime.local(2013).daysInYear //=> 365 - * @type {number} - */ - get daysInYear() { - return this.isValid ? daysInYear(this.year) : NaN; - } - - /** - * Returns the number of weeks in this DateTime's year - * @see https://en.wikipedia.org/wiki/ISO_week_date - * @example DateTime.local(2004).weeksInWeekYear //=> 53 - * @example DateTime.local(2013).weeksInWeekYear //=> 52 - * @type {number} - */ - get weeksInWeekYear() { - return this.isValid ? weeksInWeekYear(this.weekYear) : NaN; - } - - /** - * Returns the number of weeks in this DateTime's local week year - * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52 - * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53 - * @type {number} - */ - get weeksInLocalWeekYear() { - return this.isValid - ? weeksInWeekYear( - this.localWeekYear, - this.loc.getMinDaysInFirstWeek(), - this.loc.getStartOfWeek() - ) - : NaN; - } - - /** - * Returns the resolved Intl options for this DateTime. - * This is useful in understanding the behavior of formatting methods - * @param {Object} opts - the same options as toLocaleString - * @return {Object} - */ - resolvedLocaleOptions(opts = {}) { - const { locale, numberingSystem, calendar } = Formatter.create( - this.loc.clone(opts), - opts - ).resolvedOptions(this); - return { locale, numberingSystem, outputCalendar: calendar }; - } - - // TRANSFORM - - /** - * "Set" the DateTime's zone to UTC. Returns a newly-constructed DateTime. - * - * Equivalent to {@link DateTime#setZone}('utc') - * @param {number} [offset=0] - optionally, an offset from UTC in minutes - * @param {Object} [opts={}] - options to pass to `setZone()` - * @return {DateTime} - */ - toUTC(offset = 0, opts = {}) { - return this.setZone(FixedOffsetZone.instance(offset), opts); - } - - /** - * "Set" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime. - * - * Equivalent to `setZone('local')` - * @return {DateTime} - */ - toLocal() { - return this.setZone(Settings.defaultZone); - } - - /** - * "Set" the DateTime's zone to specified zone. Returns a newly-constructed DateTime. - * - * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones. - * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class. - * @param {Object} opts - options - * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this. - * @return {DateTime} - */ - setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) { - zone = normalizeZone(zone, Settings.defaultZone); - if (zone.equals(this.zone)) { - return this; - } else if (!zone.isValid) { - return DateTime.invalid(unsupportedZone(zone)); - } else { - let newTS = this.ts; - if (keepLocalTime || keepCalendarTime) { - const offsetGuess = zone.offset(this.ts); - const asObj = this.toObject(); - [newTS] = objToTS(asObj, offsetGuess, zone); - } - return datetime_clone(this, { ts: newTS, zone }); - } - } - - /** - * "Set" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime. - * @param {Object} properties - the properties to set - * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' }) - * @return {DateTime} - */ - reconfigure({ locale, numberingSystem, outputCalendar } = {}) { - const loc = this.loc.clone({ locale, numberingSystem, outputCalendar }); - return datetime_clone(this, { loc }); - } - - /** - * "Set" the locale. Returns a newly-constructed DateTime. - * Just a convenient alias for reconfigure({ locale }) - * @example DateTime.local(2017, 5, 25).setLocale('en-GB') - * @return {DateTime} - */ - setLocale(locale) { - return this.reconfigure({ locale }); - } - - /** - * "Set" the values of specified units. Returns a newly-constructed DateTime. - * You can only set units with this method; for "setting" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}. - * - * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`. - * They cannot be mixed with ISO-week units like `weekday`. - * @param {Object} values - a mapping of units to numbers - * @example dt.set({ year: 2017 }) - * @example dt.set({ hour: 8, minute: 30 }) - * @example dt.set({ weekday: 5 }) - * @example dt.set({ year: 2005, ordinal: 234 }) - * @return {DateTime} - */ - set(values) { - if (!this.isValid) return this; - - const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks); - const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc); - - const settingWeekStuff = - !isUndefined(normalized.weekYear) || - !isUndefined(normalized.weekNumber) || - !isUndefined(normalized.weekday), - containsOrdinal = !isUndefined(normalized.ordinal), - containsGregorYear = !isUndefined(normalized.year), - containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), - containsGregor = containsGregorYear || containsGregorMD, - definiteWeekDef = normalized.weekYear || normalized.weekNumber; - - if ((containsGregor || containsOrdinal) && definiteWeekDef) { - throw new ConflictingSpecificationError( - "Can't mix weekYear/weekNumber units with year/month/day or ordinals" - ); - } - - if (containsGregorMD && containsOrdinal) { - throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); - } - - let mixed; - if (settingWeekStuff) { - mixed = weekToGregorian( - { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized }, - minDaysInFirstWeek, - startOfWeek - ); - } else if (!isUndefined(normalized.ordinal)) { - mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized }); - } else { - mixed = { ...this.toObject(), ...normalized }; - - // if we didn't set the day but we ended up on an overflow date, - // use the last day of the right month - if (isUndefined(normalized.day)) { - mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day); - } - } - - const [ts, o] = objToTS(mixed, this.o, this.zone); - return datetime_clone(this, { ts, o }); - } - - /** - * Add a period of time to this DateTime and return the resulting DateTime - * - * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between. - * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() - * @example DateTime.now().plus(123) //~> in 123 milliseconds - * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes - * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow - * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday - * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min - * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min - * @return {DateTime} - */ - plus(duration) { - if (!this.isValid) return this; - const dur = Duration.fromDurationLike(duration); - return datetime_clone(this, adjustTime(this, dur)); - } - - /** - * Subtract a period of time to this DateTime and return the resulting DateTime - * See {@link DateTime#plus} - * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() - @return {DateTime} - */ - minus(duration) { - if (!this.isValid) return this; - const dur = Duration.fromDurationLike(duration).negate(); - return datetime_clone(this, adjustTime(this, dur)); - } - - /** - * "Set" this DateTime to the beginning of a unit of time. - * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. - * @param {Object} opts - options - * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week - * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01' - * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01' - * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays - * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00' - * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00' - * @return {DateTime} - */ - startOf(unit, { useLocaleWeeks = false } = {}) { - if (!this.isValid) return this; - - const o = {}, - normalizedUnit = Duration.normalizeUnit(unit); - switch (normalizedUnit) { - case "years": - o.month = 1; - // falls through - case "quarters": - case "months": - o.day = 1; - // falls through - case "weeks": - case "days": - o.hour = 0; - // falls through - case "hours": - o.minute = 0; - // falls through - case "minutes": - o.second = 0; - // falls through - case "seconds": - o.millisecond = 0; - break; - case "milliseconds": - break; - // no default, invalid units throw in normalizeUnit() - } - - if (normalizedUnit === "weeks") { - if (useLocaleWeeks) { - const startOfWeek = this.loc.getStartOfWeek(); - const { weekday } = this; - if (weekday < startOfWeek) { - o.weekNumber = this.weekNumber - 1; - } - o.weekday = startOfWeek; - } else { - o.weekday = 1; - } - } - - if (normalizedUnit === "quarters") { - const q = Math.ceil(this.month / 3); - o.month = (q - 1) * 3 + 1; - } - - return this.set(o); - } - - /** - * "Set" this DateTime to the end (meaning the last millisecond) of a unit of time - * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. - * @param {Object} opts - options - * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week - * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00' - * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00' - * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays - * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00' - * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00' - * @return {DateTime} - */ - endOf(unit, opts) { - return this.isValid - ? this.plus({ [unit]: 1 }) - .startOf(unit, opts) - .minus(1) - : this; - } - - // OUTPUT - - /** - * Returns a string representation of this DateTime formatted according to the specified format string. - * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens). - * Defaults to en-US if no locale has been specified, regardless of the system's locale. - * @param {string} fmt - the format string - * @param {Object} opts - opts to override the configuration options on this DateTime - * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22' - * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22' - * @example DateTime.now().toFormat('yyyy LLL dd', { locale: "fr" }) //=> '2017 avr. 22' - * @example DateTime.now().toFormat("HH 'hours and' mm 'minutes'") //=> '20 hours and 55 minutes' - * @return {string} - */ - toFormat(fmt, opts = {}) { - return this.isValid - ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) - : datetime_INVALID; - } - - /** - * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`. - * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation - * of the DateTime in the assigned locale. - * Defaults to the system's locale if no locale has been specified - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options - * @param {Object} opts - opts to override the configuration options on this DateTime - * @example DateTime.now().toLocaleString(); //=> 4/20/2017 - * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017' - * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017' - * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022' - * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM' - * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM' - * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20' - * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM' - * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32' - * @return {string} - */ - toLocaleString(formatOpts = DATE_SHORT, opts = {}) { - return this.isValid - ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this) - : datetime_INVALID; - } - - /** - * Returns an array of format "parts", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output. - * Defaults to the system's locale if no locale has been specified - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts - * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`. - * @example DateTime.now().toLocaleParts(); //=> [ - * //=> { type: 'day', value: '25' }, - * //=> { type: 'literal', value: '/' }, - * //=> { type: 'month', value: '05' }, - * //=> { type: 'literal', value: '/' }, - * //=> { type: 'year', value: '1982' } - * //=> ] - */ - toLocaleParts(opts = {}) { - return this.isValid - ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) - : []; - } - - /** - * Returns an ISO 8601-compliant string representation of this DateTime - * @param {Object} opts - options - * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 - * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 - * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' - * @param {boolean} [opts.extendedZone=false] - add the time zone format extension - * @param {string} [opts.format='extended'] - choose between the basic and extended format - * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z' - * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00' - * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335' - * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400' - * @return {string} - */ - toISO({ - format = "extended", - suppressSeconds = false, - suppressMilliseconds = false, - includeOffset = true, - extendedZone = false, - } = {}) { - if (!this.isValid) { - return null; - } - - const ext = format === "extended"; - - let c = toISODate(this, ext); - c += "T"; - c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); - return c; - } - - /** - * Returns an ISO 8601-compliant string representation of this DateTime's date component - * @param {Object} opts - options - * @param {string} [opts.format='extended'] - choose between the basic and extended format - * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25' - * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525' - * @return {string} - */ - toISODate({ format = "extended" } = {}) { - if (!this.isValid) { - return null; - } - - return toISODate(this, format === "extended"); - } - - /** - * Returns an ISO 8601-compliant string representation of this DateTime's week date - * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2' - * @return {string} - */ - toISOWeekDate() { - return toTechFormat(this, "kkkk-'W'WW-c"); - } - - /** - * Returns an ISO 8601-compliant string representation of this DateTime's time component - * @param {Object} opts - options - * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 - * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 - * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' - * @param {boolean} [opts.extendedZone=true] - add the time zone format extension - * @param {boolean} [opts.includePrefix=false] - include the `T` prefix - * @param {string} [opts.format='extended'] - choose between the basic and extended format - * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z' - * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z' - * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z' - * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z' - * @return {string} - */ - toISOTime({ - suppressMilliseconds = false, - suppressSeconds = false, - includeOffset = true, - includePrefix = false, - extendedZone = false, - format = "extended", - } = {}) { - if (!this.isValid) { - return null; - } - - let c = includePrefix ? "T" : ""; - return ( - c + - toISOTime( - this, - format === "extended", - suppressSeconds, - suppressMilliseconds, - includeOffset, - extendedZone - ) - ); - } - - /** - * Returns an RFC 2822-compatible string representation of this DateTime - * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000' - * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400' - * @return {string} - */ - toRFC2822() { - return toTechFormat(this, "EEE, dd LLL yyyy HH:mm:ss ZZZ", false); - } - - /** - * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT. - * Specifically, the string conforms to RFC 1123. - * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 - * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT' - * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT' - * @return {string} - */ - toHTTP() { - return toTechFormat(this.toUTC(), "EEE, dd LLL yyyy HH:mm:ss 'GMT'"); - } - - /** - * Returns a string representation of this DateTime appropriate for use in SQL Date - * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13' - * @return {string} - */ - toSQLDate() { - if (!this.isValid) { - return null; - } - return toISODate(this, true); - } - - /** - * Returns a string representation of this DateTime appropriate for use in SQL Time - * @param {Object} opts - options - * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. - * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' - * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' - * @example DateTime.utc().toSQL() //=> '05:15:16.345' - * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00' - * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345' - * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York' - * @return {string} - */ - toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) { - let fmt = "HH:mm:ss.SSS"; - - if (includeZone || includeOffset) { - if (includeOffsetSpace) { - fmt += " "; - } - if (includeZone) { - fmt += "z"; - } else if (includeOffset) { - fmt += "ZZ"; - } - } - - return toTechFormat(this, fmt, true); - } - - /** - * Returns a string representation of this DateTime appropriate for use in SQL DateTime - * @param {Object} opts - options - * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. - * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' - * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' - * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z' - * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00' - * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000' - * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York' - * @return {string} - */ - toSQL(opts = {}) { - if (!this.isValid) { - return null; - } - - return `${this.toSQLDate()} ${this.toSQLTime(opts)}`; - } - - /** - * Returns a string representation of this DateTime appropriate for debugging - * @return {string} - */ - toString() { - return this.isValid ? this.toISO() : datetime_INVALID; - } - - /** - * Returns a string representation of this DateTime appropriate for the REPL. - * @return {string} - */ - [Symbol.for("nodejs.util.inspect.custom")]() { - if (this.isValid) { - return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`; - } else { - return `DateTime { Invalid, reason: ${this.invalidReason} }`; - } - } - - /** - * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis} - * @return {number} - */ - valueOf() { - return this.toMillis(); - } - - /** - * Returns the epoch milliseconds of this DateTime. - * @return {number} - */ - toMillis() { - return this.isValid ? this.ts : NaN; - } - - /** - * Returns the epoch seconds of this DateTime. - * @return {number} - */ - toSeconds() { - return this.isValid ? this.ts / 1000 : NaN; - } - - /** - * Returns the epoch seconds (as a whole number) of this DateTime. - * @return {number} - */ - toUnixInteger() { - return this.isValid ? Math.floor(this.ts / 1000) : NaN; - } - - /** - * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON. - * @return {string} - */ - toJSON() { - return this.toISO(); - } - - /** - * Returns a BSON serializable equivalent to this DateTime. - * @return {Date} - */ - toBSON() { - return this.toJSDate(); - } - - /** - * Returns a JavaScript object with this DateTime's year, month, day, and so on. - * @param opts - options for generating the object - * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output - * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 } - * @return {Object} - */ - toObject(opts = {}) { - if (!this.isValid) return {}; - - const base = { ...this.c }; - - if (opts.includeConfig) { - base.outputCalendar = this.outputCalendar; - base.numberingSystem = this.loc.numberingSystem; - base.locale = this.loc.locale; - } - return base; - } - - /** - * Returns a JavaScript Date equivalent to this DateTime. - * @return {Date} - */ - toJSDate() { - return new Date(this.isValid ? this.ts : NaN); - } - - // COMPARE - - /** - * Return the difference between two DateTimes as a Duration. - * @param {DateTime} otherDateTime - the DateTime to compare this one to - * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration. - * @param {Object} opts - options that affect the creation of the Duration - * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use - * @example - * var i1 = DateTime.fromISO('1982-05-25T09:45'), - * i2 = DateTime.fromISO('1983-10-14T10:30'); - * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 } - * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 } - * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 } - * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 } - * @return {Duration} - */ - diff(otherDateTime, unit = "milliseconds", opts = {}) { - if (!this.isValid || !otherDateTime.isValid) { - return Duration.invalid("created by diffing an invalid DateTime"); - } - - const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts }; - - const units = maybeArray(unit).map(Duration.normalizeUnit), - otherIsLater = otherDateTime.valueOf() > this.valueOf(), - earlier = otherIsLater ? this : otherDateTime, - later = otherIsLater ? otherDateTime : this, - diffed = diff(earlier, later, units, durOpts); - - return otherIsLater ? diffed.negate() : diffed; - } - - /** - * Return the difference between this DateTime and right now. - * See {@link DateTime#diff} - * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration - * @param {Object} opts - options that affect the creation of the Duration - * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use - * @return {Duration} - */ - diffNow(unit = "milliseconds", opts = {}) { - return this.diff(DateTime.now(), unit, opts); - } - - /** - * Return an Interval spanning between this DateTime and another DateTime - * @param {DateTime} otherDateTime - the other end point of the Interval - * @return {Interval} - */ - until(otherDateTime) { - return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this; - } - - /** - * Return whether this DateTime is in the same unit of time as another DateTime. - * Higher-order units must also be identical for this function to return `true`. - * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed. - * @param {DateTime} otherDateTime - the other DateTime - * @param {string} unit - the unit of time to check sameness on - * @param {Object} opts - options - * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used - * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day - * @return {boolean} - */ - hasSame(otherDateTime, unit, opts) { - if (!this.isValid) return false; - - const inputMs = otherDateTime.valueOf(); - const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true }); - return ( - adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts) - ); - } - - /** - * Equality check - * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid. - * To compare just the millisecond values, use `+dt1 === +dt2`. - * @param {DateTime} other - the other DateTime - * @return {boolean} - */ - equals(other) { - return ( - this.isValid && - other.isValid && - this.valueOf() === other.valueOf() && - this.zone.equals(other.zone) && - this.loc.equals(other.loc) - ); - } - - /** - * Returns a string representation of a this time relative to now, such as "in two days". Can only internationalize if your - * platform supports Intl.RelativeTimeFormat. Rounds down by default. - * @param {Object} options - options that affect the output - * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. - * @param {string} [options.style="long"] - the style of units, must be "long", "short", or "narrow" - * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of "years", "quarters", "months", "weeks", "days", "hours", "minutes", or "seconds" - * @param {boolean} [options.round=true] - whether to round the numbers in the output. - * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding. - * @param {string} options.locale - override the locale of this DateTime - * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this - * @example DateTime.now().plus({ days: 1 }).toRelative() //=> "in 1 day" - * @example DateTime.now().setLocale("es").toRelative({ days: 1 }) //=> "dentro de 1 día" - * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: "fr" }) //=> "dans 23 heures" - * @example DateTime.now().minus({ days: 2 }).toRelative() //=> "2 days ago" - * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: "hours" }) //=> "48 hours ago" - * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> "1.5 days ago" - */ - toRelative(options = {}) { - if (!this.isValid) return null; - const base = options.base || DateTime.fromObject({}, { zone: this.zone }), - padding = options.padding ? (this < base ? -options.padding : options.padding) : 0; - let units = ["years", "months", "days", "hours", "minutes", "seconds"]; - let unit = options.unit; - if (Array.isArray(options.unit)) { - units = options.unit; - unit = undefined; - } - return diffRelative(base, this.plus(padding), { - ...options, - numeric: "always", - units, - unit, - }); - } - - /** - * Returns a string representation of this date relative to today, such as "yesterday" or "next month". - * Only internationalizes on platforms that supports Intl.RelativeTimeFormat. - * @param {Object} options - options that affect the output - * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. - * @param {string} options.locale - override the locale of this DateTime - * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of "years", "quarters", "months", "weeks", or "days" - * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this - * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> "tomorrow" - * @example DateTime.now().setLocale("es").plus({ days: 1 }).toRelative() //=> ""mañana" - * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: "fr" }) //=> "demain" - * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> "2 days ago" - */ - toRelativeCalendar(options = {}) { - if (!this.isValid) return null; - - return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, { - ...options, - numeric: "auto", - units: ["years", "months", "days"], - calendary: true, - }); - } - - /** - * Return the min of several date times - * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum - * @return {DateTime} the min DateTime, or undefined if called with no argument - */ - static min(...dateTimes) { - if (!dateTimes.every(DateTime.isDateTime)) { - throw new InvalidArgumentError("min requires all arguments be DateTimes"); - } - return bestBy(dateTimes, (i) => i.valueOf(), Math.min); - } - - /** - * Return the max of several date times - * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum - * @return {DateTime} the max DateTime, or undefined if called with no argument - */ - static max(...dateTimes) { - if (!dateTimes.every(DateTime.isDateTime)) { - throw new InvalidArgumentError("max requires all arguments be DateTimes"); - } - return bestBy(dateTimes, (i) => i.valueOf(), Math.max); - } - - // MISC - - /** - * Explain how a string would be parsed by fromFormat() - * @param {string} text - the string to parse - * @param {string} fmt - the format the string is expected to be in (see description) - * @param {Object} options - options taken by fromFormat() - * @return {Object} - */ - static fromFormatExplain(text, fmt, options = {}) { - const { locale = null, numberingSystem = null } = options, - localeToUse = Locale.fromOpts({ - locale, - numberingSystem, - defaultToEN: true, - }); - return explainFromTokens(localeToUse, text, fmt); - } - - /** - * @deprecated use fromFormatExplain instead - */ - static fromStringExplain(text, fmt, options = {}) { - return DateTime.fromFormatExplain(text, fmt, options); - } - - // FORMAT PRESETS - - /** - * {@link DateTime#toLocaleString} format like 10/14/1983 - * @type {Object} - */ - static get DATE_SHORT() { - return DATE_SHORT; - } - - /** - * {@link DateTime#toLocaleString} format like 'Oct 14, 1983' - * @type {Object} - */ - static get DATE_MED() { - return DATE_MED; - } - - /** - * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983' - * @type {Object} - */ - static get DATE_MED_WITH_WEEKDAY() { - return DATE_MED_WITH_WEEKDAY; - } - - /** - * {@link DateTime#toLocaleString} format like 'October 14, 1983' - * @type {Object} - */ - static get DATE_FULL() { - return DATE_FULL; - } - - /** - * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983' - * @type {Object} - */ - static get DATE_HUGE() { - return DATE_HUGE; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is. - * @type {Object} - */ - static get TIME_SIMPLE() { - return TIME_SIMPLE; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is. - * @type {Object} - */ - static get TIME_WITH_SECONDS() { - return TIME_WITH_SECONDS; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is. - * @type {Object} - */ - static get TIME_WITH_SHORT_OFFSET() { - return TIME_WITH_SHORT_OFFSET; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is. - * @type {Object} - */ - static get TIME_WITH_LONG_OFFSET() { - return TIME_WITH_LONG_OFFSET; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30', always 24-hour. - * @type {Object} - */ - static get TIME_24_SIMPLE() { - return TIME_24_SIMPLE; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour. - * @type {Object} - */ - static get TIME_24_WITH_SECONDS() { - return TIME_24_WITH_SECONDS; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour. - * @type {Object} - */ - static get TIME_24_WITH_SHORT_OFFSET() { - return TIME_24_WITH_SHORT_OFFSET; - } - - /** - * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour. - * @type {Object} - */ - static get TIME_24_WITH_LONG_OFFSET() { - return TIME_24_WITH_LONG_OFFSET; - } - - /** - * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_SHORT() { - return DATETIME_SHORT; - } - - /** - * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_SHORT_WITH_SECONDS() { - return DATETIME_SHORT_WITH_SECONDS; - } - - /** - * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_MED() { - return DATETIME_MED; - } - - /** - * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_MED_WITH_SECONDS() { - return DATETIME_MED_WITH_SECONDS; - } - - /** - * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_MED_WITH_WEEKDAY() { - return DATETIME_MED_WITH_WEEKDAY; - } - - /** - * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_FULL() { - return DATETIME_FULL; - } - - /** - * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_FULL_WITH_SECONDS() { - return DATETIME_FULL_WITH_SECONDS; - } - - /** - * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_HUGE() { - return DATETIME_HUGE; - } - - /** - * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is. - * @type {Object} - */ - static get DATETIME_HUGE_WITH_SECONDS() { - return DATETIME_HUGE_WITH_SECONDS; - } -} - -/** - * @private - */ -function friendlyDateTime(dateTimeish) { - if (DateTime.isDateTime(dateTimeish)) { - return dateTimeish; - } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) { - return DateTime.fromJSDate(dateTimeish); - } else if (dateTimeish && typeof dateTimeish === "object") { - return DateTime.fromObject(dateTimeish); - } else { - throw new InvalidArgumentError( - `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}` - ); - } -} - -;// CONCATENATED MODULE: ./node_modules/luxon/src/luxon.js - - - - - - - - - - - -const luxon_VERSION = "3.4.4"; - - - -;// CONCATENATED MODULE: ./src/types/constants.ts -const FOLLOWUP_HEADER = "Followup"; -const UNASSIGN_HEADER = "Unassign"; - -;// CONCATENATED MODULE: external "node:fs" -const external_node_fs_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:fs"); -// EXTERNAL MODULE: ./node_modules/graphql/index.js -var node_modules_graphql = __nccwpck_require__(9727); -// EXTERNAL MODULE: ./node_modules/graphql-tag/main.js -var graphql_tag_main = __nccwpck_require__(7593); -;// CONCATENATED MODULE: ./node_modules/@octokit/graphql-schema/lib/validate.js -/* harmony default export */ const validate = (validateQuery); - - - - - -const schema = (0,node_modules_graphql.buildClientSchema)( - JSON.parse((0,external_node_fs_namespaceObject.readFileSync)(__nccwpck_require__.ab + "schema.json", "utf8")), -); - -function validateQuery(query) { - return (0,node_modules_graphql.validate)(schema, graphql_tag_main(query)); -} - -;// CONCATENATED MODULE: ./src/helpers/collect-linked-pulls.ts - -const query = /* GraphQL */ ` - query collectLinkedPullRequests($owner: String!, $repo: String!, $issue_number: Int!) { - repository(owner: $owner, name: $repo) { - issue(number: $issue_number) { - closedByPullRequestsReferences(first: 100, includeClosedPrs: false) { - edges { - node { - url - title - body - state - number - author { - login - ... on User { - id: databaseId - } - } - } - } - } - } - } - } -`; -const queryErrors = validate(query); -/** - * > 1 because the schema package is slightly out of date and does not include the - * `closedByPullRequestsReferences` object in the schema as it is a recent addition to the GitHub API. - */ -if (queryErrors.length > 1) { - throw new Error(`Invalid query: ${queryErrors.join(", ")}`); -} -async function collectLinkedPullRequests(context, issue) { - const { owner, repo, issue_number } = issue; - const result = await context.octokit.graphql(query, { - owner, - repo, - issue_number, - }); - return result.repository.issue.closedByPullRequestsReferences.edges.map((edge) => edge.node); -} - -;// CONCATENATED MODULE: ./src/helpers/github-url.ts -function parseIssueUrl(url) { - const path = new URL(url).pathname.split("/"); - if (path.length !== 5) { - throw new Error(`[parseGitHubUrl] Invalid url: [${url}]`); - } - return { - owner: path[1], - repo: path[2], - issue_number: Number(path[4]), - }; -} - -;// CONCATENATED MODULE: ./src/helpers/get-assignee-activity.ts - - - -/** - * Retrieves all the activity for users that are assigned to the issue. Also takes into account linked pull requests. - */ -async function getAssigneesActivityForIssue(context, issue, assigneeIds) { - const gitHubUrl = parseIssueUrl(issue.html_url); - const issueEvents = await context.octokit.paginate(context.octokit.rest.issues.listEventsForTimeline, { - owner: gitHubUrl.owner, - repo: gitHubUrl.repo, - issue_number: gitHubUrl.issue_number, - per_page: 100, - }); - const linkedPullRequests = await collectLinkedPullRequests(context, gitHubUrl); - for (const linkedPullRequest of linkedPullRequests) { - const { owner, repo, issue_number } = parseIssueUrl(linkedPullRequest.url || ""); - const events = await context.octokit.paginate(context.octokit.rest.issues.listEventsForTimeline, { - owner, - repo, - issue_number, - per_page: 100, - }); - issueEvents.push(...events); - } - return filterEvents(issueEvents, assigneeIds); -} -function filterEvents(issueEvents, assigneeIds) { - const userIdMap = new Map(); - const assigneeEvents = []; - for (const event of issueEvents) { - let actorId = null; - let actorLogin = null; - let createdAt = null; - const eventName = event.event; - if ("actor" in event && event.actor) { - actorLogin = event.actor.login.toLowerCase(); - if (!userIdMap.has(actorLogin)) { - userIdMap.set(actorLogin, event.actor.id); - } - actorId = userIdMap.get(actorLogin); - createdAt = event.created_at; - } - else if ((event.event === "committed" || event.event === "commented") && "author" in event) { - const commitAuthor = "author" in event ? event.author : null; - const commitCommitter = "committer" in event ? event.committer : null; - if (commitAuthor || commitCommitter) { - assigneeEvents.push({ - event: eventName, - created_at: event.author.date, - author: event.author.email, - }); - continue; - } - } - if (actorId && assigneeIds.includes(actorId)) { - assigneeEvents.push({ - event: eventName, - created_at: createdAt, - author: actorLogin, - }); - } - } - return assigneeEvents.sort((a, b) => { - if (!a.created_at || !b.created_at) { - return 0; - } - return DateTime.fromISO(b.created_at).toMillis() - DateTime.fromISO(a.created_at).toMillis(); - }); -} - -;// CONCATENATED MODULE: ./src/helpers/structured-metadata.ts -const structured_metadata_HEADER_NAME = "Ubiquity"; -function structured_metadata_createStructuredMetadata(className, logReturn) { - let logMessage, metadata; - if (logReturn) { - logMessage = logReturn.logMessage; - metadata = logReturn.metadata; - } - const jsonPretty = JSON.stringify(metadata, null, 2); - const stackLine = new Error().stack?.split("\n")[2] ?? ""; - const caller = stackLine.match(/at (\S+)/)?.[1] ?? ""; - const ubiquityMetadataHeader = `"].join("\n"); - if (logMessage?.type === "fatal") { - // if the log message is fatal, then we want to show the metadata - metadataSerialized = [metadataSerializedVisible, metadataSerializedHidden].join("\n"); - } - else { - // otherwise we want to hide it - metadataSerialized = metadataSerializedHidden; - } - return metadataSerialized; -} -async function getCommentsFromMetadata(context, issueNumber, repoOwner, repoName, className) { - const { octokit } = context; - const ubiquityMetadataHeaderPattern = new RegExp(``); - return await octokit.paginate(octokit.rest.issues.listComments, { - owner: repoOwner, - repo: repoName, - issue_number: issueNumber, - }, (response) => response.data.filter((comment) => comment.performed_via_github_app && comment.body && comment.user?.type === "Bot" && ubiquityMetadataHeaderPattern.test(comment.body))); -} - -;// CONCATENATED MODULE: ./src/helpers/remind-and-remove.ts - - - - -async function unassignUserFromIssue(context, issue) { - const { logger, config } = context; - if (config.disqualification <= 0) { - logger.info("The unassign threshold is <= 0, won't unassign users."); - } - else { - await removeAllAssignees(context, issue); - } -} -async function remindAssigneesForIssue(context, issue) { - const { logger, config } = context; - const issueItem = parseIssueUrl(issue.html_url); - const hasLinkedPr = !!(await collectLinkedPullRequests(context, issueItem)).length; - if (config.warning <= 0) { - logger.info("The reminder threshold is <= 0, won't send any reminder."); - } - else if (config.pullRequestRequired && !hasLinkedPr) { - await unassignUserFromIssue(context, issue); - } - else { - logger.info(`Passed the reminder threshold on ${issue.html_url} sending a reminder.`); - await remindAssignees(context, issue); - } -} -async function remindAssignees(context, issue) { - const { octokit, logger, config } = context; - const { repo, owner, issue_number } = parseIssueUrl(issue.html_url); - if (!issue?.assignees?.length) { - logger.error(`Missing Assignees from ${issue.html_url}`); - return false; - } - const logins = issue.assignees - .map((o) => o?.login) - .filter((o) => !!o) - .join(", @"); - const logMessage = logger.info(`@${logins}, this task has been idle for a while. Please provide an update.\n\n`, { - taskAssignees: issue.assignees.map((o) => o?.id), - }); - const metadata = structured_metadata_createStructuredMetadata(FOLLOWUP_HEADER, logMessage); - if (!config.pullRequestRequired) { - await octokit.rest.issues.createComment({ - owner, - repo, - issue_number, - body: [logMessage.logMessage.raw, metadata].join("\n"), - }); - } - else { - const pullRequests = await collectLinkedPullRequests(context, { repo, owner, issue_number }); - let shouldPostToMainIssue = false; - for (const pullRequest of pullRequests) { - const { owner: prOwner, repo: prRepo, issue_number: prNumber } = parseIssueUrl(pullRequest.url); - try { - await octokit.rest.issues.createComment({ - owner: prOwner, - repo: prRepo, - issue_number: prNumber, - body: [logMessage.logMessage.raw, metadata].join("\n"), - }); - } - catch (e) { - logger.error(`Could not post to ${pullRequest.url} will post to the issue instead.`, { e }); - shouldPostToMainIssue = true; - } - } - // This is a fallback if we failed to post the reminder to a pull-request, which can happen when posting cross - // organizations, so we post to the parent issue instead, to make sure the user got a reminder. - if (shouldPostToMainIssue) { - await octokit.rest.issues.createComment({ - owner, - repo, - issue_number, - body: [logMessage.logMessage.raw, metadata].join("\n"), - }); - } - } - return true; -} -async function removeAllAssignees(context, issue) { - const { octokit, logger } = context; - const { repo, owner, issue_number } = parseIssueUrl(issue.html_url); - if (!issue?.assignees?.length) { - logger.error(`Missing Assignees from ${issue.html_url}`); - return false; - } - const logins = issue.assignees.map((o) => o?.login).filter((o) => !!o); - const logMessage = logger.info(`Passed the deadline and no activity is detected, removing assignees: ${logins.map((o) => `@${o}`).join(", ")}.`, { - issue: issue.html_url, - }); - const metadata = structured_metadata_createStructuredMetadata(UNASSIGN_HEADER, logMessage); - await octokit.rest.issues.createComment({ - owner, - repo, - issue_number, - body: [logMessage.logMessage.raw, metadata].join("\n"), - }); - await octokit.rest.issues.removeAssignees({ - owner, - repo, - issue_number, - assignees: logins, - }); - return true; -} - -// EXTERNAL MODULE: ./node_modules/ms/index.js -var ms = __nccwpck_require__(717); -var ms_default = /*#__PURE__*/__nccwpck_require__.n(ms); -;// CONCATENATED MODULE: ./src/helpers/task-metadata.ts - - -/** - * Retrieves assignment events from the timeline of an issue and calculates the deadline based on the time label. - * - * It does not care about previous updates, comments or other events that might have happened on the issue. - * - * It returns who is assigned and the initial calculated deadline (start + time label duration). - */ -async function getTaskAssignmentDetails(context, repo, issue) { - const { logger, octokit } = context; - const assignmentEvents = await octokit.paginate(octokit.rest.issues.listEvents, { - owner: repo.owner.login, - repo: repo.name, - issue_number: issue.number, - }); - const assignedEvents = assignmentEvents - .filter((o) => o.event === "assigned") - .sort((a, b) => DateTime.fromISO(b.created_at).toMillis() - DateTime.fromISO(a.created_at).toMillis()); - const latestUserAssignment = assignedEvents.find((o) => o.actor?.type === "User"); - const latestBotAssignment = assignedEvents.find((o) => o.actor?.type === "Bot"); - let mostRecentAssignmentEvent = latestUserAssignment || latestBotAssignment; - if (latestUserAssignment && latestBotAssignment && DateTime.fromISO(latestUserAssignment.created_at) > DateTime.fromISO(latestBotAssignment.created_at)) { - mostRecentAssignmentEvent = latestUserAssignment; - } - else { - mostRecentAssignmentEvent = latestBotAssignment; - } - const metadata = { - startPlusLabelDuration: DateTime.fromISO(issue.created_at).toISO() || "", - taskAssignees: issue.assignees ? issue.assignees.map((o) => o.id) : issue.assignee ? [issue.assignee.id] : [], - }; - if (!metadata.taskAssignees?.length) { - logger.error(`Missing Assignees from ${issue.html_url}`); - return false; - } - const durationInMs = parseTimeLabel(issue.labels); - if (durationInMs === 0) { - // it could mean there was no time label set on the issue - // but it could still be workable and priced - } - else if (durationInMs < 0 || !durationInMs) { - logger.error(`Invalid deadline found on ${issue.html_url}`); - return false; - } - // if there are no assignment events, we can assume the deadline is the issue creation date - metadata.startPlusLabelDuration = - DateTime.fromISO(mostRecentAssignmentEvent?.created_at || issue.created_at) - .plus({ milliseconds: durationInMs }) - .toISO() || ""; - return metadata; -} -function parseTimeLabel(labels) { - let taskTimeEstimate = 0; - for (const label of labels) { - let timeLabel = ""; - if (typeof label === "string") { - timeLabel = label; - } - else { - timeLabel = label.name || ""; - } - if (timeLabel.startsWith("Time:")) { - const matched = timeLabel.match(/Time: <(\d+) (\w+)/i); - if (!matched) { - return 0; - } - const [_, duration, unit] = matched; - taskTimeEstimate = ms_default()(`${duration} ${unit}`); - } - if (taskTimeEstimate) { - break; - } - } - return taskTimeEstimate; -} -function parsePriorityLabel(labels) { - for (const label of labels) { - let priorityLabel = ""; - if (typeof label === "string") { - priorityLabel = label; - } - else { - priorityLabel = label.name || ""; - } - if (priorityLabel.startsWith("Priority:")) { - const matched = priorityLabel.match(/Priority: (\d+)/i); - if (!matched) { - return 1; - } - return Number(matched[1]); - } - } - return 1; -} - -;// CONCATENATED MODULE: ./src/helpers/task-update.ts - - - - - - - - -const getMostRecentActivityDate = (assignedEventDate, activityEventDate) => { - return activityEventDate && activityEventDate > assignedEventDate ? activityEventDate : assignedEventDate; -}; -async function updateTaskReminder(context, repo, issue) { - const { octokit, logger, config: { eventWhitelist, warning, disqualification, prioritySpeed }, } = context; - const handledMetadata = await getTaskAssignmentDetails(context, repo, issue); - const now = DateTime.local(); - if (!handledMetadata) - return; - const assignmentEvents = await octokit.paginate(octokit.rest.issues.listEvents, { - owner: repo.owner.login, - repo: repo.name, - issue_number: issue.number, - }); - const assignedEvent = assignmentEvents - .filter((o) => o.event === "assigned" && handledMetadata.taskAssignees.includes(o.actor.id)) - .sort((a, b) => DateTime.fromISO(b.created_at).toMillis() - DateTime.fromISO(a.created_at).toMillis()) - .shift(); - if (!assignedEvent) { - logger.error(`Failed to update activity for ${issue.html_url}, there is no assigned event.`); - return; - } - const activityEvent = (await getAssigneesActivityForIssue(context, issue, handledMetadata.taskAssignees)) - .filter((o) => eventWhitelist.includes(o.event)) - .shift(); - const assignedDate = DateTime.fromISO(assignedEvent.created_at); - const priorityValue = parsePriorityLabel(issue.labels); - const priorityLevel = Math.max(1, priorityValue); - const activityDate = activityEvent?.created_at ? DateTime.fromISO(activityEvent.created_at) : undefined; - let mostRecentActivityDate = getMostRecentActivityDate(assignedDate, activityDate); - const linkedPrUrls = (await collectLinkedPullRequests(context, { issue_number: issue.number, repo: repo.name, owner: repo.owner.login })).map((o) => o.url); - linkedPrUrls.push(issue.html_url); - const lastReminders = await Promise.all(linkedPrUrls.map(async (url) => { - const { issue_number, owner, repo } = parseIssueUrl(url); - const comments = await getCommentsFromMetadata(context, issue_number, owner, repo, FOLLOWUP_HEADER); - return comments.filter((o) => DateTime.fromISO(o.created_at) > mostRecentActivityDate); - })); - const lastReminderComment = lastReminders.flat().shift(); - logger.debug(`Handling metadata and deadline for ${issue.html_url}`, { - now: now.toLocaleString(DateTime.DATETIME_MED), - assignedDate: DateTime.fromISO(assignedEvent.created_at).toLocaleString(DateTime.DATETIME_MED), - lastReminderComment: lastReminderComment ? DateTime.fromISO(lastReminderComment.created_at).toLocaleString(DateTime.DATETIME_MED) : "none", - mostRecentActivityDate: mostRecentActivityDate.toLocaleString(DateTime.DATETIME_MED), - }); - const disqualificationTimeDifference = disqualification - warning; - if (lastReminderComment) { - const lastReminderTime = DateTime.fromISO(lastReminderComment.created_at); - mostRecentActivityDate = lastReminderTime > mostRecentActivityDate ? lastReminderTime : mostRecentActivityDate; - if (mostRecentActivityDate.plus({ milliseconds: prioritySpeed ? disqualificationTimeDifference / priorityLevel : disqualificationTimeDifference }) <= now) { - await unassignUserFromIssue(context, issue); - } - else { - logger.info(`Reminder was sent for ${issue.html_url} already, not beyond disqualification deadline yet.`, { - now: now.toLocaleString(DateTime.DATETIME_MED), - assignedDate: DateTime.fromISO(assignedEvent.created_at).toLocaleString(DateTime.DATETIME_MED), - lastReminderComment: lastReminderComment ? DateTime.fromISO(lastReminderComment.created_at).toLocaleString(DateTime.DATETIME_MED) : "none", - mostRecentActivityDate: mostRecentActivityDate.toLocaleString(DateTime.DATETIME_MED), - }); - } - } - else { - if (mostRecentActivityDate.plus({ milliseconds: prioritySpeed ? warning / priorityLevel : warning }) <= now) { - await remindAssigneesForIssue(context, issue); - } - else { - logger.info(`Nothing to do for ${issue.html_url} still within due-time.`, { - now: now.toLocaleString(DateTime.DATETIME_MED), - assignedDate: DateTime.fromISO(assignedEvent.created_at).toLocaleString(DateTime.DATETIME_MED), - lastReminderComment: "none", - mostRecentActivityDate: mostRecentActivityDate.toLocaleString(DateTime.DATETIME_MED), - }); - } - } -} - -;// CONCATENATED MODULE: ./src/handlers/watch-user-activity.ts - - -async function watchUserActivity(context) { - const { logger } = context; - const repos = await getWatchedRepos(context); - if (!repos?.length) { - return { message: logger.info("No watched repos have been found, no work to do.").logMessage.raw }; - } - await Promise.all(repos.map(async (repo) => { - logger.debug(`> Watching user activity for repo: ${repo.name} (${repo.html_url})`); - await updateReminders(context, repo); - })); - return { message: "OK" }; -} -async function updateReminders(context, repo) { - const { logger, octokit, payload } = context; - const owner = payload.repository.owner?.login; - if (!owner) { - throw new Error("No owner found in the payload"); - } - const issues = await octokit.paginate(octokit.rest.issues.listForRepo, { - owner, - repo: repo.name, - per_page: 100, - state: "open", - }); - await Promise.all(issues.map(async (issue) => { - // I think we can safely ignore the following - if (issue.draft || issue.pull_request || issue.locked || issue.state !== "open") { - logger.debug(`Skipping issue ${issue.html_url} due to the issue not meeting the right criteria.`, { - draft: issue.draft, - pullRequest: !!issue.pull_request, - locked: issue.locked, - state: issue.state, - }); - return; - } - if (issue.assignees?.length || issue.assignee) { - logger.debug(`Checking assigned issue: ${issue.html_url}`); - await updateTaskReminder(context, repo, issue); - } - else { - logger.info(`Skipping issue ${issue.html_url} because no user is assigned.`); - } - })); -} - -;// CONCATENATED MODULE: ./src/run.ts - -async function run(context) { - context.logger.debug("Will run with the following configuration:", { configuration: context.config }); - return watchUserActivity(context); -} - -;// CONCATENATED MODULE: ./src/types/plugin-input.ts - - -function thresholdType(options) { - return Type.Transform(Type.String(options)) - .Decode((value) => { - const milliseconds = ms_default()(value); - if (milliseconds === undefined) { - throw new error_TypeBoxError(`Invalid threshold value: [${value}]`); - } - return milliseconds; - }) - .Encode((value) => { - const textThreshold = ms_default()(value, { long: true }); - if (textThreshold === undefined) { - throw new error_TypeBoxError(`Invalid threshold value: [${value}]`); - } - return textThreshold; - }); -} -const eventWhitelist = [ - "pull_request.review_requested", - "pull_request.ready_for_review", - "pull_request_review_comment.created", - "issue_comment.created", - "push", -]; -function mapWebhookToEvent(webhook) { - const roleMap = new Map([ - ["pull_request.review_requested", "review_requested"], - ["pull_request.ready_for_review", "ready_for_review"], - ["pull_request_review_comment.created", "commented"], - ["issue_comment.created", "commented"], - ["push", "committed"], - ]); - return roleMap.get(webhook); -} -const EventWhitelistType = Type.Union(eventWhitelist.map((event) => Type.Literal(event))); -const pluginSettingsSchema = Type.Object({ - /** - * Delay to send reminders. 0 means disabled. Any other value is counted in days, e.g. 1,5 days - */ - warning: thresholdType({ default: "3.5 days" }), - /** - * By default, all repositories are watched. Use this option to opt-out from watching specific repositories - * within your organization. The value is an array of repository names. - */ - watch: Type.Object({ - optOut: Type.Array(Type.String(), { default: [] }), - }, { default: {} }), - /* - * Whether to rush the follow ups by the priority level - */ - prioritySpeed: Type.Boolean({ default: true }), - /** - * Delay to unassign users. 0 means disabled. Any other value is counted in days, e.g. 7 days - */ - disqualification: thresholdType({ - default: "7 days", - }), - /** - * Whether a pull request is required for the given issue on disqualify. - */ - pullRequestRequired: Type.Boolean({ default: true }), - /** - * List of events to consider as valid activity on a task - */ - eventWhitelist: Type.Transform(Type.Array(Type.String(), { default: eventWhitelist })) - .Decode((value) => { - const validEvents = Object.values(eventWhitelist); - const eventsStripped = []; - for (const event of value) { - if (!validEvents.includes(event)) { - throw new error_TypeBoxError(`Invalid event [${event}] (unknown event)`); - } - const mappedEvent = mapWebhookToEvent(event); - if (!mappedEvent) { - throw new error_TypeBoxError(`Invalid event [${event}] (unmapped event)`); - } - if (!eventsStripped.includes(mappedEvent)) { - eventsStripped.push(mappedEvent); - } - } - return eventsStripped; - }) - .Encode((value) => value.map((event) => { - const roleMap = new Map([ - ["review_requested", "pull_request.review_requested"], - ["ready_for_review", "pull_request.ready_for_review"], - ["commented", "pull_request_review_comment.created"], - ["commented", "issue_comment.created"], - ["committed", "push"], - ]); - return roleMap.get(event); - })), -}, { default: {} }); -const envSchema = Type.Object({}); - -;// CONCATENATED MODULE: ./src/index.ts - - - - -createActionsPlugin((context) => { - return run(context); -}, { - envSchema: envSchema, - settingsSchema: pluginSettingsSchema, - logLevel: process.env.LOG_LEVEL || dist_LOG_LEVEL.INFO, - postCommentOnError: false, - ...(process.env.KERNEL_PUBLIC_KEY && { kernelPublicKey: process.env.KERNEL_PUBLIC_KEY }), -}).catch(console.error); - +import{createRequire as e}from"module";var t={4914:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issue=t.issueCommand=void 0;const i=o(r(857));const a=r(302);function issueCommand(e,t,r){const n=new Command(e,t,r);process.stdout.write(n.toString()+i.EOL)}t.issueCommand=issueCommand;function issue(e,t=""){issueCommand(e,{},t)}t.issue=issue;const A="::";class Command{constructor(e,t,r){if(!e){e="missing.command"}this.command=e;this.properties=t;this.message=r}toString(){let e=A+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=true;for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const n=this.properties[r];if(n){if(t){t=false}else{e+=","}e+=`${r}=${escapeProperty(n)}`}}}}e+=`${A}${escapeData(this.message)}`;return e}}function escapeData(e){return(0,a.toCommandValue)(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return(0,a.toCommandValue)(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},7484:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.platform=t.toPlatformPath=t.toWin32Path=t.toPosixPath=t.markdownSummary=t.summary=t.getIDToken=t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.notice=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const a=r(4914);const A=r(4753);const c=r(302);const u=o(r(857));const l=o(r(6928));const p=r(5306);var d;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(d||(t.ExitCode=d={}));function exportVariable(e,t){const r=(0,c.toCommandValue)(t);process.env[e]=r;const n=process.env["GITHUB_ENV"]||"";if(n){return(0,A.issueFileCommand)("ENV",(0,A.prepareKeyValueMessage)(e,t))}(0,a.issueCommand)("set-env",{name:e},r)}t.exportVariable=exportVariable;function setSecret(e){(0,a.issueCommand)("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){(0,A.issueFileCommand)("PATH",e)}else{(0,a.issueCommand)("add-path",{},e)}process.env["PATH"]=`${e}${l.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const r=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!r){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return r}return r.trim()}t.getInput=getInput;function getMultilineInput(e,t){const r=getInput(e,t).split("\n").filter((e=>e!==""));if(t&&t.trimWhitespace===false){return r}return r.map((e=>e.trim()))}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const r=["true","True","TRUE"];const n=["false","False","FALSE"];const s=getInput(e,t);if(r.includes(s))return true;if(n.includes(s))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){const r=process.env["GITHUB_OUTPUT"]||"";if(r){return(0,A.issueFileCommand)("OUTPUT",(0,A.prepareKeyValueMessage)(e,t))}process.stdout.write(u.EOL);(0,a.issueCommand)("set-output",{name:e},(0,c.toCommandValue)(t))}t.setOutput=setOutput;function setCommandEcho(e){(0,a.issue)("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=d.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){(0,a.issueCommand)("debug",{},e)}t.debug=debug;function error(e,t={}){(0,a.issueCommand)("error",(0,c.toCommandProperties)(t),e instanceof Error?e.toString():e)}t.error=error;function warning(e,t={}){(0,a.issueCommand)("warning",(0,c.toCommandProperties)(t),e instanceof Error?e.toString():e)}t.warning=warning;function notice(e,t={}){(0,a.issueCommand)("notice",(0,c.toCommandProperties)(t),e instanceof Error?e.toString():e)}t.notice=notice;function info(e){process.stdout.write(e+u.EOL)}t.info=info;function startGroup(e){(0,a.issue)("group",e)}t.startGroup=startGroup;function endGroup(){(0,a.issue)("endgroup")}t.endGroup=endGroup;function group(e,t){return i(this,void 0,void 0,(function*(){startGroup(e);let r;try{r=yield t()}finally{endGroup()}return r}))}t.group=group;function saveState(e,t){const r=process.env["GITHUB_STATE"]||"";if(r){return(0,A.issueFileCommand)("STATE",(0,A.prepareKeyValueMessage)(e,t))}(0,a.issueCommand)("save-state",{name:e},(0,c.toCommandValue)(t))}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState;function getIDToken(e){return i(this,void 0,void 0,(function*(){return yield p.OidcClient.getIDToken(e)}))}t.getIDToken=getIDToken;var g=r(1847);Object.defineProperty(t,"summary",{enumerable:true,get:function(){return g.summary}});var h=r(1847);Object.defineProperty(t,"markdownSummary",{enumerable:true,get:function(){return h.markdownSummary}});var E=r(1976);Object.defineProperty(t,"toPosixPath",{enumerable:true,get:function(){return E.toPosixPath}});Object.defineProperty(t,"toWin32Path",{enumerable:true,get:function(){return E.toWin32Path}});Object.defineProperty(t,"toPlatformPath",{enumerable:true,get:function(){return E.toPlatformPath}});t.platform=o(r(8968))},4753:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.prepareKeyValueMessage=t.issueFileCommand=void 0;const i=o(r(6982));const a=o(r(9896));const A=o(r(857));const c=r(302);function issueFileCommand(e,t){const r=process.env[`GITHUB_${e}`];if(!r){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!a.existsSync(r)){throw new Error(`Missing file at path: ${r}`)}a.appendFileSync(r,`${(0,c.toCommandValue)(t)}${A.EOL}`,{encoding:"utf8"})}t.issueFileCommand=issueFileCommand;function prepareKeyValueMessage(e,t){const r=`ghadelimiter_${i.randomUUID()}`;const n=(0,c.toCommandValue)(t);if(e.includes(r)){throw new Error(`Unexpected input: name should not contain the delimiter "${r}"`)}if(n.includes(r)){throw new Error(`Unexpected input: value should not contain the delimiter "${r}"`)}return`${e}<<${r}${A.EOL}${n}${A.EOL}${r}`}t.prepareKeyValueMessage=prepareKeyValueMessage},5306:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.OidcClient=void 0;const s=r(4844);const o=r(4552);const i=r(7484);class OidcClient{static createHttpClient(e=true,t=10){const r={allowRetries:e,maxRetries:t};return new s.HttpClient("actions/oidc-client",[new o.BearerCredentialHandler(OidcClient.getRequestToken())],r)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var t;return n(this,void 0,void 0,(function*(){const r=OidcClient.createHttpClient();const n=yield r.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.message}`)}));const s=(t=n.result)===null||t===void 0?void 0:t.value;if(!s){throw new Error("Response json body do not have ID Token field")}return s}))}static getIDToken(e){return n(this,void 0,void 0,(function*(){try{let t=OidcClient.getIDTokenUrl();if(e){const r=encodeURIComponent(e);t=`${t}&audience=${r}`}(0,i.debug)(`ID token url is ${t}`);const r=yield OidcClient.getCall(t);(0,i.setSecret)(r);return r}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}t.OidcClient=OidcClient},1976:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.toPlatformPath=t.toWin32Path=t.toPosixPath=void 0;const i=o(r(6928));function toPosixPath(e){return e.replace(/[\\]/g,"/")}t.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}t.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,i.sep)}t.toPlatformPath=toPlatformPath},8968:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.getDetails=t.isLinux=t.isMacOS=t.isWindows=t.arch=t.platform=void 0;const A=a(r(857));const c=o(r(5236));const getWindowsInfo=()=>i(void 0,void 0,void 0,(function*(){const{stdout:e}=yield c.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"',undefined,{silent:true});const{stdout:t}=yield c.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',undefined,{silent:true});return{name:t.trim(),version:e.trim()}}));const getMacOsInfo=()=>i(void 0,void 0,void 0,(function*(){var e,t,r,n;const{stdout:s}=yield c.getExecOutput("sw_vers",undefined,{silent:true});const o=(t=(e=s.match(/ProductVersion:\s*(.+)/))===null||e===void 0?void 0:e[1])!==null&&t!==void 0?t:"";const i=(n=(r=s.match(/ProductName:\s*(.+)/))===null||r===void 0?void 0:r[1])!==null&&n!==void 0?n:"";return{name:i,version:o}}));const getLinuxInfo=()=>i(void 0,void 0,void 0,(function*(){const{stdout:e}=yield c.getExecOutput("lsb_release",["-i","-r","-s"],{silent:true});const[t,r]=e.trim().split("\n");return{name:t,version:r}}));t.platform=A.default.platform();t.arch=A.default.arch();t.isWindows=t.platform==="win32";t.isMacOS=t.platform==="darwin";t.isLinux=t.platform==="linux";function getDetails(){return i(this,void 0,void 0,(function*(){return Object.assign(Object.assign({},yield t.isWindows?getWindowsInfo():t.isMacOS?getMacOsInfo():getLinuxInfo()),{platform:t.platform,arch:t.arch,isWindows:t.isWindows,isMacOS:t.isMacOS,isLinux:t.isLinux})}))}t.getDetails=getDetails},1847:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.summary=t.markdownSummary=t.SUMMARY_DOCS_URL=t.SUMMARY_ENV_VAR=void 0;const s=r(857);const o=r(9896);const{access:i,appendFile:a,writeFile:A}=o.promises;t.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";t.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return n(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[t.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${t.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield i(e,o.constants.R_OK|o.constants.W_OK)}catch(t){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,t,r={}){const n=Object.entries(r).map((([e,t])=>` ${e}="${t}"`)).join("");if(!t){return`<${e}${n}>`}return`<${e}${n}>${t}`}write(e){return n(this,void 0,void 0,(function*(){const t=!!(e===null||e===void 0?void 0:e.overwrite);const r=yield this.filePath();const n=t?A:a;yield n(r,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return n(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,t=false){this._buffer+=e;return t?this.addEOL():this}addEOL(){return this.addRaw(s.EOL)}addCodeBlock(e,t){const r=Object.assign({},t&&{lang:t});const n=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(n).addEOL()}addList(e,t=false){const r=t?"ol":"ul";const n=e.map((e=>this.wrap("li",e))).join("");const s=this.wrap(r,n);return this.addRaw(s).addEOL()}addTable(e){const t=e.map((e=>{const t=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:t,data:r,colspan:n,rowspan:s}=e;const o=t?"th":"td";const i=Object.assign(Object.assign({},n&&{colspan:n}),s&&{rowspan:s});return this.wrap(o,r,i)})).join("");return this.wrap("tr",t)})).join("");const r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){const r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){const{width:n,height:s}=r||{};const o=Object.assign(Object.assign({},n&&{width:n}),s&&{height:s});const i=this.wrap("img",null,Object.assign({src:e,alt:t},o));return this.addRaw(i).addEOL()}addHeading(e,t){const r=`h${t}`;const n=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1";const s=this.wrap(n,e);return this.addRaw(s).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){const r=Object.assign({},t&&{cite:t});const n=this.wrap("blockquote",e,r);return this.addRaw(n).addEOL()}addLink(e,t){const r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}}const c=new Summary;t.markdownSummary=c;t.summary=c},302:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.toCommandProperties=t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}t.toCommandProperties=toCommandProperties},5236:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getExecOutput=t.exec=void 0;const a=r(3193);const A=o(r(6665));function exec(e,t,r){return i(this,void 0,void 0,(function*(){const n=A.argStringToArray(e);if(n.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const s=n[0];t=n.slice(1).concat(t||[]);const o=new A.ToolRunner(s,t,r);return o.exec()}))}t.exec=exec;function getExecOutput(e,t,r){var n,s;return i(this,void 0,void 0,(function*(){let o="";let i="";const A=new a.StringDecoder("utf8");const c=new a.StringDecoder("utf8");const u=(n=r===null||r===void 0?void 0:r.listeners)===null||n===void 0?void 0:n.stdout;const l=(s=r===null||r===void 0?void 0:r.listeners)===null||s===void 0?void 0:s.stderr;const stdErrListener=e=>{i+=c.write(e);if(l){l(e)}};const stdOutListener=e=>{o+=A.write(e);if(u){u(e)}};const p=Object.assign(Object.assign({},r===null||r===void 0?void 0:r.listeners),{stdout:stdOutListener,stderr:stdErrListener});const d=yield exec(e,t,Object.assign(Object.assign({},r),{listeners:p}));o+=A.end();i+=c.end();return{exitCode:d,stdout:o,stderr:i}}))}t.getExecOutput=getExecOutput},6665:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.argStringToArray=t.ToolRunner=void 0;const a=o(r(857));const A=o(r(4434));const c=o(r(5317));const u=o(r(6928));const l=o(r(4994));const p=o(r(5207));const d=r(3557);const g=process.platform==="win32";class ToolRunner extends A.EventEmitter{constructor(e,t,r){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=t||[];this.options=r||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,t){const r=this._getSpawnFileName();const n=this._getSpawnArgs(e);let s=t?"":"[command]";if(g){if(this._isCmdFile()){s+=r;for(const e of n){s+=` ${e}`}}else if(e.windowsVerbatimArguments){s+=`"${r}"`;for(const e of n){s+=` ${e}`}}else{s+=this._windowsQuoteCmdArg(r);for(const e of n){s+=` ${this._windowsQuoteCmdArg(e)}`}}}else{s+=r;for(const e of n){s+=` ${e}`}}return s}_processLineBuffer(e,t,r){try{let n=t+e.toString();let s=n.indexOf(a.EOL);while(s>-1){const e=n.substring(0,s);r(e);n=n.substring(s+a.EOL.length);s=n.indexOf(a.EOL)}return n}catch(e){this._debug(`error processing line. Failed with error ${e}`);return""}}_getSpawnFileName(){if(g){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(g){if(this._isCmdFile()){let t=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const r of this.args){t+=" ";t+=e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r)}t+='"';return[t]}}return this.args}_endsWith(e,t){return e.endsWith(t)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const t=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let r=false;for(const n of e){if(t.some((e=>e===n))){r=true;break}}if(!r){return e}let n='"';let s=true;for(let t=e.length;t>0;t--){n+=e[t-1];if(s&&e[t-1]==="\\"){n+="\\"}else if(e[t-1]==='"'){s=true;n+='"'}else{s=false}}n+='"';return n.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let t='"';let r=true;for(let n=e.length;n>0;n--){t+=e[n-1];if(r&&e[n-1]==="\\"){t+="\\"}else if(e[n-1]==='"'){r=true;t+="\\"}else{r=false}}t+='"';return t.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const t={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};t.outStream=e.outStream||process.stdout;t.errStream=e.errStream||process.stderr;return t}_getSpawnOptions(e,t){e=e||{};const r={};r.cwd=e.cwd;r.env=e.env;r["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){r.argv0=`"${t}"`}return r}exec(){return i(this,void 0,void 0,(function*(){if(!p.isRooted(this.toolPath)&&(this.toolPath.includes("/")||g&&this.toolPath.includes("\\"))){this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield l.which(this.toolPath,true);return new Promise(((e,t)=>i(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const r=this._cloneExecOptions(this.options);if(!r.silent&&r.outStream){r.outStream.write(this._getCommandString(r)+a.EOL)}const n=new ExecState(r,this.toolPath);n.on("debug",(e=>{this._debug(e)}));if(this.options.cwd&&!(yield p.exists(this.options.cwd))){return t(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const s=this._getSpawnFileName();const o=c.spawn(s,this._getSpawnArgs(r),this._getSpawnOptions(this.options,s));let i="";if(o.stdout){o.stdout.on("data",(e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!r.silent&&r.outStream){r.outStream.write(e)}i=this._processLineBuffer(e,i,(e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}}))}))}let A="";if(o.stderr){o.stderr.on("data",(e=>{n.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!r.silent&&r.errStream&&r.outStream){const t=r.failOnStdErr?r.errStream:r.outStream;t.write(e)}A=this._processLineBuffer(e,A,(e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}}))}))}o.on("error",(e=>{n.processError=e.message;n.processExited=true;n.processClosed=true;n.CheckComplete()}));o.on("exit",(e=>{n.processExitCode=e;n.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);n.CheckComplete()}));o.on("close",(e=>{n.processExitCode=e;n.processExited=true;n.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);n.CheckComplete()}));n.on("done",((r,n)=>{if(i.length>0){this.emit("stdline",i)}if(A.length>0){this.emit("errline",A)}o.removeAllListeners();if(r){t(r)}else{e(n)}}));if(this.options.input){if(!o.stdin){throw new Error("child process missing stdin")}o.stdin.end(this.options.input)}}))))}))}}t.ToolRunner=ToolRunner;function argStringToArray(e){const t=[];let r=false;let n=false;let s="";function append(e){if(n&&e!=='"'){s+="\\"}s+=e;n=false}for(let o=0;o0){t.push(s);s=""}continue}append(i)}if(s.length>0){t.push(s.trim())}return t}t.argStringToArray=argStringToArray;class ExecState extends A.EventEmitter{constructor(e,t){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!t){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=t;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=d.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t)}e._setResult()}}},1648:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Context=void 0;const n=r(9896);const s=r(857);class Context{constructor(){var e,t,r;this.payload={};if(process.env.GITHUB_EVENT_PATH){if((0,n.existsSync)(process.env.GITHUB_EVENT_PATH)){this.payload=JSON.parse((0,n.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}))}else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${s.EOL}`)}}this.eventName=process.env.GITHUB_EVENT_NAME;this.sha=process.env.GITHUB_SHA;this.ref=process.env.GITHUB_REF;this.workflow=process.env.GITHUB_WORKFLOW;this.action=process.env.GITHUB_ACTION;this.actor=process.env.GITHUB_ACTOR;this.job=process.env.GITHUB_JOB;this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10);this.runId=parseInt(process.env.GITHUB_RUN_ID,10);this.apiUrl=(e=process.env.GITHUB_API_URL)!==null&&e!==void 0?e:`https://api.github.com`;this.serverUrl=(t=process.env.GITHUB_SERVER_URL)!==null&&t!==void 0?t:`https://github.com`;this.graphqlUrl=(r=process.env.GITHUB_GRAPHQL_URL)!==null&&r!==void 0?r:`https://api.github.com/graphql`}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:t}}if(this.payload.repository){return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name}}throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}t.Context=Context},3228:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOctokit=t.context=void 0;const i=o(r(1648));const a=r(8006);t.context=new i.Context;function getOctokit(e,t,...r){const n=a.GitHub.plugin(...r);return new n((0,a.getOctokitOptions)(e,t))}t.getOctokit=getOctokit},5156:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getApiBaseUrl=t.getProxyFetch=t.getProxyAgentDispatcher=t.getProxyAgent=t.getAuthString=void 0;const a=o(r(4844));const A=r(6752);function getAuthString(e,t){if(!e&&!t.auth){throw new Error("Parameter token or opts.auth is required")}else if(e&&t.auth){throw new Error("Parameters token and opts.auth may not both be specified")}return typeof t.auth==="string"?t.auth:`token ${e}`}t.getAuthString=getAuthString;function getProxyAgent(e){const t=new a.HttpClient;return t.getAgent(e)}t.getProxyAgent=getProxyAgent;function getProxyAgentDispatcher(e){const t=new a.HttpClient;return t.getAgentDispatcher(e)}t.getProxyAgentDispatcher=getProxyAgentDispatcher;function getProxyFetch(e){const t=getProxyAgentDispatcher(e);const proxyFetch=(e,r)=>i(this,void 0,void 0,(function*(){return(0,A.fetch)(e,Object.assign(Object.assign({},r),{dispatcher:t}))}));return proxyFetch}t.getProxyFetch=getProxyFetch;function getApiBaseUrl(){return process.env["GITHUB_API_URL"]||"https://api.github.com"}t.getApiBaseUrl=getApiBaseUrl},8006:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOctokitOptions=t.GitHub=t.defaults=t.context=void 0;const i=o(r(1648));const a=o(r(5156));const A=r(8452);const c=r(5726);const u=r(7731);t.context=new i.Context;const l=a.getApiBaseUrl();t.defaults={baseUrl:l,request:{agent:a.getProxyAgent(l),fetch:a.getProxyFetch(l)}};t.GitHub=A.Octokit.plugin(c.restEndpointMethods,u.paginateRest).defaults(t.defaults);function getOctokitOptions(e,t){const r=Object.assign({},t||{});const n=a.getAuthString(e,r);if(n){r.auth=n}return r}t.getOctokitOptions=getOctokitOptions},8452:(e,t,r)=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let A of o(t))if(!i.call(e,A)&&A!==r)n(e,A,{get:()=>t[A],enumerable:!(a=s(t,A))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{Octokit:()=>m});e.exports=__toCommonJS(a);var A=r(9071);var c=r(6256);var u=r(9755);var l=r(9699);var p=r(3844);var d="5.2.0";var noop=()=>{};var g=console.warn.bind(console);var h=console.error.bind(console);var E=`octokit-core.js/${d} ${(0,A.getUserAgent)()}`;var m=class{static{this.VERSION=d}static defaults(e){const t=class extends(this){constructor(...t){const r=t[0]||{};if(typeof e==="function"){super(e(r));return}super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static{this.plugins=[]}static plugin(...e){const t=this.plugins;const r=class extends(this){static{this.plugins=t.concat(e.filter((e=>!t.includes(e))))}};return r}constructor(e={}){const t=new c.Collection;const r={baseUrl:u.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${E}`:E;if(e.baseUrl){r.baseUrl=e.baseUrl}if(e.previews){r.mediaType.previews=e.previews}if(e.timeZone){r.headers["time-zone"]=e.timeZone}this.request=u.request.defaults(r);this.graphql=(0,l.withCustomRequest)(this.request).defaults(r);this.log=Object.assign({debug:noop,info:noop,warn:g,error:h},e.log);this.hook=t;if(!e.authStrategy){if(!e.auth){this.auth=async()=>({type:"unauthenticated"})}else{const r=(0,p.createTokenAuth)(e.auth);t.wrap("request",r.hook);this.auth=r}}else{const{authStrategy:r,...n}=e;const s=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",s.hook);this.auth=s}const n=this.constructor;for(let t=0;t{var t=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:true})};var __copyProps=(e,o,i,a)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let A of n(o))if(!s.call(e,A)&&A!==i)t(e,A,{get:()=>o[A],enumerable:!(a=r(o,A))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(t({},"__esModule",{value:true}),e);var o={};__export(o,{createTokenAuth:()=>c});e.exports=__toCommonJS(o);var i=/^v1\./;var a=/^ghs_/;var A=/^ghu_/;async function auth(e){const t=e.split(/\./).length===3;const r=i.test(e)||a.test(e);const n=A.test(e);const s=t?"app":r?"installation":n?"user-to-server":"oauth";return{type:"token",token:e,tokenType:s}}function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`bearer ${e}`}return`token ${e}`}async function hook(e,t,r,n){const s=t.endpoint.merge(r,n);s.headers.authorization=withAuthorizationPrefix(e);return t(s)}var c=function createTokenAuth2(e){if(!e){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof e!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}e=e.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,e),{hook:hook.bind(null,e)})};0&&0},9699:(e,t,r)=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let A of o(t))if(!i.call(e,A)&&A!==r)n(e,A,{get:()=>t[A],enumerable:!(a=s(t,A))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{GraphqlResponseError:()=>d,graphql:()=>m,withCustomRequest:()=>withCustomRequest});e.exports=__toCommonJS(a);var A=r(9755);var c=r(9071);var u="7.1.0";var l=r(9755);var p=r(9755);function _buildMessageForResponseErrors(e){return`Request failed due to following response errors:\n`+e.errors.map((e=>` - ${e.message}`)).join("\n")}var d=class extends Error{constructor(e,t,r){super(_buildMessageForResponseErrors(r));this.request=e;this.headers=t;this.response=r;this.name="GraphqlResponseError";this.errors=r.errors;this.data=r.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}};var g=["method","baseUrl","url","headers","request","query","mediaType"];var h=["query","method","url"];var E=/\/api\/v3\/?$/;function graphql(e,t,r){if(r){if(typeof t==="string"&&"query"in r){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const e in r){if(!h.includes(e))continue;return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}}const n=typeof t==="string"?Object.assign({query:t},r):t;const s=Object.keys(n).reduce(((e,t)=>{if(g.includes(t)){e[t]=n[t];return e}if(!e.variables){e.variables={}}e.variables[t]=n[t];return e}),{});const o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;if(E.test(o)){s.url=o.replace(E,"/api/graphql")}return e(s).then((e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers)){t[r]=e.headers[r]}throw new d(s,t,e.data)}return e.data.data}))}function withDefaults(e,t){const r=e.defaults(t);const newApi=(e,t)=>graphql(r,e,t);return Object.assign(newApi,{defaults:withDefaults.bind(null,r),endpoint:r.endpoint})}var m=withDefaults(A.request,{headers:{"user-agent":`octokit-graphql.js/${u} ${(0,c.getUserAgent)()}`},method:"POST",url:"/graphql"});function withCustomRequest(e){return withDefaults(e,{method:"POST",url:"/graphql"})}0&&0},8688:(e,t,r)=>{var n=Object.create;var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var a=Object.getPrototypeOf;var A=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,n)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let a of i(t))if(!A.call(e,a)&&a!==r)s(e,a,{get:()=>t[a],enumerable:!(n=o(t,a))||n.enumerable})}return e};var __toESM=(e,t,r)=>(r=e!=null?n(a(e)):{},__copyProps(t||!e||!e.__esModule?s(r,"default",{value:e,enumerable:true}):r,e));var __toCommonJS=e=>__copyProps(s({},"__esModule",{value:true}),e);var c={};__export(c,{RequestError:()=>g});e.exports=__toCommonJS(c);var u=r(4150);var l=__toESM(r(5560));var p=(0,l.default)((e=>console.warn(e)));var d=(0,l.default)((e=>console.warn(e)));var g=class extends Error{constructor(e,t,r){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="HttpError";this.status=t;let n;if("headers"in r&&typeof r.headers!=="undefined"){n=r.headers}if("response"in r){this.response=r.response;n=r.response.headers}const s=Object.assign({},r.request);if(r.request.headers.authorization){s.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})}s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]");this.request=s;Object.defineProperty(this,"code",{get(){p(new u.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));return t}});Object.defineProperty(this,"headers",{get(){d(new u.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`."));return n||{}}})}};0&&0},9755:(e,t,r)=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let A of o(t))if(!i.call(e,A)&&A!==r)n(e,A,{get:()=>t[A],enumerable:!(a=s(t,A))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{request:()=>p});e.exports=__toCommonJS(a);var A=r(206);var c=r(9071);var u="8.4.0";function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var l=r(8688);function getBufferResponse(e){return e.arrayBuffer()}function fetchWrapper(e){var t,r,n,s;const o=e.request&&e.request.log?e.request.log:console;const i=((t=e.request)==null?void 0:t.parseSuccessResponseBody)!==false;if(isPlainObject(e.body)||Array.isArray(e.body)){e.body=JSON.stringify(e.body)}let a={};let A;let c;let{fetch:u}=globalThis;if((r=e.request)==null?void 0:r.fetch){u=e.request.fetch}if(!u){throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing")}return u(e.url,{method:e.method,body:e.body,redirect:(n=e.request)==null?void 0:n.redirect,headers:e.headers,signal:(s=e.request)==null?void 0:s.signal,...e.body&&{duplex:"half"}}).then((async t=>{c=t.url;A=t.status;for(const e of t.headers){a[e[0]]=e[1]}if("deprecation"in a){const t=a.link&&a.link.match(/<([^>]+)>; rel="deprecation"/);const r=t&&t.pop();o.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${a.sunset}${r?`. See ${r}`:""}`)}if(A===204||A===205){return}if(e.method==="HEAD"){if(A<400){return}throw new l.RequestError(t.statusText,A,{response:{url:c,status:A,headers:a,data:void 0},request:e})}if(A===304){throw new l.RequestError("Not modified",A,{response:{url:c,status:A,headers:a,data:await getResponseData(t)},request:e})}if(A>=400){const r=await getResponseData(t);const n=new l.RequestError(toErrorMessage(r),A,{response:{url:c,status:A,headers:a,data:r},request:e});throw n}return i?await getResponseData(t):t.body})).then((e=>({status:A,url:c,headers:a,data:e}))).catch((t=>{if(t instanceof l.RequestError)throw t;else if(t.name==="AbortError")throw t;let r=t.message;if(t.name==="TypeError"&&"cause"in t){if(t.cause instanceof Error){r=t.cause.message}else if(typeof t.cause==="string"){r=t.cause}}throw new l.RequestError(r,500,{request:e})}))}async function getResponseData(e){const t=e.headers.get("content-type");if(/application\/json/.test(t)){return e.json().catch((()=>e.text())).catch((()=>""))}if(!t||/^text\/|charset=utf-8$/.test(t)){return e.text()}return getBufferResponse(e)}function toErrorMessage(e){if(typeof e==="string")return e;let t;if("documentation_url"in e){t=` - ${e.documentation_url}`}else{t=""}if("message"in e){if(Array.isArray(e.errors)){return`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}${t}`}return`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function withDefaults(e,t){const r=e.defaults(t);const newApi=function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook){return fetchWrapper(r.parse(n))}const request2=(e,t)=>fetchWrapper(r.parse(r.merge(e,t)));Object.assign(request2,{endpoint:r,defaults:withDefaults.bind(null,r)});return n.request.hook(request2,n)};return Object.assign(newApi,{endpoint:r,defaults:withDefaults.bind(null,r)})}var p=withDefaults(A.endpoint,{headers:{"user-agent":`octokit-request.js/${u} ${(0,c.getUserAgent)()}`}});0&&0},206:(e,t,r)=>{var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __copyProps=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let A of o(t))if(!i.call(e,A)&&A!==r)n(e,A,{get:()=>t[A],enumerable:!(a=s(t,A))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(n({},"__esModule",{value:true}),e);var a={};__export(a,{endpoint:()=>d});e.exports=__toCommonJS(a);var A=r(9071);var c="9.0.5";var u=`octokit-endpoint.js/${c} ${(0,A.getUserAgent)()}`;var l={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":u},mediaType:{format:""}};function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce(((t,r)=>{t[r.toLowerCase()]=e[r];return t}),{})}function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function mergeDeep(e,t){const r=Object.assign({},e);Object.keys(t).forEach((n=>{if(isPlainObject(t[n])){if(!(n in e))Object.assign(r,{[n]:t[n]});else r[n]=mergeDeep(e[n],t[n])}else{Object.assign(r,{[n]:t[n]})}}));return r}function removeUndefinedProperties(e){for(const t in e){if(e[t]===void 0){delete e[t]}}return e}function merge(e,t,r){if(typeof t==="string"){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else{r=Object.assign({},t)}r.headers=lowercaseKeys(r.headers);removeUndefinedProperties(r);removeUndefinedProperties(r.headers);const n=mergeDeep(e||{},r);if(r.url==="/graphql"){if(e&&e.mediaType.previews?.length){n.mediaType.previews=e.mediaType.previews.filter((e=>!n.mediaType.previews.includes(e))).concat(n.mediaType.previews)}n.mediaType.previews=(n.mediaType.previews||[]).map((e=>e.replace(/-preview/,"")))}return n}function addQueryParameters(e,t){const r=/\?/.test(e)?"&":"?";const n=Object.keys(t);if(n.length===0){return e}return e+r+n.map((e=>{if(e==="q"){return"q="+t.q.split("+").map(encodeURIComponent).join("+")}return`${e}=${encodeURIComponent(t[e])}`})).join("&")}var p=/\{[^}]+\}/g;function removeNonChars(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function extractUrlVariableNames(e){const t=e.match(p);if(!t){return[]}return t.map(removeNonChars).reduce(((e,t)=>e.concat(t)),[])}function omit(e,t){const r={__proto__:null};for(const n of Object.keys(e)){if(t.indexOf(n)===-1){r[n]=e[n]}}return r}function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){if(!/%[0-9A-Fa-f]/.test(e)){e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")}return e})).join("")}function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(e,t,r){t=e==="+"||e==="#"?encodeReserved(t):encodeUnreserved(t);if(r){return encodeUnreserved(r)+"="+t}else{return t}}function isDefined(e){return e!==void 0&&e!==null}function isKeyOperator(e){return e===";"||e==="&"||e==="?"}function getValues(e,t,r,n){var s=e[r],o=[];if(isDefined(s)&&s!==""){if(typeof s==="string"||typeof s==="number"||typeof s==="boolean"){s=s.toString();if(n&&n!=="*"){s=s.substring(0,parseInt(n,10))}o.push(encodeValue(t,s,isKeyOperator(t)?r:""))}else{if(n==="*"){if(Array.isArray(s)){s.filter(isDefined).forEach((function(e){o.push(encodeValue(t,e,isKeyOperator(t)?r:""))}))}else{Object.keys(s).forEach((function(e){if(isDefined(s[e])){o.push(encodeValue(t,s[e],e))}}))}}else{const e=[];if(Array.isArray(s)){s.filter(isDefined).forEach((function(r){e.push(encodeValue(t,r))}))}else{Object.keys(s).forEach((function(r){if(isDefined(s[r])){e.push(encodeUnreserved(r));e.push(encodeValue(t,s[r].toString()))}}))}if(isKeyOperator(t)){o.push(encodeUnreserved(r)+"="+e.join(","))}else if(e.length!==0){o.push(e.join(","))}}}}else{if(t===";"){if(isDefined(s)){o.push(encodeUnreserved(r))}}else if(s===""&&(t==="&"||t==="?")){o.push(encodeUnreserved(r)+"=")}else if(s===""){o.push("")}}return o}function parseUrl(e){return{expand:expand.bind(null,e)}}function expand(e,t){var r=["+","#",".","/",";","?","&"];e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,n,s){if(n){let e="";const s=[];if(r.indexOf(n.charAt(0))!==-1){e=n.charAt(0);n=n.substr(1)}n.split(/,/g).forEach((function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);s.push(getValues(t,e,n[1],n[2]||n[3]))}));if(e&&e!=="+"){var o=",";if(e==="?"){o="&"}else if(e!=="#"){o=e}return(s.length!==0?e:"")+s.join(o)}else{return s.join(",")}}else{return encodeReserved(s)}}));if(e==="/"){return e}else{return e.replace(/\/$/,"")}}function parse(e){let t=e.method.toUpperCase();let r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let n=Object.assign({},e.headers);let s;let o=omit(e,["method","baseUrl","url","headers","request","mediaType"]);const i=extractUrlVariableNames(r);r=parseUrl(r).expand(o);if(!/^http/.test(r)){r=e.baseUrl+r}const a=Object.keys(e).filter((e=>i.includes(e))).concat("baseUrl");const A=omit(o,a);const c=/application\/octet-stream/i.test(n.accept);if(!c){if(e.mediaType.format){n.accept=n.accept.split(/,/).map((t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")}if(r.endsWith("/graphql")){if(e.mediaType.previews?.length){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map((t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`})).join(",")}}}if(["GET","HEAD"].includes(t)){r=addQueryParameters(r,A)}else{if("data"in A){s=A.data}else{if(Object.keys(A).length){s=A}}}if(!n["content-type"]&&typeof s!=="undefined"){n["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(t)&&typeof s==="undefined"){s=""}return Object.assign({method:t,url:r,headers:n},typeof s!=="undefined"?{body:s}:null,e.request?{request:e.request}:null)}function endpointWithDefaults(e,t,r){return parse(merge(e,t,r))}function withDefaults(e,t){const r=merge(e,t);const n=endpointWithDefaults.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:withDefaults.bind(null,r),merge:merge.bind(null,r),parse:parse})}var d=withDefaults(null,l);0&&0},6256:(e,t,r)=>{var n=r(8987);var s=r(1095);var o=r(5930);var i=Function.bind;var a=i.bind(i);function bindApi(e,t,r){var n=a(o,null).apply(null,r?[t,r]:[t]);e.api={remove:n};e.remove=n;["before","error","after","wrap"].forEach((function(n){var o=r?[t,n,r]:[t,n];e[n]=e.api[n]=a(s,null).apply(null,o)}))}function HookSingular(){var e="h";var t={registry:{}};var r=n.bind(null,t,e);bindApi(r,t,e);return r}function HookCollection(){var e={registry:{}};var t=n.bind(null,e);bindApi(t,e);return t}var A=false;function Hook(){if(!A){console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4');A=true}return HookCollection()}Hook.Singular=HookSingular.bind();Hook.Collection=HookCollection.bind();e.exports=Hook;e.exports.Hook=Hook;e.exports.Singular=Hook.Singular;e.exports.Collection=Hook.Collection},1095:e=>{e.exports=addHook;function addHook(e,t,r,n){var s=n;if(!e.registry[r]){e.registry[r]=[]}if(t==="before"){n=function(e,t){return Promise.resolve().then(s.bind(null,t)).then(e.bind(null,t))}}if(t==="after"){n=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then((function(e){r=e;return s(r,t)})).then((function(){return r}))}}if(t==="error"){n=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch((function(e){return s(e,t)}))}}e.registry[r].push({hook:n,orig:s})}},8987:e=>{e.exports=register;function register(e,t,r,n){if(typeof r!=="function"){throw new Error("method for before hook must be a function")}if(!n){n={}}if(Array.isArray(t)){return t.reverse().reduce((function(t,r){return register.bind(null,e,r,t,n)}),r)()}return Promise.resolve().then((function(){if(!e.registry[t]){return r(n)}return e.registry[t].reduce((function(e,t){return t.hook.bind(null,e,n)}),r)()}))}},5930:e=>{e.exports=removeHook;function removeHook(e,t,r){if(!e.registry[t]){return}var n=e.registry[t].map((function(e){return e.orig})).indexOf(r);if(n===-1){return}e.registry[t].splice(n,1)}},9071:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&process.version!==undefined){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}t.getUserAgent=getUserAgent},7731:e=>{var t=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:true})};var __copyProps=(e,o,i,a)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let A of n(o))if(!s.call(e,A)&&A!==i)t(e,A,{get:()=>o[A],enumerable:!(a=r(o,A))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(t({},"__esModule",{value:true}),e);var o={};__export(o,{composePaginateRest:()=>a,isPaginatingEndpoint:()=>isPaginatingEndpoint,paginateRest:()=>paginateRest,paginatingEndpoints:()=>A});e.exports=__toCommonJS(o);var i="9.2.1";function normalizePaginatedListResponse(e){if(!e.data){return{...e,data:[]}}const t="total_count"in e.data&&!("url"in e.data);if(!t)return e;const r=e.data.incomplete_results;const n=e.data.repository_selection;const s=e.data.total_count;delete e.data.incomplete_results;delete e.data.repository_selection;delete e.data.total_count;const o=Object.keys(e.data)[0];const i=e.data[o];e.data=i;if(typeof r!=="undefined"){e.data.incomplete_results=r}if(typeof n!=="undefined"){e.data.repository_selection=n}e.data.total_count=s;return e}function iterator(e,t,r){const n=typeof t==="function"?t.endpoint(r):e.request.endpoint(t,r);const s=typeof t==="function"?t:e.request;const o=n.method;const i=n.headers;let a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:true};try{const e=await s({method:o,url:a,headers:i});const t=normalizePaginatedListResponse(e);a=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1];return{value:t}}catch(e){if(e.status!==409)throw e;a="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(e,t,r,n){if(typeof r==="function"){n=r;r=void 0}return gather(e,[],iterator(e,t,r)[Symbol.asyncIterator](),n)}function gather(e,t,r,n){return r.next().then((s=>{if(s.done){return t}let o=false;function done(){o=true}t=t.concat(n?n(s.value,done):s.value.data);if(o){return t}return gather(e,t,r,n)}))}var a=Object.assign(paginate,{iterator:iterator});var A=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","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/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}/copilot/billing/seats","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}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","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/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","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}/activity","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}/environments/{environment_name}/deployment_protection_rules/apps","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}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","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/social_accounts","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}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(e){if(typeof e==="string"){return A.includes(e)}else{return false}}function paginateRest(e){return{paginate:Object.assign(paginate.bind(null,e),{iterator:iterator.bind(null,e)})}}paginateRest.VERSION=i;0&&0},5726:e=>{var t=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var __export=(e,r)=>{for(var n in r)t(e,n,{get:r[n],enumerable:true})};var __copyProps=(e,o,i,a)=>{if(o&&typeof o==="object"||typeof o==="function"){for(let A of n(o))if(!s.call(e,A)&&A!==i)t(e,A,{get:()=>o[A],enumerable:!(a=r(o,A))||a.enumerable})}return e};var __toCommonJS=e=>__copyProps(t({},"__esModule",{value:true}),e);var o={};__export(o,{legacyRestEndpointMethods:()=>legacyRestEndpointMethods,restEndpointMethods:()=>restEndpointMethods});e.exports=__toCommonJS(o);var i="10.4.1";var a={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};var A=a;var c=new Map;for(const[e,t]of Object.entries(A)){for(const[r,n]of Object.entries(t)){const[t,s,o]=n;const[i,a]=t.split(/ /);const A=Object.assign({method:i,url:a},s);if(!c.has(e)){c.set(e,new Map)}c.get(e).set(r,{scope:e,methodName:r,endpointDefaults:A,decorations:o})}}var u={has({scope:e},t){return c.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:true,writable:true,enumerable:true}},defineProperty(e,t,r){Object.defineProperty(e.cache,t,r);return true},deleteProperty(e,t){delete e.cache[t];return true},ownKeys({scope:e}){return[...c.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n]){return r[n]}const s=c.get(t).get(n);if(!s){return void 0}const{endpointDefaults:o,decorations:i}=s;if(i){r[n]=decorate(e,t,n,o,i)}else{r[n]=e.request.defaults(o)}return r[n]}};function endpointsToMethods(e){const t={};for(const r of c.keys()){t[r]=new Proxy({octokit:e,scope:r,cache:{}},u)}return t}function decorate(e,t,r,n,s){const o=e.request.defaults(n);function withDecorations(...n){let i=o.endpoint.merge(...n);if(s.mapToData){i=Object.assign({},i,{data:i[s.mapToData],[s.mapToData]:void 0});return o(i)}if(s.renamed){const[n,o]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(s.deprecated){e.log.warn(s.deprecated)}if(s.renamedParameters){const i=o.endpoint.merge(...n);for(const[n,o]of Object.entries(s.renamedParameters)){if(n in i){e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${o}" instead`);if(!(o in i)){i[o]=i[n]}delete i[n]}}return o(i)}return o(...n)}return Object.assign(withDecorations,o)}function restEndpointMethods(e){const t=endpointsToMethods(e);return{rest:t}}restEndpointMethods.VERSION=i;function legacyRestEndpointMethods(e){const t=endpointsToMethods(e);return{...t,rest:t}}legacyRestEndpointMethods.VERSION=i;0&&0},4552:function(e,t){var r=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.PersonalAccessTokenCredentialHandler=t.BearerCredentialHandler=t.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,t){this.username=e;this.password=t}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},4844:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.HttpClient=t.isHttps=t.HttpClientResponse=t.HttpClientError=t.getProxyUrl=t.MediaTypes=t.Headers=t.HttpCodes=void 0;const a=o(r(8611));const A=o(r(5692));const c=o(r(4988));const u=o(r(770));const l=r(6752);var p;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(p||(t.HttpCodes=p={}));var d;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(d||(t.Headers=d={}));var g;(function(e){e["ApplicationJson"]="application/json"})(g||(t.MediaTypes=g={}));function getProxyUrl(e){const t=c.getProxyUrl(new URL(e));return t?t.href:""}t.getProxyUrl=getProxyUrl;const h=[p.MovedPermanently,p.ResourceMoved,p.SeeOther,p.TemporaryRedirect,p.PermanentRedirect];const E=[p.BadGateway,p.ServiceUnavailable,p.GatewayTimeout];const m=["OPTIONS","GET","DELETE","HEAD"];const I=10;const y=5;class HttpClientError extends Error{constructor(e,t){super(e);this.name="HttpClientError";this.statusCode=t;Object.setPrototypeOf(this,HttpClientError.prototype)}}t.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return i(this,void 0,void 0,(function*(){return new Promise((e=>i(this,void 0,void 0,(function*(){let t=Buffer.alloc(0);this.message.on("data",(e=>{t=Buffer.concat([t,e])}));this.message.on("end",(()=>{e(t.toString())}))}))))}))}readBodyBuffer(){return i(this,void 0,void 0,(function*(){return new Promise((e=>i(this,void 0,void 0,(function*(){const t=[];this.message.on("data",(e=>{t.push(e)}));this.message.on("end",(()=>{e(Buffer.concat(t))}))}))))}))}}t.HttpClientResponse=HttpClientResponse;function isHttps(e){const t=new URL(e);return t.protocol==="https:"}t.isHttps=isHttps;class HttpClient{constructor(e,t,r){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=t||[];this.requestOptions=r;if(r){if(r.ignoreSslError!=null){this._ignoreSslError=r.ignoreSslError}this._socketTimeout=r.socketTimeout;if(r.allowRedirects!=null){this._allowRedirects=r.allowRedirects}if(r.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=r.allowRedirectDowngrade}if(r.maxRedirects!=null){this._maxRedirects=Math.max(r.maxRedirects,0)}if(r.keepAlive!=null){this._keepAlive=r.keepAlive}if(r.allowRetries!=null){this._allowRetries=r.allowRetries}if(r.maxRetries!=null){this._maxRetries=r.maxRetries}}}options(e,t){return i(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,t||{})}))}get(e,t){return i(this,void 0,void 0,(function*(){return this.request("GET",e,null,t||{})}))}del(e,t){return i(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,t||{})}))}post(e,t,r){return i(this,void 0,void 0,(function*(){return this.request("POST",e,t,r||{})}))}patch(e,t,r){return i(this,void 0,void 0,(function*(){return this.request("PATCH",e,t,r||{})}))}put(e,t,r){return i(this,void 0,void 0,(function*(){return this.request("PUT",e,t,r||{})}))}head(e,t){return i(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,t||{})}))}sendStream(e,t,r,n){return i(this,void 0,void 0,(function*(){return this.request(e,t,r,n)}))}getJson(e,t={}){return i(this,void 0,void 0,(function*(){t[d.Accept]=this._getExistingOrDefaultHeader(t,d.Accept,g.ApplicationJson);const r=yield this.get(e,t);return this._processResponse(r,this.requestOptions)}))}postJson(e,t,r={}){return i(this,void 0,void 0,(function*(){const n=JSON.stringify(t,null,2);r[d.Accept]=this._getExistingOrDefaultHeader(r,d.Accept,g.ApplicationJson);r[d.ContentType]=this._getExistingOrDefaultHeader(r,d.ContentType,g.ApplicationJson);const s=yield this.post(e,n,r);return this._processResponse(s,this.requestOptions)}))}putJson(e,t,r={}){return i(this,void 0,void 0,(function*(){const n=JSON.stringify(t,null,2);r[d.Accept]=this._getExistingOrDefaultHeader(r,d.Accept,g.ApplicationJson);r[d.ContentType]=this._getExistingOrDefaultHeader(r,d.ContentType,g.ApplicationJson);const s=yield this.put(e,n,r);return this._processResponse(s,this.requestOptions)}))}patchJson(e,t,r={}){return i(this,void 0,void 0,(function*(){const n=JSON.stringify(t,null,2);r[d.Accept]=this._getExistingOrDefaultHeader(r,d.Accept,g.ApplicationJson);r[d.ContentType]=this._getExistingOrDefaultHeader(r,d.ContentType,g.ApplicationJson);const s=yield this.patch(e,n,r);return this._processResponse(s,this.requestOptions)}))}request(e,t,r,n){return i(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const s=new URL(t);let o=this._prepareRequest(e,s,n);const i=this._allowRetries&&m.includes(e)?this._maxRetries+1:1;let a=0;let A;do{A=yield this.requestRaw(o,r);if(A&&A.message&&A.message.statusCode===p.Unauthorized){let e;for(const t of this.handlers){if(t.canHandleAuthentication(A)){e=t;break}}if(e){return e.handleAuthentication(this,o,r)}else{return A}}let t=this._maxRedirects;while(A.message.statusCode&&h.includes(A.message.statusCode)&&this._allowRedirects&&t>0){const i=A.message.headers["location"];if(!i){break}const a=new URL(i);if(s.protocol==="https:"&&s.protocol!==a.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield A.readBody();if(a.hostname!==s.hostname){for(const e in n){if(e.toLowerCase()==="authorization"){delete n[e]}}}o=this._prepareRequest(e,a,n);A=yield this.requestRaw(o,r);t--}if(!A.message.statusCode||!E.includes(A.message.statusCode)){return A}a+=1;if(a{function callbackForResult(e,t){if(e){n(e)}else if(!t){n(new Error("Unknown error"))}else{r(t)}}this.requestRawWithCallback(e,t,callbackForResult)}))}))}requestRawWithCallback(e,t,r){if(typeof t==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8")}let n=false;function handleResult(e,t){if(!n){n=true;r(e,t)}}const s=e.httpModule.request(e.options,(e=>{const t=new HttpClientResponse(e);handleResult(undefined,t)}));let o;s.on("socket",(e=>{o=e}));s.setTimeout(this._socketTimeout||3*6e4,(()=>{if(o){o.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));s.on("error",(function(e){handleResult(e)}));if(t&&typeof t==="string"){s.write(t,"utf8")}if(t&&typeof t!=="string"){t.on("close",(function(){s.end()}));t.pipe(s)}else{s.end()}}getAgent(e){const t=new URL(e);return this._getAgent(t)}getAgentDispatcher(e){const t=new URL(e);const r=c.getProxyUrl(t);const n=r&&r.hostname;if(!n){return}return this._getProxyAgentDispatcher(t,r)}_prepareRequest(e,t,r){const n={};n.parsedUrl=t;const s=n.parsedUrl.protocol==="https:";n.httpModule=s?A:a;const o=s?443:80;n.options={};n.options.host=n.parsedUrl.hostname;n.options.port=n.parsedUrl.port?parseInt(n.parsedUrl.port):o;n.options.path=(n.parsedUrl.pathname||"")+(n.parsedUrl.search||"");n.options.method=e;n.options.headers=this._mergeHeaders(r);if(this.userAgent!=null){n.options.headers["user-agent"]=this.userAgent}n.options.agent=this._getAgent(n.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(n.options)}}return n}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,t,r){let n;if(this.requestOptions&&this.requestOptions.headers){n=lowercaseKeys(this.requestOptions.headers)[t]}return e[t]||n||r}_getAgent(e){let t;const r=c.getProxyUrl(e);const n=r&&r.hostname;if(this._keepAlive&&n){t=this._proxyAgent}if(!n){t=this._agent}if(t){return t}const s=e.protocol==="https:";let o=100;if(this.requestOptions){o=this.requestOptions.maxSockets||a.globalAgent.maxSockets}if(r&&r.hostname){const e={maxSockets:o,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})};let n;const i=r.protocol==="https:";if(s){n=i?u.httpsOverHttps:u.httpsOverHttp}else{n=i?u.httpOverHttps:u.httpOverHttp}t=n(e);this._proxyAgent=t}if(!t){const e={keepAlive:this._keepAlive,maxSockets:o};t=s?new A.Agent(e):new a.Agent(e);this._agent=t}if(s&&this._ignoreSslError){t.options=Object.assign(t.options||{},{rejectUnauthorized:false})}return t}_getProxyAgentDispatcher(e,t){let r;if(this._keepAlive){r=this._proxyAgentDispatcher}if(r){return r}const n=e.protocol==="https:";r=new l.ProxyAgent(Object.assign({uri:t.href,pipelining:!this._keepAlive?0:1},(t.username||t.password)&&{token:`Basic ${Buffer.from(`${t.username}:${t.password}`).toString("base64")}`}));this._proxyAgentDispatcher=r;if(n&&this._ignoreSslError){r.options=Object.assign(r.options.requestTls||{},{rejectUnauthorized:false})}return r}_performExponentialBackoff(e){return i(this,void 0,void 0,(function*(){e=Math.min(I,e);const t=y*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),t)))}))}_processResponse(e,t){return i(this,void 0,void 0,(function*(){return new Promise(((r,n)=>i(this,void 0,void 0,(function*(){const s=e.message.statusCode||0;const o={statusCode:s,result:null,headers:{}};if(s===p.NotFound){r(o)}function dateTimeDeserializer(e,t){if(typeof t==="string"){const e=new Date(t);if(!isNaN(e.valueOf())){return e}}return t}let i;let a;try{a=yield e.readBody();if(a&&a.length>0){if(t&&t.deserializeDates){i=JSON.parse(a,dateTimeDeserializer)}else{i=JSON.parse(a)}o.result=i}o.headers=e.message.headers}catch(e){}if(s>299){let e;if(i&&i.message){e=i.message}else if(a&&a.length>0){e=a}else{e=`Failed request: (${s})`}const t=new HttpClientError(e,s);t.result=o.result;n(t)}else{r(o)}}))))}))}}t.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((t,r)=>(t[r.toLowerCase()]=e[r],t)),{})},4988:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.checkBypass=t.getProxyUrl=void 0;function getProxyUrl(e){const t=e.protocol==="https:";if(checkBypass(e)){return undefined}const r=(()=>{if(t){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(r){try{return new DecodedURL(r)}catch(e){if(!r.startsWith("http://")&&!r.startsWith("https://"))return new DecodedURL(`http://${r}`)}}else{return undefined}}t.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const t=e.hostname;if(isLoopbackAddress(t)){return true}const r=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!r){return false}let n;if(e.port){n=Number(e.port)}else if(e.protocol==="http:"){n=80}else if(e.protocol==="https:"){n=443}const s=[e.hostname.toUpperCase()];if(typeof n==="number"){s.push(`${s[0]}:${n}`)}for(const e of r.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(e==="*"||s.some((t=>t===e||t.endsWith(`.${e}`)||e.startsWith(".")&&t.endsWith(`${e}`)))){return true}}return false}t.checkBypass=checkBypass;function isLoopbackAddress(e){const t=e.toLowerCase();return t==="localhost"||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]")}class DecodedURL extends URL{constructor(e,t){super(e,t);this._decodedUsername=decodeURIComponent(super.username);this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}},5207:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};var a;Object.defineProperty(t,"__esModule",{value:true});t.getCmdPath=t.tryGetExecutablePath=t.isRooted=t.isDirectory=t.exists=t.READONLY=t.UV_FS_O_EXLOCK=t.IS_WINDOWS=t.unlink=t.symlink=t.stat=t.rmdir=t.rm=t.rename=t.readlink=t.readdir=t.open=t.mkdir=t.lstat=t.copyFile=t.chmod=void 0;const A=o(r(9896));const c=o(r(6928));a=A.promises,t.chmod=a.chmod,t.copyFile=a.copyFile,t.lstat=a.lstat,t.mkdir=a.mkdir,t.open=a.open,t.readdir=a.readdir,t.readlink=a.readlink,t.rename=a.rename,t.rm=a.rm,t.rmdir=a.rmdir,t.stat=a.stat,t.symlink=a.symlink,t.unlink=a.unlink;t.IS_WINDOWS=process.platform==="win32";t.UV_FS_O_EXLOCK=268435456;t.READONLY=A.constants.O_RDONLY;function exists(e){return i(this,void 0,void 0,(function*(){try{yield t.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true}))}t.exists=exists;function isDirectory(e,r=false){return i(this,void 0,void 0,(function*(){const n=r?yield t.stat(e):yield t.lstat(e);return n.isDirectory()}))}t.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(t.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.isRooted=isRooted;function tryGetExecutablePath(e,r){return i(this,void 0,void 0,(function*(){let n=undefined;try{n=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(n&&n.isFile()){if(t.IS_WINDOWS){const t=c.extname(e).toUpperCase();if(r.some((e=>e.toUpperCase()===t))){return e}}else{if(isUnixExecutable(n)){return e}}}const s=e;for(const o of r){e=s+o;n=undefined;try{n=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(n&&n.isFile()){if(t.IS_WINDOWS){try{const r=c.dirname(e);const n=c.basename(e).toUpperCase();for(const s of yield t.readdir(r)){if(n===s.toUpperCase()){e=c.join(r,s);break}}}catch(t){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${t}`)}return e}else{if(isUnixExecutable(n)){return e}}}}return""}))}t.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(t.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function getCmdPath(){var e;return(e=process.env["COMSPEC"])!==null&&e!==void 0?e:`cmd.exe`}t.getCmdPath=getCmdPath},4994:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))n(t,e,r);s(t,e);return t};var i=this&&this.__awaiter||function(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(n.next(e))}catch(e){s(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.findInPath=t.which=t.mkdirP=t.rmRF=t.mv=t.cp=void 0;const a=r(2613);const A=o(r(6928));const c=o(r(5207));function cp(e,t,r={}){return i(this,void 0,void 0,(function*(){const{force:n,recursive:s,copySourceDirectory:o}=readCopyOptions(r);const i=(yield c.exists(t))?yield c.stat(t):null;if(i&&i.isFile()&&!n){return}const a=i&&i.isDirectory()&&o?A.join(t,A.basename(e)):t;if(!(yield c.exists(e))){throw new Error(`no such file or directory: ${e}`)}const u=yield c.stat(e);if(u.isDirectory()){if(!s){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,a,0,n)}}else{if(A.relative(e,a)===""){throw new Error(`'${a}' and '${e}' are the same file`)}yield copyFile(e,a,n)}}))}t.cp=cp;function mv(e,t,r={}){return i(this,void 0,void 0,(function*(){if(yield c.exists(t)){let n=true;if(yield c.isDirectory(t)){t=A.join(t,A.basename(e));n=yield c.exists(t)}if(n){if(r.force==null||r.force){yield rmRF(t)}else{throw new Error("Destination already exists")}}}yield mkdirP(A.dirname(t));yield c.rename(e,t)}))}t.mv=mv;function rmRF(e){return i(this,void 0,void 0,(function*(){if(c.IS_WINDOWS){if(/[*"<>|]/.test(e)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}}try{yield c.rm(e,{force:true,maxRetries:3,recursive:true,retryDelay:300})}catch(e){throw new Error(`File was unable to be removed ${e}`)}}))}t.rmRF=rmRF;function mkdirP(e){return i(this,void 0,void 0,(function*(){a.ok(e,"a path argument must be provided");yield c.mkdir(e,{recursive:true})}))}t.mkdirP=mkdirP;function which(e,t){return i(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}if(t){const t=yield which(e,false);if(!t){if(c.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return t}const r=yield findInPath(e);if(r&&r.length>0){return r[0]}return""}))}t.which=which;function findInPath(e){return i(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}const t=[];if(c.IS_WINDOWS&&process.env["PATHEXT"]){for(const e of process.env["PATHEXT"].split(A.delimiter)){if(e){t.push(e)}}}if(c.isRooted(e)){const r=yield c.tryGetExecutablePath(e,t);if(r){return[r]}return[]}if(e.includes(A.sep)){return[]}const r=[];if(process.env.PATH){for(const e of process.env.PATH.split(A.delimiter)){if(e){r.push(e)}}}const n=[];for(const s of r){const r=yield c.tryGetExecutablePath(A.join(s,e),t);if(r){n.push(r)}}return n}))}t.findInPath=findInPath;function readCopyOptions(e){const t=e.force==null?true:e.force;const r=Boolean(e.recursive);const n=e.copySourceDirectory==null?true:Boolean(e.copySourceDirectory);return{force:t,recursive:r,copySourceDirectory:n}}function cpDirRecursive(e,t,r,n){return i(this,void 0,void 0,(function*(){if(r>=255)return;r++;yield mkdirP(t);const s=yield c.readdir(e);for(const o of s){const s=`${e}/${o}`;const i=`${t}/${o}`;const a=yield c.lstat(s);if(a.isDirectory()){yield cpDirRecursive(s,i,r,n)}else{yield copyFile(s,i,n)}}yield c.chmod(t,(yield c.stat(e)).mode)}))}function copyFile(e,t,r){return i(this,void 0,void 0,(function*(){if((yield c.lstat(e)).isSymbolicLink()){try{yield c.lstat(t);yield c.unlink(t)}catch(e){if(e.code==="EPERM"){yield c.chmod(t,"0666");yield c.unlink(t)}}const r=yield c.readlink(e);yield c.symlink(r,t,c.IS_WINDOWS?"junction":null)}else if(!(yield c.exists(t))||r){yield c.copyFile(e,t)}}))}},3251:function(e){(function(t,r){true?e.exports=r():0})(this,(function(){"use strict";var e=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function getCjsExportFromNamespace(e){return e&&e["default"]||e}var load=function(e,t,r={}){var n,s,o;for(n in t){o=t[n];r[n]=(s=e[n])!=null?s:o}return r};var overwrite=function(e,t,r={}){var n,s;for(n in e){s=e[n];if(t[n]!==void 0){r[n]=s}}return r};var t={load:load,overwrite:overwrite};var r;r=class DLList{constructor(e,t){this.incr=e;this.decr=t;this._first=null;this._last=null;this.length=0}push(e){var t;this.length++;if(typeof this.incr==="function"){this.incr()}t={value:e,prev:this._last,next:null};if(this._last!=null){this._last.next=t;this._last=t}else{this._first=this._last=t}return void 0}shift(){var e;if(this._first==null){return}else{this.length--;if(typeof this.decr==="function"){this.decr()}}e=this._first.value;if((this._first=this._first.next)!=null){this._first.prev=null}else{this._last=null}return e}first(){if(this._first!=null){return this._first.value}}getArray(){var e,t,r;e=this._first;r=[];while(e!=null){r.push((t=e,e=e.next,t.value))}return r}forEachShift(e){var t;t=this.shift();while(t!=null){e(t),t=this.shift()}return void 0}debug(){var e,t,r,n,s;e=this._first;s=[];while(e!=null){s.push((t=e,e=e.next,{value:t.value,prev:(r=t.prev)!=null?r.value:void 0,next:(n=t.next)!=null?n.value:void 0}))}return s}};var n=r;var s;s=class Events{constructor(e){this.instance=e;this._events={};if(this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null){throw new Error("An Emitter already exists for this object")}this.instance.on=(e,t)=>this._addListener(e,"many",t);this.instance.once=(e,t)=>this._addListener(e,"once",t);this.instance.removeAllListeners=(e=null)=>{if(e!=null){return delete this._events[e]}else{return this._events={}}}}_addListener(e,t,r){var n;if((n=this._events)[e]==null){n[e]=[]}this._events[e].push({cb:r,status:t});return this.instance}listenerCount(e){if(this._events[e]!=null){return this._events[e].length}else{return 0}}async trigger(e,...t){var r,n;try{if(e!=="debug"){this.trigger("debug",`Event triggered: ${e}`,t)}if(this._events[e]==null){return}this._events[e]=this._events[e].filter((function(e){return e.status!=="none"}));n=this._events[e].map((async e=>{var r,n;if(e.status==="none"){return}if(e.status==="once"){e.status="none"}try{n=typeof e.cb==="function"?e.cb(...t):void 0;if(typeof(n!=null?n.then:void 0)==="function"){return await n}else{return n}}catch(e){r=e;{this.trigger("error",r)}return null}}));return(await Promise.all(n)).find((function(e){return e!=null}))}catch(e){r=e;{this.trigger("error",r)}return null}}};var o=s;var i,a,A;i=n;a=o;A=class Queues{constructor(e){var t;this.Events=new a(this);this._length=0;this._lists=function(){var r,n,s;s=[];for(t=r=1,n=e;1<=n?r<=n:r>=n;t=1<=n?++r:--r){s.push(new i((()=>this.incr()),(()=>this.decr())))}return s}.call(this)}incr(){if(this._length++===0){return this.Events.trigger("leftzero")}}decr(){if(--this._length===0){return this.Events.trigger("zero")}}push(e){return this._lists[e.options.priority].push(e)}queued(e){if(e!=null){return this._lists[e].length}else{return this._length}}shiftAll(e){return this._lists.forEach((function(t){return t.forEachShift(e)}))}getFirst(e=this._lists){var t,r,n;for(t=0,r=e.length;t0){return n}}return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var c=A;var u;u=class BottleneckError extends Error{};var l=u;var p,d,g,h,E;h=10;d=5;E=t;p=l;g=class Job{constructor(e,t,r,n,s,o,i,a){this.task=e;this.args=t;this.rejectOnDrop=s;this.Events=o;this._states=i;this.Promise=a;this.options=E.load(r,n);this.options.priority=this._sanitizePriority(this.options.priority);if(this.options.id===n.id){this.options.id=`${this.options.id}-${this._randomIndex()}`}this.promise=new this.Promise(((e,t)=>{this._resolve=e;this._reject=t}));this.retryCount=0}_sanitizePriority(e){var t;t=~~e!==e?d:e;if(t<0){return 0}else if(t>h-1){return h-1}else{return t}}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t="This job has been dropped by Bottleneck"}={}){if(this._states.remove(this.options.id)){if(this.rejectOnDrop){this._reject(e!=null?e:new p(t))}this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise});return true}else{return false}}_assertStatus(e){var t;t=this._states.jobStatus(this.options.id);if(!(t===e||e==="DONE"&&t===null)){throw new p(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}}doReceive(){this._states.start(this.options.id);return this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,t){this._assertStatus("RECEIVED");this._states.next(this.options.id);return this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){if(this.retryCount===0){this._assertStatus("QUEUED");this._states.next(this.options.id)}else{this._assertStatus("EXECUTING")}return this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(e,t,r,n){var s,o,i;if(this.retryCount===0){this._assertStatus("RUNNING");this._states.next(this.options.id)}else{this._assertStatus("EXECUTING")}o={args:this.args,options:this.options,retryCount:this.retryCount};this.Events.trigger("executing",o);try{i=await(e!=null?e.schedule(this.options,this.task,...this.args):this.task(...this.args));if(t()){this.doDone(o);await n(this.options,o);this._assertStatus("DONE");return this._resolve(i)}}catch(e){s=e;return this._onFailure(s,o,t,r,n)}}doExpire(e,t,r){var n,s;if(this._states.jobStatus(this.options.id==="RUNNING")){this._states.next(this.options.id)}this._assertStatus("EXECUTING");s={args:this.args,options:this.options,retryCount:this.retryCount};n=new p(`This job timed out after ${this.options.expiration} ms.`);return this._onFailure(n,s,e,t,r)}async _onFailure(e,t,r,n,s){var o,i;if(r()){o=await this.Events.trigger("failed",e,t);if(o!=null){i=~~o;this.Events.trigger("retry",`Retrying ${this.options.id} after ${i} ms`,t);this.retryCount++;return n(i)}else{this.doDone(t);await s(this.options,t);this._assertStatus("DONE");return this._reject(e)}}}doDone(e){this._assertStatus("EXECUTING");this._states.next(this.options.id);return this.Events.trigger("done",e)}};var m=g;var I,y,C;C=t;I=l;y=class LocalDatastore{constructor(e,t,r){this.instance=e;this.storeOptions=t;this.clientId=this.instance._randomIndex();C.load(r,r,this);this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now();this._running=0;this._done=0;this._unblockTime=0;this.ready=this.Promise.resolve();this.clients={};this._startHeartbeat()}_startHeartbeat(){var e;if(this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)){return typeof(e=this.heartbeat=setInterval((()=>{var e,t,r,n,s;n=Date.now();if(this.storeOptions.reservoirRefreshInterval!=null&&n>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval){this._lastReservoirRefresh=n;this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount;this.instance._drainAll(this.computeCapacity())}if(this.storeOptions.reservoirIncreaseInterval!=null&&n>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){({reservoirIncreaseAmount:e,reservoirIncreaseMaximum:r,reservoir:s}=this.storeOptions);this._lastReservoirIncrease=n;t=r!=null?Math.min(e,r-s):e;if(t>0){this.storeOptions.reservoir+=t;return this.instance._drainAll(this.computeCapacity())}}}),this.heartbeatInterval)).unref==="function"?e.unref():void 0}else{return clearInterval(this.heartbeat)}}async __publish__(e){await this.yieldLoop();return this.instance.Events.trigger("message",e.toString())}async __disconnect__(e){await this.yieldLoop();clearInterval(this.heartbeat);return this.Promise.resolve()}yieldLoop(e=0){return new this.Promise((function(t,r){return setTimeout(t,e)}))}computePenalty(){var e;return(e=this.storeOptions.penalty)!=null?e:15*this.storeOptions.minTime||5e3}async __updateSettings__(e){await this.yieldLoop();C.overwrite(e,e,this.storeOptions);this._startHeartbeat();this.instance._drainAll(this.computeCapacity());return true}async __running__(){await this.yieldLoop();return this._running}async __queued__(){await this.yieldLoop();return this.instance.queued()}async __done__(){await this.yieldLoop();return this._done}async __groupCheck__(e){await this.yieldLoop();return this._nextRequest+this.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}async __check__(e){var t;await this.yieldLoop();t=Date.now();return this.check(e,t)}async __register__(e,t,r){var n,s;await this.yieldLoop();n=Date.now();if(this.conditionsCheck(t)){this._running+=t;if(this.storeOptions.reservoir!=null){this.storeOptions.reservoir-=t}s=Math.max(this._nextRequest-n,0);this._nextRequest=n+s+this.storeOptions.minTime;return{success:true,wait:s,reservoir:this.storeOptions.reservoir}}else{return{success:false}}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(e,t){var r,n,s;await this.yieldLoop();if(this.storeOptions.maxConcurrent!=null&&t>this.storeOptions.maxConcurrent){throw new I(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`)}n=Date.now();s=this.storeOptions.highWater!=null&&e===this.storeOptions.highWater&&!this.check(t,n);r=this.strategyIsBlock()&&(s||this.isBlocked(n));if(r){this._unblockTime=n+this.computePenalty();this._nextRequest=this._unblockTime+this.storeOptions.minTime;this.instance._dropAllQueued()}return{reachedHWM:s,blocked:r,strategy:this.storeOptions.strategy}}async __free__(e,t){await this.yieldLoop();this._running-=t;this._done+=t;this.instance._drainAll(this.computeCapacity());return{running:this._running}}};var Q=y;var B,b;B=l;b=class States{constructor(e){this.status=e;this._jobs={};this.counts=this.status.map((function(){return 0}))}next(e){var t,r;t=this._jobs[e];r=t+1;if(t!=null&&r{e[this.status[r]]=t;return e}),{})}};var T=b;var w,v;w=n;v=class Sync{constructor(e,t){this.schedule=this.schedule.bind(this);this.name=e;this.Promise=t;this._running=0;this._queue=new w}isEmpty(){return this._queue.length===0}async _tryToRun(){var e,t,r,n,s,o,i;if(this._running<1&&this._queue.length>0){this._running++;({task:i,args:e,resolve:s,reject:n}=this._queue.shift());t=await async function(){try{o=await i(...e);return function(){return s(o)}}catch(e){r=e;return function(){return n(r)}}}();this._running--;this._tryToRun();return t()}}schedule(e,...t){var r,n,s;s=n=null;r=new this.Promise((function(e,t){s=e;return n=t}));this._queue.push({task:e,args:t,resolve:s,reject:n});this._tryToRun();return r}};var R=v;var k="2.19.5";var D={version:k};var _=Object.freeze({version:k,default:D});var require$$2=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var require$$3=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var require$$4=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var S,F,N,O,L,U;U=t;S=o;O=require$$2;N=require$$3;L=require$$4;F=function(){class Group{constructor(e={}){this.deleteKey=this.deleteKey.bind(this);this.limiterOptions=e;U.load(this.limiterOptions,this.defaults,this);this.Events=new S(this);this.instances={};this.Bottleneck=re;this._startAutoCleanup();this.sharedConnection=this.connection!=null;if(this.connection==null){if(this.limiterOptions.datastore==="redis"){this.connection=new O(Object.assign({},this.limiterOptions,{Events:this.Events}))}else if(this.limiterOptions.datastore==="ioredis"){this.connection=new N(Object.assign({},this.limiterOptions,{Events:this.Events}))}}}key(e=""){var t;return(t=this.instances[e])!=null?t:(()=>{var t;t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection}));this.Events.trigger("created",t,e);return t})()}async deleteKey(e=""){var t,r;r=this.instances[e];if(this.connection){t=await this.connection.__runCommand__(["del",...L.allKeys(`${this.id}-${e}`)])}if(r!=null){delete this.instances[e];await r.disconnect()}return r!=null||t>0}limiters(){var e,t,r,n;t=this.instances;r=[];for(e in t){n=t[e];r.push({key:e,limiter:n})}return r}keys(){return Object.keys(this.instances)}async clusterKeys(){var e,t,r,n,s,o,i,a,A;if(this.connection==null){return this.Promise.resolve(this.keys())}o=[];e=null;A=`b_${this.id}-`.length;t="_settings".length;while(e!==0){[a,r]=await this.connection.__runCommand__(["scan",e!=null?e:0,"match",`b_${this.id}-*_settings`,"count",1e4]);e=~~a;for(n=0,i=r.length;n{var e,t,r,n,s,o;s=Date.now();r=this.instances;n=[];for(t in r){o=r[t];try{if(await o._store.__groupCheck__(s)){n.push(this.deleteKey(t))}else{n.push(void 0)}}catch(t){e=t;n.push(o.Events.trigger("error",e))}}return n}),this.timeout/2)).unref==="function"?e.unref():void 0}updateSettings(e={}){U.overwrite(e,this.defaults,this);U.overwrite(e,e,this.limiterOptions);if(e.timeout!=null){return this._startAutoCleanup()}}disconnect(e=true){var t;if(!this.sharedConnection){return(t=this.connection)!=null?t.disconnect(e):void 0}}}Group.prototype.defaults={timeout:1e3*60*5,connection:null,Promise:Promise,id:"group-key"};return Group}.call(e);var G=F;var P,M,x;x=t;M=o;P=function(){class Batcher{constructor(e={}){this.options=e;x.load(this.options,this.defaults,this);this.Events=new M(this);this._arr=[];this._resetPromise();this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise(((e,t)=>this._resolve=e))}_flush(){clearTimeout(this._timeout);this._lastFlush=Date.now();this._resolve();this.Events.trigger("batch",this._arr);this._arr=[];return this._resetPromise()}add(e){var t;this._arr.push(e);t=this._promise;if(this._arr.length===this.maxSize){this._flush()}else if(this.maxTime!=null&&this._arr.length===1){this._timeout=setTimeout((()=>this._flush()),this.maxTime)}return t}}Batcher.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise};return Batcher}.call(e);var V=P;var require$$4$1=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var j=getCjsExportFromNamespace(_);var H,Y,q,J,W,K,$,z,Z,X,ee,te=[].splice;K=10;Y=5;ee=t;$=c;J=m;W=Q;z=require$$4$1;q=o;Z=T;X=R;H=function(){class Bottleneck{constructor(e={},...t){var r,n;this._addToQueue=this._addToQueue.bind(this);this._validateOptions(e,t);ee.load(e,this.instanceDefaults,this);this._queues=new $(K);this._scheduled={};this._states=new Z(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[]));this._limiter=null;this.Events=new q(this);this._submitLock=new X("submit",this.Promise);this._registerLock=new X("register",this.Promise);n=ee.load(e,this.storeDefaults,{});this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null){r=ee.load(e,this.redisStoreDefaults,{});return new z(this,n,r)}else if(this.datastore==="local"){r=ee.load(e,this.localStoreDefaults,{});return new W(this,n,r)}else{throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}}.call(this);this._queues.on("leftzero",(()=>{var e;return(e=this._store.heartbeat)!=null?typeof e.ref==="function"?e.ref():void 0:void 0}));this._queues.on("zero",(()=>{var e;return(e=this._store.heartbeat)!=null?typeof e.unref==="function"?e.unref():void 0:void 0}))}_validateOptions(e,t){if(!(e!=null&&typeof e==="object"&&t.length===0)){throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=true){return this._store.__disconnect__(e)}chain(e){this._limiter=e;return this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){if(this._scheduled[e]!=null){clearTimeout(this._scheduled[e].expiration);delete this._scheduled[e];return true}else{return false}}async _free(e,t,r,n){var s,o;try{({running:o}=await this._store.__free__(e,r.weight));this.Events.trigger("debug",`Freed ${r.id}`,n);if(o===0&&this.empty()){return this.Events.trigger("idle")}}catch(e){s=e;return this.Events.trigger("error",s)}}_run(e,t,r){var n,s,o;t.doRun();n=this._clearGlobalState.bind(this,e);o=this._run.bind(this,e,t);s=this._free.bind(this,e,t);return this._scheduled[e]={timeout:setTimeout((()=>t.doExecute(this._limiter,n,o,s)),r),expiration:t.options.expiration!=null?setTimeout((function(){return t.doExpire(n,o,s)}),r+t.options.expiration):void 0,job:t}}_drainOne(e){return this._registerLock.schedule((()=>{var t,r,n,s,o;if(this.queued()===0){return this.Promise.resolve(null)}o=this._queues.getFirst();({options:s,args:t}=n=o.first());if(e!=null&&s.weight>e){return this.Promise.resolve(null)}this.Events.trigger("debug",`Draining ${s.id}`,{args:t,options:s});r=this._randomIndex();return this._store.__register__(r,s.weight,s.expiration).then((({success:e,wait:i,reservoir:a})=>{var A;this.Events.trigger("debug",`Drained ${s.id}`,{success:e,args:t,options:s});if(e){o.shift();A=this.empty();if(A){this.Events.trigger("empty")}if(a===0){this.Events.trigger("depleted",A)}this._run(r,n,i);return this.Promise.resolve(s.weight)}else{return this.Promise.resolve(null)}}))}))}_drainAll(e,t=0){return this._drainOne(e).then((r=>{var n;if(r!=null){n=e!=null?e-r:e;return this._drainAll(n,t+r)}else{return this.Promise.resolve(t)}})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(t){return t.doDrop({message:e})}))}stop(e={}){var t,r;e=ee.load(e,this.stopDefaults);r=e=>{var t;t=()=>{var t;t=this._states.counts;return t[0]+t[1]+t[2]+t[3]===e};return new this.Promise(((e,r)=>{if(t()){return e()}else{return this.on("done",(()=>{if(t()){this.removeAllListeners("done");return e()}}))}}))};t=e.dropWaitingJobs?(this._run=function(t,r){return r.doDrop({message:e.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var t,n,s;n=this._scheduled;for(t in n){s=n[t];if(this.jobStatus(s.job.options.id)==="RUNNING"){clearTimeout(s.timeout);clearTimeout(s.expiration);s.job.doDrop({message:e.dropErrorMessage})}}this._dropAllQueued(e.dropErrorMessage);return r(0)}))))):this.schedule({priority:K-1,weight:0},(()=>r(1)));this._receive=function(t){return t._reject(new Bottleneck.prototype.BottleneckError(e.enqueueErrorMessage))};this.stop=()=>this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called"));return t}async _addToQueue(e){var t,r,n,s,o,i,a;({args:t,options:s}=e);try{({reachedHWM:o,blocked:r,strategy:a}=await this._store.__submit__(this.queued(),s.weight))}catch(r){n=r;this.Events.trigger("debug",`Could not queue ${s.id}`,{args:t,options:s,error:n});e.doDrop({error:n});return false}if(r){e.doDrop();return true}else if(o){i=a===Bottleneck.prototype.strategy.LEAK?this._queues.shiftLastFrom(s.priority):a===Bottleneck.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(s.priority+1):a===Bottleneck.prototype.strategy.OVERFLOW?e:void 0;if(i!=null){i.doDrop()}if(i==null||a===Bottleneck.prototype.strategy.OVERFLOW){if(i==null){e.doDrop()}return o}}e.doQueue(o,r);this._queues.push(e);await this._drainAll();return o}_receive(e){if(this._states.jobStatus(e.options.id)!=null){e._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${e.options.id})`));return false}else{e.doReceive();return this._submitLock.schedule(this._addToQueue,e)}}submit(...e){var t,r,n,s,o,i,a;if(typeof e[0]==="function"){o=e,[r,...e]=o,[t]=te.call(e,-1);s=ee.load({},this.jobDefaults)}else{i=e,[s,r,...e]=i,[t]=te.call(e,-1);s=ee.load(s,this.jobDefaults)}a=(...e)=>new this.Promise((function(t,n){return r(...e,(function(...e){return(e[0]!=null?n:t)(e)}))}));n=new J(a,e,s,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise);n.promise.then((function(e){return typeof t==="function"?t(...e):void 0})).catch((function(e){if(Array.isArray(e)){return typeof t==="function"?t(...e):void 0}else{return typeof t==="function"?t(e):void 0}}));return this._receive(n)}schedule(...e){var t,r,n;if(typeof e[0]==="function"){[n,...e]=e;r={}}else{[r,n,...e]=e}t=new J(n,e,r,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise);this._receive(t);return t.promise}wrap(e){var t,r;t=this.schedule.bind(this);r=function(...r){return t(e.bind(this),...r)};r.withOptions=function(r,...n){return t(r,e,...n)};return r}async updateSettings(e={}){await this._store.__updateSettings__(ee.overwrite(e,this.storeDefaults));ee.overwrite(e,this.instanceDefaults,this);return this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}Bottleneck.default=Bottleneck;Bottleneck.Events=q;Bottleneck.version=Bottleneck.prototype.version=j.version;Bottleneck.strategy=Bottleneck.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3};Bottleneck.BottleneckError=Bottleneck.prototype.BottleneckError=l;Bottleneck.Group=Bottleneck.prototype.Group=G;Bottleneck.RedisConnection=Bottleneck.prototype.RedisConnection=require$$2;Bottleneck.IORedisConnection=Bottleneck.prototype.IORedisConnection=require$$3;Bottleneck.Batcher=Bottleneck.prototype.Batcher=V;Bottleneck.prototype.jobDefaults={priority:Y,weight:1,expiration:null,id:""};Bottleneck.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Bottleneck.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null};Bottleneck.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250};Bottleneck.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:false,connection:null};Bottleneck.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:true,trackDoneStatus:false,Promise:Promise};Bottleneck.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:true,dropErrorMessage:"This limiter has been stopped."};return Bottleneck}.call(e);var re=H;var ne=re;return ne}))},4150:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});class Deprecation extends Error{constructor(e){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="Deprecation"}}t.Deprecation=Deprecation},8889:(e,t,r)=>{const n=r(9896);const s=r(6928);const o=r(857);const i=r(6982);const a=r(56);const A=a.version;const c=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function parse(e){const t={};let r=e.toString();r=r.replace(/\r\n?/gm,"\n");let n;while((n=c.exec(r))!=null){const e=n[1];let r=n[2]||"";r=r.trim();const s=r[0];r=r.replace(/^(['"`])([\s\S]*)\1$/gm,"$2");if(s==='"'){r=r.replace(/\\n/g,"\n");r=r.replace(/\\r/g,"\r")}t[e]=r}return t}function _parseVault(e){const t=_vaultPath(e);const r=u.configDotenv({path:t});if(!r.parsed){const e=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);e.code="MISSING_DATA";throw e}const n=_dotenvKey(e).split(",");const s=n.length;let o;for(let e=0;e=s){throw t}}}return u.parse(o)}function _log(e){console.log(`[dotenv@${A}][INFO] ${e}`)}function _warn(e){console.log(`[dotenv@${A}][WARN] ${e}`)}function _debug(e){console.log(`[dotenv@${A}][DEBUG] ${e}`)}function _dotenvKey(e){if(e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0){return e.DOTENV_KEY}if(process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0){return process.env.DOTENV_KEY}return""}function _instructions(e,t){let r;try{r=new URL(t)}catch(e){if(e.code==="ERR_INVALID_URL"){const e=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");e.code="INVALID_DOTENV_KEY";throw e}throw e}const n=r.password;if(!n){const e=new Error("INVALID_DOTENV_KEY: Missing key part");e.code="INVALID_DOTENV_KEY";throw e}const s=r.searchParams.get("environment");if(!s){const e=new Error("INVALID_DOTENV_KEY: Missing environment part");e.code="INVALID_DOTENV_KEY";throw e}const o=`DOTENV_VAULT_${s.toUpperCase()}`;const i=e.parsed[o];if(!i){const e=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);e.code="NOT_FOUND_DOTENV_ENVIRONMENT";throw e}return{ciphertext:i,key:n}}function _vaultPath(e){let t=null;if(e&&e.path&&e.path.length>0){if(Array.isArray(e.path)){for(const r of e.path){if(n.existsSync(r)){t=r.endsWith(".vault")?r:`${r}.vault`}}}else{t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`}}else{t=s.resolve(process.cwd(),".env.vault")}if(n.existsSync(t)){return t}return null}function _resolveHome(e){return e[0]==="~"?s.join(o.homedir(),e.slice(1)):e}function _configVault(e){_log("Loading env from encrypted .env.vault");const t=u._parseVault(e);let r=process.env;if(e&&e.processEnv!=null){r=e.processEnv}u.populate(r,t,e);return{parsed:t}}function configDotenv(e){const t=s.resolve(process.cwd(),".env");let r="utf8";const o=Boolean(e&&e.debug);if(e&&e.encoding){r=e.encoding}else{if(o){_debug("No encoding is specified. UTF-8 is used by default")}}let i=[t];if(e&&e.path){if(!Array.isArray(e.path)){i=[_resolveHome(e.path)]}else{i=[];for(const t of e.path){i.push(_resolveHome(t))}}}let a;const A={};for(const t of i){try{const s=u.parse(n.readFileSync(t,{encoding:r}));u.populate(A,s,e)}catch(e){if(o){_debug(`Failed to load ${t} ${e.message}`)}a=e}}let c=process.env;if(e&&e.processEnv!=null){c=e.processEnv}u.populate(c,A,e);if(a){return{parsed:A,error:a}}else{return{parsed:A}}}function config(e){if(_dotenvKey(e).length===0){return u.configDotenv(e)}const t=_vaultPath(e);if(!t){_warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`);return u.configDotenv(e)}return u._configVault(e)}function decrypt(e,t){const r=Buffer.from(t.slice(-64),"hex");let n=Buffer.from(e,"base64");const s=n.subarray(0,12);const o=n.subarray(-16);n=n.subarray(12,-16);try{const e=i.createDecipheriv("aes-256-gcm",r,s);e.setAuthTag(o);return`${e.update(n)}${e.final()}`}catch(e){const t=e instanceof RangeError;const r=e.message==="Invalid key length";const n=e.message==="Unsupported state or unable to authenticate data";if(t||r){const e=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");e.code="INVALID_DOTENV_KEY";throw e}else if(n){const e=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");e.code="DECRYPTION_FAILED";throw e}else{throw e}}}function populate(e,t,r={}){const n=Boolean(r&&r.debug);const s=Boolean(r&&r.override);if(typeof t!=="object"){const e=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");e.code="OBJECT_REQUIRED";throw e}for(const r of Object.keys(t)){if(Object.prototype.hasOwnProperty.call(e,r)){if(s===true){e[r]=t[r]}if(n){if(s===true){_debug(`"${r}" is already defined and WAS overwritten`)}else{_debug(`"${r}" is already defined and was NOT overwritten`)}}}else{e[r]=t[r]}}}const u={configDotenv:configDotenv,_configVault:_configVault,_parseVault:_parseVault,config:config,decrypt:decrypt,parse:parse,populate:populate};e.exports.configDotenv=u.configDotenv;e.exports._configVault=u._configVault;e.exports._parseVault=u._parseVault;e.exports.config=u.config;e.exports.decrypt=u.decrypt;e.exports.parse=u.parse;e.exports.populate=u.populate;e.exports=u},1240:function(e,t,r){(function(e,n){true?n(t,r(1860),r(7645)):0})(this,(function(e,t,r){"use strict";var n=new Map;var s=new Map;var o=true;var i=false;function normalize(e){return e.replace(/[\s,]+/g," ").trim()}function cacheKeyFromLoc(e){return normalize(e.source.body.substring(e.start,e.end))}function processFragments(e){var r=new Set;var n=[];e.definitions.forEach((function(e){if(e.kind==="FragmentDefinition"){var t=e.name.value;var i=cacheKeyFromLoc(e.loc);var a=s.get(t);if(a&&!a.has(i)){if(o){console.warn("Warning: fragment with name "+t+" already exists.\n"+"graphql-tag enforces all fragment names across your application to be unique; read more about\n"+"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names")}}else if(!a){s.set(t,a=new Set)}a.add(i);if(!r.has(i)){r.add(i);n.push(e)}}else{n.push(e)}}));return t.__assign(t.__assign({},e),{definitions:n})}function stripLoc(e){var t=new Set(e.definitions);t.forEach((function(e){if(e.loc)delete e.loc;Object.keys(e).forEach((function(r){var n=e[r];if(n&&typeof n==="object"){t.add(n)}}))}));var r=e.loc;if(r){delete r.startToken;delete r.endToken}return e}function parseDocument(e){var t=normalize(e);if(!n.has(t)){var s=r.parse(e,{experimentalFragmentVariables:i,allowLegacyFragmentVariables:i});if(!s||s.kind!=="Document"){throw new Error("Not a valid GraphQL document.")}n.set(t,stripLoc(processFragments(s)))}return n.get(t)}function gql(e){var t=[];for(var r=1;r{e.exports=r(1240).gql},5939:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLError=void 0;t.formatError=formatError;t.printError=printError;var n=r(892);var s=r(2245);var o=r(6512);function toNormalizedOptions(e){const t=e[0];if(t==null||"kind"in t||"length"in t){return{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}}return t}class GraphQLError extends Error{constructor(e,...t){var r,o,i;const{nodes:a,source:A,positions:c,path:u,originalError:l,extensions:p}=toNormalizedOptions(t);super(e);this.name="GraphQLError";this.path=u!==null&&u!==void 0?u:undefined;this.originalError=l!==null&&l!==void 0?l:undefined;this.nodes=undefinedIfEmpty(Array.isArray(a)?a:a?[a]:undefined);const d=undefinedIfEmpty((r=this.nodes)===null||r===void 0?void 0:r.map((e=>e.loc)).filter((e=>e!=null)));this.source=A!==null&&A!==void 0?A:d===null||d===void 0?void 0:(o=d[0])===null||o===void 0?void 0:o.source;this.positions=c!==null&&c!==void 0?c:d===null||d===void 0?void 0:d.map((e=>e.start));this.locations=c&&A?c.map((e=>(0,s.getLocation)(A,e))):d===null||d===void 0?void 0:d.map((e=>(0,s.getLocation)(e.source,e.start)));const g=(0,n.isObjectLike)(l===null||l===void 0?void 0:l.extensions)?l===null||l===void 0?void 0:l.extensions:undefined;this.extensions=(i=p!==null&&p!==void 0?p:g)!==null&&i!==void 0?i:Object.create(null);Object.defineProperties(this,{message:{writable:true,enumerable:true},name:{enumerable:false},nodes:{enumerable:false},source:{enumerable:false},positions:{enumerable:false},originalError:{enumerable:false}});if(l!==null&&l!==void 0&&l.stack){Object.defineProperty(this,"stack",{value:l.stack,writable:true,configurable:true})}else if(Error.captureStackTrace){Error.captureStackTrace(this,GraphQLError)}else{Object.defineProperty(this,"stack",{value:Error().stack,writable:true,configurable:true})}}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let e=this.message;if(this.nodes){for(const t of this.nodes){if(t.loc){e+="\n\n"+(0,o.printLocation)(t.loc)}}}else if(this.source&&this.locations){for(const t of this.locations){e+="\n\n"+(0,o.printSourceLocation)(this.source,t)}}return e}toJSON(){const e={message:this.message};if(this.locations!=null){e.locations=this.locations}if(this.path!=null){e.path=this.path}if(this.extensions!=null&&Object.keys(this.extensions).length>0){e.extensions=this.extensions}return e}}t.GraphQLError=GraphQLError;function undefinedIfEmpty(e){return e===undefined||e.length===0?undefined:e}function printError(e){return e.toString()}function formatError(e){return e.toJSON()}},9888:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"GraphQLError",{enumerable:true,get:function(){return n.GraphQLError}});Object.defineProperty(t,"formatError",{enumerable:true,get:function(){return n.formatError}});Object.defineProperty(t,"locatedError",{enumerable:true,get:function(){return o.locatedError}});Object.defineProperty(t,"printError",{enumerable:true,get:function(){return n.printError}});Object.defineProperty(t,"syntaxError",{enumerable:true,get:function(){return s.syntaxError}});var n=r(5939);var s=r(9619);var o=r(7550)},7550:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.locatedError=locatedError;var n=r(9615);var s=r(5939);function locatedError(e,t,r){var o;const i=(0,n.toError)(e);if(isLocatedGraphQLError(i)){return i}return new s.GraphQLError(i.message,{nodes:(o=i.nodes)!==null&&o!==void 0?o:t,source:i.source,positions:i.positions,path:r,originalError:i})}function isLocatedGraphQLError(e){return Array.isArray(e.path)}},9619:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.syntaxError=syntaxError;var n=r(5939);function syntaxError(e,t,r){return new n.GraphQLError(`Syntax Error: ${r}`,{source:e,positions:[t]})}},7611:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.collectFields=collectFields;t.collectSubfields=collectSubfields;var n=r(1123);var s=r(4169);var o=r(1058);var i=r(6738);var a=r(3604);function collectFields(e,t,r,n,s){const o=new Map;collectFieldsImpl(e,t,r,n,s,o,new Set);return o}function collectSubfields(e,t,r,n,s){const o=new Map;const i=new Set;for(const a of s){if(a.selectionSet){collectFieldsImpl(e,t,r,n,a.selectionSet,o,i)}}return o}function collectFieldsImpl(e,t,r,s,o,i,a){for(const A of o.selections){switch(A.kind){case n.Kind.FIELD:{if(!shouldIncludeNode(r,A)){continue}const e=getFieldEntryKey(A);const t=i.get(e);if(t!==undefined){t.push(A)}else{i.set(e,[A])}break}case n.Kind.INLINE_FRAGMENT:{if(!shouldIncludeNode(r,A)||!doesFragmentConditionMatch(e,A,s)){continue}collectFieldsImpl(e,t,r,s,A.selectionSet,i,a);break}case n.Kind.FRAGMENT_SPREAD:{const n=A.name.value;if(a.has(n)||!shouldIncludeNode(r,A)){continue}a.add(n);const o=t[n];if(!o||!doesFragmentConditionMatch(e,o,s)){continue}collectFieldsImpl(e,t,r,s,o.selectionSet,i,a);break}}}}function shouldIncludeNode(e,t){const r=(0,a.getDirectiveValues)(o.GraphQLSkipDirective,t,e);if((r===null||r===void 0?void 0:r.if)===true){return false}const n=(0,a.getDirectiveValues)(o.GraphQLIncludeDirective,t,e);if((n===null||n===void 0?void 0:n.if)===false){return false}return true}function doesFragmentConditionMatch(e,t,r){const n=t.typeCondition;if(!n){return true}const o=(0,i.typeFromAST)(e,n);if(o===r){return true}if((0,s.isAbstractType)(o)){return e.isSubType(o,r)}return false}function getFieldEntryKey(e){return e.alias?e.alias.value:e.name.value}},1304:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidExecutionArguments=assertValidExecutionArguments;t.buildExecutionContext=buildExecutionContext;t.buildResolveInfo=buildResolveInfo;t.defaultTypeResolver=t.defaultFieldResolver=void 0;t.execute=execute;t.executeSync=executeSync;t.getFieldDef=getFieldDef;var n=r(5383);var s=r(5742);var o=r(3650);var i=r(7341);var a=r(892);var A=r(4091);var c=r(8141);var u=r(3155);var l=r(5395);var p=r(1369);var d=r(5939);var g=r(7550);var h=r(2740);var E=r(1123);var m=r(4169);var I=r(317);var y=r(3902);var C=r(7611);var Q=r(3604);const B=(0,c.memoize3)(((e,t,r)=>(0,C.collectSubfields)(e.schema,e.fragments,e.variableValues,t,r)));function execute(e){arguments.length<2||(0,n.devAssert)(false,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");const{schema:t,document:r,variableValues:s,rootValue:o}=e;assertValidExecutionArguments(t,r,s);const i=buildExecutionContext(e);if(!("schema"in i)){return{errors:i}}try{const{operation:e}=i;const t=executeOperation(i,e,o);if((0,A.isPromise)(t)){return t.then((e=>buildResponse(e,i.errors)),(e=>{i.errors.push(e);return buildResponse(null,i.errors)}))}return buildResponse(t,i.errors)}catch(e){i.errors.push(e);return buildResponse(null,i.errors)}}function executeSync(e){const t=execute(e);if((0,A.isPromise)(t)){throw new Error("GraphQL execution failed to complete synchronously.")}return t}function buildResponse(e,t){return t.length===0?{data:e}:{errors:t,data:e}}function assertValidExecutionArguments(e,t,r){t||(0,n.devAssert)(false,"Must provide document.");(0,y.assertValidSchema)(e);r==null||(0,a.isObjectLike)(r)||(0,n.devAssert)(false,"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.")}function buildExecutionContext(e){var t,r;const{schema:n,document:s,rootValue:o,contextValue:i,variableValues:a,operationName:A,fieldResolver:c,typeResolver:u,subscribeFieldResolver:l}=e;let p;const g=Object.create(null);for(const e of s.definitions){switch(e.kind){case E.Kind.OPERATION_DEFINITION:if(A==null){if(p!==undefined){return[new d.GraphQLError("Must provide operation name if query contains multiple operations.")]}p=e}else if(((t=e.name)===null||t===void 0?void 0:t.value)===A){p=e}break;case E.Kind.FRAGMENT_DEFINITION:g[e.name.value]=e;break;default:}}if(!p){if(A!=null){return[new d.GraphQLError(`Unknown operation named "${A}".`)]}return[new d.GraphQLError("Must provide an operation.")]}const h=(r=p.variableDefinitions)!==null&&r!==void 0?r:[];const m=(0,Q.getVariableValues)(n,h,a!==null&&a!==void 0?a:{},{maxErrors:50});if(m.errors){return m.errors}return{schema:n,fragments:g,rootValue:o,contextValue:i,operation:p,variableValues:m.coerced,fieldResolver:c!==null&&c!==void 0?c:defaultFieldResolver,typeResolver:u!==null&&u!==void 0?u:defaultTypeResolver,subscribeFieldResolver:l!==null&&l!==void 0?l:defaultFieldResolver,errors:[]}}function executeOperation(e,t,r){const n=e.schema.getRootType(t.operation);if(n==null){throw new d.GraphQLError(`Schema is not configured to execute ${t.operation} operation.`,{nodes:t})}const s=(0,C.collectFields)(e.schema,e.fragments,e.variableValues,n,t.selectionSet);const o=undefined;switch(t.operation){case h.OperationTypeNode.QUERY:return executeFields(e,n,r,o,s);case h.OperationTypeNode.MUTATION:return executeFieldsSerially(e,n,r,o,s);case h.OperationTypeNode.SUBSCRIPTION:return executeFields(e,n,r,o,s)}}function executeFieldsSerially(e,t,r,n,s){return(0,p.promiseReduce)(s.entries(),((s,[o,i])=>{const a=(0,u.addPath)(n,o,t.name);const c=executeField(e,t,r,i,a);if(c===undefined){return s}if((0,A.isPromise)(c)){return c.then((e=>{s[o]=e;return s}))}s[o]=c;return s}),Object.create(null))}function executeFields(e,t,r,n,s){const o=Object.create(null);let i=false;try{for(const[a,c]of s.entries()){const s=(0,u.addPath)(n,a,t.name);const l=executeField(e,t,r,c,s);if(l!==undefined){o[a]=l;if((0,A.isPromise)(l)){i=true}}}}catch(e){if(i){return(0,l.promiseForObject)(o).finally((()=>{throw e}))}throw e}if(!i){return o}return(0,l.promiseForObject)(o)}function executeField(e,t,r,n,s){var o;const i=getFieldDef(e.schema,t,n[0]);if(!i){return}const a=i.type;const c=(o=i.resolve)!==null&&o!==void 0?o:e.fieldResolver;const l=buildResolveInfo(e,i,n,t,s);try{const t=(0,Q.getArgumentValues)(i,n[0],e.variableValues);const o=e.contextValue;const p=c(r,t,o,l);let d;if((0,A.isPromise)(p)){d=p.then((t=>completeValue(e,a,n,l,s,t)))}else{d=completeValue(e,a,n,l,s,p)}if((0,A.isPromise)(d)){return d.then(undefined,(t=>{const r=(0,g.locatedError)(t,n,(0,u.pathToArray)(s));return handleFieldError(r,a,e)}))}return d}catch(t){const r=(0,g.locatedError)(t,n,(0,u.pathToArray)(s));return handleFieldError(r,a,e)}}function buildResolveInfo(e,t,r,n,s){return{fieldName:t.name,fieldNodes:r,returnType:t.type,parentType:n,path:s,schema:e.schema,fragments:e.fragments,rootValue:e.rootValue,operation:e.operation,variableValues:e.variableValues}}function handleFieldError(e,t,r){if((0,m.isNonNullType)(t)){throw e}r.errors.push(e);return null}function completeValue(e,t,r,n,i,a){if(a instanceof Error){throw a}if((0,m.isNonNullType)(t)){const s=completeValue(e,t.ofType,r,n,i,a);if(s===null){throw new Error(`Cannot return null for non-nullable field ${n.parentType.name}.${n.fieldName}.`)}return s}if(a==null){return null}if((0,m.isListType)(t)){return completeListValue(e,t,r,n,i,a)}if((0,m.isLeafType)(t)){return completeLeafValue(t,a)}if((0,m.isAbstractType)(t)){return completeAbstractValue(e,t,r,n,i,a)}if((0,m.isObjectType)(t)){return completeObjectValue(e,t,r,n,i,a)}false||(0,o.invariant)(false,"Cannot complete value of unexpected output type: "+(0,s.inspect)(t))}function completeListValue(e,t,r,n,s,o){if(!(0,i.isIterableObject)(o)){throw new d.GraphQLError(`Expected Iterable, but did not find one for field "${n.parentType.name}.${n.fieldName}".`)}const a=t.ofType;let c=false;const l=Array.from(o,((t,o)=>{const i=(0,u.addPath)(s,o,undefined);try{let s;if((0,A.isPromise)(t)){s=t.then((t=>completeValue(e,a,r,n,i,t)))}else{s=completeValue(e,a,r,n,i,t)}if((0,A.isPromise)(s)){c=true;return s.then(undefined,(t=>{const n=(0,g.locatedError)(t,r,(0,u.pathToArray)(i));return handleFieldError(n,a,e)}))}return s}catch(t){const n=(0,g.locatedError)(t,r,(0,u.pathToArray)(i));return handleFieldError(n,a,e)}}));return c?Promise.all(l):l}function completeLeafValue(e,t){const r=e.serialize(t);if(r==null){throw new Error(`Expected \`${(0,s.inspect)(e)}.serialize(${(0,s.inspect)(t)})\` to `+`return non-nullable value, returned: ${(0,s.inspect)(r)}`)}return r}function completeAbstractValue(e,t,r,n,s,o){var i;const a=(i=t.resolveType)!==null&&i!==void 0?i:e.typeResolver;const c=e.contextValue;const u=a(o,c,n,t);if((0,A.isPromise)(u)){return u.then((i=>completeObjectValue(e,ensureValidRuntimeType(i,e,t,r,n,o),r,n,s,o)))}return completeObjectValue(e,ensureValidRuntimeType(u,e,t,r,n,o),r,n,s,o)}function ensureValidRuntimeType(e,t,r,n,o,i){if(e==null){throw new d.GraphQLError(`Abstract type "${r.name}" must resolve to an Object type at runtime for field "${o.parentType.name}.${o.fieldName}". Either the "${r.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`,n)}if((0,m.isObjectType)(e)){throw new d.GraphQLError("Support for returning GraphQLObjectType from resolveType was removed in graphql-js@16.0.0 please return type name instead.")}if(typeof e!=="string"){throw new d.GraphQLError(`Abstract type "${r.name}" must resolve to an Object type at runtime for field "${o.parentType.name}.${o.fieldName}" with `+`value ${(0,s.inspect)(i)}, received "${(0,s.inspect)(e)}".`)}const a=t.schema.getType(e);if(a==null){throw new d.GraphQLError(`Abstract type "${r.name}" was resolved to a type "${e}" that does not exist inside the schema.`,{nodes:n})}if(!(0,m.isObjectType)(a)){throw new d.GraphQLError(`Abstract type "${r.name}" was resolved to a non-object type "${e}".`,{nodes:n})}if(!t.schema.isSubType(r,a)){throw new d.GraphQLError(`Runtime Object type "${a.name}" is not a possible type for "${r.name}".`,{nodes:n})}return a}function completeObjectValue(e,t,r,n,s,o){const i=B(e,t,r);if(t.isTypeOf){const a=t.isTypeOf(o,e.contextValue,n);if((0,A.isPromise)(a)){return a.then((n=>{if(!n){throw invalidReturnTypeError(t,o,r)}return executeFields(e,t,o,s,i)}))}if(!a){throw invalidReturnTypeError(t,o,r)}}return executeFields(e,t,o,s,i)}function invalidReturnTypeError(e,t,r){return new d.GraphQLError(`Expected value of type "${e.name}" but got: ${(0,s.inspect)(t)}.`,{nodes:r})}const defaultTypeResolver=function(e,t,r,n){if((0,a.isObjectLike)(e)&&typeof e.__typename==="string"){return e.__typename}const s=r.schema.getPossibleTypes(n);const o=[];for(let n=0;n{for(let t=0;t{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"createSourceEventStream",{enumerable:true,get:function(){return o.createSourceEventStream}});Object.defineProperty(t,"defaultFieldResolver",{enumerable:true,get:function(){return s.defaultFieldResolver}});Object.defineProperty(t,"defaultTypeResolver",{enumerable:true,get:function(){return s.defaultTypeResolver}});Object.defineProperty(t,"execute",{enumerable:true,get:function(){return s.execute}});Object.defineProperty(t,"executeSync",{enumerable:true,get:function(){return s.executeSync}});Object.defineProperty(t,"getArgumentValues",{enumerable:true,get:function(){return i.getArgumentValues}});Object.defineProperty(t,"getDirectiveValues",{enumerable:true,get:function(){return i.getDirectiveValues}});Object.defineProperty(t,"getVariableValues",{enumerable:true,get:function(){return i.getVariableValues}});Object.defineProperty(t,"responsePathAsArray",{enumerable:true,get:function(){return n.pathToArray}});Object.defineProperty(t,"subscribe",{enumerable:true,get:function(){return o.subscribe}});var n=r(3155);var s=r(1304);var o=r(8540);var i=r(3604)},974:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.mapAsyncIterator=mapAsyncIterator;function mapAsyncIterator(e,t){const r=e[Symbol.asyncIterator]();async function mapResult(e){if(e.done){return e}try{return{value:await t(e.value),done:false}}catch(e){if(typeof r.return==="function"){try{await r.return()}catch(e){}}throw e}}return{async next(){return mapResult(await r.next())},async return(){return typeof r.return==="function"?mapResult(await r.return()):{value:undefined,done:true}},async throw(e){if(typeof r.throw==="function"){return mapResult(await r.throw(e))}throw e},[Symbol.asyncIterator](){return this}}}},8540:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.createSourceEventStream=createSourceEventStream;t.subscribe=subscribe;var n=r(5383);var s=r(5742);var o=r(4068);var i=r(3155);var a=r(5939);var A=r(7550);var c=r(7611);var u=r(1304);var l=r(974);var p=r(3604);async function subscribe(e){arguments.length<2||(0,n.devAssert)(false,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");const t=await createSourceEventStream(e);if(!(0,o.isAsyncIterable)(t)){return t}const mapSourceToResponse=t=>(0,u.execute)({...e,rootValue:t});return(0,l.mapAsyncIterator)(t,mapSourceToResponse)}function toNormalizedArgs(e){const t=e[0];if(t&&"document"in t){return t}return{schema:t,document:e[1],rootValue:e[2],contextValue:e[3],variableValues:e[4],operationName:e[5],subscribeFieldResolver:e[6]}}async function createSourceEventStream(...e){const t=toNormalizedArgs(e);const{schema:r,document:n,variableValues:i}=t;(0,u.assertValidExecutionArguments)(r,n,i);const A=(0,u.buildExecutionContext)(t);if(!("schema"in A)){return{errors:A}}try{const e=await executeSubscription(A);if(!(0,o.isAsyncIterable)(e)){throw new Error("Subscription field must return Async Iterable. "+`Received: ${(0,s.inspect)(e)}.`)}return e}catch(e){if(e instanceof a.GraphQLError){return{errors:[e]}}throw e}}async function executeSubscription(e){const{schema:t,fragments:r,operation:n,variableValues:s,rootValue:o}=e;const l=t.getSubscriptionType();if(l==null){throw new a.GraphQLError("Schema is not configured to execute subscription operation.",{nodes:n})}const d=(0,c.collectFields)(t,r,s,l,n.selectionSet);const[g,h]=[...d.entries()][0];const E=(0,u.getFieldDef)(t,l,h[0]);if(!E){const e=h[0].name.value;throw new a.GraphQLError(`The subscription field "${e}" is not defined.`,{nodes:h})}const m=(0,i.addPath)(undefined,g,l.name);const I=(0,u.buildResolveInfo)(e,E,h,l,m);try{var y;const t=(0,p.getArgumentValues)(E,h[0],s);const r=e.contextValue;const n=(y=E.subscribe)!==null&&y!==void 0?y:e.subscribeFieldResolver;const i=await n(o,t,r,I);if(i instanceof Error){throw i}return i}catch(e){throw(0,A.locatedError)(e,h,(0,i.pathToArray)(m))}}},3604:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getArgumentValues=getArgumentValues;t.getDirectiveValues=getDirectiveValues;t.getVariableValues=getVariableValues;var n=r(5742);var s=r(7579);var o=r(8373);var i=r(5939);var a=r(1123);var A=r(9936);var c=r(4169);var u=r(7572);var l=r(6738);var p=r(6495);function getVariableValues(e,t,r,n){const s=[];const o=n===null||n===void 0?void 0:n.maxErrors;try{const n=coerceVariableValues(e,t,r,(e=>{if(o!=null&&s.length>=o){throw new i.GraphQLError("Too many errors processing variables, error limit reached. Execution aborted.")}s.push(e)}));if(s.length===0){return{coerced:n}}}catch(e){s.push(e)}return{errors:s}}function coerceVariableValues(e,t,r,s){const a={};for(const d of t){const t=d.variable.name.value;const g=(0,l.typeFromAST)(e,d.type);if(!(0,c.isInputType)(g)){const e=(0,A.print)(d.type);s(new i.GraphQLError(`Variable "$${t}" expected value of type "${e}" which cannot be used as an input type.`,{nodes:d.type}));continue}if(!hasOwnProperty(r,t)){if(d.defaultValue){a[t]=(0,p.valueFromAST)(d.defaultValue,g)}else if((0,c.isNonNullType)(g)){const e=(0,n.inspect)(g);s(new i.GraphQLError(`Variable "$${t}" of required type "${e}" was not provided.`,{nodes:d}))}continue}const h=r[t];if(h===null&&(0,c.isNonNullType)(g)){const e=(0,n.inspect)(g);s(new i.GraphQLError(`Variable "$${t}" of non-null type "${e}" must not be null.`,{nodes:d}));continue}a[t]=(0,u.coerceInputValue)(h,g,((e,r,a)=>{let A=`Variable "$${t}" got invalid value `+(0,n.inspect)(r);if(e.length>0){A+=` at "${t}${(0,o.printPathArray)(e)}"`}s(new i.GraphQLError(A+"; "+a.message,{nodes:d,originalError:a}))}))}return a}function getArgumentValues(e,t,r){var o;const u={};const l=(o=t.arguments)!==null&&o!==void 0?o:[];const d=(0,s.keyMap)(l,(e=>e.name.value));for(const s of e.args){const e=s.name;const o=s.type;const l=d[e];if(!l){if(s.defaultValue!==undefined){u[e]=s.defaultValue}else if((0,c.isNonNullType)(o)){throw new i.GraphQLError(`Argument "${e}" of required type "${(0,n.inspect)(o)}" `+"was not provided.",{nodes:t})}continue}const g=l.value;let h=g.kind===a.Kind.NULL;if(g.kind===a.Kind.VARIABLE){const t=g.name.value;if(r==null||!hasOwnProperty(r,t)){if(s.defaultValue!==undefined){u[e]=s.defaultValue}else if((0,c.isNonNullType)(o)){throw new i.GraphQLError(`Argument "${e}" of required type "${(0,n.inspect)(o)}" `+`was provided the variable "$${t}" which was not provided a runtime value.`,{nodes:g})}continue}h=r[t]==null}if(h&&(0,c.isNonNullType)(o)){throw new i.GraphQLError(`Argument "${e}" of non-null type "${(0,n.inspect)(o)}" `+"must not be null.",{nodes:g})}const E=(0,p.valueFromAST)(g,o,r);if(E===undefined){throw new i.GraphQLError(`Argument "${e}" has invalid value ${(0,A.print)(g)}.`,{nodes:g})}u[e]=E}return u}function getDirectiveValues(e,t,r){var n;const s=(n=t.directives)===null||n===void 0?void 0:n.find((t=>t.name.value===e.name));if(s){return getArgumentValues(e,s,r)}}function hasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},6352:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.graphql=graphql;t.graphqlSync=graphqlSync;var n=r(5383);var s=r(4091);var o=r(4929);var i=r(3902);var a=r(7063);var A=r(1304);function graphql(e){return new Promise((t=>t(graphqlImpl(e))))}function graphqlSync(e){const t=graphqlImpl(e);if((0,s.isPromise)(t)){throw new Error("GraphQL execution failed to complete synchronously.")}return t}function graphqlImpl(e){arguments.length<2||(0,n.devAssert)(false,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");const{schema:t,source:r,rootValue:s,contextValue:c,variableValues:u,operationName:l,fieldResolver:p,typeResolver:d}=e;const g=(0,i.validateSchema)(t);if(g.length>0){return{errors:g}}let h;try{h=(0,o.parse)(r)}catch(e){return{errors:[e]}}const E=(0,a.validate)(t,h);if(E.length>0){return{errors:E}}return(0,A.execute)({schema:t,document:h,rootValue:s,contextValue:c,variableValues:u,operationName:l,fieldResolver:p,typeResolver:d})}},7645:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"BREAK",{enumerable:true,get:function(){return i.BREAK}});Object.defineProperty(t,"BreakingChangeType",{enumerable:true,get:function(){return u.BreakingChangeType}});Object.defineProperty(t,"DEFAULT_DEPRECATION_REASON",{enumerable:true,get:function(){return o.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(t,"DangerousChangeType",{enumerable:true,get:function(){return u.DangerousChangeType}});Object.defineProperty(t,"DirectiveLocation",{enumerable:true,get:function(){return i.DirectiveLocation}});Object.defineProperty(t,"ExecutableDefinitionsRule",{enumerable:true,get:function(){return A.ExecutableDefinitionsRule}});Object.defineProperty(t,"FieldsOnCorrectTypeRule",{enumerable:true,get:function(){return A.FieldsOnCorrectTypeRule}});Object.defineProperty(t,"FragmentsOnCompositeTypesRule",{enumerable:true,get:function(){return A.FragmentsOnCompositeTypesRule}});Object.defineProperty(t,"GRAPHQL_MAX_INT",{enumerable:true,get:function(){return o.GRAPHQL_MAX_INT}});Object.defineProperty(t,"GRAPHQL_MIN_INT",{enumerable:true,get:function(){return o.GRAPHQL_MIN_INT}});Object.defineProperty(t,"GraphQLBoolean",{enumerable:true,get:function(){return o.GraphQLBoolean}});Object.defineProperty(t,"GraphQLDeprecatedDirective",{enumerable:true,get:function(){return o.GraphQLDeprecatedDirective}});Object.defineProperty(t,"GraphQLDirective",{enumerable:true,get:function(){return o.GraphQLDirective}});Object.defineProperty(t,"GraphQLEnumType",{enumerable:true,get:function(){return o.GraphQLEnumType}});Object.defineProperty(t,"GraphQLError",{enumerable:true,get:function(){return c.GraphQLError}});Object.defineProperty(t,"GraphQLFloat",{enumerable:true,get:function(){return o.GraphQLFloat}});Object.defineProperty(t,"GraphQLID",{enumerable:true,get:function(){return o.GraphQLID}});Object.defineProperty(t,"GraphQLIncludeDirective",{enumerable:true,get:function(){return o.GraphQLIncludeDirective}});Object.defineProperty(t,"GraphQLInputObjectType",{enumerable:true,get:function(){return o.GraphQLInputObjectType}});Object.defineProperty(t,"GraphQLInt",{enumerable:true,get:function(){return o.GraphQLInt}});Object.defineProperty(t,"GraphQLInterfaceType",{enumerable:true,get:function(){return o.GraphQLInterfaceType}});Object.defineProperty(t,"GraphQLList",{enumerable:true,get:function(){return o.GraphQLList}});Object.defineProperty(t,"GraphQLNonNull",{enumerable:true,get:function(){return o.GraphQLNonNull}});Object.defineProperty(t,"GraphQLObjectType",{enumerable:true,get:function(){return o.GraphQLObjectType}});Object.defineProperty(t,"GraphQLOneOfDirective",{enumerable:true,get:function(){return o.GraphQLOneOfDirective}});Object.defineProperty(t,"GraphQLScalarType",{enumerable:true,get:function(){return o.GraphQLScalarType}});Object.defineProperty(t,"GraphQLSchema",{enumerable:true,get:function(){return o.GraphQLSchema}});Object.defineProperty(t,"GraphQLSkipDirective",{enumerable:true,get:function(){return o.GraphQLSkipDirective}});Object.defineProperty(t,"GraphQLSpecifiedByDirective",{enumerable:true,get:function(){return o.GraphQLSpecifiedByDirective}});Object.defineProperty(t,"GraphQLString",{enumerable:true,get:function(){return o.GraphQLString}});Object.defineProperty(t,"GraphQLUnionType",{enumerable:true,get:function(){return o.GraphQLUnionType}});Object.defineProperty(t,"Kind",{enumerable:true,get:function(){return i.Kind}});Object.defineProperty(t,"KnownArgumentNamesRule",{enumerable:true,get:function(){return A.KnownArgumentNamesRule}});Object.defineProperty(t,"KnownDirectivesRule",{enumerable:true,get:function(){return A.KnownDirectivesRule}});Object.defineProperty(t,"KnownFragmentNamesRule",{enumerable:true,get:function(){return A.KnownFragmentNamesRule}});Object.defineProperty(t,"KnownTypeNamesRule",{enumerable:true,get:function(){return A.KnownTypeNamesRule}});Object.defineProperty(t,"Lexer",{enumerable:true,get:function(){return i.Lexer}});Object.defineProperty(t,"Location",{enumerable:true,get:function(){return i.Location}});Object.defineProperty(t,"LoneAnonymousOperationRule",{enumerable:true,get:function(){return A.LoneAnonymousOperationRule}});Object.defineProperty(t,"LoneSchemaDefinitionRule",{enumerable:true,get:function(){return A.LoneSchemaDefinitionRule}});Object.defineProperty(t,"MaxIntrospectionDepthRule",{enumerable:true,get:function(){return A.MaxIntrospectionDepthRule}});Object.defineProperty(t,"NoDeprecatedCustomRule",{enumerable:true,get:function(){return A.NoDeprecatedCustomRule}});Object.defineProperty(t,"NoFragmentCyclesRule",{enumerable:true,get:function(){return A.NoFragmentCyclesRule}});Object.defineProperty(t,"NoSchemaIntrospectionCustomRule",{enumerable:true,get:function(){return A.NoSchemaIntrospectionCustomRule}});Object.defineProperty(t,"NoUndefinedVariablesRule",{enumerable:true,get:function(){return A.NoUndefinedVariablesRule}});Object.defineProperty(t,"NoUnusedFragmentsRule",{enumerable:true,get:function(){return A.NoUnusedFragmentsRule}});Object.defineProperty(t,"NoUnusedVariablesRule",{enumerable:true,get:function(){return A.NoUnusedVariablesRule}});Object.defineProperty(t,"OperationTypeNode",{enumerable:true,get:function(){return i.OperationTypeNode}});Object.defineProperty(t,"OverlappingFieldsCanBeMergedRule",{enumerable:true,get:function(){return A.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(t,"PossibleFragmentSpreadsRule",{enumerable:true,get:function(){return A.PossibleFragmentSpreadsRule}});Object.defineProperty(t,"PossibleTypeExtensionsRule",{enumerable:true,get:function(){return A.PossibleTypeExtensionsRule}});Object.defineProperty(t,"ProvidedRequiredArgumentsRule",{enumerable:true,get:function(){return A.ProvidedRequiredArgumentsRule}});Object.defineProperty(t,"ScalarLeafsRule",{enumerable:true,get:function(){return A.ScalarLeafsRule}});Object.defineProperty(t,"SchemaMetaFieldDef",{enumerable:true,get:function(){return o.SchemaMetaFieldDef}});Object.defineProperty(t,"SingleFieldSubscriptionsRule",{enumerable:true,get:function(){return A.SingleFieldSubscriptionsRule}});Object.defineProperty(t,"Source",{enumerable:true,get:function(){return i.Source}});Object.defineProperty(t,"Token",{enumerable:true,get:function(){return i.Token}});Object.defineProperty(t,"TokenKind",{enumerable:true,get:function(){return i.TokenKind}});Object.defineProperty(t,"TypeInfo",{enumerable:true,get:function(){return u.TypeInfo}});Object.defineProperty(t,"TypeKind",{enumerable:true,get:function(){return o.TypeKind}});Object.defineProperty(t,"TypeMetaFieldDef",{enumerable:true,get:function(){return o.TypeMetaFieldDef}});Object.defineProperty(t,"TypeNameMetaFieldDef",{enumerable:true,get:function(){return o.TypeNameMetaFieldDef}});Object.defineProperty(t,"UniqueArgumentDefinitionNamesRule",{enumerable:true,get:function(){return A.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(t,"UniqueArgumentNamesRule",{enumerable:true,get:function(){return A.UniqueArgumentNamesRule}});Object.defineProperty(t,"UniqueDirectiveNamesRule",{enumerable:true,get:function(){return A.UniqueDirectiveNamesRule}});Object.defineProperty(t,"UniqueDirectivesPerLocationRule",{enumerable:true,get:function(){return A.UniqueDirectivesPerLocationRule}});Object.defineProperty(t,"UniqueEnumValueNamesRule",{enumerable:true,get:function(){return A.UniqueEnumValueNamesRule}});Object.defineProperty(t,"UniqueFieldDefinitionNamesRule",{enumerable:true,get:function(){return A.UniqueFieldDefinitionNamesRule}});Object.defineProperty(t,"UniqueFragmentNamesRule",{enumerable:true,get:function(){return A.UniqueFragmentNamesRule}});Object.defineProperty(t,"UniqueInputFieldNamesRule",{enumerable:true,get:function(){return A.UniqueInputFieldNamesRule}});Object.defineProperty(t,"UniqueOperationNamesRule",{enumerable:true,get:function(){return A.UniqueOperationNamesRule}});Object.defineProperty(t,"UniqueOperationTypesRule",{enumerable:true,get:function(){return A.UniqueOperationTypesRule}});Object.defineProperty(t,"UniqueTypeNamesRule",{enumerable:true,get:function(){return A.UniqueTypeNamesRule}});Object.defineProperty(t,"UniqueVariableNamesRule",{enumerable:true,get:function(){return A.UniqueVariableNamesRule}});Object.defineProperty(t,"ValidationContext",{enumerable:true,get:function(){return A.ValidationContext}});Object.defineProperty(t,"ValuesOfCorrectTypeRule",{enumerable:true,get:function(){return A.ValuesOfCorrectTypeRule}});Object.defineProperty(t,"VariablesAreInputTypesRule",{enumerable:true,get:function(){return A.VariablesAreInputTypesRule}});Object.defineProperty(t,"VariablesInAllowedPositionRule",{enumerable:true,get:function(){return A.VariablesInAllowedPositionRule}});Object.defineProperty(t,"__Directive",{enumerable:true,get:function(){return o.__Directive}});Object.defineProperty(t,"__DirectiveLocation",{enumerable:true,get:function(){return o.__DirectiveLocation}});Object.defineProperty(t,"__EnumValue",{enumerable:true,get:function(){return o.__EnumValue}});Object.defineProperty(t,"__Field",{enumerable:true,get:function(){return o.__Field}});Object.defineProperty(t,"__InputValue",{enumerable:true,get:function(){return o.__InputValue}});Object.defineProperty(t,"__Schema",{enumerable:true,get:function(){return o.__Schema}});Object.defineProperty(t,"__Type",{enumerable:true,get:function(){return o.__Type}});Object.defineProperty(t,"__TypeKind",{enumerable:true,get:function(){return o.__TypeKind}});Object.defineProperty(t,"assertAbstractType",{enumerable:true,get:function(){return o.assertAbstractType}});Object.defineProperty(t,"assertCompositeType",{enumerable:true,get:function(){return o.assertCompositeType}});Object.defineProperty(t,"assertDirective",{enumerable:true,get:function(){return o.assertDirective}});Object.defineProperty(t,"assertEnumType",{enumerable:true,get:function(){return o.assertEnumType}});Object.defineProperty(t,"assertEnumValueName",{enumerable:true,get:function(){return o.assertEnumValueName}});Object.defineProperty(t,"assertInputObjectType",{enumerable:true,get:function(){return o.assertInputObjectType}});Object.defineProperty(t,"assertInputType",{enumerable:true,get:function(){return o.assertInputType}});Object.defineProperty(t,"assertInterfaceType",{enumerable:true,get:function(){return o.assertInterfaceType}});Object.defineProperty(t,"assertLeafType",{enumerable:true,get:function(){return o.assertLeafType}});Object.defineProperty(t,"assertListType",{enumerable:true,get:function(){return o.assertListType}});Object.defineProperty(t,"assertName",{enumerable:true,get:function(){return o.assertName}});Object.defineProperty(t,"assertNamedType",{enumerable:true,get:function(){return o.assertNamedType}});Object.defineProperty(t,"assertNonNullType",{enumerable:true,get:function(){return o.assertNonNullType}});Object.defineProperty(t,"assertNullableType",{enumerable:true,get:function(){return o.assertNullableType}});Object.defineProperty(t,"assertObjectType",{enumerable:true,get:function(){return o.assertObjectType}});Object.defineProperty(t,"assertOutputType",{enumerable:true,get:function(){return o.assertOutputType}});Object.defineProperty(t,"assertScalarType",{enumerable:true,get:function(){return o.assertScalarType}});Object.defineProperty(t,"assertSchema",{enumerable:true,get:function(){return o.assertSchema}});Object.defineProperty(t,"assertType",{enumerable:true,get:function(){return o.assertType}});Object.defineProperty(t,"assertUnionType",{enumerable:true,get:function(){return o.assertUnionType}});Object.defineProperty(t,"assertValidName",{enumerable:true,get:function(){return u.assertValidName}});Object.defineProperty(t,"assertValidSchema",{enumerable:true,get:function(){return o.assertValidSchema}});Object.defineProperty(t,"assertWrappingType",{enumerable:true,get:function(){return o.assertWrappingType}});Object.defineProperty(t,"astFromValue",{enumerable:true,get:function(){return u.astFromValue}});Object.defineProperty(t,"buildASTSchema",{enumerable:true,get:function(){return u.buildASTSchema}});Object.defineProperty(t,"buildClientSchema",{enumerable:true,get:function(){return u.buildClientSchema}});Object.defineProperty(t,"buildSchema",{enumerable:true,get:function(){return u.buildSchema}});Object.defineProperty(t,"coerceInputValue",{enumerable:true,get:function(){return u.coerceInputValue}});Object.defineProperty(t,"concatAST",{enumerable:true,get:function(){return u.concatAST}});Object.defineProperty(t,"createSourceEventStream",{enumerable:true,get:function(){return a.createSourceEventStream}});Object.defineProperty(t,"defaultFieldResolver",{enumerable:true,get:function(){return a.defaultFieldResolver}});Object.defineProperty(t,"defaultTypeResolver",{enumerable:true,get:function(){return a.defaultTypeResolver}});Object.defineProperty(t,"doTypesOverlap",{enumerable:true,get:function(){return u.doTypesOverlap}});Object.defineProperty(t,"execute",{enumerable:true,get:function(){return a.execute}});Object.defineProperty(t,"executeSync",{enumerable:true,get:function(){return a.executeSync}});Object.defineProperty(t,"extendSchema",{enumerable:true,get:function(){return u.extendSchema}});Object.defineProperty(t,"findBreakingChanges",{enumerable:true,get:function(){return u.findBreakingChanges}});Object.defineProperty(t,"findDangerousChanges",{enumerable:true,get:function(){return u.findDangerousChanges}});Object.defineProperty(t,"formatError",{enumerable:true,get:function(){return c.formatError}});Object.defineProperty(t,"getArgumentValues",{enumerable:true,get:function(){return a.getArgumentValues}});Object.defineProperty(t,"getDirectiveValues",{enumerable:true,get:function(){return a.getDirectiveValues}});Object.defineProperty(t,"getEnterLeaveForKind",{enumerable:true,get:function(){return i.getEnterLeaveForKind}});Object.defineProperty(t,"getIntrospectionQuery",{enumerable:true,get:function(){return u.getIntrospectionQuery}});Object.defineProperty(t,"getLocation",{enumerable:true,get:function(){return i.getLocation}});Object.defineProperty(t,"getNamedType",{enumerable:true,get:function(){return o.getNamedType}});Object.defineProperty(t,"getNullableType",{enumerable:true,get:function(){return o.getNullableType}});Object.defineProperty(t,"getOperationAST",{enumerable:true,get:function(){return u.getOperationAST}});Object.defineProperty(t,"getOperationRootType",{enumerable:true,get:function(){return u.getOperationRootType}});Object.defineProperty(t,"getVariableValues",{enumerable:true,get:function(){return a.getVariableValues}});Object.defineProperty(t,"getVisitFn",{enumerable:true,get:function(){return i.getVisitFn}});Object.defineProperty(t,"graphql",{enumerable:true,get:function(){return s.graphql}});Object.defineProperty(t,"graphqlSync",{enumerable:true,get:function(){return s.graphqlSync}});Object.defineProperty(t,"introspectionFromSchema",{enumerable:true,get:function(){return u.introspectionFromSchema}});Object.defineProperty(t,"introspectionTypes",{enumerable:true,get:function(){return o.introspectionTypes}});Object.defineProperty(t,"isAbstractType",{enumerable:true,get:function(){return o.isAbstractType}});Object.defineProperty(t,"isCompositeType",{enumerable:true,get:function(){return o.isCompositeType}});Object.defineProperty(t,"isConstValueNode",{enumerable:true,get:function(){return i.isConstValueNode}});Object.defineProperty(t,"isDefinitionNode",{enumerable:true,get:function(){return i.isDefinitionNode}});Object.defineProperty(t,"isDirective",{enumerable:true,get:function(){return o.isDirective}});Object.defineProperty(t,"isEnumType",{enumerable:true,get:function(){return o.isEnumType}});Object.defineProperty(t,"isEqualType",{enumerable:true,get:function(){return u.isEqualType}});Object.defineProperty(t,"isExecutableDefinitionNode",{enumerable:true,get:function(){return i.isExecutableDefinitionNode}});Object.defineProperty(t,"isInputObjectType",{enumerable:true,get:function(){return o.isInputObjectType}});Object.defineProperty(t,"isInputType",{enumerable:true,get:function(){return o.isInputType}});Object.defineProperty(t,"isInterfaceType",{enumerable:true,get:function(){return o.isInterfaceType}});Object.defineProperty(t,"isIntrospectionType",{enumerable:true,get:function(){return o.isIntrospectionType}});Object.defineProperty(t,"isLeafType",{enumerable:true,get:function(){return o.isLeafType}});Object.defineProperty(t,"isListType",{enumerable:true,get:function(){return o.isListType}});Object.defineProperty(t,"isNamedType",{enumerable:true,get:function(){return o.isNamedType}});Object.defineProperty(t,"isNonNullType",{enumerable:true,get:function(){return o.isNonNullType}});Object.defineProperty(t,"isNullableType",{enumerable:true,get:function(){return o.isNullableType}});Object.defineProperty(t,"isObjectType",{enumerable:true,get:function(){return o.isObjectType}});Object.defineProperty(t,"isOutputType",{enumerable:true,get:function(){return o.isOutputType}});Object.defineProperty(t,"isRequiredArgument",{enumerable:true,get:function(){return o.isRequiredArgument}});Object.defineProperty(t,"isRequiredInputField",{enumerable:true,get:function(){return o.isRequiredInputField}});Object.defineProperty(t,"isScalarType",{enumerable:true,get:function(){return o.isScalarType}});Object.defineProperty(t,"isSchema",{enumerable:true,get:function(){return o.isSchema}});Object.defineProperty(t,"isSelectionNode",{enumerable:true,get:function(){return i.isSelectionNode}});Object.defineProperty(t,"isSpecifiedDirective",{enumerable:true,get:function(){return o.isSpecifiedDirective}});Object.defineProperty(t,"isSpecifiedScalarType",{enumerable:true,get:function(){return o.isSpecifiedScalarType}});Object.defineProperty(t,"isType",{enumerable:true,get:function(){return o.isType}});Object.defineProperty(t,"isTypeDefinitionNode",{enumerable:true,get:function(){return i.isTypeDefinitionNode}});Object.defineProperty(t,"isTypeExtensionNode",{enumerable:true,get:function(){return i.isTypeExtensionNode}});Object.defineProperty(t,"isTypeNode",{enumerable:true,get:function(){return i.isTypeNode}});Object.defineProperty(t,"isTypeSubTypeOf",{enumerable:true,get:function(){return u.isTypeSubTypeOf}});Object.defineProperty(t,"isTypeSystemDefinitionNode",{enumerable:true,get:function(){return i.isTypeSystemDefinitionNode}});Object.defineProperty(t,"isTypeSystemExtensionNode",{enumerable:true,get:function(){return i.isTypeSystemExtensionNode}});Object.defineProperty(t,"isUnionType",{enumerable:true,get:function(){return o.isUnionType}});Object.defineProperty(t,"isValidNameError",{enumerable:true,get:function(){return u.isValidNameError}});Object.defineProperty(t,"isValueNode",{enumerable:true,get:function(){return i.isValueNode}});Object.defineProperty(t,"isWrappingType",{enumerable:true,get:function(){return o.isWrappingType}});Object.defineProperty(t,"lexicographicSortSchema",{enumerable:true,get:function(){return u.lexicographicSortSchema}});Object.defineProperty(t,"locatedError",{enumerable:true,get:function(){return c.locatedError}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return i.parse}});Object.defineProperty(t,"parseConstValue",{enumerable:true,get:function(){return i.parseConstValue}});Object.defineProperty(t,"parseType",{enumerable:true,get:function(){return i.parseType}});Object.defineProperty(t,"parseValue",{enumerable:true,get:function(){return i.parseValue}});Object.defineProperty(t,"print",{enumerable:true,get:function(){return i.print}});Object.defineProperty(t,"printError",{enumerable:true,get:function(){return c.printError}});Object.defineProperty(t,"printIntrospectionSchema",{enumerable:true,get:function(){return u.printIntrospectionSchema}});Object.defineProperty(t,"printLocation",{enumerable:true,get:function(){return i.printLocation}});Object.defineProperty(t,"printSchema",{enumerable:true,get:function(){return u.printSchema}});Object.defineProperty(t,"printSourceLocation",{enumerable:true,get:function(){return i.printSourceLocation}});Object.defineProperty(t,"printType",{enumerable:true,get:function(){return u.printType}});Object.defineProperty(t,"recommendedRules",{enumerable:true,get:function(){return A.recommendedRules}});Object.defineProperty(t,"resolveObjMapThunk",{enumerable:true,get:function(){return o.resolveObjMapThunk}});Object.defineProperty(t,"resolveReadonlyArrayThunk",{enumerable:true,get:function(){return o.resolveReadonlyArrayThunk}});Object.defineProperty(t,"responsePathAsArray",{enumerable:true,get:function(){return a.responsePathAsArray}});Object.defineProperty(t,"separateOperations",{enumerable:true,get:function(){return u.separateOperations}});Object.defineProperty(t,"specifiedDirectives",{enumerable:true,get:function(){return o.specifiedDirectives}});Object.defineProperty(t,"specifiedRules",{enumerable:true,get:function(){return A.specifiedRules}});Object.defineProperty(t,"specifiedScalarTypes",{enumerable:true,get:function(){return o.specifiedScalarTypes}});Object.defineProperty(t,"stripIgnoredCharacters",{enumerable:true,get:function(){return u.stripIgnoredCharacters}});Object.defineProperty(t,"subscribe",{enumerable:true,get:function(){return a.subscribe}});Object.defineProperty(t,"syntaxError",{enumerable:true,get:function(){return c.syntaxError}});Object.defineProperty(t,"typeFromAST",{enumerable:true,get:function(){return u.typeFromAST}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return A.validate}});Object.defineProperty(t,"validateSchema",{enumerable:true,get:function(){return o.validateSchema}});Object.defineProperty(t,"valueFromAST",{enumerable:true,get:function(){return u.valueFromAST}});Object.defineProperty(t,"valueFromASTUntyped",{enumerable:true,get:function(){return u.valueFromASTUntyped}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return n.version}});Object.defineProperty(t,"versionInfo",{enumerable:true,get:function(){return n.versionInfo}});Object.defineProperty(t,"visit",{enumerable:true,get:function(){return i.visit}});Object.defineProperty(t,"visitInParallel",{enumerable:true,get:function(){return i.visitInParallel}});Object.defineProperty(t,"visitWithTypeInfo",{enumerable:true,get:function(){return u.visitWithTypeInfo}});var n=r(8725);var s=r(6352);var o=r(6618);var i=r(68);var a=r(4404);var A=r(7973);var c=r(9888);var u=r(7006)},3155:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.addPath=addPath;t.pathToArray=pathToArray;function addPath(e,t,r){return{prev:e,key:t,typename:r}}function pathToArray(e){const t=[];let r=e;while(r){t.push(r.key);r=r.prev}return t.reverse()}},5383:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.devAssert=devAssert;function devAssert(e,t){const r=Boolean(e);if(!r){throw new Error(t)}}},1353:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.didYouMean=didYouMean;const r=5;function didYouMean(e,t){const[n,s]=t?[e,t]:[undefined,e];let o=" Did you mean ";if(n){o+=n+" "}const i=s.map((e=>`"${e}"`));switch(i.length){case 0:return"";case 1:return o+i[0]+"?";case 2:return o+i[0]+" or "+i[1]+"?"}const a=i.slice(0,r);const A=a.pop();return o+a.join(", ")+", or "+A+"?"}},8520:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.groupBy=groupBy;function groupBy(e,t){const r=new Map;for(const n of e){const e=t(n);const s=r.get(e);if(s===undefined){r.set(e,[n])}else{s.push(n)}}return r}},6588:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.identityFunc=identityFunc;function identityFunc(e){return e}},5742:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.inspect=inspect;const r=10;const n=2;function inspect(e){return formatValue(e,[])}function formatValue(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return formatObjectValue(e,t);default:return String(e)}}function formatObjectValue(e,t){if(e===null){return"null"}if(t.includes(e)){return"[Circular]"}const r=[...t,e];if(isJSONable(e)){const t=e.toJSON();if(t!==e){return typeof t==="string"?t:formatValue(t,r)}}else if(Array.isArray(e)){return formatArray(e,r)}return formatObject(e,r)}function isJSONable(e){return typeof e.toJSON==="function"}function formatObject(e,t){const r=Object.entries(e);if(r.length===0){return"{}"}if(t.length>n){return"["+getObjectTag(e)+"]"}const s=r.map((([e,r])=>e+": "+formatValue(r,t)));return"{ "+s.join(", ")+" }"}function formatArray(e,t){if(e.length===0){return"[]"}if(t.length>n){return"[Array]"}const s=Math.min(r,e.length);const o=e.length-s;const i=[];for(let r=0;r1){i.push(`... ${o} more items`)}return"["+i.join(", ")+"]"}function getObjectTag(e){const t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor==="function"){const t=e.constructor.name;if(typeof t==="string"&&t!==""){return t}}return t}},5914:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.instanceOf=void 0;var n=r(5742);const s=globalThis.process&&process.env.NODE_ENV==="production";const o=s?function instanceOf(e,t){return e instanceof t}:function instanceOf(e,t){if(e instanceof t){return true}if(typeof e==="object"&&e!==null){var r;const s=t.prototype[Symbol.toStringTag];const o=Symbol.toStringTag in e?e[Symbol.toStringTag]:(r=e.constructor)===null||r===void 0?void 0:r.name;if(s===o){const t=(0,n.inspect)(e);throw new Error(`Cannot use ${s} "${t}" from another module or realm.\n\nEnsure that there is only one instance of "graphql" in the node_modules\ndirectory. If different versions of "graphql" are the dependencies of other\nrelied on modules, use "resolutions" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate "graphql" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`)}}return false};t.instanceOf=o},3650:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.invariant=invariant;function invariant(e,t){const r=Boolean(e);if(!r){throw new Error(t!=null?t:"Unexpected invariant triggered.")}}},4068:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isAsyncIterable=isAsyncIterable;function isAsyncIterable(e){return typeof(e===null||e===void 0?void 0:e[Symbol.asyncIterator])==="function"}},7341:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isIterableObject=isIterableObject;function isIterableObject(e){return typeof e==="object"&&typeof(e===null||e===void 0?void 0:e[Symbol.iterator])==="function"}},892:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isObjectLike=isObjectLike;function isObjectLike(e){return typeof e=="object"&&e!==null}},4091:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isPromise=isPromise;function isPromise(e){return typeof(e===null||e===void 0?void 0:e.then)==="function"}},7579:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.keyMap=keyMap;function keyMap(e,t){const r=Object.create(null);for(const n of e){r[t(n)]=n}return r}},3166:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.keyValMap=keyValMap;function keyValMap(e,t,r){const n=Object.create(null);for(const s of e){n[t(s)]=r(s)}return n}},5719:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.mapValue=mapValue;function mapValue(e,t){const r=Object.create(null);for(const n of Object.keys(e)){r[n]=t(e[n],n)}return r}},8141:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.memoize3=memoize3;function memoize3(e){let t;return function memoized(r,n,s){if(t===undefined){t=new WeakMap}let o=t.get(r);if(o===undefined){o=new WeakMap;t.set(r,o)}let i=o.get(n);if(i===undefined){i=new WeakMap;o.set(n,i)}let a=i.get(s);if(a===undefined){a=e(r,n,s);i.set(s,a)}return a}}},3428:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.naturalCompare=naturalCompare;function naturalCompare(e,t){let n=0;let s=0;while(n0);let A=0;do{++s;A=A*10+i-r;i=t.charCodeAt(s)}while(isDigit(i)&&A>0);if(aA){return 1}}else{if(oi){return 1}++n;++s}}return e.length-t.length}const r=48;const n=57;function isDigit(e){return!isNaN(e)&&r<=e&&e<=n}},8373:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.printPathArray=printPathArray;function printPathArray(e){return e.map((e=>typeof e==="number"?"["+e.toString()+"]":"."+e)).join("")}},5395:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.promiseForObject=promiseForObject;function promiseForObject(e){return Promise.all(Object.values(e)).then((t=>{const r=Object.create(null);for(const[n,s]of Object.keys(e).entries()){r[s]=t[n]}return r}))}},1369:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.promiseReduce=promiseReduce;var n=r(4091);function promiseReduce(e,t,r){let s=r;for(const r of e){s=(0,n.isPromise)(s)?s.then((e=>t(e,r))):t(s,r)}return s}},7904:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.suggestionList=suggestionList;var n=r(3428);function suggestionList(e,t){const r=Object.create(null);const s=new LexicalDistance(e);const o=Math.floor(e.length*.4)+1;for(const e of t){const t=s.measure(e,o);if(t!==undefined){r[e]=t}}return Object.keys(r).sort(((e,t)=>{const s=r[e]-r[t];return s!==0?s:(0,n.naturalCompare)(e,t)}))}class LexicalDistance{constructor(e){this._input=e;this._inputLowerCase=e.toLowerCase();this._inputArray=stringToArray(this._inputLowerCase);this._rows=[new Array(e.length+1).fill(0),new Array(e.length+1).fill(0),new Array(e.length+1).fill(0)]}measure(e,t){if(this._input===e){return 0}const r=e.toLowerCase();if(this._inputLowerCase===r){return 1}let n=stringToArray(r);let s=this._inputArray;if(n.lengtht){return undefined}const a=this._rows;for(let e=0;e<=i;e++){a[0][e]=e}for(let e=1;e<=o;e++){const r=a[(e-1)%3];const o=a[e%3];let A=o[0]=e;for(let t=1;t<=i;t++){const i=n[e-1]===s[t-1]?0:1;let c=Math.min(r[t]+1,o[t-1]+1,r[t-1]+i);if(e>1&&t>1&&n[e-1]===s[t-2]&&n[e-2]===s[t-1]){const r=a[(e-2)%3][t-2];c=Math.min(c,r+1)}if(ct){return undefined}}const A=a[o%3][i];return A<=t?A:undefined}}function stringToArray(e){const t=e.length;const r=new Array(t);for(let n=0;n{Object.defineProperty(t,"__esModule",{value:true});t.toError=toError;var n=r(5742);function toError(e){return e instanceof Error?e:new NonErrorThrown(e)}class NonErrorThrown extends Error{constructor(e){super("Unexpected error value: "+(0,n.inspect)(e));this.name="NonErrorThrown";this.thrownValue=e}}},7104:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.toObjMap=toObjMap;function toObjMap(e){if(e==null){return Object.create(null)}if(Object.getPrototypeOf(e)===null){return e}const t=Object.create(null);for(const[r,n]of Object.entries(e)){t[r]=n}return t}},2740:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Token=t.QueryDocumentKeys=t.OperationTypeNode=t.Location=void 0;t.isNode=isNode;class Location{constructor(e,t,r){this.start=e.start;this.end=t.end;this.startToken=e;this.endToken=t;this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}}t.Location=Location;class Token{constructor(e,t,r,n,s,o){this.kind=e;this.start=t;this.end=r;this.line=n;this.column=s;this.value=o;this.prev=null;this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}}t.Token=Token;const r={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]};t.QueryDocumentKeys=r;const n=new Set(Object.keys(r));function isNode(e){const t=e===null||e===void 0?void 0:e.kind;return typeof t==="string"&&n.has(t)}var s;t.OperationTypeNode=s;(function(e){e["QUERY"]="query";e["MUTATION"]="mutation";e["SUBSCRIPTION"]="subscription"})(s||(t.OperationTypeNode=s={}))},7508:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.dedentBlockStringLines=dedentBlockStringLines;t.isPrintableAsBlockString=isPrintableAsBlockString;t.printBlockString=printBlockString;var n=r(3271);function dedentBlockStringLines(e){var t;let r=Number.MAX_SAFE_INTEGER;let n=null;let s=-1;for(let t=0;tt===0?e:e.slice(r))).slice((t=n)!==null&&t!==void 0?t:0,s+1)}function leadingWhitespace(e){let t=0;while(t1&&s.slice(1).every((e=>e.length===0||(0,n.isWhiteSpace)(e.charCodeAt(0))));const a=r.endsWith('\\"""');const A=e.endsWith('"')&&!a;const c=e.endsWith("\\");const u=A||c;const l=!(t!==null&&t!==void 0&&t.minimize)&&(!o||e.length>70||u||i||a);let p="";const d=o&&(0,n.isWhiteSpace)(e.charCodeAt(0));if(l&&!d||i){p+="\n"}p+=r;if(l||u){p+="\n"}return'"""'+p+'"""'}},3271:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.isDigit=isDigit;t.isLetter=isLetter;t.isNameContinue=isNameContinue;t.isNameStart=isNameStart;t.isWhiteSpace=isWhiteSpace;function isWhiteSpace(e){return e===9||e===32}function isDigit(e){return e>=48&&e<=57}function isLetter(e){return e>=97&&e<=122||e>=65&&e<=90}function isNameStart(e){return isLetter(e)||e===95}function isNameContinue(e){return isLetter(e)||isDigit(e)||e===95}},2582:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.DirectiveLocation=void 0;var r;t.DirectiveLocation=r;(function(e){e["QUERY"]="QUERY";e["MUTATION"]="MUTATION";e["SUBSCRIPTION"]="SUBSCRIPTION";e["FIELD"]="FIELD";e["FRAGMENT_DEFINITION"]="FRAGMENT_DEFINITION";e["FRAGMENT_SPREAD"]="FRAGMENT_SPREAD";e["INLINE_FRAGMENT"]="INLINE_FRAGMENT";e["VARIABLE_DEFINITION"]="VARIABLE_DEFINITION";e["SCHEMA"]="SCHEMA";e["SCALAR"]="SCALAR";e["OBJECT"]="OBJECT";e["FIELD_DEFINITION"]="FIELD_DEFINITION";e["ARGUMENT_DEFINITION"]="ARGUMENT_DEFINITION";e["INTERFACE"]="INTERFACE";e["UNION"]="UNION";e["ENUM"]="ENUM";e["ENUM_VALUE"]="ENUM_VALUE";e["INPUT_OBJECT"]="INPUT_OBJECT";e["INPUT_FIELD_DEFINITION"]="INPUT_FIELD_DEFINITION"})(r||(t.DirectiveLocation=r={}))},68:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"BREAK",{enumerable:true,get:function(){return l.BREAK}});Object.defineProperty(t,"DirectiveLocation",{enumerable:true,get:function(){return g.DirectiveLocation}});Object.defineProperty(t,"Kind",{enumerable:true,get:function(){return i.Kind}});Object.defineProperty(t,"Lexer",{enumerable:true,get:function(){return A.Lexer}});Object.defineProperty(t,"Location",{enumerable:true,get:function(){return p.Location}});Object.defineProperty(t,"OperationTypeNode",{enumerable:true,get:function(){return p.OperationTypeNode}});Object.defineProperty(t,"Source",{enumerable:true,get:function(){return n.Source}});Object.defineProperty(t,"Token",{enumerable:true,get:function(){return p.Token}});Object.defineProperty(t,"TokenKind",{enumerable:true,get:function(){return a.TokenKind}});Object.defineProperty(t,"getEnterLeaveForKind",{enumerable:true,get:function(){return l.getEnterLeaveForKind}});Object.defineProperty(t,"getLocation",{enumerable:true,get:function(){return s.getLocation}});Object.defineProperty(t,"getVisitFn",{enumerable:true,get:function(){return l.getVisitFn}});Object.defineProperty(t,"isConstValueNode",{enumerable:true,get:function(){return d.isConstValueNode}});Object.defineProperty(t,"isDefinitionNode",{enumerable:true,get:function(){return d.isDefinitionNode}});Object.defineProperty(t,"isExecutableDefinitionNode",{enumerable:true,get:function(){return d.isExecutableDefinitionNode}});Object.defineProperty(t,"isSelectionNode",{enumerable:true,get:function(){return d.isSelectionNode}});Object.defineProperty(t,"isTypeDefinitionNode",{enumerable:true,get:function(){return d.isTypeDefinitionNode}});Object.defineProperty(t,"isTypeExtensionNode",{enumerable:true,get:function(){return d.isTypeExtensionNode}});Object.defineProperty(t,"isTypeNode",{enumerable:true,get:function(){return d.isTypeNode}});Object.defineProperty(t,"isTypeSystemDefinitionNode",{enumerable:true,get:function(){return d.isTypeSystemDefinitionNode}});Object.defineProperty(t,"isTypeSystemExtensionNode",{enumerable:true,get:function(){return d.isTypeSystemExtensionNode}});Object.defineProperty(t,"isValueNode",{enumerable:true,get:function(){return d.isValueNode}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return c.parse}});Object.defineProperty(t,"parseConstValue",{enumerable:true,get:function(){return c.parseConstValue}});Object.defineProperty(t,"parseType",{enumerable:true,get:function(){return c.parseType}});Object.defineProperty(t,"parseValue",{enumerable:true,get:function(){return c.parseValue}});Object.defineProperty(t,"print",{enumerable:true,get:function(){return u.print}});Object.defineProperty(t,"printLocation",{enumerable:true,get:function(){return o.printLocation}});Object.defineProperty(t,"printSourceLocation",{enumerable:true,get:function(){return o.printSourceLocation}});Object.defineProperty(t,"visit",{enumerable:true,get:function(){return l.visit}});Object.defineProperty(t,"visitInParallel",{enumerable:true,get:function(){return l.visitInParallel}});var n=r(203);var s=r(2245);var o=r(6512);var i=r(1123);var a=r(1743);var A=r(6897);var c=r(4929);var u=r(9936);var l=r(638);var p=r(2740);var d=r(5480);var g=r(2582)},1123:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Kind=void 0;var r;t.Kind=r;(function(e){e["NAME"]="Name";e["DOCUMENT"]="Document";e["OPERATION_DEFINITION"]="OperationDefinition";e["VARIABLE_DEFINITION"]="VariableDefinition";e["SELECTION_SET"]="SelectionSet";e["FIELD"]="Field";e["ARGUMENT"]="Argument";e["FRAGMENT_SPREAD"]="FragmentSpread";e["INLINE_FRAGMENT"]="InlineFragment";e["FRAGMENT_DEFINITION"]="FragmentDefinition";e["VARIABLE"]="Variable";e["INT"]="IntValue";e["FLOAT"]="FloatValue";e["STRING"]="StringValue";e["BOOLEAN"]="BooleanValue";e["NULL"]="NullValue";e["ENUM"]="EnumValue";e["LIST"]="ListValue";e["OBJECT"]="ObjectValue";e["OBJECT_FIELD"]="ObjectField";e["DIRECTIVE"]="Directive";e["NAMED_TYPE"]="NamedType";e["LIST_TYPE"]="ListType";e["NON_NULL_TYPE"]="NonNullType";e["SCHEMA_DEFINITION"]="SchemaDefinition";e["OPERATION_TYPE_DEFINITION"]="OperationTypeDefinition";e["SCALAR_TYPE_DEFINITION"]="ScalarTypeDefinition";e["OBJECT_TYPE_DEFINITION"]="ObjectTypeDefinition";e["FIELD_DEFINITION"]="FieldDefinition";e["INPUT_VALUE_DEFINITION"]="InputValueDefinition";e["INTERFACE_TYPE_DEFINITION"]="InterfaceTypeDefinition";e["UNION_TYPE_DEFINITION"]="UnionTypeDefinition";e["ENUM_TYPE_DEFINITION"]="EnumTypeDefinition";e["ENUM_VALUE_DEFINITION"]="EnumValueDefinition";e["INPUT_OBJECT_TYPE_DEFINITION"]="InputObjectTypeDefinition";e["DIRECTIVE_DEFINITION"]="DirectiveDefinition";e["SCHEMA_EXTENSION"]="SchemaExtension";e["SCALAR_TYPE_EXTENSION"]="ScalarTypeExtension";e["OBJECT_TYPE_EXTENSION"]="ObjectTypeExtension";e["INTERFACE_TYPE_EXTENSION"]="InterfaceTypeExtension";e["UNION_TYPE_EXTENSION"]="UnionTypeExtension";e["ENUM_TYPE_EXTENSION"]="EnumTypeExtension";e["INPUT_OBJECT_TYPE_EXTENSION"]="InputObjectTypeExtension"})(r||(t.Kind=r={}))},6897:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Lexer=void 0;t.isPunctuatorTokenKind=isPunctuatorTokenKind;var n=r(9619);var s=r(2740);var o=r(7508);var i=r(3271);var a=r(1743);class Lexer{constructor(e){const t=new s.Token(a.TokenKind.SOF,0,0,0,0);this.source=e;this.lastToken=t;this.token=t;this.line=1;this.lineStart=0}get[Symbol.toStringTag](){return"Lexer"}advance(){this.lastToken=this.token;const e=this.token=this.lookahead();return e}lookahead(){let e=this.token;if(e.kind!==a.TokenKind.EOF){do{if(e.next){e=e.next}else{const t=readNextToken(this,e.end);e.next=t;t.prev=e;e=t}}while(e.kind===a.TokenKind.COMMENT)}return e}}t.Lexer=Lexer;function isPunctuatorTokenKind(e){return e===a.TokenKind.BANG||e===a.TokenKind.DOLLAR||e===a.TokenKind.AMP||e===a.TokenKind.PAREN_L||e===a.TokenKind.PAREN_R||e===a.TokenKind.SPREAD||e===a.TokenKind.COLON||e===a.TokenKind.EQUALS||e===a.TokenKind.AT||e===a.TokenKind.BRACKET_L||e===a.TokenKind.BRACKET_R||e===a.TokenKind.BRACE_L||e===a.TokenKind.PIPE||e===a.TokenKind.BRACE_R}function isUnicodeScalarValue(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function isSupplementaryCodePoint(e,t){return isLeadingSurrogate(e.charCodeAt(t))&&isTrailingSurrogate(e.charCodeAt(t+1))}function isLeadingSurrogate(e){return e>=55296&&e<=56319}function isTrailingSurrogate(e){return e>=56320&&e<=57343}function printCodePointAt(e,t){const r=e.source.body.codePointAt(t);if(r===undefined){return a.TokenKind.EOF}else if(r>=32&&r<=126){const e=String.fromCodePoint(r);return e==='"'?"'\"'":`"${e}"`}return"U+"+r.toString(16).toUpperCase().padStart(4,"0")}function createToken(e,t,r,n,o){const i=e.line;const a=1+r-e.lineStart;return new s.Token(t,r,n,i,a,o)}function readNextToken(e,t){const r=e.source.body;const s=r.length;let o=t;while(o=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function readEscapedCharacter(e,t){const r=e.source.body;const s=r.charCodeAt(t+1);switch(s){case 34:return{value:'"',size:2};case 92:return{value:"\\",size:2};case 47:return{value:"/",size:2};case 98:return{value:"\b",size:2};case 102:return{value:"\f",size:2};case 110:return{value:"\n",size:2};case 114:return{value:"\r",size:2};case 116:return{value:"\t",size:2}}throw(0,n.syntaxError)(e.source,t,`Invalid character escape sequence: "${r.slice(t,t+2)}".`)}function readBlockString(e,t){const r=e.source.body;const s=r.length;let i=e.lineStart;let A=t+3;let c=A;let u="";const l=[];while(A{Object.defineProperty(t,"__esModule",{value:true});t.getLocation=getLocation;var n=r(3650);const s=/\r\n|[\n\r]/g;function getLocation(e,t){let r=0;let o=1;for(const i of e.body.matchAll(s)){typeof i.index==="number"||(0,n.invariant)(false);if(i.index>=t){break}r=i.index+i[0].length;o+=1}return{line:o,column:t+1-r}}},4929:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Parser=void 0;t.parse=parse;t.parseConstValue=parseConstValue;t.parseType=parseType;t.parseValue=parseValue;var n=r(9619);var s=r(2740);var o=r(2582);var i=r(1123);var a=r(6897);var A=r(203);var c=r(1743);function parse(e,t){const r=new Parser(e,t);return r.parseDocument()}function parseValue(e,t){const r=new Parser(e,t);r.expectToken(c.TokenKind.SOF);const n=r.parseValueLiteral(false);r.expectToken(c.TokenKind.EOF);return n}function parseConstValue(e,t){const r=new Parser(e,t);r.expectToken(c.TokenKind.SOF);const n=r.parseConstValueLiteral();r.expectToken(c.TokenKind.EOF);return n}function parseType(e,t){const r=new Parser(e,t);r.expectToken(c.TokenKind.SOF);const n=r.parseTypeReference();r.expectToken(c.TokenKind.EOF);return n}class Parser{constructor(e,t={}){const r=(0,A.isSource)(e)?e:new A.Source(e);this._lexer=new a.Lexer(r);this._options=t;this._tokenCounter=0}parseName(){const e=this.expectToken(c.TokenKind.NAME);return this.node(e,{kind:i.Kind.NAME,value:e.value})}parseDocument(){return this.node(this._lexer.token,{kind:i.Kind.DOCUMENT,definitions:this.many(c.TokenKind.SOF,this.parseDefinition,c.TokenKind.EOF)})}parseDefinition(){if(this.peek(c.TokenKind.BRACE_L)){return this.parseOperationDefinition()}const e=this.peekDescription();const t=e?this._lexer.lookahead():this._lexer.token;if(t.kind===c.TokenKind.NAME){switch(t.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(e){throw(0,n.syntaxError)(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.")}switch(t.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(t)}parseOperationDefinition(){const e=this._lexer.token;if(this.peek(c.TokenKind.BRACE_L)){return this.node(e,{kind:i.Kind.OPERATION_DEFINITION,operation:s.OperationTypeNode.QUERY,name:undefined,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()})}const t=this.parseOperationType();let r;if(this.peek(c.TokenKind.NAME)){r=this.parseName()}return this.node(e,{kind:i.Kind.OPERATION_DEFINITION,operation:t,name:r,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}parseOperationType(){const e=this.expectToken(c.TokenKind.NAME);switch(e.value){case"query":return s.OperationTypeNode.QUERY;case"mutation":return s.OperationTypeNode.MUTATION;case"subscription":return s.OperationTypeNode.SUBSCRIPTION}throw this.unexpected(e)}parseVariableDefinitions(){return this.optionalMany(c.TokenKind.PAREN_L,this.parseVariableDefinition,c.TokenKind.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:i.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(c.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(c.TokenKind.EQUALS)?this.parseConstValueLiteral():undefined,directives:this.parseConstDirectives()})}parseVariable(){const e=this._lexer.token;this.expectToken(c.TokenKind.DOLLAR);return this.node(e,{kind:i.Kind.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:i.Kind.SELECTION_SET,selections:this.many(c.TokenKind.BRACE_L,this.parseSelection,c.TokenKind.BRACE_R)})}parseSelection(){return this.peek(c.TokenKind.SPREAD)?this.parseFragment():this.parseField()}parseField(){const e=this._lexer.token;const t=this.parseName();let r;let n;if(this.expectOptionalToken(c.TokenKind.COLON)){r=t;n=this.parseName()}else{n=t}return this.node(e,{kind:i.Kind.FIELD,alias:r,name:n,arguments:this.parseArguments(false),directives:this.parseDirectives(false),selectionSet:this.peek(c.TokenKind.BRACE_L)?this.parseSelectionSet():undefined})}parseArguments(e){const t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(c.TokenKind.PAREN_L,t,c.TokenKind.PAREN_R)}parseArgument(e=false){const t=this._lexer.token;const r=this.parseName();this.expectToken(c.TokenKind.COLON);return this.node(t,{kind:i.Kind.ARGUMENT,name:r,value:this.parseValueLiteral(e)})}parseConstArgument(){return this.parseArgument(true)}parseFragment(){const e=this._lexer.token;this.expectToken(c.TokenKind.SPREAD);const t=this.expectOptionalKeyword("on");if(!t&&this.peek(c.TokenKind.NAME)){return this.node(e,{kind:i.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(false)})}return this.node(e,{kind:i.Kind.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():undefined,directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){const e=this._lexer.token;this.expectKeyword("fragment");if(this._options.allowLegacyFragmentVariables===true){return this.node(e,{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}return this.node(e,{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(false),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on"){throw this.unexpected()}return this.parseName()}parseValueLiteral(e){const t=this._lexer.token;switch(t.kind){case c.TokenKind.BRACKET_L:return this.parseList(e);case c.TokenKind.BRACE_L:return this.parseObject(e);case c.TokenKind.INT:this.advanceLexer();return this.node(t,{kind:i.Kind.INT,value:t.value});case c.TokenKind.FLOAT:this.advanceLexer();return this.node(t,{kind:i.Kind.FLOAT,value:t.value});case c.TokenKind.STRING:case c.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case c.TokenKind.NAME:this.advanceLexer();switch(t.value){case"true":return this.node(t,{kind:i.Kind.BOOLEAN,value:true});case"false":return this.node(t,{kind:i.Kind.BOOLEAN,value:false});case"null":return this.node(t,{kind:i.Kind.NULL});default:return this.node(t,{kind:i.Kind.ENUM,value:t.value})}case c.TokenKind.DOLLAR:if(e){this.expectToken(c.TokenKind.DOLLAR);if(this._lexer.token.kind===c.TokenKind.NAME){const e=this._lexer.token.value;throw(0,n.syntaxError)(this._lexer.source,t.start,`Unexpected variable "$${e}" in constant value.`)}else{throw this.unexpected(t)}}return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(true)}parseStringLiteral(){const e=this._lexer.token;this.advanceLexer();return this.node(e,{kind:i.Kind.STRING,value:e.value,block:e.kind===c.TokenKind.BLOCK_STRING})}parseList(e){const item=()=>this.parseValueLiteral(e);return this.node(this._lexer.token,{kind:i.Kind.LIST,values:this.any(c.TokenKind.BRACKET_L,item,c.TokenKind.BRACKET_R)})}parseObject(e){const item=()=>this.parseObjectField(e);return this.node(this._lexer.token,{kind:i.Kind.OBJECT,fields:this.any(c.TokenKind.BRACE_L,item,c.TokenKind.BRACE_R)})}parseObjectField(e){const t=this._lexer.token;const r=this.parseName();this.expectToken(c.TokenKind.COLON);return this.node(t,{kind:i.Kind.OBJECT_FIELD,name:r,value:this.parseValueLiteral(e)})}parseDirectives(e){const t=[];while(this.peek(c.TokenKind.AT)){t.push(this.parseDirective(e))}return t}parseConstDirectives(){return this.parseDirectives(true)}parseDirective(e){const t=this._lexer.token;this.expectToken(c.TokenKind.AT);return this.node(t,{kind:i.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e)})}parseTypeReference(){const e=this._lexer.token;let t;if(this.expectOptionalToken(c.TokenKind.BRACKET_L)){const r=this.parseTypeReference();this.expectToken(c.TokenKind.BRACKET_R);t=this.node(e,{kind:i.Kind.LIST_TYPE,type:r})}else{t=this.parseNamedType()}if(this.expectOptionalToken(c.TokenKind.BANG)){return this.node(e,{kind:i.Kind.NON_NULL_TYPE,type:t})}return t}parseNamedType(){return this.node(this._lexer.token,{kind:i.Kind.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(c.TokenKind.STRING)||this.peek(c.TokenKind.BLOCK_STRING)}parseDescription(){if(this.peekDescription()){return this.parseStringLiteral()}}parseSchemaDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("schema");const r=this.parseConstDirectives();const n=this.many(c.TokenKind.BRACE_L,this.parseOperationTypeDefinition,c.TokenKind.BRACE_R);return this.node(e,{kind:i.Kind.SCHEMA_DEFINITION,description:t,directives:r,operationTypes:n})}parseOperationTypeDefinition(){const e=this._lexer.token;const t=this.parseOperationType();this.expectToken(c.TokenKind.COLON);const r=this.parseNamedType();return this.node(e,{kind:i.Kind.OPERATION_TYPE_DEFINITION,operation:t,type:r})}parseScalarTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("scalar");const r=this.parseName();const n=this.parseConstDirectives();return this.node(e,{kind:i.Kind.SCALAR_TYPE_DEFINITION,description:t,name:r,directives:n})}parseObjectTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("type");const r=this.parseName();const n=this.parseImplementsInterfaces();const s=this.parseConstDirectives();const o=this.parseFieldsDefinition();return this.node(e,{kind:i.Kind.OBJECT_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:s,fields:o})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(c.TokenKind.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(c.TokenKind.BRACE_L,this.parseFieldDefinition,c.TokenKind.BRACE_R)}parseFieldDefinition(){const e=this._lexer.token;const t=this.parseDescription();const r=this.parseName();const n=this.parseArgumentDefs();this.expectToken(c.TokenKind.COLON);const s=this.parseTypeReference();const o=this.parseConstDirectives();return this.node(e,{kind:i.Kind.FIELD_DEFINITION,description:t,name:r,arguments:n,type:s,directives:o})}parseArgumentDefs(){return this.optionalMany(c.TokenKind.PAREN_L,this.parseInputValueDef,c.TokenKind.PAREN_R)}parseInputValueDef(){const e=this._lexer.token;const t=this.parseDescription();const r=this.parseName();this.expectToken(c.TokenKind.COLON);const n=this.parseTypeReference();let s;if(this.expectOptionalToken(c.TokenKind.EQUALS)){s=this.parseConstValueLiteral()}const o=this.parseConstDirectives();return this.node(e,{kind:i.Kind.INPUT_VALUE_DEFINITION,description:t,name:r,type:n,defaultValue:s,directives:o})}parseInterfaceTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("interface");const r=this.parseName();const n=this.parseImplementsInterfaces();const s=this.parseConstDirectives();const o=this.parseFieldsDefinition();return this.node(e,{kind:i.Kind.INTERFACE_TYPE_DEFINITION,description:t,name:r,interfaces:n,directives:s,fields:o})}parseUnionTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("union");const r=this.parseName();const n=this.parseConstDirectives();const s=this.parseUnionMemberTypes();return this.node(e,{kind:i.Kind.UNION_TYPE_DEFINITION,description:t,name:r,directives:n,types:s})}parseUnionMemberTypes(){return this.expectOptionalToken(c.TokenKind.EQUALS)?this.delimitedMany(c.TokenKind.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("enum");const r=this.parseName();const n=this.parseConstDirectives();const s=this.parseEnumValuesDefinition();return this.node(e,{kind:i.Kind.ENUM_TYPE_DEFINITION,description:t,name:r,directives:n,values:s})}parseEnumValuesDefinition(){return this.optionalMany(c.TokenKind.BRACE_L,this.parseEnumValueDefinition,c.TokenKind.BRACE_R)}parseEnumValueDefinition(){const e=this._lexer.token;const t=this.parseDescription();const r=this.parseEnumValueName();const n=this.parseConstDirectives();return this.node(e,{kind:i.Kind.ENUM_VALUE_DEFINITION,description:t,name:r,directives:n})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null"){throw(0,n.syntaxError)(this._lexer.source,this._lexer.token.start,`${getTokenDesc(this._lexer.token)} is reserved and cannot be used for an enum value.`)}return this.parseName()}parseInputObjectTypeDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("input");const r=this.parseName();const n=this.parseConstDirectives();const s=this.parseInputFieldsDefinition();return this.node(e,{kind:i.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:r,directives:n,fields:s})}parseInputFieldsDefinition(){return this.optionalMany(c.TokenKind.BRACE_L,this.parseInputValueDef,c.TokenKind.BRACE_R)}parseTypeSystemExtension(){const e=this._lexer.lookahead();if(e.kind===c.TokenKind.NAME){switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}}throw this.unexpected(e)}parseSchemaExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("schema");const t=this.parseConstDirectives();const r=this.optionalMany(c.TokenKind.BRACE_L,this.parseOperationTypeDefinition,c.TokenKind.BRACE_R);if(t.length===0&&r.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.SCHEMA_EXTENSION,directives:t,operationTypes:r})}parseScalarTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("scalar");const t=this.parseName();const r=this.parseConstDirectives();if(r.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.SCALAR_TYPE_EXTENSION,name:t,directives:r})}parseObjectTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("type");const t=this.parseName();const r=this.parseImplementsInterfaces();const n=this.parseConstDirectives();const s=this.parseFieldsDefinition();if(r.length===0&&n.length===0&&s.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.OBJECT_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:s})}parseInterfaceTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("interface");const t=this.parseName();const r=this.parseImplementsInterfaces();const n=this.parseConstDirectives();const s=this.parseFieldsDefinition();if(r.length===0&&n.length===0&&s.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.INTERFACE_TYPE_EXTENSION,name:t,interfaces:r,directives:n,fields:s})}parseUnionTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("union");const t=this.parseName();const r=this.parseConstDirectives();const n=this.parseUnionMemberTypes();if(r.length===0&&n.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.UNION_TYPE_EXTENSION,name:t,directives:r,types:n})}parseEnumTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("enum");const t=this.parseName();const r=this.parseConstDirectives();const n=this.parseEnumValuesDefinition();if(r.length===0&&n.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.ENUM_TYPE_EXTENSION,name:t,directives:r,values:n})}parseInputObjectTypeExtension(){const e=this._lexer.token;this.expectKeyword("extend");this.expectKeyword("input");const t=this.parseName();const r=this.parseConstDirectives();const n=this.parseInputFieldsDefinition();if(r.length===0&&n.length===0){throw this.unexpected()}return this.node(e,{kind:i.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:r,fields:n})}parseDirectiveDefinition(){const e=this._lexer.token;const t=this.parseDescription();this.expectKeyword("directive");this.expectToken(c.TokenKind.AT);const r=this.parseName();const n=this.parseArgumentDefs();const s=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");const o=this.parseDirectiveLocations();return this.node(e,{kind:i.Kind.DIRECTIVE_DEFINITION,description:t,name:r,arguments:n,repeatable:s,locations:o})}parseDirectiveLocations(){return this.delimitedMany(c.TokenKind.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){const e=this._lexer.token;const t=this.parseName();if(Object.prototype.hasOwnProperty.call(o.DirectiveLocation,t.value)){return t}throw this.unexpected(e)}node(e,t){if(this._options.noLocation!==true){t.loc=new s.Location(e,this._lexer.lastToken,this._lexer.source)}return t}peek(e){return this._lexer.token.kind===e}expectToken(e){const t=this._lexer.token;if(t.kind===e){this.advanceLexer();return t}throw(0,n.syntaxError)(this._lexer.source,t.start,`Expected ${getTokenKindDesc(e)}, found ${getTokenDesc(t)}.`)}expectOptionalToken(e){const t=this._lexer.token;if(t.kind===e){this.advanceLexer();return true}return false}expectKeyword(e){const t=this._lexer.token;if(t.kind===c.TokenKind.NAME&&t.value===e){this.advanceLexer()}else{throw(0,n.syntaxError)(this._lexer.source,t.start,`Expected "${e}", found ${getTokenDesc(t)}.`)}}expectOptionalKeyword(e){const t=this._lexer.token;if(t.kind===c.TokenKind.NAME&&t.value===e){this.advanceLexer();return true}return false}unexpected(e){const t=e!==null&&e!==void 0?e:this._lexer.token;return(0,n.syntaxError)(this._lexer.source,t.start,`Unexpected ${getTokenDesc(t)}.`)}any(e,t,r){this.expectToken(e);const n=[];while(!this.expectOptionalToken(r)){n.push(t.call(this))}return n}optionalMany(e,t,r){if(this.expectOptionalToken(e)){const e=[];do{e.push(t.call(this))}while(!this.expectOptionalToken(r));return e}return[]}many(e,t,r){this.expectToken(e);const n=[];do{n.push(t.call(this))}while(!this.expectOptionalToken(r));return n}delimitedMany(e,t){this.expectOptionalToken(e);const r=[];do{r.push(t.call(this))}while(this.expectOptionalToken(e));return r}advanceLexer(){const{maxTokens:e}=this._options;const t=this._lexer.advance();if(e!==undefined&&t.kind!==c.TokenKind.EOF){++this._tokenCounter;if(this._tokenCounter>e){throw(0,n.syntaxError)(this._lexer.source,t.start,`Document contains more that ${e} tokens. Parsing aborted.`)}}}}t.Parser=Parser;function getTokenDesc(e){const t=e.value;return getTokenKindDesc(e.kind)+(t!=null?` "${t}"`:"")}function getTokenKindDesc(e){return(0,a.isPunctuatorTokenKind)(e)?`"${e}"`:e}},5480:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.isConstValueNode=isConstValueNode;t.isDefinitionNode=isDefinitionNode;t.isExecutableDefinitionNode=isExecutableDefinitionNode;t.isSelectionNode=isSelectionNode;t.isTypeDefinitionNode=isTypeDefinitionNode;t.isTypeExtensionNode=isTypeExtensionNode;t.isTypeNode=isTypeNode;t.isTypeSystemDefinitionNode=isTypeSystemDefinitionNode;t.isTypeSystemExtensionNode=isTypeSystemExtensionNode;t.isValueNode=isValueNode;var n=r(1123);function isDefinitionNode(e){return isExecutableDefinitionNode(e)||isTypeSystemDefinitionNode(e)||isTypeSystemExtensionNode(e)}function isExecutableDefinitionNode(e){return e.kind===n.Kind.OPERATION_DEFINITION||e.kind===n.Kind.FRAGMENT_DEFINITION}function isSelectionNode(e){return e.kind===n.Kind.FIELD||e.kind===n.Kind.FRAGMENT_SPREAD||e.kind===n.Kind.INLINE_FRAGMENT}function isValueNode(e){return e.kind===n.Kind.VARIABLE||e.kind===n.Kind.INT||e.kind===n.Kind.FLOAT||e.kind===n.Kind.STRING||e.kind===n.Kind.BOOLEAN||e.kind===n.Kind.NULL||e.kind===n.Kind.ENUM||e.kind===n.Kind.LIST||e.kind===n.Kind.OBJECT}function isConstValueNode(e){return isValueNode(e)&&(e.kind===n.Kind.LIST?e.values.some(isConstValueNode):e.kind===n.Kind.OBJECT?e.fields.some((e=>isConstValueNode(e.value))):e.kind!==n.Kind.VARIABLE)}function isTypeNode(e){return e.kind===n.Kind.NAMED_TYPE||e.kind===n.Kind.LIST_TYPE||e.kind===n.Kind.NON_NULL_TYPE}function isTypeSystemDefinitionNode(e){return e.kind===n.Kind.SCHEMA_DEFINITION||isTypeDefinitionNode(e)||e.kind===n.Kind.DIRECTIVE_DEFINITION}function isTypeDefinitionNode(e){return e.kind===n.Kind.SCALAR_TYPE_DEFINITION||e.kind===n.Kind.OBJECT_TYPE_DEFINITION||e.kind===n.Kind.INTERFACE_TYPE_DEFINITION||e.kind===n.Kind.UNION_TYPE_DEFINITION||e.kind===n.Kind.ENUM_TYPE_DEFINITION||e.kind===n.Kind.INPUT_OBJECT_TYPE_DEFINITION}function isTypeSystemExtensionNode(e){return e.kind===n.Kind.SCHEMA_EXTENSION||isTypeExtensionNode(e)}function isTypeExtensionNode(e){return e.kind===n.Kind.SCALAR_TYPE_EXTENSION||e.kind===n.Kind.OBJECT_TYPE_EXTENSION||e.kind===n.Kind.INTERFACE_TYPE_EXTENSION||e.kind===n.Kind.UNION_TYPE_EXTENSION||e.kind===n.Kind.ENUM_TYPE_EXTENSION||e.kind===n.Kind.INPUT_OBJECT_TYPE_EXTENSION}},6512:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.printLocation=printLocation;t.printSourceLocation=printSourceLocation;var n=r(2245);function printLocation(e){return printSourceLocation(e.source,(0,n.getLocation)(e.source,e.start))}function printSourceLocation(e,t){const r=e.locationOffset.column-1;const n="".padStart(r)+e.body;const s=t.line-1;const o=e.locationOffset.line-1;const i=t.line+o;const a=t.line===1?r:0;const A=t.column+a;const c=`${e.name}:${i}:${A}\n`;const u=n.split(/\r\n|[\n\r]/g);const l=u[s];if(l.length>120){const e=Math.floor(A/80);const t=A%80;const r=[];for(let e=0;e["|",e])),["|","^".padStart(t)],["|",r[e+1]]])}return c+printPrefixedLines([[`${i-1} |`,u[s-1]],[`${i} |`,l],["|","^".padStart(A)],[`${i+1} |`,u[s+1]]])}function printPrefixedLines(e){const t=e.filter((([e,t])=>t!==undefined));const r=Math.max(...t.map((([e])=>e.length)));return t.map((([e,t])=>e.padStart(r)+(t?" "+t:""))).join("\n")}},9934:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.printString=printString;function printString(e){return`"${e.replace(r,escapedReplacer)}"`}const r=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function escapedReplacer(e){return n[e.charCodeAt(0)]}const n=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"]},9936:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.print=print;var n=r(7508);var s=r(9934);var o=r(638);function print(e){return(0,o.visit)(e,a)}const i=80;const a={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>join(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=wrap("(",join(e.variableDefinitions,", "),")");const r=join([e.operation,join([e.name,t]),join(e.directives," ")]," ");return(r==="query"?"":r+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:r,directives:n})=>e+": "+t+wrap(" = ",r)+wrap(" ",join(n," "))},SelectionSet:{leave:({selections:e})=>block(e)},Field:{leave({alias:e,name:t,arguments:r,directives:n,selectionSet:s}){const o=wrap("",e,": ")+t;let a=o+wrap("(",join(r,", "),")");if(a.length>i){a=o+wrap("(\n",indent(join(r,"\n")),"\n)")}return join([a,join(n," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+wrap(" ",join(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:r})=>join(["...",wrap("on ",e),join(t," "),r]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:r,directives:n,selectionSet:s})=>`fragment ${e}${wrap("(",join(r,", "),")")} `+`on ${t} ${wrap("",join(n," ")," ")}`+s},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?(0,n.printBlockString)(e):(0,s.printString)(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+join(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+join(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+wrap("(",join(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:r})=>wrap("",e,"\n")+join(["schema",join(t," "),block(r)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:r})=>wrap("",e,"\n")+join(["scalar",t,join(r," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:r,directives:n,fields:s})=>wrap("",e,"\n")+join(["type",t,wrap("implements ",join(r," & ")),join(n," "),block(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:r,type:n,directives:s})=>wrap("",e,"\n")+t+(hasMultilineItems(r)?wrap("(\n",indent(join(r,"\n")),"\n)"):wrap("(",join(r,", "),")"))+": "+n+wrap(" ",join(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:r,defaultValue:n,directives:s})=>wrap("",e,"\n")+join([t+": "+r,wrap("= ",n),join(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:r,directives:n,fields:s})=>wrap("",e,"\n")+join(["interface",t,wrap("implements ",join(r," & ")),join(n," "),block(s)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:r,types:n})=>wrap("",e,"\n")+join(["union",t,join(r," "),wrap("= ",join(n," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:r,values:n})=>wrap("",e,"\n")+join(["enum",t,join(r," "),block(n)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:r})=>wrap("",e,"\n")+join([t,join(r," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:r,fields:n})=>wrap("",e,"\n")+join(["input",t,join(r," "),block(n)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:r,repeatable:n,locations:s})=>wrap("",e,"\n")+"directive @"+t+(hasMultilineItems(r)?wrap("(\n",indent(join(r,"\n")),"\n)"):wrap("(",join(r,", "),")"))+(n?" repeatable":"")+" on "+join(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>join(["extend schema",join(e," "),block(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>join(["extend scalar",e,join(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:r,fields:n})=>join(["extend type",e,wrap("implements ",join(t," & ")),join(r," "),block(n)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:r,fields:n})=>join(["extend interface",e,wrap("implements ",join(t," & ")),join(r," "),block(n)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:r})=>join(["extend union",e,join(t," "),wrap("= ",join(r," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:r})=>join(["extend enum",e,join(t," "),block(r)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:r})=>join(["extend input",e,join(t," "),block(r)]," ")}};function join(e,t=""){var r;return(r=e===null||e===void 0?void 0:e.filter((e=>e)).join(t))!==null&&r!==void 0?r:""}function block(e){return wrap("{\n",indent(join(e,"\n")),"\n}")}function wrap(e,t,r=""){return t!=null&&t!==""?e+t+r:""}function indent(e){return wrap(" ",e.replace(/\n/g,"\n "))}function hasMultilineItems(e){var t;return(t=e===null||e===void 0?void 0:e.some((e=>e.includes("\n"))))!==null&&t!==void 0?t:false}},203:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.Source=void 0;t.isSource=isSource;var n=r(5383);var s=r(5742);var o=r(5914);class Source{constructor(e,t="GraphQL request",r={line:1,column:1}){typeof e==="string"||(0,n.devAssert)(false,`Body must be a string. Received: ${(0,s.inspect)(e)}.`);this.body=e;this.name=t;this.locationOffset=r;this.locationOffset.line>0||(0,n.devAssert)(false,"line in locationOffset is 1-indexed and must be positive.");this.locationOffset.column>0||(0,n.devAssert)(false,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}}t.Source=Source;function isSource(e){return(0,o.instanceOf)(e,Source)}},1743:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.TokenKind=void 0;var r;t.TokenKind=r;(function(e){e["SOF"]="";e["EOF"]="";e["BANG"]="!";e["DOLLAR"]="$";e["AMP"]="&";e["PAREN_L"]="(";e["PAREN_R"]=")";e["SPREAD"]="...";e["COLON"]=":";e["EQUALS"]="=";e["AT"]="@";e["BRACKET_L"]="[";e["BRACKET_R"]="]";e["BRACE_L"]="{";e["PIPE"]="|";e["BRACE_R"]="}";e["NAME"]="Name";e["INT"]="Int";e["FLOAT"]="Float";e["STRING"]="String";e["BLOCK_STRING"]="BlockString";e["COMMENT"]="Comment"})(r||(t.TokenKind=r={}))},638:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.BREAK=void 0;t.getEnterLeaveForKind=getEnterLeaveForKind;t.getVisitFn=getVisitFn;t.visit=visit;t.visitInParallel=visitInParallel;var n=r(5383);var s=r(5742);var o=r(2740);var i=r(1123);const a=Object.freeze({});t.BREAK=a;function visit(e,t,r=o.QueryDocumentKeys){const A=new Map;for(const e of Object.values(i.Kind)){A.set(e,getEnterLeaveForKind(t,e))}let c=undefined;let u=Array.isArray(e);let l=[e];let p=-1;let d=[];let g=e;let h=undefined;let E=undefined;const m=[];const I=[];do{p++;const e=p===l.length;const i=e&&d.length!==0;if(e){h=I.length===0?undefined:m[m.length-1];g=E;E=I.pop();if(i){if(u){g=g.slice();let e=0;for(const[t,r]of d){const n=t-e;if(r===null){g.splice(n,1);e++}else{g[n]=r}}}else{g=Object.defineProperties({},Object.getOwnPropertyDescriptors(g));for(const[e,t]of d){g[e]=t}}}p=c.index;l=c.keys;d=c.edits;u=c.inArray;c=c.prev}else if(E){h=u?p:l[p];g=E[h];if(g===null||g===undefined){continue}m.push(h)}let B;if(!Array.isArray(g)){var y,C;(0,o.isNode)(g)||(0,n.devAssert)(false,`Invalid AST Node: ${(0,s.inspect)(g)}.`);const r=e?(y=A.get(g.kind))===null||y===void 0?void 0:y.leave:(C=A.get(g.kind))===null||C===void 0?void 0:C.enter;B=r===null||r===void 0?void 0:r.call(t,g,h,E,m,I);if(B===a){break}if(B===false){if(!e){m.pop();continue}}else if(B!==undefined){d.push([h,B]);if(!e){if((0,o.isNode)(B)){g=B}else{m.pop();continue}}}}if(B===undefined&&i){d.push([h,g])}if(e){m.pop()}else{var Q;c={inArray:u,index:p,keys:l,edits:d,prev:c};u=Array.isArray(g);l=u?g:(Q=r[g.kind])!==null&&Q!==void 0?Q:[];p=-1;d=[];if(E){I.push(E)}E=g}}while(c!==undefined);if(d.length!==0){return d[d.length-1][1]}return e}function visitInParallel(e){const t=new Array(e.length).fill(null);const r=Object.create(null);for(const n of Object.values(i.Kind)){let s=false;const o=new Array(e.length).fill(undefined);const i=new Array(e.length).fill(undefined);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:true});t.assertEnumValueName=assertEnumValueName;t.assertName=assertName;var n=r(5383);var s=r(5939);var o=r(3271);function assertName(e){e!=null||(0,n.devAssert)(false,"Must provide name.");typeof e==="string"||(0,n.devAssert)(false,"Expected name to be a string.");if(e.length===0){throw new s.GraphQLError("Expected name to be a non-empty string.")}for(let t=1;t{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLUnionType=t.GraphQLScalarType=t.GraphQLObjectType=t.GraphQLNonNull=t.GraphQLList=t.GraphQLInterfaceType=t.GraphQLInputObjectType=t.GraphQLEnumType=void 0;t.argsToArgsConfig=argsToArgsConfig;t.assertAbstractType=assertAbstractType;t.assertCompositeType=assertCompositeType;t.assertEnumType=assertEnumType;t.assertInputObjectType=assertInputObjectType;t.assertInputType=assertInputType;t.assertInterfaceType=assertInterfaceType;t.assertLeafType=assertLeafType;t.assertListType=assertListType;t.assertNamedType=assertNamedType;t.assertNonNullType=assertNonNullType;t.assertNullableType=assertNullableType;t.assertObjectType=assertObjectType;t.assertOutputType=assertOutputType;t.assertScalarType=assertScalarType;t.assertType=assertType;t.assertUnionType=assertUnionType;t.assertWrappingType=assertWrappingType;t.defineArguments=defineArguments;t.getNamedType=getNamedType;t.getNullableType=getNullableType;t.isAbstractType=isAbstractType;t.isCompositeType=isCompositeType;t.isEnumType=isEnumType;t.isInputObjectType=isInputObjectType;t.isInputType=isInputType;t.isInterfaceType=isInterfaceType;t.isLeafType=isLeafType;t.isListType=isListType;t.isNamedType=isNamedType;t.isNonNullType=isNonNullType;t.isNullableType=isNullableType;t.isObjectType=isObjectType;t.isOutputType=isOutputType;t.isRequiredArgument=isRequiredArgument;t.isRequiredInputField=isRequiredInputField;t.isScalarType=isScalarType;t.isType=isType;t.isUnionType=isUnionType;t.isWrappingType=isWrappingType;t.resolveObjMapThunk=resolveObjMapThunk;t.resolveReadonlyArrayThunk=resolveReadonlyArrayThunk;var n=r(5383);var s=r(1353);var o=r(6588);var i=r(5742);var a=r(5914);var A=r(892);var c=r(7579);var u=r(3166);var l=r(5719);var p=r(7904);var d=r(7104);var g=r(5939);var h=r(1123);var E=r(9936);var m=r(5470);var I=r(8337);function isType(e){return isScalarType(e)||isObjectType(e)||isInterfaceType(e)||isUnionType(e)||isEnumType(e)||isInputObjectType(e)||isListType(e)||isNonNullType(e)}function assertType(e){if(!isType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL type.`)}return e}function isScalarType(e){return(0,a.instanceOf)(e,GraphQLScalarType)}function assertScalarType(e){if(!isScalarType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Scalar type.`)}return e}function isObjectType(e){return(0,a.instanceOf)(e,GraphQLObjectType)}function assertObjectType(e){if(!isObjectType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Object type.`)}return e}function isInterfaceType(e){return(0,a.instanceOf)(e,GraphQLInterfaceType)}function assertInterfaceType(e){if(!isInterfaceType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Interface type.`)}return e}function isUnionType(e){return(0,a.instanceOf)(e,GraphQLUnionType)}function assertUnionType(e){if(!isUnionType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Union type.`)}return e}function isEnumType(e){return(0,a.instanceOf)(e,GraphQLEnumType)}function assertEnumType(e){if(!isEnumType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Enum type.`)}return e}function isInputObjectType(e){return(0,a.instanceOf)(e,GraphQLInputObjectType)}function assertInputObjectType(e){if(!isInputObjectType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Input Object type.`)}return e}function isListType(e){return(0,a.instanceOf)(e,GraphQLList)}function assertListType(e){if(!isListType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL List type.`)}return e}function isNonNullType(e){return(0,a.instanceOf)(e,GraphQLNonNull)}function assertNonNullType(e){if(!isNonNullType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL Non-Null type.`)}return e}function isInputType(e){return isScalarType(e)||isEnumType(e)||isInputObjectType(e)||isWrappingType(e)&&isInputType(e.ofType)}function assertInputType(e){if(!isInputType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL input type.`)}return e}function isOutputType(e){return isScalarType(e)||isObjectType(e)||isInterfaceType(e)||isUnionType(e)||isEnumType(e)||isWrappingType(e)&&isOutputType(e.ofType)}function assertOutputType(e){if(!isOutputType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL output type.`)}return e}function isLeafType(e){return isScalarType(e)||isEnumType(e)}function assertLeafType(e){if(!isLeafType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL leaf type.`)}return e}function isCompositeType(e){return isObjectType(e)||isInterfaceType(e)||isUnionType(e)}function assertCompositeType(e){if(!isCompositeType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL composite type.`)}return e}function isAbstractType(e){return isInterfaceType(e)||isUnionType(e)}function assertAbstractType(e){if(!isAbstractType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL abstract type.`)}return e}class GraphQLList{constructor(e){isType(e)||(0,n.devAssert)(false,`Expected ${(0,i.inspect)(e)} to be a GraphQL type.`);this.ofType=e}get[Symbol.toStringTag](){return"GraphQLList"}toString(){return"["+String(this.ofType)+"]"}toJSON(){return this.toString()}}t.GraphQLList=GraphQLList;class GraphQLNonNull{constructor(e){isNullableType(e)||(0,n.devAssert)(false,`Expected ${(0,i.inspect)(e)} to be a GraphQL nullable type.`);this.ofType=e}get[Symbol.toStringTag](){return"GraphQLNonNull"}toString(){return String(this.ofType)+"!"}toJSON(){return this.toString()}}t.GraphQLNonNull=GraphQLNonNull;function isWrappingType(e){return isListType(e)||isNonNullType(e)}function assertWrappingType(e){if(!isWrappingType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL wrapping type.`)}return e}function isNullableType(e){return isType(e)&&!isNonNullType(e)}function assertNullableType(e){if(!isNullableType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL nullable type.`)}return e}function getNullableType(e){if(e){return isNonNullType(e)?e.ofType:e}}function isNamedType(e){return isScalarType(e)||isObjectType(e)||isInterfaceType(e)||isUnionType(e)||isEnumType(e)||isInputObjectType(e)}function assertNamedType(e){if(!isNamedType(e)){throw new Error(`Expected ${(0,i.inspect)(e)} to be a GraphQL named type.`)}return e}function getNamedType(e){if(e){let t=e;while(isWrappingType(t)){t=t.ofType}return t}}function resolveReadonlyArrayThunk(e){return typeof e==="function"?e():e}function resolveObjMapThunk(e){return typeof e==="function"?e():e}class GraphQLScalarType{constructor(e){var t,r,s,a;const A=(t=e.parseValue)!==null&&t!==void 0?t:o.identityFunc;this.name=(0,I.assertName)(e.name);this.description=e.description;this.specifiedByURL=e.specifiedByURL;this.serialize=(r=e.serialize)!==null&&r!==void 0?r:o.identityFunc;this.parseValue=A;this.parseLiteral=(s=e.parseLiteral)!==null&&s!==void 0?s:(e,t)=>A((0,m.valueFromASTUntyped)(e,t));this.extensions=(0,d.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(a=e.extensionASTNodes)!==null&&a!==void 0?a:[];e.specifiedByURL==null||typeof e.specifiedByURL==="string"||(0,n.devAssert)(false,`${this.name} must provide "specifiedByURL" as a string, `+`but got: ${(0,i.inspect)(e.specifiedByURL)}.`);e.serialize==null||typeof e.serialize==="function"||(0,n.devAssert)(false,`${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`);if(e.parseLiteral){typeof e.parseValue==="function"&&typeof e.parseLiteral==="function"||(0,n.devAssert)(false,`${this.name} must provide both "parseValue" and "parseLiteral" functions.`)}}get[Symbol.toStringTag](){return"GraphQLScalarType"}toConfig(){return{name:this.name,description:this.description,specifiedByURL:this.specifiedByURL,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLScalarType=GraphQLScalarType;class GraphQLObjectType{constructor(e){var t;this.name=(0,I.assertName)(e.name);this.description=e.description;this.isTypeOf=e.isTypeOf;this.extensions=(0,d.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._fields=()=>defineFieldMap(e);this._interfaces=()=>defineInterfaces(e);e.isTypeOf==null||typeof e.isTypeOf==="function"||(0,n.devAssert)(false,`${this.name} must provide "isTypeOf" as a function, `+`but got: ${(0,i.inspect)(e.isTypeOf)}.`)}get[Symbol.toStringTag](){return"GraphQLObjectType"}getFields(){if(typeof this._fields==="function"){this._fields=this._fields()}return this._fields}getInterfaces(){if(typeof this._interfaces==="function"){this._interfaces=this._interfaces()}return this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:fieldsToFieldsConfig(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLObjectType=GraphQLObjectType;function defineInterfaces(e){var t;const r=resolveReadonlyArrayThunk((t=e.interfaces)!==null&&t!==void 0?t:[]);Array.isArray(r)||(0,n.devAssert)(false,`${e.name} interfaces must be an Array or a function which returns an Array.`);return r}function defineFieldMap(e){const t=resolveObjMapThunk(e.fields);isPlainObj(t)||(0,n.devAssert)(false,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`);return(0,l.mapValue)(t,((t,r)=>{var s;isPlainObj(t)||(0,n.devAssert)(false,`${e.name}.${r} field config must be an object.`);t.resolve==null||typeof t.resolve==="function"||(0,n.devAssert)(false,`${e.name}.${r} field resolver must be a function if `+`provided, but got: ${(0,i.inspect)(t.resolve)}.`);const o=(s=t.args)!==null&&s!==void 0?s:{};isPlainObj(o)||(0,n.devAssert)(false,`${e.name}.${r} args must be an object with argument names as keys.`);return{name:(0,I.assertName)(r),description:t.description,type:t.type,args:defineArguments(o),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:(0,d.toObjMap)(t.extensions),astNode:t.astNode}}))}function defineArguments(e){return Object.entries(e).map((([e,t])=>({name:(0,I.assertName)(e),description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:(0,d.toObjMap)(t.extensions),astNode:t.astNode})))}function isPlainObj(e){return(0,A.isObjectLike)(e)&&!Array.isArray(e)}function fieldsToFieldsConfig(e){return(0,l.mapValue)(e,(e=>({description:e.description,type:e.type,args:argsToArgsConfig(e.args),resolve:e.resolve,subscribe:e.subscribe,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})))}function argsToArgsConfig(e){return(0,u.keyValMap)(e,(e=>e.name),(e=>({description:e.description,type:e.type,defaultValue:e.defaultValue,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})))}function isRequiredArgument(e){return isNonNullType(e.type)&&e.defaultValue===undefined}class GraphQLInterfaceType{constructor(e){var t;this.name=(0,I.assertName)(e.name);this.description=e.description;this.resolveType=e.resolveType;this.extensions=(0,d.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._fields=defineFieldMap.bind(undefined,e);this._interfaces=defineInterfaces.bind(undefined,e);e.resolveType==null||typeof e.resolveType==="function"||(0,n.devAssert)(false,`${this.name} must provide "resolveType" as a function, `+`but got: ${(0,i.inspect)(e.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLInterfaceType"}getFields(){if(typeof this._fields==="function"){this._fields=this._fields()}return this._fields}getInterfaces(){if(typeof this._interfaces==="function"){this._interfaces=this._interfaces()}return this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:fieldsToFieldsConfig(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLInterfaceType=GraphQLInterfaceType;class GraphQLUnionType{constructor(e){var t;this.name=(0,I.assertName)(e.name);this.description=e.description;this.resolveType=e.resolveType;this.extensions=(0,d.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._types=defineTypes.bind(undefined,e);e.resolveType==null||typeof e.resolveType==="function"||(0,n.devAssert)(false,`${this.name} must provide "resolveType" as a function, `+`but got: ${(0,i.inspect)(e.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLUnionType"}getTypes(){if(typeof this._types==="function"){this._types=this._types()}return this._types}toConfig(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLUnionType=GraphQLUnionType;function defineTypes(e){const t=resolveReadonlyArrayThunk(e.types);Array.isArray(t)||(0,n.devAssert)(false,`Must provide Array of types or a function which returns such an array for Union ${e.name}.`);return t}class GraphQLEnumType{constructor(e){var t;this.name=(0,I.assertName)(e.name);this.description=e.description;this.extensions=(0,d.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._values=typeof e.values==="function"?e.values:defineEnumValues(this.name,e.values);this._valueLookup=null;this._nameLookup=null}get[Symbol.toStringTag](){return"GraphQLEnumType"}getValues(){if(typeof this._values==="function"){this._values=defineEnumValues(this.name,this._values())}return this._values}getValue(e){if(this._nameLookup===null){this._nameLookup=(0,c.keyMap)(this.getValues(),(e=>e.name))}return this._nameLookup[e]}serialize(e){if(this._valueLookup===null){this._valueLookup=new Map(this.getValues().map((e=>[e.value,e])))}const t=this._valueLookup.get(e);if(t===undefined){throw new g.GraphQLError(`Enum "${this.name}" cannot represent value: ${(0,i.inspect)(e)}`)}return t.name}parseValue(e){if(typeof e!=="string"){const t=(0,i.inspect)(e);throw new g.GraphQLError(`Enum "${this.name}" cannot represent non-string value: ${t}.`+didYouMeanEnumValue(this,t))}const t=this.getValue(e);if(t==null){throw new g.GraphQLError(`Value "${e}" does not exist in "${this.name}" enum.`+didYouMeanEnumValue(this,e))}return t.value}parseLiteral(e,t){if(e.kind!==h.Kind.ENUM){const t=(0,E.print)(e);throw new g.GraphQLError(`Enum "${this.name}" cannot represent non-enum value: ${t}.`+didYouMeanEnumValue(this,t),{nodes:e})}const r=this.getValue(e.value);if(r==null){const t=(0,E.print)(e);throw new g.GraphQLError(`Value "${t}" does not exist in "${this.name}" enum.`+didYouMeanEnumValue(this,t),{nodes:e})}return r.value}toConfig(){const e=(0,u.keyValMap)(this.getValues(),(e=>e.name),(e=>({description:e.description,value:e.value,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})));return{name:this.name,description:this.description,values:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLEnumType=GraphQLEnumType;function didYouMeanEnumValue(e,t){const r=e.getValues().map((e=>e.name));const n=(0,p.suggestionList)(t,r);return(0,s.didYouMean)("the enum value",n)}function defineEnumValues(e,t){isPlainObj(t)||(0,n.devAssert)(false,`${e} values must be an object with value names as keys.`);return Object.entries(t).map((([t,r])=>{isPlainObj(r)||(0,n.devAssert)(false,`${e}.${t} must refer to an object with a "value" key `+`representing an internal value but got: ${(0,i.inspect)(r)}.`);return{name:(0,I.assertEnumValueName)(t),description:r.description,value:r.value!==undefined?r.value:t,deprecationReason:r.deprecationReason,extensions:(0,d.toObjMap)(r.extensions),astNode:r.astNode}}))}class GraphQLInputObjectType{constructor(e){var t,r;this.name=(0,I.assertName)(e.name);this.description=e.description;this.extensions=(0,d.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this.isOneOf=(r=e.isOneOf)!==null&&r!==void 0?r:false;this._fields=defineInputFieldMap.bind(undefined,e)}get[Symbol.toStringTag](){return"GraphQLInputObjectType"}getFields(){if(typeof this._fields==="function"){this._fields=this._fields()}return this._fields}toConfig(){const e=(0,l.mapValue)(this.getFields(),(e=>({description:e.description,type:e.type,defaultValue:e.defaultValue,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode})));return{name:this.name,description:this.description,fields:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,isOneOf:this.isOneOf}}toString(){return this.name}toJSON(){return this.toString()}}t.GraphQLInputObjectType=GraphQLInputObjectType;function defineInputFieldMap(e){const t=resolveObjMapThunk(e.fields);isPlainObj(t)||(0,n.devAssert)(false,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`);return(0,l.mapValue)(t,((t,r)=>{!("resolve"in t)||(0,n.devAssert)(false,`${e.name}.${r} field has a resolve property, but Input Types cannot define resolvers.`);return{name:(0,I.assertName)(r),description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:(0,d.toObjMap)(t.extensions),astNode:t.astNode}}))}function isRequiredInputField(e){return isNonNullType(e.type)&&e.defaultValue===undefined}},1058:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLSpecifiedByDirective=t.GraphQLSkipDirective=t.GraphQLOneOfDirective=t.GraphQLIncludeDirective=t.GraphQLDirective=t.GraphQLDeprecatedDirective=t.DEFAULT_DEPRECATION_REASON=void 0;t.assertDirective=assertDirective;t.isDirective=isDirective;t.isSpecifiedDirective=isSpecifiedDirective;t.specifiedDirectives=void 0;var n=r(5383);var s=r(5742);var o=r(5914);var i=r(892);var a=r(7104);var A=r(2582);var c=r(8337);var u=r(4169);var l=r(3571);function isDirective(e){return(0,o.instanceOf)(e,GraphQLDirective)}function assertDirective(e){if(!isDirective(e)){throw new Error(`Expected ${(0,s.inspect)(e)} to be a GraphQL directive.`)}return e}class GraphQLDirective{constructor(e){var t,r;this.name=(0,c.assertName)(e.name);this.description=e.description;this.locations=e.locations;this.isRepeatable=(t=e.isRepeatable)!==null&&t!==void 0?t:false;this.extensions=(0,a.toObjMap)(e.extensions);this.astNode=e.astNode;Array.isArray(e.locations)||(0,n.devAssert)(false,`@${e.name} locations must be an Array.`);const s=(r=e.args)!==null&&r!==void 0?r:{};(0,i.isObjectLike)(s)&&!Array.isArray(s)||(0,n.devAssert)(false,`@${e.name} args must be an object with argument names as keys.`);this.args=(0,u.defineArguments)(s)}get[Symbol.toStringTag](){return"GraphQLDirective"}toConfig(){return{name:this.name,description:this.description,locations:this.locations,args:(0,u.argsToArgsConfig)(this.args),isRepeatable:this.isRepeatable,extensions:this.extensions,astNode:this.astNode}}toString(){return"@"+this.name}toJSON(){return this.toString()}}t.GraphQLDirective=GraphQLDirective;const p=new GraphQLDirective({name:"include",description:"Directs the executor to include this field or fragment only when the `if` argument is true.",locations:[A.DirectiveLocation.FIELD,A.DirectiveLocation.FRAGMENT_SPREAD,A.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new u.GraphQLNonNull(l.GraphQLBoolean),description:"Included when true."}}});t.GraphQLIncludeDirective=p;const d=new GraphQLDirective({name:"skip",description:"Directs the executor to skip this field or fragment when the `if` argument is true.",locations:[A.DirectiveLocation.FIELD,A.DirectiveLocation.FRAGMENT_SPREAD,A.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new u.GraphQLNonNull(l.GraphQLBoolean),description:"Skipped when true."}}});t.GraphQLSkipDirective=d;const g="No longer supported";t.DEFAULT_DEPRECATION_REASON=g;const h=new GraphQLDirective({name:"deprecated",description:"Marks an element of a GraphQL schema as no longer supported.",locations:[A.DirectiveLocation.FIELD_DEFINITION,A.DirectiveLocation.ARGUMENT_DEFINITION,A.DirectiveLocation.INPUT_FIELD_DEFINITION,A.DirectiveLocation.ENUM_VALUE],args:{reason:{type:l.GraphQLString,description:"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).",defaultValue:g}}});t.GraphQLDeprecatedDirective=h;const E=new GraphQLDirective({name:"specifiedBy",description:"Exposes a URL that specifies the behavior of this scalar.",locations:[A.DirectiveLocation.SCALAR],args:{url:{type:new u.GraphQLNonNull(l.GraphQLString),description:"The URL that specifies the behavior of this scalar."}}});t.GraphQLSpecifiedByDirective=E;const m=new GraphQLDirective({name:"oneOf",description:"Indicates exactly one field must be supplied and this field must not be `null`.",locations:[A.DirectiveLocation.INPUT_OBJECT],args:{}});t.GraphQLOneOfDirective=m;const I=Object.freeze([p,d,h,E,m]);t.specifiedDirectives=I;function isSpecifiedDirective(e){return I.some((({name:t})=>t===e.name))}},6618:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"DEFAULT_DEPRECATION_REASON",{enumerable:true,get:function(){return o.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(t,"GRAPHQL_MAX_INT",{enumerable:true,get:function(){return i.GRAPHQL_MAX_INT}});Object.defineProperty(t,"GRAPHQL_MIN_INT",{enumerable:true,get:function(){return i.GRAPHQL_MIN_INT}});Object.defineProperty(t,"GraphQLBoolean",{enumerable:true,get:function(){return i.GraphQLBoolean}});Object.defineProperty(t,"GraphQLDeprecatedDirective",{enumerable:true,get:function(){return o.GraphQLDeprecatedDirective}});Object.defineProperty(t,"GraphQLDirective",{enumerable:true,get:function(){return o.GraphQLDirective}});Object.defineProperty(t,"GraphQLEnumType",{enumerable:true,get:function(){return s.GraphQLEnumType}});Object.defineProperty(t,"GraphQLFloat",{enumerable:true,get:function(){return i.GraphQLFloat}});Object.defineProperty(t,"GraphQLID",{enumerable:true,get:function(){return i.GraphQLID}});Object.defineProperty(t,"GraphQLIncludeDirective",{enumerable:true,get:function(){return o.GraphQLIncludeDirective}});Object.defineProperty(t,"GraphQLInputObjectType",{enumerable:true,get:function(){return s.GraphQLInputObjectType}});Object.defineProperty(t,"GraphQLInt",{enumerable:true,get:function(){return i.GraphQLInt}});Object.defineProperty(t,"GraphQLInterfaceType",{enumerable:true,get:function(){return s.GraphQLInterfaceType}});Object.defineProperty(t,"GraphQLList",{enumerable:true,get:function(){return s.GraphQLList}});Object.defineProperty(t,"GraphQLNonNull",{enumerable:true,get:function(){return s.GraphQLNonNull}});Object.defineProperty(t,"GraphQLObjectType",{enumerable:true,get:function(){return s.GraphQLObjectType}});Object.defineProperty(t,"GraphQLOneOfDirective",{enumerable:true,get:function(){return o.GraphQLOneOfDirective}});Object.defineProperty(t,"GraphQLScalarType",{enumerable:true,get:function(){return s.GraphQLScalarType}});Object.defineProperty(t,"GraphQLSchema",{enumerable:true,get:function(){return n.GraphQLSchema}});Object.defineProperty(t,"GraphQLSkipDirective",{enumerable:true,get:function(){return o.GraphQLSkipDirective}});Object.defineProperty(t,"GraphQLSpecifiedByDirective",{enumerable:true,get:function(){return o.GraphQLSpecifiedByDirective}});Object.defineProperty(t,"GraphQLString",{enumerable:true,get:function(){return i.GraphQLString}});Object.defineProperty(t,"GraphQLUnionType",{enumerable:true,get:function(){return s.GraphQLUnionType}});Object.defineProperty(t,"SchemaMetaFieldDef",{enumerable:true,get:function(){return a.SchemaMetaFieldDef}});Object.defineProperty(t,"TypeKind",{enumerable:true,get:function(){return a.TypeKind}});Object.defineProperty(t,"TypeMetaFieldDef",{enumerable:true,get:function(){return a.TypeMetaFieldDef}});Object.defineProperty(t,"TypeNameMetaFieldDef",{enumerable:true,get:function(){return a.TypeNameMetaFieldDef}});Object.defineProperty(t,"__Directive",{enumerable:true,get:function(){return a.__Directive}});Object.defineProperty(t,"__DirectiveLocation",{enumerable:true,get:function(){return a.__DirectiveLocation}});Object.defineProperty(t,"__EnumValue",{enumerable:true,get:function(){return a.__EnumValue}});Object.defineProperty(t,"__Field",{enumerable:true,get:function(){return a.__Field}});Object.defineProperty(t,"__InputValue",{enumerable:true,get:function(){return a.__InputValue}});Object.defineProperty(t,"__Schema",{enumerable:true,get:function(){return a.__Schema}});Object.defineProperty(t,"__Type",{enumerable:true,get:function(){return a.__Type}});Object.defineProperty(t,"__TypeKind",{enumerable:true,get:function(){return a.__TypeKind}});Object.defineProperty(t,"assertAbstractType",{enumerable:true,get:function(){return s.assertAbstractType}});Object.defineProperty(t,"assertCompositeType",{enumerable:true,get:function(){return s.assertCompositeType}});Object.defineProperty(t,"assertDirective",{enumerable:true,get:function(){return o.assertDirective}});Object.defineProperty(t,"assertEnumType",{enumerable:true,get:function(){return s.assertEnumType}});Object.defineProperty(t,"assertEnumValueName",{enumerable:true,get:function(){return c.assertEnumValueName}});Object.defineProperty(t,"assertInputObjectType",{enumerable:true,get:function(){return s.assertInputObjectType}});Object.defineProperty(t,"assertInputType",{enumerable:true,get:function(){return s.assertInputType}});Object.defineProperty(t,"assertInterfaceType",{enumerable:true,get:function(){return s.assertInterfaceType}});Object.defineProperty(t,"assertLeafType",{enumerable:true,get:function(){return s.assertLeafType}});Object.defineProperty(t,"assertListType",{enumerable:true,get:function(){return s.assertListType}});Object.defineProperty(t,"assertName",{enumerable:true,get:function(){return c.assertName}});Object.defineProperty(t,"assertNamedType",{enumerable:true,get:function(){return s.assertNamedType}});Object.defineProperty(t,"assertNonNullType",{enumerable:true,get:function(){return s.assertNonNullType}});Object.defineProperty(t,"assertNullableType",{enumerable:true,get:function(){return s.assertNullableType}});Object.defineProperty(t,"assertObjectType",{enumerable:true,get:function(){return s.assertObjectType}});Object.defineProperty(t,"assertOutputType",{enumerable:true,get:function(){return s.assertOutputType}});Object.defineProperty(t,"assertScalarType",{enumerable:true,get:function(){return s.assertScalarType}});Object.defineProperty(t,"assertSchema",{enumerable:true,get:function(){return n.assertSchema}});Object.defineProperty(t,"assertType",{enumerable:true,get:function(){return s.assertType}});Object.defineProperty(t,"assertUnionType",{enumerable:true,get:function(){return s.assertUnionType}});Object.defineProperty(t,"assertValidSchema",{enumerable:true,get:function(){return A.assertValidSchema}});Object.defineProperty(t,"assertWrappingType",{enumerable:true,get:function(){return s.assertWrappingType}});Object.defineProperty(t,"getNamedType",{enumerable:true,get:function(){return s.getNamedType}});Object.defineProperty(t,"getNullableType",{enumerable:true,get:function(){return s.getNullableType}});Object.defineProperty(t,"introspectionTypes",{enumerable:true,get:function(){return a.introspectionTypes}});Object.defineProperty(t,"isAbstractType",{enumerable:true,get:function(){return s.isAbstractType}});Object.defineProperty(t,"isCompositeType",{enumerable:true,get:function(){return s.isCompositeType}});Object.defineProperty(t,"isDirective",{enumerable:true,get:function(){return o.isDirective}});Object.defineProperty(t,"isEnumType",{enumerable:true,get:function(){return s.isEnumType}});Object.defineProperty(t,"isInputObjectType",{enumerable:true,get:function(){return s.isInputObjectType}});Object.defineProperty(t,"isInputType",{enumerable:true,get:function(){return s.isInputType}});Object.defineProperty(t,"isInterfaceType",{enumerable:true,get:function(){return s.isInterfaceType}});Object.defineProperty(t,"isIntrospectionType",{enumerable:true,get:function(){return a.isIntrospectionType}});Object.defineProperty(t,"isLeafType",{enumerable:true,get:function(){return s.isLeafType}});Object.defineProperty(t,"isListType",{enumerable:true,get:function(){return s.isListType}});Object.defineProperty(t,"isNamedType",{enumerable:true,get:function(){return s.isNamedType}});Object.defineProperty(t,"isNonNullType",{enumerable:true,get:function(){return s.isNonNullType}});Object.defineProperty(t,"isNullableType",{enumerable:true,get:function(){return s.isNullableType}});Object.defineProperty(t,"isObjectType",{enumerable:true,get:function(){return s.isObjectType}});Object.defineProperty(t,"isOutputType",{enumerable:true,get:function(){return s.isOutputType}});Object.defineProperty(t,"isRequiredArgument",{enumerable:true,get:function(){return s.isRequiredArgument}});Object.defineProperty(t,"isRequiredInputField",{enumerable:true,get:function(){return s.isRequiredInputField}});Object.defineProperty(t,"isScalarType",{enumerable:true,get:function(){return s.isScalarType}});Object.defineProperty(t,"isSchema",{enumerable:true,get:function(){return n.isSchema}});Object.defineProperty(t,"isSpecifiedDirective",{enumerable:true,get:function(){return o.isSpecifiedDirective}});Object.defineProperty(t,"isSpecifiedScalarType",{enumerable:true,get:function(){return i.isSpecifiedScalarType}});Object.defineProperty(t,"isType",{enumerable:true,get:function(){return s.isType}});Object.defineProperty(t,"isUnionType",{enumerable:true,get:function(){return s.isUnionType}});Object.defineProperty(t,"isWrappingType",{enumerable:true,get:function(){return s.isWrappingType}});Object.defineProperty(t,"resolveObjMapThunk",{enumerable:true,get:function(){return s.resolveObjMapThunk}});Object.defineProperty(t,"resolveReadonlyArrayThunk",{enumerable:true,get:function(){return s.resolveReadonlyArrayThunk}});Object.defineProperty(t,"specifiedDirectives",{enumerable:true,get:function(){return o.specifiedDirectives}});Object.defineProperty(t,"specifiedScalarTypes",{enumerable:true,get:function(){return i.specifiedScalarTypes}});Object.defineProperty(t,"validateSchema",{enumerable:true,get:function(){return A.validateSchema}});var n=r(9299);var s=r(4169);var o=r(1058);var i=r(3571);var a=r(317);var A=r(3902);var c=r(8337)},317:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.introspectionTypes=t.__TypeKind=t.__Type=t.__Schema=t.__InputValue=t.__Field=t.__EnumValue=t.__DirectiveLocation=t.__Directive=t.TypeNameMetaFieldDef=t.TypeMetaFieldDef=t.TypeKind=t.SchemaMetaFieldDef=void 0;t.isIntrospectionType=isIntrospectionType;var n=r(5742);var s=r(3650);var o=r(2582);var i=r(9936);var a=r(8893);var A=r(4169);var c=r(3571);const u=new A.GraphQLObjectType({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:()=>({description:{type:c.GraphQLString,resolve:e=>e.description},types:{description:"A list of all types supported by this server.",type:new A.GraphQLNonNull(new A.GraphQLList(new A.GraphQLNonNull(d))),resolve(e){return Object.values(e.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new A.GraphQLNonNull(d),resolve:e=>e.getQueryType()},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:d,resolve:e=>e.getMutationType()},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:d,resolve:e=>e.getSubscriptionType()},directives:{description:"A list of all directives supported by this server.",type:new A.GraphQLNonNull(new A.GraphQLList(new A.GraphQLNonNull(l))),resolve:e=>e.getDirectives()}})});t.__Schema=u;const l=new A.GraphQLObjectType({name:"__Directive",description:"A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.",fields:()=>({name:{type:new A.GraphQLNonNull(c.GraphQLString),resolve:e=>e.name},description:{type:c.GraphQLString,resolve:e=>e.description},isRepeatable:{type:new A.GraphQLNonNull(c.GraphQLBoolean),resolve:e=>e.isRepeatable},locations:{type:new A.GraphQLNonNull(new A.GraphQLList(new A.GraphQLNonNull(p))),resolve:e=>e.locations},args:{type:new A.GraphQLNonNull(new A.GraphQLList(new A.GraphQLNonNull(h))),args:{includeDeprecated:{type:c.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter((e=>e.deprecationReason==null))}}})});t.__Directive=l;const p=new A.GraphQLEnumType({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:o.DirectiveLocation.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:o.DirectiveLocation.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:o.DirectiveLocation.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:o.DirectiveLocation.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:o.DirectiveLocation.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:o.DirectiveLocation.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:o.DirectiveLocation.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:o.DirectiveLocation.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:o.DirectiveLocation.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:o.DirectiveLocation.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:o.DirectiveLocation.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:o.DirectiveLocation.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:o.DirectiveLocation.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:o.DirectiveLocation.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:o.DirectiveLocation.UNION,description:"Location adjacent to a union definition."},ENUM:{value:o.DirectiveLocation.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:o.DirectiveLocation.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:o.DirectiveLocation.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:o.DirectiveLocation.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}});t.__DirectiveLocation=p;const d=new A.GraphQLObjectType({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:()=>({kind:{type:new A.GraphQLNonNull(I),resolve(e){if((0,A.isScalarType)(e)){return m.SCALAR}if((0,A.isObjectType)(e)){return m.OBJECT}if((0,A.isInterfaceType)(e)){return m.INTERFACE}if((0,A.isUnionType)(e)){return m.UNION}if((0,A.isEnumType)(e)){return m.ENUM}if((0,A.isInputObjectType)(e)){return m.INPUT_OBJECT}if((0,A.isListType)(e)){return m.LIST}if((0,A.isNonNullType)(e)){return m.NON_NULL}false||(0,s.invariant)(false,`Unexpected type: "${(0,n.inspect)(e)}".`)}},name:{type:c.GraphQLString,resolve:e=>"name"in e?e.name:undefined},description:{type:c.GraphQLString,resolve:e=>"description"in e?e.description:undefined},specifiedByURL:{type:c.GraphQLString,resolve:e=>"specifiedByURL"in e?e.specifiedByURL:undefined},fields:{type:new A.GraphQLList(new A.GraphQLNonNull(g)),args:{includeDeprecated:{type:c.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){if((0,A.isObjectType)(e)||(0,A.isInterfaceType)(e)){const r=Object.values(e.getFields());return t?r:r.filter((e=>e.deprecationReason==null))}}},interfaces:{type:new A.GraphQLList(new A.GraphQLNonNull(d)),resolve(e){if((0,A.isObjectType)(e)||(0,A.isInterfaceType)(e)){return e.getInterfaces()}}},possibleTypes:{type:new A.GraphQLList(new A.GraphQLNonNull(d)),resolve(e,t,r,{schema:n}){if((0,A.isAbstractType)(e)){return n.getPossibleTypes(e)}}},enumValues:{type:new A.GraphQLList(new A.GraphQLNonNull(E)),args:{includeDeprecated:{type:c.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){if((0,A.isEnumType)(e)){const r=e.getValues();return t?r:r.filter((e=>e.deprecationReason==null))}}},inputFields:{type:new A.GraphQLList(new A.GraphQLNonNull(h)),args:{includeDeprecated:{type:c.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){if((0,A.isInputObjectType)(e)){const r=Object.values(e.getFields());return t?r:r.filter((e=>e.deprecationReason==null))}}},ofType:{type:d,resolve:e=>"ofType"in e?e.ofType:undefined},isOneOf:{type:c.GraphQLBoolean,resolve:e=>{if((0,A.isInputObjectType)(e)){return e.isOneOf}}}})});t.__Type=d;const g=new A.GraphQLObjectType({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:()=>({name:{type:new A.GraphQLNonNull(c.GraphQLString),resolve:e=>e.name},description:{type:c.GraphQLString,resolve:e=>e.description},args:{type:new A.GraphQLNonNull(new A.GraphQLList(new A.GraphQLNonNull(h))),args:{includeDeprecated:{type:c.GraphQLBoolean,defaultValue:false}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter((e=>e.deprecationReason==null))}},type:{type:new A.GraphQLNonNull(d),resolve:e=>e.type},isDeprecated:{type:new A.GraphQLNonNull(c.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:c.GraphQLString,resolve:e=>e.deprecationReason}})});t.__Field=g;const h=new A.GraphQLObjectType({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:()=>({name:{type:new A.GraphQLNonNull(c.GraphQLString),resolve:e=>e.name},description:{type:c.GraphQLString,resolve:e=>e.description},type:{type:new A.GraphQLNonNull(d),resolve:e=>e.type},defaultValue:{type:c.GraphQLString,description:"A GraphQL-formatted string representing the default value for this input value.",resolve(e){const{type:t,defaultValue:r}=e;const n=(0,a.astFromValue)(r,t);return n?(0,i.print)(n):null}},isDeprecated:{type:new A.GraphQLNonNull(c.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:c.GraphQLString,resolve:e=>e.deprecationReason}})});t.__InputValue=h;const E=new A.GraphQLObjectType({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:()=>({name:{type:new A.GraphQLNonNull(c.GraphQLString),resolve:e=>e.name},description:{type:c.GraphQLString,resolve:e=>e.description},isDeprecated:{type:new A.GraphQLNonNull(c.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:c.GraphQLString,resolve:e=>e.deprecationReason}})});t.__EnumValue=E;var m;t.TypeKind=m;(function(e){e["SCALAR"]="SCALAR";e["OBJECT"]="OBJECT";e["INTERFACE"]="INTERFACE";e["UNION"]="UNION";e["ENUM"]="ENUM";e["INPUT_OBJECT"]="INPUT_OBJECT";e["LIST"]="LIST";e["NON_NULL"]="NON_NULL"})(m||(t.TypeKind=m={}));const I=new A.GraphQLEnumType({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:m.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:m.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:m.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:m.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:m.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:m.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:m.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:m.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}});t.__TypeKind=I;const y={name:"__schema",type:new A.GraphQLNonNull(u),description:"Access the current type schema of this server.",args:[],resolve:(e,t,r,{schema:n})=>n,deprecationReason:undefined,extensions:Object.create(null),astNode:undefined};t.SchemaMetaFieldDef=y;const C={name:"__type",type:d,description:"Request the type information of a single type.",args:[{name:"name",description:undefined,type:new A.GraphQLNonNull(c.GraphQLString),defaultValue:undefined,deprecationReason:undefined,extensions:Object.create(null),astNode:undefined}],resolve:(e,{name:t},r,{schema:n})=>n.getType(t),deprecationReason:undefined,extensions:Object.create(null),astNode:undefined};t.TypeMetaFieldDef=C;const Q={name:"__typename",type:new A.GraphQLNonNull(c.GraphQLString),description:"The name of the current Object type at runtime.",args:[],resolve:(e,t,r,{parentType:n})=>n.name,deprecationReason:undefined,extensions:Object.create(null),astNode:undefined};t.TypeNameMetaFieldDef=Q;const B=Object.freeze([u,l,p,d,g,h,E,I]);t.introspectionTypes=B;function isIntrospectionType(e){return B.some((({name:t})=>e.name===t))}},3571:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLString=t.GraphQLInt=t.GraphQLID=t.GraphQLFloat=t.GraphQLBoolean=t.GRAPHQL_MIN_INT=t.GRAPHQL_MAX_INT=void 0;t.isSpecifiedScalarType=isSpecifiedScalarType;t.specifiedScalarTypes=void 0;var n=r(5742);var s=r(892);var o=r(5939);var i=r(1123);var a=r(9936);var A=r(4169);const c=2147483647;t.GRAPHQL_MAX_INT=c;const u=-2147483648;t.GRAPHQL_MIN_INT=u;const l=new A.GraphQLScalarType({name:"Int",description:"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",serialize(e){const t=serializeObject(e);if(typeof t==="boolean"){return t?1:0}let r=t;if(typeof t==="string"&&t!==""){r=Number(t)}if(typeof r!=="number"||!Number.isInteger(r)){throw new o.GraphQLError(`Int cannot represent non-integer value: ${(0,n.inspect)(t)}`)}if(r>c||rc||ec||te.name===t))}function serializeObject(e){if((0,s.isObjectLike)(e)){if(typeof e.valueOf==="function"){const t=e.valueOf();if(!(0,s.isObjectLike)(t)){return t}}if(typeof e.toJSON==="function"){return e.toJSON()}}return e}},9299:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.GraphQLSchema=void 0;t.assertSchema=assertSchema;t.isSchema=isSchema;var n=r(5383);var s=r(5742);var o=r(5914);var i=r(892);var a=r(7104);var A=r(2740);var c=r(4169);var u=r(1058);var l=r(317);function isSchema(e){return(0,o.instanceOf)(e,GraphQLSchema)}function assertSchema(e){if(!isSchema(e)){throw new Error(`Expected ${(0,s.inspect)(e)} to be a GraphQL schema.`)}return e}class GraphQLSchema{constructor(e){var t,r;this.__validationErrors=e.assumeValid===true?[]:undefined;(0,i.isObjectLike)(e)||(0,n.devAssert)(false,"Must provide configuration object.");!e.types||Array.isArray(e.types)||(0,n.devAssert)(false,`"types" must be Array if provided but got: ${(0,s.inspect)(e.types)}.`);!e.directives||Array.isArray(e.directives)||(0,n.devAssert)(false,'"directives" must be Array if provided but got: '+`${(0,s.inspect)(e.directives)}.`);this.description=e.description;this.extensions=(0,a.toObjMap)(e.extensions);this.astNode=e.astNode;this.extensionASTNodes=(t=e.extensionASTNodes)!==null&&t!==void 0?t:[];this._queryType=e.query;this._mutationType=e.mutation;this._subscriptionType=e.subscription;this._directives=(r=e.directives)!==null&&r!==void 0?r:u.specifiedDirectives;const o=new Set(e.types);if(e.types!=null){for(const t of e.types){o.delete(t);collectReferencedTypes(t,o)}}if(this._queryType!=null){collectReferencedTypes(this._queryType,o)}if(this._mutationType!=null){collectReferencedTypes(this._mutationType,o)}if(this._subscriptionType!=null){collectReferencedTypes(this._subscriptionType,o)}for(const e of this._directives){if((0,u.isDirective)(e)){for(const t of e.args){collectReferencedTypes(t.type,o)}}}collectReferencedTypes(l.__Schema,o);this._typeMap=Object.create(null);this._subTypeMap=Object.create(null);this._implementationsMap=Object.create(null);for(const e of o){if(e==null){continue}const t=e.name;t||(0,n.devAssert)(false,"One of the provided types for building the Schema is missing a name.");if(this._typeMap[t]!==undefined){throw new Error(`Schema must contain uniquely named types but contains multiple types named "${t}".`)}this._typeMap[t]=e;if((0,c.isInterfaceType)(e)){for(const t of e.getInterfaces()){if((0,c.isInterfaceType)(t)){let r=this._implementationsMap[t.name];if(r===undefined){r=this._implementationsMap[t.name]={objects:[],interfaces:[]}}r.interfaces.push(e)}}}else if((0,c.isObjectType)(e)){for(const t of e.getInterfaces()){if((0,c.isInterfaceType)(t)){let r=this._implementationsMap[t.name];if(r===undefined){r=this._implementationsMap[t.name]={objects:[],interfaces:[]}}r.objects.push(e)}}}}}get[Symbol.toStringTag](){return"GraphQLSchema"}getQueryType(){return this._queryType}getMutationType(){return this._mutationType}getSubscriptionType(){return this._subscriptionType}getRootType(e){switch(e){case A.OperationTypeNode.QUERY:return this.getQueryType();case A.OperationTypeNode.MUTATION:return this.getMutationType();case A.OperationTypeNode.SUBSCRIPTION:return this.getSubscriptionType()}}getTypeMap(){return this._typeMap}getType(e){return this.getTypeMap()[e]}getPossibleTypes(e){return(0,c.isUnionType)(e)?e.getTypes():this.getImplementations(e).objects}getImplementations(e){const t=this._implementationsMap[e.name];return t!==null&&t!==void 0?t:{objects:[],interfaces:[]}}isSubType(e,t){let r=this._subTypeMap[e.name];if(r===undefined){r=Object.create(null);if((0,c.isUnionType)(e)){for(const t of e.getTypes()){r[t.name]=true}}else{const t=this.getImplementations(e);for(const e of t.objects){r[e.name]=true}for(const e of t.interfaces){r[e.name]=true}}this._subTypeMap[e.name]=r}return r[t.name]!==undefined}getDirectives(){return this._directives}getDirective(e){return this.getDirectives().find((t=>t.name===e))}toConfig(){return{description:this.description,query:this.getQueryType(),mutation:this.getMutationType(),subscription:this.getSubscriptionType(),types:Object.values(this.getTypeMap()),directives:this.getDirectives(),extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,assumeValid:this.__validationErrors!==undefined}}}t.GraphQLSchema=GraphQLSchema;function collectReferencedTypes(e,t){const r=(0,c.getNamedType)(e);if(!t.has(r)){t.add(r);if((0,c.isUnionType)(r)){for(const e of r.getTypes()){collectReferencedTypes(e,t)}}else if((0,c.isObjectType)(r)||(0,c.isInterfaceType)(r)){for(const e of r.getInterfaces()){collectReferencedTypes(e,t)}for(const e of Object.values(r.getFields())){collectReferencedTypes(e.type,t);for(const r of e.args){collectReferencedTypes(r.type,t)}}}else if((0,c.isInputObjectType)(r)){for(const e of Object.values(r.getFields())){collectReferencedTypes(e.type,t)}}}return t}},3902:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidSchema=assertValidSchema;t.validateSchema=validateSchema;var n=r(5742);var s=r(5939);var o=r(2740);var i=r(6539);var a=r(4169);var A=r(1058);var c=r(317);var u=r(9299);function validateSchema(e){(0,u.assertSchema)(e);if(e.__validationErrors){return e.__validationErrors}const t=new SchemaValidationContext(e);validateRootTypes(t);validateDirectives(t);validateTypes(t);const r=t.getErrors();e.__validationErrors=r;return r}function assertValidSchema(e){const t=validateSchema(e);if(t.length!==0){throw new Error(t.map((e=>e.message)).join("\n\n"))}}class SchemaValidationContext{constructor(e){this._errors=[];this.schema=e}reportError(e,t){const r=Array.isArray(t)?t.filter(Boolean):t;this._errors.push(new s.GraphQLError(e,{nodes:r}))}getErrors(){return this._errors}}function validateRootTypes(e){const t=e.schema;const r=t.getQueryType();if(!r){e.reportError("Query root type must be provided.",t.astNode)}else if(!(0,a.isObjectType)(r)){var s;e.reportError(`Query root type must be Object type, it cannot be ${(0,n.inspect)(r)}.`,(s=getOperationTypeNode(t,o.OperationTypeNode.QUERY))!==null&&s!==void 0?s:r.astNode)}const i=t.getMutationType();if(i&&!(0,a.isObjectType)(i)){var A;e.reportError("Mutation root type must be Object type if provided, it cannot be "+`${(0,n.inspect)(i)}.`,(A=getOperationTypeNode(t,o.OperationTypeNode.MUTATION))!==null&&A!==void 0?A:i.astNode)}const c=t.getSubscriptionType();if(c&&!(0,a.isObjectType)(c)){var u;e.reportError("Subscription root type must be Object type if provided, it cannot be "+`${(0,n.inspect)(c)}.`,(u=getOperationTypeNode(t,o.OperationTypeNode.SUBSCRIPTION))!==null&&u!==void 0?u:c.astNode)}}function getOperationTypeNode(e,t){var r;return(r=[e.astNode,...e.extensionASTNodes].flatMap((e=>{var t;return(t=e===null||e===void 0?void 0:e.operationTypes)!==null&&t!==void 0?t:[]})).find((e=>e.operation===t)))===null||r===void 0?void 0:r.type}function validateDirectives(e){for(const r of e.schema.getDirectives()){if(!(0,A.isDirective)(r)){e.reportError(`Expected directive but got: ${(0,n.inspect)(r)}.`,r===null||r===void 0?void 0:r.astNode);continue}validateName(e,r);for(const s of r.args){validateName(e,s);if(!(0,a.isInputType)(s.type)){e.reportError(`The type of @${r.name}(${s.name}:) must be Input Type `+`but got: ${(0,n.inspect)(s.type)}.`,s.astNode)}if((0,a.isRequiredArgument)(s)&&s.deprecationReason!=null){var t;e.reportError(`Required argument @${r.name}(${s.name}:) cannot be deprecated.`,[getDeprecatedDirectiveNode(s.astNode),(t=s.astNode)===null||t===void 0?void 0:t.type])}}}}function validateName(e,t){if(t.name.startsWith("__")){e.reportError(`Name "${t.name}" must not begin with "__", which is reserved by GraphQL introspection.`,t.astNode)}}function validateTypes(e){const t=createInputObjectCircularRefsValidator(e);const r=e.schema.getTypeMap();for(const s of Object.values(r)){if(!(0,a.isNamedType)(s)){e.reportError(`Expected GraphQL named type but got: ${(0,n.inspect)(s)}.`,s.astNode);continue}if(!(0,c.isIntrospectionType)(s)){validateName(e,s)}if((0,a.isObjectType)(s)){validateFields(e,s);validateInterfaces(e,s)}else if((0,a.isInterfaceType)(s)){validateFields(e,s);validateInterfaces(e,s)}else if((0,a.isUnionType)(s)){validateUnionMembers(e,s)}else if((0,a.isEnumType)(s)){validateEnumValues(e,s)}else if((0,a.isInputObjectType)(s)){validateInputFields(e,s);t(s)}}}function validateFields(e,t){const r=Object.values(t.getFields());if(r.length===0){e.reportError(`Type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes])}for(const A of r){validateName(e,A);if(!(0,a.isOutputType)(A.type)){var s;e.reportError(`The type of ${t.name}.${A.name} must be Output Type `+`but got: ${(0,n.inspect)(A.type)}.`,(s=A.astNode)===null||s===void 0?void 0:s.type)}for(const r of A.args){const s=r.name;validateName(e,r);if(!(0,a.isInputType)(r.type)){var o;e.reportError(`The type of ${t.name}.${A.name}(${s}:) must be Input `+`Type but got: ${(0,n.inspect)(r.type)}.`,(o=r.astNode)===null||o===void 0?void 0:o.type)}if((0,a.isRequiredArgument)(r)&&r.deprecationReason!=null){var i;e.reportError(`Required argument ${t.name}.${A.name}(${s}:) cannot be deprecated.`,[getDeprecatedDirectiveNode(r.astNode),(i=r.astNode)===null||i===void 0?void 0:i.type])}}}}function validateInterfaces(e,t){const r=Object.create(null);for(const s of t.getInterfaces()){if(!(0,a.isInterfaceType)(s)){e.reportError(`Type ${(0,n.inspect)(t)} must only implement Interface types, `+`it cannot implement ${(0,n.inspect)(s)}.`,getAllImplementsInterfaceNodes(t,s));continue}if(t===s){e.reportError(`Type ${t.name} cannot implement itself because it would create a circular reference.`,getAllImplementsInterfaceNodes(t,s));continue}if(r[s.name]){e.reportError(`Type ${t.name} can only implement ${s.name} once.`,getAllImplementsInterfaceNodes(t,s));continue}r[s.name]=true;validateTypeImplementsAncestors(e,t,s);validateTypeImplementsInterface(e,t,s)}}function validateTypeImplementsInterface(e,t,r){const s=t.getFields();for(const l of Object.values(r.getFields())){const p=l.name;const d=s[p];if(!d){e.reportError(`Interface field ${r.name}.${p} expected but ${t.name} does not provide it.`,[l.astNode,t.astNode,...t.extensionASTNodes]);continue}if(!(0,i.isTypeSubTypeOf)(e.schema,d.type,l.type)){var o,A;e.reportError(`Interface field ${r.name}.${p} expects type `+`${(0,n.inspect)(l.type)} but ${t.name}.${p} `+`is type ${(0,n.inspect)(d.type)}.`,[(o=l.astNode)===null||o===void 0?void 0:o.type,(A=d.astNode)===null||A===void 0?void 0:A.type])}for(const s of l.args){const o=s.name;const a=d.args.find((e=>e.name===o));if(!a){e.reportError(`Interface field argument ${r.name}.${p}(${o}:) expected but ${t.name}.${p} does not provide it.`,[s.astNode,d.astNode]);continue}if(!(0,i.isEqualType)(s.type,a.type)){var c,u;e.reportError(`Interface field argument ${r.name}.${p}(${o}:) `+`expects type ${(0,n.inspect)(s.type)} but `+`${t.name}.${p}(${o}:) is type `+`${(0,n.inspect)(a.type)}.`,[(c=s.astNode)===null||c===void 0?void 0:c.type,(u=a.astNode)===null||u===void 0?void 0:u.type])}}for(const n of d.args){const s=n.name;const o=l.args.find((e=>e.name===s));if(!o&&(0,a.isRequiredArgument)(n)){e.reportError(`Object field ${t.name}.${p} includes required argument ${s} that is missing from the Interface field ${r.name}.${p}.`,[n.astNode,l.astNode])}}}}function validateTypeImplementsAncestors(e,t,r){const n=t.getInterfaces();for(const s of r.getInterfaces()){if(!n.includes(s)){e.reportError(s===t?`Type ${t.name} cannot implement ${r.name} because it would create a circular reference.`:`Type ${t.name} must implement ${s.name} because it is implemented by ${r.name}.`,[...getAllImplementsInterfaceNodes(r,s),...getAllImplementsInterfaceNodes(t,r)])}}}function validateUnionMembers(e,t){const r=t.getTypes();if(r.length===0){e.reportError(`Union type ${t.name} must define one or more member types.`,[t.astNode,...t.extensionASTNodes])}const s=Object.create(null);for(const o of r){if(s[o.name]){e.reportError(`Union type ${t.name} can only include type ${o.name} once.`,getUnionMemberTypeNodes(t,o.name));continue}s[o.name]=true;if(!(0,a.isObjectType)(o)){e.reportError(`Union type ${t.name} can only include Object types, `+`it cannot include ${(0,n.inspect)(o)}.`,getUnionMemberTypeNodes(t,String(o)))}}}function validateEnumValues(e,t){const r=t.getValues();if(r.length===0){e.reportError(`Enum type ${t.name} must define one or more values.`,[t.astNode,...t.extensionASTNodes])}for(const t of r){validateName(e,t)}}function validateInputFields(e,t){const r=Object.values(t.getFields());if(r.length===0){e.reportError(`Input Object type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes])}for(const i of r){validateName(e,i);if(!(0,a.isInputType)(i.type)){var s;e.reportError(`The type of ${t.name}.${i.name} must be Input Type `+`but got: ${(0,n.inspect)(i.type)}.`,(s=i.astNode)===null||s===void 0?void 0:s.type)}if((0,a.isRequiredInputField)(i)&&i.deprecationReason!=null){var o;e.reportError(`Required input field ${t.name}.${i.name} cannot be deprecated.`,[getDeprecatedDirectiveNode(i.astNode),(o=i.astNode)===null||o===void 0?void 0:o.type])}if(t.isOneOf){validateOneOfInputObjectField(t,i,e)}}}function validateOneOfInputObjectField(e,t,r){if((0,a.isNonNullType)(t.type)){var n;r.reportError(`OneOf input field ${e.name}.${t.name} must be nullable.`,(n=t.astNode)===null||n===void 0?void 0:n.type)}if(t.defaultValue!==undefined){r.reportError(`OneOf input field ${e.name}.${t.name} cannot have a default value.`,t.astNode)}}function createInputObjectCircularRefsValidator(e){const t=Object.create(null);const r=[];const n=Object.create(null);return detectCycleRecursive;function detectCycleRecursive(s){if(t[s.name]){return}t[s.name]=true;n[s.name]=r.length;const o=Object.values(s.getFields());for(const t of o){if((0,a.isNonNullType)(t.type)&&(0,a.isInputObjectType)(t.type.ofType)){const s=t.type.ofType;const o=n[s.name];r.push(t);if(o===undefined){detectCycleRecursive(s)}else{const t=r.slice(o);const n=t.map((e=>e.name)).join(".");e.reportError(`Cannot reference Input Object "${s.name}" within itself through a series of non-null fields: "${n}".`,t.map((e=>e.astNode)))}r.pop()}}n[s.name]=undefined}}function getAllImplementsInterfaceNodes(e,t){const{astNode:r,extensionASTNodes:n}=e;const s=r!=null?[r,...n]:n;return s.flatMap((e=>{var t;return(t=e.interfaces)!==null&&t!==void 0?t:[]})).filter((e=>e.name.value===t.name))}function getUnionMemberTypeNodes(e,t){const{astNode:r,extensionASTNodes:n}=e;const s=r!=null?[r,...n]:n;return s.flatMap((e=>{var t;return(t=e.types)!==null&&t!==void 0?t:[]})).filter((e=>e.name.value===t))}function getDeprecatedDirectiveNode(e){var t;return e===null||e===void 0?void 0:(t=e.directives)===null||t===void 0?void 0:t.find((e=>e.name.value===A.GraphQLDeprecatedDirective.name))}},5e3:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TypeInfo=void 0;t.visitWithTypeInfo=visitWithTypeInfo;var n=r(2740);var s=r(1123);var o=r(638);var i=r(4169);var a=r(317);var A=r(6738);class TypeInfo{constructor(e,t,r){this._schema=e;this._typeStack=[];this._parentTypeStack=[];this._inputTypeStack=[];this._fieldDefStack=[];this._defaultValueStack=[];this._directive=null;this._argument=null;this._enumValue=null;this._getFieldDef=r!==null&&r!==void 0?r:getFieldDef;if(t){if((0,i.isInputType)(t)){this._inputTypeStack.push(t)}if((0,i.isCompositeType)(t)){this._parentTypeStack.push(t)}if((0,i.isOutputType)(t)){this._typeStack.push(t)}}}get[Symbol.toStringTag](){return"TypeInfo"}getType(){if(this._typeStack.length>0){return this._typeStack[this._typeStack.length-1]}}getParentType(){if(this._parentTypeStack.length>0){return this._parentTypeStack[this._parentTypeStack.length-1]}}getInputType(){if(this._inputTypeStack.length>0){return this._inputTypeStack[this._inputTypeStack.length-1]}}getParentInputType(){if(this._inputTypeStack.length>1){return this._inputTypeStack[this._inputTypeStack.length-2]}}getFieldDef(){if(this._fieldDefStack.length>0){return this._fieldDefStack[this._fieldDefStack.length-1]}}getDefaultValue(){if(this._defaultValueStack.length>0){return this._defaultValueStack[this._defaultValueStack.length-1]}}getDirective(){return this._directive}getArgument(){return this._argument}getEnumValue(){return this._enumValue}enter(e){const t=this._schema;switch(e.kind){case s.Kind.SELECTION_SET:{const e=(0,i.getNamedType)(this.getType());this._parentTypeStack.push((0,i.isCompositeType)(e)?e:undefined);break}case s.Kind.FIELD:{const r=this.getParentType();let n;let s;if(r){n=this._getFieldDef(t,r,e);if(n){s=n.type}}this._fieldDefStack.push(n);this._typeStack.push((0,i.isOutputType)(s)?s:undefined);break}case s.Kind.DIRECTIVE:this._directive=t.getDirective(e.name.value);break;case s.Kind.OPERATION_DEFINITION:{const r=t.getRootType(e.operation);this._typeStack.push((0,i.isObjectType)(r)?r:undefined);break}case s.Kind.INLINE_FRAGMENT:case s.Kind.FRAGMENT_DEFINITION:{const r=e.typeCondition;const n=r?(0,A.typeFromAST)(t,r):(0,i.getNamedType)(this.getType());this._typeStack.push((0,i.isOutputType)(n)?n:undefined);break}case s.Kind.VARIABLE_DEFINITION:{const r=(0,A.typeFromAST)(t,e.type);this._inputTypeStack.push((0,i.isInputType)(r)?r:undefined);break}case s.Kind.ARGUMENT:{var r;let t;let n;const s=(r=this.getDirective())!==null&&r!==void 0?r:this.getFieldDef();if(s){t=s.args.find((t=>t.name===e.name.value));if(t){n=t.type}}this._argument=t;this._defaultValueStack.push(t?t.defaultValue:undefined);this._inputTypeStack.push((0,i.isInputType)(n)?n:undefined);break}case s.Kind.LIST:{const e=(0,i.getNullableType)(this.getInputType());const t=(0,i.isListType)(e)?e.ofType:e;this._defaultValueStack.push(undefined);this._inputTypeStack.push((0,i.isInputType)(t)?t:undefined);break}case s.Kind.OBJECT_FIELD:{const t=(0,i.getNamedType)(this.getInputType());let r;let n;if((0,i.isInputObjectType)(t)){n=t.getFields()[e.name.value];if(n){r=n.type}}this._defaultValueStack.push(n?n.defaultValue:undefined);this._inputTypeStack.push((0,i.isInputType)(r)?r:undefined);break}case s.Kind.ENUM:{const t=(0,i.getNamedType)(this.getInputType());let r;if((0,i.isEnumType)(t)){r=t.getValue(e.value)}this._enumValue=r;break}default:}}leave(e){switch(e.kind){case s.Kind.SELECTION_SET:this._parentTypeStack.pop();break;case s.Kind.FIELD:this._fieldDefStack.pop();this._typeStack.pop();break;case s.Kind.DIRECTIVE:this._directive=null;break;case s.Kind.OPERATION_DEFINITION:case s.Kind.INLINE_FRAGMENT:case s.Kind.FRAGMENT_DEFINITION:this._typeStack.pop();break;case s.Kind.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case s.Kind.ARGUMENT:this._argument=null;this._defaultValueStack.pop();this._inputTypeStack.pop();break;case s.Kind.LIST:case s.Kind.OBJECT_FIELD:this._defaultValueStack.pop();this._inputTypeStack.pop();break;case s.Kind.ENUM:this._enumValue=null;break;default:}}}t.TypeInfo=TypeInfo;function getFieldDef(e,t,r){const n=r.name.value;if(n===a.SchemaMetaFieldDef.name&&e.getQueryType()===t){return a.SchemaMetaFieldDef}if(n===a.TypeMetaFieldDef.name&&e.getQueryType()===t){return a.TypeMetaFieldDef}if(n===a.TypeNameMetaFieldDef.name&&(0,i.isCompositeType)(t)){return a.TypeNameMetaFieldDef}if((0,i.isObjectType)(t)||(0,i.isInterfaceType)(t)){return t.getFields()[n]}}function visitWithTypeInfo(e,t){return{enter(...r){const s=r[0];e.enter(s);const i=(0,o.getEnterLeaveForKind)(t,s.kind).enter;if(i){const o=i.apply(t,r);if(o!==undefined){e.leave(s);if((0,n.isNode)(o)){e.enter(o)}}return o}},leave(...r){const n=r[0];const s=(0,o.getEnterLeaveForKind)(t,n.kind).leave;let i;if(s){i=s.apply(t,r)}e.leave(n);return i}}}},873:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidName=assertValidName;t.isValidNameError=isValidNameError;var n=r(5383);var s=r(5939);var o=r(8337);function assertValidName(e){const t=isValidNameError(e);if(t){throw t}return e}function isValidNameError(e){typeof e==="string"||(0,n.devAssert)(false,"Expected name to be a string.");if(e.startsWith("__")){return new s.GraphQLError(`Name "${e}" must not begin with "__", which is reserved by GraphQL introspection.`)}try{(0,o.assertName)(e)}catch(e){return e}}},8893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.astFromValue=astFromValue;var n=r(5742);var s=r(3650);var o=r(7341);var i=r(892);var a=r(1123);var A=r(4169);var c=r(3571);function astFromValue(e,t){if((0,A.isNonNullType)(t)){const r=astFromValue(e,t.ofType);if((r===null||r===void 0?void 0:r.kind)===a.Kind.NULL){return null}return r}if(e===null){return{kind:a.Kind.NULL}}if(e===undefined){return null}if((0,A.isListType)(t)){const r=t.ofType;if((0,o.isIterableObject)(e)){const t=[];for(const n of e){const e=astFromValue(n,r);if(e!=null){t.push(e)}}return{kind:a.Kind.LIST,values:t}}return astFromValue(e,r)}if((0,A.isInputObjectType)(t)){if(!(0,i.isObjectLike)(e)){return null}const r=[];for(const n of Object.values(t.getFields())){const t=astFromValue(e[n.name],n.type);if(t){r.push({kind:a.Kind.OBJECT_FIELD,name:{kind:a.Kind.NAME,value:n.name},value:t})}}return{kind:a.Kind.OBJECT,fields:r}}if((0,A.isLeafType)(t)){const r=t.serialize(e);if(r==null){return null}if(typeof r==="boolean"){return{kind:a.Kind.BOOLEAN,value:r}}if(typeof r==="number"&&Number.isFinite(r)){const e=String(r);return u.test(e)?{kind:a.Kind.INT,value:e}:{kind:a.Kind.FLOAT,value:e}}if(typeof r==="string"){if((0,A.isEnumType)(t)){return{kind:a.Kind.ENUM,value:r}}if(t===c.GraphQLID&&u.test(r)){return{kind:a.Kind.INT,value:r}}return{kind:a.Kind.STRING,value:r}}throw new TypeError(`Cannot convert value to AST: ${(0,n.inspect)(r)}.`)}false||(0,s.invariant)(false,"Unexpected input type: "+(0,n.inspect)(t))}const u=/^-?(?:0|[1-9][0-9]*)$/},9115:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.buildASTSchema=buildASTSchema;t.buildSchema=buildSchema;var n=r(5383);var s=r(1123);var o=r(4929);var i=r(1058);var a=r(9299);var A=r(7063);var c=r(5487);function buildASTSchema(e,t){e!=null&&e.kind===s.Kind.DOCUMENT||(0,n.devAssert)(false,"Must provide valid Document AST.");if((t===null||t===void 0?void 0:t.assumeValid)!==true&&(t===null||t===void 0?void 0:t.assumeValidSDL)!==true){(0,A.assertValidSDL)(e)}const r={description:undefined,types:[],directives:[],extensions:Object.create(null),extensionASTNodes:[],assumeValid:false};const o=(0,c.extendSchemaImpl)(r,e,t);if(o.astNode==null){for(const e of o.types){switch(e.name){case"Query":o.query=e;break;case"Mutation":o.mutation=e;break;case"Subscription":o.subscription=e;break}}}const u=[...o.directives,...i.specifiedDirectives.filter((e=>o.directives.every((t=>t.name!==e.name))))];return new a.GraphQLSchema({...o,directives:u})}function buildSchema(e,t){const r=(0,o.parse)(e,{noLocation:t===null||t===void 0?void 0:t.noLocation,allowLegacyFragmentVariables:t===null||t===void 0?void 0:t.allowLegacyFragmentVariables});return buildASTSchema(r,{assumeValidSDL:t===null||t===void 0?void 0:t.assumeValidSDL,assumeValid:t===null||t===void 0?void 0:t.assumeValid})}},6954:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.buildClientSchema=buildClientSchema;var n=r(5383);var s=r(5742);var o=r(892);var i=r(3166);var a=r(4929);var A=r(4169);var c=r(1058);var u=r(317);var l=r(3571);var p=r(9299);var d=r(6495);function buildClientSchema(e,t){(0,o.isObjectLike)(e)&&(0,o.isObjectLike)(e.__schema)||(0,n.devAssert)(false,`Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0,s.inspect)(e)}.`);const r=e.__schema;const g=(0,i.keyValMap)(r.types,(e=>e.name),(e=>buildType(e)));for(const e of[...l.specifiedScalarTypes,...u.introspectionTypes]){if(g[e.name]){g[e.name]=e}}const h=r.queryType?getObjectType(r.queryType):null;const E=r.mutationType?getObjectType(r.mutationType):null;const m=r.subscriptionType?getObjectType(r.subscriptionType):null;const I=r.directives?r.directives.map(buildDirective):[];return new p.GraphQLSchema({description:r.description,query:h,mutation:E,subscription:m,types:Object.values(g),directives:I,assumeValid:t===null||t===void 0?void 0:t.assumeValid});function getType(e){if(e.kind===u.TypeKind.LIST){const t=e.ofType;if(!t){throw new Error("Decorated type deeper than introspection query.")}return new A.GraphQLList(getType(t))}if(e.kind===u.TypeKind.NON_NULL){const t=e.ofType;if(!t){throw new Error("Decorated type deeper than introspection query.")}const r=getType(t);return new A.GraphQLNonNull((0,A.assertNullableType)(r))}return getNamedType(e)}function getNamedType(e){const t=e.name;if(!t){throw new Error(`Unknown type reference: ${(0,s.inspect)(e)}.`)}const r=g[t];if(!r){throw new Error(`Invalid or incomplete schema, unknown type: ${t}. Ensure that a full introspection query is used in order to build a client schema.`)}return r}function getObjectType(e){return(0,A.assertObjectType)(getNamedType(e))}function getInterfaceType(e){return(0,A.assertInterfaceType)(getNamedType(e))}function buildType(e){if(e!=null&&e.name!=null&&e.kind!=null){switch(e.kind){case u.TypeKind.SCALAR:return buildScalarDef(e);case u.TypeKind.OBJECT:return buildObjectDef(e);case u.TypeKind.INTERFACE:return buildInterfaceDef(e);case u.TypeKind.UNION:return buildUnionDef(e);case u.TypeKind.ENUM:return buildEnumDef(e);case u.TypeKind.INPUT_OBJECT:return buildInputObjectDef(e)}}const t=(0,s.inspect)(e);throw new Error(`Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${t}.`)}function buildScalarDef(e){return new A.GraphQLScalarType({name:e.name,description:e.description,specifiedByURL:e.specifiedByURL})}function buildImplementationsList(e){if(e.interfaces===null&&e.kind===u.TypeKind.INTERFACE){return[]}if(!e.interfaces){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing interfaces: ${t}.`)}return e.interfaces.map(getInterfaceType)}function buildObjectDef(e){return new A.GraphQLObjectType({name:e.name,description:e.description,interfaces:()=>buildImplementationsList(e),fields:()=>buildFieldDefMap(e)})}function buildInterfaceDef(e){return new A.GraphQLInterfaceType({name:e.name,description:e.description,interfaces:()=>buildImplementationsList(e),fields:()=>buildFieldDefMap(e)})}function buildUnionDef(e){if(!e.possibleTypes){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing possibleTypes: ${t}.`)}return new A.GraphQLUnionType({name:e.name,description:e.description,types:()=>e.possibleTypes.map(getObjectType)})}function buildEnumDef(e){if(!e.enumValues){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing enumValues: ${t}.`)}return new A.GraphQLEnumType({name:e.name,description:e.description,values:(0,i.keyValMap)(e.enumValues,(e=>e.name),(e=>({description:e.description,deprecationReason:e.deprecationReason})))})}function buildInputObjectDef(e){if(!e.inputFields){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing inputFields: ${t}.`)}return new A.GraphQLInputObjectType({name:e.name,description:e.description,fields:()=>buildInputValueDefMap(e.inputFields),isOneOf:e.isOneOf})}function buildFieldDefMap(e){if(!e.fields){throw new Error(`Introspection result missing fields: ${(0,s.inspect)(e)}.`)}return(0,i.keyValMap)(e.fields,(e=>e.name),buildField)}function buildField(e){const t=getType(e.type);if(!(0,A.isOutputType)(t)){const e=(0,s.inspect)(t);throw new Error(`Introspection must provide output type for fields, but received: ${e}.`)}if(!e.args){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing field args: ${t}.`)}return{description:e.description,deprecationReason:e.deprecationReason,type:t,args:buildInputValueDefMap(e.args)}}function buildInputValueDefMap(e){return(0,i.keyValMap)(e,(e=>e.name),buildInputValue)}function buildInputValue(e){const t=getType(e.type);if(!(0,A.isInputType)(t)){const e=(0,s.inspect)(t);throw new Error(`Introspection must provide input type for arguments, but received: ${e}.`)}const r=e.defaultValue!=null?(0,d.valueFromAST)((0,a.parseValue)(e.defaultValue),t):undefined;return{description:e.description,type:t,defaultValue:r,deprecationReason:e.deprecationReason}}function buildDirective(e){if(!e.args){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing directive args: ${t}.`)}if(!e.locations){const t=(0,s.inspect)(e);throw new Error(`Introspection result missing directive locations: ${t}.`)}return new c.GraphQLDirective({name:e.name,description:e.description,isRepeatable:e.isRepeatable,locations:e.locations.slice(),args:buildInputValueDefMap(e.args)})}}},7572:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.coerceInputValue=coerceInputValue;var n=r(1353);var s=r(5742);var o=r(3650);var i=r(7341);var a=r(892);var A=r(3155);var c=r(8373);var u=r(7904);var l=r(5939);var p=r(4169);function coerceInputValue(e,t,r=defaultOnError){return coerceInputValueImpl(e,t,r,undefined)}function defaultOnError(e,t,r){let n="Invalid value "+(0,s.inspect)(t);if(e.length>0){n+=` at "value${(0,c.printPathArray)(e)}"`}r.message=n+": "+r.message;throw r}function coerceInputValueImpl(e,t,r,c){if((0,p.isNonNullType)(t)){if(e!=null){return coerceInputValueImpl(e,t.ofType,r,c)}r((0,A.pathToArray)(c),e,new l.GraphQLError(`Expected non-nullable type "${(0,s.inspect)(t)}" not to be null.`));return}if(e==null){return null}if((0,p.isListType)(t)){const n=t.ofType;if((0,i.isIterableObject)(e)){return Array.from(e,((e,t)=>{const s=(0,A.addPath)(c,t,undefined);return coerceInputValueImpl(e,n,r,s)}))}return[coerceInputValueImpl(e,n,r,c)]}if((0,p.isInputObjectType)(t)){if(!(0,a.isObjectLike)(e)){r((0,A.pathToArray)(c),e,new l.GraphQLError(`Expected type "${t.name}" to be an object.`));return}const o={};const i=t.getFields();for(const n of Object.values(i)){const i=e[n.name];if(i===undefined){if(n.defaultValue!==undefined){o[n.name]=n.defaultValue}else if((0,p.isNonNullType)(n.type)){const t=(0,s.inspect)(n.type);r((0,A.pathToArray)(c),e,new l.GraphQLError(`Field "${n.name}" of required type "${t}" was not provided.`))}continue}o[n.name]=coerceInputValueImpl(i,n.type,r,(0,A.addPath)(c,n.name,t.name))}for(const s of Object.keys(e)){if(!i[s]){const o=(0,u.suggestionList)(s,Object.keys(t.getFields()));r((0,A.pathToArray)(c),e,new l.GraphQLError(`Field "${s}" is not defined by type "${t.name}".`+(0,n.didYouMean)(o)))}}if(t.isOneOf){const n=Object.keys(o);if(n.length!==1){r((0,A.pathToArray)(c),e,new l.GraphQLError(`Exactly one key must be specified for OneOf type "${t.name}".`))}const s=n[0];const i=o[s];if(i===null){r((0,A.pathToArray)(c).concat(s),i,new l.GraphQLError(`Field "${s}" must be non-null.`))}}return o}if((0,p.isLeafType)(t)){let n;try{n=t.parseValue(e)}catch(n){if(n instanceof l.GraphQLError){r((0,A.pathToArray)(c),e,n)}else{r((0,A.pathToArray)(c),e,new l.GraphQLError(`Expected type "${t.name}". `+n.message,{originalError:n}))}return}if(n===undefined){r((0,A.pathToArray)(c),e,new l.GraphQLError(`Expected type "${t.name}".`))}return n}false||(0,o.invariant)(false,"Unexpected input type: "+(0,s.inspect)(t))}},3089:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.concatAST=concatAST;var n=r(1123);function concatAST(e){const t=[];for(const r of e){t.push(...r.definitions)}return{kind:n.Kind.DOCUMENT,definitions:t}}},5487:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.extendSchema=extendSchema;t.extendSchemaImpl=extendSchemaImpl;var n=r(5383);var s=r(5742);var o=r(3650);var i=r(7579);var a=r(5719);var A=r(1123);var c=r(5480);var u=r(4169);var l=r(1058);var p=r(317);var d=r(3571);var g=r(9299);var h=r(7063);var E=r(3604);var m=r(6495);function extendSchema(e,t,r){(0,g.assertSchema)(e);t!=null&&t.kind===A.Kind.DOCUMENT||(0,n.devAssert)(false,"Must provide valid Document AST.");if((r===null||r===void 0?void 0:r.assumeValid)!==true&&(r===null||r===void 0?void 0:r.assumeValidSDL)!==true){(0,h.assertValidSDLExtension)(t,e)}const s=e.toConfig();const o=extendSchemaImpl(s,t,r);return s===o?e:new g.GraphQLSchema(o)}function extendSchemaImpl(e,t,r){var n,i,g,h;const E=[];const y=Object.create(null);const C=[];let Q;const B=[];for(const e of t.definitions){if(e.kind===A.Kind.SCHEMA_DEFINITION){Q=e}else if(e.kind===A.Kind.SCHEMA_EXTENSION){B.push(e)}else if((0,c.isTypeDefinitionNode)(e)){E.push(e)}else if((0,c.isTypeExtensionNode)(e)){const t=e.name.value;const r=y[t];y[t]=r?r.concat([e]):[e]}else if(e.kind===A.Kind.DIRECTIVE_DEFINITION){C.push(e)}}if(Object.keys(y).length===0&&E.length===0&&C.length===0&&B.length===0&&Q==null){return e}const b=Object.create(null);for(const t of e.types){b[t.name]=extendNamedType(t)}for(const e of E){var T;const t=e.name.value;b[t]=(T=I[t])!==null&&T!==void 0?T:buildType(e)}const w={query:e.query&&replaceNamedType(e.query),mutation:e.mutation&&replaceNamedType(e.mutation),subscription:e.subscription&&replaceNamedType(e.subscription),...Q&&getOperationTypes([Q]),...getOperationTypes(B)};return{description:(n=Q)===null||n===void 0?void 0:(i=n.description)===null||i===void 0?void 0:i.value,...w,types:Object.values(b),directives:[...e.directives.map(replaceDirective),...C.map(buildDirective)],extensions:Object.create(null),astNode:(g=Q)!==null&&g!==void 0?g:e.astNode,extensionASTNodes:e.extensionASTNodes.concat(B),assumeValid:(h=r===null||r===void 0?void 0:r.assumeValid)!==null&&h!==void 0?h:false};function replaceType(e){if((0,u.isListType)(e)){return new u.GraphQLList(replaceType(e.ofType))}if((0,u.isNonNullType)(e)){return new u.GraphQLNonNull(replaceType(e.ofType))}return replaceNamedType(e)}function replaceNamedType(e){return b[e.name]}function replaceDirective(e){const t=e.toConfig();return new l.GraphQLDirective({...t,args:(0,a.mapValue)(t.args,extendArg)})}function extendNamedType(e){if((0,p.isIntrospectionType)(e)||(0,d.isSpecifiedScalarType)(e)){return e}if((0,u.isScalarType)(e)){return extendScalarType(e)}if((0,u.isObjectType)(e)){return extendObjectType(e)}if((0,u.isInterfaceType)(e)){return extendInterfaceType(e)}if((0,u.isUnionType)(e)){return extendUnionType(e)}if((0,u.isEnumType)(e)){return extendEnumType(e)}if((0,u.isInputObjectType)(e)){return extendInputObjectType(e)}false||(0,o.invariant)(false,"Unexpected type: "+(0,s.inspect)(e))}function extendInputObjectType(e){var t;const r=e.toConfig();const n=(t=y[r.name])!==null&&t!==void 0?t:[];return new u.GraphQLInputObjectType({...r,fields:()=>({...(0,a.mapValue)(r.fields,(e=>({...e,type:replaceType(e.type)}))),...buildInputFieldMap(n)}),extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendEnumType(e){var t;const r=e.toConfig();const n=(t=y[e.name])!==null&&t!==void 0?t:[];return new u.GraphQLEnumType({...r,values:{...r.values,...buildEnumValueMap(n)},extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendScalarType(e){var t;const r=e.toConfig();const n=(t=y[r.name])!==null&&t!==void 0?t:[];let s=r.specifiedByURL;for(const e of n){var o;s=(o=getSpecifiedByURL(e))!==null&&o!==void 0?o:s}return new u.GraphQLScalarType({...r,specifiedByURL:s,extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendObjectType(e){var t;const r=e.toConfig();const n=(t=y[r.name])!==null&&t!==void 0?t:[];return new u.GraphQLObjectType({...r,interfaces:()=>[...e.getInterfaces().map(replaceNamedType),...buildInterfaces(n)],fields:()=>({...(0,a.mapValue)(r.fields,extendField),...buildFieldMap(n)}),extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendInterfaceType(e){var t;const r=e.toConfig();const n=(t=y[r.name])!==null&&t!==void 0?t:[];return new u.GraphQLInterfaceType({...r,interfaces:()=>[...e.getInterfaces().map(replaceNamedType),...buildInterfaces(n)],fields:()=>({...(0,a.mapValue)(r.fields,extendField),...buildFieldMap(n)}),extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendUnionType(e){var t;const r=e.toConfig();const n=(t=y[r.name])!==null&&t!==void 0?t:[];return new u.GraphQLUnionType({...r,types:()=>[...e.getTypes().map(replaceNamedType),...buildUnionTypes(n)],extensionASTNodes:r.extensionASTNodes.concat(n)})}function extendField(e){return{...e,type:replaceType(e.type),args:e.args&&(0,a.mapValue)(e.args,extendArg)}}function extendArg(e){return{...e,type:replaceType(e.type)}}function getOperationTypes(e){const t={};for(const n of e){var r;const e=(r=n.operationTypes)!==null&&r!==void 0?r:[];for(const r of e){t[r.operation]=getNamedType(r.type)}}return t}function getNamedType(e){var t;const r=e.name.value;const n=(t=I[r])!==null&&t!==void 0?t:b[r];if(n===undefined){throw new Error(`Unknown type: "${r}".`)}return n}function getWrappedType(e){if(e.kind===A.Kind.LIST_TYPE){return new u.GraphQLList(getWrappedType(e.type))}if(e.kind===A.Kind.NON_NULL_TYPE){return new u.GraphQLNonNull(getWrappedType(e.type))}return getNamedType(e)}function buildDirective(e){var t;return new l.GraphQLDirective({name:e.name.value,description:(t=e.description)===null||t===void 0?void 0:t.value,locations:e.locations.map((({value:e})=>e)),isRepeatable:e.repeatable,args:buildArgumentMap(e.arguments),astNode:e})}function buildFieldMap(e){const t=Object.create(null);for(const s of e){var r;const e=(r=s.fields)!==null&&r!==void 0?r:[];for(const r of e){var n;t[r.name.value]={type:getWrappedType(r.type),description:(n=r.description)===null||n===void 0?void 0:n.value,args:buildArgumentMap(r.arguments),deprecationReason:getDeprecationReason(r),astNode:r}}}return t}function buildArgumentMap(e){const t=e!==null&&e!==void 0?e:[];const r=Object.create(null);for(const e of t){var n;const t=getWrappedType(e.type);r[e.name.value]={type:t,description:(n=e.description)===null||n===void 0?void 0:n.value,defaultValue:(0,m.valueFromAST)(e.defaultValue,t),deprecationReason:getDeprecationReason(e),astNode:e}}return r}function buildInputFieldMap(e){const t=Object.create(null);for(const s of e){var r;const e=(r=s.fields)!==null&&r!==void 0?r:[];for(const r of e){var n;const e=getWrappedType(r.type);t[r.name.value]={type:e,description:(n=r.description)===null||n===void 0?void 0:n.value,defaultValue:(0,m.valueFromAST)(r.defaultValue,e),deprecationReason:getDeprecationReason(r),astNode:r}}}return t}function buildEnumValueMap(e){const t=Object.create(null);for(const s of e){var r;const e=(r=s.values)!==null&&r!==void 0?r:[];for(const r of e){var n;t[r.name.value]={description:(n=r.description)===null||n===void 0?void 0:n.value,deprecationReason:getDeprecationReason(r),astNode:r}}}return t}function buildInterfaces(e){return e.flatMap((e=>{var t,r;return(t=(r=e.interfaces)===null||r===void 0?void 0:r.map(getNamedType))!==null&&t!==void 0?t:[]}))}function buildUnionTypes(e){return e.flatMap((e=>{var t,r;return(t=(r=e.types)===null||r===void 0?void 0:r.map(getNamedType))!==null&&t!==void 0?t:[]}))}function buildType(e){var t;const r=e.name.value;const n=(t=y[r])!==null&&t!==void 0?t:[];switch(e.kind){case A.Kind.OBJECT_TYPE_DEFINITION:{var s;const t=[e,...n];return new u.GraphQLObjectType({name:r,description:(s=e.description)===null||s===void 0?void 0:s.value,interfaces:()=>buildInterfaces(t),fields:()=>buildFieldMap(t),astNode:e,extensionASTNodes:n})}case A.Kind.INTERFACE_TYPE_DEFINITION:{var o;const t=[e,...n];return new u.GraphQLInterfaceType({name:r,description:(o=e.description)===null||o===void 0?void 0:o.value,interfaces:()=>buildInterfaces(t),fields:()=>buildFieldMap(t),astNode:e,extensionASTNodes:n})}case A.Kind.ENUM_TYPE_DEFINITION:{var i;const t=[e,...n];return new u.GraphQLEnumType({name:r,description:(i=e.description)===null||i===void 0?void 0:i.value,values:buildEnumValueMap(t),astNode:e,extensionASTNodes:n})}case A.Kind.UNION_TYPE_DEFINITION:{var a;const t=[e,...n];return new u.GraphQLUnionType({name:r,description:(a=e.description)===null||a===void 0?void 0:a.value,types:()=>buildUnionTypes(t),astNode:e,extensionASTNodes:n})}case A.Kind.SCALAR_TYPE_DEFINITION:{var c;return new u.GraphQLScalarType({name:r,description:(c=e.description)===null||c===void 0?void 0:c.value,specifiedByURL:getSpecifiedByURL(e),astNode:e,extensionASTNodes:n})}case A.Kind.INPUT_OBJECT_TYPE_DEFINITION:{var l;const t=[e,...n];return new u.GraphQLInputObjectType({name:r,description:(l=e.description)===null||l===void 0?void 0:l.value,fields:()=>buildInputFieldMap(t),astNode:e,extensionASTNodes:n,isOneOf:isOneOf(e)})}}}}const I=(0,i.keyMap)([...d.specifiedScalarTypes,...p.introspectionTypes],(e=>e.name));function getDeprecationReason(e){const t=(0,E.getDirectiveValues)(l.GraphQLDeprecatedDirective,e);return t===null||t===void 0?void 0:t.reason}function getSpecifiedByURL(e){const t=(0,E.getDirectiveValues)(l.GraphQLSpecifiedByDirective,e);return t===null||t===void 0?void 0:t.url}function isOneOf(e){return Boolean((0,E.getDirectiveValues)(l.GraphQLOneOfDirective,e))}},7461:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.DangerousChangeType=t.BreakingChangeType=void 0;t.findBreakingChanges=findBreakingChanges;t.findDangerousChanges=findDangerousChanges;var n=r(5742);var s=r(3650);var o=r(7579);var i=r(9936);var a=r(4169);var A=r(3571);var c=r(8893);var u=r(7287);var l;t.BreakingChangeType=l;(function(e){e["TYPE_REMOVED"]="TYPE_REMOVED";e["TYPE_CHANGED_KIND"]="TYPE_CHANGED_KIND";e["TYPE_REMOVED_FROM_UNION"]="TYPE_REMOVED_FROM_UNION";e["VALUE_REMOVED_FROM_ENUM"]="VALUE_REMOVED_FROM_ENUM";e["REQUIRED_INPUT_FIELD_ADDED"]="REQUIRED_INPUT_FIELD_ADDED";e["IMPLEMENTED_INTERFACE_REMOVED"]="IMPLEMENTED_INTERFACE_REMOVED";e["FIELD_REMOVED"]="FIELD_REMOVED";e["FIELD_CHANGED_KIND"]="FIELD_CHANGED_KIND";e["REQUIRED_ARG_ADDED"]="REQUIRED_ARG_ADDED";e["ARG_REMOVED"]="ARG_REMOVED";e["ARG_CHANGED_KIND"]="ARG_CHANGED_KIND";e["DIRECTIVE_REMOVED"]="DIRECTIVE_REMOVED";e["DIRECTIVE_ARG_REMOVED"]="DIRECTIVE_ARG_REMOVED";e["REQUIRED_DIRECTIVE_ARG_ADDED"]="REQUIRED_DIRECTIVE_ARG_ADDED";e["DIRECTIVE_REPEATABLE_REMOVED"]="DIRECTIVE_REPEATABLE_REMOVED";e["DIRECTIVE_LOCATION_REMOVED"]="DIRECTIVE_LOCATION_REMOVED"})(l||(t.BreakingChangeType=l={}));var p;t.DangerousChangeType=p;(function(e){e["VALUE_ADDED_TO_ENUM"]="VALUE_ADDED_TO_ENUM";e["TYPE_ADDED_TO_UNION"]="TYPE_ADDED_TO_UNION";e["OPTIONAL_INPUT_FIELD_ADDED"]="OPTIONAL_INPUT_FIELD_ADDED";e["OPTIONAL_ARG_ADDED"]="OPTIONAL_ARG_ADDED";e["IMPLEMENTED_INTERFACE_ADDED"]="IMPLEMENTED_INTERFACE_ADDED";e["ARG_DEFAULT_VALUE_CHANGE"]="ARG_DEFAULT_VALUE_CHANGE"})(p||(t.DangerousChangeType=p={}));function findBreakingChanges(e,t){return findSchemaChanges(e,t).filter((e=>e.type in l))}function findDangerousChanges(e,t){return findSchemaChanges(e,t).filter((e=>e.type in p))}function findSchemaChanges(e,t){return[...findTypeChanges(e,t),...findDirectiveChanges(e,t)]}function findDirectiveChanges(e,t){const r=[];const n=diff(e.getDirectives(),t.getDirectives());for(const e of n.removed){r.push({type:l.DIRECTIVE_REMOVED,description:`${e.name} was removed.`})}for(const[e,t]of n.persisted){const n=diff(e.args,t.args);for(const t of n.added){if((0,a.isRequiredArgument)(t)){r.push({type:l.REQUIRED_DIRECTIVE_ARG_ADDED,description:`A required arg ${t.name} on directive ${e.name} was added.`})}}for(const t of n.removed){r.push({type:l.DIRECTIVE_ARG_REMOVED,description:`${t.name} was removed from ${e.name}.`})}if(e.isRepeatable&&!t.isRepeatable){r.push({type:l.DIRECTIVE_REPEATABLE_REMOVED,description:`Repeatable flag was removed from ${e.name}.`})}for(const n of e.locations){if(!t.locations.includes(n)){r.push({type:l.DIRECTIVE_LOCATION_REMOVED,description:`${n} was removed from ${e.name}.`})}}}return r}function findTypeChanges(e,t){const r=[];const n=diff(Object.values(e.getTypeMap()),Object.values(t.getTypeMap()));for(const e of n.removed){r.push({type:l.TYPE_REMOVED,description:(0,A.isSpecifiedScalarType)(e)?`Standard scalar ${e.name} was removed because it is not referenced anymore.`:`${e.name} was removed.`})}for(const[e,t]of n.persisted){if((0,a.isEnumType)(e)&&(0,a.isEnumType)(t)){r.push(...findEnumTypeChanges(e,t))}else if((0,a.isUnionType)(e)&&(0,a.isUnionType)(t)){r.push(...findUnionTypeChanges(e,t))}else if((0,a.isInputObjectType)(e)&&(0,a.isInputObjectType)(t)){r.push(...findInputObjectTypeChanges(e,t))}else if((0,a.isObjectType)(e)&&(0,a.isObjectType)(t)){r.push(...findFieldChanges(e,t),...findImplementedInterfacesChanges(e,t))}else if((0,a.isInterfaceType)(e)&&(0,a.isInterfaceType)(t)){r.push(...findFieldChanges(e,t),...findImplementedInterfacesChanges(e,t))}else if(e.constructor!==t.constructor){r.push({type:l.TYPE_CHANGED_KIND,description:`${e.name} changed from `+`${typeKindName(e)} to ${typeKindName(t)}.`})}}return r}function findInputObjectTypeChanges(e,t){const r=[];const n=diff(Object.values(e.getFields()),Object.values(t.getFields()));for(const t of n.added){if((0,a.isRequiredInputField)(t)){r.push({type:l.REQUIRED_INPUT_FIELD_ADDED,description:`A required field ${t.name} on input type ${e.name} was added.`})}else{r.push({type:p.OPTIONAL_INPUT_FIELD_ADDED,description:`An optional field ${t.name} on input type ${e.name} was added.`})}}for(const t of n.removed){r.push({type:l.FIELD_REMOVED,description:`${e.name}.${t.name} was removed.`})}for(const[t,s]of n.persisted){const n=isChangeSafeForInputObjectFieldOrFieldArg(t.type,s.type);if(!n){r.push({type:l.FIELD_CHANGED_KIND,description:`${e.name}.${t.name} changed type from `+`${String(t.type)} to ${String(s.type)}.`})}}return r}function findUnionTypeChanges(e,t){const r=[];const n=diff(e.getTypes(),t.getTypes());for(const t of n.added){r.push({type:p.TYPE_ADDED_TO_UNION,description:`${t.name} was added to union type ${e.name}.`})}for(const t of n.removed){r.push({type:l.TYPE_REMOVED_FROM_UNION,description:`${t.name} was removed from union type ${e.name}.`})}return r}function findEnumTypeChanges(e,t){const r=[];const n=diff(e.getValues(),t.getValues());for(const t of n.added){r.push({type:p.VALUE_ADDED_TO_ENUM,description:`${t.name} was added to enum type ${e.name}.`})}for(const t of n.removed){r.push({type:l.VALUE_REMOVED_FROM_ENUM,description:`${t.name} was removed from enum type ${e.name}.`})}return r}function findImplementedInterfacesChanges(e,t){const r=[];const n=diff(e.getInterfaces(),t.getInterfaces());for(const t of n.added){r.push({type:p.IMPLEMENTED_INTERFACE_ADDED,description:`${t.name} added to interfaces implemented by ${e.name}.`})}for(const t of n.removed){r.push({type:l.IMPLEMENTED_INTERFACE_REMOVED,description:`${e.name} no longer implements interface ${t.name}.`})}return r}function findFieldChanges(e,t){const r=[];const n=diff(Object.values(e.getFields()),Object.values(t.getFields()));for(const t of n.removed){r.push({type:l.FIELD_REMOVED,description:`${e.name}.${t.name} was removed.`})}for(const[t,s]of n.persisted){r.push(...findArgChanges(e,t,s));const n=isChangeSafeForObjectOrInterfaceField(t.type,s.type);if(!n){r.push({type:l.FIELD_CHANGED_KIND,description:`${e.name}.${t.name} changed type from `+`${String(t.type)} to ${String(s.type)}.`})}}return r}function findArgChanges(e,t,r){const n=[];const s=diff(t.args,r.args);for(const r of s.removed){n.push({type:l.ARG_REMOVED,description:`${e.name}.${t.name} arg ${r.name} was removed.`})}for(const[r,o]of s.persisted){const s=isChangeSafeForInputObjectFieldOrFieldArg(r.type,o.type);if(!s){n.push({type:l.ARG_CHANGED_KIND,description:`${e.name}.${t.name} arg ${r.name} has changed type from `+`${String(r.type)} to ${String(o.type)}.`})}else if(r.defaultValue!==undefined){if(o.defaultValue===undefined){n.push({type:p.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${r.name} defaultValue was removed.`})}else{const s=stringifyValue(r.defaultValue,r.type);const i=stringifyValue(o.defaultValue,o.type);if(s!==i){n.push({type:p.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${r.name} has changed defaultValue from ${s} to ${i}.`})}}}}for(const r of s.added){if((0,a.isRequiredArgument)(r)){n.push({type:l.REQUIRED_ARG_ADDED,description:`A required arg ${r.name} on ${e.name}.${t.name} was added.`})}else{n.push({type:p.OPTIONAL_ARG_ADDED,description:`An optional arg ${r.name} on ${e.name}.${t.name} was added.`})}}return n}function isChangeSafeForObjectOrInterfaceField(e,t){if((0,a.isListType)(e)){return(0,a.isListType)(t)&&isChangeSafeForObjectOrInterfaceField(e.ofType,t.ofType)||(0,a.isNonNullType)(t)&&isChangeSafeForObjectOrInterfaceField(e,t.ofType)}if((0,a.isNonNullType)(e)){return(0,a.isNonNullType)(t)&&isChangeSafeForObjectOrInterfaceField(e.ofType,t.ofType)}return(0,a.isNamedType)(t)&&e.name===t.name||(0,a.isNonNullType)(t)&&isChangeSafeForObjectOrInterfaceField(e,t.ofType)}function isChangeSafeForInputObjectFieldOrFieldArg(e,t){if((0,a.isListType)(e)){return(0,a.isListType)(t)&&isChangeSafeForInputObjectFieldOrFieldArg(e.ofType,t.ofType)}if((0,a.isNonNullType)(e)){return(0,a.isNonNullType)(t)&&isChangeSafeForInputObjectFieldOrFieldArg(e.ofType,t.ofType)||!(0,a.isNonNullType)(t)&&isChangeSafeForInputObjectFieldOrFieldArg(e.ofType,t)}return(0,a.isNamedType)(t)&&e.name===t.name}function typeKindName(e){if((0,a.isScalarType)(e)){return"a Scalar type"}if((0,a.isObjectType)(e)){return"an Object type"}if((0,a.isInterfaceType)(e)){return"an Interface type"}if((0,a.isUnionType)(e)){return"a Union type"}if((0,a.isEnumType)(e)){return"an Enum type"}if((0,a.isInputObjectType)(e)){return"an Input type"}false||(0,s.invariant)(false,"Unexpected type: "+(0,n.inspect)(e))}function stringifyValue(e,t){const r=(0,c.astFromValue)(e,t);r!=null||(0,s.invariant)(false);return(0,i.print)((0,u.sortValueNode)(r))}function diff(e,t){const r=[];const n=[];const s=[];const i=(0,o.keyMap)(e,(({name:e})=>e));const a=(0,o.keyMap)(t,(({name:e})=>e));for(const t of e){const e=a[t.name];if(e===undefined){n.push(t)}else{s.push([t,e])}}for(const e of t){if(i[e.name]===undefined){r.push(e)}}return{added:r,persisted:s,removed:n}}},875:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.getIntrospectionQuery=getIntrospectionQuery;function getIntrospectionQuery(e){const t={descriptions:true,specifiedByUrl:false,directiveIsRepeatable:false,schemaDescription:false,inputValueDeprecation:false,oneOf:false,...e};const r=t.descriptions?"description":"";const n=t.specifiedByUrl?"specifiedByURL":"";const s=t.directiveIsRepeatable?"isRepeatable":"";const o=t.schemaDescription?r:"";function inputDeprecation(e){return t.inputValueDeprecation?e:""}const i=t.oneOf?"isOneOf":"";return`\n query IntrospectionQuery {\n __schema {\n ${o}\n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n ${r}\n ${s}\n locations\n args${inputDeprecation("(includeDeprecated: true)")} {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n ${r}\n ${n}\n ${i}\n fields(includeDeprecated: true) {\n name\n ${r}\n args${inputDeprecation("(includeDeprecated: true)")} {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields${inputDeprecation("(includeDeprecated: true)")} {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n ${r}\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n ${r}\n type { ...TypeRef }\n defaultValue\n ${inputDeprecation("isDeprecated")}\n ${inputDeprecation("deprecationReason")}\n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n `}},6201:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getOperationAST=getOperationAST;var n=r(1123);function getOperationAST(e,t){let r=null;for(const o of e.definitions){if(o.kind===n.Kind.OPERATION_DEFINITION){var s;if(t==null){if(r){return null}r=o}else if(((s=o.name)===null||s===void 0?void 0:s.value)===t){return o}}}return r}},5017:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getOperationRootType=getOperationRootType;var n=r(5939);function getOperationRootType(e,t){if(t.operation==="query"){const r=e.getQueryType();if(!r){throw new n.GraphQLError("Schema does not define the required query root type.",{nodes:t})}return r}if(t.operation==="mutation"){const r=e.getMutationType();if(!r){throw new n.GraphQLError("Schema is not configured for mutations.",{nodes:t})}return r}if(t.operation==="subscription"){const r=e.getSubscriptionType();if(!r){throw new n.GraphQLError("Schema is not configured for subscriptions.",{nodes:t})}return r}throw new n.GraphQLError("Can only have query, mutation and subscription operations.",{nodes:t})}},7006:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"BreakingChangeType",{enumerable:true,get:function(){return b.BreakingChangeType}});Object.defineProperty(t,"DangerousChangeType",{enumerable:true,get:function(){return b.DangerousChangeType}});Object.defineProperty(t,"TypeInfo",{enumerable:true,get:function(){return E.TypeInfo}});Object.defineProperty(t,"assertValidName",{enumerable:true,get:function(){return B.assertValidName}});Object.defineProperty(t,"astFromValue",{enumerable:true,get:function(){return h.astFromValue}});Object.defineProperty(t,"buildASTSchema",{enumerable:true,get:function(){return A.buildASTSchema}});Object.defineProperty(t,"buildClientSchema",{enumerable:true,get:function(){return a.buildClientSchema}});Object.defineProperty(t,"buildSchema",{enumerable:true,get:function(){return A.buildSchema}});Object.defineProperty(t,"coerceInputValue",{enumerable:true,get:function(){return m.coerceInputValue}});Object.defineProperty(t,"concatAST",{enumerable:true,get:function(){return I.concatAST}});Object.defineProperty(t,"doTypesOverlap",{enumerable:true,get:function(){return Q.doTypesOverlap}});Object.defineProperty(t,"extendSchema",{enumerable:true,get:function(){return c.extendSchema}});Object.defineProperty(t,"findBreakingChanges",{enumerable:true,get:function(){return b.findBreakingChanges}});Object.defineProperty(t,"findDangerousChanges",{enumerable:true,get:function(){return b.findDangerousChanges}});Object.defineProperty(t,"getIntrospectionQuery",{enumerable:true,get:function(){return n.getIntrospectionQuery}});Object.defineProperty(t,"getOperationAST",{enumerable:true,get:function(){return s.getOperationAST}});Object.defineProperty(t,"getOperationRootType",{enumerable:true,get:function(){return o.getOperationRootType}});Object.defineProperty(t,"introspectionFromSchema",{enumerable:true,get:function(){return i.introspectionFromSchema}});Object.defineProperty(t,"isEqualType",{enumerable:true,get:function(){return Q.isEqualType}});Object.defineProperty(t,"isTypeSubTypeOf",{enumerable:true,get:function(){return Q.isTypeSubTypeOf}});Object.defineProperty(t,"isValidNameError",{enumerable:true,get:function(){return B.isValidNameError}});Object.defineProperty(t,"lexicographicSortSchema",{enumerable:true,get:function(){return u.lexicographicSortSchema}});Object.defineProperty(t,"printIntrospectionSchema",{enumerable:true,get:function(){return l.printIntrospectionSchema}});Object.defineProperty(t,"printSchema",{enumerable:true,get:function(){return l.printSchema}});Object.defineProperty(t,"printType",{enumerable:true,get:function(){return l.printType}});Object.defineProperty(t,"separateOperations",{enumerable:true,get:function(){return y.separateOperations}});Object.defineProperty(t,"stripIgnoredCharacters",{enumerable:true,get:function(){return C.stripIgnoredCharacters}});Object.defineProperty(t,"typeFromAST",{enumerable:true,get:function(){return p.typeFromAST}});Object.defineProperty(t,"valueFromAST",{enumerable:true,get:function(){return d.valueFromAST}});Object.defineProperty(t,"valueFromASTUntyped",{enumerable:true,get:function(){return g.valueFromASTUntyped}});Object.defineProperty(t,"visitWithTypeInfo",{enumerable:true,get:function(){return E.visitWithTypeInfo}});var n=r(875);var s=r(6201);var o=r(5017);var i=r(5350);var a=r(6954);var A=r(9115);var c=r(5487);var u=r(6071);var l=r(9258);var p=r(6738);var d=r(6495);var g=r(5470);var h=r(8893);var E=r(5e3);var m=r(7572);var I=r(3089);var y=r(6931);var C=r(1096);var Q=r(6539);var B=r(873);var b=r(7461)},5350:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.introspectionFromSchema=introspectionFromSchema;var n=r(3650);var s=r(4929);var o=r(1304);var i=r(875);function introspectionFromSchema(e,t){const r={specifiedByUrl:true,directiveIsRepeatable:true,schemaDescription:true,inputValueDeprecation:true,oneOf:true,...t};const a=(0,s.parse)((0,i.getIntrospectionQuery)(r));const A=(0,o.executeSync)({schema:e,document:a});!A.errors&&A.data||(0,n.invariant)(false);return A.data}},6071:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.lexicographicSortSchema=lexicographicSortSchema;var n=r(5742);var s=r(3650);var o=r(3166);var i=r(3428);var a=r(4169);var A=r(1058);var c=r(317);var u=r(9299);function lexicographicSortSchema(e){const t=e.toConfig();const r=(0,o.keyValMap)(sortByName(t.types),(e=>e.name),sortNamedType);return new u.GraphQLSchema({...t,types:Object.values(r),directives:sortByName(t.directives).map(sortDirective),query:replaceMaybeType(t.query),mutation:replaceMaybeType(t.mutation),subscription:replaceMaybeType(t.subscription)});function replaceType(e){if((0,a.isListType)(e)){return new a.GraphQLList(replaceType(e.ofType))}else if((0,a.isNonNullType)(e)){return new a.GraphQLNonNull(replaceType(e.ofType))}return replaceNamedType(e)}function replaceNamedType(e){return r[e.name]}function replaceMaybeType(e){return e&&replaceNamedType(e)}function sortDirective(e){const t=e.toConfig();return new A.GraphQLDirective({...t,locations:sortBy(t.locations,(e=>e)),args:sortArgs(t.args)})}function sortArgs(e){return sortObjMap(e,(e=>({...e,type:replaceType(e.type)})))}function sortFields(e){return sortObjMap(e,(e=>({...e,type:replaceType(e.type),args:e.args&&sortArgs(e.args)})))}function sortInputFields(e){return sortObjMap(e,(e=>({...e,type:replaceType(e.type)})))}function sortTypes(e){return sortByName(e).map(replaceNamedType)}function sortNamedType(e){if((0,a.isScalarType)(e)||(0,c.isIntrospectionType)(e)){return e}if((0,a.isObjectType)(e)){const t=e.toConfig();return new a.GraphQLObjectType({...t,interfaces:()=>sortTypes(t.interfaces),fields:()=>sortFields(t.fields)})}if((0,a.isInterfaceType)(e)){const t=e.toConfig();return new a.GraphQLInterfaceType({...t,interfaces:()=>sortTypes(t.interfaces),fields:()=>sortFields(t.fields)})}if((0,a.isUnionType)(e)){const t=e.toConfig();return new a.GraphQLUnionType({...t,types:()=>sortTypes(t.types)})}if((0,a.isEnumType)(e)){const t=e.toConfig();return new a.GraphQLEnumType({...t,values:sortObjMap(t.values,(e=>e))})}if((0,a.isInputObjectType)(e)){const t=e.toConfig();return new a.GraphQLInputObjectType({...t,fields:()=>sortInputFields(t.fields)})}false||(0,s.invariant)(false,"Unexpected type: "+(0,n.inspect)(e))}}function sortObjMap(e,t){const r=Object.create(null);for(const n of Object.keys(e).sort(i.naturalCompare)){r[n]=t(e[n])}return r}function sortByName(e){return sortBy(e,(e=>e.name))}function sortBy(e,t){return e.slice().sort(((e,r)=>{const n=t(e);const s=t(r);return(0,i.naturalCompare)(n,s)}))}},9258:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.printIntrospectionSchema=printIntrospectionSchema;t.printSchema=printSchema;t.printType=printType;var n=r(5742);var s=r(3650);var o=r(7508);var i=r(1123);var a=r(9936);var A=r(4169);var c=r(1058);var u=r(317);var l=r(3571);var p=r(8893);function printSchema(e){return printFilteredSchema(e,(e=>!(0,c.isSpecifiedDirective)(e)),isDefinedType)}function printIntrospectionSchema(e){return printFilteredSchema(e,c.isSpecifiedDirective,u.isIntrospectionType)}function isDefinedType(e){return!(0,l.isSpecifiedScalarType)(e)&&!(0,u.isIntrospectionType)(e)}function printFilteredSchema(e,t,r){const n=e.getDirectives().filter(t);const s=Object.values(e.getTypeMap()).filter(r);return[printSchemaDefinition(e),...n.map((e=>printDirective(e))),...s.map((e=>printType(e)))].filter(Boolean).join("\n\n")}function printSchemaDefinition(e){if(e.description==null&&isSchemaOfCommonNames(e)){return}const t=[];const r=e.getQueryType();if(r){t.push(` query: ${r.name}`)}const n=e.getMutationType();if(n){t.push(` mutation: ${n.name}`)}const s=e.getSubscriptionType();if(s){t.push(` subscription: ${s.name}`)}return printDescription(e)+`schema {\n${t.join("\n")}\n}`}function isSchemaOfCommonNames(e){const t=e.getQueryType();if(t&&t.name!=="Query"){return false}const r=e.getMutationType();if(r&&r.name!=="Mutation"){return false}const n=e.getSubscriptionType();if(n&&n.name!=="Subscription"){return false}return true}function printType(e){if((0,A.isScalarType)(e)){return printScalar(e)}if((0,A.isObjectType)(e)){return printObject(e)}if((0,A.isInterfaceType)(e)){return printInterface(e)}if((0,A.isUnionType)(e)){return printUnion(e)}if((0,A.isEnumType)(e)){return printEnum(e)}if((0,A.isInputObjectType)(e)){return printInputObject(e)}false||(0,s.invariant)(false,"Unexpected type: "+(0,n.inspect)(e))}function printScalar(e){return printDescription(e)+`scalar ${e.name}`+printSpecifiedByURL(e)}function printImplementedInterfaces(e){const t=e.getInterfaces();return t.length?" implements "+t.map((e=>e.name)).join(" & "):""}function printObject(e){return printDescription(e)+`type ${e.name}`+printImplementedInterfaces(e)+printFields(e)}function printInterface(e){return printDescription(e)+`interface ${e.name}`+printImplementedInterfaces(e)+printFields(e)}function printUnion(e){const t=e.getTypes();const r=t.length?" = "+t.join(" | "):"";return printDescription(e)+"union "+e.name+r}function printEnum(e){const t=e.getValues().map(((e,t)=>printDescription(e," ",!t)+" "+e.name+printDeprecated(e.deprecationReason)));return printDescription(e)+`enum ${e.name}`+printBlock(t)}function printInputObject(e){const t=Object.values(e.getFields()).map(((e,t)=>printDescription(e," ",!t)+" "+printInputValue(e)));return printDescription(e)+`input ${e.name}`+(e.isOneOf?" @oneOf":"")+printBlock(t)}function printFields(e){const t=Object.values(e.getFields()).map(((e,t)=>printDescription(e," ",!t)+" "+e.name+printArgs(e.args," ")+": "+String(e.type)+printDeprecated(e.deprecationReason)));return printBlock(t)}function printBlock(e){return e.length!==0?" {\n"+e.join("\n")+"\n}":""}function printArgs(e,t=""){if(e.length===0){return""}if(e.every((e=>!e.description))){return"("+e.map(printInputValue).join(", ")+")"}return"(\n"+e.map(((e,r)=>printDescription(e," "+t,!r)+" "+t+printInputValue(e))).join("\n")+"\n"+t+")"}function printInputValue(e){const t=(0,p.astFromValue)(e.defaultValue,e.type);let r=e.name+": "+String(e.type);if(t){r+=` = ${(0,a.print)(t)}`}return r+printDeprecated(e.deprecationReason)}function printDirective(e){return printDescription(e)+"directive @"+e.name+printArgs(e.args)+(e.isRepeatable?" repeatable":"")+" on "+e.locations.join(" | ")}function printDeprecated(e){if(e==null){return""}if(e!==c.DEFAULT_DEPRECATION_REASON){const t=(0,a.print)({kind:i.Kind.STRING,value:e});return` @deprecated(reason: ${t})`}return" @deprecated"}function printSpecifiedByURL(e){if(e.specifiedByURL==null){return""}const t=(0,a.print)({kind:i.Kind.STRING,value:e.specifiedByURL});return` @specifiedBy(url: ${t})`}function printDescription(e,t="",r=true){const{description:n}=e;if(n==null){return""}const s=(0,a.print)({kind:i.Kind.STRING,value:n,block:(0,o.isPrintableAsBlockString)(n)});const A=t&&!r?"\n"+t:t;return A+s.replace(/\n/g,"\n"+t)+"\n"}},6931:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.separateOperations=separateOperations;var n=r(1123);var s=r(638);function separateOperations(e){const t=[];const r=Object.create(null);for(const s of e.definitions){switch(s.kind){case n.Kind.OPERATION_DEFINITION:t.push(s);break;case n.Kind.FRAGMENT_DEFINITION:r[s.name.value]=collectDependencies(s.selectionSet);break;default:}}const s=Object.create(null);for(const o of t){const t=new Set;for(const e of collectDependencies(o.selectionSet)){collectTransitiveDependencies(t,r,e)}const i=o.name?o.name.value:"";s[i]={kind:n.Kind.DOCUMENT,definitions:e.definitions.filter((e=>e===o||e.kind===n.Kind.FRAGMENT_DEFINITION&&t.has(e.name.value)))}}return s}function collectTransitiveDependencies(e,t,r){if(!e.has(r)){e.add(r);const n=t[r];if(n!==undefined){for(const r of n){collectTransitiveDependencies(e,t,r)}}}}function collectDependencies(e){const t=[];(0,s.visit)(e,{FragmentSpread(e){t.push(e.name.value)}});return t}},7287:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.sortValueNode=sortValueNode;var n=r(3428);var s=r(1123);function sortValueNode(e){switch(e.kind){case s.Kind.OBJECT:return{...e,fields:sortFields(e.fields)};case s.Kind.LIST:return{...e,values:e.values.map(sortValueNode)};case s.Kind.INT:case s.Kind.FLOAT:case s.Kind.STRING:case s.Kind.BOOLEAN:case s.Kind.NULL:case s.Kind.ENUM:case s.Kind.VARIABLE:return e}}function sortFields(e){return e.map((e=>({...e,value:sortValueNode(e.value)}))).sort(((e,t)=>(0,n.naturalCompare)(e.name.value,t.name.value)))}},1096:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.stripIgnoredCharacters=stripIgnoredCharacters;var n=r(7508);var s=r(6897);var o=r(203);var i=r(1743);function stripIgnoredCharacters(e){const t=(0,o.isSource)(e)?e:new o.Source(e);const r=t.body;const a=new s.Lexer(t);let A="";let c=false;while(a.advance().kind!==i.TokenKind.EOF){const e=a.token;const t=e.kind;const o=!(0,s.isPunctuatorTokenKind)(e.kind);if(c){if(o||e.kind===i.TokenKind.SPREAD){A+=" "}}const u=r.slice(e.start,e.end);if(t===i.TokenKind.BLOCK_STRING){A+=(0,n.printBlockString)(e.value,{minimize:true})}else{A+=u}c=o}return A}},6539:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.doTypesOverlap=doTypesOverlap;t.isEqualType=isEqualType;t.isTypeSubTypeOf=isTypeSubTypeOf;var n=r(4169);function isEqualType(e,t){if(e===t){return true}if((0,n.isNonNullType)(e)&&(0,n.isNonNullType)(t)){return isEqualType(e.ofType,t.ofType)}if((0,n.isListType)(e)&&(0,n.isListType)(t)){return isEqualType(e.ofType,t.ofType)}return false}function isTypeSubTypeOf(e,t,r){if(t===r){return true}if((0,n.isNonNullType)(r)){if((0,n.isNonNullType)(t)){return isTypeSubTypeOf(e,t.ofType,r.ofType)}return false}if((0,n.isNonNullType)(t)){return isTypeSubTypeOf(e,t.ofType,r)}if((0,n.isListType)(r)){if((0,n.isListType)(t)){return isTypeSubTypeOf(e,t.ofType,r.ofType)}return false}if((0,n.isListType)(t)){return false}return(0,n.isAbstractType)(r)&&((0,n.isInterfaceType)(t)||(0,n.isObjectType)(t))&&e.isSubType(r,t)}function doTypesOverlap(e,t,r){if(t===r){return true}if((0,n.isAbstractType)(t)){if((0,n.isAbstractType)(r)){return e.getPossibleTypes(t).some((t=>e.isSubType(r,t)))}return e.isSubType(t,r)}if((0,n.isAbstractType)(r)){return e.isSubType(r,t)}return false}},6738:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.typeFromAST=typeFromAST;var n=r(1123);var s=r(4169);function typeFromAST(e,t){switch(t.kind){case n.Kind.LIST_TYPE:{const r=typeFromAST(e,t.type);return r&&new s.GraphQLList(r)}case n.Kind.NON_NULL_TYPE:{const r=typeFromAST(e,t.type);return r&&new s.GraphQLNonNull(r)}case n.Kind.NAMED_TYPE:return e.getType(t.name.value)}}},6495:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.valueFromAST=valueFromAST;var n=r(5742);var s=r(3650);var o=r(7579);var i=r(1123);var a=r(4169);function valueFromAST(e,t,r){if(!e){return}if(e.kind===i.Kind.VARIABLE){const n=e.name.value;if(r==null||r[n]===undefined){return}const s=r[n];if(s===null&&(0,a.isNonNullType)(t)){return}return s}if((0,a.isNonNullType)(t)){if(e.kind===i.Kind.NULL){return}return valueFromAST(e,t.ofType,r)}if(e.kind===i.Kind.NULL){return null}if((0,a.isListType)(t)){const n=t.ofType;if(e.kind===i.Kind.LIST){const t=[];for(const s of e.values){if(isMissingVariable(s,r)){if((0,a.isNonNullType)(n)){return}t.push(null)}else{const e=valueFromAST(s,n,r);if(e===undefined){return}t.push(e)}}return t}const s=valueFromAST(e,n,r);if(s===undefined){return}return[s]}if((0,a.isInputObjectType)(t)){if(e.kind!==i.Kind.OBJECT){return}const n=Object.create(null);const s=(0,o.keyMap)(e.fields,(e=>e.name.value));for(const e of Object.values(t.getFields())){const t=s[e.name];if(!t||isMissingVariable(t.value,r)){if(e.defaultValue!==undefined){n[e.name]=e.defaultValue}else if((0,a.isNonNullType)(e.type)){return}continue}const o=valueFromAST(t.value,e.type,r);if(o===undefined){return}n[e.name]=o}if(t.isOneOf){const e=Object.keys(n);if(e.length!==1){return}if(n[e[0]]===null){return}}return n}if((0,a.isLeafType)(t)){let n;try{n=t.parseLiteral(e,r)}catch(e){return}if(n===undefined){return}return n}false||(0,s.invariant)(false,"Unexpected input type: "+(0,n.inspect)(t))}function isMissingVariable(e,t){return e.kind===i.Kind.VARIABLE&&(t==null||t[e.name.value]===undefined)}},5470:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.valueFromASTUntyped=valueFromASTUntyped;var n=r(3166);var s=r(1123);function valueFromASTUntyped(e,t){switch(e.kind){case s.Kind.NULL:return null;case s.Kind.INT:return parseInt(e.value,10);case s.Kind.FLOAT:return parseFloat(e.value);case s.Kind.STRING:case s.Kind.ENUM:case s.Kind.BOOLEAN:return e.value;case s.Kind.LIST:return e.values.map((e=>valueFromASTUntyped(e,t)));case s.Kind.OBJECT:return(0,n.keyValMap)(e.fields,(e=>e.name.value),(e=>valueFromASTUntyped(e.value,t)));case s.Kind.VARIABLE:return t===null||t===void 0?void 0:t[e.name.value]}}},8139:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValidationContext=t.SDLValidationContext=t.ASTValidationContext=void 0;var n=r(1123);var s=r(638);var o=r(5e3);class ASTValidationContext{constructor(e,t){this._ast=e;this._fragments=undefined;this._fragmentSpreads=new Map;this._recursivelyReferencedFragments=new Map;this._onError=t}get[Symbol.toStringTag](){return"ASTValidationContext"}reportError(e){this._onError(e)}getDocument(){return this._ast}getFragment(e){let t;if(this._fragments){t=this._fragments}else{t=Object.create(null);for(const e of this.getDocument().definitions){if(e.kind===n.Kind.FRAGMENT_DEFINITION){t[e.name.value]=e}}this._fragments=t}return t[e]}getFragmentSpreads(e){let t=this._fragmentSpreads.get(e);if(!t){t=[];const r=[e];let s;while(s=r.pop()){for(const e of s.selections){if(e.kind===n.Kind.FRAGMENT_SPREAD){t.push(e)}else if(e.selectionSet){r.push(e.selectionSet)}}}this._fragmentSpreads.set(e,t)}return t}getRecursivelyReferencedFragments(e){let t=this._recursivelyReferencedFragments.get(e);if(!t){t=[];const r=Object.create(null);const n=[e.selectionSet];let s;while(s=n.pop()){for(const e of this.getFragmentSpreads(s)){const s=e.name.value;if(r[s]!==true){r[s]=true;const e=this.getFragment(s);if(e){t.push(e);n.push(e.selectionSet)}}}}this._recursivelyReferencedFragments.set(e,t)}return t}}t.ASTValidationContext=ASTValidationContext;class SDLValidationContext extends ASTValidationContext{constructor(e,t,r){super(e,r);this._schema=t}get[Symbol.toStringTag](){return"SDLValidationContext"}getSchema(){return this._schema}}t.SDLValidationContext=SDLValidationContext;class ValidationContext extends ASTValidationContext{constructor(e,t,r,n){super(t,n);this._schema=e;this._typeInfo=r;this._variableUsages=new Map;this._recursiveVariableUsages=new Map}get[Symbol.toStringTag](){return"ValidationContext"}getSchema(){return this._schema}getVariableUsages(e){let t=this._variableUsages.get(e);if(!t){const r=[];const n=new o.TypeInfo(this._schema);(0,s.visit)(e,(0,o.visitWithTypeInfo)(n,{VariableDefinition:()=>false,Variable(e){r.push({node:e,type:n.getInputType(),defaultValue:n.getDefaultValue()})}}));t=r;this._variableUsages.set(e,t)}return t}getRecursiveVariableUsages(e){let t=this._recursiveVariableUsages.get(e);if(!t){t=this.getVariableUsages(e);for(const r of this.getRecursivelyReferencedFragments(e)){t=t.concat(this.getVariableUsages(r))}this._recursiveVariableUsages.set(e,t)}return t}getType(){return this._typeInfo.getType()}getParentType(){return this._typeInfo.getParentType()}getInputType(){return this._typeInfo.getInputType()}getParentInputType(){return this._typeInfo.getParentInputType()}getFieldDef(){return this._typeInfo.getFieldDef()}getDirective(){return this._typeInfo.getDirective()}getArgument(){return this._typeInfo.getArgument()}getEnumValue(){return this._typeInfo.getEnumValue()}}t.ValidationContext=ValidationContext},7973:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"ExecutableDefinitionsRule",{enumerable:true,get:function(){return i.ExecutableDefinitionsRule}});Object.defineProperty(t,"FieldsOnCorrectTypeRule",{enumerable:true,get:function(){return a.FieldsOnCorrectTypeRule}});Object.defineProperty(t,"FragmentsOnCompositeTypesRule",{enumerable:true,get:function(){return A.FragmentsOnCompositeTypesRule}});Object.defineProperty(t,"KnownArgumentNamesRule",{enumerable:true,get:function(){return c.KnownArgumentNamesRule}});Object.defineProperty(t,"KnownDirectivesRule",{enumerable:true,get:function(){return u.KnownDirectivesRule}});Object.defineProperty(t,"KnownFragmentNamesRule",{enumerable:true,get:function(){return l.KnownFragmentNamesRule}});Object.defineProperty(t,"KnownTypeNamesRule",{enumerable:true,get:function(){return p.KnownTypeNamesRule}});Object.defineProperty(t,"LoneAnonymousOperationRule",{enumerable:true,get:function(){return d.LoneAnonymousOperationRule}});Object.defineProperty(t,"LoneSchemaDefinitionRule",{enumerable:true,get:function(){return N.LoneSchemaDefinitionRule}});Object.defineProperty(t,"MaxIntrospectionDepthRule",{enumerable:true,get:function(){return F.MaxIntrospectionDepthRule}});Object.defineProperty(t,"NoDeprecatedCustomRule",{enumerable:true,get:function(){return V.NoDeprecatedCustomRule}});Object.defineProperty(t,"NoFragmentCyclesRule",{enumerable:true,get:function(){return g.NoFragmentCyclesRule}});Object.defineProperty(t,"NoSchemaIntrospectionCustomRule",{enumerable:true,get:function(){return j.NoSchemaIntrospectionCustomRule}});Object.defineProperty(t,"NoUndefinedVariablesRule",{enumerable:true,get:function(){return h.NoUndefinedVariablesRule}});Object.defineProperty(t,"NoUnusedFragmentsRule",{enumerable:true,get:function(){return E.NoUnusedFragmentsRule}});Object.defineProperty(t,"NoUnusedVariablesRule",{enumerable:true,get:function(){return m.NoUnusedVariablesRule}});Object.defineProperty(t,"OverlappingFieldsCanBeMergedRule",{enumerable:true,get:function(){return I.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(t,"PossibleFragmentSpreadsRule",{enumerable:true,get:function(){return y.PossibleFragmentSpreadsRule}});Object.defineProperty(t,"PossibleTypeExtensionsRule",{enumerable:true,get:function(){return x.PossibleTypeExtensionsRule}});Object.defineProperty(t,"ProvidedRequiredArgumentsRule",{enumerable:true,get:function(){return C.ProvidedRequiredArgumentsRule}});Object.defineProperty(t,"ScalarLeafsRule",{enumerable:true,get:function(){return Q.ScalarLeafsRule}});Object.defineProperty(t,"SingleFieldSubscriptionsRule",{enumerable:true,get:function(){return B.SingleFieldSubscriptionsRule}});Object.defineProperty(t,"UniqueArgumentDefinitionNamesRule",{enumerable:true,get:function(){return P.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(t,"UniqueArgumentNamesRule",{enumerable:true,get:function(){return b.UniqueArgumentNamesRule}});Object.defineProperty(t,"UniqueDirectiveNamesRule",{enumerable:true,get:function(){return M.UniqueDirectiveNamesRule}});Object.defineProperty(t,"UniqueDirectivesPerLocationRule",{enumerable:true,get:function(){return T.UniqueDirectivesPerLocationRule}});Object.defineProperty(t,"UniqueEnumValueNamesRule",{enumerable:true,get:function(){return U.UniqueEnumValueNamesRule}});Object.defineProperty(t,"UniqueFieldDefinitionNamesRule",{enumerable:true,get:function(){return G.UniqueFieldDefinitionNamesRule}});Object.defineProperty(t,"UniqueFragmentNamesRule",{enumerable:true,get:function(){return w.UniqueFragmentNamesRule}});Object.defineProperty(t,"UniqueInputFieldNamesRule",{enumerable:true,get:function(){return v.UniqueInputFieldNamesRule}});Object.defineProperty(t,"UniqueOperationNamesRule",{enumerable:true,get:function(){return R.UniqueOperationNamesRule}});Object.defineProperty(t,"UniqueOperationTypesRule",{enumerable:true,get:function(){return O.UniqueOperationTypesRule}});Object.defineProperty(t,"UniqueTypeNamesRule",{enumerable:true,get:function(){return L.UniqueTypeNamesRule}});Object.defineProperty(t,"UniqueVariableNamesRule",{enumerable:true,get:function(){return k.UniqueVariableNamesRule}});Object.defineProperty(t,"ValidationContext",{enumerable:true,get:function(){return s.ValidationContext}});Object.defineProperty(t,"ValuesOfCorrectTypeRule",{enumerable:true,get:function(){return D.ValuesOfCorrectTypeRule}});Object.defineProperty(t,"VariablesAreInputTypesRule",{enumerable:true,get:function(){return _.VariablesAreInputTypesRule}});Object.defineProperty(t,"VariablesInAllowedPositionRule",{enumerable:true,get:function(){return S.VariablesInAllowedPositionRule}});Object.defineProperty(t,"recommendedRules",{enumerable:true,get:function(){return o.recommendedRules}});Object.defineProperty(t,"specifiedRules",{enumerable:true,get:function(){return o.specifiedRules}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return n.validate}});var n=r(7063);var s=r(8139);var o=r(916);var i=r(5401);var a=r(2153);var A=r(643);var c=r(7663);var u=r(5866);var l=r(5958);var p=r(1574);var d=r(1677);var g=r(2579);var h=r(8873);var E=r(3693);var m=r(9489);var I=r(1646);var y=r(4550);var C=r(1145);var Q=r(4754);var B=r(1705);var b=r(2995);var T=r(9412);var w=r(1914);var v=r(9082);var R=r(4403);var k=r(7837);var D=r(1408);var _=r(6187);var S=r(4186);var F=r(8749);var N=r(2553);var O=r(4234);var L=r(2058);var U=r(3062);var G=r(87);var P=r(6496);var M=r(9879);var x=r(6058);var V=r(5910);var j=r(6787)},5401:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ExecutableDefinitionsRule=ExecutableDefinitionsRule;var n=r(5939);var s=r(1123);var o=r(5480);function ExecutableDefinitionsRule(e){return{Document(t){for(const r of t.definitions){if(!(0,o.isExecutableDefinitionNode)(r)){const t=r.kind===s.Kind.SCHEMA_DEFINITION||r.kind===s.Kind.SCHEMA_EXTENSION?"schema":'"'+r.name.value+'"';e.reportError(new n.GraphQLError(`The ${t} definition is not executable.`,{nodes:r}))}}return false}}}},2153:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.FieldsOnCorrectTypeRule=FieldsOnCorrectTypeRule;var n=r(1353);var s=r(3428);var o=r(7904);var i=r(5939);var a=r(4169);function FieldsOnCorrectTypeRule(e){return{Field(t){const r=e.getParentType();if(r){const s=e.getFieldDef();if(!s){const s=e.getSchema();const o=t.name.value;let a=(0,n.didYouMean)("to use an inline fragment on",getSuggestedTypeNames(s,r,o));if(a===""){a=(0,n.didYouMean)(getSuggestedFieldNames(r,o))}e.reportError(new i.GraphQLError(`Cannot query field "${o}" on type "${r.name}".`+a,{nodes:t}))}}}}}function getSuggestedTypeNames(e,t,r){if(!(0,a.isAbstractType)(t)){return[]}const n=new Set;const o=Object.create(null);for(const s of e.getPossibleTypes(t)){if(!s.getFields()[r]){continue}n.add(s);o[s.name]=1;for(const e of s.getInterfaces()){var i;if(!e.getFields()[r]){continue}n.add(e);o[e.name]=((i=o[e.name])!==null&&i!==void 0?i:0)+1}}return[...n].sort(((t,r)=>{const n=o[r.name]-o[t.name];if(n!==0){return n}if((0,a.isInterfaceType)(t)&&e.isSubType(t,r)){return-1}if((0,a.isInterfaceType)(r)&&e.isSubType(r,t)){return 1}return(0,s.naturalCompare)(t.name,r.name)})).map((e=>e.name))}function getSuggestedFieldNames(e,t){if((0,a.isObjectType)(e)||(0,a.isInterfaceType)(e)){const r=Object.keys(e.getFields());return(0,o.suggestionList)(t,r)}return[]}},643:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.FragmentsOnCompositeTypesRule=FragmentsOnCompositeTypesRule;var n=r(5939);var s=r(9936);var o=r(4169);var i=r(6738);function FragmentsOnCompositeTypesRule(e){return{InlineFragment(t){const r=t.typeCondition;if(r){const t=(0,i.typeFromAST)(e.getSchema(),r);if(t&&!(0,o.isCompositeType)(t)){const t=(0,s.print)(r);e.reportError(new n.GraphQLError(`Fragment cannot condition on non composite type "${t}".`,{nodes:r}))}}},FragmentDefinition(t){const r=(0,i.typeFromAST)(e.getSchema(),t.typeCondition);if(r&&!(0,o.isCompositeType)(r)){const r=(0,s.print)(t.typeCondition);e.reportError(new n.GraphQLError(`Fragment "${t.name.value}" cannot condition on non composite type "${r}".`,{nodes:t.typeCondition}))}}}}},7663:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownArgumentNamesOnDirectivesRule=KnownArgumentNamesOnDirectivesRule;t.KnownArgumentNamesRule=KnownArgumentNamesRule;var n=r(1353);var s=r(7904);var o=r(5939);var i=r(1123);var a=r(1058);function KnownArgumentNamesRule(e){return{...KnownArgumentNamesOnDirectivesRule(e),Argument(t){const r=e.getArgument();const i=e.getFieldDef();const a=e.getParentType();if(!r&&i&&a){const r=t.name.value;const A=i.args.map((e=>e.name));const c=(0,s.suggestionList)(r,A);e.reportError(new o.GraphQLError(`Unknown argument "${r}" on field "${a.name}.${i.name}".`+(0,n.didYouMean)(c),{nodes:t}))}}}}function KnownArgumentNamesOnDirectivesRule(e){const t=Object.create(null);const r=e.getSchema();const A=r?r.getDirectives():a.specifiedDirectives;for(const e of A){t[e.name]=e.args.map((e=>e.name))}const c=e.getDocument().definitions;for(const e of c){if(e.kind===i.Kind.DIRECTIVE_DEFINITION){var u;const r=(u=e.arguments)!==null&&u!==void 0?u:[];t[e.name.value]=r.map((e=>e.name.value))}}return{Directive(r){const i=r.name.value;const a=t[i];if(r.arguments&&a){for(const t of r.arguments){const r=t.name.value;if(!a.includes(r)){const A=(0,s.suggestionList)(r,a);e.reportError(new o.GraphQLError(`Unknown argument "${r}" on directive "@${i}".`+(0,n.didYouMean)(A),{nodes:t}))}}}return false}}}},5866:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownDirectivesRule=KnownDirectivesRule;var n=r(5742);var s=r(3650);var o=r(5939);var i=r(2740);var a=r(2582);var A=r(1123);var c=r(1058);function KnownDirectivesRule(e){const t=Object.create(null);const r=e.getSchema();const n=r?r.getDirectives():c.specifiedDirectives;for(const e of n){t[e.name]=e.locations}const s=e.getDocument().definitions;for(const e of s){if(e.kind===A.Kind.DIRECTIVE_DEFINITION){t[e.name.value]=e.locations.map((e=>e.value))}}return{Directive(r,n,s,i,a){const A=r.name.value;const c=t[A];if(!c){e.reportError(new o.GraphQLError(`Unknown directive "@${A}".`,{nodes:r}));return}const u=getDirectiveLocationForASTPath(a);if(u&&!c.includes(u)){e.reportError(new o.GraphQLError(`Directive "@${A}" may not be used on ${u}.`,{nodes:r}))}}}}function getDirectiveLocationForASTPath(e){const t=e[e.length-1];"kind"in t||(0,s.invariant)(false);switch(t.kind){case A.Kind.OPERATION_DEFINITION:return getDirectiveLocationForOperation(t.operation);case A.Kind.FIELD:return a.DirectiveLocation.FIELD;case A.Kind.FRAGMENT_SPREAD:return a.DirectiveLocation.FRAGMENT_SPREAD;case A.Kind.INLINE_FRAGMENT:return a.DirectiveLocation.INLINE_FRAGMENT;case A.Kind.FRAGMENT_DEFINITION:return a.DirectiveLocation.FRAGMENT_DEFINITION;case A.Kind.VARIABLE_DEFINITION:return a.DirectiveLocation.VARIABLE_DEFINITION;case A.Kind.SCHEMA_DEFINITION:case A.Kind.SCHEMA_EXTENSION:return a.DirectiveLocation.SCHEMA;case A.Kind.SCALAR_TYPE_DEFINITION:case A.Kind.SCALAR_TYPE_EXTENSION:return a.DirectiveLocation.SCALAR;case A.Kind.OBJECT_TYPE_DEFINITION:case A.Kind.OBJECT_TYPE_EXTENSION:return a.DirectiveLocation.OBJECT;case A.Kind.FIELD_DEFINITION:return a.DirectiveLocation.FIELD_DEFINITION;case A.Kind.INTERFACE_TYPE_DEFINITION:case A.Kind.INTERFACE_TYPE_EXTENSION:return a.DirectiveLocation.INTERFACE;case A.Kind.UNION_TYPE_DEFINITION:case A.Kind.UNION_TYPE_EXTENSION:return a.DirectiveLocation.UNION;case A.Kind.ENUM_TYPE_DEFINITION:case A.Kind.ENUM_TYPE_EXTENSION:return a.DirectiveLocation.ENUM;case A.Kind.ENUM_VALUE_DEFINITION:return a.DirectiveLocation.ENUM_VALUE;case A.Kind.INPUT_OBJECT_TYPE_DEFINITION:case A.Kind.INPUT_OBJECT_TYPE_EXTENSION:return a.DirectiveLocation.INPUT_OBJECT;case A.Kind.INPUT_VALUE_DEFINITION:{const t=e[e.length-3];"kind"in t||(0,s.invariant)(false);return t.kind===A.Kind.INPUT_OBJECT_TYPE_DEFINITION?a.DirectiveLocation.INPUT_FIELD_DEFINITION:a.DirectiveLocation.ARGUMENT_DEFINITION}default:false||(0,s.invariant)(false,"Unexpected kind: "+(0,n.inspect)(t.kind))}}function getDirectiveLocationForOperation(e){switch(e){case i.OperationTypeNode.QUERY:return a.DirectiveLocation.QUERY;case i.OperationTypeNode.MUTATION:return a.DirectiveLocation.MUTATION;case i.OperationTypeNode.SUBSCRIPTION:return a.DirectiveLocation.SUBSCRIPTION}}},5958:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownFragmentNamesRule=KnownFragmentNamesRule;var n=r(5939);function KnownFragmentNamesRule(e){return{FragmentSpread(t){const r=t.name.value;const s=e.getFragment(r);if(!s){e.reportError(new n.GraphQLError(`Unknown fragment "${r}".`,{nodes:t.name}))}}}}},1574:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.KnownTypeNamesRule=KnownTypeNamesRule;var n=r(1353);var s=r(7904);var o=r(5939);var i=r(5480);var a=r(317);var A=r(3571);function KnownTypeNamesRule(e){const t=e.getSchema();const r=t?t.getTypeMap():Object.create(null);const a=Object.create(null);for(const t of e.getDocument().definitions){if((0,i.isTypeDefinitionNode)(t)){a[t.name.value]=true}}const A=[...Object.keys(r),...Object.keys(a)];return{NamedType(t,i,u,l,p){const d=t.name.value;if(!r[d]&&!a[d]){var g;const r=(g=p[2])!==null&&g!==void 0?g:u;const i=r!=null&&isSDLNode(r);if(i&&c.includes(d)){return}const a=(0,s.suggestionList)(d,i?c.concat(A):A);e.reportError(new o.GraphQLError(`Unknown type "${d}".`+(0,n.didYouMean)(a),{nodes:t}))}}}}const c=[...A.specifiedScalarTypes,...a.introspectionTypes].map((e=>e.name));function isSDLNode(e){return"kind"in e&&((0,i.isTypeSystemDefinitionNode)(e)||(0,i.isTypeSystemExtensionNode)(e))}},1677:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.LoneAnonymousOperationRule=LoneAnonymousOperationRule;var n=r(5939);var s=r(1123);function LoneAnonymousOperationRule(e){let t=0;return{Document(e){t=e.definitions.filter((e=>e.kind===s.Kind.OPERATION_DEFINITION)).length},OperationDefinition(r){if(!r.name&&t>1){e.reportError(new n.GraphQLError("This anonymous operation must be the only defined operation.",{nodes:r}))}}}}},2553:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.LoneSchemaDefinitionRule=LoneSchemaDefinitionRule;var n=r(5939);function LoneSchemaDefinitionRule(e){var t,r,s;const o=e.getSchema();const i=(t=(r=(s=o===null||o===void 0?void 0:o.astNode)!==null&&s!==void 0?s:o===null||o===void 0?void 0:o.getQueryType())!==null&&r!==void 0?r:o===null||o===void 0?void 0:o.getMutationType())!==null&&t!==void 0?t:o===null||o===void 0?void 0:o.getSubscriptionType();let a=0;return{SchemaDefinition(t){if(i){e.reportError(new n.GraphQLError("Cannot define a new schema within a schema extension.",{nodes:t}));return}if(a>0){e.reportError(new n.GraphQLError("Must provide only one schema definition.",{nodes:t}))}++a}}}},8749:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.MaxIntrospectionDepthRule=MaxIntrospectionDepthRule;var n=r(5939);var s=r(1123);const o=3;function MaxIntrospectionDepthRule(e){function checkDepth(t,r=Object.create(null),n=0){if(t.kind===s.Kind.FRAGMENT_SPREAD){const s=t.name.value;if(r[s]===true){return false}const o=e.getFragment(s);if(!o){return false}try{r[s]=true;return checkDepth(o,r,n)}finally{r[s]=undefined}}if(t.kind===s.Kind.FIELD&&(t.name.value==="fields"||t.name.value==="interfaces"||t.name.value==="possibleTypes"||t.name.value==="inputFields")){n++;if(n>=o){return true}}if("selectionSet"in t&&t.selectionSet){for(const e of t.selectionSet.selections){if(checkDepth(e,r,n)){return true}}}return false}return{Field(t){if(t.name.value==="__schema"||t.name.value==="__type"){if(checkDepth(t)){e.reportError(new n.GraphQLError("Maximum introspection depth exceeded",{nodes:[t]}));return false}}}}}},2579:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoFragmentCyclesRule=NoFragmentCyclesRule;var n=r(5939);function NoFragmentCyclesRule(e){const t=Object.create(null);const r=[];const s=Object.create(null);return{OperationDefinition:()=>false,FragmentDefinition(e){detectCycleRecursive(e);return false}};function detectCycleRecursive(o){if(t[o.name.value]){return}const i=o.name.value;t[i]=true;const a=e.getFragmentSpreads(o.selectionSet);if(a.length===0){return}s[i]=r.length;for(const t of a){const o=t.name.value;const i=s[o];r.push(t);if(i===undefined){const t=e.getFragment(o);if(t){detectCycleRecursive(t)}}else{const t=r.slice(i);const s=t.slice(0,-1).map((e=>'"'+e.name.value+'"')).join(", ");e.reportError(new n.GraphQLError(`Cannot spread fragment "${o}" within itself`+(s!==""?` via ${s}.`:"."),{nodes:t}))}r.pop()}s[i]=undefined}}},8873:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoUndefinedVariablesRule=NoUndefinedVariablesRule;var n=r(5939);function NoUndefinedVariablesRule(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(r){const s=e.getRecursiveVariableUsages(r);for(const{node:o}of s){const s=o.name.value;if(t[s]!==true){e.reportError(new n.GraphQLError(r.name?`Variable "$${s}" is not defined by operation "${r.name.value}".`:`Variable "$${s}" is not defined.`,{nodes:[o,r]}))}}}},VariableDefinition(e){t[e.variable.name.value]=true}}}},3693:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoUnusedFragmentsRule=NoUnusedFragmentsRule;var n=r(5939);function NoUnusedFragmentsRule(e){const t=[];const r=[];return{OperationDefinition(e){t.push(e);return false},FragmentDefinition(e){r.push(e);return false},Document:{leave(){const s=Object.create(null);for(const r of t){for(const t of e.getRecursivelyReferencedFragments(r)){s[t.name.value]=true}}for(const t of r){const r=t.name.value;if(s[r]!==true){e.reportError(new n.GraphQLError(`Fragment "${r}" is never used.`,{nodes:t}))}}}}}}},9489:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoUnusedVariablesRule=NoUnusedVariablesRule;var n=r(5939);function NoUnusedVariablesRule(e){let t=[];return{OperationDefinition:{enter(){t=[]},leave(r){const s=Object.create(null);const o=e.getRecursiveVariableUsages(r);for(const{node:e}of o){s[e.name.value]=true}for(const o of t){const t=o.variable.name.value;if(s[t]!==true){e.reportError(new n.GraphQLError(r.name?`Variable "$${t}" is never used in operation "${r.name.value}".`:`Variable "$${t}" is never used.`,{nodes:o}))}}}},VariableDefinition(e){t.push(e)}}}},1646:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.OverlappingFieldsCanBeMergedRule=OverlappingFieldsCanBeMergedRule;var n=r(5742);var s=r(5939);var o=r(1123);var i=r(9936);var a=r(4169);var A=r(7287);var c=r(6738);function reasonMessage(e){if(Array.isArray(e)){return e.map((([e,t])=>`subfields "${e}" conflict because `+reasonMessage(t))).join(" and ")}return e}function OverlappingFieldsCanBeMergedRule(e){const t=new PairSet;const r=new Map;return{SelectionSet(n){const o=findConflictsWithinSelectionSet(e,r,t,e.getParentType(),n);for(const[[t,r],n,i]of o){const o=reasonMessage(r);e.reportError(new s.GraphQLError(`Fields "${t}" conflict because ${o}. Use different aliases on the fields to fetch both if this was intentional.`,{nodes:n.concat(i)}))}}}}function findConflictsWithinSelectionSet(e,t,r,n,s){const o=[];const[i,a]=getFieldsAndFragmentNames(e,t,n,s);collectConflictsWithin(e,o,t,r,i);if(a.length!==0){for(let n=0;n1){for(let s=0;s[e.value,t])));return r.every((e=>{const t=e.value;const r=s.get(e.name.value);if(r===undefined){return false}return stringifyValue(t)===stringifyValue(r)}))}function stringifyValue(e){return(0,i.print)((0,A.sortValueNode)(e))}function doTypesConflict(e,t){if((0,a.isListType)(e)){return(0,a.isListType)(t)?doTypesConflict(e.ofType,t.ofType):true}if((0,a.isListType)(t)){return true}if((0,a.isNonNullType)(e)){return(0,a.isNonNullType)(t)?doTypesConflict(e.ofType,t.ofType):true}if((0,a.isNonNullType)(t)){return true}if((0,a.isLeafType)(e)||(0,a.isLeafType)(t)){return e!==t}return false}function getFieldsAndFragmentNames(e,t,r,n){const s=t.get(n);if(s){return s}const o=Object.create(null);const i=Object.create(null);_collectFieldsAndFragmentNames(e,r,n,o,i);const a=[o,Object.keys(i)];t.set(n,a);return a}function getReferencedFieldsAndFragmentNames(e,t,r){const n=t.get(r.selectionSet);if(n){return n}const s=(0,c.typeFromAST)(e.getSchema(),r.typeCondition);return getFieldsAndFragmentNames(e,t,s,r.selectionSet)}function _collectFieldsAndFragmentNames(e,t,r,n,s){for(const i of r.selections){switch(i.kind){case o.Kind.FIELD:{const e=i.name.value;let r;if((0,a.isObjectType)(t)||(0,a.isInterfaceType)(t)){r=t.getFields()[e]}const s=i.alias?i.alias.value:e;if(!n[s]){n[s]=[]}n[s].push([t,i,r]);break}case o.Kind.FRAGMENT_SPREAD:s[i.name.value]=true;break;case o.Kind.INLINE_FRAGMENT:{const r=i.typeCondition;const o=r?(0,c.typeFromAST)(e.getSchema(),r):t;_collectFieldsAndFragmentNames(e,o,i.selectionSet,n,s);break}}}}function subfieldConflicts(e,t,r,n){if(e.length>0){return[[t,e.map((([e])=>e))],[r,...e.map((([,e])=>e)).flat()],[n,...e.map((([,,e])=>e)).flat()]]}}class PairSet{constructor(){this._data=new Map}has(e,t,r){var n;const[s,o]=e{Object.defineProperty(t,"__esModule",{value:true});t.PossibleFragmentSpreadsRule=PossibleFragmentSpreadsRule;var n=r(5742);var s=r(5939);var o=r(4169);var i=r(6539);var a=r(6738);function PossibleFragmentSpreadsRule(e){return{InlineFragment(t){const r=e.getType();const a=e.getParentType();if((0,o.isCompositeType)(r)&&(0,o.isCompositeType)(a)&&!(0,i.doTypesOverlap)(e.getSchema(),r,a)){const o=(0,n.inspect)(a);const i=(0,n.inspect)(r);e.reportError(new s.GraphQLError(`Fragment cannot be spread here as objects of type "${o}" can never be of type "${i}".`,{nodes:t}))}},FragmentSpread(t){const r=t.name.value;const o=getFragmentType(e,r);const a=e.getParentType();if(o&&a&&!(0,i.doTypesOverlap)(e.getSchema(),o,a)){const i=(0,n.inspect)(a);const A=(0,n.inspect)(o);e.reportError(new s.GraphQLError(`Fragment "${r}" cannot be spread here as objects of type "${i}" can never be of type "${A}".`,{nodes:t}))}}}}function getFragmentType(e,t){const r=e.getFragment(t);if(r){const t=(0,a.typeFromAST)(e.getSchema(),r.typeCondition);if((0,o.isCompositeType)(t)){return t}}}},6058:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.PossibleTypeExtensionsRule=PossibleTypeExtensionsRule;var n=r(1353);var s=r(5742);var o=r(3650);var i=r(7904);var a=r(5939);var A=r(1123);var c=r(5480);var u=r(4169);function PossibleTypeExtensionsRule(e){const t=e.getSchema();const r=Object.create(null);for(const t of e.getDocument().definitions){if((0,c.isTypeDefinitionNode)(t)){r[t.name.value]=t}}return{ScalarTypeExtension:checkExtension,ObjectTypeExtension:checkExtension,InterfaceTypeExtension:checkExtension,UnionTypeExtension:checkExtension,EnumTypeExtension:checkExtension,InputObjectTypeExtension:checkExtension};function checkExtension(s){const o=s.name.value;const A=r[o];const c=t===null||t===void 0?void 0:t.getType(o);let u;if(A){u=l[A.kind]}else if(c){u=typeToExtKind(c)}if(u){if(u!==s.kind){const t=extensionKindToTypeName(s.kind);e.reportError(new a.GraphQLError(`Cannot extend non-${t} type "${o}".`,{nodes:A?[A,s]:s}))}}else{const A=Object.keys({...r,...t===null||t===void 0?void 0:t.getTypeMap()});const c=(0,i.suggestionList)(o,A);e.reportError(new a.GraphQLError(`Cannot extend type "${o}" because it is not defined.`+(0,n.didYouMean)(c),{nodes:s.name}))}}}const l={[A.Kind.SCALAR_TYPE_DEFINITION]:A.Kind.SCALAR_TYPE_EXTENSION,[A.Kind.OBJECT_TYPE_DEFINITION]:A.Kind.OBJECT_TYPE_EXTENSION,[A.Kind.INTERFACE_TYPE_DEFINITION]:A.Kind.INTERFACE_TYPE_EXTENSION,[A.Kind.UNION_TYPE_DEFINITION]:A.Kind.UNION_TYPE_EXTENSION,[A.Kind.ENUM_TYPE_DEFINITION]:A.Kind.ENUM_TYPE_EXTENSION,[A.Kind.INPUT_OBJECT_TYPE_DEFINITION]:A.Kind.INPUT_OBJECT_TYPE_EXTENSION};function typeToExtKind(e){if((0,u.isScalarType)(e)){return A.Kind.SCALAR_TYPE_EXTENSION}if((0,u.isObjectType)(e)){return A.Kind.OBJECT_TYPE_EXTENSION}if((0,u.isInterfaceType)(e)){return A.Kind.INTERFACE_TYPE_EXTENSION}if((0,u.isUnionType)(e)){return A.Kind.UNION_TYPE_EXTENSION}if((0,u.isEnumType)(e)){return A.Kind.ENUM_TYPE_EXTENSION}if((0,u.isInputObjectType)(e)){return A.Kind.INPUT_OBJECT_TYPE_EXTENSION}false||(0,o.invariant)(false,"Unexpected type: "+(0,s.inspect)(e))}function extensionKindToTypeName(e){switch(e){case A.Kind.SCALAR_TYPE_EXTENSION:return"scalar";case A.Kind.OBJECT_TYPE_EXTENSION:return"object";case A.Kind.INTERFACE_TYPE_EXTENSION:return"interface";case A.Kind.UNION_TYPE_EXTENSION:return"union";case A.Kind.ENUM_TYPE_EXTENSION:return"enum";case A.Kind.INPUT_OBJECT_TYPE_EXTENSION:return"input object";default:false||(0,o.invariant)(false,"Unexpected kind: "+(0,s.inspect)(e))}}},1145:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ProvidedRequiredArgumentsOnDirectivesRule=ProvidedRequiredArgumentsOnDirectivesRule;t.ProvidedRequiredArgumentsRule=ProvidedRequiredArgumentsRule;var n=r(5742);var s=r(7579);var o=r(5939);var i=r(1123);var a=r(9936);var A=r(4169);var c=r(1058);function ProvidedRequiredArgumentsRule(e){return{...ProvidedRequiredArgumentsOnDirectivesRule(e),Field:{leave(t){var r;const s=e.getFieldDef();if(!s){return false}const i=new Set((r=t.arguments)===null||r===void 0?void 0:r.map((e=>e.name.value)));for(const r of s.args){if(!i.has(r.name)&&(0,A.isRequiredArgument)(r)){const i=(0,n.inspect)(r.type);e.reportError(new o.GraphQLError(`Field "${s.name}" argument "${r.name}" of type "${i}" is required, but it was not provided.`,{nodes:t}))}}}}}}function ProvidedRequiredArgumentsOnDirectivesRule(e){var t;const r=Object.create(null);const u=e.getSchema();const l=(t=u===null||u===void 0?void 0:u.getDirectives())!==null&&t!==void 0?t:c.specifiedDirectives;for(const e of l){r[e.name]=(0,s.keyMap)(e.args.filter(A.isRequiredArgument),(e=>e.name))}const p=e.getDocument().definitions;for(const e of p){if(e.kind===i.Kind.DIRECTIVE_DEFINITION){var d;const t=(d=e.arguments)!==null&&d!==void 0?d:[];r[e.name.value]=(0,s.keyMap)(t.filter(isRequiredArgumentNode),(e=>e.name.value))}}return{Directive:{leave(t){const s=t.name.value;const i=r[s];if(i){var c;const r=(c=t.arguments)!==null&&c!==void 0?c:[];const u=new Set(r.map((e=>e.name.value)));for(const[r,c]of Object.entries(i)){if(!u.has(r)){const i=(0,A.isType)(c.type)?(0,n.inspect)(c.type):(0,a.print)(c.type);e.reportError(new o.GraphQLError(`Directive "@${s}" argument "${r}" of type "${i}" is required, but it was not provided.`,{nodes:t}))}}}}}}}function isRequiredArgumentNode(e){return e.type.kind===i.Kind.NON_NULL_TYPE&&e.defaultValue==null}},4754:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ScalarLeafsRule=ScalarLeafsRule;var n=r(5742);var s=r(5939);var o=r(4169);function ScalarLeafsRule(e){return{Field(t){const r=e.getType();const i=t.selectionSet;if(r){if((0,o.isLeafType)((0,o.getNamedType)(r))){if(i){const o=t.name.value;const a=(0,n.inspect)(r);e.reportError(new s.GraphQLError(`Field "${o}" must not have a selection since type "${a}" has no subfields.`,{nodes:i}))}}else if(!i){const o=t.name.value;const i=(0,n.inspect)(r);e.reportError(new s.GraphQLError(`Field "${o}" of type "${i}" must have a selection of subfields. Did you mean "${o} { ... }"?`,{nodes:t}))}}}}}},1705:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.SingleFieldSubscriptionsRule=SingleFieldSubscriptionsRule;var n=r(5939);var s=r(1123);var o=r(7611);function SingleFieldSubscriptionsRule(e){return{OperationDefinition(t){if(t.operation==="subscription"){const r=e.getSchema();const i=r.getSubscriptionType();if(i){const a=t.name?t.name.value:null;const A=Object.create(null);const c=e.getDocument();const u=Object.create(null);for(const e of c.definitions){if(e.kind===s.Kind.FRAGMENT_DEFINITION){u[e.name.value]=e}}const l=(0,o.collectFields)(r,u,A,i,t.selectionSet);if(l.size>1){const t=[...l.values()];const r=t.slice(1);const s=r.flat();e.reportError(new n.GraphQLError(a!=null?`Subscription "${a}" must select only one top level field.`:"Anonymous Subscription must select only one top level field.",{nodes:s}))}for(const t of l.values()){const r=t[0];const s=r.name.value;if(s.startsWith("__")){e.reportError(new n.GraphQLError(a!=null?`Subscription "${a}" must not select an introspection top level field.`:"Anonymous Subscription must not select an introspection top level field.",{nodes:t}))}}}}}}}},6496:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueArgumentDefinitionNamesRule=UniqueArgumentDefinitionNamesRule;var n=r(8520);var s=r(5939);function UniqueArgumentDefinitionNamesRule(e){return{DirectiveDefinition(e){var t;const r=(t=e.arguments)!==null&&t!==void 0?t:[];return checkArgUniqueness(`@${e.name.value}`,r)},InterfaceTypeDefinition:checkArgUniquenessPerField,InterfaceTypeExtension:checkArgUniquenessPerField,ObjectTypeDefinition:checkArgUniquenessPerField,ObjectTypeExtension:checkArgUniquenessPerField};function checkArgUniquenessPerField(e){var t;const r=e.name.value;const n=(t=e.fields)!==null&&t!==void 0?t:[];for(const e of n){var s;const t=e.name.value;const n=(s=e.arguments)!==null&&s!==void 0?s:[];checkArgUniqueness(`${r}.${t}`,n)}return false}function checkArgUniqueness(t,r){const o=(0,n.groupBy)(r,(e=>e.name.value));for(const[r,n]of o){if(n.length>1){e.reportError(new s.GraphQLError(`Argument "${t}(${r}:)" can only be defined once.`,{nodes:n.map((e=>e.name))}))}}return false}}},2995:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueArgumentNamesRule=UniqueArgumentNamesRule;var n=r(8520);var s=r(5939);function UniqueArgumentNamesRule(e){return{Field:checkArgUniqueness,Directive:checkArgUniqueness};function checkArgUniqueness(t){var r;const o=(r=t.arguments)!==null&&r!==void 0?r:[];const i=(0,n.groupBy)(o,(e=>e.name.value));for(const[t,r]of i){if(r.length>1){e.reportError(new s.GraphQLError(`There can be only one argument named "${t}".`,{nodes:r.map((e=>e.name))}))}}}}},9879:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueDirectiveNamesRule=UniqueDirectiveNamesRule;var n=r(5939);function UniqueDirectiveNamesRule(e){const t=Object.create(null);const r=e.getSchema();return{DirectiveDefinition(s){const o=s.name.value;if(r!==null&&r!==void 0&&r.getDirective(o)){e.reportError(new n.GraphQLError(`Directive "@${o}" already exists in the schema. It cannot be redefined.`,{nodes:s.name}));return}if(t[o]){e.reportError(new n.GraphQLError(`There can be only one directive named "@${o}".`,{nodes:[t[o],s.name]}))}else{t[o]=s.name}return false}}}},9412:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueDirectivesPerLocationRule=UniqueDirectivesPerLocationRule;var n=r(5939);var s=r(1123);var o=r(5480);var i=r(1058);function UniqueDirectivesPerLocationRule(e){const t=Object.create(null);const r=e.getSchema();const a=r?r.getDirectives():i.specifiedDirectives;for(const e of a){t[e.name]=!e.isRepeatable}const A=e.getDocument().definitions;for(const e of A){if(e.kind===s.Kind.DIRECTIVE_DEFINITION){t[e.name.value]=!e.repeatable}}const c=Object.create(null);const u=Object.create(null);return{enter(r){if(!("directives"in r)||!r.directives){return}let i;if(r.kind===s.Kind.SCHEMA_DEFINITION||r.kind===s.Kind.SCHEMA_EXTENSION){i=c}else if((0,o.isTypeDefinitionNode)(r)||(0,o.isTypeExtensionNode)(r)){const e=r.name.value;i=u[e];if(i===undefined){u[e]=i=Object.create(null)}}else{i=Object.create(null)}for(const s of r.directives){const r=s.name.value;if(t[r]){if(i[r]){e.reportError(new n.GraphQLError(`The directive "@${r}" can only be used once at this location.`,{nodes:[i[r],s]}))}else{i[r]=s}}}}}}},3062:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueEnumValueNamesRule=UniqueEnumValueNamesRule;var n=r(5939);var s=r(4169);function UniqueEnumValueNamesRule(e){const t=e.getSchema();const r=t?t.getTypeMap():Object.create(null);const o=Object.create(null);return{EnumTypeDefinition:checkValueUniqueness,EnumTypeExtension:checkValueUniqueness};function checkValueUniqueness(t){var i;const a=t.name.value;if(!o[a]){o[a]=Object.create(null)}const A=(i=t.values)!==null&&i!==void 0?i:[];const c=o[a];for(const t of A){const o=t.name.value;const i=r[a];if((0,s.isEnumType)(i)&&i.getValue(o)){e.reportError(new n.GraphQLError(`Enum value "${a}.${o}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:t.name}))}else if(c[o]){e.reportError(new n.GraphQLError(`Enum value "${a}.${o}" can only be defined once.`,{nodes:[c[o],t.name]}))}else{c[o]=t.name}}return false}}},87:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueFieldDefinitionNamesRule=UniqueFieldDefinitionNamesRule;var n=r(5939);var s=r(4169);function UniqueFieldDefinitionNamesRule(e){const t=e.getSchema();const r=t?t.getTypeMap():Object.create(null);const s=Object.create(null);return{InputObjectTypeDefinition:checkFieldUniqueness,InputObjectTypeExtension:checkFieldUniqueness,InterfaceTypeDefinition:checkFieldUniqueness,InterfaceTypeExtension:checkFieldUniqueness,ObjectTypeDefinition:checkFieldUniqueness,ObjectTypeExtension:checkFieldUniqueness};function checkFieldUniqueness(t){var o;const i=t.name.value;if(!s[i]){s[i]=Object.create(null)}const a=(o=t.fields)!==null&&o!==void 0?o:[];const A=s[i];for(const t of a){const s=t.name.value;if(hasField(r[i],s)){e.reportError(new n.GraphQLError(`Field "${i}.${s}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:t.name}))}else if(A[s]){e.reportError(new n.GraphQLError(`Field "${i}.${s}" can only be defined once.`,{nodes:[A[s],t.name]}))}else{A[s]=t.name}}return false}}function hasField(e,t){if((0,s.isObjectType)(e)||(0,s.isInterfaceType)(e)||(0,s.isInputObjectType)(e)){return e.getFields()[t]!=null}return false}},1914:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueFragmentNamesRule=UniqueFragmentNamesRule;var n=r(5939);function UniqueFragmentNamesRule(e){const t=Object.create(null);return{OperationDefinition:()=>false,FragmentDefinition(r){const s=r.name.value;if(t[s]){e.reportError(new n.GraphQLError(`There can be only one fragment named "${s}".`,{nodes:[t[s],r.name]}))}else{t[s]=r.name}return false}}}},9082:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueInputFieldNamesRule=UniqueInputFieldNamesRule;var n=r(3650);var s=r(5939);function UniqueInputFieldNamesRule(e){const t=[];let r=Object.create(null);return{ObjectValue:{enter(){t.push(r);r=Object.create(null)},leave(){const e=t.pop();e||(0,n.invariant)(false);r=e}},ObjectField(t){const n=t.name.value;if(r[n]){e.reportError(new s.GraphQLError(`There can be only one input field named "${n}".`,{nodes:[r[n],t.name]}))}else{r[n]=t.name}}}}},4403:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueOperationNamesRule=UniqueOperationNamesRule;var n=r(5939);function UniqueOperationNamesRule(e){const t=Object.create(null);return{OperationDefinition(r){const s=r.name;if(s){if(t[s.value]){e.reportError(new n.GraphQLError(`There can be only one operation named "${s.value}".`,{nodes:[t[s.value],s]}))}else{t[s.value]=s}}return false},FragmentDefinition:()=>false}}},4234:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueOperationTypesRule=UniqueOperationTypesRule;var n=r(5939);function UniqueOperationTypesRule(e){const t=e.getSchema();const r=Object.create(null);const s=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:checkOperationTypes,SchemaExtension:checkOperationTypes};function checkOperationTypes(t){var o;const i=(o=t.operationTypes)!==null&&o!==void 0?o:[];for(const t of i){const o=t.operation;const i=r[o];if(s[o]){e.reportError(new n.GraphQLError(`Type for ${o} already defined in the schema. It cannot be redefined.`,{nodes:t}))}else if(i){e.reportError(new n.GraphQLError(`There can be only one ${o} type in schema.`,{nodes:[i,t]}))}else{r[o]=t}}return false}}},2058:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueTypeNamesRule=UniqueTypeNamesRule;var n=r(5939);function UniqueTypeNamesRule(e){const t=Object.create(null);const r=e.getSchema();return{ScalarTypeDefinition:checkTypeName,ObjectTypeDefinition:checkTypeName,InterfaceTypeDefinition:checkTypeName,UnionTypeDefinition:checkTypeName,EnumTypeDefinition:checkTypeName,InputObjectTypeDefinition:checkTypeName};function checkTypeName(s){const o=s.name.value;if(r!==null&&r!==void 0&&r.getType(o)){e.reportError(new n.GraphQLError(`Type "${o}" already exists in the schema. It cannot also be defined in this type definition.`,{nodes:s.name}));return}if(t[o]){e.reportError(new n.GraphQLError(`There can be only one type named "${o}".`,{nodes:[t[o],s.name]}))}else{t[o]=s.name}return false}}},7837:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.UniqueVariableNamesRule=UniqueVariableNamesRule;var n=r(8520);var s=r(5939);function UniqueVariableNamesRule(e){return{OperationDefinition(t){var r;const o=(r=t.variableDefinitions)!==null&&r!==void 0?r:[];const i=(0,n.groupBy)(o,(e=>e.variable.name.value));for(const[t,r]of i){if(r.length>1){e.reportError(new s.GraphQLError(`There can be only one variable named "$${t}".`,{nodes:r.map((e=>e.variable.name))}))}}}}}},1408:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValuesOfCorrectTypeRule=ValuesOfCorrectTypeRule;var n=r(1353);var s=r(5742);var o=r(7579);var i=r(7904);var a=r(5939);var A=r(1123);var c=r(9936);var u=r(4169);function ValuesOfCorrectTypeRule(e){let t={};return{OperationDefinition:{enter(){t={}}},VariableDefinition(e){t[e.variable.name.value]=e},ListValue(t){const r=(0,u.getNullableType)(e.getParentInputType());if(!(0,u.isListType)(r)){isValidValueNode(e,t);return false}},ObjectValue(r){const n=(0,u.getNamedType)(e.getInputType());if(!(0,u.isInputObjectType)(n)){isValidValueNode(e,r);return false}const i=(0,o.keyMap)(r.fields,(e=>e.name.value));for(const t of Object.values(n.getFields())){const o=i[t.name];if(!o&&(0,u.isRequiredInputField)(t)){const o=(0,s.inspect)(t.type);e.reportError(new a.GraphQLError(`Field "${n.name}.${t.name}" of required type "${o}" was not provided.`,{nodes:r}))}}if(n.isOneOf){validateOneOfInputObject(e,r,n,i,t)}},ObjectField(t){const r=(0,u.getNamedType)(e.getParentInputType());const s=e.getInputType();if(!s&&(0,u.isInputObjectType)(r)){const s=(0,i.suggestionList)(t.name.value,Object.keys(r.getFields()));e.reportError(new a.GraphQLError(`Field "${t.name.value}" is not defined by type "${r.name}".`+(0,n.didYouMean)(s),{nodes:t}))}},NullValue(t){const r=e.getInputType();if((0,u.isNonNullType)(r)){e.reportError(new a.GraphQLError(`Expected value of type "${(0,s.inspect)(r)}", found ${(0,c.print)(t)}.`,{nodes:t}))}},EnumValue:t=>isValidValueNode(e,t),IntValue:t=>isValidValueNode(e,t),FloatValue:t=>isValidValueNode(e,t),StringValue:t=>isValidValueNode(e,t),BooleanValue:t=>isValidValueNode(e,t)}}function isValidValueNode(e,t){const r=e.getInputType();if(!r){return}const n=(0,u.getNamedType)(r);if(!(0,u.isLeafType)(n)){const n=(0,s.inspect)(r);e.reportError(new a.GraphQLError(`Expected value of type "${n}", found ${(0,c.print)(t)}.`,{nodes:t}));return}try{const o=n.parseLiteral(t,undefined);if(o===undefined){const n=(0,s.inspect)(r);e.reportError(new a.GraphQLError(`Expected value of type "${n}", found ${(0,c.print)(t)}.`,{nodes:t}))}}catch(n){const o=(0,s.inspect)(r);if(n instanceof a.GraphQLError){e.reportError(n)}else{e.reportError(new a.GraphQLError(`Expected value of type "${o}", found ${(0,c.print)(t)}; `+n.message,{nodes:t,originalError:n}))}}}function validateOneOfInputObject(e,t,r,n,s){var o;const i=Object.keys(n);const c=i.length!==1;if(c){e.reportError(new a.GraphQLError(`OneOf Input Object "${r.name}" must specify exactly one key.`,{nodes:[t]}));return}const u=(o=n[i[0]])===null||o===void 0?void 0:o.value;const l=!u||u.kind===A.Kind.NULL;const p=(u===null||u===void 0?void 0:u.kind)===A.Kind.VARIABLE;if(l){e.reportError(new a.GraphQLError(`Field "${r.name}.${i[0]}" must be non-null.`,{nodes:[t]}));return}if(p){const n=u.name.value;const o=s[n];const i=o.type.kind!==A.Kind.NON_NULL_TYPE;if(i){e.reportError(new a.GraphQLError(`Variable "${n}" must be non-nullable to be used for OneOf Input Object "${r.name}".`,{nodes:[t]}))}}}},6187:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.VariablesAreInputTypesRule=VariablesAreInputTypesRule;var n=r(5939);var s=r(9936);var o=r(4169);var i=r(6738);function VariablesAreInputTypesRule(e){return{VariableDefinition(t){const r=(0,i.typeFromAST)(e.getSchema(),t.type);if(r!==undefined&&!(0,o.isInputType)(r)){const r=t.variable.name.value;const o=(0,s.print)(t.type);e.reportError(new n.GraphQLError(`Variable "$${r}" cannot be non-input type "${o}".`,{nodes:t.type}))}}}}},4186:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.VariablesInAllowedPositionRule=VariablesInAllowedPositionRule;var n=r(5742);var s=r(5939);var o=r(1123);var i=r(4169);var a=r(6539);var A=r(6738);function VariablesInAllowedPositionRule(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(r){const o=e.getRecursiveVariableUsages(r);for(const{node:r,type:i,defaultValue:a}of o){const o=r.name.value;const c=t[o];if(c&&i){const t=e.getSchema();const u=(0,A.typeFromAST)(t,c.type);if(u&&!allowedVariableUsage(t,u,c.defaultValue,i,a)){const t=(0,n.inspect)(u);const a=(0,n.inspect)(i);e.reportError(new s.GraphQLError(`Variable "$${o}" of type "${t}" used in position expecting type "${a}".`,{nodes:[c,r]}))}}}}},VariableDefinition(e){t[e.variable.name.value]=e}}}function allowedVariableUsage(e,t,r,n,s){if((0,i.isNonNullType)(n)&&!(0,i.isNonNullType)(t)){const i=r!=null&&r.kind!==o.Kind.NULL;const A=s!==undefined;if(!i&&!A){return false}const c=n.ofType;return(0,a.isTypeSubTypeOf)(e,t,c)}return(0,a.isTypeSubTypeOf)(e,t,n)}},5910:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoDeprecatedCustomRule=NoDeprecatedCustomRule;var n=r(3650);var s=r(5939);var o=r(4169);function NoDeprecatedCustomRule(e){return{Field(t){const r=e.getFieldDef();const o=r===null||r===void 0?void 0:r.deprecationReason;if(r&&o!=null){const i=e.getParentType();i!=null||(0,n.invariant)(false);e.reportError(new s.GraphQLError(`The field ${i.name}.${r.name} is deprecated. ${o}`,{nodes:t}))}},Argument(t){const r=e.getArgument();const o=r===null||r===void 0?void 0:r.deprecationReason;if(r&&o!=null){const i=e.getDirective();if(i!=null){e.reportError(new s.GraphQLError(`Directive "@${i.name}" argument "${r.name}" is deprecated. ${o}`,{nodes:t}))}else{const i=e.getParentType();const a=e.getFieldDef();i!=null&&a!=null||(0,n.invariant)(false);e.reportError(new s.GraphQLError(`Field "${i.name}.${a.name}" argument "${r.name}" is deprecated. ${o}`,{nodes:t}))}}},ObjectField(t){const r=(0,o.getNamedType)(e.getParentInputType());if((0,o.isInputObjectType)(r)){const n=r.getFields()[t.name.value];const o=n===null||n===void 0?void 0:n.deprecationReason;if(o!=null){e.reportError(new s.GraphQLError(`The input field ${r.name}.${n.name} is deprecated. ${o}`,{nodes:t}))}}},EnumValue(t){const r=e.getEnumValue();const i=r===null||r===void 0?void 0:r.deprecationReason;if(r&&i!=null){const a=(0,o.getNamedType)(e.getInputType());a!=null||(0,n.invariant)(false);e.reportError(new s.GraphQLError(`The enum value "${a.name}.${r.name}" is deprecated. ${i}`,{nodes:t}))}}}}},6787:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.NoSchemaIntrospectionCustomRule=NoSchemaIntrospectionCustomRule;var n=r(5939);var s=r(4169);var o=r(317);function NoSchemaIntrospectionCustomRule(e){return{Field(t){const r=(0,s.getNamedType)(e.getType());if(r&&(0,o.isIntrospectionType)(r)){e.reportError(new n.GraphQLError(`GraphQL introspection has been disabled, but the requested query contained the field "${t.name.value}".`,{nodes:t}))}}}}},916:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.specifiedSDLRules=t.specifiedRules=t.recommendedRules=void 0;var n=r(5401);var s=r(2153);var o=r(643);var i=r(7663);var a=r(5866);var A=r(5958);var c=r(1574);var u=r(1677);var l=r(2553);var p=r(8749);var d=r(2579);var g=r(8873);var h=r(3693);var E=r(9489);var m=r(1646);var I=r(4550);var y=r(6058);var C=r(1145);var Q=r(4754);var B=r(1705);var b=r(6496);var T=r(2995);var w=r(9879);var v=r(9412);var R=r(3062);var k=r(87);var D=r(1914);var _=r(9082);var S=r(4403);var F=r(4234);var N=r(2058);var O=r(7837);var L=r(1408);var U=r(6187);var G=r(4186);const P=Object.freeze([p.MaxIntrospectionDepthRule]);t.recommendedRules=P;const M=Object.freeze([n.ExecutableDefinitionsRule,S.UniqueOperationNamesRule,u.LoneAnonymousOperationRule,B.SingleFieldSubscriptionsRule,c.KnownTypeNamesRule,o.FragmentsOnCompositeTypesRule,U.VariablesAreInputTypesRule,Q.ScalarLeafsRule,s.FieldsOnCorrectTypeRule,D.UniqueFragmentNamesRule,A.KnownFragmentNamesRule,h.NoUnusedFragmentsRule,I.PossibleFragmentSpreadsRule,d.NoFragmentCyclesRule,O.UniqueVariableNamesRule,g.NoUndefinedVariablesRule,E.NoUnusedVariablesRule,a.KnownDirectivesRule,v.UniqueDirectivesPerLocationRule,i.KnownArgumentNamesRule,T.UniqueArgumentNamesRule,L.ValuesOfCorrectTypeRule,C.ProvidedRequiredArgumentsRule,G.VariablesInAllowedPositionRule,m.OverlappingFieldsCanBeMergedRule,_.UniqueInputFieldNamesRule,...P]);t.specifiedRules=M;const x=Object.freeze([l.LoneSchemaDefinitionRule,F.UniqueOperationTypesRule,N.UniqueTypeNamesRule,R.UniqueEnumValueNamesRule,k.UniqueFieldDefinitionNamesRule,b.UniqueArgumentDefinitionNamesRule,w.UniqueDirectiveNamesRule,c.KnownTypeNamesRule,a.KnownDirectivesRule,v.UniqueDirectivesPerLocationRule,y.PossibleTypeExtensionsRule,i.KnownArgumentNamesOnDirectivesRule,T.UniqueArgumentNamesRule,_.UniqueInputFieldNamesRule,C.ProvidedRequiredArgumentsOnDirectivesRule]);t.specifiedSDLRules=x},7063:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assertValidSDL=assertValidSDL;t.assertValidSDLExtension=assertValidSDLExtension;t.validate=validate;t.validateSDL=validateSDL;var n=r(5383);var s=r(5939);var o=r(638);var i=r(3902);var a=r(5e3);var A=r(916);var c=r(8139);function validate(e,t,r=A.specifiedRules,u,l=new a.TypeInfo(e)){var p;const d=(p=u===null||u===void 0?void 0:u.maxErrors)!==null&&p!==void 0?p:100;t||(0,n.devAssert)(false,"Must provide document.");(0,i.assertValidSchema)(e);const g=Object.freeze({});const h=[];const E=new c.ValidationContext(e,t,l,(e=>{if(h.length>=d){h.push(new s.GraphQLError("Too many validation errors, error limit reached. Validation aborted."));throw g}h.push(e)}));const m=(0,o.visitInParallel)(r.map((e=>e(E))));try{(0,o.visit)(t,(0,a.visitWithTypeInfo)(l,m))}catch(e){if(e!==g){throw e}}return h}function validateSDL(e,t,r=A.specifiedSDLRules){const n=[];const s=new c.SDLValidationContext(e,t,(e=>{n.push(e)}));const i=r.map((e=>e(s)));(0,o.visit)(e,(0,o.visitInParallel)(i));return n}function assertValidSDL(e){const t=validateSDL(e);if(t.length!==0){throw new Error(t.map((e=>e.message)).join("\n\n"))}}function assertValidSDLExtension(e,t){const r=validateSDL(e,t);if(r.length!==0){throw new Error(r.map((e=>e.message)).join("\n\n"))}}},8725:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.versionInfo=t.version=void 0;const r="16.9.0";t.version=r;const n=Object.freeze({major:16,minor:9,patch:0,preReleaseTag:null});t.versionInfo=n},744:e=>{var t=1e3;var r=t*60;var n=r*60;var s=n*24;var o=s*7;var i=s*365.25;e.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0){return parse(e)}else if(r==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!a){return}var A=parseFloat(a[1]);var c=(a[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return A*i;case"weeks":case"week":case"w":return A*o;case"days":case"day":case"d":return A*s;case"hours":case"hour":case"hrs":case"hr":case"h":return A*n;case"minutes":case"minute":case"mins":case"min":case"m":return A*r;case"seconds":case"second":case"secs":case"sec":case"s":return A*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return A;default:return undefined}}function fmtShort(e){var o=Math.abs(e);if(o>=s){return Math.round(e/s)+"d"}if(o>=n){return Math.round(e/n)+"h"}if(o>=r){return Math.round(e/r)+"m"}if(o>=t){return Math.round(e/t)+"s"}return e+"ms"}function fmtLong(e){var o=Math.abs(e);if(o>=s){return plural(e,o,s,"day")}if(o>=n){return plural(e,o,n,"hour")}if(o>=r){return plural(e,o,r,"minute")}if(o>=t){return plural(e,o,t,"second")}return e+" ms"}function plural(e,t,r,n){var s=t>=r*1.5;return Math.round(e/r)+" "+n+(s?"s":"")}},5560:(e,t,r)=>{var n=r(8264);e.exports=n(once);e.exports.strict=n(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(e){var f=function(){if(f.called)return f.value;f.called=true;return f.value=e.apply(this,arguments)};f.called=false;return f}function onceStrict(e){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=e.apply(this,arguments)};var t=e.name||"Function wrapped with `once`";f.onceError=t+" shouldn't be called more than once";f.called=false;return f}},1860:e=>{var t;var r;var n;var s;var o;var i;var a;var A;var c;var u;var l;var p;var d;var g;var h;var E;var m;var I;var y;var C;var Q;var B;var b;var T;var w;var v;var R;var k;var D;var _;var S;var F;(function(t){var r=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd){define("tslib",["exports"],(function(e){t(createExporter(r,createExporter(e)))}))}else if(true&&typeof e.exports==="object"){t(createExporter(r,createExporter(e.exports)))}else{t(createExporter(r))}function createExporter(e,t){if(e!==r){if(typeof Object.create==="function"){Object.defineProperty(e,"__esModule",{value:true})}else{e.__esModule=true}}return function(r,n){return e[r]=t?t(r,n):n}}})((function(e){var N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};t=function(e,t){if(typeof t!=="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");N(e,t);function __(){this.constructor=e}e.prototype=t===null?Object.create(t):(__.prototype=t.prototype,new __)};r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;a--)if(i=e[a])o=(s<3?i(o):s>3?i(t,r,o):i(t,r))||o;return s>3&&o&&Object.defineProperty(t,r,o),o};o=function(e,t){return function(r,n){t(r,n,e)}};i=function(e,t,r,n,s,o){function accept(e){if(e!==void 0&&typeof e!=="function")throw new TypeError("Function expected");return e}var i=n.kind,a=i==="getter"?"get":i==="setter"?"set":"value";var A=!t&&e?n["static"]?e:e.prototype:null;var c=t||(A?Object.getOwnPropertyDescriptor(A,n.name):{});var u,l=false;for(var p=r.length-1;p>=0;p--){var d={};for(var g in n)d[g]=g==="access"?{}:n[g];for(var g in n.access)d.access[g]=n.access[g];d.addInitializer=function(e){if(l)throw new TypeError("Cannot add initializers after decoration has completed");o.push(accept(e||null))};var h=(0,r[p])(i==="accessor"?{get:c.get,set:c.set}:c[a],d);if(i==="accessor"){if(h===void 0)continue;if(h===null||typeof h!=="object")throw new TypeError("Object expected");if(u=accept(h.get))c.get=u;if(u=accept(h.set))c.set=u;if(u=accept(h.init))s.unshift(u)}else if(u=accept(h)){if(i==="field")s.unshift(u);else c[a]=u}}if(A)Object.defineProperty(A,n.name,c);l=true};a=function(e,t,r){var n=arguments.length>2;for(var s=0;s0&&o[o.length-1])&&(a[0]===6||a[0]===2)){r=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]=e.length)e=void 0;return{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};h=function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),s,o=[],i;try{while((t===void 0||t-- >0)&&!(s=n.next()).done)o.push(s.value)}catch(e){i={error:e}}finally{try{if(s&&!s.done&&(r=n["return"]))r.call(n)}finally{if(i)throw i.error}}return o};E=function(){for(var e=[],t=0;t1||resume(e,t)}))};if(t)s[e]=t(s[e])}}function resume(e,t){try{step(n[e](t))}catch(e){settle(o[0][3],e)}}function step(e){e.value instanceof y?Promise.resolve(e.value.v).then(fulfill,reject):settle(o[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),o.shift(),o.length)resume(o[0][0],o[0][1])}};Q=function(e){var t,r;return t={},verb("next"),verb("throw",(function(e){throw e})),verb("return"),t[Symbol.iterator]=function(){return this},t;function verb(n,s){t[n]=e[n]?function(t){return(r=!r)?{value:y(e[n](t)),done:false}:s?s(t):t}:s}};B=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof g==="function"?g(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(n,s){r=e[t](r),settle(n,s,r.done,r.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}};b=function(e,t){if(Object.defineProperty){Object.defineProperty(e,"raw",{value:t})}else{e.raw=t}return e};var O=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t};var ownKeys=function(e){ownKeys=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[t.length]=r;return t};return ownKeys(e)};T=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=ownKeys(e),n=0;n{e.exports=r(218)},218:(e,t,r)=>{var n=r(9278);var s=r(4756);var o=r(8611);var i=r(5692);var a=r(4434);var A=r(2613);var c=r(9023);t.httpOverHttp=httpOverHttp;t.httpsOverHttp=httpsOverHttp;t.httpOverHttps=httpOverHttps;t.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var t=new TunnelingAgent(e);t.request=o.request;return t}function httpsOverHttp(e){var t=new TunnelingAgent(e);t.request=o.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function httpOverHttps(e){var t=new TunnelingAgent(e);t.request=i.request;return t}function httpsOverHttps(e){var t=new TunnelingAgent(e);t.request=i.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function TunnelingAgent(e){var t=this;t.options=e||{};t.proxyOptions=t.options.proxy||{};t.maxSockets=t.options.maxSockets||o.Agent.defaultMaxSockets;t.requests=[];t.sockets=[];t.on("free",(function onFree(e,r,n,s){var o=toOptions(r,n,s);for(var i=0,a=t.requests.length;i=this.maxSockets){s.requests.push(o);return}s.createSocket(o,(function(t){t.on("free",onFree);t.on("close",onCloseOrRemove);t.on("agentRemove",onCloseOrRemove);e.onSocket(t);function onFree(){s.emit("free",t,o)}function onCloseOrRemove(e){s.removeSocket(t);t.removeListener("free",onFree);t.removeListener("close",onCloseOrRemove);t.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,t){var r=this;var n={};r.sockets.push(n);var s=mergeOptions({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){s.localAddress=e.localAddress}if(s.proxyAuth){s.headers=s.headers||{};s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")}u("making CONNECT request");var o=r.request(s);o.useChunkedEncodingByDefault=false;o.once("response",onResponse);o.once("upgrade",onUpgrade);o.once("connect",onConnect);o.once("error",onError);o.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,t,r){process.nextTick((function(){onConnect(e,t,r)}))}function onConnect(s,i,a){o.removeAllListeners();i.removeAllListeners();if(s.statusCode!==200){u("tunneling socket could not be established, statusCode=%d",s.statusCode);i.destroy();var A=new Error("tunneling socket could not be established, "+"statusCode="+s.statusCode);A.code="ECONNRESET";e.request.emit("error",A);r.removeSocket(n);return}if(a.length>0){u("got illegal response body from proxy");i.destroy();var A=new Error("got illegal response body from proxy");A.code="ECONNRESET";e.request.emit("error",A);r.removeSocket(n);return}u("tunneling connection has established");r.sockets[r.sockets.indexOf(n)]=i;return t(i)}function onError(t){o.removeAllListeners();u("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var s=new Error("tunneling socket could not be established, "+"cause="+t.message);s.code="ECONNRESET";e.request.emit("error",s);r.removeSocket(n)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var t=this.sockets.indexOf(e);if(t===-1){return}this.sockets.splice(t,1);var r=this.requests.shift();if(r){this.createSocket(r,(function(e){r.request.onSocket(e)}))}};function createSecureSocket(e,t){var r=this;TunnelingAgent.prototype.createSocket.call(r,e,(function(n){var o=e.request.getHeader("host");var i=mergeOptions({},r.options,{socket:n,servername:o?o.replace(/:.*$/,""):e.host});var a=s.connect(0,i);r.sockets[r.sockets.indexOf(n)]=a;t(a)}))}function toOptions(e,t,r){if(typeof e==="string"){return{host:e,port:t,localAddress:r}}return e}function mergeOptions(e){for(var t=1,r=arguments.length;t{const n=r(6197);const s=r(992);const o=r(8707);const i=r(5076);const a=r(1093);const A=r(9965);const c=r(3440);const{InvalidArgumentError:u}=o;const l=r(6615);const p=r(9136);const d=r(7365);const g=r(7501);const h=r(4004);const E=r(2429);const m=r(2720);const I=r(3573);const{getGlobalDispatcher:y,setGlobalDispatcher:C}=r(2581);const Q=r(8840);const B=r(8299);const b=r(4415);let T;try{r(6982);T=true}catch{T=false}Object.assign(s.prototype,l);e.exports.Dispatcher=s;e.exports.Client=n;e.exports.Pool=i;e.exports.BalancedPool=a;e.exports.Agent=A;e.exports.ProxyAgent=m;e.exports.RetryHandler=I;e.exports.DecoratorHandler=Q;e.exports.RedirectHandler=B;e.exports.createRedirectInterceptor=b;e.exports.buildConnector=p;e.exports.errors=o;function makeDispatcher(e){return(t,r,n)=>{if(typeof r==="function"){n=r;r=null}if(!t||typeof t!=="string"&&typeof t!=="object"&&!(t instanceof URL)){throw new u("invalid url")}if(r!=null&&typeof r!=="object"){throw new u("invalid opts")}if(r&&r.path!=null){if(typeof r.path!=="string"){throw new u("invalid opts.path")}let e=r.path;if(!r.path.startsWith("/")){e=`/${e}`}t=new URL(c.parseOrigin(t).origin+e)}else{if(!r){r=typeof t==="object"?t:{}}t=c.parseURL(t)}const{agent:s,dispatcher:o=y()}=r;if(s){throw new u("unsupported opts.agent. Did you mean opts.client?")}return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}e.exports.setGlobalDispatcher=C;e.exports.getGlobalDispatcher=y;if(c.nodeMajor>16||c.nodeMajor===16&&c.nodeMinor>=8){let t=null;e.exports.fetch=async function fetch(e){if(!t){t=r(2315).fetch}try{return await t(...arguments)}catch(e){if(typeof e==="object"){Error.captureStackTrace(e,this)}throw e}};e.exports.Headers=r(6349).Headers;e.exports.Response=r(8676).Response;e.exports.Request=r(5194).Request;e.exports.FormData=r(3073).FormData;e.exports.File=r(3041).File;e.exports.FileReader=r(2160).FileReader;const{setGlobalOrigin:n,getGlobalOrigin:s}=r(5628);e.exports.setGlobalOrigin=n;e.exports.getGlobalOrigin=s;const{CacheStorage:o}=r(4738);const{kConstruct:i}=r(296);e.exports.caches=new o(i)}if(c.nodeMajor>=16){const{deleteCookie:t,getCookies:n,getSetCookies:s,setCookie:o}=r(3168);e.exports.deleteCookie=t;e.exports.getCookies=n;e.exports.getSetCookies=s;e.exports.setCookie=o;const{parseMIMEType:i,serializeAMimeType:a}=r(4322);e.exports.parseMIMEType=i;e.exports.serializeAMimeType=a}if(c.nodeMajor>=18&&T){const{WebSocket:t}=r(5171);e.exports.WebSocket=t}e.exports.request=makeDispatcher(l.request);e.exports.stream=makeDispatcher(l.stream);e.exports.pipeline=makeDispatcher(l.pipeline);e.exports.connect=makeDispatcher(l.connect);e.exports.upgrade=makeDispatcher(l.upgrade);e.exports.MockClient=d;e.exports.MockPool=h;e.exports.MockAgent=g;e.exports.mockErrors=E},9965:(e,t,r)=>{const{InvalidArgumentError:n}=r(8707);const{kClients:s,kRunning:o,kClose:i,kDestroy:a,kDispatch:A,kInterceptors:c}=r(6443);const u=r(1);const l=r(5076);const p=r(6197);const d=r(3440);const g=r(4415);const{WeakRef:h,FinalizationRegistry:E}=r(3194)();const m=Symbol("onConnect");const I=Symbol("onDisconnect");const y=Symbol("onConnectionError");const C=Symbol("maxRedirections");const Q=Symbol("onDrain");const B=Symbol("factory");const b=Symbol("finalizer");const T=Symbol("options");function defaultFactory(e,t){return t&&t.connections===1?new p(e,t):new l(e,t)}class Agent extends u{constructor({factory:e=defaultFactory,maxRedirections:t=0,connect:r,...o}={}){super();if(typeof e!=="function"){throw new n("factory must be a function.")}if(r!=null&&typeof r!=="function"&&typeof r!=="object"){throw new n("connect must be a function or an object")}if(!Number.isInteger(t)||t<0){throw new n("maxRedirections must be a positive number")}if(r&&typeof r!=="function"){r={...r}}this[c]=o.interceptors&&o.interceptors.Agent&&Array.isArray(o.interceptors.Agent)?o.interceptors.Agent:[g({maxRedirections:t})];this[T]={...d.deepClone(o),connect:r};this[T].interceptors=o.interceptors?{...o.interceptors}:undefined;this[C]=t;this[B]=e;this[s]=new Map;this[b]=new E((e=>{const t=this[s].get(e);if(t!==undefined&&t.deref()===undefined){this[s].delete(e)}}));const i=this;this[Q]=(e,t)=>{i.emit("drain",e,[i,...t])};this[m]=(e,t)=>{i.emit("connect",e,[i,...t])};this[I]=(e,t,r)=>{i.emit("disconnect",e,[i,...t],r)};this[y]=(e,t,r)=>{i.emit("connectionError",e,[i,...t],r)}}get[o](){let e=0;for(const t of this[s].values()){const r=t.deref();if(r){e+=r[o]}}return e}[A](e,t){let r;if(e.origin&&(typeof e.origin==="string"||e.origin instanceof URL)){r=String(e.origin)}else{throw new n("opts.origin must be a non-empty string or URL.")}const o=this[s].get(r);let i=o?o.deref():null;if(!i){i=this[B](e.origin,this[T]).on("drain",this[Q]).on("connect",this[m]).on("disconnect",this[I]).on("connectionError",this[y]);this[s].set(r,new h(i));this[b].register(i,r)}return i.dispatch(e,t)}async[i](){const e=[];for(const t of this[s].values()){const r=t.deref();if(r){e.push(r.close())}}await Promise.all(e)}async[a](e){const t=[];for(const r of this[s].values()){const n=r.deref();if(n){t.push(n.destroy(e))}}await Promise.all(t)}}e.exports=Agent},158:(e,t,r)=>{const{addAbortListener:n}=r(3440);const{RequestAbortedError:s}=r(8707);const o=Symbol("kListener");const i=Symbol("kSignal");function abort(e){if(e.abort){e.abort()}else{e.onError(new s)}}function addSignal(e,t){e[i]=null;e[o]=null;if(!t){return}if(t.aborted){abort(e);return}e[i]=t;e[o]=()=>{abort(e)};n(e[i],e[o])}function removeSignal(e){if(!e[i]){return}if("removeEventListener"in e[i]){e[i].removeEventListener("abort",e[o])}else{e[i].removeListener("abort",e[o])}e[i]=null;e[o]=null}e.exports={addSignal:addSignal,removeSignal:removeSignal}},4660:(e,t,r)=>{const{AsyncResource:n}=r(290);const{InvalidArgumentError:s,RequestAbortedError:o,SocketError:i}=r(8707);const a=r(3440);const{addSignal:A,removeSignal:c}=r(158);class ConnectHandler extends n{constructor(e,t){if(!e||typeof e!=="object"){throw new s("invalid opts")}if(typeof t!=="function"){throw new s("invalid callback")}const{signal:r,opaque:n,responseHeaders:o}=e;if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new s("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque=n||null;this.responseHeaders=o||null;this.callback=t;this.abort=null;A(this,r)}onConnect(e,t){if(!this.callback){throw new o}this.abort=e;this.context=t}onHeaders(){throw new i("bad connect",null)}onUpgrade(e,t,r){const{callback:n,opaque:s,context:o}=this;c(this);this.callback=null;let i=t;if(i!=null){i=this.responseHeaders==="raw"?a.parseRawHeaders(t):a.parseHeaders(t)}this.runInAsyncScope(n,null,null,{statusCode:e,headers:i,socket:r,opaque:s,context:o})}onError(e){const{callback:t,opaque:r}=this;c(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}}}function connect(e,t){if(t===undefined){return new Promise(((t,r)=>{connect.call(this,e,((e,n)=>e?r(e):t(n)))}))}try{const r=new ConnectHandler(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!=="function"){throw r}const n=e&&e.opaque;queueMicrotask((()=>t(r,{opaque:n})))}}e.exports=connect},6862:(e,t,r)=>{const{Readable:n,Duplex:s,PassThrough:o}=r(2203);const{InvalidArgumentError:i,InvalidReturnValueError:a,RequestAbortedError:A}=r(8707);const c=r(3440);const{AsyncResource:u}=r(290);const{addSignal:l,removeSignal:p}=r(158);const d=r(2613);const g=Symbol("resume");class PipelineRequest extends n{constructor(){super({autoDestroy:true});this[g]=null}_read(){const{[g]:e}=this;if(e){this[g]=null;e()}}_destroy(e,t){this._read();t(e)}}class PipelineResponse extends n{constructor(e){super({autoDestroy:true});this[g]=e}_read(){this[g]()}_destroy(e,t){if(!e&&!this._readableState.endEmitted){e=new A}t(e)}}class PipelineHandler extends u{constructor(e,t){if(!e||typeof e!=="object"){throw new i("invalid opts")}if(typeof t!=="function"){throw new i("invalid handler")}const{signal:r,method:n,opaque:o,onInfo:a,responseHeaders:u}=e;if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new i("signal must be an EventEmitter or EventTarget")}if(n==="CONNECT"){throw new i("invalid method")}if(a&&typeof a!=="function"){throw new i("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=o||null;this.responseHeaders=u||null;this.handler=t;this.abort=null;this.context=null;this.onInfo=a||null;this.req=(new PipelineRequest).on("error",c.nop);this.ret=new s({readableObjectMode:e.objectMode,autoDestroy:true,read:()=>{const{body:e}=this;if(e&&e.resume){e.resume()}},write:(e,t,r)=>{const{req:n}=this;if(n.push(e,t)||n._readableState.destroyed){r()}else{n[g]=r}},destroy:(e,t)=>{const{body:r,req:n,res:s,ret:o,abort:i}=this;if(!e&&!o._readableState.endEmitted){e=new A}if(i&&e){i()}c.destroy(r,e);c.destroy(n,e);c.destroy(s,e);p(this);t(e)}}).on("prefinish",(()=>{const{req:e}=this;e.push(null)}));this.res=null;l(this,r)}onConnect(e,t){const{ret:r,res:n}=this;d(!n,"pipeline cannot be retried");if(r.destroyed){throw new A}this.abort=e;this.context=t}onHeaders(e,t,r){const{opaque:n,handler:s,context:o}=this;if(e<200){if(this.onInfo){const r=this.responseHeaders==="raw"?c.parseRawHeaders(t):c.parseHeaders(t);this.onInfo({statusCode:e,headers:r})}return}this.res=new PipelineResponse(r);let i;try{this.handler=null;const r=this.responseHeaders==="raw"?c.parseRawHeaders(t):c.parseHeaders(t);i=this.runInAsyncScope(s,null,{statusCode:e,headers:r,opaque:n,body:this.res,context:o})}catch(e){this.res.on("error",c.nop);throw e}if(!i||typeof i.on!=="function"){throw new a("expected Readable")}i.on("data",(e=>{const{ret:t,body:r}=this;if(!t.push(e)&&r.pause){r.pause()}})).on("error",(e=>{const{ret:t}=this;c.destroy(t,e)})).on("end",(()=>{const{ret:e}=this;e.push(null)})).on("close",(()=>{const{ret:e}=this;if(!e._readableState.ended){c.destroy(e,new A)}}));this.body=i}onData(e){const{res:t}=this;return t.push(e)}onComplete(e){const{res:t}=this;t.push(null)}onError(e){const{ret:t}=this;this.handler=null;c.destroy(t,e)}}function pipeline(e,t){try{const r=new PipelineHandler(e,t);this.dispatch({...e,body:r.req},r);return r.ret}catch(e){return(new o).destroy(e)}}e.exports=pipeline},4043:(e,t,r)=>{const n=r(9927);const{InvalidArgumentError:s,RequestAbortedError:o}=r(8707);const i=r(3440);const{getResolveErrorBodyCallback:a}=r(7655);const{AsyncResource:A}=r(290);const{addSignal:c,removeSignal:u}=r(158);class RequestHandler extends A{constructor(e,t){if(!e||typeof e!=="object"){throw new s("invalid opts")}const{signal:r,method:n,opaque:o,body:a,onInfo:A,responseHeaders:u,throwOnError:l,highWaterMark:p}=e;try{if(typeof t!=="function"){throw new s("invalid callback")}if(p&&(typeof p!=="number"||p<0)){throw new s("invalid highWaterMark")}if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new s("signal must be an EventEmitter or EventTarget")}if(n==="CONNECT"){throw new s("invalid method")}if(A&&typeof A!=="function"){throw new s("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(e){if(i.isStream(a)){i.destroy(a.on("error",i.nop),e)}throw e}this.responseHeaders=u||null;this.opaque=o||null;this.callback=t;this.res=null;this.abort=null;this.body=a;this.trailers={};this.context=null;this.onInfo=A||null;this.throwOnError=l;this.highWaterMark=p;if(i.isStream(a)){a.on("error",(e=>{this.onError(e)}))}c(this,r)}onConnect(e,t){if(!this.callback){throw new o}this.abort=e;this.context=t}onHeaders(e,t,r,s){const{callback:o,opaque:A,abort:c,context:u,responseHeaders:l,highWaterMark:p}=this;const d=l==="raw"?i.parseRawHeaders(t):i.parseHeaders(t);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:d})}return}const g=l==="raw"?i.parseHeaders(t):d;const h=g["content-type"];const E=new n({resume:r,abort:c,contentType:h,highWaterMark:p});this.callback=null;this.res=E;if(o!==null){if(this.throwOnError&&e>=400){this.runInAsyncScope(a,null,{callback:o,body:E,contentType:h,statusCode:e,statusMessage:s,headers:d})}else{this.runInAsyncScope(o,null,null,{statusCode:e,headers:d,trailers:this.trailers,opaque:A,body:E,context:u})}}}onData(e){const{res:t}=this;return t.push(e)}onComplete(e){const{res:t}=this;u(this);i.parseHeaders(e,this.trailers);t.push(null)}onError(e){const{res:t,callback:r,body:n,opaque:s}=this;u(this);if(r){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(r,null,e,{opaque:s})}))}if(t){this.res=null;queueMicrotask((()=>{i.destroy(t,e)}))}if(n){this.body=null;i.destroy(n,e)}}}function request(e,t){if(t===undefined){return new Promise(((t,r)=>{request.call(this,e,((e,n)=>e?r(e):t(n)))}))}try{this.dispatch(e,new RequestHandler(e,t))}catch(r){if(typeof t!=="function"){throw r}const n=e&&e.opaque;queueMicrotask((()=>t(r,{opaque:n})))}}e.exports=request;e.exports.RequestHandler=RequestHandler},3560:(e,t,r)=>{const{finished:n,PassThrough:s}=r(2203);const{InvalidArgumentError:o,InvalidReturnValueError:i,RequestAbortedError:a}=r(8707);const A=r(3440);const{getResolveErrorBodyCallback:c}=r(7655);const{AsyncResource:u}=r(290);const{addSignal:l,removeSignal:p}=r(158);class StreamHandler extends u{constructor(e,t,r){if(!e||typeof e!=="object"){throw new o("invalid opts")}const{signal:n,method:s,opaque:i,body:a,onInfo:c,responseHeaders:u,throwOnError:p}=e;try{if(typeof r!=="function"){throw new o("invalid callback")}if(typeof t!=="function"){throw new o("invalid factory")}if(n&&typeof n.on!=="function"&&typeof n.addEventListener!=="function"){throw new o("signal must be an EventEmitter or EventTarget")}if(s==="CONNECT"){throw new o("invalid method")}if(c&&typeof c!=="function"){throw new o("invalid onInfo callback")}super("UNDICI_STREAM")}catch(e){if(A.isStream(a)){A.destroy(a.on("error",A.nop),e)}throw e}this.responseHeaders=u||null;this.opaque=i||null;this.factory=t;this.callback=r;this.res=null;this.abort=null;this.context=null;this.trailers=null;this.body=a;this.onInfo=c||null;this.throwOnError=p||false;if(A.isStream(a)){a.on("error",(e=>{this.onError(e)}))}l(this,n)}onConnect(e,t){if(!this.callback){throw new a}this.abort=e;this.context=t}onHeaders(e,t,r,o){const{factory:a,opaque:u,context:l,callback:p,responseHeaders:d}=this;const g=d==="raw"?A.parseRawHeaders(t):A.parseHeaders(t);if(e<200){if(this.onInfo){this.onInfo({statusCode:e,headers:g})}return}this.factory=null;let h;if(this.throwOnError&&e>=400){const r=d==="raw"?A.parseHeaders(t):g;const n=r["content-type"];h=new s;this.callback=null;this.runInAsyncScope(c,null,{callback:p,body:h,contentType:n,statusCode:e,statusMessage:o,headers:g})}else{if(a===null){return}h=this.runInAsyncScope(a,null,{statusCode:e,headers:g,opaque:u,context:l});if(!h||typeof h.write!=="function"||typeof h.end!=="function"||typeof h.on!=="function"){throw new i("expected Writable")}n(h,{readable:false},(e=>{const{callback:t,res:r,opaque:n,trailers:s,abort:o}=this;this.res=null;if(e||!r.readable){A.destroy(r,e)}this.callback=null;this.runInAsyncScope(t,null,e||null,{opaque:n,trailers:s});if(e){o()}}))}h.on("drain",r);this.res=h;const E=h.writableNeedDrain!==undefined?h.writableNeedDrain:h._writableState&&h._writableState.needDrain;return E!==true}onData(e){const{res:t}=this;return t?t.write(e):true}onComplete(e){const{res:t}=this;p(this);if(!t){return}this.trailers=A.parseHeaders(e);t.end()}onError(e){const{res:t,callback:r,opaque:n,body:s}=this;p(this);this.factory=null;if(t){this.res=null;A.destroy(t,e)}else if(r){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(r,null,e,{opaque:n})}))}if(s){this.body=null;A.destroy(s,e)}}}function stream(e,t,r){if(r===undefined){return new Promise(((r,n)=>{stream.call(this,e,t,((e,t)=>e?n(e):r(t)))}))}try{this.dispatch(e,new StreamHandler(e,t,r))}catch(t){if(typeof r!=="function"){throw t}const n=e&&e.opaque;queueMicrotask((()=>r(t,{opaque:n})))}}e.exports=stream},1882:(e,t,r)=>{const{InvalidArgumentError:n,RequestAbortedError:s,SocketError:o}=r(8707);const{AsyncResource:i}=r(290);const a=r(3440);const{addSignal:A,removeSignal:c}=r(158);const u=r(2613);class UpgradeHandler extends i{constructor(e,t){if(!e||typeof e!=="object"){throw new n("invalid opts")}if(typeof t!=="function"){throw new n("invalid callback")}const{signal:r,opaque:s,responseHeaders:o}=e;if(r&&typeof r.on!=="function"&&typeof r.addEventListener!=="function"){throw new n("signal must be an EventEmitter or EventTarget")}super("UNDICI_UPGRADE");this.responseHeaders=o||null;this.opaque=s||null;this.callback=t;this.abort=null;this.context=null;A(this,r)}onConnect(e,t){if(!this.callback){throw new s}this.abort=e;this.context=null}onHeaders(){throw new o("bad upgrade",null)}onUpgrade(e,t,r){const{callback:n,opaque:s,context:o}=this;u.strictEqual(e,101);c(this);this.callback=null;const i=this.responseHeaders==="raw"?a.parseRawHeaders(t):a.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:i,socket:r,opaque:s,context:o})}onError(e){const{callback:t,opaque:r}=this;c(this);if(t){this.callback=null;queueMicrotask((()=>{this.runInAsyncScope(t,null,e,{opaque:r})}))}}}function upgrade(e,t){if(t===undefined){return new Promise(((t,r)=>{upgrade.call(this,e,((e,n)=>e?r(e):t(n)))}))}try{const r=new UpgradeHandler(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!=="function"){throw r}const n=e&&e.opaque;queueMicrotask((()=>t(r,{opaque:n})))}}e.exports=upgrade},6615:(e,t,r)=>{e.exports.request=r(4043);e.exports.stream=r(3560);e.exports.pipeline=r(6862);e.exports.upgrade=r(1882);e.exports.connect=r(4660)},9927:(e,t,r)=>{const n=r(2613);const{Readable:s}=r(2203);const{RequestAbortedError:o,NotSupportedError:i,InvalidArgumentError:a}=r(8707);const A=r(3440);const{ReadableStreamFrom:c,toUSVString:u}=r(3440);let l;const p=Symbol("kConsume");const d=Symbol("kReading");const g=Symbol("kBody");const h=Symbol("abort");const E=Symbol("kContentType");const noop=()=>{};e.exports=class BodyReadable extends s{constructor({resume:e,abort:t,contentType:r="",highWaterMark:n=64*1024}){super({autoDestroy:true,read:e,highWaterMark:n});this._readableState.dataEmitted=false;this[h]=t;this[p]=null;this[g]=null;this[E]=r;this[d]=false}destroy(e){if(this.destroyed){return this}if(!e&&!this._readableState.endEmitted){e=new o}if(e){this[h]()}return super.destroy(e)}emit(e,...t){if(e==="data"){this._readableState.dataEmitted=true}else if(e==="error"){this._readableState.errorEmitted=true}return super.emit(e,...t)}on(e,...t){if(e==="data"||e==="readable"){this[d]=true}return super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){const r=super.off(e,...t);if(e==="data"||e==="readable"){this[d]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return r}removeListener(e,...t){return this.off(e,...t)}push(e){if(this[p]&&e!==null&&this.readableLength===0){consumePush(this[p],e);return this[d]?super.push(e):true}return super.push(e)}async text(){return consume(this,"text")}async json(){return consume(this,"json")}async blob(){return consume(this,"blob")}async arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){throw new i}get bodyUsed(){return A.isDisturbed(this)}get body(){if(!this[g]){this[g]=c(this);if(this[p]){this[g].getReader();n(this[g].locked)}}return this[g]}dump(e){let t=e&&Number.isFinite(e.limit)?e.limit:262144;const r=e&&e.signal;if(r){try{if(typeof r!=="object"||!("aborted"in r)){throw new a("signal must be an AbortSignal")}A.throwIfAborted(r)}catch(e){return Promise.reject(e)}}if(this.closed){return Promise.resolve(null)}return new Promise(((e,n)=>{const s=r?A.addAbortListener(r,(()=>{this.destroy()})):noop;this.on("close",(function(){s();if(r&&r.aborted){n(r.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"}))}else{e(null)}})).on("error",noop).on("data",(function(e){t-=e.length;if(t<=0){this.destroy()}})).resume()}))}};function isLocked(e){return e[g]&&e[g].locked===true||e[p]}function isUnusable(e){return A.isDisturbed(e)||isLocked(e)}async function consume(e,t){if(isUnusable(e)){throw new TypeError("unusable")}n(!e[p]);return new Promise(((r,n)=>{e[p]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]};e.on("error",(function(e){consumeFinish(this[p],e)})).on("close",(function(){if(this[p].body!==null){consumeFinish(this[p],new o)}}));process.nextTick(consumeStart,e[p])}))}function consumeStart(e){if(e.body===null){return}const{_readableState:t}=e.stream;for(const r of t.buffer){consumePush(e,r)}if(t.endEmitted){consumeEnd(this[p])}else{e.stream.on("end",(function(){consumeEnd(this[p])}))}e.stream.resume();while(e.stream.read()!=null){}}function consumeEnd(e){const{type:t,body:n,resolve:s,stream:o,length:i}=e;try{if(t==="text"){s(u(Buffer.concat(n)))}else if(t==="json"){s(JSON.parse(Buffer.concat(n)))}else if(t==="arrayBuffer"){const e=new Uint8Array(i);let t=0;for(const r of n){e.set(r,t);t+=r.byteLength}s(e.buffer)}else if(t==="blob"){if(!l){l=r(181).Blob}s(new l(n,{type:o[E]}))}consumeFinish(e)}catch(e){o.destroy(e)}}function consumePush(e,t){e.length+=t.length;e.body.push(t)}function consumeFinish(e,t){if(e.body===null){return}if(t){e.reject(t)}else{e.resolve()}e.type=null;e.stream=null;e.resolve=null;e.reject=null;e.length=0;e.body=null}},7655:(e,t,r)=>{const n=r(2613);const{ResponseStatusCodeError:s}=r(8707);const{toUSVString:o}=r(3440);async function getResolveErrorBodyCallback({callback:e,body:t,contentType:r,statusCode:i,statusMessage:a,headers:A}){n(t);let c=[];let u=0;for await(const e of t){c.push(e);u+=e.length;if(u>128*1024){c=null;break}}if(i===204||!r||!c){process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,A));return}try{if(r.startsWith("application/json")){const t=JSON.parse(o(Buffer.concat(c)));process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,A,t));return}if(r.startsWith("text/")){const t=o(Buffer.concat(c));process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,A,t));return}}catch(e){}process.nextTick(e,new s(`Response status code ${i}${a?`: ${a}`:""}`,i,A))}e.exports={getResolveErrorBodyCallback:getResolveErrorBodyCallback}},1093:(e,t,r)=>{const{BalancedPoolMissingUpstreamError:n,InvalidArgumentError:s}=r(8707);const{PoolBase:o,kClients:i,kNeedDrain:a,kAddClient:A,kRemoveClient:c,kGetDispatcher:u}=r(8640);const l=r(5076);const{kUrl:p,kInterceptors:d}=r(6443);const{parseOrigin:g}=r(3440);const h=Symbol("factory");const E=Symbol("options");const m=Symbol("kGreatestCommonDivisor");const I=Symbol("kCurrentWeight");const y=Symbol("kIndex");const C=Symbol("kWeight");const Q=Symbol("kMaxWeightPerServer");const B=Symbol("kErrorPenalty");function getGreatestCommonDivisor(e,t){if(t===0)return e;return getGreatestCommonDivisor(t,e%t)}function defaultFactory(e,t){return new l(e,t)}class BalancedPool extends o{constructor(e=[],{factory:t=defaultFactory,...r}={}){super();this[E]=r;this[y]=-1;this[I]=0;this[Q]=this[E].maxWeightPerServer||100;this[B]=this[E].errorPenalty||15;if(!Array.isArray(e)){e=[e]}if(typeof t!=="function"){throw new s("factory must be a function.")}this[d]=r.interceptors&&r.interceptors.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[];this[h]=t;for(const t of e){this.addUpstream(t)}this._updateBalancedPoolStats()}addUpstream(e){const t=g(e).origin;if(this[i].find((e=>e[p].origin===t&&e.closed!==true&&e.destroyed!==true))){return this}const r=this[h](t,Object.assign({},this[E]));this[A](r);r.on("connect",(()=>{r[C]=Math.min(this[Q],r[C]+this[B])}));r.on("connectionError",(()=>{r[C]=Math.max(1,r[C]-this[B]);this._updateBalancedPoolStats()}));r.on("disconnect",((...e)=>{const t=e[2];if(t&&t.code==="UND_ERR_SOCKET"){r[C]=Math.max(1,r[C]-this[B]);this._updateBalancedPoolStats()}}));for(const e of this[i]){e[C]=this[Q]}this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){this[m]=this[i].map((e=>e[C])).reduce(getGreatestCommonDivisor,0)}removeUpstream(e){const t=g(e).origin;const r=this[i].find((e=>e[p].origin===t&&e.closed!==true&&e.destroyed!==true));if(r){this[c](r)}return this}get upstreams(){return this[i].filter((e=>e.closed!==true&&e.destroyed!==true)).map((e=>e[p].origin))}[u](){if(this[i].length===0){throw new n}const e=this[i].find((e=>!e[a]&&e.closed!==true&&e.destroyed!==true));if(!e){return}const t=this[i].map((e=>e[a])).reduce(((e,t)=>e&&t),true);if(t){return}let r=0;let s=this[i].findIndex((e=>!e[a]));while(r++this[i][s][C]&&!e[a]){s=this[y]}if(this[y]===0){this[I]=this[I]-this[m];if(this[I]<=0){this[I]=this[Q]}}if(e[C]>=this[I]&&!e[a]){return e}}this[I]=this[i][s][C];this[y]=s;return this[i][s]}}e.exports=BalancedPool},479:(e,t,r)=>{const{kConstruct:n}=r(296);const{urlEquals:s,fieldValues:o}=r(3993);const{kEnumerableProperty:i,isDisturbed:a}=r(3440);const{kHeadersList:A}=r(6443);const{webidl:c}=r(4222);const{Response:u,cloneResponse:l}=r(8676);const{Request:p}=r(5194);const{kState:d,kHeaders:g,kGuard:h,kRealm:E}=r(9710);const{fetching:m}=r(2315);const{urlIsHttpHttpsScheme:I,createDeferredPromise:y,readAllBytes:C}=r(5523);const Q=r(2613);const{getGlobalDispatcher:B}=r(2581);class Cache{#e;constructor(){if(arguments[0]!==n){c.illegalConstructor()}this.#e=arguments[1]}async match(e,t={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.match"});e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);const r=await this.matchAll(e,t);if(r.length===0){return}return r[0]}async matchAll(e=undefined,t={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);let r=null;if(e!==undefined){if(e instanceof p){r=e[d];if(r.method!=="GET"&&!t.ignoreMethod){return[]}}else if(typeof e==="string"){r=new p(e)[d]}}const n=[];if(e===undefined){for(const e of this.#e){n.push(e[1])}}else{const e=this.#t(r,t);for(const t of e){n.push(t[1])}}const s=[];for(const e of n){const t=new u(e.body?.source??null);const r=t[d].body;t[d]=e;t[d].body=r;t[g][A]=e.headersList;t[g][h]="immutable";s.push(t)}return Object.freeze(s)}async add(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.add"});e=c.converters.RequestInfo(e);const t=[e];const r=this.addAll(t);return await r}async addAll(e){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.addAll"});e=c.converters["sequence"](e);const t=[];const r=[];for(const t of e){if(typeof t==="string"){continue}const e=t[d];if(!I(e.url)||e.method!=="GET"){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}}const n=[];for(const s of e){const e=new p(s)[d];if(!I(e.url)){throw c.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."})}e.initiator="fetch";e.destination="subresource";r.push(e);const i=y();n.push(m({request:e,dispatcher:B(),processResponse(e){if(e.type==="error"||e.status===206||e.status<200||e.status>299){i.reject(c.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}))}else if(e.headersList.contains("vary")){const t=o(e.headersList.get("vary"));for(const e of t){if(e==="*"){i.reject(c.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const e of n){e.abort()}return}}}},processResponseEndOfBody(e){if(e.aborted){i.reject(new DOMException("aborted","AbortError"));return}i.resolve(e)}}));t.push(i.promise)}const s=Promise.all(t);const i=await s;const a=[];let A=0;for(const e of i){const t={type:"put",request:r[A],response:e};a.push(t);A++}const u=y();let l=null;try{this.#r(a)}catch(e){l=e}queueMicrotask((()=>{if(l===null){u.resolve(undefined)}else{u.reject(l)}}));return u.promise}async put(e,t){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,2,{header:"Cache.put"});e=c.converters.RequestInfo(e);t=c.converters.Response(t);let r=null;if(e instanceof p){r=e[d]}else{r=new p(e)[d]}if(!I(r.url)||r.method!=="GET"){throw c.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"})}const n=t[d];if(n.status===206){throw c.errors.exception({header:"Cache.put",message:"Got 206 status"})}if(n.headersList.contains("vary")){const e=o(n.headersList.get("vary"));for(const t of e){if(t==="*"){throw c.errors.exception({header:"Cache.put",message:"Got * vary field value"})}}}if(n.body&&(a(n.body.stream)||n.body.stream.locked)){throw c.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"})}const s=l(n);const i=y();if(n.body!=null){const e=n.body.stream;const t=e.getReader();C(t).then(i.resolve,i.reject)}else{i.resolve(undefined)}const A=[];const u={type:"put",request:r,response:s};A.push(u);const g=await i.promise;if(s.body!=null){s.body.source=g}const h=y();let E=null;try{this.#r(A)}catch(e){E=e}queueMicrotask((()=>{if(E===null){h.resolve()}else{h.reject(E)}}));return h.promise}async delete(e,t={}){c.brandCheck(this,Cache);c.argumentLengthCheck(arguments,1,{header:"Cache.delete"});e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);let r=null;if(e instanceof p){r=e[d];if(r.method!=="GET"&&!t.ignoreMethod){return false}}else{Q(typeof e==="string");r=new p(e)[d]}const n=[];const s={type:"delete",request:r,options:t};n.push(s);const o=y();let i=null;let a;try{a=this.#r(n)}catch(e){i=e}queueMicrotask((()=>{if(i===null){o.resolve(!!a?.length)}else{o.reject(i)}}));return o.promise}async keys(e=undefined,t={}){c.brandCheck(this,Cache);if(e!==undefined)e=c.converters.RequestInfo(e);t=c.converters.CacheQueryOptions(t);let r=null;if(e!==undefined){if(e instanceof p){r=e[d];if(r.method!=="GET"&&!t.ignoreMethod){return[]}}else if(typeof e==="string"){r=new p(e)[d]}}const n=y();const s=[];if(e===undefined){for(const e of this.#e){s.push(e[0])}}else{const e=this.#t(r,t);for(const t of e){s.push(t[0])}}queueMicrotask((()=>{const e=[];for(const t of s){const r=new p("https://a");r[d]=t;r[g][A]=t.headersList;r[g][h]="immutable";r[E]=t.client;e.push(r)}n.resolve(Object.freeze(e))}));return n.promise}#r(e){const t=this.#e;const r=[...t];const n=[];const s=[];try{for(const r of e){if(r.type!=="delete"&&r.type!=="put"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'})}if(r.type==="delete"&&r.response!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"})}if(this.#t(r.request,r.options,n).length){throw new DOMException("???","InvalidStateError")}let e;if(r.type==="delete"){e=this.#t(r.request,r.options);if(e.length===0){return[]}for(const r of e){const e=t.indexOf(r);Q(e!==-1);t.splice(e,1)}}else if(r.type==="put"){if(r.response==null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"})}const s=r.request;if(!I(s.url)){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(s.method!=="GET"){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"})}if(r.options!=null){throw c.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"})}e=this.#t(r.request);for(const r of e){const e=t.indexOf(r);Q(e!==-1);t.splice(e,1)}t.push([r.request,r.response]);n.push([r.request,r.response])}s.push([r.request,r.response])}return s}catch(e){this.#e.length=0;this.#e=r;throw e}}#t(e,t,r){const n=[];const s=r??this.#e;for(const r of s){const[s,o]=r;if(this.#n(e,s,o,t)){n.push(r)}}return n}#n(e,t,r=null,n){const i=new URL(e.url);const a=new URL(t.url);if(n?.ignoreSearch){a.search="";i.search=""}if(!s(i,a,true)){return false}if(r==null||n?.ignoreVary||!r.headersList.contains("vary")){return true}const A=o(r.headersList.get("vary"));for(const r of A){if(r==="*"){return false}const n=t.headersList.get(r);const s=e.headersList.get(r);if(n!==s){return false}}return true}}Object.defineProperties(Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:i,matchAll:i,add:i,addAll:i,put:i,delete:i,keys:i});const b=[{key:"ignoreSearch",converter:c.converters.boolean,defaultValue:false},{key:"ignoreMethod",converter:c.converters.boolean,defaultValue:false},{key:"ignoreVary",converter:c.converters.boolean,defaultValue:false}];c.converters.CacheQueryOptions=c.dictionaryConverter(b);c.converters.MultiCacheQueryOptions=c.dictionaryConverter([...b,{key:"cacheName",converter:c.converters.DOMString}]);c.converters.Response=c.interfaceConverter(u);c.converters["sequence"]=c.sequenceConverter(c.converters.RequestInfo);e.exports={Cache:Cache}},4738:(e,t,r)=>{const{kConstruct:n}=r(296);const{Cache:s}=r(479);const{webidl:o}=r(4222);const{kEnumerableProperty:i}=r(3440);class CacheStorage{#s=new Map;constructor(){if(arguments[0]!==n){o.illegalConstructor()}}async match(e,t={}){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"});e=o.converters.RequestInfo(e);t=o.converters.MultiCacheQueryOptions(t);if(t.cacheName!=null){if(this.#s.has(t.cacheName)){const r=this.#s.get(t.cacheName);const o=new s(n,r);return await o.match(e,t)}}else{for(const r of this.#s.values()){const o=new s(n,r);const i=await o.match(e,t);if(i!==undefined){return i}}}}async has(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"});e=o.converters.DOMString(e);return this.#s.has(e)}async open(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"});e=o.converters.DOMString(e);if(this.#s.has(e)){const t=this.#s.get(e);return new s(n,t)}const t=[];this.#s.set(e,t);return new s(n,t)}async delete(e){o.brandCheck(this,CacheStorage);o.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"});e=o.converters.DOMString(e);return this.#s.delete(e)}async keys(){o.brandCheck(this,CacheStorage);const e=this.#s.keys();return[...e]}}Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:i,has:i,open:i,delete:i,keys:i});e.exports={CacheStorage:CacheStorage}},296:(e,t,r)=>{e.exports={kConstruct:r(6443).kConstruct}},3993:(e,t,r)=>{const n=r(2613);const{URLSerializer:s}=r(4322);const{isValidHeaderName:o}=r(5523);function urlEquals(e,t,r=false){const n=s(e,r);const o=s(t,r);return n===o}function fieldValues(e){n(e!==null);const t=[];for(let r of e.split(",")){r=r.trim();if(!r.length){continue}else if(!o(r)){continue}t.push(r)}return t}e.exports={urlEquals:urlEquals,fieldValues:fieldValues}},6197:(e,t,r)=>{const n=r(2613);const s=r(9278);const o=r(8611);const{pipeline:i}=r(2203);const a=r(3440);const A=r(8804);const c=r(4655);const u=r(1);const{RequestContentLengthMismatchError:l,ResponseContentLengthMismatchError:p,InvalidArgumentError:d,RequestAbortedError:g,HeadersTimeoutError:h,HeadersOverflowError:E,SocketError:m,InformationalError:I,BodyTimeoutError:y,HTTPParserError:C,ResponseExceededMaxSizeError:Q,ClientDestroyedError:B}=r(8707);const b=r(9136);const{kUrl:T,kReset:w,kServerName:v,kClient:R,kBusy:k,kParser:D,kConnect:_,kBlocking:S,kResuming:F,kRunning:N,kPending:O,kSize:L,kWriting:U,kQueue:G,kConnected:P,kConnecting:M,kNeedDrain:x,kNoRef:V,kKeepAliveDefaultTimeout:j,kHostHeader:H,kPendingIdx:Y,kRunningIdx:q,kError:J,kPipelining:W,kSocket:K,kKeepAliveTimeoutValue:$,kMaxHeadersSize:z,kKeepAliveMaxTimeout:Z,kKeepAliveTimeoutThreshold:X,kHeadersTimeout:ee,kBodyTimeout:te,kStrictContentLength:re,kConnector:ne,kMaxRedirections:se,kMaxRequests:oe,kCounter:ie,kClose:ae,kDestroy:Ae,kDispatch:ce,kInterceptors:ue,kLocalAddress:le,kMaxResponseSize:pe,kHTTPConnVersion:de,kHost:ge,kHTTP2Session:fe,kHTTP2SessionState:he,kHTTP2BuildRequest:Ee,kHTTP2CopyHeaders:me,kHTTP1BuildRequest:Ie}=r(6443);let ye;try{ye=r(5675)}catch{ye={constants:{}}}const{constants:{HTTP2_HEADER_AUTHORITY:Ce,HTTP2_HEADER_METHOD:Qe,HTTP2_HEADER_PATH:Be,HTTP2_HEADER_SCHEME:be,HTTP2_HEADER_CONTENT_LENGTH:Te,HTTP2_HEADER_EXPECT:we,HTTP2_HEADER_STATUS:ve}}=ye;let Re=false;const ke=Buffer[Symbol.species];const De=Symbol("kClosedResolve");const _e={};try{const e=r(1637);_e.sendHeaders=e.channel("undici:client:sendHeaders");_e.beforeConnect=e.channel("undici:client:beforeConnect");_e.connectError=e.channel("undici:client:connectError");_e.connected=e.channel("undici:client:connected")}catch{_e.sendHeaders={hasSubscribers:false};_e.beforeConnect={hasSubscribers:false};_e.connectError={hasSubscribers:false};_e.connected={hasSubscribers:false}}class Client extends u{constructor(e,{interceptors:t,maxHeaderSize:r,headersTimeout:n,socketTimeout:i,requestTimeout:A,connectTimeout:c,bodyTimeout:u,idleTimeout:l,keepAlive:p,keepAliveTimeout:g,maxKeepAliveTimeout:h,keepAliveMaxTimeout:E,keepAliveTimeoutThreshold:m,socketPath:I,pipelining:y,tls:C,strictContentLength:Q,maxCachedSessions:B,maxRedirections:w,connect:R,maxRequestsPerClient:k,localAddress:D,maxResponseSize:_,autoSelectFamily:S,autoSelectFamilyAttemptTimeout:N,allowH2:O,maxConcurrentStreams:L}={}){super();if(p!==undefined){throw new d("unsupported keepAlive, use pipelining=0 instead")}if(i!==undefined){throw new d("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(A!==undefined){throw new d("unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(l!==undefined){throw new d("unsupported idleTimeout, use keepAliveTimeout instead")}if(h!==undefined){throw new d("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(r!=null&&!Number.isFinite(r)){throw new d("invalid maxHeaderSize")}if(I!=null&&typeof I!=="string"){throw new d("invalid socketPath")}if(c!=null&&(!Number.isFinite(c)||c<0)){throw new d("invalid connectTimeout")}if(g!=null&&(!Number.isFinite(g)||g<=0)){throw new d("invalid keepAliveTimeout")}if(E!=null&&(!Number.isFinite(E)||E<=0)){throw new d("invalid keepAliveMaxTimeout")}if(m!=null&&!Number.isFinite(m)){throw new d("invalid keepAliveTimeoutThreshold")}if(n!=null&&(!Number.isInteger(n)||n<0)){throw new d("headersTimeout must be a positive integer or zero")}if(u!=null&&(!Number.isInteger(u)||u<0)){throw new d("bodyTimeout must be a positive integer or zero")}if(R!=null&&typeof R!=="function"&&typeof R!=="object"){throw new d("connect must be a function or an object")}if(w!=null&&(!Number.isInteger(w)||w<0)){throw new d("maxRedirections must be a positive number")}if(k!=null&&(!Number.isInteger(k)||k<0)){throw new d("maxRequestsPerClient must be a positive number")}if(D!=null&&(typeof D!=="string"||s.isIP(D)===0)){throw new d("localAddress must be valid string IP address")}if(_!=null&&(!Number.isInteger(_)||_<-1)){throw new d("maxResponseSize must be a positive number")}if(N!=null&&(!Number.isInteger(N)||N<-1)){throw new d("autoSelectFamilyAttemptTimeout must be a positive number")}if(O!=null&&typeof O!=="boolean"){throw new d("allowH2 must be a valid boolean value")}if(L!=null&&(typeof L!=="number"||L<1)){throw new d("maxConcurrentStreams must be a possitive integer, greater than 0")}if(typeof R!=="function"){R=b({...C,maxCachedSessions:B,allowH2:O,socketPath:I,timeout:c,...a.nodeHasAutoSelectFamily&&S?{autoSelectFamily:S,autoSelectFamilyAttemptTimeout:N}:undefined,...R})}this[ue]=t&&t.Client&&Array.isArray(t.Client)?t.Client:[Fe({maxRedirections:w})];this[T]=a.parseOrigin(e);this[ne]=R;this[K]=null;this[W]=y!=null?y:1;this[z]=r||o.maxHeaderSize;this[j]=g==null?4e3:g;this[Z]=E==null?6e5:E;this[X]=m==null?1e3:m;this[$]=this[j];this[v]=null;this[le]=D!=null?D:null;this[F]=0;this[x]=0;this[H]=`host: ${this[T].hostname}${this[T].port?`:${this[T].port}`:""}\r\n`;this[te]=u!=null?u:3e5;this[ee]=n!=null?n:3e5;this[re]=Q==null?true:Q;this[se]=w;this[oe]=k;this[De]=null;this[pe]=_>-1?_:-1;this[de]="h1";this[fe]=null;this[he]=!O?null:{openStreams:0,maxConcurrentStreams:L!=null?L:100};this[ge]=`${this[T].hostname}${this[T].port?`:${this[T].port}`:""}`;this[G]=[];this[q]=0;this[Y]=0}get pipelining(){return this[W]}set pipelining(e){this[W]=e;resume(this,true)}get[O](){return this[G].length-this[Y]}get[N](){return this[Y]-this[q]}get[L](){return this[G].length-this[q]}get[P](){return!!this[K]&&!this[M]&&!this[K].destroyed}get[k](){const e=this[K];return e&&(e[w]||e[U]||e[S])||this[L]>=(this[W]||1)||this[O]>0}[_](e){connect(this);this.once("connect",e)}[ce](e,t){const r=e.origin||this[T].origin;const n=this[de]==="h2"?c[Ee](r,e,t):c[Ie](r,e,t);this[G].push(n);if(this[F]){}else if(a.bodyLength(n.body)==null&&a.isIterable(n.body)){this[F]=1;process.nextTick(resume,this)}else{resume(this,true)}if(this[F]&&this[x]!==2&&this[k]){this[x]=2}return this[x]<2}async[ae](){return new Promise((e=>{if(!this[L]){e(null)}else{this[De]=e}}))}async[Ae](e){return new Promise((t=>{const r=this[G].splice(this[Y]);for(let t=0;t{if(this[De]){this[De]();this[De]=null}t()};if(this[fe]!=null){a.destroy(this[fe],e);this[fe]=null;this[he]=null}if(!this[K]){queueMicrotask(callback)}else{a.destroy(this[K].on("close",callback),e)}resume(this)}))}}function onHttp2SessionError(e){n(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");this[K][J]=e;onError(this[R],e)}function onHttp2FrameError(e,t,r){const n=new I(`HTTP/2: "frameError" received - type ${e}, code ${t}`);if(r===0){this[K][J]=n;onError(this[R],n)}}function onHttp2SessionEnd(){a.destroy(this,new m("other side closed"));a.destroy(this[K],new m("other side closed"))}function onHTTP2GoAway(e){const t=this[R];const r=new I(`HTTP/2: "GOAWAY" frame received with code ${e}`);t[K]=null;t[fe]=null;if(t.destroyed){n(this[O]===0);const e=t[G].splice(t[q]);for(let t=0;t0){const e=t[G][t[q]];t[G][t[q]++]=null;errorRequest(t,e,r)}t[Y]=t[q];n(t[N]===0);t.emit("disconnect",t[T],[t],r);resume(t)}const Se=r(2824);const Fe=r(4415);const Ne=Buffer.alloc(0);async function lazyllhttp(){const e=process.env.JEST_WORKER_ID?r(3870):undefined;let t;try{t=await WebAssembly.compile(Buffer.from(r(3434),"base64"))}catch(n){t=await WebAssembly.compile(Buffer.from(e||r(3870),"base64"))}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(e,t,r)=>0,wasm_on_status:(e,t,r)=>{n.strictEqual(Ue.ptr,e);const s=t-Me+Ge.byteOffset;return Ue.onStatus(new ke(Ge.buffer,s,r))||0},wasm_on_message_begin:e=>{n.strictEqual(Ue.ptr,e);return Ue.onMessageBegin()||0},wasm_on_header_field:(e,t,r)=>{n.strictEqual(Ue.ptr,e);const s=t-Me+Ge.byteOffset;return Ue.onHeaderField(new ke(Ge.buffer,s,r))||0},wasm_on_header_value:(e,t,r)=>{n.strictEqual(Ue.ptr,e);const s=t-Me+Ge.byteOffset;return Ue.onHeaderValue(new ke(Ge.buffer,s,r))||0},wasm_on_headers_complete:(e,t,r,s)=>{n.strictEqual(Ue.ptr,e);return Ue.onHeadersComplete(t,Boolean(r),Boolean(s))||0},wasm_on_body:(e,t,r)=>{n.strictEqual(Ue.ptr,e);const s=t-Me+Ge.byteOffset;return Ue.onBody(new ke(Ge.buffer,s,r))||0},wasm_on_message_complete:e=>{n.strictEqual(Ue.ptr,e);return Ue.onMessageComplete()||0}}})}let Oe=null;let Le=lazyllhttp();Le.catch();let Ue=null;let Ge=null;let Pe=0;let Me=null;const xe=1;const Ve=2;const je=3;class Parser{constructor(e,t,{exports:r}){n(Number.isFinite(e[z])&&e[z]>0);this.llhttp=r;this.ptr=this.llhttp.llhttp_alloc(Se.TYPE.RESPONSE);this.client=e;this.socket=t;this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.statusCode=null;this.statusText="";this.upgrade=false;this.headers=[];this.headersSize=0;this.headersMaxSize=e[z];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this);this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=e[pe]}setTimeout(e,t){this.timeoutType=t;if(e!==this.timeoutValue){A.clearTimeout(this.timeout);if(e){this.timeout=A.setTimeout(onParserTimeout,e,this);if(this.timeout.unref){this.timeout.unref()}}else{this.timeout=null}this.timeoutValue=e}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}}resume(){if(this.socket.destroyed||!this.paused){return}n(this.ptr!=null);n(Ue==null);this.llhttp.llhttp_resume(this.ptr);n(this.timeoutType===Ve);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||Ne);this.readMore()}readMore(){while(!this.paused&&this.ptr){const e=this.socket.read();if(e===null){break}this.execute(e)}}execute(e){n(this.ptr!=null);n(Ue==null);n(!this.paused);const{socket:t,llhttp:r}=this;if(e.length>Pe){if(Me){r.free(Me)}Pe=Math.ceil(e.length/4096)*4096;Me=r.malloc(Pe)}new Uint8Array(r.memory.buffer,Me,Pe).set(e);try{let n;try{Ge=e;Ue=this;n=r.llhttp_execute(this.ptr,Me,e.length)}catch(e){throw e}finally{Ue=null;Ge=null}const s=r.llhttp_get_error_pos(this.ptr)-Me;if(n===Se.ERROR.PAUSED_UPGRADE){this.onUpgrade(e.slice(s))}else if(n===Se.ERROR.PAUSED){this.paused=true;t.unshift(e.slice(s))}else if(n!==Se.ERROR.OK){const t=r.llhttp_get_error_reason(this.ptr);let o="";if(t){const e=new Uint8Array(r.memory.buffer,t).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,t,e).toString()+")"}throw new C(o,Se.ERROR[n],e.slice(s))}}catch(e){a.destroy(t,e)}}destroy(){n(this.ptr!=null);n(Ue==null);this.llhttp.llhttp_free(this.ptr);this.ptr=null;A.clearTimeout(this.timeout);this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.paused=false}onStatus(e){this.statusText=e.toString()}onMessageBegin(){const{socket:e,client:t}=this;if(e.destroyed){return-1}const r=t[G][t[q]];if(!r){return-1}}onHeaderField(e){const t=this.headers.length;if((t&1)===0){this.headers.push(e)}else{this.headers[t-1]=Buffer.concat([this.headers[t-1],e])}this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;if((t&1)===1){this.headers.push(e);t+=1}else{this.headers[t-1]=Buffer.concat([this.headers[t-1],e])}const r=this.headers[t-2];if(r.length===10&&r.toString().toLowerCase()==="keep-alive"){this.keepAlive+=e.toString()}else if(r.length===10&&r.toString().toLowerCase()==="connection"){this.connection+=e.toString()}else if(r.length===14&&r.toString().toLowerCase()==="content-length"){this.contentLength+=e.toString()}this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e;if(this.headersSize>=this.headersMaxSize){a.destroy(this.socket,new E)}}onUpgrade(e){const{upgrade:t,client:r,socket:s,headers:o,statusCode:i}=this;n(t);const A=r[G][r[q]];n(A);n(!s.destroyed);n(s===r[K]);n(!this.paused);n(A.upgrade||A.method==="CONNECT");this.statusCode=null;this.statusText="";this.shouldKeepAlive=null;n(this.headers.length%2===0);this.headers=[];this.headersSize=0;s.unshift(e);s[D].destroy();s[D]=null;s[R]=null;s[J]=null;s.removeListener("error",onSocketError).removeListener("readable",onSocketReadable).removeListener("end",onSocketEnd).removeListener("close",onSocketClose);r[K]=null;r[G][r[q]++]=null;r.emit("disconnect",r[T],[r],new I("upgrade"));try{A.onUpgrade(i,o,s)}catch(e){a.destroy(s,e)}resume(r)}onHeadersComplete(e,t,r){const{client:s,socket:o,headers:i,statusText:A}=this;if(o.destroyed){return-1}const c=s[G][s[q]];if(!c){return-1}n(!this.upgrade);n(this.statusCode<200);if(e===100){a.destroy(o,new m("bad response",a.getSocketInfo(o)));return-1}if(t&&!c.upgrade){a.destroy(o,new m("bad upgrade",a.getSocketInfo(o)));return-1}n.strictEqual(this.timeoutType,xe);this.statusCode=e;this.shouldKeepAlive=r||c.method==="HEAD"&&!o[w]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const e=c.bodyTimeout!=null?c.bodyTimeout:s[te];this.setTimeout(e,Ve)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(c.method==="CONNECT"){n(s[N]===1);this.upgrade=true;return 2}if(t){n(s[N]===1);this.upgrade=true;return 2}n(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&s[W]){const e=this.keepAlive?a.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){const t=Math.min(e-s[X],s[Z]);if(t<=0){o[w]=true}else{s[$]=t}}else{s[$]=s[j]}}else{o[w]=true}const u=c.onHeaders(e,i,this.resume,A)===false;if(c.aborted){return-1}if(c.method==="HEAD"){return 1}if(e<200){return 1}if(o[S]){o[S]=false;resume(s)}return u?Se.ERROR.PAUSED:0}onBody(e){const{client:t,socket:r,statusCode:s,maxResponseSize:o}=this;if(r.destroyed){return-1}const i=t[G][t[q]];n(i);n.strictEqual(this.timeoutType,Ve);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}n(s>=200);if(o>-1&&this.bytesRead+e.length>o){a.destroy(r,new Q);return-1}this.bytesRead+=e.length;if(i.onData(e)===false){return Se.ERROR.PAUSED}}onMessageComplete(){const{client:e,socket:t,statusCode:r,upgrade:s,headers:o,contentLength:i,bytesRead:A,shouldKeepAlive:c}=this;if(t.destroyed&&(!r||c)){return-1}if(s){return}const u=e[G][e[q]];n(u);n(r>=100);this.statusCode=null;this.statusText="";this.bytesRead=0;this.contentLength="";this.keepAlive="";this.connection="";n(this.headers.length%2===0);this.headers=[];this.headersSize=0;if(r<200){return}if(u.method!=="HEAD"&&i&&A!==parseInt(i,10)){a.destroy(t,new p);return-1}u.onComplete(o);e[G][e[q]++]=null;if(t[U]){n.strictEqual(e[N],0);a.destroy(t,new I("reset"));return Se.ERROR.PAUSED}else if(!c){a.destroy(t,new I("reset"));return Se.ERROR.PAUSED}else if(t[w]&&e[N]===0){a.destroy(t,new I("reset"));return Se.ERROR.PAUSED}else if(e[W]===1){setImmediate(resume,e)}else{resume(e)}}}function onParserTimeout(e){const{socket:t,timeoutType:r,client:s}=e;if(r===xe){if(!t[U]||t.writableNeedDrain||s[N]>1){n(!e.paused,"cannot be paused while waiting for headers");a.destroy(t,new h)}}else if(r===Ve){if(!e.paused){a.destroy(t,new y)}}else if(r===je){n(s[N]===0&&s[$]);a.destroy(t,new I("socket idle timeout"))}}function onSocketReadable(){const{[D]:e}=this;if(e){e.readMore()}}function onSocketError(e){const{[R]:t,[D]:r}=this;n(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID");if(t[de]!=="h2"){if(e.code==="ECONNRESET"&&r.statusCode&&!r.shouldKeepAlive){r.onMessageComplete();return}}this[J]=e;onError(this[R],e)}function onError(e,t){if(e[N]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){n(e[Y]===e[q]);const r=e[G].splice(e[q]);for(let n=0;n0&&r.code!=="UND_ERR_INFO"){const t=e[G][e[q]];e[G][e[q]++]=null;errorRequest(e,t,r)}e[Y]=e[q];n(e[N]===0);e.emit("disconnect",e[T],[e],r);resume(e)}async function connect(e){n(!e[M]);n(!e[K]);let{host:t,hostname:r,protocol:o,port:i}=e[T];if(r[0]==="["){const e=r.indexOf("]");n(e!==-1);const t=r.substring(1,e);n(s.isIP(t));r=t}e[M]=true;if(_e.beforeConnect.hasSubscribers){_e.beforeConnect.publish({connectParams:{host:t,hostname:r,protocol:o,port:i,servername:e[v],localAddress:e[le]},connector:e[ne]})}try{const s=await new Promise(((n,s)=>{e[ne]({host:t,hostname:r,protocol:o,port:i,servername:e[v],localAddress:e[le]},((e,t)=>{if(e){s(e)}else{n(t)}}))}));if(e.destroyed){a.destroy(s.on("error",(()=>{})),new B);return}e[M]=false;n(s);const A=s.alpnProtocol==="h2";if(A){if(!Re){Re=true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const t=ye.connect(e[T],{createConnection:()=>s,peerMaxConcurrentStreams:e[he].maxConcurrentStreams});e[de]="h2";t[R]=e;t[K]=s;t.on("error",onHttp2SessionError);t.on("frameError",onHttp2FrameError);t.on("end",onHttp2SessionEnd);t.on("goaway",onHTTP2GoAway);t.on("close",onSocketClose);t.unref();e[fe]=t;s[fe]=t}else{if(!Oe){Oe=await Le;Le=null}s[V]=false;s[U]=false;s[w]=false;s[S]=false;s[D]=new Parser(e,s,Oe)}s[ie]=0;s[oe]=e[oe];s[R]=e;s[J]=null;s.on("error",onSocketError).on("readable",onSocketReadable).on("end",onSocketEnd).on("close",onSocketClose);e[K]=s;if(_e.connected.hasSubscribers){_e.connected.publish({connectParams:{host:t,hostname:r,protocol:o,port:i,servername:e[v],localAddress:e[le]},connector:e[ne],socket:s})}e.emit("connect",e[T],[e])}catch(s){if(e.destroyed){return}e[M]=false;if(_e.connectError.hasSubscribers){_e.connectError.publish({connectParams:{host:t,hostname:r,protocol:o,port:i,servername:e[v],localAddress:e[le]},connector:e[ne],error:s})}if(s.code==="ERR_TLS_CERT_ALTNAME_INVALID"){n(e[N]===0);while(e[O]>0&&e[G][e[Y]].servername===e[v]){const t=e[G][e[Y]++];errorRequest(e,t,s)}}else{onError(e,s)}e.emit("connectionError",e[T],[e],s)}resume(e)}function emitDrain(e){e[x]=0;e.emit("drain",e[T],[e])}function resume(e,t){if(e[F]===2){return}e[F]=2;_resume(e,t);e[F]=0;if(e[q]>256){e[G].splice(0,e[q]);e[Y]-=e[q];e[q]=0}}function _resume(e,t){while(true){if(e.destroyed){n(e[O]===0);return}if(e[De]&&!e[L]){e[De]();e[De]=null;return}const r=e[K];if(r&&!r.destroyed&&r.alpnProtocol!=="h2"){if(e[L]===0){if(!r[V]&&r.unref){r.unref();r[V]=true}}else if(r[V]&&r.ref){r.ref();r[V]=false}if(e[L]===0){if(r[D].timeoutType!==je){r[D].setTimeout(e[$],je)}}else if(e[N]>0&&r[D].statusCode<200){if(r[D].timeoutType!==xe){const t=e[G][e[q]];const n=t.headersTimeout!=null?t.headersTimeout:e[ee];r[D].setTimeout(n,xe)}}}if(e[k]){e[x]=2}else if(e[x]===2){if(t){e[x]=1;process.nextTick(emitDrain,e)}else{emitDrain(e)}continue}if(e[O]===0){return}if(e[N]>=(e[W]||1)){return}const s=e[G][e[Y]];if(e[T].protocol==="https:"&&e[v]!==s.servername){if(e[N]>0){return}e[v]=s.servername;if(r&&r.servername!==s.servername){a.destroy(r,new I("servername changed"));return}}if(e[M]){return}if(!r&&!e[fe]){connect(e);return}if(r.destroyed||r[U]||r[w]||r[S]){return}if(e[N]>0&&!s.idempotent){return}if(e[N]>0&&(s.upgrade||s.method==="CONNECT")){return}if(e[N]>0&&a.bodyLength(s.body)!==0&&(a.isStream(s.body)||a.isAsyncIterable(s.body))){return}if(!s.aborted&&write(e,s)){e[Y]++}else{e[G].splice(e[Y],1)}}}function shouldSendContentLength(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function write(e,t){if(e[de]==="h2"){writeH2(e,e[fe],t);return}const{body:r,method:s,path:o,host:i,upgrade:A,headers:c,blocking:u,reset:p}=t;const d=s==="PUT"||s==="POST"||s==="PATCH";if(r&&typeof r.read==="function"){r.read(0)}const h=a.bodyLength(r);let E=h;if(E===null){E=t.contentLength}if(E===0&&!d){E=null}if(shouldSendContentLength(s)&&E>0&&t.contentLength!==null&&t.contentLength!==E){if(e[re]){errorRequest(e,t,new l);return false}process.emitWarning(new l)}const m=e[K];try{t.onConnect((r=>{if(t.aborted||t.completed){return}errorRequest(e,t,r||new g);a.destroy(m,new I("aborted"))}))}catch(r){errorRequest(e,t,r)}if(t.aborted){return false}if(s==="HEAD"){m[w]=true}if(A||s==="CONNECT"){m[w]=true}if(p!=null){m[w]=p}if(e[oe]&&m[ie]++>=e[oe]){m[w]=true}if(u){m[S]=true}let y=`${s} ${o} HTTP/1.1\r\n`;if(typeof i==="string"){y+=`host: ${i}\r\n`}else{y+=e[H]}if(A){y+=`connection: upgrade\r\nupgrade: ${A}\r\n`}else if(e[W]&&!m[w]){y+="connection: keep-alive\r\n"}else{y+="connection: close\r\n"}if(c){y+=c}if(_e.sendHeaders.hasSubscribers){_e.sendHeaders.publish({request:t,headers:y,socket:m})}if(!r||h===0){if(E===0){m.write(`${y}content-length: 0\r\n\r\n`,"latin1")}else{n(E===null,"no body must not have content length");m.write(`${y}\r\n`,"latin1")}t.onRequestSent()}else if(a.isBuffer(r)){n(E===r.byteLength,"buffer body must have content length");m.cork();m.write(`${y}content-length: ${E}\r\n\r\n`,"latin1");m.write(r);m.uncork();t.onBodySent(r);t.onRequestSent();if(!d){m[w]=true}}else if(a.isBlobLike(r)){if(typeof r.stream==="function"){writeIterable({body:r.stream(),client:e,request:t,socket:m,contentLength:E,header:y,expectsPayload:d})}else{writeBlob({body:r,client:e,request:t,socket:m,contentLength:E,header:y,expectsPayload:d})}}else if(a.isStream(r)){writeStream({body:r,client:e,request:t,socket:m,contentLength:E,header:y,expectsPayload:d})}else if(a.isIterable(r)){writeIterable({body:r,client:e,request:t,socket:m,contentLength:E,header:y,expectsPayload:d})}else{n(false)}return true}function writeH2(e,t,r){const{body:s,method:o,path:i,host:A,upgrade:u,expectContinue:p,signal:d,headers:h}=r;let E;if(typeof h==="string")E=c[me](h.trim());else E=h;if(u){errorRequest(e,r,new Error("Upgrade not supported for H2"));return false}try{r.onConnect((t=>{if(r.aborted||r.completed){return}errorRequest(e,r,t||new g)}))}catch(t){errorRequest(e,r,t)}if(r.aborted){return false}let m;const y=e[he];E[Ce]=A||e[ge];E[Qe]=o;if(o==="CONNECT"){t.ref();m=t.request(E,{endStream:false,signal:d});if(m.id&&!m.pending){r.onUpgrade(null,null,m);++y.openStreams}else{m.once("ready",(()=>{r.onUpgrade(null,null,m);++y.openStreams}))}m.once("close",(()=>{y.openStreams-=1;if(y.openStreams===0)t.unref()}));return true}E[Be]=i;E[be]="https";const C=o==="PUT"||o==="POST"||o==="PATCH";if(s&&typeof s.read==="function"){s.read(0)}let Q=a.bodyLength(s);if(Q==null){Q=r.contentLength}if(Q===0||!C){Q=null}if(shouldSendContentLength(o)&&Q>0&&r.contentLength!=null&&r.contentLength!==Q){if(e[re]){errorRequest(e,r,new l);return false}process.emitWarning(new l)}if(Q!=null){n(s,"no body must not have content length");E[Te]=`${Q}`}t.ref();const B=o==="GET"||o==="HEAD";if(p){E[we]="100-continue";m=t.request(E,{endStream:B,signal:d});m.once("continue",writeBodyH2)}else{m=t.request(E,{endStream:B,signal:d});writeBodyH2()}++y.openStreams;m.once("response",(e=>{const{[ve]:t,...n}=e;if(r.onHeaders(Number(t),n,m.resume.bind(m),"")===false){m.pause()}}));m.once("end",(()=>{r.onComplete([])}));m.on("data",(e=>{if(r.onData(e)===false){m.pause()}}));m.once("close",(()=>{y.openStreams-=1;if(y.openStreams===0){t.unref()}}));m.once("error",(function(t){if(e[fe]&&!e[fe].destroyed&&!this.closed&&!this.destroyed){y.streams-=1;a.destroy(m,t)}}));m.once("frameError",((t,n)=>{const s=new I(`HTTP/2: "frameError" received - type ${t}, code ${n}`);errorRequest(e,r,s);if(e[fe]&&!e[fe].destroyed&&!this.closed&&!this.destroyed){y.streams-=1;a.destroy(m,s)}}));return true;function writeBodyH2(){if(!s){r.onRequestSent()}else if(a.isBuffer(s)){n(Q===s.byteLength,"buffer body must have content length");m.cork();m.write(s);m.uncork();m.end();r.onBodySent(s);r.onRequestSent()}else if(a.isBlobLike(s)){if(typeof s.stream==="function"){writeIterable({client:e,request:r,contentLength:Q,h2stream:m,expectsPayload:C,body:s.stream(),socket:e[K],header:""})}else{writeBlob({body:s,client:e,request:r,contentLength:Q,expectsPayload:C,h2stream:m,header:"",socket:e[K]})}}else if(a.isStream(s)){writeStream({body:s,client:e,request:r,contentLength:Q,expectsPayload:C,socket:e[K],h2stream:m,header:""})}else if(a.isIterable(s)){writeIterable({body:s,client:e,request:r,contentLength:Q,expectsPayload:C,header:"",h2stream:m,socket:e[K]})}else{n(false)}}}function writeStream({h2stream:e,body:t,client:r,request:s,socket:o,contentLength:A,header:c,expectsPayload:u}){n(A!==0||r[N]===0,"stream body cannot be pipelined");if(r[de]==="h2"){const d=i(t,e,(r=>{if(r){a.destroy(t,r);a.destroy(e,r)}else{s.onRequestSent()}}));d.on("data",onPipeData);d.once("end",(()=>{d.removeListener("data",onPipeData);a.destroy(d)}));function onPipeData(e){s.onBodySent(e)}return}let l=false;const p=new AsyncWriter({socket:o,request:s,contentLength:A,client:r,expectsPayload:u,header:c});const onData=function(e){if(l){return}try{if(!p.write(e)&&this.pause){this.pause()}}catch(e){a.destroy(this,e)}};const onDrain=function(){if(l){return}if(t.resume){t.resume()}};const onAbort=function(){if(l){return}const e=new g;queueMicrotask((()=>onFinished(e)))};const onFinished=function(e){if(l){return}l=true;n(o.destroyed||o[U]&&r[N]<=1);o.off("drain",onDrain).off("error",onFinished);t.removeListener("data",onData).removeListener("end",onFinished).removeListener("error",onFinished).removeListener("close",onAbort);if(!e){try{p.end()}catch(t){e=t}}p.destroy(e);if(e&&(e.code!=="UND_ERR_INFO"||e.message!=="reset")){a.destroy(t,e)}else{a.destroy(t)}};t.on("data",onData).on("end",onFinished).on("error",onFinished).on("close",onAbort);if(t.resume){t.resume()}o.on("drain",onDrain).on("error",onFinished)}async function writeBlob({h2stream:e,body:t,client:r,request:s,socket:o,contentLength:i,header:A,expectsPayload:c}){n(i===t.size,"blob body must have content length");const u=r[de]==="h2";try{if(i!=null&&i!==t.size){throw new l}const n=Buffer.from(await t.arrayBuffer());if(u){e.cork();e.write(n);e.uncork()}else{o.cork();o.write(`${A}content-length: ${i}\r\n\r\n`,"latin1");o.write(n);o.uncork()}s.onBodySent(n);s.onRequestSent();if(!c){o[w]=true}resume(r)}catch(t){a.destroy(u?e:o,t)}}async function writeIterable({h2stream:e,body:t,client:r,request:s,socket:o,contentLength:i,header:a,expectsPayload:A}){n(i!==0||r[N]===0,"iterator body cannot be pipelined");let c=null;function onDrain(){if(c){const e=c;c=null;e()}}const waitForDrain=()=>new Promise(((e,t)=>{n(c===null);if(o[J]){t(o[J])}else{c=e}}));if(r[de]==="h2"){e.on("close",onDrain).on("drain",onDrain);try{for await(const r of t){if(o[J]){throw o[J]}const t=e.write(r);s.onBodySent(r);if(!t){await waitForDrain()}}}catch(t){e.destroy(t)}finally{s.onRequestSent();e.end();e.off("close",onDrain).off("drain",onDrain)}return}o.on("close",onDrain).on("drain",onDrain);const u=new AsyncWriter({socket:o,request:s,contentLength:i,client:r,expectsPayload:A,header:a});try{for await(const e of t){if(o[J]){throw o[J]}if(!u.write(e)){await waitForDrain()}}u.end()}catch(e){u.destroy(e)}finally{o.off("close",onDrain).off("drain",onDrain)}}class AsyncWriter{constructor({socket:e,request:t,contentLength:r,client:n,expectsPayload:s,header:o}){this.socket=e;this.request=t;this.contentLength=r;this.client=n;this.bytesWritten=0;this.expectsPayload=s;this.header=o;e[U]=true}write(e){const{socket:t,request:r,contentLength:n,client:s,bytesWritten:o,expectsPayload:i,header:a}=this;if(t[J]){throw t[J]}if(t.destroyed){return false}const A=Buffer.byteLength(e);if(!A){return true}if(n!==null&&o+A>n){if(s[re]){throw new l}process.emitWarning(new l)}t.cork();if(o===0){if(!i){t[w]=true}if(n===null){t.write(`${a}transfer-encoding: chunked\r\n`,"latin1")}else{t.write(`${a}content-length: ${n}\r\n\r\n`,"latin1")}}if(n===null){t.write(`\r\n${A.toString(16)}\r\n`,"latin1")}this.bytesWritten+=A;const c=t.write(e);t.uncork();r.onBodySent(e);if(!c){if(t[D].timeout&&t[D].timeoutType===xe){if(t[D].timeout.refresh){t[D].timeout.refresh()}}}return c}end(){const{socket:e,contentLength:t,client:r,bytesWritten:n,expectsPayload:s,header:o,request:i}=this;i.onRequestSent();e[U]=false;if(e[J]){throw e[J]}if(e.destroyed){return}if(n===0){if(s){e.write(`${o}content-length: 0\r\n\r\n`,"latin1")}else{e.write(`${o}\r\n`,"latin1")}}else if(t===null){e.write("\r\n0\r\n\r\n","latin1")}if(t!==null&&n!==t){if(r[re]){throw new l}else{process.emitWarning(new l)}}if(e[D].timeout&&e[D].timeoutType===xe){if(e[D].timeout.refresh){e[D].timeout.refresh()}}resume(r)}destroy(e){const{socket:t,client:r}=this;t[U]=false;if(e){n(r[N]<=1,"pipeline should only contain this request");a.destroy(t,e)}}}function errorRequest(e,t,r){try{t.onError(r);n(t.aborted)}catch(r){e.emit("error",r)}}e.exports=Client},3194:(e,t,r)=>{const{kConnected:n,kSize:s}=r(6443);class CompatWeakRef{constructor(e){this.value=e}deref(){return this.value[n]===0&&this.value[s]===0?undefined:this.value}}class CompatFinalizer{constructor(e){this.finalizer=e}register(e,t){if(e.on){e.on("disconnect",(()=>{if(e[n]===0&&e[s]===0){this.finalizer(t)}}))}}}e.exports=function(){if(process.env.NODE_V8_COVERAGE){return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}}return{WeakRef:global.WeakRef||CompatWeakRef,FinalizationRegistry:global.FinalizationRegistry||CompatFinalizer}}},9237:e=>{const t=1024;const r=4096;e.exports={maxAttributeValueSize:t,maxNameValuePairSize:r}},3168:(e,t,r)=>{const{parseSetCookie:n}=r(8915);const{stringify:s,getHeadersList:o}=r(3834);const{webidl:i}=r(4222);const{Headers:a}=r(6349);function getCookies(e){i.argumentLengthCheck(arguments,1,{header:"getCookies"});i.brandCheck(e,a,{strict:false});const t=e.get("cookie");const r={};if(!t){return r}for(const e of t.split(";")){const[t,...n]=e.split("=");r[t.trim()]=n.join("=")}return r}function deleteCookie(e,t,r){i.argumentLengthCheck(arguments,2,{header:"deleteCookie"});i.brandCheck(e,a,{strict:false});t=i.converters.DOMString(t);r=i.converters.DeleteCookieAttributes(r);setCookie(e,{name:t,value:"",expires:new Date(0),...r})}function getSetCookies(e){i.argumentLengthCheck(arguments,1,{header:"getSetCookies"});i.brandCheck(e,a,{strict:false});const t=o(e).cookies;if(!t){return[]}return t.map((e=>n(Array.isArray(e)?e[1]:e)))}function setCookie(e,t){i.argumentLengthCheck(arguments,2,{header:"setCookie"});i.brandCheck(e,a,{strict:false});t=i.converters.Cookie(t);const r=s(t);if(r){e.append("Set-Cookie",s(t))}}i.converters.DeleteCookieAttributes=i.dictionaryConverter([{converter:i.nullableConverter(i.converters.DOMString),key:"path",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"domain",defaultValue:null}]);i.converters.Cookie=i.dictionaryConverter([{converter:i.converters.DOMString,key:"name"},{converter:i.converters.DOMString,key:"value"},{converter:i.nullableConverter((e=>{if(typeof e==="number"){return i.converters["unsigned long long"](e)}return new Date(e)})),key:"expires",defaultValue:null},{converter:i.nullableConverter(i.converters["long long"]),key:"maxAge",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"domain",defaultValue:null},{converter:i.nullableConverter(i.converters.DOMString),key:"path",defaultValue:null},{converter:i.nullableConverter(i.converters.boolean),key:"secure",defaultValue:null},{converter:i.nullableConverter(i.converters.boolean),key:"httpOnly",defaultValue:null},{converter:i.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:i.sequenceConverter(i.converters.DOMString),key:"unparsed",defaultValue:[]}]);e.exports={getCookies:getCookies,deleteCookie:deleteCookie,getSetCookies:getSetCookies,setCookie:setCookie}},8915:(e,t,r)=>{const{maxNameValuePairSize:n,maxAttributeValueSize:s}=r(9237);const{isCTLExcludingHtab:o}=r(3834);const{collectASequenceOfCodePointsFast:i}=r(4322);const a=r(2613);function parseSetCookie(e){if(o(e)){return null}let t="";let r="";let s="";let a="";if(e.includes(";")){const n={position:0};t=i(";",e,n);r=e.slice(n.position)}else{t=e}if(!t.includes("=")){a=t}else{const e={position:0};s=i("=",t,e);a=t.slice(e.position+1)}s=s.trim();a=a.trim();if(s.length+a.length>n){return null}return{name:s,value:a,...parseUnparsedAttributes(r)}}function parseUnparsedAttributes(e,t={}){if(e.length===0){return t}a(e[0]===";");e=e.slice(1);let r="";if(e.includes(";")){r=i(";",e,{position:0});e=e.slice(r.length)}else{r=e;e=""}let n="";let o="";if(r.includes("=")){const e={position:0};n=i("=",r,e);o=r.slice(e.position+1)}else{n=r}n=n.trim();o=o.trim();if(o.length>s){return parseUnparsedAttributes(e,t)}const A=n.toLowerCase();if(A==="expires"){const e=new Date(o);t.expires=e}else if(A==="max-age"){const r=o.charCodeAt(0);if((r<48||r>57)&&o[0]!=="-"){return parseUnparsedAttributes(e,t)}if(!/^\d+$/.test(o)){return parseUnparsedAttributes(e,t)}const n=Number(o);t.maxAge=n}else if(A==="domain"){let e=o;if(e[0]==="."){e=e.slice(1)}e=e.toLowerCase();t.domain=e}else if(A==="path"){let e="";if(o.length===0||o[0]!=="/"){e="/"}else{e=o}t.path=e}else if(A==="secure"){t.secure=true}else if(A==="httponly"){t.httpOnly=true}else if(A==="samesite"){let e="Default";const r=o.toLowerCase();if(r.includes("none")){e="None"}if(r.includes("strict")){e="Strict"}if(r.includes("lax")){e="Lax"}t.sameSite=e}else{t.unparsed??=[];t.unparsed.push(`${n}=${o}`)}return parseUnparsedAttributes(e,t)}e.exports={parseSetCookie:parseSetCookie,parseUnparsedAttributes:parseUnparsedAttributes}},3834:(e,t,r)=>{const n=r(2613);const{kHeadersList:s}=r(6443);function isCTLExcludingHtab(e){if(e.length===0){return false}for(const t of e){const e=t.charCodeAt(0);if(e>=0||e<=8||(e>=10||e<=31)||e===127){return false}}}function validateCookieName(e){for(const t of e){const e=t.charCodeAt(0);if(e<=32||e>127||t==="("||t===")"||t===">"||t==="<"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"){throw new Error("Invalid cookie name")}}}function validateCookieValue(e){for(const t of e){const e=t.charCodeAt(0);if(e<33||e===34||e===44||e===59||e===92||e>126){throw new Error("Invalid header value")}}}function validateCookiePath(e){for(const t of e){const e=t.charCodeAt(0);if(e<33||t===";"){throw new Error("Invalid cookie path")}}}function validateCookieDomain(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-")){throw new Error("Invalid cookie domain")}}function toIMFDate(e){if(typeof e==="number"){e=new Date(e)}const t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const n=t[e.getUTCDay()];const s=e.getUTCDate().toString().padStart(2,"0");const o=r[e.getUTCMonth()];const i=e.getUTCFullYear();const a=e.getUTCHours().toString().padStart(2,"0");const A=e.getUTCMinutes().toString().padStart(2,"0");const c=e.getUTCSeconds().toString().padStart(2,"0");return`${n}, ${s} ${o} ${i} ${a}:${A}:${c} GMT`}function validateCookieMaxAge(e){if(e<0){throw new Error("Invalid cookie max-age")}}function stringify(e){if(e.name.length===0){return null}validateCookieName(e.name);validateCookieValue(e.value);const t=[`${e.name}=${e.value}`];if(e.name.startsWith("__Secure-")){e.secure=true}if(e.name.startsWith("__Host-")){e.secure=true;e.domain=null;e.path="/"}if(e.secure){t.push("Secure")}if(e.httpOnly){t.push("HttpOnly")}if(typeof e.maxAge==="number"){validateCookieMaxAge(e.maxAge);t.push(`Max-Age=${e.maxAge}`)}if(e.domain){validateCookieDomain(e.domain);t.push(`Domain=${e.domain}`)}if(e.path){validateCookiePath(e.path);t.push(`Path=${e.path}`)}if(e.expires&&e.expires.toString()!=="Invalid Date"){t.push(`Expires=${toIMFDate(e.expires)}`)}if(e.sameSite){t.push(`SameSite=${e.sameSite}`)}for(const r of e.unparsed){if(!r.includes("=")){throw new Error("Invalid unparsed")}const[e,...n]=r.split("=");t.push(`${e.trim()}=${n.join("=")}`)}return t.join("; ")}let o;function getHeadersList(e){if(e[s]){return e[s]}if(!o){o=Object.getOwnPropertySymbols(e).find((e=>e.description==="headers list"));n(o,"Headers cannot be parsed")}const t=e[o];n(t);return t}e.exports={isCTLExcludingHtab:isCTLExcludingHtab,stringify:stringify,getHeadersList:getHeadersList}},9136:(e,t,r)=>{const n=r(9278);const s=r(2613);const o=r(3440);const{InvalidArgumentError:i,ConnectTimeoutError:a}=r(8707);let A;let c;if(global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE){c=class WeakSessionCache{constructor(e){this._maxCachedSessions=e;this._sessionCache=new Map;this._sessionRegistry=new global.FinalizationRegistry((e=>{if(this._sessionCache.size=this._maxCachedSessions){const{value:e}=this._sessionCache.keys().next();this._sessionCache.delete(e)}this._sessionCache.set(e,t)}}}function buildConnector({allowH2:e,maxCachedSessions:t,socketPath:a,timeout:u,...l}){if(t!=null&&(!Number.isInteger(t)||t<0)){throw new i("maxCachedSessions must be a positive integer or zero")}const p={path:a,...l};const d=new c(t==null?100:t);u=u==null?1e4:u;e=e!=null?e:false;return function connect({hostname:t,host:i,protocol:a,port:c,servername:l,localAddress:g,httpSocket:h},E){let m;if(a==="https:"){if(!A){A=r(4756)}l=l||p.servername||o.getServerName(i)||null;const n=l||t;const a=d.get(n)||null;s(n);m=A.connect({highWaterMark:16384,...p,servername:l,session:a,localAddress:g,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:h,port:c||443,host:t});m.on("session",(function(e){d.set(n,e)}))}else{s(!h,"httpSocket can only be sent on TLS update");m=n.connect({highWaterMark:64*1024,...p,localAddress:g,port:c||80,host:t})}if(p.keepAlive==null||p.keepAlive){const e=p.keepAliveInitialDelay===undefined?6e4:p.keepAliveInitialDelay;m.setKeepAlive(true,e)}const I=setupTimeout((()=>onConnectTimeout(m)),u);m.setNoDelay(true).once(a==="https:"?"secureConnect":"connect",(function(){I();if(E){const e=E;E=null;e(null,this)}})).on("error",(function(e){I();if(E){const t=E;E=null;t(e)}}));return m}}function setupTimeout(e,t){if(!t){return()=>{}}let r=null;let n=null;const s=setTimeout((()=>{r=setImmediate((()=>{if(process.platform==="win32"){n=setImmediate((()=>e()))}else{e()}}))}),t);return()=>{clearTimeout(s);clearImmediate(r);clearImmediate(n)}}function onConnectTimeout(e){o.destroy(e,new a)}e.exports=buildConnector},735:e=>{const t={};const r=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{class UndiciError extends Error{constructor(e){super(e);this.name="UndiciError";this.code="UND_ERR"}}class ConnectTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ConnectTimeoutError);this.name="ConnectTimeoutError";this.message=e||"Connect Timeout Error";this.code="UND_ERR_CONNECT_TIMEOUT"}}class HeadersTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersTimeoutError);this.name="HeadersTimeoutError";this.message=e||"Headers Timeout Error";this.code="UND_ERR_HEADERS_TIMEOUT"}}class HeadersOverflowError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,HeadersOverflowError);this.name="HeadersOverflowError";this.message=e||"Headers Overflow Error";this.code="UND_ERR_HEADERS_OVERFLOW"}}class BodyTimeoutError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,BodyTimeoutError);this.name="BodyTimeoutError";this.message=e||"Body Timeout Error";this.code="UND_ERR_BODY_TIMEOUT"}}class ResponseStatusCodeError extends UndiciError{constructor(e,t,r,n){super(e);Error.captureStackTrace(this,ResponseStatusCodeError);this.name="ResponseStatusCodeError";this.message=e||"Response Status Code Error";this.code="UND_ERR_RESPONSE_STATUS_CODE";this.body=n;this.status=t;this.statusCode=t;this.headers=r}}class InvalidArgumentError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidArgumentError);this.name="InvalidArgumentError";this.message=e||"Invalid Argument Error";this.code="UND_ERR_INVALID_ARG"}}class InvalidReturnValueError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InvalidReturnValueError);this.name="InvalidReturnValueError";this.message=e||"Invalid Return Value Error";this.code="UND_ERR_INVALID_RETURN_VALUE"}}class RequestAbortedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestAbortedError);this.name="AbortError";this.message=e||"Request aborted";this.code="UND_ERR_ABORTED"}}class InformationalError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,InformationalError);this.name="InformationalError";this.message=e||"Request information";this.code="UND_ERR_INFO"}}class RequestContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,RequestContentLengthMismatchError);this.name="RequestContentLengthMismatchError";this.message=e||"Request body length does not match content-length header";this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}}class ResponseContentLengthMismatchError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseContentLengthMismatchError);this.name="ResponseContentLengthMismatchError";this.message=e||"Response body length does not match content-length header";this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}}class ClientDestroyedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientDestroyedError);this.name="ClientDestroyedError";this.message=e||"The client is destroyed";this.code="UND_ERR_DESTROYED"}}class ClientClosedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ClientClosedError);this.name="ClientClosedError";this.message=e||"The client is closed";this.code="UND_ERR_CLOSED"}}class SocketError extends UndiciError{constructor(e,t){super(e);Error.captureStackTrace(this,SocketError);this.name="SocketError";this.message=e||"Socket error";this.code="UND_ERR_SOCKET";this.socket=t}}class NotSupportedError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="NotSupportedError";this.message=e||"Not supported error";this.code="UND_ERR_NOT_SUPPORTED"}}class BalancedPoolMissingUpstreamError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,NotSupportedError);this.name="MissingUpstreamError";this.message=e||"No upstream has been added to the BalancedPool";this.code="UND_ERR_BPL_MISSING_UPSTREAM"}}class HTTPParserError extends Error{constructor(e,t,r){super(e);Error.captureStackTrace(this,HTTPParserError);this.name="HTTPParserError";this.code=t?`HPE_${t}`:undefined;this.data=r?r.toString():undefined}}class ResponseExceededMaxSizeError extends UndiciError{constructor(e){super(e);Error.captureStackTrace(this,ResponseExceededMaxSizeError);this.name="ResponseExceededMaxSizeError";this.message=e||"Response content exceeded max size";this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}}class RequestRetryError extends UndiciError{constructor(e,t,{headers:r,data:n}){super(e);Error.captureStackTrace(this,RequestRetryError);this.name="RequestRetryError";this.message=e||"Request retry error";this.code="UND_ERR_REQ_RETRY";this.statusCode=t;this.data=n;this.headers=r}}e.exports={HTTPParserError:HTTPParserError,UndiciError:UndiciError,HeadersTimeoutError:HeadersTimeoutError,HeadersOverflowError:HeadersOverflowError,BodyTimeoutError:BodyTimeoutError,RequestContentLengthMismatchError:RequestContentLengthMismatchError,ConnectTimeoutError:ConnectTimeoutError,ResponseStatusCodeError:ResponseStatusCodeError,InvalidArgumentError:InvalidArgumentError,InvalidReturnValueError:InvalidReturnValueError,RequestAbortedError:RequestAbortedError,ClientDestroyedError:ClientDestroyedError,ClientClosedError:ClientClosedError,InformationalError:InformationalError,SocketError:SocketError,NotSupportedError:NotSupportedError,ResponseContentLengthMismatchError:ResponseContentLengthMismatchError,BalancedPoolMissingUpstreamError:BalancedPoolMissingUpstreamError,ResponseExceededMaxSizeError:ResponseExceededMaxSizeError,RequestRetryError:RequestRetryError}},4655:(e,t,r)=>{const{InvalidArgumentError:n,NotSupportedError:s}=r(8707);const o=r(2613);const{kHTTP2BuildRequest:i,kHTTP2CopyHeaders:a,kHTTP1BuildRequest:A}=r(6443);const c=r(3440);const u=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;const l=/[^\t\x20-\x7e\x80-\xff]/;const p=/[^\u0021-\u00ff]/;const d=Symbol("handler");const g={};let h;try{const e=r(1637);g.create=e.channel("undici:request:create");g.bodySent=e.channel("undici:request:bodySent");g.headers=e.channel("undici:request:headers");g.trailers=e.channel("undici:request:trailers");g.error=e.channel("undici:request:error")}catch{g.create={hasSubscribers:false};g.bodySent={hasSubscribers:false};g.headers={hasSubscribers:false};g.trailers={hasSubscribers:false};g.error={hasSubscribers:false}}class Request{constructor(e,{path:t,method:s,body:o,headers:i,query:a,idempotent:A,blocking:l,upgrade:E,headersTimeout:m,bodyTimeout:I,reset:y,throwOnError:C,expectContinue:Q},B){if(typeof t!=="string"){throw new n("path must be a string")}else if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&s!=="CONNECT"){throw new n("path must be an absolute URL or start with a slash")}else if(p.exec(t)!==null){throw new n("invalid request path")}if(typeof s!=="string"){throw new n("method must be a string")}else if(u.exec(s)===null){throw new n("invalid request method")}if(E&&typeof E!=="string"){throw new n("upgrade must be a string")}if(m!=null&&(!Number.isFinite(m)||m<0)){throw new n("invalid headersTimeout")}if(I!=null&&(!Number.isFinite(I)||I<0)){throw new n("invalid bodyTimeout")}if(y!=null&&typeof y!=="boolean"){throw new n("invalid reset")}if(Q!=null&&typeof Q!=="boolean"){throw new n("invalid expectContinue")}this.headersTimeout=m;this.bodyTimeout=I;this.throwOnError=C===true;this.method=s;this.abort=null;if(o==null){this.body=null}else if(c.isStream(o)){this.body=o;const e=this.body._readableState;if(!e||!e.autoDestroy){this.endHandler=function autoDestroy(){c.destroy(this)};this.body.on("end",this.endHandler)}this.errorHandler=e=>{if(this.abort){this.abort(e)}else{this.error=e}};this.body.on("error",this.errorHandler)}else if(c.isBuffer(o)){this.body=o.byteLength?o:null}else if(ArrayBuffer.isView(o)){this.body=o.buffer.byteLength?Buffer.from(o.buffer,o.byteOffset,o.byteLength):null}else if(o instanceof ArrayBuffer){this.body=o.byteLength?Buffer.from(o):null}else if(typeof o==="string"){this.body=o.length?Buffer.from(o):null}else if(c.isFormDataLike(o)||c.isIterable(o)||c.isBlobLike(o)){this.body=o}else{throw new n("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable")}this.completed=false;this.aborted=false;this.upgrade=E||null;this.path=a?c.buildURL(t,a):t;this.origin=e;this.idempotent=A==null?s==="HEAD"||s==="GET":A;this.blocking=l==null?false:l;this.reset=y==null?null:y;this.host=null;this.contentLength=null;this.contentType=null;this.headers="";this.expectContinue=Q!=null?Q:false;if(Array.isArray(i)){if(i.length%2!==0){throw new n("headers array must be even")}for(let e=0;e{e.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}},3440:(e,t,r)=>{const n=r(2613);const{kDestroyed:s,kBodyUsed:o}=r(6443);const{IncomingMessage:i}=r(8611);const a=r(2203);const A=r(9278);const{InvalidArgumentError:c}=r(8707);const{Blob:u}=r(181);const l=r(9023);const{stringify:p}=r(3480);const{headerNameLowerCasedRecord:d}=r(735);const[g,h]=process.versions.node.split(".").map((e=>Number(e)));function nop(){}function isStream(e){return e&&typeof e==="object"&&typeof e.pipe==="function"&&typeof e.on==="function"}function isBlobLike(e){return u&&e instanceof u||e&&typeof e==="object"&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function buildURL(e,t){if(e.includes("?")||e.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const r=p(t);if(r){e+="?"+r}return e}function parseURL(e){if(typeof e==="string"){e=new URL(e);if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return e}if(!e||typeof e!=="object"){throw new c("Invalid URL: The URL argument must be a non-null object.")}if(!/^https?:/.test(e.origin||e.protocol)){throw new c("Invalid URL protocol: the URL must start with `http:` or `https:`.")}if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port))){throw new c("Invalid URL: port must be a valid integer or a string representation of an integer.")}if(e.path!=null&&typeof e.path!=="string"){throw new c("Invalid URL path: the path must be a string or null/undefined.")}if(e.pathname!=null&&typeof e.pathname!=="string"){throw new c("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(e.hostname!=null&&typeof e.hostname!=="string"){throw new c("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(e.origin!=null&&typeof e.origin!=="string"){throw new c("Invalid URL origin: the origin must be a string or null/undefined.")}const t=e.port!=null?e.port:e.protocol==="https:"?443:80;let r=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${t}`;let n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;if(r.endsWith("/")){r=r.substring(0,r.length-1)}if(n&&!n.startsWith("/")){n=`/${n}`}e=new URL(r+n)}return e}function parseOrigin(e){e=parseURL(e);if(e.pathname!=="/"||e.search||e.hash){throw new c("invalid url")}return e}function getHostname(e){if(e[0]==="["){const t=e.indexOf("]");n(t!==-1);return e.substring(1,t)}const t=e.indexOf(":");if(t===-1)return e;return e.substring(0,t)}function getServerName(e){if(!e){return null}n.strictEqual(typeof e,"string");const t=getHostname(e);if(A.isIP(t)){return""}return t}function deepClone(e){return JSON.parse(JSON.stringify(e))}function isAsyncIterable(e){return!!(e!=null&&typeof e[Symbol.asyncIterator]==="function")}function isIterable(e){return!!(e!=null&&(typeof e[Symbol.iterator]==="function"||typeof e[Symbol.asyncIterator]==="function"))}function bodyLength(e){if(e==null){return 0}else if(isStream(e)){const t=e._readableState;return t&&t.objectMode===false&&t.ended===true&&Number.isFinite(t.length)?t.length:null}else if(isBlobLike(e)){return e.size!=null?e.size:null}else if(isBuffer(e)){return e.byteLength}return null}function isDestroyed(e){return!e||!!(e.destroyed||e[s])}function isReadableAborted(e){const t=e&&e._readableState;return isDestroyed(e)&&t&&!t.endEmitted}function destroy(e,t){if(e==null||!isStream(e)||isDestroyed(e)){return}if(typeof e.destroy==="function"){if(Object.getPrototypeOf(e).constructor===i){e.socket=null}e.destroy(t)}else if(t){process.nextTick(((e,t)=>{e.emit("error",t)}),e,t)}if(e.destroyed!==true){e[s]=true}}const E=/timeout=(\d+)/;function parseKeepAliveTimeout(e){const t=e.toString().match(E);return t?parseInt(t[1],10)*1e3:null}function headerNameToString(e){return d[e]||e.toLowerCase()}function parseHeaders(e,t={}){if(!Array.isArray(e))return e;for(let r=0;re.toString("utf8")))}else{t[n]=e[r+1].toString("utf8")}}else{if(!Array.isArray(s)){s=[s];t[n]=s}s.push(e[r+1].toString("utf8"))}}if("content-length"in t&&"content-disposition"in t){t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")}return t}function parseRawHeaders(e){const t=[];let r=false;let n=-1;for(let s=0;s{e.close()}))}else{const t=Buffer.isBuffer(n)?n:Buffer.from(n);e.enqueue(new Uint8Array(t))}return e.desiredSize>0},async cancel(e){await t.return()}},0)}function isFormDataLike(e){return e&&typeof e==="object"&&typeof e.append==="function"&&typeof e.delete==="function"&&typeof e.get==="function"&&typeof e.getAll==="function"&&typeof e.has==="function"&&typeof e.set==="function"&&e[Symbol.toStringTag]==="FormData"}function throwIfAborted(e){if(!e){return}if(typeof e.throwIfAborted==="function"){e.throwIfAborted()}else{if(e.aborted){const e=new Error("The operation was aborted");e.name="AbortError";throw e}}}function addAbortListener(e,t){if("addEventListener"in e){e.addEventListener("abort",t,{once:true});return()=>e.removeEventListener("abort",t)}e.addListener("abort",t);return()=>e.removeListener("abort",t)}const I=!!String.prototype.toWellFormed;function toUSVString(e){if(I){return`${e}`.toWellFormed()}else if(l.toUSVString){return l.toUSVString(e)}return`${e}`}function parseRangeHeader(e){if(e==null||e==="")return{start:0,end:null,size:null};const t=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]?parseInt(t[3]):null}:null}const y=Object.create(null);y.enumerable=true;e.exports={kEnumerableProperty:y,nop:nop,isDisturbed:isDisturbed,isErrored:isErrored,isReadable:isReadable,toUSVString:toUSVString,isReadableAborted:isReadableAborted,isBlobLike:isBlobLike,parseOrigin:parseOrigin,parseURL:parseURL,getServerName:getServerName,isStream:isStream,isIterable:isIterable,isAsyncIterable:isAsyncIterable,isDestroyed:isDestroyed,headerNameToString:headerNameToString,parseRawHeaders:parseRawHeaders,parseHeaders:parseHeaders,parseKeepAliveTimeout:parseKeepAliveTimeout,destroy:destroy,bodyLength:bodyLength,deepClone:deepClone,ReadableStreamFrom:ReadableStreamFrom,isBuffer:isBuffer,validateHandler:validateHandler,getSocketInfo:getSocketInfo,isFormDataLike:isFormDataLike,buildURL:buildURL,throwIfAborted:throwIfAborted,addAbortListener:addAbortListener,parseRangeHeader:parseRangeHeader,nodeMajor:g,nodeMinor:h,nodeHasAutoSelectFamily:g>18||g===18&&h>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}},1:(e,t,r)=>{const n=r(992);const{ClientDestroyedError:s,ClientClosedError:o,InvalidArgumentError:i}=r(8707);const{kDestroy:a,kClose:A,kDispatch:c,kInterceptors:u}=r(6443);const l=Symbol("destroyed");const p=Symbol("closed");const d=Symbol("onDestroyed");const g=Symbol("onClosed");const h=Symbol("Intercepted Dispatch");class DispatcherBase extends n{constructor(){super();this[l]=false;this[d]=null;this[p]=false;this[g]=[]}get destroyed(){return this[l]}get closed(){return this[p]}get interceptors(){return this[u]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--){const e=this[u][t];if(typeof e!=="function"){throw new i("interceptor must be an function")}}}this[u]=e}close(e){if(e===undefined){return new Promise(((e,t)=>{this.close(((r,n)=>r?t(r):e(n)))}))}if(typeof e!=="function"){throw new i("invalid callback")}if(this[l]){queueMicrotask((()=>e(new s,null)));return}if(this[p]){if(this[g]){this[g].push(e)}else{queueMicrotask((()=>e(null,null)))}return}this[p]=true;this[g].push(e);const onClosed=()=>{const e=this[g];this[g]=null;for(let t=0;tthis.destroy())).then((()=>{queueMicrotask(onClosed)}))}destroy(e,t){if(typeof e==="function"){t=e;e=null}if(t===undefined){return new Promise(((t,r)=>{this.destroy(e,((e,n)=>e?r(e):t(n)))}))}if(typeof t!=="function"){throw new i("invalid callback")}if(this[l]){if(this[d]){this[d].push(t)}else{queueMicrotask((()=>t(null,null)))}return}if(!e){e=new s}this[l]=true;this[d]=this[d]||[];this[d].push(t);const onDestroyed=()=>{const e=this[d];this[d]=null;for(let t=0;t{queueMicrotask(onDestroyed)}))}[h](e,t){if(!this[u]||this[u].length===0){this[h]=this[c];return this[c](e,t)}let r=this[c].bind(this);for(let e=this[u].length-1;e>=0;e--){r=this[u][e](r)}this[h]=r;return r(e,t)}dispatch(e,t){if(!t||typeof t!=="object"){throw new i("handler must be an object")}try{if(!e||typeof e!=="object"){throw new i("opts must be an object.")}if(this[l]||this[d]){throw new s}if(this[p]){throw new o}return this[h](e,t)}catch(e){if(typeof t.onError!=="function"){throw new i("invalid onError method")}t.onError(e);return false}}}e.exports=DispatcherBase},992:(e,t,r)=>{const n=r(4434);class Dispatcher extends n{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}}e.exports=Dispatcher},8923:(e,t,r)=>{const n=r(9581);const s=r(3440);const{ReadableStreamFrom:o,isBlobLike:i,isReadableStreamLike:a,readableStreamClose:A,createDeferredPromise:c,fullyReadBody:u}=r(5523);const{FormData:l}=r(3073);const{kState:p}=r(9710);const{webidl:d}=r(4222);const{DOMException:g,structuredClone:h}=r(7326);const{Blob:E,File:m}=r(181);const{kBodyUsed:I}=r(6443);const y=r(2613);const{isErrored:C}=r(3440);const{isUint8Array:Q,isArrayBuffer:B}=r(8253);const{File:b}=r(3041);const{parseMIMEType:T,serializeAMimeType:w}=r(4322);let v=globalThis.ReadableStream;const R=m??b;const k=new TextEncoder;const D=new TextDecoder;function extractBody(e,t=false){if(!v){v=r(3774).ReadableStream}let n=null;if(e instanceof v){n=e}else if(i(e)){n=e.stream()}else{n=new v({async pull(e){e.enqueue(typeof u==="string"?k.encode(u):u);queueMicrotask((()=>A(e)))},start(){},type:undefined})}y(a(n));let c=null;let u=null;let l=null;let p=null;if(typeof e==="string"){u=e;p="text/plain;charset=UTF-8"}else if(e instanceof URLSearchParams){u=e.toString();p="application/x-www-form-urlencoded;charset=UTF-8"}else if(B(e)){u=new Uint8Array(e.slice())}else if(ArrayBuffer.isView(e)){u=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength))}else if(s.isFormDataLike(e)){const t=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`;const r=`--${t}\r\nContent-Disposition: form-data` +/*! formdata-polyfill. MIT License. Jimmy Wärting */;const escape=e=>e.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=e=>e.replace(/\r?\n|\r/g,"\r\n");const n=[];const s=new Uint8Array([13,10]);l=0;let o=false;for(const[t,i]of e){if(typeof i==="string"){const e=k.encode(r+`; name="${escape(normalizeLinefeeds(t))}"`+`\r\n\r\n${normalizeLinefeeds(i)}\r\n`);n.push(e);l+=e.byteLength}else{const e=k.encode(`${r}; name="${escape(normalizeLinefeeds(t))}"`+(i.name?`; filename="${escape(i.name)}"`:"")+"\r\n"+`Content-Type: ${i.type||"application/octet-stream"}\r\n\r\n`);n.push(e,i,s);if(typeof i.size==="number"){l+=e.byteLength+i.size+s.byteLength}else{o=true}}}const i=k.encode(`--${t}--`);n.push(i);l+=i.byteLength;if(o){l=null}u=e;c=async function*(){for(const e of n){if(e.stream){yield*e.stream()}else{yield e}}};p="multipart/form-data; boundary="+t}else if(i(e)){u=e;l=e.size;if(e.type){p=e.type}}else if(typeof e[Symbol.asyncIterator]==="function"){if(t){throw new TypeError("keepalive")}if(s.isDisturbed(e)||e.locked){throw new TypeError("Response body object should not be disturbed or locked")}n=e instanceof v?e:o(e)}if(typeof u==="string"||s.isBuffer(u)){l=Buffer.byteLength(u)}if(c!=null){let t;n=new v({async start(){t=c(e)[Symbol.asyncIterator]()},async pull(e){const{value:r,done:s}=await t.next();if(s){queueMicrotask((()=>{e.close()}))}else{if(!C(n)){e.enqueue(new Uint8Array(r))}}return e.desiredSize>0},async cancel(e){await t.return()},type:undefined})}const d={stream:n,source:u,length:l};return[d,p]}function safelyExtractBody(e,t=false){if(!v){v=r(3774).ReadableStream}if(e instanceof v){y(!s.isDisturbed(e),"The body has already been consumed.");y(!e.locked,"The stream is locked.")}return extractBody(e,t)}function cloneBody(e){const[t,r]=e.stream.tee();const n=h(r,{transfer:[r]});const[,s]=n.tee();e.stream=t;return{stream:s,length:e.length,source:e.source}}async function*consumeBody(e){if(e){if(Q(e)){yield e}else{const t=e.stream;if(s.isDisturbed(t)){throw new TypeError("The body has already been consumed.")}if(t.locked){throw new TypeError("The stream is locked.")}t[I]=true;yield*t}}}function throwIfAborted(e){if(e.aborted){throw new g("The operation was aborted.","AbortError")}}function bodyMixinMethods(e){const t={blob(){return specConsumeBody(this,(e=>{let t=bodyMimeType(this);if(t==="failure"){t=""}else if(t){t=w(t)}return new E([e],{type:t})}),e)},arrayBuffer(){return specConsumeBody(this,(e=>new Uint8Array(e).buffer),e)},text(){return specConsumeBody(this,utf8DecodeBytes,e)},json(){return specConsumeBody(this,parseJSONFromBytes,e)},async formData(){d.brandCheck(this,e);throwIfAborted(this[p]);const t=this.headers.get("Content-Type");if(/multipart\/form-data/.test(t)){const e={};for(const[t,r]of this.headers)e[t.toLowerCase()]=r;const t=new l;let r;try{r=new n({headers:e,preservePath:true})}catch(e){throw new g(`${e}`,"AbortError")}r.on("field",((e,r)=>{t.append(e,r)}));r.on("file",((e,r,n,s,o)=>{const i=[];if(s==="base64"||s.toLowerCase()==="base64"){let s="";r.on("data",(e=>{s+=e.toString().replace(/[\r\n]/gm,"");const t=s.length-s.length%4;i.push(Buffer.from(s.slice(0,t),"base64"));s=s.slice(t)}));r.on("end",(()=>{i.push(Buffer.from(s,"base64"));t.append(e,new R(i,n,{type:o}))}))}else{r.on("data",(e=>{i.push(e)}));r.on("end",(()=>{t.append(e,new R(i,n,{type:o}))}))}}));const s=new Promise(((e,t)=>{r.on("finish",e);r.on("error",(e=>t(new TypeError(e))))}));if(this.body!==null)for await(const e of consumeBody(this[p].body))r.write(e);r.end();await s;return t}else if(/application\/x-www-form-urlencoded/.test(t)){let e;try{let t="";const r=new TextDecoder("utf-8",{ignoreBOM:true});for await(const e of consumeBody(this[p].body)){if(!Q(e)){throw new TypeError("Expected Uint8Array chunk")}t+=r.decode(e,{stream:true})}t+=r.decode();e=new URLSearchParams(t)}catch(e){throw Object.assign(new TypeError,{cause:e})}const t=new l;for(const[r,n]of e){t.append(r,n)}return t}else{await Promise.resolve();throwIfAborted(this[p]);throw d.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}};return t}function mixinBody(e){Object.assign(e.prototype,bodyMixinMethods(e))}async function specConsumeBody(e,t,r){d.brandCheck(e,r);throwIfAborted(e[p]);if(bodyUnusable(e[p].body)){throw new TypeError("Body is unusable")}const n=c();const errorSteps=e=>n.reject(e);const successSteps=e=>{try{n.resolve(t(e))}catch(e){errorSteps(e)}};if(e[p].body==null){successSteps(new Uint8Array);return n.promise}await u(e[p].body,successSteps,errorSteps);return n.promise}function bodyUnusable(e){return e!=null&&(e.stream.locked||s.isDisturbed(e.stream))}function utf8DecodeBytes(e){if(e.length===0){return""}if(e[0]===239&&e[1]===187&&e[2]===191){e=e.subarray(3)}const t=D.decode(e);return t}function parseJSONFromBytes(e){return JSON.parse(utf8DecodeBytes(e))}function bodyMimeType(e){const{headersList:t}=e[p];const r=t.get("content-type");if(r===null){return"failure"}return T(r)}e.exports={extractBody:extractBody,safelyExtractBody:safelyExtractBody,cloneBody:cloneBody,mixinBody:mixinBody}},7326:(e,t,r)=>{const{MessageChannel:n,receiveMessageOnPort:s}=r(8167);const o=["GET","HEAD","POST"];const i=new Set(o);const a=[101,204,205,304];const A=[301,302,303,307,308];const c=new Set(A);const u=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"];const l=new Set(u);const p=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"];const d=new Set(p);const g=["follow","manual","error"];const h=["GET","HEAD","OPTIONS","TRACE"];const E=new Set(h);const m=["navigate","same-origin","no-cors","cors"];const I=["omit","same-origin","include"];const y=["default","no-store","reload","no-cache","force-cache","only-if-cached"];const C=["content-encoding","content-language","content-location","content-type","content-length"];const Q=["half"];const B=["CONNECT","TRACE","TRACK"];const b=new Set(B);const T=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""];const w=new Set(T);const v=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})();let R;const k=globalThis.structuredClone??function structuredClone(e,t=undefined){if(arguments.length===0){throw new TypeError("missing argument")}if(!R){R=new n}R.port1.unref();R.port2.unref();R.port1.postMessage(e,t?.transfer);return s(R.port2).message};e.exports={DOMException:v,structuredClone:k,subresource:T,forbiddenMethods:B,requestBodyHeader:C,referrerPolicy:p,requestRedirect:g,requestMode:m,requestCredentials:I,requestCache:y,redirectStatus:A,corsSafeListedMethods:o,nullBodyStatus:a,safeMethods:h,badPorts:u,requestDuplex:Q,subresourceSet:w,badPortsSet:l,redirectStatusSet:c,corsSafeListedMethodsSet:i,safeMethodsSet:E,forbiddenMethodsSet:b,referrerPolicySet:d}},4322:(e,t,r)=>{const n=r(2613);const{atob:s}=r(181);const{isomorphicDecode:o}=r(5523);const i=new TextEncoder;const a=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/;const A=/(\u000A|\u000D|\u0009|\u0020)/;const c=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function dataURLProcessor(e){n(e.protocol==="data:");let t=URLSerializer(e,true);t=t.slice(5);const r={position:0};let s=collectASequenceOfCodePointsFast(",",t,r);const i=s.length;s=removeASCIIWhitespace(s,true,true);if(r.position>=t.length){return"failure"}r.position++;const a=t.slice(i+1);let A=stringPercentDecode(a);if(/;(\u0020){0,}base64$/i.test(s)){const e=o(A);A=forgivingBase64(e);if(A==="failure"){return"failure"}s=s.slice(0,-6);s=s.replace(/(\u0020)+$/,"");s=s.slice(0,-1)}if(s.startsWith(";")){s="text/plain"+s}let c=parseMIMEType(s);if(c==="failure"){c=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:c,body:A}}function URLSerializer(e,t=false){if(!t){return e.href}const r=e.href;const n=e.hash.length;return n===0?r:r.substring(0,r.length-n)}function collectASequenceOfCodePoints(e,t,r){let n="";while(r.positione.length){return"failure"}t.position++;let n=collectASequenceOfCodePointsFast(";",e,t);n=removeHTTPWhitespace(n,false,true);if(n.length===0||!a.test(n)){return"failure"}const s=r.toLowerCase();const o=n.toLowerCase();const i={type:s,subtype:o,parameters:new Map,essence:`${s}/${o}`};while(t.positionA.test(e)),e,t);let r=collectASequenceOfCodePoints((e=>e!==";"&&e!=="="),e,t);r=r.toLowerCase();if(t.positione.length){break}let n=null;if(e[t.position]==='"'){n=collectAnHTTPQuotedString(e,t,true);collectASequenceOfCodePointsFast(";",e,t)}else{n=collectASequenceOfCodePointsFast(";",e,t);n=removeHTTPWhitespace(n,false,true);if(n.length===0){continue}}if(r.length!==0&&a.test(r)&&(n.length===0||c.test(n))&&!i.parameters.has(r)){i.parameters.set(r,n)}}return i}function forgivingBase64(e){e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,"");if(e.length%4===0){e=e.replace(/=?=$/,"")}if(e.length%4===1){return"failure"}if(/[^+/0-9A-Za-z]/.test(e)){return"failure"}const t=s(e);const r=new Uint8Array(t.length);for(let e=0;ee!=='"'&&e!=="\\"),e,t);if(t.position>=e.length){break}const r=e[t.position];t.position++;if(r==="\\"){if(t.position>=e.length){o+="\\";break}o+=e[t.position];t.position++}else{n(r==='"');break}}if(r){return o}return e.slice(s,t.position)}function serializeAMimeType(e){n(e!=="failure");const{parameters:t,essence:r}=e;let s=r;for(let[e,r]of t.entries()){s+=";";s+=e;s+="=";if(!a.test(r)){r=r.replace(/(\\|")/g,"\\$1");r='"'+r;r+='"'}s+=r}return s}function isHTTPWhiteSpace(e){return e==="\r"||e==="\n"||e==="\t"||e===" "}function removeHTTPWhitespace(e,t=true,r=true){let n=0;let s=e.length-1;if(t){for(;n0&&isHTTPWhiteSpace(e[s]);s--);}return e.slice(n,s+1)}function isASCIIWhitespace(e){return e==="\r"||e==="\n"||e==="\t"||e==="\f"||e===" "}function removeASCIIWhitespace(e,t=true,r=true){let n=0;let s=e.length-1;if(t){for(;n0&&isASCIIWhitespace(e[s]);s--);}return e.slice(n,s+1)}e.exports={dataURLProcessor:dataURLProcessor,URLSerializer:URLSerializer,collectASequenceOfCodePoints:collectASequenceOfCodePoints,collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast,stringPercentDecode:stringPercentDecode,parseMIMEType:parseMIMEType,collectAnHTTPQuotedString:collectAnHTTPQuotedString,serializeAMimeType:serializeAMimeType}},3041:(e,t,r)=>{const{Blob:n,File:s}=r(181);const{types:o}=r(9023);const{kState:i}=r(9710);const{isBlobLike:a}=r(5523);const{webidl:A}=r(4222);const{parseMIMEType:c,serializeAMimeType:u}=r(4322);const{kEnumerableProperty:l}=r(3440);const p=new TextEncoder;class File extends n{constructor(e,t,r={}){A.argumentLengthCheck(arguments,2,{header:"File constructor"});e=A.converters["sequence"](e);t=A.converters.USVString(t);r=A.converters.FilePropertyBag(r);const n=t;let s=r.type;let o;e:{if(s){s=c(s);if(s==="failure"){s="";break e}s=u(s).toLowerCase()}o=r.lastModified}super(processBlobParts(e,r),{type:s});this[i]={name:n,lastModified:o,type:s}}get name(){A.brandCheck(this,File);return this[i].name}get lastModified(){A.brandCheck(this,File);return this[i].lastModified}get type(){A.brandCheck(this,File);return this[i].type}}class FileLike{constructor(e,t,r={}){const n=t;const s=r.type;const o=r.lastModified??Date.now();this[i]={blobLike:e,name:n,type:s,lastModified:o}}stream(...e){A.brandCheck(this,FileLike);return this[i].blobLike.stream(...e)}arrayBuffer(...e){A.brandCheck(this,FileLike);return this[i].blobLike.arrayBuffer(...e)}slice(...e){A.brandCheck(this,FileLike);return this[i].blobLike.slice(...e)}text(...e){A.brandCheck(this,FileLike);return this[i].blobLike.text(...e)}get size(){A.brandCheck(this,FileLike);return this[i].blobLike.size}get type(){A.brandCheck(this,FileLike);return this[i].blobLike.type}get name(){A.brandCheck(this,FileLike);return this[i].name}get lastModified(){A.brandCheck(this,FileLike);return this[i].lastModified}get[Symbol.toStringTag](){return"File"}}Object.defineProperties(File.prototype,{[Symbol.toStringTag]:{value:"File",configurable:true},name:l,lastModified:l});A.converters.Blob=A.interfaceConverter(n);A.converters.BlobPart=function(e,t){if(A.util.Type(e)==="Object"){if(a(e)){return A.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||o.isAnyArrayBuffer(e)){return A.converters.BufferSource(e,t)}}return A.converters.USVString(e,t)};A.converters["sequence"]=A.sequenceConverter(A.converters.BlobPart);A.converters.FilePropertyBag=A.dictionaryConverter([{key:"lastModified",converter:A.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:A.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>{e=A.converters.DOMString(e);e=e.toLowerCase();if(e!=="native"){e="transparent"}return e},defaultValue:"transparent"}]);function processBlobParts(e,t){const r=[];for(const n of e){if(typeof n==="string"){let e=n;if(t.endings==="native"){e=convertLineEndingsNative(e)}r.push(p.encode(e))}else if(o.isAnyArrayBuffer(n)||o.isTypedArray(n)){if(!n.buffer){r.push(new Uint8Array(n))}else{r.push(new Uint8Array(n.buffer,n.byteOffset,n.byteLength))}}else if(a(n)){r.push(n)}}return r}function convertLineEndingsNative(e){let t="\n";if(process.platform==="win32"){t="\r\n"}return e.replace(/\r?\n/g,t)}function isFileLike(e){return s&&e instanceof s||e instanceof File||e&&(typeof e.stream==="function"||typeof e.arrayBuffer==="function")&&e[Symbol.toStringTag]==="File"}e.exports={File:File,FileLike:FileLike,isFileLike:isFileLike}},3073:(e,t,r)=>{const{isBlobLike:n,toUSVString:s,makeIterator:o}=r(5523);const{kState:i}=r(9710);const{File:a,FileLike:A,isFileLike:c}=r(3041);const{webidl:u}=r(4222);const{Blob:l,File:p}=r(181);const d=p??a;class FormData{constructor(e){if(e!==undefined){throw u.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}this[i]=[]}append(e,t,r=undefined){u.brandCheck(this,FormData);u.argumentLengthCheck(arguments,2,{header:"FormData.append"});if(arguments.length===3&&!n(t)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}e=u.converters.USVString(e);t=n(t)?u.converters.Blob(t,{strict:false}):u.converters.USVString(t);r=arguments.length===3?u.converters.USVString(r):undefined;const s=makeEntry(e,t,r);this[i].push(s)}delete(e){u.brandCheck(this,FormData);u.argumentLengthCheck(arguments,1,{header:"FormData.delete"});e=u.converters.USVString(e);this[i]=this[i].filter((t=>t.name!==e))}get(e){u.brandCheck(this,FormData);u.argumentLengthCheck(arguments,1,{header:"FormData.get"});e=u.converters.USVString(e);const t=this[i].findIndex((t=>t.name===e));if(t===-1){return null}return this[i][t].value}getAll(e){u.brandCheck(this,FormData);u.argumentLengthCheck(arguments,1,{header:"FormData.getAll"});e=u.converters.USVString(e);return this[i].filter((t=>t.name===e)).map((e=>e.value))}has(e){u.brandCheck(this,FormData);u.argumentLengthCheck(arguments,1,{header:"FormData.has"});e=u.converters.USVString(e);return this[i].findIndex((t=>t.name===e))!==-1}set(e,t,r=undefined){u.brandCheck(this,FormData);u.argumentLengthCheck(arguments,2,{header:"FormData.set"});if(arguments.length===3&&!n(t)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}e=u.converters.USVString(e);t=n(t)?u.converters.Blob(t,{strict:false}):u.converters.USVString(t);r=arguments.length===3?s(r):undefined;const o=makeEntry(e,t,r);const a=this[i].findIndex((t=>t.name===e));if(a!==-1){this[i]=[...this[i].slice(0,a),o,...this[i].slice(a+1).filter((t=>t.name!==e))]}else{this[i].push(o)}}entries(){u.brandCheck(this,FormData);return o((()=>this[i].map((e=>[e.name,e.value]))),"FormData","key+value")}keys(){u.brandCheck(this,FormData);return o((()=>this[i].map((e=>[e.name,e.value]))),"FormData","key")}values(){u.brandCheck(this,FormData);return o((()=>this[i].map((e=>[e.name,e.value]))),"FormData","value")}forEach(e,t=globalThis){u.brandCheck(this,FormData);u.argumentLengthCheck(arguments,1,{header:"FormData.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.")}for(const[r,n]of this){e.apply(t,[n,r,this])}}}FormData.prototype[Symbol.iterator]=FormData.prototype.entries;Object.defineProperties(FormData.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(e,t,r){e=Buffer.from(e).toString("utf8");if(typeof t==="string"){t=Buffer.from(t).toString("utf8")}else{if(!c(t)){t=t instanceof l?new d([t],"blob",{type:t.type}):new A(t,"blob",{type:t.type})}if(r!==undefined){const e={type:t.type,lastModified:t.lastModified};t=p&&t instanceof p||t instanceof a?new d([t],r,e):new A(t,r,e)}}return{name:e,value:t}}e.exports={FormData:FormData}},5628:e=>{const t=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){return globalThis[t]}function setGlobalOrigin(e){if(e===undefined){Object.defineProperty(globalThis,t,{value:undefined,writable:true,enumerable:false,configurable:false});return}const r=new URL(e);if(r.protocol!=="http:"&&r.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${r.protocol}`)}Object.defineProperty(globalThis,t,{value:r,writable:true,enumerable:false,configurable:false})}e.exports={getGlobalOrigin:getGlobalOrigin,setGlobalOrigin:setGlobalOrigin}},6349:(e,t,r)=>{const{kHeadersList:n,kConstruct:s}=r(6443);const{kGuard:o}=r(9710);const{kEnumerableProperty:i}=r(3440);const{makeIterator:a,isValidHeaderName:A,isValidHeaderValue:c}=r(5523);const{webidl:u}=r(4222);const l=r(2613);const p=Symbol("headers map");const d=Symbol("headers map sorted");function isHTTPWhiteSpaceCharCode(e){return e===10||e===13||e===9||e===32}function headerValueNormalize(e){let t=0;let r=e.length;while(r>t&&isHTTPWhiteSpaceCharCode(e.charCodeAt(r-1)))--r;while(r>t&&isHTTPWhiteSpaceCharCode(e.charCodeAt(t)))++t;return t===0&&r===e.length?e:e.substring(t,r)}function fill(e,t){if(Array.isArray(t)){for(let r=0;r>","record"]})}}function appendHeader(e,t,r){r=headerValueNormalize(r);if(!A(t)){throw u.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"})}else if(!c(r)){throw u.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}if(e[o]==="immutable"){throw new TypeError("immutable")}else if(e[o]==="request-no-cors"){}return e[n].append(t,r)}class HeadersList{cookies=null;constructor(e){if(e instanceof HeadersList){this[p]=new Map(e[p]);this[d]=e[d];this.cookies=e.cookies===null?null:[...e.cookies]}else{this[p]=new Map(e);this[d]=null}}contains(e){e=e.toLowerCase();return this[p].has(e)}clear(){this[p].clear();this[d]=null;this.cookies=null}append(e,t){this[d]=null;const r=e.toLowerCase();const n=this[p].get(r);if(n){const e=r==="cookie"?"; ":", ";this[p].set(r,{name:n.name,value:`${n.value}${e}${t}`})}else{this[p].set(r,{name:e,value:t})}if(r==="set-cookie"){this.cookies??=[];this.cookies.push(t)}}set(e,t){this[d]=null;const r=e.toLowerCase();if(r==="set-cookie"){this.cookies=[t]}this[p].set(r,{name:e,value:t})}delete(e){this[d]=null;e=e.toLowerCase();if(e==="set-cookie"){this.cookies=null}this[p].delete(e)}get(e){const t=this[p].get(e.toLowerCase());return t===undefined?null:t.value}*[Symbol.iterator](){for(const[e,{value:t}]of this[p]){yield[e,t]}}get entries(){const e={};if(this[p].size){for(const{name:t,value:r}of this[p].values()){e[t]=r}}return e}}class Headers{constructor(e=undefined){if(e===s){return}this[n]=new HeadersList;this[o]="none";if(e!==undefined){e=u.converters.HeadersInit(e);fill(this,e)}}append(e,t){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,2,{header:"Headers.append"});e=u.converters.ByteString(e);t=u.converters.ByteString(t);return appendHeader(this,e,t)}delete(e){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.delete"});e=u.converters.ByteString(e);if(!A(e)){throw u.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"})}if(this[o]==="immutable"){throw new TypeError("immutable")}else if(this[o]==="request-no-cors"){}if(!this[n].contains(e)){return}this[n].delete(e)}get(e){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.get"});e=u.converters.ByteString(e);if(!A(e)){throw u.errors.invalidArgument({prefix:"Headers.get",value:e,type:"header name"})}return this[n].get(e)}has(e){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.has"});e=u.converters.ByteString(e);if(!A(e)){throw u.errors.invalidArgument({prefix:"Headers.has",value:e,type:"header name"})}return this[n].contains(e)}set(e,t){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,2,{header:"Headers.set"});e=u.converters.ByteString(e);t=u.converters.ByteString(t);t=headerValueNormalize(t);if(!A(e)){throw u.errors.invalidArgument({prefix:"Headers.set",value:e,type:"header name"})}else if(!c(t)){throw u.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header value"})}if(this[o]==="immutable"){throw new TypeError("immutable")}else if(this[o]==="request-no-cors"){}this[n].set(e,t)}getSetCookie(){u.brandCheck(this,Headers);const e=this[n].cookies;if(e){return[...e]}return[]}get[d](){if(this[n][d]){return this[n][d]}const e=[];const t=[...this[n]].sort(((e,t)=>e[0]e),"Headers","key")}return a((()=>[...this[d].values()]),"Headers","key")}values(){u.brandCheck(this,Headers);if(this[o]==="immutable"){const e=this[d];return a((()=>e),"Headers","value")}return a((()=>[...this[d].values()]),"Headers","value")}entries(){u.brandCheck(this,Headers);if(this[o]==="immutable"){const e=this[d];return a((()=>e),"Headers","key+value")}return a((()=>[...this[d].values()]),"Headers","key+value")}forEach(e,t=globalThis){u.brandCheck(this,Headers);u.argumentLengthCheck(arguments,1,{header:"Headers.forEach"});if(typeof e!=="function"){throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.")}for(const[r,n]of this){e.apply(t,[n,r,this])}}[Symbol.for("nodejs.util.inspect.custom")](){u.brandCheck(this,Headers);return this[n]}}Headers.prototype[Symbol.iterator]=Headers.prototype.entries;Object.defineProperties(Headers.prototype,{append:i,delete:i,get:i,has:i,set:i,getSetCookie:i,keys:i,values:i,entries:i,forEach:i,[Symbol.iterator]:{enumerable:false},[Symbol.toStringTag]:{value:"Headers",configurable:true}});u.converters.HeadersInit=function(e){if(u.util.Type(e)==="Object"){if(e[Symbol.iterator]){return u.converters["sequence>"](e)}return u.converters["record"](e)}throw u.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};e.exports={fill:fill,Headers:Headers,HeadersList:HeadersList}},2315:(e,t,r)=>{const{Response:n,makeNetworkError:s,makeAppropriateNetworkError:o,filterResponse:i,makeResponse:a}=r(8676);const{Headers:A}=r(6349);const{Request:c,makeRequest:u}=r(5194);const l=r(3106);const{bytesMatch:p,makePolicyContainer:d,clonePolicyContainer:g,requestBadPort:h,TAOCheck:E,appendRequestOriginHeader:m,responseLocationURL:I,requestCurrentURL:y,setRequestReferrerPolicyOnRedirect:C,tryUpgradeRequestToAPotentiallyTrustworthyURL:Q,createOpaqueTimingInfo:B,appendFetchMetadata:b,corsCheck:T,crossOriginResourcePolicyCheck:w,determineRequestsReferrer:v,coarsenedSharedCurrentTime:R,createDeferredPromise:k,isBlobLike:D,sameOrigin:_,isCancelled:S,isAborted:F,isErrorLike:N,fullyReadBody:O,readableStreamClose:L,isomorphicEncode:U,urlIsLocal:G,urlIsHttpHttpsScheme:P,urlHasHttpsScheme:M}=r(5523);const{kState:x,kHeaders:V,kGuard:j,kRealm:H}=r(9710);const Y=r(2613);const{safelyExtractBody:q}=r(8923);const{redirectStatusSet:J,nullBodyStatus:W,safeMethodsSet:K,requestBodyHeader:$,subresourceSet:z,DOMException:Z}=r(7326);const{kHeadersList:X}=r(6443);const ee=r(4434);const{Readable:te,pipeline:re}=r(2203);const{addAbortListener:ne,isErrored:se,isReadable:oe,nodeMajor:ie,nodeMinor:ae}=r(3440);const{dataURLProcessor:Ae,serializeAMimeType:ce}=r(4322);const{TransformStream:ue}=r(3774);const{getGlobalDispatcher:le}=r(2581);const{webidl:pe}=r(4222);const{STATUS_CODES:de}=r(8611);const ge=["GET","HEAD"];let fe;let he=globalThis.ReadableStream;class Fetch extends ee{constructor(e){super();this.dispatcher=e;this.connection=null;this.dump=false;this.state="ongoing";this.setMaxListeners(21)}terminate(e){if(this.state!=="ongoing"){return}this.state="terminated";this.connection?.destroy(e);this.emit("terminated",e)}abort(e){if(this.state!=="ongoing"){return}this.state="aborted";if(!e){e=new Z("The operation was aborted.","AbortError")}this.serializedAbortReason=e;this.connection?.destroy(e);this.emit("terminated",e)}}function fetch(e,t={}){pe.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});const r=k();let s;try{s=new c(e,t)}catch(e){r.reject(e);return r.promise}const o=s[x];if(s.signal.aborted){abortFetch(r,o,null,s.signal.reason);return r.promise}const i=o.client.globalObject;if(i?.constructor?.name==="ServiceWorkerGlobalScope"){o.serviceWorkers="none"}let a=null;const A=null;let u=false;let l=null;ne(s.signal,(()=>{u=true;Y(l!=null);l.abort(s.signal.reason);abortFetch(r,o,a,s.signal.reason)}));const handleFetchDone=e=>finalizeAndReportTiming(e,"fetch");const processResponse=e=>{if(u){return Promise.resolve()}if(e.aborted){abortFetch(r,o,a,l.serializedAbortReason);return Promise.resolve()}if(e.type==="error"){r.reject(Object.assign(new TypeError("fetch failed"),{cause:e.error}));return Promise.resolve()}a=new n;a[x]=e;a[H]=A;a[V][X]=e.headersList;a[V][j]="immutable";a[V][H]=A;r.resolve(a)};l=fetching({request:o,processResponseEndOfBody:handleFetchDone,processResponse:processResponse,dispatcher:t.dispatcher??le()});return r.promise}function finalizeAndReportTiming(e,t="other"){if(e.type==="error"&&e.aborted){return}if(!e.urlList?.length){return}const r=e.urlList[0];let n=e.timingInfo;let s=e.cacheState;if(!P(r)){return}if(n===null){return}if(!e.timingAllowPassed){n=B({startTime:n.startTime});s=""}n.endTime=R();e.timingInfo=n;markResourceTiming(n,r,t,globalThis,s)}function markResourceTiming(e,t,r,n,s){if(ie>18||ie===18&&ae>=2){performance.markResourceTiming(e,t.href,r,n,s)}}function abortFetch(e,t,r,n){if(!n){n=new Z("The operation was aborted.","AbortError")}e.reject(n);if(t.body!=null&&oe(t.body?.stream)){t.body.stream.cancel(n).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}if(r==null){return}const s=r[x];if(s.body!=null&&oe(s.body?.stream)){s.body.stream.cancel(n).catch((e=>{if(e.code==="ERR_INVALID_STATE"){return}throw e}))}}function fetching({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:s,processResponseConsumeBody:o,useParallelQueue:i=false,dispatcher:a}){let A=null;let c=false;if(e.client!=null){A=e.client.globalObject;c=e.client.crossOriginIsolatedCapability}const u=R(c);const l=B({startTime:u});const p={controller:new Fetch(a),request:e,timingInfo:l,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:s,taskDestination:A,crossOriginIsolatedCapability:c};Y(!e.body||e.body.stream);if(e.window==="client"){e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"}if(e.origin==="client"){e.origin=e.client?.origin}if(e.policyContainer==="client"){if(e.client!=null){e.policyContainer=g(e.client.policyContainer)}else{e.policyContainer=d()}}if(!e.headersList.contains("accept")){const t="*/*";e.headersList.append("accept",t)}if(!e.headersList.contains("accept-language")){e.headersList.append("accept-language","*")}if(e.priority===null){}if(z.has(e.destination)){}mainFetch(p).catch((e=>{p.controller.terminate(e)}));return p.controller}async function mainFetch(e,t=false){const r=e.request;let n=null;if(r.localURLsOnly&&!G(y(r))){n=s("local URLs only")}Q(r);if(h(r)==="blocked"){n=s("bad port")}if(r.referrerPolicy===""){r.referrerPolicy=r.policyContainer.referrerPolicy}if(r.referrer!=="no-referrer"){r.referrer=v(r)}if(n===null){n=await(async()=>{const t=y(r);if(_(t,r.url)&&r.responseTainting==="basic"||t.protocol==="data:"||(r.mode==="navigate"||r.mode==="websocket")){r.responseTainting="basic";return await schemeFetch(e)}if(r.mode==="same-origin"){return s('request mode cannot be "same-origin"')}if(r.mode==="no-cors"){if(r.redirect!=="follow"){return s('redirect mode cannot be "follow" for "no-cors" request')}r.responseTainting="opaque";return await schemeFetch(e)}if(!P(y(r))){return s("URL scheme must be a HTTP(S) scheme")}r.responseTainting="cors";return await httpFetch(e)})()}if(t){return n}if(n.status!==0&&!n.internalResponse){if(r.responseTainting==="cors"){}if(r.responseTainting==="basic"){n=i(n,"basic")}else if(r.responseTainting==="cors"){n=i(n,"cors")}else if(r.responseTainting==="opaque"){n=i(n,"opaque")}else{Y(false)}}let o=n.status===0?n:n.internalResponse;if(o.urlList.length===0){o.urlList.push(...r.urlList)}if(!r.timingAllowFailed){n.timingAllowPassed=true}if(n.type==="opaque"&&o.status===206&&o.rangeRequested&&!r.headers.contains("range")){n=o=s()}if(n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||W.includes(o.status))){o.body=null;e.controller.dump=true}if(r.integrity){const processBodyError=t=>fetchFinale(e,s(t));if(r.responseTainting==="opaque"||n.body==null){processBodyError(n.error);return}const processBody=t=>{if(!p(t,r.integrity)){processBodyError("integrity mismatch");return}n.body=q(t)[0];fetchFinale(e,n)};await O(n.body,processBody,processBodyError)}else{fetchFinale(e,n)}}function schemeFetch(e){if(S(e)&&e.request.redirectCount===0){return Promise.resolve(o(e))}const{request:t}=e;const{protocol:n}=y(t);switch(n){case"about:":{return Promise.resolve(s("about scheme is not supported"))}case"blob:":{if(!fe){fe=r(181).resolveObjectURL}const e=y(t);if(e.search.length!==0){return Promise.resolve(s("NetworkError when attempting to fetch resource."))}const n=fe(e.toString());if(t.method!=="GET"||!D(n)){return Promise.resolve(s("invalid method"))}const o=q(n);const i=o[0];const A=U(`${i.length}`);const c=o[1]??"";const u=a({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:A}],["content-type",{name:"Content-Type",value:c}]]});u.body=i;return Promise.resolve(u)}case"data:":{const e=y(t);const r=Ae(e);if(r==="failure"){return Promise.resolve(s("failed to fetch the data URL"))}const n=ce(r.mimeType);return Promise.resolve(a({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:n}]],body:q(r.body)[0]}))}case"file:":{return Promise.resolve(s("not implemented... yet..."))}case"http:":case"https:":{return httpFetch(e).catch((e=>s(e)))}default:{return Promise.resolve(s("unknown scheme"))}}}function finalizeResponse(e,t){e.request.done=true;if(e.processResponseDone!=null){queueMicrotask((()=>e.processResponseDone(t)))}}function fetchFinale(e,t){if(t.type==="error"){t.urlList=[e.request.urlList[0]];t.timingInfo=B({startTime:e.timingInfo.startTime})}const processResponseEndOfBody=()=>{e.request.done=true;if(e.processResponseEndOfBody!=null){queueMicrotask((()=>e.processResponseEndOfBody(t)))}};if(e.processResponse!=null){queueMicrotask((()=>e.processResponse(t)))}if(t.body==null){processResponseEndOfBody()}else{const identityTransformAlgorithm=(e,t)=>{t.enqueue(e)};const e=new ue({start(){},transform:identityTransformAlgorithm,flush:processResponseEndOfBody},{size(){return 1}},{size(){return 1}});t.body={stream:t.body.stream.pipeThrough(e)}}if(e.processResponseConsumeBody!=null){const processBody=r=>e.processResponseConsumeBody(t,r);const processBodyError=r=>e.processResponseConsumeBody(t,r);if(t.body==null){queueMicrotask((()=>processBody(null)))}else{return O(t.body,processBody,processBodyError)}return Promise.resolve()}}async function httpFetch(e){const t=e.request;let r=null;let n=null;const o=e.timingInfo;if(t.serviceWorkers==="all"){}if(r===null){if(t.redirect==="follow"){t.serviceWorkers="none"}n=r=await httpNetworkOrCacheFetch(e);if(t.responseTainting==="cors"&&T(t,r)==="failure"){return s("cors failure")}if(E(t,r)==="failure"){t.timingAllowFailed=true}}if((t.responseTainting==="opaque"||r.type==="opaque")&&w(t.origin,t.client,t.destination,n)==="blocked"){return s("blocked")}if(J.has(n.status)){if(t.redirect!=="manual"){e.controller.connection.destroy()}if(t.redirect==="error"){r=s("unexpected redirect")}else if(t.redirect==="manual"){r=n}else if(t.redirect==="follow"){r=await httpRedirectFetch(e,r)}else{Y(false)}}r.timingInfo=o;return r}function httpRedirectFetch(e,t){const r=e.request;const n=t.internalResponse?t.internalResponse:t;let o;try{o=I(n,y(r).hash);if(o==null){return t}}catch(e){return Promise.resolve(s(e))}if(!P(o)){return Promise.resolve(s("URL scheme must be a HTTP(S) scheme"))}if(r.redirectCount===20){return Promise.resolve(s("redirect count exceeded"))}r.redirectCount+=1;if(r.mode==="cors"&&(o.username||o.password)&&!_(r,o)){return Promise.resolve(s('cross origin not allowed for request mode "cors"'))}if(r.responseTainting==="cors"&&(o.username||o.password)){return Promise.resolve(s('URL cannot contain credentials for request mode "cors"'))}if(n.status!==303&&r.body!=null&&r.body.source==null){return Promise.resolve(s())}if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!ge.includes(r.method)){r.method="GET";r.body=null;for(const e of $){r.headersList.delete(e)}}if(!_(y(r),o)){r.headersList.delete("authorization");r.headersList.delete("proxy-authorization",true);r.headersList.delete("cookie");r.headersList.delete("host")}if(r.body!=null){Y(r.body.source!=null);r.body=q(r.body.source)[0]}const i=e.timingInfo;i.redirectEndTime=i.postRedirectStartTime=R(e.crossOriginIsolatedCapability);if(i.redirectStartTime===0){i.redirectStartTime=i.startTime}r.urlList.push(o);C(r,n);return mainFetch(e,true)}async function httpNetworkOrCacheFetch(e,t=false,r=false){const n=e.request;let i=null;let a=null;let A=null;const c=null;const l=false;if(n.window==="no-window"&&n.redirect==="error"){i=e;a=n}else{a=u(n);i={...e};i.request=a}const p=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic";const d=a.body?a.body.length:null;let g=null;if(a.body==null&&["POST","PUT"].includes(a.method)){g="0"}if(d!=null){g=U(`${d}`)}if(g!=null){a.headersList.append("content-length",g)}if(d!=null&&a.keepalive){}if(a.referrer instanceof URL){a.headersList.append("referer",U(a.referrer.href))}m(a);b(a);if(!a.headersList.contains("user-agent")){a.headersList.append("user-agent",typeof esbuildDetection==="undefined"?"undici":"node")}if(a.cache==="default"&&(a.headersList.contains("if-modified-since")||a.headersList.contains("if-none-match")||a.headersList.contains("if-unmodified-since")||a.headersList.contains("if-match")||a.headersList.contains("if-range"))){a.cache="no-store"}if(a.cache==="no-cache"&&!a.preventNoCacheCacheControlHeaderModification&&!a.headersList.contains("cache-control")){a.headersList.append("cache-control","max-age=0")}if(a.cache==="no-store"||a.cache==="reload"){if(!a.headersList.contains("pragma")){a.headersList.append("pragma","no-cache")}if(!a.headersList.contains("cache-control")){a.headersList.append("cache-control","no-cache")}}if(a.headersList.contains("range")){a.headersList.append("accept-encoding","identity")}if(!a.headersList.contains("accept-encoding")){if(M(y(a))){a.headersList.append("accept-encoding","br, gzip, deflate")}else{a.headersList.append("accept-encoding","gzip, deflate")}}a.headersList.delete("host");if(p){}if(c==null){a.cache="no-store"}if(a.mode!=="no-store"&&a.mode!=="reload"){}if(A==null){if(a.mode==="only-if-cached"){return s("only if cached")}const e=await httpNetworkFetch(i,p,r);if(!K.has(a.method)&&e.status>=200&&e.status<=399){}if(l&&e.status===304){}if(A==null){A=e}}A.urlList=[...a.urlList];if(a.headersList.contains("range")){A.rangeRequested=true}A.requestIncludesCredentials=p;if(A.status===407){if(n.window==="no-window"){return s()}if(S(e)){return o(e)}return s("proxy authentication required")}if(A.status===421&&!r&&(n.body==null||n.body.source!=null)){if(S(e)){return o(e)}e.controller.connection.destroy();A=await httpNetworkOrCacheFetch(e,t,true)}if(t){}return A}async function httpNetworkFetch(e,t=false,n=false){Y(!e.controller.connection||e.controller.connection.destroyed);e.controller.connection={abort:null,destroyed:false,destroy(e){if(!this.destroyed){this.destroyed=true;this.abort?.(e??new Z("The operation was aborted.","AbortError"))}}};const i=e.request;let c=null;const u=e.timingInfo;const p=null;if(p==null){i.cache="no-store"}const d=n?"yes":"no";if(i.mode==="websocket"){}else{}let g=null;if(i.body==null&&e.processRequestEndOfBody){queueMicrotask((()=>e.processRequestEndOfBody()))}else if(i.body!=null){const processBodyChunk=async function*(t){if(S(e)){return}yield t;e.processRequestBodyChunkLength?.(t.byteLength)};const processEndOfBody=()=>{if(S(e)){return}if(e.processRequestEndOfBody){e.processRequestEndOfBody()}};const processBodyError=t=>{if(S(e)){return}if(t.name==="AbortError"){e.controller.abort()}else{e.controller.terminate(t)}};g=async function*(){try{for await(const e of i.body.stream){yield*processBodyChunk(e)}processEndOfBody()}catch(e){processBodyError(e)}}()}try{const{body:t,status:r,statusText:n,headersList:s,socket:o}=await dispatch({body:g});if(o){c=a({status:r,statusText:n,headersList:s,socket:o})}else{const o=t[Symbol.asyncIterator]();e.controller.next=()=>o.next();c=a({status:r,statusText:n,headersList:s})}}catch(t){if(t.name==="AbortError"){e.controller.connection.destroy();return o(e,t)}return s(t)}const pullAlgorithm=()=>{e.controller.resume()};const cancelAlgorithm=t=>{e.controller.abort(t)};if(!he){he=r(3774).ReadableStream}const h=new he({async start(t){e.controller.controller=t},async pull(e){await pullAlgorithm(e)},async cancel(e){await cancelAlgorithm(e)}},{highWaterMark:0,size(){return 1}});c.body={stream:h};e.controller.on("terminated",onAborted);e.controller.resume=async()=>{while(true){let t;let r;try{const{done:r,value:n}=await e.controller.next();if(F(e)){break}t=r?undefined:n}catch(n){if(e.controller.ended&&!u.encodedBodySize){t=undefined}else{t=n;r=true}}if(t===undefined){L(e.controller.controller);finalizeResponse(e,c);return}u.decodedBodySize+=t?.byteLength??0;if(r){e.controller.terminate(t);return}e.controller.controller.enqueue(new Uint8Array(t));if(se(h)){e.controller.terminate();return}if(!e.controller.controller.desiredSize){return}}};function onAborted(t){if(F(e)){c.aborted=true;if(oe(h)){e.controller.controller.error(e.controller.serializedAbortReason)}}else{if(oe(h)){e.controller.controller.error(new TypeError("terminated",{cause:N(t)?t:undefined}))}}e.controller.connection.destroy()}return c;async function dispatch({body:t}){const r=y(i);const n=e.controller.dispatcher;return new Promise(((s,o)=>n.dispatch({path:r.pathname+r.search,origin:r.origin,method:i.method,body:e.controller.dispatcher.isMockActive?i.body&&(i.body.source||i.body.stream):t,headers:i.headersList.entries,maxRedirections:0,upgrade:i.mode==="websocket"?"websocket":undefined},{body:null,abort:null,onConnect(t){const{connection:r}=e.controller;if(r.destroyed){t(new Z("The operation was aborted.","AbortError"))}else{e.controller.on("terminated",t);this.abort=r.abort=t}},onHeaders(e,t,r,n){if(e<200){return}let o=[];let a="";const c=new A;if(Array.isArray(t)){for(let e=0;ee.trim()))}else if(r.toLowerCase()==="location"){a=n}c[X].append(r,n)}}else{const e=Object.keys(t);for(const r of e){const e=t[r];if(r.toLowerCase()==="content-encoding"){o=e.toLowerCase().split(",").map((e=>e.trim())).reverse()}else if(r.toLowerCase()==="location"){a=e}c[X].append(r,e)}}this.body=new te({read:r});const u=[];const p=i.redirect==="follow"&&a&&J.has(e);if(i.method!=="HEAD"&&i.method!=="CONNECT"&&!W.includes(e)&&!p){for(const e of o){if(e==="x-gzip"||e==="gzip"){u.push(l.createGunzip({flush:l.constants.Z_SYNC_FLUSH,finishFlush:l.constants.Z_SYNC_FLUSH}))}else if(e==="deflate"){u.push(l.createInflate())}else if(e==="br"){u.push(l.createBrotliDecompress())}else{u.length=0;break}}}s({status:e,statusText:n,headersList:c[X],body:u.length?re(this.body,...u,(()=>{})):this.body.on("error",(()=>{}))});return true},onData(t){if(e.controller.dump){return}const r=t;u.encodedBodySize+=r.byteLength;return this.body.push(r)},onComplete(){if(this.abort){e.controller.off("terminated",this.abort)}e.controller.ended=true;this.body.push(null)},onError(t){if(this.abort){e.controller.off("terminated",this.abort)}this.body?.destroy(t);e.controller.terminate(t);o(t)},onUpgrade(e,t,r){if(e!==101){return}const n=new A;for(let e=0;e{const{extractBody:n,mixinBody:s,cloneBody:o}=r(8923);const{Headers:i,fill:a,HeadersList:A}=r(6349);const{FinalizationRegistry:c}=r(3194)();const u=r(3440);const{isValidHTTPToken:l,sameOrigin:p,normalizeMethod:d,makePolicyContainer:g,normalizeMethodRecord:h}=r(5523);const{forbiddenMethodsSet:E,corsSafeListedMethodsSet:m,referrerPolicy:I,requestRedirect:y,requestMode:C,requestCredentials:Q,requestCache:B,requestDuplex:b}=r(7326);const{kEnumerableProperty:T}=u;const{kHeaders:w,kSignal:v,kState:R,kGuard:k,kRealm:D}=r(9710);const{webidl:_}=r(4222);const{getGlobalOrigin:S}=r(5628);const{URLSerializer:F}=r(4322);const{kHeadersList:N,kConstruct:O}=r(6443);const L=r(2613);const{getMaxListeners:U,setMaxListeners:G,getEventListeners:P,defaultMaxListeners:M}=r(4434);let x=globalThis.TransformStream;const V=Symbol("abortController");const j=new c((({signal:e,abort:t})=>{e.removeEventListener("abort",t)}));class Request{constructor(e,t={}){if(e===O){return}_.argumentLengthCheck(arguments,1,{header:"Request constructor"});e=_.converters.RequestInfo(e);t=_.converters.RequestInit(t);this[D]={settingsObject:{baseUrl:S(),get origin(){return this.baseUrl?.origin},policyContainer:g()}};let s=null;let o=null;const c=this[D].settingsObject.baseUrl;let I=null;if(typeof e==="string"){let t;try{t=new URL(e,c)}catch(t){throw new TypeError("Failed to parse URL from "+e,{cause:t})}if(t.username||t.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e)}s=makeRequest({urlList:[t]});o="cors"}else{L(e instanceof Request);s=e[R];I=e[v]}const y=this[D].settingsObject.origin;let C="client";if(s.window?.constructor?.name==="EnvironmentSettingsObject"&&p(s.window,y)){C=s.window}if(t.window!=null){throw new TypeError(`'window' option '${C}' must be null`)}if("window"in t){C="no-window"}s=makeRequest({method:s.method,headersList:s.headersList,unsafeRequest:s.unsafeRequest,client:this[D].settingsObject,window:C,priority:s.priority,origin:s.origin,referrer:s.referrer,referrerPolicy:s.referrerPolicy,mode:s.mode,credentials:s.credentials,cache:s.cache,redirect:s.redirect,integrity:s.integrity,keepalive:s.keepalive,reloadNavigation:s.reloadNavigation,historyNavigation:s.historyNavigation,urlList:[...s.urlList]});const Q=Object.keys(t).length!==0;if(Q){if(s.mode==="navigate"){s.mode="same-origin"}s.reloadNavigation=false;s.historyNavigation=false;s.origin="client";s.referrer="client";s.referrerPolicy="";s.url=s.urlList[s.urlList.length-1];s.urlList=[s.url]}if(t.referrer!==undefined){const e=t.referrer;if(e===""){s.referrer="no-referrer"}else{let t;try{t=new URL(e,c)}catch(t){throw new TypeError(`Referrer "${e}" is not a valid URL.`,{cause:t})}if(t.protocol==="about:"&&t.hostname==="client"||y&&!p(t,this[D].settingsObject.baseUrl)){s.referrer="client"}else{s.referrer=t}}}if(t.referrerPolicy!==undefined){s.referrerPolicy=t.referrerPolicy}let B;if(t.mode!==undefined){B=t.mode}else{B=o}if(B==="navigate"){throw _.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(B!=null){s.mode=B}if(t.credentials!==undefined){s.credentials=t.credentials}if(t.cache!==undefined){s.cache=t.cache}if(s.cache==="only-if-cached"&&s.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode")}if(t.redirect!==undefined){s.redirect=t.redirect}if(t.integrity!=null){s.integrity=String(t.integrity)}if(t.keepalive!==undefined){s.keepalive=Boolean(t.keepalive)}if(t.method!==undefined){let e=t.method;if(!l(e)){throw new TypeError(`'${e}' is not a valid HTTP method.`)}if(E.has(e.toUpperCase())){throw new TypeError(`'${e}' HTTP method is unsupported.`)}e=h[e]??d(e);s.method=e}if(t.signal!==undefined){I=t.signal}this[R]=s;const b=new AbortController;this[v]=b.signal;this[v][D]=this[D];if(I!=null){if(!I||typeof I.aborted!=="boolean"||typeof I.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(I.aborted){b.abort(I.reason)}else{this[V]=b;const e=new WeakRef(b);const abort=function(){const t=e.deref();if(t!==undefined){t.abort(this.reason)}};try{if(typeof U==="function"&&U(I)===M){G(100,I)}else if(P(I,"abort").length>=M){G(100,I)}}catch{}u.addAbortListener(I,abort);j.register(b,{signal:I,abort:abort})}}this[w]=new i(O);this[w][N]=s.headersList;this[w][k]="request";this[w][D]=this[D];if(B==="no-cors"){if(!m.has(s.method)){throw new TypeError(`'${s.method} is unsupported in no-cors mode.`)}this[w][k]="request-no-cors"}if(Q){const e=this[w][N];const r=t.headers!==undefined?t.headers:new A(e);e.clear();if(r instanceof A){for(const[t,n]of r){e.append(t,n)}e.cookies=r.cookies}else{a(this[w],r)}}const T=e instanceof Request?e[R].body:null;if((t.body!=null||T!=null)&&(s.method==="GET"||s.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let F=null;if(t.body!=null){const[e,r]=n(t.body,s.keepalive);F=e;if(r&&!this[w][N].contains("content-type")){this[w].append("content-type",r)}}const H=F??T;if(H!=null&&H.source==null){if(F!=null&&t.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(s.mode!=="same-origin"&&s.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}s.useCORSPreflightFlag=true}let Y=H;if(F==null&&T!=null){if(u.isDisturbed(T.stream)||T.stream.locked){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}if(!x){x=r(3774).TransformStream}const e=new x;T.stream.pipeThrough(e);Y={source:T.source,length:T.length,stream:e.readable}}this[R].body=Y}get method(){_.brandCheck(this,Request);return this[R].method}get url(){_.brandCheck(this,Request);return F(this[R].url)}get headers(){_.brandCheck(this,Request);return this[w]}get destination(){_.brandCheck(this,Request);return this[R].destination}get referrer(){_.brandCheck(this,Request);if(this[R].referrer==="no-referrer"){return""}if(this[R].referrer==="client"){return"about:client"}return this[R].referrer.toString()}get referrerPolicy(){_.brandCheck(this,Request);return this[R].referrerPolicy}get mode(){_.brandCheck(this,Request);return this[R].mode}get credentials(){return this[R].credentials}get cache(){_.brandCheck(this,Request);return this[R].cache}get redirect(){_.brandCheck(this,Request);return this[R].redirect}get integrity(){_.brandCheck(this,Request);return this[R].integrity}get keepalive(){_.brandCheck(this,Request);return this[R].keepalive}get isReloadNavigation(){_.brandCheck(this,Request);return this[R].reloadNavigation}get isHistoryNavigation(){_.brandCheck(this,Request);return this[R].historyNavigation}get signal(){_.brandCheck(this,Request);return this[v]}get body(){_.brandCheck(this,Request);return this[R].body?this[R].body.stream:null}get bodyUsed(){_.brandCheck(this,Request);return!!this[R].body&&u.isDisturbed(this[R].body.stream)}get duplex(){_.brandCheck(this,Request);return"half"}clone(){_.brandCheck(this,Request);if(this.bodyUsed||this.body?.locked){throw new TypeError("unusable")}const e=cloneRequest(this[R]);const t=new Request(O);t[R]=e;t[D]=this[D];t[w]=new i(O);t[w][N]=e.headersList;t[w][k]=this[w][k];t[w][D]=this[w][D];const r=new AbortController;if(this.signal.aborted){r.abort(this.signal.reason)}else{u.addAbortListener(this.signal,(()=>{r.abort(this.signal.reason)}))}t[v]=r.signal;return t}}s(Request);function makeRequest(e){const t={method:"GET",localURLsOnly:false,unsafeRequest:false,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:false,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:false,credentials:"same-origin",useCredentials:false,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:false,historyNavigation:false,userActivation:false,taintedOrigin:false,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:false,done:false,timingAllowFailed:false,...e,headersList:e.headersList?new A(e.headersList):new A};t.url=t.urlList[0];return t}function cloneRequest(e){const t=makeRequest({...e,body:null});if(e.body!=null){t.body=o(e.body)}return t}Object.defineProperties(Request.prototype,{method:T,url:T,headers:T,redirect:T,clone:T,signal:T,duplex:T,destination:T,body:T,bodyUsed:T,isHistoryNavigation:T,isReloadNavigation:T,keepalive:T,integrity:T,cache:T,credentials:T,attribute:T,referrerPolicy:T,referrer:T,mode:T,[Symbol.toStringTag]:{value:"Request",configurable:true}});_.converters.Request=_.interfaceConverter(Request);_.converters.RequestInfo=function(e){if(typeof e==="string"){return _.converters.USVString(e)}if(e instanceof Request){return _.converters.Request(e)}return _.converters.USVString(e)};_.converters.AbortSignal=_.interfaceConverter(AbortSignal);_.converters.RequestInit=_.dictionaryConverter([{key:"method",converter:_.converters.ByteString},{key:"headers",converter:_.converters.HeadersInit},{key:"body",converter:_.nullableConverter(_.converters.BodyInit)},{key:"referrer",converter:_.converters.USVString},{key:"referrerPolicy",converter:_.converters.DOMString,allowedValues:I},{key:"mode",converter:_.converters.DOMString,allowedValues:C},{key:"credentials",converter:_.converters.DOMString,allowedValues:Q},{key:"cache",converter:_.converters.DOMString,allowedValues:B},{key:"redirect",converter:_.converters.DOMString,allowedValues:y},{key:"integrity",converter:_.converters.DOMString},{key:"keepalive",converter:_.converters.boolean},{key:"signal",converter:_.nullableConverter((e=>_.converters.AbortSignal(e,{strict:false})))},{key:"window",converter:_.converters.any},{key:"duplex",converter:_.converters.DOMString,allowedValues:b}]);e.exports={Request:Request,makeRequest:makeRequest}},8676:(e,t,r)=>{const{Headers:n,HeadersList:s,fill:o}=r(6349);const{extractBody:i,cloneBody:a,mixinBody:A}=r(8923);const c=r(3440);const{kEnumerableProperty:u}=c;const{isValidReasonPhrase:l,isCancelled:p,isAborted:d,isBlobLike:g,serializeJavascriptValueToJSONString:h,isErrorLike:E,isomorphicEncode:m}=r(5523);const{redirectStatusSet:I,nullBodyStatus:y,DOMException:C}=r(7326);const{kState:Q,kHeaders:B,kGuard:b,kRealm:T}=r(9710);const{webidl:w}=r(4222);const{FormData:v}=r(3073);const{getGlobalOrigin:R}=r(5628);const{URLSerializer:k}=r(4322);const{kHeadersList:D,kConstruct:_}=r(6443);const S=r(2613);const{types:F}=r(9023);const N=globalThis.ReadableStream||r(3774).ReadableStream;const O=new TextEncoder("utf-8");class Response{static error(){const e={settingsObject:{}};const t=new Response;t[Q]=makeNetworkError();t[T]=e;t[B][D]=t[Q].headersList;t[B][b]="immutable";t[B][T]=e;return t}static json(e,t={}){w.argumentLengthCheck(arguments,1,{header:"Response.json"});if(t!==null){t=w.converters.ResponseInit(t)}const r=O.encode(h(e));const n=i(r);const s={settingsObject:{}};const o=new Response;o[T]=s;o[B][b]="response";o[B][T]=s;initializeResponse(o,t,{body:n[0],type:"application/json"});return o}static redirect(e,t=302){const r={settingsObject:{}};w.argumentLengthCheck(arguments,1,{header:"Response.redirect"});e=w.converters.USVString(e);t=w.converters["unsigned short"](t);let n;try{n=new URL(e,R())}catch(t){throw Object.assign(new TypeError("Failed to parse URL from "+e),{cause:t})}if(!I.has(t)){throw new RangeError("Invalid status code "+t)}const s=new Response;s[T]=r;s[B][b]="immutable";s[B][T]=r;s[Q].status=t;const o=m(k(n));s[Q].headersList.append("location",o);return s}constructor(e=null,t={}){if(e!==null){e=w.converters.BodyInit(e)}t=w.converters.ResponseInit(t);this[T]={settingsObject:{}};this[Q]=makeResponse({});this[B]=new n(_);this[B][b]="response";this[B][D]=this[Q].headersList;this[B][T]=this[T];let r=null;if(e!=null){const[t,n]=i(e);r={body:t,type:n}}initializeResponse(this,t,r)}get type(){w.brandCheck(this,Response);return this[Q].type}get url(){w.brandCheck(this,Response);const e=this[Q].urlList;const t=e[e.length-1]??null;if(t===null){return""}return k(t,true)}get redirected(){w.brandCheck(this,Response);return this[Q].urlList.length>1}get status(){w.brandCheck(this,Response);return this[Q].status}get ok(){w.brandCheck(this,Response);return this[Q].status>=200&&this[Q].status<=299}get statusText(){w.brandCheck(this,Response);return this[Q].statusText}get headers(){w.brandCheck(this,Response);return this[B]}get body(){w.brandCheck(this,Response);return this[Q].body?this[Q].body.stream:null}get bodyUsed(){w.brandCheck(this,Response);return!!this[Q].body&&c.isDisturbed(this[Q].body.stream)}clone(){w.brandCheck(this,Response);if(this.bodyUsed||this.body&&this.body.locked){throw w.errors.exception({header:"Response.clone",message:"Body has already been consumed."})}const e=cloneResponse(this[Q]);const t=new Response;t[Q]=e;t[T]=this[T];t[B][D]=e.headersList;t[B][b]=this[B][b];t[B][T]=this[B][T];return t}}A(Response);Object.defineProperties(Response.prototype,{type:u,url:u,status:u,ok:u,redirected:u,statusText:u,headers:u,clone:u,body:u,bodyUsed:u,[Symbol.toStringTag]:{value:"Response",configurable:true}});Object.defineProperties(Response,{json:u,redirect:u,error:u});function cloneResponse(e){if(e.internalResponse){return filterResponse(cloneResponse(e.internalResponse),e.type)}const t=makeResponse({...e,body:null});if(e.body!=null){t.body=a(e.body)}return t}function makeResponse(e){return{aborted:false,rangeRequested:false,timingAllowPassed:false,requestIncludesCredentials:false,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new s(e.headersList):new s,urlList:e.urlList?[...e.urlList]:[]}}function makeNetworkError(e){const t=E(e);return makeResponse({type:"error",status:0,error:t?e:new Error(e?String(e):e),aborted:e&&e.name==="AbortError"})}function makeFilteredResponse(e,t){t={internalResponse:e,...t};return new Proxy(e,{get(e,r){return r in t?t[r]:e[r]},set(e,r,n){S(!(r in t));e[r]=n;return true}})}function filterResponse(e,t){if(t==="basic"){return makeFilteredResponse(e,{type:"basic",headersList:e.headersList})}else if(t==="cors"){return makeFilteredResponse(e,{type:"cors",headersList:e.headersList})}else if(t==="opaque"){return makeFilteredResponse(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(t==="opaqueredirect"){return makeFilteredResponse(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{S(false)}}function makeAppropriateNetworkError(e,t=null){S(p(e));return d(e)?makeNetworkError(Object.assign(new C("The operation was aborted.","AbortError"),{cause:t})):makeNetworkError(Object.assign(new C("Request was cancelled."),{cause:t}))}function initializeResponse(e,t,r){if(t.status!==null&&(t.status<200||t.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in t&&t.statusText!=null){if(!l(String(t.statusText))){throw new TypeError("Invalid statusText")}}if("status"in t&&t.status!=null){e[Q].status=t.status}if("statusText"in t&&t.statusText!=null){e[Q].statusText=t.statusText}if("headers"in t&&t.headers!=null){o(e[B],t.headers)}if(r){if(y.includes(e.status)){throw w.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status})}e[Q].body=r.body;if(r.type!=null&&!e[Q].headersList.contains("Content-Type")){e[Q].headersList.append("content-type",r.type)}}}w.converters.ReadableStream=w.interfaceConverter(N);w.converters.FormData=w.interfaceConverter(v);w.converters.URLSearchParams=w.interfaceConverter(URLSearchParams);w.converters.XMLHttpRequestBodyInit=function(e){if(typeof e==="string"){return w.converters.USVString(e)}if(g(e)){return w.converters.Blob(e,{strict:false})}if(F.isArrayBuffer(e)||F.isTypedArray(e)||F.isDataView(e)){return w.converters.BufferSource(e)}if(c.isFormDataLike(e)){return w.converters.FormData(e,{strict:false})}if(e instanceof URLSearchParams){return w.converters.URLSearchParams(e)}return w.converters.DOMString(e)};w.converters.BodyInit=function(e){if(e instanceof N){return w.converters.ReadableStream(e)}if(e?.[Symbol.asyncIterator]){return e}return w.converters.XMLHttpRequestBodyInit(e)};w.converters.ResponseInit=w.dictionaryConverter([{key:"status",converter:w.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:w.converters.ByteString,defaultValue:""},{key:"headers",converter:w.converters.HeadersInit}]);e.exports={makeNetworkError:makeNetworkError,makeResponse:makeResponse,makeAppropriateNetworkError:makeAppropriateNetworkError,filterResponse:filterResponse,Response:Response,cloneResponse:cloneResponse}},9710:e=>{e.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}},5523:(e,t,r)=>{const{redirectStatusSet:n,referrerPolicySet:s,badPortsSet:o}=r(7326);const{getGlobalOrigin:i}=r(5628);const{performance:a}=r(2987);const{isBlobLike:A,toUSVString:c,ReadableStreamFrom:u}=r(3440);const l=r(2613);const{isUint8Array:p}=r(8253);let d=[];let g;try{g=r(6982);const e=["sha256","sha384","sha512"];d=g.getHashes().filter((t=>e.includes(t)))}catch{}function responseURL(e){const t=e.urlList;const r=t.length;return r===0?null:t[r-1].toString()}function responseLocationURL(e,t){if(!n.has(e.status)){return null}let r=e.headersList.get("location");if(r!==null&&isValidHeaderValue(r)){r=new URL(r,responseURL(e))}if(r&&!r.hash){r.hash=t}return r}function requestCurrentURL(e){return e.urlList[e.urlList.length-1]}function requestBadPort(e){const t=requestCurrentURL(e);if(urlIsHttpHttpsScheme(t)&&o.has(t.port)){return"blocked"}return"allowed"}function isErrorLike(e){return e instanceof Error||(e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException")}function isValidReasonPhrase(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255)){return false}}return true}function isTokenCharCode(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return false;default:return e>=33&&e<=126}}function isValidHTTPToken(e){if(e.length===0){return false}for(let t=0;t0){for(let e=n.length;e!==0;e--){const t=n[e-1].trim();if(s.has(t)){o=t;break}}}if(o!==""){e.referrerPolicy=o}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"success"}function appendFetchMetadata(e){let t=null;t=e.mode;e.headersList.set("sec-fetch-mode",t)}function appendRequestOriginHeader(e){let t=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket"){if(t){e.headersList.append("origin",t)}}else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":if(e.origin&&urlHasHttpsScheme(e.origin)&&!urlHasHttpsScheme(requestCurrentURL(e))){t=null}break;case"same-origin":if(!sameOrigin(e,requestCurrentURL(e))){t=null}break;default:}if(t){e.headersList.append("origin",t)}}}function coarsenedSharedCurrentTime(e){return a.now()}function createOpaqueTimingInfo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function makePolicyContainer(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function clonePolicyContainer(e){return{referrerPolicy:e.referrerPolicy}}function determineRequestsReferrer(e){const t=e.referrerPolicy;l(t);let r=null;if(e.referrer==="client"){const e=i();if(!e||e.origin==="null"){return"no-referrer"}r=new URL(e)}else if(e.referrer instanceof URL){r=e.referrer}let n=stripURLForReferrer(r);const s=stripURLForReferrer(r,true);if(n.toString().length>4096){n=s}const o=sameOrigin(e,n);const a=isURLPotentiallyTrustworthy(n)&&!isURLPotentiallyTrustworthy(e.url);switch(t){case"origin":return s!=null?s:stripURLForReferrer(r,true);case"unsafe-url":return n;case"same-origin":return o?s:"no-referrer";case"origin-when-cross-origin":return o?n:s;case"strict-origin-when-cross-origin":{const t=requestCurrentURL(e);if(sameOrigin(n,t)){return n}if(isURLPotentiallyTrustworthy(n)&&!isURLPotentiallyTrustworthy(t)){return"no-referrer"}return s}case"strict-origin":case"no-referrer-when-downgrade":default:return a?"no-referrer":s}}function stripURLForReferrer(e,t){l(e instanceof URL);if(e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"){return"no-referrer"}e.username="";e.password="";e.hash="";if(t){e.pathname="";e.search=""}return e}function isURLPotentiallyTrustworthy(e){if(!(e instanceof URL)){return false}if(e.href==="about:blank"||e.href==="about:srcdoc"){return true}if(e.protocol==="data:")return true;if(e.protocol==="file:")return true;return isOriginPotentiallyTrustworthy(e.origin);function isOriginPotentiallyTrustworthy(e){if(e==null||e==="null")return false;const t=new URL(e);if(t.protocol==="https:"||t.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(t.hostname)||(t.hostname==="localhost"||t.hostname.includes("localhost."))||t.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(e,t){if(g===undefined){return true}const r=parseMetadata(t);if(r==="no metadata"){return true}if(r.length===0){return true}const n=getStrongestMetadata(r);const s=filterMetadataListByAlgorithm(r,n);for(const t of s){const r=t.algo;const n=t.hash;let s=g.createHash(r).update(e).digest("base64");if(s[s.length-1]==="="){if(s[s.length-2]==="="){s=s.slice(0,-2)}else{s=s.slice(0,-1)}}if(compareBase64Mixed(s,n)){return true}}return false}const h=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function parseMetadata(e){const t=[];let r=true;for(const n of e.split(" ")){r=false;const e=h.exec(n);if(e===null||e.groups===undefined||e.groups.algo===undefined){continue}const s=e.groups.algo.toLowerCase();if(d.includes(s)){t.push(e.groups)}}if(r===true){return"no metadata"}return t}function getStrongestMetadata(e){let t=e[0].algo;if(t[3]==="5"){return t}for(let r=1;r{e=r;t=n}));return{promise:r,resolve:e,reject:t}}function isAborted(e){return e.controller.state==="aborted"}function isCancelled(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}const E={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(E,null);function normalizeMethod(e){return E[e.toLowerCase()]??e}function serializeJavascriptValueToJSONString(e){const t=JSON.stringify(e);if(t===undefined){throw new TypeError("Value is not JSON serializable")}l(typeof t==="string");return t}const m=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function makeIterator(e,t,r){const n={index:0,kind:r,target:e};const s={next(){if(Object.getPrototypeOf(this)!==s){throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`)}const{index:e,kind:r,target:o}=n;const i=o();const a=i.length;if(e>=a){return{value:undefined,done:true}}const A=i[e];n.index=e+1;return iteratorResult(A,r)},[Symbol.toStringTag]:`${t} Iterator`};Object.setPrototypeOf(s,m);return Object.setPrototypeOf({},s)}function iteratorResult(e,t){let r;switch(t){case"key":{r=e[0];break}case"value":{r=e[1];break}case"key+value":{r=e;break}}return{value:r,done:false}}async function fullyReadBody(e,t,r){const n=t;const s=r;let o;try{o=e.stream.getReader()}catch(e){s(e);return}try{const e=await readAllBytes(o);n(e)}catch(e){s(e)}}let I=globalThis.ReadableStream;function isReadableStreamLike(e){if(!I){I=r(3774).ReadableStream}return e instanceof I||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee==="function"}const y=65535;function isomorphicDecode(e){if(e.lengthe+String.fromCharCode(t)),"")}function readableStreamClose(e){try{e.close()}catch(e){if(!e.message.includes("Controller is already closed")){throw e}}}function isomorphicEncode(e){for(let t=0;tObject.prototype.hasOwnProperty.call(e,t));e.exports={isAborted:isAborted,isCancelled:isCancelled,createDeferredPromise:createDeferredPromise,ReadableStreamFrom:u,toUSVString:c,tryUpgradeRequestToAPotentiallyTrustworthyURL:tryUpgradeRequestToAPotentiallyTrustworthyURL,coarsenedSharedCurrentTime:coarsenedSharedCurrentTime,determineRequestsReferrer:determineRequestsReferrer,makePolicyContainer:makePolicyContainer,clonePolicyContainer:clonePolicyContainer,appendFetchMetadata:appendFetchMetadata,appendRequestOriginHeader:appendRequestOriginHeader,TAOCheck:TAOCheck,corsCheck:corsCheck,crossOriginResourcePolicyCheck:crossOriginResourcePolicyCheck,createOpaqueTimingInfo:createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect:setRequestReferrerPolicyOnRedirect,isValidHTTPToken:isValidHTTPToken,requestBadPort:requestBadPort,requestCurrentURL:requestCurrentURL,responseURL:responseURL,responseLocationURL:responseLocationURL,isBlobLike:A,isURLPotentiallyTrustworthy:isURLPotentiallyTrustworthy,isValidReasonPhrase:isValidReasonPhrase,sameOrigin:sameOrigin,normalizeMethod:normalizeMethod,serializeJavascriptValueToJSONString:serializeJavascriptValueToJSONString,makeIterator:makeIterator,isValidHeaderName:isValidHeaderName,isValidHeaderValue:isValidHeaderValue,hasOwn:C,isErrorLike:isErrorLike,fullyReadBody:fullyReadBody,bytesMatch:bytesMatch,isReadableStreamLike:isReadableStreamLike,readableStreamClose:readableStreamClose,isomorphicEncode:isomorphicEncode,isomorphicDecode:isomorphicDecode,urlIsLocal:urlIsLocal,urlHasHttpsScheme:urlHasHttpsScheme,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme,readAllBytes:readAllBytes,normalizeMethodRecord:E,parseMetadata:parseMetadata}},4222:(e,t,r)=>{const{types:n}=r(9023);const{hasOwn:s,toUSVString:o}=r(5523);const i={};i.converters={};i.util={};i.errors={};i.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};i.errors.conversionFailed=function(e){const t=e.types.length===1?"":" one of";const r=`${e.argument} could not be converted to`+`${t}: ${e.types.join(", ")}.`;return i.errors.exception({header:e.prefix,message:r})};i.errors.invalidArgument=function(e){return i.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};i.brandCheck=function(e,t,r=undefined){if(r?.strict!==false&&!(e instanceof t)){throw new TypeError("Illegal invocation")}else{return e?.[Symbol.toStringTag]===t.prototype[Symbol.toStringTag]}};i.argumentLengthCheck=function({length:e},t,r){if(es){throw i.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${s}, got ${a}.`})}return a}if(!Number.isNaN(a)&&n.clamp===true){a=Math.min(Math.max(a,o),s);if(Math.floor(a)%2===0){a=Math.floor(a)}else{a=Math.ceil(a)}return a}if(Number.isNaN(a)||a===0&&Object.is(0,a)||a===Number.POSITIVE_INFINITY||a===Number.NEGATIVE_INFINITY){return 0}a=i.util.IntegerPart(a);a=a%Math.pow(2,t);if(r==="signed"&&a>=Math.pow(2,t)-1){return a-Math.pow(2,t)}return a};i.util.IntegerPart=function(e){const t=Math.floor(Math.abs(e));if(e<0){return-1*t}return t};i.sequenceConverter=function(e){return t=>{if(i.util.Type(t)!=="Object"){throw i.errors.exception({header:"Sequence",message:`Value of type ${i.util.Type(t)} is not an Object.`})}const r=t?.[Symbol.iterator]?.();const n=[];if(r===undefined||typeof r.next!=="function"){throw i.errors.exception({header:"Sequence",message:"Object is not an iterator."})}while(true){const{done:t,value:s}=r.next();if(t){break}n.push(e(s))}return n}};i.recordConverter=function(e,t){return r=>{if(i.util.Type(r)!=="Object"){throw i.errors.exception({header:"Record",message:`Value of type ${i.util.Type(r)} is not an Object.`})}const s={};if(!n.isProxy(r)){const n=Object.keys(r);for(const o of n){const n=e(o);const i=t(r[o]);s[n]=i}return s}const o=Reflect.ownKeys(r);for(const n of o){const o=Reflect.getOwnPropertyDescriptor(r,n);if(o?.enumerable){const o=e(n);const i=t(r[n]);s[o]=i}}return s}};i.interfaceConverter=function(e){return(t,r={})=>{if(r.strict!==false&&!(t instanceof e)){throw i.errors.exception({header:e.name,message:`Expected ${t} to be an instance of ${e.name}.`})}return t}};i.dictionaryConverter=function(e){return t=>{const r=i.util.Type(t);const n={};if(r==="Null"||r==="Undefined"){return n}else if(r!=="Object"){throw i.errors.exception({header:"Dictionary",message:`Expected ${t} to be one of: Null, Undefined, Object.`})}for(const r of e){const{key:e,defaultValue:o,required:a,converter:A}=r;if(a===true){if(!s(t,e)){throw i.errors.exception({header:"Dictionary",message:`Missing required key "${e}".`})}}let c=t[e];const u=s(r,"defaultValue");if(u&&c!==null){c=c??o}if(a||u||c!==undefined){c=A(c);if(r.allowedValues&&!r.allowedValues.includes(c)){throw i.errors.exception({header:"Dictionary",message:`${c} is not an accepted type. Expected one of ${r.allowedValues.join(", ")}.`})}n[e]=c}}return n}};i.nullableConverter=function(e){return t=>{if(t===null){return t}return e(t)}};i.converters.DOMString=function(e,t={}){if(e===null&&t.legacyNullToEmptyString){return""}if(typeof e==="symbol"){throw new TypeError("Could not convert argument of type symbol to string.")}return String(e)};i.converters.ByteString=function(e){const t=i.converters.DOMString(e);for(let e=0;e255){throw new TypeError("Cannot convert argument to a ByteString because the character at "+`index ${e} has a value of ${t.charCodeAt(e)} which is greater than 255.`)}}return t};i.converters.USVString=o;i.converters.boolean=function(e){const t=Boolean(e);return t};i.converters.any=function(e){return e};i.converters["long long"]=function(e){const t=i.util.ConvertToInt(e,64,"signed");return t};i.converters["unsigned long long"]=function(e){const t=i.util.ConvertToInt(e,64,"unsigned");return t};i.converters["unsigned long"]=function(e){const t=i.util.ConvertToInt(e,32,"unsigned");return t};i.converters["unsigned short"]=function(e,t){const r=i.util.ConvertToInt(e,16,"unsigned",t);return r};i.converters.ArrayBuffer=function(e,t={}){if(i.util.Type(e)!=="Object"||!n.isAnyArrayBuffer(e)){throw i.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]})}if(t.allowShared===false&&n.isSharedArrayBuffer(e)){throw i.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};i.converters.TypedArray=function(e,t,r={}){if(i.util.Type(e)!=="Object"||!n.isTypedArray(e)||e.constructor.name!==t.name){throw i.errors.conversionFailed({prefix:`${t.name}`,argument:`${e}`,types:[t.name]})}if(r.allowShared===false&&n.isSharedArrayBuffer(e.buffer)){throw i.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};i.converters.DataView=function(e,t={}){if(i.util.Type(e)!=="Object"||!n.isDataView(e)){throw i.errors.exception({header:"DataView",message:"Object is not a DataView."})}if(t.allowShared===false&&n.isSharedArrayBuffer(e.buffer)){throw i.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}return e};i.converters.BufferSource=function(e,t={}){if(n.isAnyArrayBuffer(e)){return i.converters.ArrayBuffer(e,t)}if(n.isTypedArray(e)){return i.converters.TypedArray(e,e.constructor)}if(n.isDataView(e)){return i.converters.DataView(e,t)}throw new TypeError(`Could not convert ${e} to a BufferSource.`)};i.converters["sequence"]=i.sequenceConverter(i.converters.ByteString);i.converters["sequence>"]=i.sequenceConverter(i.converters["sequence"]);i.converters["record"]=i.recordConverter(i.converters.ByteString,i.converters.ByteString);e.exports={webidl:i}},396:e=>{function getEncoding(e){if(!e){return"failure"}switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}e.exports={getEncoding:getEncoding}},2160:(e,t,r)=>{const{staticPropertyDescriptors:n,readOperation:s,fireAProgressEvent:o}=r(165);const{kState:i,kError:a,kResult:A,kEvents:c,kAborted:u}=r(6812);const{webidl:l}=r(4222);const{kEnumerableProperty:p}=r(3440);class FileReader extends EventTarget{constructor(){super();this[i]="empty";this[A]=null;this[a]=null;this[c]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(e){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"});e=l.converters.Blob(e,{strict:false});s(this,e,"ArrayBuffer")}readAsBinaryString(e){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"});e=l.converters.Blob(e,{strict:false});s(this,e,"BinaryString")}readAsText(e,t=undefined){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"});e=l.converters.Blob(e,{strict:false});if(t!==undefined){t=l.converters.DOMString(t)}s(this,e,"Text",t)}readAsDataURL(e){l.brandCheck(this,FileReader);l.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"});e=l.converters.Blob(e,{strict:false});s(this,e,"DataURL")}abort(){if(this[i]==="empty"||this[i]==="done"){this[A]=null;return}if(this[i]==="loading"){this[i]="done";this[A]=null}this[u]=true;o("abort",this);if(this[i]!=="loading"){o("loadend",this)}}get readyState(){l.brandCheck(this,FileReader);switch(this[i]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){l.brandCheck(this,FileReader);return this[A]}get error(){l.brandCheck(this,FileReader);return this[a]}get onloadend(){l.brandCheck(this,FileReader);return this[c].loadend}set onloadend(e){l.brandCheck(this,FileReader);if(this[c].loadend){this.removeEventListener("loadend",this[c].loadend)}if(typeof e==="function"){this[c].loadend=e;this.addEventListener("loadend",e)}else{this[c].loadend=null}}get onerror(){l.brandCheck(this,FileReader);return this[c].error}set onerror(e){l.brandCheck(this,FileReader);if(this[c].error){this.removeEventListener("error",this[c].error)}if(typeof e==="function"){this[c].error=e;this.addEventListener("error",e)}else{this[c].error=null}}get onloadstart(){l.brandCheck(this,FileReader);return this[c].loadstart}set onloadstart(e){l.brandCheck(this,FileReader);if(this[c].loadstart){this.removeEventListener("loadstart",this[c].loadstart)}if(typeof e==="function"){this[c].loadstart=e;this.addEventListener("loadstart",e)}else{this[c].loadstart=null}}get onprogress(){l.brandCheck(this,FileReader);return this[c].progress}set onprogress(e){l.brandCheck(this,FileReader);if(this[c].progress){this.removeEventListener("progress",this[c].progress)}if(typeof e==="function"){this[c].progress=e;this.addEventListener("progress",e)}else{this[c].progress=null}}get onload(){l.brandCheck(this,FileReader);return this[c].load}set onload(e){l.brandCheck(this,FileReader);if(this[c].load){this.removeEventListener("load",this[c].load)}if(typeof e==="function"){this[c].load=e;this.addEventListener("load",e)}else{this[c].load=null}}get onabort(){l.brandCheck(this,FileReader);return this[c].abort}set onabort(e){l.brandCheck(this,FileReader);if(this[c].abort){this.removeEventListener("abort",this[c].abort)}if(typeof e==="function"){this[c].abort=e;this.addEventListener("abort",e)}else{this[c].abort=null}}}FileReader.EMPTY=FileReader.prototype.EMPTY=0;FileReader.LOADING=FileReader.prototype.LOADING=1;FileReader.DONE=FileReader.prototype.DONE=2;Object.defineProperties(FileReader.prototype,{EMPTY:n,LOADING:n,DONE:n,readAsArrayBuffer:p,readAsBinaryString:p,readAsText:p,readAsDataURL:p,abort:p,readyState:p,result:p,error:p,onloadstart:p,onprogress:p,onload:p,onabort:p,onerror:p,onloadend:p,[Symbol.toStringTag]:{value:"FileReader",writable:false,enumerable:false,configurable:true}});Object.defineProperties(FileReader,{EMPTY:n,LOADING:n,DONE:n});e.exports={FileReader:FileReader}},5976:(e,t,r)=>{const{webidl:n}=r(4222);const s=Symbol("ProgressEvent state");class ProgressEvent extends Event{constructor(e,t={}){e=n.converters.DOMString(e);t=n.converters.ProgressEventInit(t??{});super(e,t);this[s]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){n.brandCheck(this,ProgressEvent);return this[s].lengthComputable}get loaded(){n.brandCheck(this,ProgressEvent);return this[s].loaded}get total(){n.brandCheck(this,ProgressEvent);return this[s].total}}n.converters.ProgressEventInit=n.dictionaryConverter([{key:"lengthComputable",converter:n.converters.boolean,defaultValue:false},{key:"loaded",converter:n.converters["unsigned long long"],defaultValue:0},{key:"total",converter:n.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:n.converters.boolean,defaultValue:false},{key:"cancelable",converter:n.converters.boolean,defaultValue:false},{key:"composed",converter:n.converters.boolean,defaultValue:false}]);e.exports={ProgressEvent:ProgressEvent}},6812:e=>{e.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}},165:(e,t,r)=>{const{kState:n,kError:s,kResult:o,kAborted:i,kLastProgressEventFired:a}=r(6812);const{ProgressEvent:A}=r(5976);const{getEncoding:c}=r(396);const{DOMException:u}=r(7326);const{serializeAMimeType:l,parseMIMEType:p}=r(4322);const{types:d}=r(9023);const{StringDecoder:g}=r(3193);const{btoa:h}=r(181);const E={enumerable:true,writable:false,configurable:false};function readOperation(e,t,r,A){if(e[n]==="loading"){throw new u("Invalid state","InvalidStateError")}e[n]="loading";e[o]=null;e[s]=null;const c=t.stream();const l=c.getReader();const p=[];let g=l.read();let h=true;(async()=>{while(!e[i]){try{const{done:c,value:u}=await g;if(h&&!e[i]){queueMicrotask((()=>{fireAProgressEvent("loadstart",e)}))}h=false;if(!c&&d.isUint8Array(u)){p.push(u);if((e[a]===undefined||Date.now()-e[a]>=50)&&!e[i]){e[a]=Date.now();queueMicrotask((()=>{fireAProgressEvent("progress",e)}))}g=l.read()}else if(c){queueMicrotask((()=>{e[n]="done";try{const n=packageData(p,r,t.type,A);if(e[i]){return}e[o]=n;fireAProgressEvent("load",e)}catch(t){e[s]=t;fireAProgressEvent("error",e)}if(e[n]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}catch(t){if(e[i]){return}queueMicrotask((()=>{e[n]="done";e[s]=t;fireAProgressEvent("error",e);if(e[n]!=="loading"){fireAProgressEvent("loadend",e)}}));break}}})()}function fireAProgressEvent(e,t){const r=new A(e,{bubbles:false,cancelable:false});t.dispatchEvent(r)}function packageData(e,t,r,n){switch(t){case"DataURL":{let t="data:";const n=p(r||"application/octet-stream");if(n!=="failure"){t+=l(n)}t+=";base64,";const s=new g("latin1");for(const r of e){t+=h(s.write(r))}t+=h(s.end());return t}case"Text":{let t="failure";if(n){t=c(n)}if(t==="failure"&&r){const e=p(r);if(e!=="failure"){t=c(e.parameters.get("charset"))}}if(t==="failure"){t="UTF-8"}return decode(e,t)}case"ArrayBuffer":{const t=combineByteSequences(e);return t.buffer}case"BinaryString":{let t="";const r=new g("latin1");for(const n of e){t+=r.write(n)}t+=r.end();return t}}}function decode(e,t){const r=combineByteSequences(e);const n=BOMSniffing(r);let s=0;if(n!==null){t=n;s=n==="UTF-8"?3:2}const o=r.slice(s);return new TextDecoder(t).decode(o)}function BOMSniffing(e){const[t,r,n]=e;if(t===239&&r===187&&n===191){return"UTF-8"}else if(t===254&&r===255){return"UTF-16BE"}else if(t===255&&r===254){return"UTF-16LE"}return null}function combineByteSequences(e){const t=e.reduce(((e,t)=>e+t.byteLength),0);let r=0;return e.reduce(((e,t)=>{e.set(t,r);r+=t.byteLength;return e}),new Uint8Array(t))}e.exports={staticPropertyDescriptors:E,readOperation:readOperation,fireAProgressEvent:fireAProgressEvent}},2581:(e,t,r)=>{const n=Symbol.for("undici.globalDispatcher.1");const{InvalidArgumentError:s}=r(8707);const o=r(9965);if(getGlobalDispatcher()===undefined){setGlobalDispatcher(new o)}function setGlobalDispatcher(e){if(!e||typeof e.dispatch!=="function"){throw new s("Argument agent must implement Agent")}Object.defineProperty(globalThis,n,{value:e,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[n]}e.exports={setGlobalDispatcher:setGlobalDispatcher,getGlobalDispatcher:getGlobalDispatcher}},8840:e=>{e.exports=class DecoratorHandler{constructor(e){this.handler=e}onConnect(...e){return this.handler.onConnect(...e)}onError(...e){return this.handler.onError(...e)}onUpgrade(...e){return this.handler.onUpgrade(...e)}onHeaders(...e){return this.handler.onHeaders(...e)}onData(...e){return this.handler.onData(...e)}onComplete(...e){return this.handler.onComplete(...e)}onBodySent(...e){return this.handler.onBodySent(...e)}}},8299:(e,t,r)=>{const n=r(3440);const{kBodyUsed:s}=r(6443);const o=r(2613);const{InvalidArgumentError:i}=r(8707);const a=r(4434);const A=[300,301,302,303,307,308];const c=Symbol("body");class BodyAsyncIterable{constructor(e){this[c]=e;this[s]=false}async*[Symbol.asyncIterator](){o(!this[s],"disturbed");this[s]=true;yield*this[c]}}class RedirectHandler{constructor(e,t,r,A){if(t!=null&&(!Number.isInteger(t)||t<0)){throw new i("maxRedirections must be a positive number")}n.validateHandler(A,r.method,r.upgrade);this.dispatch=e;this.location=null;this.abort=null;this.opts={...r,maxRedirections:0};this.maxRedirections=t;this.handler=A;this.history=[];if(n.isStream(this.opts.body)){if(n.bodyLength(this.opts.body)===0){this.opts.body.on("data",(function(){o(false)}))}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[s]=false;a.prototype.on.call(this.opts.body,"data",(function(){this[s]=true}))}}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function"){this.opts.body=new BodyAsyncIterable(this.opts.body)}else if(this.opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&n.isIterable(this.opts.body)){this.opts.body=new BodyAsyncIterable(this.opts.body)}}onConnect(e){this.abort=e;this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,r){this.handler.onUpgrade(e,t,r)}onError(e){this.handler.onError(e)}onHeaders(e,t,r,s){this.location=this.history.length>=this.maxRedirections||n.isDisturbed(this.opts.body)?null:parseLocation(e,t);if(this.opts.origin){this.history.push(new URL(this.opts.path,this.opts.origin))}if(!this.location){return this.handler.onHeaders(e,t,r,s)}const{origin:o,pathname:i,search:a}=n.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin)));const A=a?`${i}${a}`:i;this.opts.headers=cleanRequestHeaders(this.opts.headers,e===303,this.opts.origin!==o);this.opts.path=A;this.opts.origin=o;this.opts.maxRedirections=0;this.opts.query=null;if(e===303&&this.opts.method!=="HEAD"){this.opts.method="GET";this.opts.body=null}}onData(e){if(this.location){}else{return this.handler.onData(e)}}onComplete(e){if(this.location){this.location=null;this.abort=null;this.dispatch(this.opts,this)}else{this.handler.onComplete(e)}}onBodySent(e){if(this.handler.onBodySent){this.handler.onBodySent(e)}}}function parseLocation(e,t){if(A.indexOf(e)===-1){return null}for(let e=0;e{const n=r(2613);const{kRetryHandlerDefaultRetry:s}=r(6443);const{RequestRetryError:o}=r(8707);const{isDisturbed:i,parseHeaders:a,parseRangeHeader:A}=r(3440);function calculateRetryAfterHeader(e){const t=Date.now();const r=new Date(e).getTime()-t;return r}class RetryHandler{constructor(e,t){const{retryOptions:r,...n}=e;const{retry:o,maxRetries:i,maxTimeout:a,minTimeout:A,timeoutFactor:c,methods:u,errorCodes:l,retryAfter:p,statusCodes:d}=r??{};this.dispatch=t.dispatch;this.handler=t.handler;this.opts=n;this.abort=null;this.aborted=false;this.retryOpts={retry:o??RetryHandler[s],retryAfter:p??true,maxTimeout:a??30*1e3,timeout:A??500,timeoutFactor:c??2,maxRetries:i??5,methods:u??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:d??[500,502,503,504,429],errorCodes:l??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]};this.retryCount=0;this.start=0;this.end=null;this.etag=null;this.resume=null;this.handler.onConnect((e=>{this.aborted=true;if(this.abort){this.abort(e)}else{this.reason=e}}))}onRequestSent(){if(this.handler.onRequestSent){this.handler.onRequestSent()}}onUpgrade(e,t,r){if(this.handler.onUpgrade){this.handler.onUpgrade(e,t,r)}}onConnect(e){if(this.aborted){e(this.reason)}else{this.abort=e}}onBodySent(e){if(this.handler.onBodySent)return this.handler.onBodySent(e)}static[s](e,{state:t,opts:r},n){const{statusCode:s,code:o,headers:i}=e;const{method:a,retryOptions:A}=r;const{maxRetries:c,timeout:u,maxTimeout:l,timeoutFactor:p,statusCodes:d,errorCodes:g,methods:h}=A;let{counter:E,currentTimeout:m}=t;m=m!=null&&m>0?m:u;if(o&&o!=="UND_ERR_REQ_RETRY"&&o!=="UND_ERR_SOCKET"&&!g.includes(o)){n(e);return}if(Array.isArray(h)&&!h.includes(a)){n(e);return}if(s!=null&&Array.isArray(d)&&!d.includes(s)){n(e);return}if(E>c){n(e);return}let I=i!=null&&i["retry-after"];if(I){I=Number(I);I=isNaN(I)?calculateRetryAfterHeader(I):I*1e3}const y=I>0?Math.min(I,l):Math.min(m*p**E,l);t.currentTimeout=y;setTimeout((()=>n(null)),y)}onHeaders(e,t,r,s){const i=a(t);this.retryCount+=1;if(e>=300){this.abort(new o("Request failed",e,{headers:i,count:this.retryCount}));return false}if(this.resume!=null){this.resume=null;if(e!==206){return true}const t=A(i["content-range"]);if(!t){this.abort(new o("Content-Range mismatch",e,{headers:i,count:this.retryCount}));return false}if(this.etag!=null&&this.etag!==i.etag){this.abort(new o("ETag mismatch",e,{headers:i,count:this.retryCount}));return false}const{start:s,size:a,end:c=a}=t;n(this.start===s,"content-range mismatch");n(this.end==null||this.end===c,"content-range mismatch");this.resume=r;return true}if(this.end==null){if(e===206){const o=A(i["content-range"]);if(o==null){return this.handler.onHeaders(e,t,r,s)}const{start:a,size:c,end:u=c}=o;n(a!=null&&Number.isFinite(a)&&this.start!==a,"content-range mismatch");n(Number.isFinite(a));n(u!=null&&Number.isFinite(u)&&this.end!==u,"invalid content-length");this.start=a;this.end=u}if(this.end==null){const e=i["content-length"];this.end=e!=null?Number(e):null}n(Number.isFinite(this.start));n(this.end==null||Number.isFinite(this.end),"invalid content-length");this.resume=r;this.etag=i.etag!=null?i.etag:null;return this.handler.onHeaders(e,t,r,s)}const c=new o("Request failed",e,{headers:i,count:this.retryCount});this.abort(c);return false}onData(e){this.start+=e.length;return this.handler.onData(e)}onComplete(e){this.retryCount=0;return this.handler.onComplete(e)}onError(e){if(this.aborted||i(this.opts.body)){return this.handler.onError(e)}this.retryOpts.retry(e,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},onRetry.bind(this));function onRetry(e){if(e!=null||this.aborted||i(this.opts.body)){return this.handler.onError(e)}if(this.start!==0){this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}}}try{this.dispatch(this.opts,this)}catch(e){this.handler.onError(e)}}}}e.exports=RetryHandler},4415:(e,t,r)=>{const n=r(8299);function createRedirectInterceptor({maxRedirections:e}){return t=>function Intercept(r,s){const{maxRedirections:o=e}=r;if(!o){return t(r,s)}const i=new n(t,o,r,s);r={...r,maxRedirections:0};return t(r,i)}}e.exports=createRedirectInterceptor},2824:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.SPECIAL_HEADERS=t.HEADER_STATE=t.MINOR=t.MAJOR=t.CONNECTION_TOKEN_CHARS=t.HEADER_CHARS=t.TOKEN=t.STRICT_TOKEN=t.HEX=t.URL_CHAR=t.STRICT_URL_CHAR=t.USERINFO_CHARS=t.MARK=t.ALPHANUM=t.NUM=t.HEX_MAP=t.NUM_MAP=t.ALPHA=t.FINISH=t.H_METHOD_MAP=t.METHOD_MAP=t.METHODS_RTSP=t.METHODS_ICE=t.METHODS_HTTP=t.METHODS=t.LENIENT_FLAGS=t.FLAGS=t.TYPE=t.ERROR=void 0;const n=r(172);var s;(function(e){e[e["OK"]=0]="OK";e[e["INTERNAL"]=1]="INTERNAL";e[e["STRICT"]=2]="STRICT";e[e["LF_EXPECTED"]=3]="LF_EXPECTED";e[e["UNEXPECTED_CONTENT_LENGTH"]=4]="UNEXPECTED_CONTENT_LENGTH";e[e["CLOSED_CONNECTION"]=5]="CLOSED_CONNECTION";e[e["INVALID_METHOD"]=6]="INVALID_METHOD";e[e["INVALID_URL"]=7]="INVALID_URL";e[e["INVALID_CONSTANT"]=8]="INVALID_CONSTANT";e[e["INVALID_VERSION"]=9]="INVALID_VERSION";e[e["INVALID_HEADER_TOKEN"]=10]="INVALID_HEADER_TOKEN";e[e["INVALID_CONTENT_LENGTH"]=11]="INVALID_CONTENT_LENGTH";e[e["INVALID_CHUNK_SIZE"]=12]="INVALID_CHUNK_SIZE";e[e["INVALID_STATUS"]=13]="INVALID_STATUS";e[e["INVALID_EOF_STATE"]=14]="INVALID_EOF_STATE";e[e["INVALID_TRANSFER_ENCODING"]=15]="INVALID_TRANSFER_ENCODING";e[e["CB_MESSAGE_BEGIN"]=16]="CB_MESSAGE_BEGIN";e[e["CB_HEADERS_COMPLETE"]=17]="CB_HEADERS_COMPLETE";e[e["CB_MESSAGE_COMPLETE"]=18]="CB_MESSAGE_COMPLETE";e[e["CB_CHUNK_HEADER"]=19]="CB_CHUNK_HEADER";e[e["CB_CHUNK_COMPLETE"]=20]="CB_CHUNK_COMPLETE";e[e["PAUSED"]=21]="PAUSED";e[e["PAUSED_UPGRADE"]=22]="PAUSED_UPGRADE";e[e["PAUSED_H2_UPGRADE"]=23]="PAUSED_H2_UPGRADE";e[e["USER"]=24]="USER"})(s=t.ERROR||(t.ERROR={}));var o;(function(e){e[e["BOTH"]=0]="BOTH";e[e["REQUEST"]=1]="REQUEST";e[e["RESPONSE"]=2]="RESPONSE"})(o=t.TYPE||(t.TYPE={}));var i;(function(e){e[e["CONNECTION_KEEP_ALIVE"]=1]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=2]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=4]="CONNECTION_UPGRADE";e[e["CHUNKED"]=8]="CHUNKED";e[e["UPGRADE"]=16]="UPGRADE";e[e["CONTENT_LENGTH"]=32]="CONTENT_LENGTH";e[e["SKIPBODY"]=64]="SKIPBODY";e[e["TRAILING"]=128]="TRAILING";e[e["TRANSFER_ENCODING"]=512]="TRANSFER_ENCODING"})(i=t.FLAGS||(t.FLAGS={}));var a;(function(e){e[e["HEADERS"]=1]="HEADERS";e[e["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";e[e["KEEP_ALIVE"]=4]="KEEP_ALIVE"})(a=t.LENIENT_FLAGS||(t.LENIENT_FLAGS={}));var A;(function(e){e[e["DELETE"]=0]="DELETE";e[e["GET"]=1]="GET";e[e["HEAD"]=2]="HEAD";e[e["POST"]=3]="POST";e[e["PUT"]=4]="PUT";e[e["CONNECT"]=5]="CONNECT";e[e["OPTIONS"]=6]="OPTIONS";e[e["TRACE"]=7]="TRACE";e[e["COPY"]=8]="COPY";e[e["LOCK"]=9]="LOCK";e[e["MKCOL"]=10]="MKCOL";e[e["MOVE"]=11]="MOVE";e[e["PROPFIND"]=12]="PROPFIND";e[e["PROPPATCH"]=13]="PROPPATCH";e[e["SEARCH"]=14]="SEARCH";e[e["UNLOCK"]=15]="UNLOCK";e[e["BIND"]=16]="BIND";e[e["REBIND"]=17]="REBIND";e[e["UNBIND"]=18]="UNBIND";e[e["ACL"]=19]="ACL";e[e["REPORT"]=20]="REPORT";e[e["MKACTIVITY"]=21]="MKACTIVITY";e[e["CHECKOUT"]=22]="CHECKOUT";e[e["MERGE"]=23]="MERGE";e[e["M-SEARCH"]=24]="M-SEARCH";e[e["NOTIFY"]=25]="NOTIFY";e[e["SUBSCRIBE"]=26]="SUBSCRIBE";e[e["UNSUBSCRIBE"]=27]="UNSUBSCRIBE";e[e["PATCH"]=28]="PATCH";e[e["PURGE"]=29]="PURGE";e[e["MKCALENDAR"]=30]="MKCALENDAR";e[e["LINK"]=31]="LINK";e[e["UNLINK"]=32]="UNLINK";e[e["SOURCE"]=33]="SOURCE";e[e["PRI"]=34]="PRI";e[e["DESCRIBE"]=35]="DESCRIBE";e[e["ANNOUNCE"]=36]="ANNOUNCE";e[e["SETUP"]=37]="SETUP";e[e["PLAY"]=38]="PLAY";e[e["PAUSE"]=39]="PAUSE";e[e["TEARDOWN"]=40]="TEARDOWN";e[e["GET_PARAMETER"]=41]="GET_PARAMETER";e[e["SET_PARAMETER"]=42]="SET_PARAMETER";e[e["REDIRECT"]=43]="REDIRECT";e[e["RECORD"]=44]="RECORD";e[e["FLUSH"]=45]="FLUSH"})(A=t.METHODS||(t.METHODS={}));t.METHODS_HTTP=[A.DELETE,A.GET,A.HEAD,A.POST,A.PUT,A.CONNECT,A.OPTIONS,A.TRACE,A.COPY,A.LOCK,A.MKCOL,A.MOVE,A.PROPFIND,A.PROPPATCH,A.SEARCH,A.UNLOCK,A.BIND,A.REBIND,A.UNBIND,A.ACL,A.REPORT,A.MKACTIVITY,A.CHECKOUT,A.MERGE,A["M-SEARCH"],A.NOTIFY,A.SUBSCRIBE,A.UNSUBSCRIBE,A.PATCH,A.PURGE,A.MKCALENDAR,A.LINK,A.UNLINK,A.PRI,A.SOURCE];t.METHODS_ICE=[A.SOURCE];t.METHODS_RTSP=[A.OPTIONS,A.DESCRIBE,A.ANNOUNCE,A.SETUP,A.PLAY,A.PAUSE,A.TEARDOWN,A.GET_PARAMETER,A.SET_PARAMETER,A.REDIRECT,A.RECORD,A.FLUSH,A.GET,A.POST];t.METHOD_MAP=n.enumToMap(A);t.H_METHOD_MAP={};Object.keys(t.METHOD_MAP).forEach((e=>{if(/^H/.test(e)){t.H_METHOD_MAP[e]=t.METHOD_MAP[e]}}));var c;(function(e){e[e["SAFE"]=0]="SAFE";e[e["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";e[e["UNSAFE"]=2]="UNSAFE"})(c=t.FINISH||(t.FINISH={}));t.ALPHA=[];for(let e="A".charCodeAt(0);e<="Z".charCodeAt(0);e++){t.ALPHA.push(String.fromCharCode(e));t.ALPHA.push(String.fromCharCode(e+32))}t.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};t.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};t.NUM=["0","1","2","3","4","5","6","7","8","9"];t.ALPHANUM=t.ALPHA.concat(t.NUM);t.MARK=["-","_",".","!","~","*","'","(",")"];t.USERINFO_CHARS=t.ALPHANUM.concat(t.MARK).concat(["%",";",":","&","=","+","$",","]);t.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(t.ALPHANUM);t.URL_CHAR=t.STRICT_URL_CHAR.concat(["\t","\f"]);for(let e=128;e<=255;e++){t.URL_CHAR.push(e)}t.HEX=t.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);t.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(t.ALPHANUM);t.TOKEN=t.STRICT_TOKEN.concat([" "]);t.HEADER_CHARS=["\t"];for(let e=32;e<=255;e++){if(e!==127){t.HEADER_CHARS.push(e)}}t.CONNECTION_TOKEN_CHARS=t.HEADER_CHARS.filter((e=>e!==44));t.MAJOR=t.NUM_MAP;t.MINOR=t.MAJOR;var u;(function(e){e[e["GENERAL"]=0]="GENERAL";e[e["CONNECTION"]=1]="CONNECTION";e[e["CONTENT_LENGTH"]=2]="CONTENT_LENGTH";e[e["TRANSFER_ENCODING"]=3]="TRANSFER_ENCODING";e[e["UPGRADE"]=4]="UPGRADE";e[e["CONNECTION_KEEP_ALIVE"]=5]="CONNECTION_KEEP_ALIVE";e[e["CONNECTION_CLOSE"]=6]="CONNECTION_CLOSE";e[e["CONNECTION_UPGRADE"]=7]="CONNECTION_UPGRADE";e[e["TRANSFER_ENCODING_CHUNKED"]=8]="TRANSFER_ENCODING_CHUNKED"})(u=t.HEADER_STATE||(t.HEADER_STATE={}));t.SPECIAL_HEADERS={connection:u.CONNECTION,"content-length":u.CONTENT_LENGTH,"proxy-connection":u.CONNECTION,"transfer-encoding":u.TRANSFER_ENCODING,upgrade:u.UPGRADE}},3870:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="},3434:e=>{e.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="},172:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.enumToMap=void 0;function enumToMap(e){const t={};Object.keys(e).forEach((r=>{const n=e[r];if(typeof n==="number"){t[r]=n}}));return t}t.enumToMap=enumToMap},7501:(e,t,r)=>{const{kClients:n}=r(6443);const s=r(9965);const{kAgent:o,kMockAgentSet:i,kMockAgentGet:a,kDispatches:A,kIsMockActive:c,kNetConnect:u,kGetNetConnect:l,kOptions:p,kFactory:d}=r(1117);const g=r(7365);const h=r(4004);const{matchValue:E,buildMockOptions:m}=r(3397);const{InvalidArgumentError:I,UndiciError:y}=r(8707);const C=r(992);const Q=r(1529);const B=r(6142);class FakeWeakRef{constructor(e){this.value=e}deref(){return this.value}}class MockAgent extends C{constructor(e){super(e);this[u]=true;this[c]=true;if(e&&e.agent&&typeof e.agent.dispatch!=="function"){throw new I("Argument opts.agent must implement Agent")}const t=e&&e.agent?e.agent:new s(e);this[o]=t;this[n]=t[n];this[p]=m(e)}get(e){let t=this[a](e);if(!t){t=this[d](e);this[i](e,t)}return t}dispatch(e,t){this.get(e.origin);return this[o].dispatch(e,t)}async close(){await this[o].close();this[n].clear()}deactivate(){this[c]=false}activate(){this[c]=true}enableNetConnect(e){if(typeof e==="string"||typeof e==="function"||e instanceof RegExp){if(Array.isArray(this[u])){this[u].push(e)}else{this[u]=[e]}}else if(typeof e==="undefined"){this[u]=true}else{throw new I("Unsupported matcher. Must be one of String|Function|RegExp.")}}disableNetConnect(){this[u]=false}get isMockActive(){return this[c]}[i](e,t){this[n].set(e,new FakeWeakRef(t))}[d](e){const t=Object.assign({agent:this},this[p]);return this[p]&&this[p].connections===1?new g(e,t):new h(e,t)}[a](e){const t=this[n].get(e);if(t){return t.deref()}if(typeof e!=="string"){const t=this[d]("http://localhost:9999");this[i](e,t);return t}for(const[t,r]of Array.from(this[n])){const n=r.deref();if(n&&typeof t!=="string"&&E(t,e)){const t=this[d](e);this[i](e,t);t[A]=n[A];return t}}}[l](){return this[u]}pendingInterceptors(){const e=this[n];return Array.from(e.entries()).flatMap((([e,t])=>t.deref()[A].map((t=>({...t,origin:e}))))).filter((({pending:e})=>e))}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new B}={}){const t=this.pendingInterceptors();if(t.length===0){return}const r=new Q("interceptor","interceptors").pluralize(t.length);throw new y(`\n${r.count} ${r.noun} ${r.is} pending:\n\n${e.format(t)}\n`.trim())}}e.exports=MockAgent},7365:(e,t,r)=>{const{promisify:n}=r(9023);const s=r(6197);const{buildMockDispatch:o}=r(3397);const{kDispatches:i,kMockAgent:a,kClose:A,kOriginalClose:c,kOrigin:u,kOriginalDispatch:l,kConnected:p}=r(1117);const{MockInterceptor:d}=r(1511);const g=r(6443);const{InvalidArgumentError:h}=r(8707);class MockClient extends s{constructor(e,t){super(e,t);if(!t||!t.agent||typeof t.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[a]=t.agent;this[u]=e;this[i]=[];this[p]=1;this[l]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=o.call(this);this.close=this[A]}get[g.kConnected](){return this[p]}intercept(e){return new d(e,this[i])}async[A](){await n(this[c])();this[p]=0;this[a][g.kClients].delete(this[u])}}e.exports=MockClient},2429:(e,t,r)=>{const{UndiciError:n}=r(8707);class MockNotMatchedError extends n{constructor(e){super(e);Error.captureStackTrace(this,MockNotMatchedError);this.name="MockNotMatchedError";this.message=e||"The request does not match any registered mock dispatches";this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}}e.exports={MockNotMatchedError:MockNotMatchedError}},1511:(e,t,r)=>{const{getResponseData:n,buildKey:s,addMockDispatch:o}=r(3397);const{kDispatches:i,kDispatchKey:a,kDefaultHeaders:A,kDefaultTrailers:c,kContentLength:u,kMockDispatch:l}=r(1117);const{InvalidArgumentError:p}=r(8707);const{buildURL:d}=r(3440);class MockScope{constructor(e){this[l]=e}delay(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new p("waitInMs must be a valid integer > 0")}this[l].delay=e;return this}persist(){this[l].persist=true;return this}times(e){if(typeof e!=="number"||!Number.isInteger(e)||e<=0){throw new p("repeatTimes must be a valid integer > 0")}this[l].times=e;return this}}class MockInterceptor{constructor(e,t){if(typeof e!=="object"){throw new p("opts must be an object")}if(typeof e.path==="undefined"){throw new p("opts.path must be defined")}if(typeof e.method==="undefined"){e.method="GET"}if(typeof e.path==="string"){if(e.query){e.path=d(e.path,e.query)}else{const t=new URL(e.path,"data://");e.path=t.pathname+t.search}}if(typeof e.method==="string"){e.method=e.method.toUpperCase()}this[a]=s(e);this[i]=t;this[A]={};this[c]={};this[u]=false}createMockScopeDispatchData(e,t,r={}){const s=n(t);const o=this[u]?{"content-length":s.length}:{};const i={...this[A],...o,...r.headers};const a={...this[c],...r.trailers};return{statusCode:e,data:t,headers:i,trailers:a}}validateReplyParameters(e,t,r){if(typeof e==="undefined"){throw new p("statusCode must be defined")}if(typeof t==="undefined"){throw new p("data must be defined")}if(typeof r!=="object"){throw new p("responseOptions must be an object")}}reply(e){if(typeof e==="function"){const wrappedDefaultsCallback=t=>{const r=e(t);if(typeof r!=="object"){throw new p("reply options callback must return an object")}const{statusCode:n,data:s="",responseOptions:o={}}=r;this.validateReplyParameters(n,s,o);return{...this.createMockScopeDispatchData(n,s,o)}};const t=o(this[i],this[a],wrappedDefaultsCallback);return new MockScope(t)}const[t,r="",n={}]=[...arguments];this.validateReplyParameters(t,r,n);const s=this.createMockScopeDispatchData(t,r,n);const A=o(this[i],this[a],s);return new MockScope(A)}replyWithError(e){if(typeof e==="undefined"){throw new p("error must be defined")}const t=o(this[i],this[a],{error:e});return new MockScope(t)}defaultReplyHeaders(e){if(typeof e==="undefined"){throw new p("headers must be defined")}this[A]=e;return this}defaultReplyTrailers(e){if(typeof e==="undefined"){throw new p("trailers must be defined")}this[c]=e;return this}replyContentLength(){this[u]=true;return this}}e.exports.MockInterceptor=MockInterceptor;e.exports.MockScope=MockScope},4004:(e,t,r)=>{const{promisify:n}=r(9023);const s=r(5076);const{buildMockDispatch:o}=r(3397);const{kDispatches:i,kMockAgent:a,kClose:A,kOriginalClose:c,kOrigin:u,kOriginalDispatch:l,kConnected:p}=r(1117);const{MockInterceptor:d}=r(1511);const g=r(6443);const{InvalidArgumentError:h}=r(8707);class MockPool extends s{constructor(e,t){super(e,t);if(!t||!t.agent||typeof t.agent.dispatch!=="function"){throw new h("Argument opts.agent must implement Agent")}this[a]=t.agent;this[u]=e;this[i]=[];this[p]=1;this[l]=this.dispatch;this[c]=this.close.bind(this);this.dispatch=o.call(this);this.close=this[A]}get[g.kConnected](){return this[p]}intercept(e){return new d(e,this[i])}async[A](){await n(this[c])();this[p]=0;this[a][g.kClients].delete(this[u])}}e.exports=MockPool},1117:e=>{e.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}},3397:(e,t,r)=>{const{MockNotMatchedError:n}=r(2429);const{kDispatches:s,kMockAgent:o,kOriginalDispatch:i,kOrigin:a,kGetNetConnect:A}=r(1117);const{buildURL:c,nop:u}=r(3440);const{STATUS_CODES:l}=r(8611);const{types:{isPromise:p}}=r(9023);function matchValue(e,t){if(typeof e==="string"){return e===t}if(e instanceof RegExp){return e.test(t)}if(typeof e==="function"){return e(t)===true}return false}function lowerCaseEntries(e){return Object.fromEntries(Object.entries(e).map((([e,t])=>[e.toLocaleLowerCase(),t])))}function getHeaderByName(e,t){if(Array.isArray(e)){for(let r=0;r!e)).filter((({path:e})=>matchValue(safeUrl(e),s)));if(o.length===0){throw new n(`Mock dispatch not matched for path '${s}'`)}o=o.filter((({method:e})=>matchValue(e,t.method)));if(o.length===0){throw new n(`Mock dispatch not matched for method '${t.method}'`)}o=o.filter((({body:e})=>typeof e!=="undefined"?matchValue(e,t.body):true));if(o.length===0){throw new n(`Mock dispatch not matched for body '${t.body}'`)}o=o.filter((e=>matchHeaders(e,t.headers)));if(o.length===0){throw new n(`Mock dispatch not matched for headers '${typeof t.headers==="object"?JSON.stringify(t.headers):t.headers}'`)}return o[0]}function addMockDispatch(e,t,r){const n={timesInvoked:0,times:1,persist:false,consumed:false};const s=typeof r==="function"?{callback:r}:{...r};const o={...n,...t,pending:true,data:{error:null,...s}};e.push(o);return o}function deleteMockDispatch(e,t){const r=e.findIndex((e=>{if(!e.consumed){return false}return matchKey(e,t)}));if(r!==-1){e.splice(r,1)}}function buildKey(e){const{path:t,method:r,body:n,headers:s,query:o}=e;return{path:t,method:r,body:n,headers:s,query:o}}function generateKeyValues(e){return Object.entries(e).reduce(((e,[t,r])=>[...e,Buffer.from(`${t}`),Array.isArray(r)?r.map((e=>Buffer.from(`${e}`))):Buffer.from(`${r}`)]),[])}function getStatusText(e){return l[e]||"unknown"}async function getResponse(e){const t=[];for await(const r of e){t.push(r)}return Buffer.concat(t).toString("utf8")}function mockDispatch(e,t){const r=buildKey(e);const n=getMockDispatch(this[s],r);n.timesInvoked++;if(n.data.callback){n.data={...n.data,...n.data.callback(e)}}const{data:{statusCode:o,data:i,headers:a,trailers:A,error:c},delay:l,persist:d}=n;const{timesInvoked:g,times:h}=n;n.consumed=!d&&g>=h;n.pending=g0){setTimeout((()=>{handleReply(this[s])}),l)}else{handleReply(this[s])}function handleReply(n,s=i){const c=Array.isArray(e.headers)?buildHeadersFromArray(e.headers):e.headers;const l=typeof s==="function"?s({...e,headers:c}):s;if(p(l)){l.then((e=>handleReply(n,e)));return}const d=getResponseData(l);const g=generateKeyValues(a);const h=generateKeyValues(A);t.abort=u;t.onHeaders(o,g,resume,getStatusText(o));t.onData(Buffer.from(d));t.onComplete(h);deleteMockDispatch(n,r)}function resume(){}return true}function buildMockDispatch(){const e=this[o];const t=this[a];const r=this[i];return function dispatch(s,o){if(e.isMockActive){try{mockDispatch.call(this,s,o)}catch(i){if(i instanceof n){const a=e[A]();if(a===false){throw new n(`${i.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`)}if(checkNetConnect(a,t)){r.call(this,s,o)}else{throw new n(`${i.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}}else{throw i}}}else{r.call(this,s,o)}}}function checkNetConnect(e,t){const r=new URL(t);if(e===true){return true}else if(Array.isArray(e)&&e.some((e=>matchValue(e,r.host)))){return true}return false}function buildMockOptions(e){if(e){const{agent:t,...r}=e;return r}}e.exports={getResponseData:getResponseData,getMockDispatch:getMockDispatch,addMockDispatch:addMockDispatch,deleteMockDispatch:deleteMockDispatch,buildKey:buildKey,generateKeyValues:generateKeyValues,matchValue:matchValue,getResponse:getResponse,getStatusText:getStatusText,mockDispatch:mockDispatch,buildMockDispatch:buildMockDispatch,checkNetConnect:checkNetConnect,buildMockOptions:buildMockOptions,getHeaderByName:getHeaderByName}},6142:(e,t,r)=>{const{Transform:n}=r(2203);const{Console:s}=r(4236);e.exports=class PendingInterceptorsFormatter{constructor({disableColors:e}={}){this.transform=new n({transform(e,t,r){r(null,e)}});this.logger=new s({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){const t=e.map((({method:e,path:t,data:{statusCode:r},persist:n,times:s,timesInvoked:o,origin:i})=>({Method:e,Origin:i,Path:t,"Status code":r,Persistent:n?"✅":"❌",Invocations:o,Remaining:n?Infinity:s-o})));this.logger.table(t);return this.transform.read().toString()}}},1529:e=>{const t={pronoun:"it",is:"is",was:"was",this:"this"};const r={pronoun:"they",is:"are",was:"were",this:"these"};e.exports=class Pluralizer{constructor(e,t){this.singular=e;this.plural=t}pluralize(e){const n=e===1;const s=n?t:r;const o=n?this.singular:this.plural;return{...s,count:e,noun:o}}}},4869:e=>{const t=2048;const r=t-1;class FixedCircularBuffer{constructor(){this.bottom=0;this.top=0;this.list=new Array(t);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&r)===this.bottom}push(e){this.list[this.top]=e;this.top=this.top+1&r}shift(){const e=this.list[this.bottom];if(e===undefined)return null;this.list[this.bottom]=undefined;this.bottom=this.bottom+1&r;return e}}e.exports=class FixedQueue{constructor(){this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(e){if(this.head.isFull()){this.head=this.head.next=new FixedCircularBuffer}this.head.push(e)}shift(){const e=this.tail;const t=e.shift();if(e.isEmpty()&&e.next!==null){this.tail=e.next}return t}}},8640:(e,t,r)=>{const n=r(1);const s=r(4869);const{kConnected:o,kSize:i,kRunning:a,kPending:A,kQueued:c,kBusy:u,kFree:l,kUrl:p,kClose:d,kDestroy:g,kDispatch:h}=r(6443);const E=r(4622);const m=Symbol("clients");const I=Symbol("needDrain");const y=Symbol("queue");const C=Symbol("closed resolve");const Q=Symbol("onDrain");const B=Symbol("onConnect");const b=Symbol("onDisconnect");const T=Symbol("onConnectionError");const w=Symbol("get dispatcher");const v=Symbol("add client");const R=Symbol("remove client");const k=Symbol("stats");class PoolBase extends n{constructor(){super();this[y]=new s;this[m]=[];this[c]=0;const e=this;this[Q]=function onDrain(t,r){const n=e[y];let s=false;while(!s){const t=n.shift();if(!t){break}e[c]--;s=!this.dispatch(t.opts,t.handler)}this[I]=s;if(!this[I]&&e[I]){e[I]=false;e.emit("drain",t,[e,...r])}if(e[C]&&n.isEmpty()){Promise.all(e[m].map((e=>e.close()))).then(e[C])}};this[B]=(t,r)=>{e.emit("connect",t,[e,...r])};this[b]=(t,r,n)=>{e.emit("disconnect",t,[e,...r],n)};this[T]=(t,r,n)=>{e.emit("connectionError",t,[e,...r],n)};this[k]=new E(this)}get[u](){return this[I]}get[o](){return this[m].filter((e=>e[o])).length}get[l](){return this[m].filter((e=>e[o]&&!e[I])).length}get[A](){let e=this[c];for(const{[A]:t}of this[m]){e+=t}return e}get[a](){let e=0;for(const{[a]:t}of this[m]){e+=t}return e}get[i](){let e=this[c];for(const{[i]:t}of this[m]){e+=t}return e}get stats(){return this[k]}async[d](){if(this[y].isEmpty()){return Promise.all(this[m].map((e=>e.close())))}else{return new Promise((e=>{this[C]=e}))}}async[g](e){while(true){const t=this[y].shift();if(!t){break}t.handler.onError(e)}return Promise.all(this[m].map((t=>t.destroy(e))))}[h](e,t){const r=this[w]();if(!r){this[I]=true;this[y].push({opts:e,handler:t});this[c]++}else if(!r.dispatch(e,t)){r[I]=true;this[I]=!this[w]()}return!this[I]}[v](e){e.on("drain",this[Q]).on("connect",this[B]).on("disconnect",this[b]).on("connectionError",this[T]);this[m].push(e);if(this[I]){process.nextTick((()=>{if(this[I]){this[Q](e[p],[this,e])}}))}return this}[R](e){e.close((()=>{const t=this[m].indexOf(e);if(t!==-1){this[m].splice(t,1)}}));this[I]=this[m].some((e=>!e[I]&&e.closed!==true&&e.destroyed!==true))}}e.exports={PoolBase:PoolBase,kClients:m,kNeedDrain:I,kAddClient:v,kRemoveClient:R,kGetDispatcher:w}},4622:(e,t,r)=>{const{kFree:n,kConnected:s,kPending:o,kQueued:i,kRunning:a,kSize:A}=r(6443);const c=Symbol("pool");class PoolStats{constructor(e){this[c]=e}get connected(){return this[c][s]}get free(){return this[c][n]}get pending(){return this[c][o]}get queued(){return this[c][i]}get running(){return this[c][a]}get size(){return this[c][A]}}e.exports=PoolStats},5076:(e,t,r)=>{const{PoolBase:n,kClients:s,kNeedDrain:o,kAddClient:i,kGetDispatcher:a}=r(8640);const A=r(6197);const{InvalidArgumentError:c}=r(8707);const u=r(3440);const{kUrl:l,kInterceptors:p}=r(6443);const d=r(9136);const g=Symbol("options");const h=Symbol("connections");const E=Symbol("factory");function defaultFactory(e,t){return new A(e,t)}class Pool extends n{constructor(e,{connections:t,factory:r=defaultFactory,connect:n,connectTimeout:s,tls:o,maxCachedSessions:i,socketPath:a,autoSelectFamily:A,autoSelectFamilyAttemptTimeout:m,allowH2:I,...y}={}){super();if(t!=null&&(!Number.isFinite(t)||t<0)){throw new c("invalid connections")}if(typeof r!=="function"){throw new c("factory must be a function.")}if(n!=null&&typeof n!=="function"&&typeof n!=="object"){throw new c("connect must be a function or an object")}if(typeof n!=="function"){n=d({...o,maxCachedSessions:i,allowH2:I,socketPath:a,timeout:s,...u.nodeHasAutoSelectFamily&&A?{autoSelectFamily:A,autoSelectFamilyAttemptTimeout:m}:undefined,...n})}this[p]=y.interceptors&&y.interceptors.Pool&&Array.isArray(y.interceptors.Pool)?y.interceptors.Pool:[];this[h]=t||null;this[l]=u.parseOrigin(e);this[g]={...u.deepClone(y),connect:n,allowH2:I};this[g].interceptors=y.interceptors?{...y.interceptors}:undefined;this[E]=r}[a](){let e=this[s].find((e=>!e[o]));if(e){return e}if(!this[h]||this[s].length{const{kProxy:n,kClose:s,kDestroy:o,kInterceptors:i}=r(6443);const{URL:a}=r(7016);const A=r(9965);const c=r(5076);const u=r(1);const{InvalidArgumentError:l,RequestAbortedError:p}=r(8707);const d=r(9136);const g=Symbol("proxy agent");const h=Symbol("proxy client");const E=Symbol("proxy headers");const m=Symbol("request tls settings");const I=Symbol("proxy tls settings");const y=Symbol("connect endpoint function");function defaultProtocolPort(e){return e==="https:"?443:80}function buildProxyOptions(e){if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new l("Proxy opts.uri is mandatory")}return{uri:e.uri,protocol:e.protocol||"https"}}function defaultFactory(e,t){return new c(e,t)}class ProxyAgent extends u{constructor(e){super(e);this[n]=buildProxyOptions(e);this[g]=new A(e);this[i]=e.interceptors&&e.interceptors.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[];if(typeof e==="string"){e={uri:e}}if(!e||!e.uri){throw new l("Proxy opts.uri is mandatory")}const{clientFactory:t=defaultFactory}=e;if(typeof t!=="function"){throw new l("Proxy opts.clientFactory must be a function.")}this[m]=e.requestTls;this[I]=e.proxyTls;this[E]=e.headers||{};const r=new a(e.uri);const{origin:s,port:o,host:c,username:u,password:C}=r;if(e.auth&&e.token){throw new l("opts.auth cannot be used in combination with opts.token")}else if(e.auth){this[E]["proxy-authorization"]=`Basic ${e.auth}`}else if(e.token){this[E]["proxy-authorization"]=e.token}else if(u&&C){this[E]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(u)}:${decodeURIComponent(C)}`).toString("base64")}`}const Q=d({...e.proxyTls});this[y]=d({...e.requestTls});this[h]=t(r,{connect:Q});this[g]=new A({...e,connect:async(e,t)=>{let r=e.host;if(!e.port){r+=`:${defaultProtocolPort(e.protocol)}`}try{const{socket:n,statusCode:i}=await this[h].connect({origin:s,port:o,path:r,signal:e.signal,headers:{...this[E],host:c}});if(i!==200){n.on("error",(()=>{})).destroy();t(new p(`Proxy response (${i}) !== 200 when HTTP Tunneling`))}if(e.protocol!=="https:"){t(null,n);return}let a;if(this[m]){a=this[m].servername}else{a=e.servername}this[y]({...e,servername:a,httpSocket:n},t)}catch(e){t(e)}}})}dispatch(e,t){const{host:r}=new a(e.origin);const n=buildHeaders(e.headers);throwIfProxyAuthIsSent(n);return this[g].dispatch({...e,headers:{...n,host:r}},t)}async[s](){await this[g].close();await this[h].close()}async[o](){await this[g].destroy();await this[h].destroy()}}function buildHeaders(e){if(Array.isArray(e)){const t={};for(let r=0;re.toLowerCase()==="proxy-authorization"));if(t){throw new l("Proxy-Authorization should be sent in ProxyAgent constructor")}}e.exports=ProxyAgent},8804:e=>{let t=Date.now();let r;const n=[];function onTimeout(){t=Date.now();let e=n.length;let r=0;while(r0&&t>=s.state){s.state=-1;s.callback(s.opaque)}if(s.state===-1){s.state=-2;if(r!==e-1){n[r]=n.pop()}else{n.pop()}e-=1}else{r+=1}}if(n.length>0){refreshTimeout()}}function refreshTimeout(){if(r&&r.refresh){r.refresh()}else{clearTimeout(r);r=setTimeout(onTimeout,1e3);if(r.unref){r.unref()}}}class Timeout{constructor(e,t,r){this.callback=e;this.delay=t;this.opaque=r;this.state=-2;this.refresh()}refresh(){if(this.state===-2){n.push(this);if(!r||n.length===1){refreshTimeout()}}this.state=0}clear(){this.state=-1}}e.exports={setTimeout(e,t,r){return t<1e3?setTimeout(e,t,r):new Timeout(e,t,r)},clearTimeout(e){if(e instanceof Timeout){e.clear()}else{clearTimeout(e)}}}},8550:(e,t,r)=>{const n=r(1637);const{uid:s,states:o}=r(5913);const{kReadyState:i,kSentClose:a,kByteParser:A,kReceivedClose:c}=r(2933);const{fireEvent:u,failWebsocketConnection:l}=r(3574);const{CloseEvent:p}=r(6255);const{makeRequest:d}=r(5194);const{fetching:g}=r(2315);const{Headers:h}=r(6349);const{getGlobalDispatcher:E}=r(2581);const{kHeadersList:m}=r(6443);const I={};I.open=n.channel("undici:websocket:open");I.close=n.channel("undici:websocket:close");I.socketError=n.channel("undici:websocket:socket_error");let y;try{y=r(6982)}catch{}function establishWebSocketConnection(e,t,r,n,o){const i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";const a=d({urlList:[i],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(o.headers){const e=new h(o.headers)[m];a.headersList=e}const A=y.randomBytes(16).toString("base64");a.headersList.append("sec-websocket-key",A);a.headersList.append("sec-websocket-version","13");for(const e of t){a.headersList.append("sec-websocket-protocol",e)}const c="";const u=g({request:a,useParallelQueue:true,dispatcher:o.dispatcher??E(),processResponse(e){if(e.type==="error"||e.status!==101){l(r,"Received network error or non-101 status code.");return}if(t.length!==0&&!e.headersList.get("Sec-WebSocket-Protocol")){l(r,"Server did not respond with sent protocols.");return}if(e.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){l(r,'Server did not set Upgrade header to "websocket".');return}if(e.headersList.get("Connection")?.toLowerCase()!=="upgrade"){l(r,'Server did not set Connection header to "upgrade".');return}const o=e.headersList.get("Sec-WebSocket-Accept");const i=y.createHash("sha1").update(A+s).digest("base64");if(o!==i){l(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const u=e.headersList.get("Sec-WebSocket-Extensions");if(u!==null&&u!==c){l(r,"Received different permessage-deflate than the one set.");return}const p=e.headersList.get("Sec-WebSocket-Protocol");if(p!==null&&p!==a.headersList.get("Sec-WebSocket-Protocol")){l(r,"Protocol was not set in the opening handshake.");return}e.socket.on("data",onSocketData);e.socket.on("close",onSocketClose);e.socket.on("error",onSocketError);if(I.open.hasSubscribers){I.open.publish({address:e.socket.address(),protocol:p,extensions:u})}n(e)}});return u}function onSocketData(e){if(!this.ws[A].write(e)){this.pause()}}function onSocketClose(){const{ws:e}=this;const t=e[a]&&e[c];let r=1005;let n="";const s=e[A].closingInfo;if(s){r=s.code??1005;n=s.reason}else if(!e[a]){r=1006}e[i]=o.CLOSED;u("close",e,p,{wasClean:t,code:r,reason:n});if(I.close.hasSubscribers){I.close.publish({websocket:e,code:r,reason:n})}}function onSocketError(e){const{ws:t}=this;t[i]=o.CLOSING;if(I.socketError.hasSubscribers){I.socketError.publish(e)}this.destroy()}e.exports={establishWebSocketConnection:establishWebSocketConnection}},5913:e=>{const t="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";const r={enumerable:true,writable:false,configurable:false};const n={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};const s={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10};const o=2**16-1;const i={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};const a=Buffer.allocUnsafe(0);e.exports={uid:t,staticPropertyDescriptors:r,states:n,opcodes:s,maxUnsigned16Bit:o,parserStates:i,emptyBuffer:a}},6255:(e,t,r)=>{const{webidl:n}=r(4222);const{kEnumerableProperty:s}=r(3440);const{MessagePort:o}=r(8167);class MessageEvent extends Event{#o;constructor(e,t={}){n.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"});e=n.converters.DOMString(e);t=n.converters.MessageEventInit(t);super(e,t);this.#o=t}get data(){n.brandCheck(this,MessageEvent);return this.#o.data}get origin(){n.brandCheck(this,MessageEvent);return this.#o.origin}get lastEventId(){n.brandCheck(this,MessageEvent);return this.#o.lastEventId}get source(){n.brandCheck(this,MessageEvent);return this.#o.source}get ports(){n.brandCheck(this,MessageEvent);if(!Object.isFrozen(this.#o.ports)){Object.freeze(this.#o.ports)}return this.#o.ports}initMessageEvent(e,t=false,r=false,s=null,o="",i="",a=null,A=[]){n.brandCheck(this,MessageEvent);n.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"});return new MessageEvent(e,{bubbles:t,cancelable:r,data:s,origin:o,lastEventId:i,source:a,ports:A})}}class CloseEvent extends Event{#o;constructor(e,t={}){n.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"});e=n.converters.DOMString(e);t=n.converters.CloseEventInit(t);super(e,t);this.#o=t}get wasClean(){n.brandCheck(this,CloseEvent);return this.#o.wasClean}get code(){n.brandCheck(this,CloseEvent);return this.#o.code}get reason(){n.brandCheck(this,CloseEvent);return this.#o.reason}}class ErrorEvent extends Event{#o;constructor(e,t){n.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"});super(e,t);e=n.converters.DOMString(e);t=n.converters.ErrorEventInit(t??{});this.#o=t}get message(){n.brandCheck(this,ErrorEvent);return this.#o.message}get filename(){n.brandCheck(this,ErrorEvent);return this.#o.filename}get lineno(){n.brandCheck(this,ErrorEvent);return this.#o.lineno}get colno(){n.brandCheck(this,ErrorEvent);return this.#o.colno}get error(){n.brandCheck(this,ErrorEvent);return this.#o.error}}Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:s,origin:s,lastEventId:s,source:s,ports:s,initMessageEvent:s});Object.defineProperties(CloseEvent.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:true},reason:s,code:s,wasClean:s});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:true},message:s,filename:s,lineno:s,colno:s,error:s});n.converters.MessagePort=n.interfaceConverter(o);n.converters["sequence"]=n.sequenceConverter(n.converters.MessagePort);const i=[{key:"bubbles",converter:n.converters.boolean,defaultValue:false},{key:"cancelable",converter:n.converters.boolean,defaultValue:false},{key:"composed",converter:n.converters.boolean,defaultValue:false}];n.converters.MessageEventInit=n.dictionaryConverter([...i,{key:"data",converter:n.converters.any,defaultValue:null},{key:"origin",converter:n.converters.USVString,defaultValue:""},{key:"lastEventId",converter:n.converters.DOMString,defaultValue:""},{key:"source",converter:n.nullableConverter(n.converters.MessagePort),defaultValue:null},{key:"ports",converter:n.converters["sequence"],get defaultValue(){return[]}}]);n.converters.CloseEventInit=n.dictionaryConverter([...i,{key:"wasClean",converter:n.converters.boolean,defaultValue:false},{key:"code",converter:n.converters["unsigned short"],defaultValue:0},{key:"reason",converter:n.converters.USVString,defaultValue:""}]);n.converters.ErrorEventInit=n.dictionaryConverter([...i,{key:"message",converter:n.converters.DOMString,defaultValue:""},{key:"filename",converter:n.converters.USVString,defaultValue:""},{key:"lineno",converter:n.converters["unsigned long"],defaultValue:0},{key:"colno",converter:n.converters["unsigned long"],defaultValue:0},{key:"error",converter:n.converters.any}]);e.exports={MessageEvent:MessageEvent,CloseEvent:CloseEvent,ErrorEvent:ErrorEvent}},1237:(e,t,r)=>{const{maxUnsigned16Bit:n}=r(5913);let s;try{s=r(6982)}catch{}class WebsocketFrameSend{constructor(e){this.frameData=e;this.maskKey=s.randomBytes(4)}createFrame(e){const t=this.frameData?.byteLength??0;let r=t;let s=6;if(t>n){s+=8;r=127}else if(t>125){s+=2;r=126}const o=Buffer.allocUnsafe(t+s);o[0]=o[1]=0;o[0]|=128;o[0]=(o[0]&240)+e; +/*! ws. MIT License. Einar Otto Stangvik */o[s-4]=this.maskKey[0];o[s-3]=this.maskKey[1];o[s-2]=this.maskKey[2];o[s-1]=this.maskKey[3];o[1]=r;if(r===126){o.writeUInt16BE(t,2)}else if(r===127){o[2]=o[3]=0;o.writeUIntBE(t,4,6)}o[1]|=128;for(let e=0;e{const{Writable:n}=r(2203);const s=r(1637);const{parserStates:o,opcodes:i,states:a,emptyBuffer:A}=r(5913);const{kReadyState:c,kSentClose:u,kResponse:l,kReceivedClose:p}=r(2933);const{isValidStatusCode:d,failWebsocketConnection:g,websocketMessageReceived:h}=r(3574);const{WebsocketFrameSend:E}=r(1237);const m={};m.ping=s.channel("undici:websocket:ping");m.pong=s.channel("undici:websocket:pong");class ByteParser extends n{#i=[];#a=0;#A=o.INFO;#c={};#u=[];constructor(e){super();this.ws=e}_write(e,t,r){this.#i.push(e);this.#a+=e.length;this.run(r)}run(e){while(true){if(this.#A===o.INFO){if(this.#a<2){return e()}const t=this.consume(2);this.#c.fin=(t[0]&128)!==0;this.#c.opcode=t[0]&15;this.#c.originalOpcode??=this.#c.opcode;this.#c.fragmented=!this.#c.fin&&this.#c.opcode!==i.CONTINUATION;if(this.#c.fragmented&&this.#c.opcode!==i.BINARY&&this.#c.opcode!==i.TEXT){g(this.ws,"Invalid frame type was fragmented.");return}const r=t[1]&127;if(r<=125){this.#c.payloadLength=r;this.#A=o.READ_DATA}else if(r===126){this.#A=o.PAYLOADLENGTH_16}else if(r===127){this.#A=o.PAYLOADLENGTH_64}if(this.#c.fragmented&&r>125){g(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#c.opcode===i.PING||this.#c.opcode===i.PONG||this.#c.opcode===i.CLOSE)&&r>125){g(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#c.opcode===i.CLOSE){if(r===1){g(this.ws,"Received close frame with a 1-byte body.");return}const e=this.consume(r);this.#c.closeInfo=this.parseCloseBody(false,e);if(!this.ws[u]){const e=Buffer.allocUnsafe(2);e.writeUInt16BE(this.#c.closeInfo.code,0);const t=new E(e);this.ws[l].socket.write(t.createFrame(i.CLOSE),(e=>{if(!e){this.ws[u]=true}}))}this.ws[c]=a.CLOSING;this.ws[p]=true;this.end();return}else if(this.#c.opcode===i.PING){const t=this.consume(r);if(!this.ws[p]){const e=new E(t);this.ws[l].socket.write(e.createFrame(i.PONG));if(m.ping.hasSubscribers){m.ping.publish({payload:t})}}this.#A=o.INFO;if(this.#a>0){continue}else{e();return}}else if(this.#c.opcode===i.PONG){const t=this.consume(r);if(m.pong.hasSubscribers){m.pong.publish({payload:t})}if(this.#a>0){continue}else{e();return}}}else if(this.#A===o.PAYLOADLENGTH_16){if(this.#a<2){return e()}const t=this.consume(2);this.#c.payloadLength=t.readUInt16BE(0);this.#A=o.READ_DATA}else if(this.#A===o.PAYLOADLENGTH_64){if(this.#a<8){return e()}const t=this.consume(8);const r=t.readUInt32BE(0);if(r>2**31-1){g(this.ws,"Received payload length > 2^31 bytes.");return}const n=t.readUInt32BE(4);this.#c.payloadLength=(r<<8)+n;this.#A=o.READ_DATA}else if(this.#A===o.READ_DATA){if(this.#a=this.#c.payloadLength){const e=this.consume(this.#c.payloadLength);this.#u.push(e);if(!this.#c.fragmented||this.#c.fin&&this.#c.opcode===i.CONTINUATION){const e=Buffer.concat(this.#u);h(this.ws,this.#c.originalOpcode,e);this.#c={};this.#u.length=0}this.#A=o.INFO}}if(this.#a>0){continue}else{e();break}}}consume(e){if(e>this.#a){return null}else if(e===0){return A}if(this.#i[0].length===e){this.#a-=this.#i[0].length;return this.#i.shift()}const t=Buffer.allocUnsafe(e);let r=0;while(r!==e){const n=this.#i[0];const{length:s}=n;if(s+r===e){t.set(this.#i.shift(),r);break}else if(s+r>e){t.set(n.subarray(0,e-r),r);this.#i[0]=n.subarray(e-r);break}else{t.set(this.#i.shift(),r);r+=n.length}}this.#a-=e;return t}parseCloseBody(e,t){let r;if(t.length>=2){r=t.readUInt16BE(0)}if(e){if(!d(r)){return null}return{code:r}}let n=t.subarray(2);if(n[0]===239&&n[1]===187&&n[2]===191){n=n.subarray(3)}if(r!==undefined&&!d(r)){return null}try{n=new TextDecoder("utf-8",{fatal:true}).decode(n)}catch{return null}return{code:r,reason:n}}get closingInfo(){return this.#c.closeInfo}}e.exports={ByteParser:ByteParser}},2933:e=>{e.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}},3574:(e,t,r)=>{const{kReadyState:n,kController:s,kResponse:o,kBinaryType:i,kWebSocketURL:a}=r(2933);const{states:A,opcodes:c}=r(5913);const{MessageEvent:u,ErrorEvent:l}=r(6255);function isEstablished(e){return e[n]===A.OPEN}function isClosing(e){return e[n]===A.CLOSING}function isClosed(e){return e[n]===A.CLOSED}function fireEvent(e,t,r=Event,n){const s=new r(e,n);t.dispatchEvent(s)}function websocketMessageReceived(e,t,r){if(e[n]!==A.OPEN){return}let s;if(t===c.TEXT){try{s=new TextDecoder("utf-8",{fatal:true}).decode(r)}catch{failWebsocketConnection(e,"Received invalid UTF-8 in text frame.");return}}else if(t===c.BINARY){if(e[i]==="blob"){s=new Blob([r])}else{s=new Uint8Array(r).buffer}}fireEvent("message",e,u,{origin:e[a].origin,data:s})}function isValidSubprotocol(e){if(e.length===0){return false}for(const t of e){const e=t.charCodeAt(0);if(e<33||e>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||e===32||e===9){return false}}return true}function isValidStatusCode(e){if(e>=1e3&&e<1015){return e!==1004&&e!==1005&&e!==1006}return e>=3e3&&e<=4999}function failWebsocketConnection(e,t){const{[s]:r,[o]:n}=e;r.abort();if(n?.socket&&!n.socket.destroyed){n.socket.destroy()}if(t){fireEvent("error",e,l,{error:new Error(t)})}}e.exports={isEstablished:isEstablished,isClosing:isClosing,isClosed:isClosed,fireEvent:fireEvent,isValidSubprotocol:isValidSubprotocol,isValidStatusCode:isValidStatusCode,failWebsocketConnection:failWebsocketConnection,websocketMessageReceived:websocketMessageReceived}},5171:(e,t,r)=>{const{webidl:n}=r(4222);const{DOMException:s}=r(7326);const{URLSerializer:o}=r(4322);const{getGlobalOrigin:i}=r(5628);const{staticPropertyDescriptors:a,states:A,opcodes:c,emptyBuffer:u}=r(5913);const{kWebSocketURL:l,kReadyState:p,kController:d,kBinaryType:g,kResponse:h,kSentClose:E,kByteParser:m}=r(2933);const{isEstablished:I,isClosing:y,isValidSubprotocol:C,failWebsocketConnection:Q,fireEvent:B}=r(3574);const{establishWebSocketConnection:b}=r(8550);const{WebsocketFrameSend:T}=r(1237);const{ByteParser:w}=r(3171);const{kEnumerableProperty:v,isBlobLike:R}=r(3440);const{getGlobalDispatcher:k}=r(2581);const{types:D}=r(9023);let _=false;class WebSocket extends EventTarget{#l={open:null,error:null,close:null,message:null};#p=0;#d="";#g="";constructor(e,t=[]){super();n.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"});if(!_){_=true;process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"})}const r=n.converters["DOMString or sequence or WebSocketInit"](t);e=n.converters.USVString(e);t=r.protocols;const o=i();let a;try{a=new URL(e,o)}catch(e){throw new s(e,"SyntaxError")}if(a.protocol==="http:"){a.protocol="ws:"}else if(a.protocol==="https:"){a.protocol="wss:"}if(a.protocol!=="ws:"&&a.protocol!=="wss:"){throw new s(`Expected a ws: or wss: protocol, got ${a.protocol}`,"SyntaxError")}if(a.hash||a.href.endsWith("#")){throw new s("Got fragment","SyntaxError")}if(typeof t==="string"){t=[t]}if(t.length!==new Set(t.map((e=>e.toLowerCase()))).size){throw new s("Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(t.length>0&&!t.every((e=>C(e)))){throw new s("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[l]=new URL(a.href);this[d]=b(a,t,this,(e=>this.#f(e)),r);this[p]=WebSocket.CONNECTING;this[g]="blob"}close(e=undefined,t=undefined){n.brandCheck(this,WebSocket);if(e!==undefined){e=n.converters["unsigned short"](e,{clamp:true})}if(t!==undefined){t=n.converters.USVString(t)}if(e!==undefined){if(e!==1e3&&(e<3e3||e>4999)){throw new s("invalid code","InvalidAccessError")}}let r=0;if(t!==undefined){r=Buffer.byteLength(t);if(r>123){throw new s(`Reason must be less than 123 bytes; received ${r}`,"SyntaxError")}}if(this[p]===WebSocket.CLOSING||this[p]===WebSocket.CLOSED){}else if(!I(this)){Q(this,"Connection was closed before it was established.");this[p]=WebSocket.CLOSING}else if(!y(this)){const n=new T;if(e!==undefined&&t===undefined){n.frameData=Buffer.allocUnsafe(2);n.frameData.writeUInt16BE(e,0)}else if(e!==undefined&&t!==undefined){n.frameData=Buffer.allocUnsafe(2+r);n.frameData.writeUInt16BE(e,0);n.frameData.write(t,2,"utf-8")}else{n.frameData=u}const s=this[h].socket;s.write(n.createFrame(c.CLOSE),(e=>{if(!e){this[E]=true}}));this[p]=A.CLOSING}else{this[p]=WebSocket.CLOSING}}send(e){n.brandCheck(this,WebSocket);n.argumentLengthCheck(arguments,1,{header:"WebSocket.send"});e=n.converters.WebSocketSendData(e);if(this[p]===WebSocket.CONNECTING){throw new s("Sent before connected.","InvalidStateError")}if(!I(this)||y(this)){return}const t=this[h].socket;if(typeof e==="string"){const r=Buffer.from(e);const n=new T(r);const s=n.createFrame(c.TEXT);this.#p+=r.byteLength;t.write(s,(()=>{this.#p-=r.byteLength}))}else if(D.isArrayBuffer(e)){const r=Buffer.from(e);const n=new T(r);const s=n.createFrame(c.BINARY);this.#p+=r.byteLength;t.write(s,(()=>{this.#p-=r.byteLength}))}else if(ArrayBuffer.isView(e)){const r=Buffer.from(e,e.byteOffset,e.byteLength);const n=new T(r);const s=n.createFrame(c.BINARY);this.#p+=r.byteLength;t.write(s,(()=>{this.#p-=r.byteLength}))}else if(R(e)){const r=new T;e.arrayBuffer().then((e=>{const n=Buffer.from(e);r.frameData=n;const s=r.createFrame(c.BINARY);this.#p+=n.byteLength;t.write(s,(()=>{this.#p-=n.byteLength}))}))}}get readyState(){n.brandCheck(this,WebSocket);return this[p]}get bufferedAmount(){n.brandCheck(this,WebSocket);return this.#p}get url(){n.brandCheck(this,WebSocket);return o(this[l])}get extensions(){n.brandCheck(this,WebSocket);return this.#g}get protocol(){n.brandCheck(this,WebSocket);return this.#d}get onopen(){n.brandCheck(this,WebSocket);return this.#l.open}set onopen(e){n.brandCheck(this,WebSocket);if(this.#l.open){this.removeEventListener("open",this.#l.open)}if(typeof e==="function"){this.#l.open=e;this.addEventListener("open",e)}else{this.#l.open=null}}get onerror(){n.brandCheck(this,WebSocket);return this.#l.error}set onerror(e){n.brandCheck(this,WebSocket);if(this.#l.error){this.removeEventListener("error",this.#l.error)}if(typeof e==="function"){this.#l.error=e;this.addEventListener("error",e)}else{this.#l.error=null}}get onclose(){n.brandCheck(this,WebSocket);return this.#l.close}set onclose(e){n.brandCheck(this,WebSocket);if(this.#l.close){this.removeEventListener("close",this.#l.close)}if(typeof e==="function"){this.#l.close=e;this.addEventListener("close",e)}else{this.#l.close=null}}get onmessage(){n.brandCheck(this,WebSocket);return this.#l.message}set onmessage(e){n.brandCheck(this,WebSocket);if(this.#l.message){this.removeEventListener("message",this.#l.message)}if(typeof e==="function"){this.#l.message=e;this.addEventListener("message",e)}else{this.#l.message=null}}get binaryType(){n.brandCheck(this,WebSocket);return this[g]}set binaryType(e){n.brandCheck(this,WebSocket);if(e!=="blob"&&e!=="arraybuffer"){this[g]="blob"}else{this[g]=e}}#f(e){this[h]=e;const t=new w(this);t.on("drain",(function onParserDrain(){this.ws[h].socket.resume()}));e.socket.ws=this;this[m]=t;this[p]=A.OPEN;const r=e.headersList.get("sec-websocket-extensions");if(r!==null){this.#g=r}const n=e.headersList.get("sec-websocket-protocol");if(n!==null){this.#d=n}B("open",this)}}WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=A.CONNECTING;WebSocket.OPEN=WebSocket.prototype.OPEN=A.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=A.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=A.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:a,OPEN:a,CLOSING:a,CLOSED:a,url:v,readyState:v,bufferedAmount:v,onopen:v,onerror:v,onclose:v,close:v,onmessage:v,binaryType:v,send:v,extensions:v,protocol:v,[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:a,OPEN:a,CLOSING:a,CLOSED:a});n.converters["sequence"]=n.sequenceConverter(n.converters.DOMString);n.converters["DOMString or sequence"]=function(e){if(n.util.Type(e)==="Object"&&Symbol.iterator in e){return n.converters["sequence"](e)}return n.converters.DOMString(e)};n.converters.WebSocketInit=n.dictionaryConverter([{key:"protocols",converter:n.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return k()}},{key:"headers",converter:n.nullableConverter(n.converters.HeadersInit)}]);n.converters["DOMString or sequence or WebSocketInit"]=function(e){if(n.util.Type(e)==="Object"&&!(Symbol.iterator in e)){return n.converters.WebSocketInit(e)}return{protocols:n.converters["DOMString or sequence"](e)}};n.converters.WebSocketSendData=function(e){if(n.util.Type(e)==="Object"){if(R(e)){return n.converters.Blob(e,{strict:false})}if(ArrayBuffer.isView(e)||D.isAnyArrayBuffer(e)){return n.converters.BufferSource(e)}}return n.converters.USVString(e)};e.exports={WebSocket:WebSocket}},8264:e=>{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r{t.exports=e(import.meta.url)("assert")},290:t=>{t.exports=e(import.meta.url)("async_hooks")},181:t=>{t.exports=e(import.meta.url)("buffer")},5317:t=>{t.exports=e(import.meta.url)("child_process")},4236:t=>{t.exports=e(import.meta.url)("console")},6982:t=>{t.exports=e(import.meta.url)("crypto")},1637:t=>{t.exports=e(import.meta.url)("diagnostics_channel")},4434:t=>{t.exports=e(import.meta.url)("events")},9896:t=>{t.exports=e(import.meta.url)("fs")},8611:t=>{t.exports=e(import.meta.url)("http")},5675:t=>{t.exports=e(import.meta.url)("http2")},5692:t=>{t.exports=e(import.meta.url)("https")},9278:t=>{t.exports=e(import.meta.url)("net")},8474:t=>{t.exports=e(import.meta.url)("node:events")},7075:t=>{t.exports=e(import.meta.url)("node:stream")},7975:t=>{t.exports=e(import.meta.url)("node:util")},857:t=>{t.exports=e(import.meta.url)("os")},6928:t=>{t.exports=e(import.meta.url)("path")},2987:t=>{t.exports=e(import.meta.url)("perf_hooks")},3480:t=>{t.exports=e(import.meta.url)("querystring")},2203:t=>{t.exports=e(import.meta.url)("stream")},3774:t=>{t.exports=e(import.meta.url)("stream/web")},3193:t=>{t.exports=e(import.meta.url)("string_decoder")},3557:t=>{t.exports=e(import.meta.url)("timers")},4756:t=>{t.exports=e(import.meta.url)("tls")},7016:t=>{t.exports=e(import.meta.url)("url")},9023:t=>{t.exports=e(import.meta.url)("util")},8253:t=>{t.exports=e(import.meta.url)("util/types")},8167:t=>{t.exports=e(import.meta.url)("worker_threads")},3106:t=>{t.exports=e(import.meta.url)("zlib")},7182:(e,t,r)=>{const n=r(7075).Writable;const s=r(7975).inherits;const o=r(4136);const i=r(612);const a=r(2271);const A=45;const c=Buffer.from("-");const u=Buffer.from("\r\n");const EMPTY_FN=function(){};function Dicer(e){if(!(this instanceof Dicer)){return new Dicer(e)}n.call(this,e);if(!e||!e.headerFirst&&typeof e.boundary!=="string"){throw new TypeError("Boundary required")}if(typeof e.boundary==="string"){this.setBoundary(e.boundary)}else{this._bparser=undefined}this._headerFirst=e.headerFirst;this._dashes=0;this._parts=0;this._finished=false;this._realFinish=false;this._isPreamble=true;this._justMatched=false;this._firstWrite=true;this._inHeader=true;this._part=undefined;this._cb=undefined;this._ignoreData=false;this._partOpts={highWaterMark:e.partHwm};this._pause=false;const t=this;this._hparser=new a(e);this._hparser.on("header",(function(e){t._inHeader=false;t._part.emit("header",e)}))}s(Dicer,n);Dicer.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){const e=this;process.nextTick((function(){e.emit("error",new Error("Unexpected end of multipart data"));if(e._part&&!e._ignoreData){const t=e._isPreamble?"Preamble":"Part";e._part.emit("error",new Error(t+" terminated early due to unexpected end of multipart data"));e._part.push(null);process.nextTick((function(){e._realFinish=true;e.emit("finish");e._realFinish=false}));return}e._realFinish=true;e.emit("finish");e._realFinish=false}))}}else{n.prototype.emit.apply(this,arguments)}};Dicer.prototype._write=function(e,t,r){if(!this._hparser&&!this._bparser){return r()}if(this._headerFirst&&this._isPreamble){if(!this._part){this._part=new i(this._partOpts);if(this.listenerCount("preamble")!==0){this.emit("preamble",this._part)}else{this._ignore()}}const t=this._hparser.push(e);if(!this._inHeader&&t!==undefined&&t{const n=r(8474).EventEmitter;const s=r(7975).inherits;const o=r(2393);const i=r(4136);const a=Buffer.from("\r\n\r\n");const A=/\r\n/g;const c=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function HeaderParser(e){n.call(this);e=e||{};const t=this;this.nread=0;this.maxed=false;this.npairs=0;this.maxHeaderPairs=o(e,"maxHeaderPairs",2e3);this.maxHeaderSize=o(e,"maxHeaderSize",80*1024);this.buffer="";this.header={};this.finished=false;this.ss=new i(a);this.ss.on("info",(function(e,r,n,s){if(r&&!t.maxed){if(t.nread+s-n>=t.maxHeaderSize){s=t.maxHeaderSize-t.nread+n;t.nread=t.maxHeaderSize;t.maxed=true}else{t.nread+=s-n}t.buffer+=r.toString("binary",n,s)}if(e){t._finish()}}))}s(HeaderParser,n);HeaderParser.prototype.push=function(e){const t=this.ss.push(e);if(this.finished){return t}};HeaderParser.prototype.reset=function(){this.finished=false;this.buffer="";this.header={};this.ss.reset()};HeaderParser.prototype._finish=function(){if(this.buffer){this._parseHeader()}this.ss.matches=this.ss.maxMatches;const e=this.header;this.header={};this.buffer="";this.finished=true;this.nread=this.npairs=0;this.maxed=false;this.emit("header",e)};HeaderParser.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs){return}const e=this.buffer.split(A);const t=e.length;let r,n;for(var s=0;s{const n=r(7975).inherits;const s=r(7075).Readable;function PartStream(e){s.call(this,e)}n(PartStream,s);PartStream.prototype._read=function(e){};e.exports=PartStream},4136:(e,t,r)=>{const n=r(8474).EventEmitter;const s=r(7975).inherits;function SBMH(e){if(typeof e==="string"){e=Buffer.from(e)}if(!Buffer.isBuffer(e)){throw new TypeError("The needle has to be a String or a Buffer.")}const t=e.length;if(t===0){throw new Error("The needle cannot be an empty String/Buffer.")}if(t>256){throw new Error("The needle cannot have a length bigger than 256.")}this.maxMatches=Infinity;this.matches=0;this._occ=new Array(256).fill(t);this._lookbehind_size=0;this._needle=e;this._bufpos=0;this._lookbehind=Buffer.alloc(t);for(var r=0;r=0){this.emit("info",false,this._lookbehind,0,this._lookbehind_size);this._lookbehind_size=0}else{const r=this._lookbehind_size+o;if(r>0){this.emit("info",false,this._lookbehind,0,r)}this._lookbehind.copy(this._lookbehind,0,r,this._lookbehind_size-r);this._lookbehind_size-=r;e.copy(this._lookbehind,this._lookbehind_size);this._lookbehind_size+=t;this._bufpos=t;return t}}o+=(o>=0)*this._bufpos;if(e.indexOf(r,o)!==-1){o=e.indexOf(r,o);++this.matches;if(o>0){this.emit("info",true,e,this._bufpos,o)}else{this.emit("info",true)}return this._bufpos=o+n}else{o=t-n}while(o0){this.emit("info",false,e,this._bufpos,o{const n=r(7075).Writable;const{inherits:s}=r(7975);const o=r(7182);const i=r(1192);const a=r(855);const A=r(8929);function Busboy(e){if(!(this instanceof Busboy)){return new Busboy(e)}if(typeof e!=="object"){throw new TypeError("Busboy expected an options-Object.")}if(typeof e.headers!=="object"){throw new TypeError("Busboy expected an options-Object with headers-attribute.")}if(typeof e.headers["content-type"]!=="string"){throw new TypeError("Missing Content-Type-header.")}const{headers:t,...r}=e;this.opts={autoDestroy:false,...r};n.call(this,this.opts);this._done=false;this._parser=this.getParserByHeaders(t);this._finished=false}s(Busboy,n);Busboy.prototype.emit=function(e){if(e==="finish"){if(!this._done){this._parser?.end();return}else if(this._finished){return}this._finished=true}n.prototype.emit.apply(this,arguments)};Busboy.prototype.getParserByHeaders=function(e){const t=A(e["content-type"]);const r={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(i.detect.test(t[0])){return new i(this,r)}if(a.detect.test(t[0])){return new a(this,r)}throw new Error("Unsupported Content-Type.")};Busboy.prototype._write=function(e,t,r){this._parser.write(e,r)};e.exports=Busboy;e.exports["default"]=Busboy;e.exports.Busboy=Busboy;e.exports.Dicer=o},1192:(e,t,r)=>{const{Readable:n}=r(7075);const{inherits:s}=r(7975);const o=r(7182);const i=r(8929);const a=r(2747);const A=r(692);const c=r(2393);const u=/^boundary$/i;const l=/^form-data$/i;const p=/^charset$/i;const d=/^filename$/i;const g=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(e,t){let r;let n;const s=this;let h;const E=t.limits;const m=t.isPartAFile||((e,t,r)=>t==="application/octet-stream"||r!==undefined);const I=t.parsedConType||[];const y=t.defCharset||"utf8";const C=t.preservePath;const Q={highWaterMark:t.fileHwm};for(r=0,n=I.length;rv){s.parser.removeListener("part",onPart);s.parser.on("part",skipPart);e.hitPartsLimit=true;e.emit("partsLimit");return skipPart(t)}if(N){const e=N;e.emit("end");e.removeAllListeners("end")}t.on("header",(function(o){let c;let u;let h;let E;let I;let v;let R=0;if(o["content-type"]){h=i(o["content-type"][0]);if(h[0]){c=h[0].toLowerCase();for(r=0,n=h.length;rb){const n=b-R+e.length;if(n>0){r.push(e.slice(0,n))}r.truncated=true;r.bytesRead=b;t.removeAllListeners("data");r.emit("limit");return}else if(!r.push(e)){s._pause=true}r.bytesRead=R};O=function(){F=undefined;r.push(null)}}else{if(_===w){if(!e.hitFieldsLimit){e.hitFieldsLimit=true;e.emit("fieldsLimit")}return skipPart(t)}++_;++S;let r="";let n=false;N=t;k=function(e){if((R+=e.length)>B){const s=B-(R-e.length);r+=e.toString("binary",0,s);n=true;t.removeAllListeners("data")}else{r+=e.toString("binary")}};O=function(){N=undefined;if(r.length){r=a(r,"binary",E)}e.emit("field",u,r,false,n,I,c);--S;checkFinished()}}t._readableState.sync=false;t.on("data",k);t.on("end",O)})).on("error",(function(e){if(F){F.emit("error",e)}}))})).on("error",(function(t){e.emit("error",t)})).on("finish",(function(){O=true;checkFinished()}))}Multipart.prototype.write=function(e,t){const r=this.parser.write(e);if(r&&!this._pause){t()}else{this._needDrain=!r;this._cb=t}};Multipart.prototype.end=function(){const e=this;if(e.parser.writable){e.parser.end()}else if(!e._boy._done){process.nextTick((function(){e._boy._done=true;e._boy.emit("finish")}))}};function skipPart(e){e.resume()}function FileStream(e){n.call(this,e);this.bytesRead=0;this.truncated=false}s(FileStream,n);FileStream.prototype._read=function(e){};e.exports=Multipart},855:(e,t,r)=>{const n=r(1496);const s=r(2747);const o=r(2393);const i=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(e,t){const r=t.limits;const s=t.parsedConType;this.boy=e;this.fieldSizeLimit=o(r,"fieldSize",1*1024*1024);this.fieldNameSizeLimit=o(r,"fieldNameSize",100);this.fieldsLimit=o(r,"fields",Infinity);let a;for(var A=0,c=s.length;Ai){this._key+=this.decoder.write(e.toString("binary",i,r))}this._state="val";this._hitLimit=false;this._checkingBytes=true;this._val="";this._bytesVal=0;this._valTrunc=false;this.decoder.reset();i=r+1}else if(n!==undefined){++this._fields;let r;const o=this._keyTrunc;if(n>i){r=this._key+=this.decoder.write(e.toString("binary",i,n))}else{r=this._key}this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();if(r.length){this.boy.emit("field",s(r,"binary",this.charset),"",o,false)}i=n+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(o>i){this._key+=this.decoder.write(e.toString("binary",i,o))}i=o;if((this._bytesKey=this._key.length)===this.fieldNameSizeLimit){this._checkingBytes=false;this._keyTrunc=true}}else{if(ii){this._val+=this.decoder.write(e.toString("binary",i,n))}this.boy.emit("field",s(this._key,"binary",this.charset),s(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc);this._state="key";this._hitLimit=false;this._checkingBytes=true;this._key="";this._bytesKey=0;this._keyTrunc=false;this.decoder.reset();i=n+1;if(this._fields===this.fieldsLimit){return t()}}else if(this._hitLimit){if(o>i){this._val+=this.decoder.write(e.toString("binary",i,o))}i=o;if(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit){this._checkingBytes=false;this._valTrunc=true}}else{if(i0){this.boy.emit("field",s(this._key,"binary",this.charset),"",this._keyTrunc,false)}else if(this._state==="val"){this.boy.emit("field",s(this._key,"binary",this.charset),s(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc)}this.boy._done=true;this.boy.emit("finish")};e.exports=UrlEncoded},1496:e=>{const t=/\+/g;const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Decoder(){this.buffer=undefined}Decoder.prototype.write=function(e){e=e.replace(t," ");let n="";let s=0;let o=0;const i=e.length;for(;so){n+=e.substring(o,s);o=s}this.buffer="";++o}}if(o{e.exports=function basename(e){if(typeof e!=="string"){return""}for(var t=e.length-1;t>=0;--t){switch(e.charCodeAt(t)){case 47:case 92:e=e.slice(t+1);return e===".."||e==="."?"":e}}return e===".."||e==="."?"":e}},2747:function(e){const t=new TextDecoder("utf-8");const r=new Map([["utf-8",t],["utf8",t]]);function getDecoder(e){let t;while(true){switch(e){case"utf-8":case"utf8":return n.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return n.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return n.utf16le;case"base64":return n.base64;default:if(t===undefined){t=true;e=e.toLowerCase();continue}return n.other.bind(e)}}}const n={utf8:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.utf8Slice(0,e.length)},latin1:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){return e}return e.latin1Slice(0,e.length)},utf16le:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.ucs2Slice(0,e.length)},base64:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}return e.base64Slice(0,e.length)},other:(e,t)=>{if(e.length===0){return""}if(typeof e==="string"){e=Buffer.from(e,t)}if(r.has(this.toString())){try{return r.get(this).decode(e)}catch{}}return typeof e==="string"?e:e.toString()}};function decodeText(e,t,r){if(e){return getDecoder(r)(e,t)}return e}e.exports=decodeText},2393:e=>{e.exports=function getLimit(e,t,r){if(!e||e[t]===undefined||e[t]===null){return r}if(typeof e[t]!=="number"||isNaN(e[t])){throw new TypeError("Limit "+t+" is not a valid number")}return e[t]}},8929:(e,t,r)=>{const n=r(2747);const s=/%[a-fA-F0-9][a-fA-F0-9]/g;const o={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"","%08":"\b","%09":"\t","%0a":"\n","%0A":"\n","%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"","%1B":"","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"","%7F":"","%80":"€","%81":"","%82":"‚","%83":"ƒ","%84":"„","%85":"…","%86":"†","%87":"‡","%88":"ˆ","%89":"‰","%8a":"Š","%8A":"Š","%8b":"‹","%8B":"‹","%8c":"Œ","%8C":"Œ","%8d":"","%8D":"","%8e":"Ž","%8E":"Ž","%8f":"","%8F":"","%90":"","%91":"‘","%92":"’","%93":"“","%94":"”","%95":"•","%96":"–","%97":"—","%98":"˜","%99":"™","%9a":"š","%9A":"š","%9b":"›","%9B":"›","%9c":"œ","%9C":"œ","%9d":"","%9D":"","%9e":"ž","%9E":"ž","%9f":"Ÿ","%9F":"Ÿ","%a0":" ","%A0":" ","%a1":"¡","%A1":"¡","%a2":"¢","%A2":"¢","%a3":"£","%A3":"£","%a4":"¤","%A4":"¤","%a5":"¥","%A5":"¥","%a6":"¦","%A6":"¦","%a7":"§","%A7":"§","%a8":"¨","%A8":"¨","%a9":"©","%A9":"©","%aa":"ª","%Aa":"ª","%aA":"ª","%AA":"ª","%ab":"«","%Ab":"«","%aB":"«","%AB":"«","%ac":"¬","%Ac":"¬","%aC":"¬","%AC":"¬","%ad":"­","%Ad":"­","%aD":"­","%AD":"­","%ae":"®","%Ae":"®","%aE":"®","%AE":"®","%af":"¯","%Af":"¯","%aF":"¯","%AF":"¯","%b0":"°","%B0":"°","%b1":"±","%B1":"±","%b2":"²","%B2":"²","%b3":"³","%B3":"³","%b4":"´","%B4":"´","%b5":"µ","%B5":"µ","%b6":"¶","%B6":"¶","%b7":"·","%B7":"·","%b8":"¸","%B8":"¸","%b9":"¹","%B9":"¹","%ba":"º","%Ba":"º","%bA":"º","%BA":"º","%bb":"»","%Bb":"»","%bB":"»","%BB":"»","%bc":"¼","%Bc":"¼","%bC":"¼","%BC":"¼","%bd":"½","%Bd":"½","%bD":"½","%BD":"½","%be":"¾","%Be":"¾","%bE":"¾","%BE":"¾","%bf":"¿","%Bf":"¿","%bF":"¿","%BF":"¿","%c0":"À","%C0":"À","%c1":"Á","%C1":"Á","%c2":"Â","%C2":"Â","%c3":"Ã","%C3":"Ã","%c4":"Ä","%C4":"Ä","%c5":"Å","%C5":"Å","%c6":"Æ","%C6":"Æ","%c7":"Ç","%C7":"Ç","%c8":"È","%C8":"È","%c9":"É","%C9":"É","%ca":"Ê","%Ca":"Ê","%cA":"Ê","%CA":"Ê","%cb":"Ë","%Cb":"Ë","%cB":"Ë","%CB":"Ë","%cc":"Ì","%Cc":"Ì","%cC":"Ì","%CC":"Ì","%cd":"Í","%Cd":"Í","%cD":"Í","%CD":"Í","%ce":"Î","%Ce":"Î","%cE":"Î","%CE":"Î","%cf":"Ï","%Cf":"Ï","%cF":"Ï","%CF":"Ï","%d0":"Ð","%D0":"Ð","%d1":"Ñ","%D1":"Ñ","%d2":"Ò","%D2":"Ò","%d3":"Ó","%D3":"Ó","%d4":"Ô","%D4":"Ô","%d5":"Õ","%D5":"Õ","%d6":"Ö","%D6":"Ö","%d7":"×","%D7":"×","%d8":"Ø","%D8":"Ø","%d9":"Ù","%D9":"Ù","%da":"Ú","%Da":"Ú","%dA":"Ú","%DA":"Ú","%db":"Û","%Db":"Û","%dB":"Û","%DB":"Û","%dc":"Ü","%Dc":"Ü","%dC":"Ü","%DC":"Ü","%dd":"Ý","%Dd":"Ý","%dD":"Ý","%DD":"Ý","%de":"Þ","%De":"Þ","%dE":"Þ","%DE":"Þ","%df":"ß","%Df":"ß","%dF":"ß","%DF":"ß","%e0":"à","%E0":"à","%e1":"á","%E1":"á","%e2":"â","%E2":"â","%e3":"ã","%E3":"ã","%e4":"ä","%E4":"ä","%e5":"å","%E5":"å","%e6":"æ","%E6":"æ","%e7":"ç","%E7":"ç","%e8":"è","%E8":"è","%e9":"é","%E9":"é","%ea":"ê","%Ea":"ê","%eA":"ê","%EA":"ê","%eb":"ë","%Eb":"ë","%eB":"ë","%EB":"ë","%ec":"ì","%Ec":"ì","%eC":"ì","%EC":"ì","%ed":"í","%Ed":"í","%eD":"í","%ED":"í","%ee":"î","%Ee":"î","%eE":"î","%EE":"î","%ef":"ï","%Ef":"ï","%eF":"ï","%EF":"ï","%f0":"ð","%F0":"ð","%f1":"ñ","%F1":"ñ","%f2":"ò","%F2":"ò","%f3":"ó","%F3":"ó","%f4":"ô","%F4":"ô","%f5":"õ","%F5":"õ","%f6":"ö","%F6":"ö","%f7":"÷","%F7":"÷","%f8":"ø","%F8":"ø","%f9":"ù","%F9":"ù","%fa":"ú","%Fa":"ú","%fA":"ú","%FA":"ú","%fb":"û","%Fb":"û","%fB":"û","%FB":"û","%fc":"ü","%Fc":"ü","%fC":"ü","%FC":"ü","%fd":"ý","%Fd":"ý","%fD":"ý","%FD":"ý","%fe":"þ","%Fe":"þ","%fE":"þ","%FE":"þ","%ff":"ÿ","%Ff":"ÿ","%fF":"ÿ","%FF":"ÿ"};function encodedReplacer(e){return o[e]}const i=0;const a=1;const A=2;const c=3;function parseParams(e){const t=[];let r=i;let o="";let u=false;let l=false;let p=0;let d="";const g=e.length;for(var h=0;h{e.exports=JSON.parse('{"name":"dotenv","version":"16.4.5","description":"Loads environment variables from .env file","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","require":"./lib/main.js","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","lint-readme":"standard-markdown","pretest":"npm run lint && npm run dts-check","test":"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov","prerelease":"npm test","release":"standard-version"},"repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"funding":"https://dotenvx.com","keywords":["dotenv","env",".env","environment","variables","config","settings"],"readmeFilename":"README.md","license":"BSD-2-Clause","devDependencies":{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3","decache":"^4.6.1","sinon":"^14.0.1","standard":"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0","tap":"^16.3.0","tar":"^6.1.11","typescript":"^4.8.4"},"engines":{"node":">=12"},"browser":{"fs":false}}')}};var r={};function __nccwpck_require__(e){var n=r[e];if(n!==undefined){return n.exports}var s=r[e]={exports:{}};var o=true;try{t[e].call(s.exports,s,s.exports,__nccwpck_require__);o=false}finally{if(o)delete r[e]}return s.exports}(()=>{__nccwpck_require__.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;__nccwpck_require__.d(t,{a:t});return t}})();(()=>{__nccwpck_require__.d=(e,t)=>{for(var r in t){if(__nccwpck_require__.o(t,r)&&!__nccwpck_require__.o(e,r)){Object.defineProperty(e,r,{enumerable:true,get:t[r]})}}}})();(()=>{__nccwpck_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})();(()=>{__nccwpck_require__.r=e=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=new URL(".",import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/)?1:0,-1)+"/";var n={};var s={};__nccwpck_require__.r(s);__nccwpck_require__.d(s,{Any:()=>Any,Array:()=>array_Array,AsyncIterator:()=>src_AsyncIterator,Awaited:()=>Awaited,BigInt:()=>bigint_BigInt,Boolean:()=>boolean_Boolean,Capitalize:()=>Capitalize,Composite:()=>Composite,Const:()=>Const,Constructor:()=>Constructor,ConstructorParameters:()=>ConstructorParameters,Date:()=>date_Date,Enum:()=>Enum,Exclude:()=>Exclude,Extends:()=>Extends,Extract:()=>Extract,Function:()=>function_Function,Index:()=>Index,InstanceType:()=>InstanceType,Integer:()=>Integer,Intersect:()=>Intersect,Iterator:()=>src_Iterator,KeyOf:()=>KeyOf,Literal:()=>Literal,Lowercase:()=>Lowercase,Mapped:()=>Mapped,Module:()=>Module,Never:()=>Never,Not:()=>Not,Null:()=>Null,Number:()=>number_Number,Object:()=>I,Omit:()=>Omit,Optional:()=>Optional,Parameters:()=>Parameters,Partial:()=>Partial,Pick:()=>Pick,Promise:()=>promise_Promise,Readonly:()=>Readonly,ReadonlyOptional:()=>ReadonlyOptional,Record:()=>Record,Recursive:()=>Recursive,Ref:()=>Ref,RegExp:()=>regexp_RegExp,Required:()=>Required,Rest:()=>Rest,ReturnType:()=>ReturnType,String:()=>string_String,Symbol:()=>symbol_Symbol,TemplateLiteral:()=>TemplateLiteral,Transform:()=>Transform,Tuple:()=>Tuple,Uint8Array:()=>uint8array_Uint8Array,Uncapitalize:()=>Uncapitalize,Undefined:()=>Undefined,Union:()=>Union,Unknown:()=>Unknown,Unsafe:()=>Unsafe,Uppercase:()=>Uppercase,Void:()=>Void});var o={reset:"",bright:"",dim:"",underscore:"",blink:"",reverse:"",hidden:"",fgBlack:"",fgRed:"",fgGreen:"",fgYellow:"",fgBlue:"",fgMagenta:"",fgCyan:"",fgWhite:"",bgBlack:"",bgRed:"",bgGreen:"",bgYellow:"",bgBlue:"",bgMagenta:"",bgCyan:"",bgWhite:""};var i={FATAL:"fatal",ERROR:"error",INFO:"info",VERBOSE:"verbose",DEBUG:"debug"};var a=class{constructor(){this.ok=this.ok.bind(this);this.info=this.info.bind(this);this.error=this.error.bind(this);this.fatal=this.fatal.bind(this);this.debug=this.debug.bind(this);this.verbose=this.verbose.bind(this)}fatal(e,t){this._logWithStack(i.FATAL,e,t)}error(e,t){this._logWithStack(i.ERROR,e,t)}ok(e,t){this._logWithStack("ok",e,t)}info(e,t){this._logWithStack(i.INFO,e,t)}debug(e,t){this._logWithStack(i.DEBUG,e,t)}verbose(e,t){this._logWithStack(i.VERBOSE,e,t)}_logWithStack(e,t,r){this._log(e,t);if(typeof r==="string"){this._log(e,r);return}if(r){const t=r;let n=t?.error?.stack||t?.stack;if(!n){const e=(new Error).stack?.split("\n");if(e){e.splice(0,4);n=e.filter((e=>e.includes(".ts:"))).join("\n")}}const s={...t};delete s.message;delete s.name;delete s.stack;if(!this._isEmpty(s)){this._log(e,s)}if(typeof n=="string"){const t=this._formatStackTrace(n,1);const r=this._colorizeText(t,o.dim);this._log(e,r)}else if(n){const t=this._formatStackTrace(n.join("\n"),1);const r=this._colorizeText(t,o.dim);this._log(e,r)}else{throw new Error("Stack is null")}}}_colorizeText(e,t){if(!t){throw new Error(`Invalid color: ${t}`)}return t.concat(e).concat(o.reset)}_formatStackTrace(e,t=0,r=""){const n=e.split("\n");for(let e=0;e`${r}${e.replace(/\s*at\s*/," ↳ ")}`)).join("\n")}_isEmpty(e){return!Reflect.ownKeys(e).some((t=>typeof e[String(t)]!=="function"))}_log(e,t){const r={fatal:"×",ok:"✓",error:"⚠",info:"›",debug:"››",verbose:"💬"};const n=r[e];const s=typeof t==="string"?t:JSON.stringify(t,null,2);const i=s.split("\n");const a=i.map(((e,t)=>{const r=t===0?`\t${n}`:`\t${" ".repeat(n.length)}`;return`${r} ${e}`})).join("\n");const A=a;const c={fatal:["error",o.fgRed],ok:["log",o.fgGreen],error:["warn",o.fgYellow],info:["info",o.dim],debug:["debug",o.fgMagenta],verbose:["debug",o.dim]};const u=console[c[e][0]];if(typeof u==="function"&&A.length>12){u(this._colorizeText(A,c[e][1]))}else if(A.length<=12){return}else{throw new Error(A)}}};var A=class{logMessage;metadata;constructor(e,t){this.logMessage=e;this.metadata=t}};var c=class _Logs{_maxLevel=-1;static console;_log({level:e,consoleLog:t,logMessage:r,metadata:n,type:s}){if(this._getNumericLevel(e)<=this._maxLevel){t(r,n)}return new A({raw:r,diff:this._diffColorCommentMessage(s,r),type:s,level:e},n)}_addDiagnosticInformation(e){if(!e){e={}}else if(typeof e!=="object"){e={message:e}}const t=(new Error).stack?.split("\n")||[];if(t.length>3){const r=t[3];const n=r.match(/at (\S+)/);if(n){e.caller=n[1]}}return e}ok(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.INFO,consoleLog:_Logs.console.ok,logMessage:e,metadata:t,type:"ok"})}info(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.INFO,consoleLog:_Logs.console.info,logMessage:e,metadata:t,type:"info"})}error(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.ERROR,consoleLog:_Logs.console.error,logMessage:e,metadata:t,type:"error"})}debug(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.DEBUG,consoleLog:_Logs.console.debug,logMessage:e,metadata:t,type:"debug"})}fatal(e,t){if(!t){t=_Logs.convertErrorsIntoObjects(new Error(e));const r=t.stack;r.splice(1,1);t.stack=r}if(t instanceof Error){t=_Logs.convertErrorsIntoObjects(t);const e=t.stack;e.splice(1,1);t.stack=e}t=this._addDiagnosticInformation(t);return this._log({level:i.FATAL,consoleLog:_Logs.console.fatal,logMessage:e,metadata:t,type:"fatal"})}verbose(e,t){t=this._addDiagnosticInformation(t);return this._log({level:i.VERBOSE,consoleLog:_Logs.console.verbose,logMessage:e,metadata:t,type:"verbose"})}constructor(e){this._maxLevel=this._getNumericLevel(e);_Logs.console=new a}_diffColorCommentMessage(e,t){const r={fatal:"-",ok:"+",error:"!",info:"#",debug:"@@@@"};const n=r[e];if(n){t=t.trim().split("\n").map((e=>`${n} ${e}`)).join("\n")}else if(e==="debug"){t=t.split("\n").map((e=>`@@ ${e} @@`)).join("\n")}else{t=t.split("\n").map((e=>`# ${e}`)).join("\n")}const s="```diff";const o="```";return[s,t,o].join("\n")}_getNumericLevel(e){switch(e){case i.FATAL:return 0;case i.ERROR:return 1;case i.INFO:return 2;case i.VERBOSE:return 4;case i.DEBUG:return 5;default:return-1}}static convertErrorsIntoObjects(e){if(e instanceof Error){return{message:e.message,name:e.name,stack:e.stack?e.stack.split("\n"):null}}else if(typeof e==="object"&&e!==null){const t=Object.keys(e);t.forEach((t=>{e[t]=this.convertErrorsIntoObjects(e[t])}))}return e}};var u=/\x1b\[\d+m|\s/g;function cleanLogs(e){const t=e.mock.calls.map((e=>e.map((e=>e?.toString())).join(" ")));return t.flat().map((e=>cleanLogString(e)))}function cleanLogString(e){return e.replaceAll(u,"").replaceAll(/\n/g,"").replaceAll(/\r/g,"").replaceAll(/\t/g,"").trim()}function cleanSpyLogs(e){return cleanLogs(e)}function IsAsyncIterator(e){return IsObject(e)&&Symbol.asyncIterator in e}function IsIterator(e){return IsObject(e)&&Symbol.iterator in e}function IsStandardObject(e){return IsObject(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function IsInstanceObject(e){return IsObject(e)&&!IsArray(e)&&IsFunction(e.constructor)&&e.constructor.name!=="Object"}function IsPromise(e){return e instanceof Promise}function IsDate(e){return e instanceof Date&&Number.isFinite(e.getTime())}function IsMap(e){return e instanceof globalThis.Map}function IsSet(e){return e instanceof globalThis.Set}function IsRegExp(e){return e instanceof globalThis.RegExp}function IsTypedArray(e){return ArrayBuffer.isView(e)}function IsInt8Array(e){return e instanceof globalThis.Int8Array}function IsUint8Array(e){return e instanceof globalThis.Uint8Array}function IsUint8ClampedArray(e){return e instanceof globalThis.Uint8ClampedArray}function IsInt16Array(e){return e instanceof globalThis.Int16Array}function IsUint16Array(e){return e instanceof globalThis.Uint16Array}function IsInt32Array(e){return e instanceof globalThis.Int32Array}function IsUint32Array(e){return e instanceof globalThis.Uint32Array}function IsFloat32Array(e){return e instanceof globalThis.Float32Array}function IsFloat64Array(e){return e instanceof globalThis.Float64Array}function IsBigInt64Array(e){return e instanceof globalThis.BigInt64Array}function IsBigUint64Array(e){return e instanceof globalThis.BigUint64Array}function HasPropertyKey(e,t){return t in e}function IsObject(e){return e!==null&&typeof e==="object"}function IsArray(e){return Array.isArray(e)&&!ArrayBuffer.isView(e)}function IsUndefined(e){return e===undefined}function IsNull(e){return e===null}function IsBoolean(e){return typeof e==="boolean"}function IsNumber(e){return typeof e==="number"}function IsInteger(e){return Number.isInteger(e)}function IsBigInt(e){return typeof e==="bigint"}function IsString(e){return typeof e==="string"}function IsFunction(e){return typeof e==="function"}function IsSymbol(e){return typeof e==="symbol"}function IsValueType(e){return IsBigInt(e)||IsBoolean(e)||IsNull(e)||IsNumber(e)||IsString(e)||IsSymbol(e)||IsUndefined(e)}var l;(function(e){e.InstanceMode="default";e.ExactOptionalPropertyTypes=false;e.AllowArrayObject=false;e.AllowNaN=false;e.AllowNullVoid=false;function IsExactOptionalProperty(t,r){return e.ExactOptionalPropertyTypes?r in t:t[r]!==undefined}e.IsExactOptionalProperty=IsExactOptionalProperty;function IsObjectLike(t){const r=IsObject(t);return e.AllowArrayObject?r:r&&!IsArray(t)}e.IsObjectLike=IsObjectLike;function IsRecordLike(e){return IsObjectLike(e)&&!(e instanceof Date)&&!(e instanceof Uint8Array)}e.IsRecordLike=IsRecordLike;function IsNumberLike(t){return e.AllowNaN?IsNumber(t):Number.isFinite(t)}e.IsNumberLike=IsNumberLike;function IsVoidLike(t){const r=IsUndefined(t);return e.AllowNullVoid?r||t===null:r}e.IsVoidLike=IsVoidLike})(l||(l={}));function value_HasPropertyKey(e,t){return t in e}function value_IsAsyncIterator(e){return value_IsObject(e)&&!value_IsArray(e)&&!value_IsUint8Array(e)&&Symbol.asyncIterator in e}function value_IsArray(e){return Array.isArray(e)}function value_IsBigInt(e){return typeof e==="bigint"}function value_IsBoolean(e){return typeof e==="boolean"}function value_IsDate(e){return e instanceof globalThis.Date}function value_IsFunction(e){return typeof e==="function"}function value_IsIterator(e){return value_IsObject(e)&&!value_IsArray(e)&&!value_IsUint8Array(e)&&Symbol.iterator in e}function value_IsNull(e){return e===null}function value_IsNumber(e){return typeof e==="number"}function value_IsObject(e){return typeof e==="object"&&e!==null}function value_IsRegExp(e){return e instanceof globalThis.RegExp}function value_IsString(e){return typeof e==="string"}function value_IsSymbol(e){return typeof e==="symbol"}function value_IsUint8Array(e){return e instanceof globalThis.Uint8Array}function value_IsUndefined(e){return e===undefined}function ImmutableArray(e){return globalThis.Object.freeze(e).map((e=>Immutable(e)))}function ImmutableDate(e){return e}function ImmutableUint8Array(e){return e}function ImmutableRegExp(e){return e}function ImmutableObject(e){const t={};for(const r of Object.getOwnPropertyNames(e)){t[r]=Immutable(e[r])}for(const r of Object.getOwnPropertySymbols(e)){t[r]=Immutable(e[r])}return globalThis.Object.freeze(t)}function Immutable(e){return value_IsArray(e)?ImmutableArray(e):value_IsDate(e)?ImmutableDate(e):value_IsUint8Array(e)?ImmutableUint8Array(e):value_IsRegExp(e)?ImmutableRegExp(e):value_IsObject(e)?ImmutableObject(e):e}function ArrayType(e){return e.map((e=>Visit(e)))}function DateType(e){return new Date(e.getTime())}function Uint8ArrayType(e){return new Uint8Array(e)}function RegExpType(e){return new RegExp(e.source,e.flags)}function ObjectType(e){const t={};for(const r of Object.getOwnPropertyNames(e)){t[r]=Visit(e[r])}for(const r of Object.getOwnPropertySymbols(e)){t[r]=Visit(e[r])}return t}function Visit(e){return value_IsArray(e)?ArrayType(e):value_IsDate(e)?DateType(e):value_IsUint8Array(e)?Uint8ArrayType(e):value_IsRegExp(e)?RegExpType(e):value_IsObject(e)?ObjectType(e):e}function Clone(e){return Visit(e)}function CreateType(e,t){const r=t!==undefined?{...t,...e}:e;switch(l.InstanceMode){case"freeze":return Immutable(r);case"clone":return Clone(r);default:return r}}const p=Symbol.for("TypeBox.Transform");const d=Symbol.for("TypeBox.Readonly");const g=Symbol.for("TypeBox.Optional");const h=Symbol.for("TypeBox.Hint");const E=Symbol.for("TypeBox.Kind");function Any(e){return CreateType({[E]:"Any"},e)}function array_Array(e,t){return CreateType({[E]:"Array",type:"array",items:e},t)}function src_AsyncIterator(e,t){return CreateType({[E]:"AsyncIterator",type:"AsyncIterator",items:e},t)}function Computed(e,t,r){return CreateType({[E]:"Computed",target:e,parameters:t},r)}function Never(e){return CreateType({[E]:"Never",not:{}},e)}function IsReadonly(e){return value_IsObject(e)&&e[d]==="Readonly"}function IsOptional(e){return value_IsObject(e)&&e[g]==="Optional"}function IsAny(e){return IsKindOf(e,"Any")}function kind_IsArray(e){return IsKindOf(e,"Array")}function kind_IsAsyncIterator(e){return IsKindOf(e,"AsyncIterator")}function kind_IsBigInt(e){return IsKindOf(e,"BigInt")}function kind_IsBoolean(e){return IsKindOf(e,"Boolean")}function IsComputed(e){return IsKindOf(e,"Computed")}function IsConstructor(e){return IsKindOf(e,"Constructor")}function kind_IsDate(e){return IsKindOf(e,"Date")}function kind_IsFunction(e){return IsKindOf(e,"Function")}function IsImport(e){return IsKindOf(e,"Import")}function kind_IsInteger(e){return IsKindOf(e,"Integer")}function IsProperties(e){return ValueGuard.IsObject(e)}function IsIntersect(e){return IsKindOf(e,"Intersect")}function kind_IsIterator(e){return IsKindOf(e,"Iterator")}function IsKindOf(e,t){return value_IsObject(e)&&E in e&&e[E]===t}function IsLiteralString(e){return IsLiteral(e)&&ValueGuard.IsString(e.const)}function IsLiteralNumber(e){return IsLiteral(e)&&ValueGuard.IsNumber(e.const)}function IsLiteralBoolean(e){return IsLiteral(e)&&ValueGuard.IsBoolean(e.const)}function IsLiteralValue(e){return value_IsBoolean(e)||value_IsNumber(e)||value_IsString(e)}function IsLiteral(e){return IsKindOf(e,"Literal")}function IsMappedKey(e){return IsKindOf(e,"MappedKey")}function IsMappedResult(e){return IsKindOf(e,"MappedResult")}function IsNever(e){return IsKindOf(e,"Never")}function IsNot(e){return IsKindOf(e,"Not")}function kind_IsNull(e){return IsKindOf(e,"Null")}function kind_IsNumber(e){return IsKindOf(e,"Number")}function kind_IsObject(e){return IsKindOf(e,"Object")}function kind_IsPromise(e){return IsKindOf(e,"Promise")}function IsRecord(e){return IsKindOf(e,"Record")}function IsRecursive(e){return ValueGuard.IsObject(e)&&Hint in e&&e[Hint]==="Recursive"}function IsRef(e){return IsKindOf(e,"Ref")}function kind_IsRegExp(e){return IsKindOf(e,"RegExp")}function kind_IsString(e){return IsKindOf(e,"String")}function kind_IsSymbol(e){return IsKindOf(e,"Symbol")}function IsTemplateLiteral(e){return IsKindOf(e,"TemplateLiteral")}function IsThis(e){return IsKindOf(e,"This")}function IsTransform(e){return value_IsObject(e)&&p in e}function IsTuple(e){return IsKindOf(e,"Tuple")}function kind_IsUndefined(e){return IsKindOf(e,"Undefined")}function IsUnion(e){return IsKindOf(e,"Union")}function kind_IsUint8Array(e){return IsKindOf(e,"Uint8Array")}function IsUnknown(e){return IsKindOf(e,"Unknown")}function IsUnsafe(e){return IsKindOf(e,"Unsafe")}function IsVoid(e){return IsKindOf(e,"Void")}function IsKind(e){return value_IsObject(e)&&E in e&&value_IsString(e[E])}function IsSchema(e){return IsAny(e)||kind_IsArray(e)||kind_IsBoolean(e)||kind_IsBigInt(e)||kind_IsAsyncIterator(e)||IsConstructor(e)||kind_IsDate(e)||kind_IsFunction(e)||kind_IsInteger(e)||IsIntersect(e)||kind_IsIterator(e)||IsLiteral(e)||IsMappedKey(e)||IsMappedResult(e)||IsNever(e)||IsNot(e)||kind_IsNull(e)||kind_IsNumber(e)||kind_IsObject(e)||kind_IsPromise(e)||IsRecord(e)||IsRef(e)||kind_IsRegExp(e)||kind_IsString(e)||kind_IsSymbol(e)||IsTemplateLiteral(e)||IsThis(e)||IsTuple(e)||kind_IsUndefined(e)||IsUnion(e)||kind_IsUint8Array(e)||IsUnknown(e)||IsUnsafe(e)||IsVoid(e)||IsKind(e)}function IntersectCreate(e,t={}){const r=e.every((e=>kind_IsObject(e)));const n=IsSchema(t.unevaluatedProperties)?{unevaluatedProperties:t.unevaluatedProperties}:{};return CreateType(t.unevaluatedProperties===false||IsSchema(t.unevaluatedProperties)||r?{...n,[E]:"Intersect",type:"object",allOf:e}:{...n,[E]:"Intersect",allOf:e},t)}function Intersect(e,t){if(e.length===1)return CreateType(e[0],t);if(e.length===0)return Never(t);if(e.some((e=>IsTransform(e))))throw new Error("Cannot intersect transform types");return IntersectCreate(e,t)}function UnionCreate(e,t){return CreateType({[E]:"Union",anyOf:e},t)}function Union(e,t){return e.length===0?Never(t):e.length===1?CreateType(e[0],t):UnionCreate(e,t)}function Ref(e,t){return CreateType({[E]:"Ref",$ref:e},t)}function FromComputed(e,t){return Computed("Awaited",[Computed(e,t)])}function FromRef(e){return Computed("Awaited",[Ref(e)])}function FromIntersect(e){return Intersect(FromRest(e))}function FromUnion(e){return Union(FromRest(e))}function FromPromise(e){return Awaited(e)}function FromRest(e){return e.map((e=>Awaited(e)))}function Awaited(e,t){return CreateType(IsComputed(e)?FromComputed(e.target,e.parameters):IsIntersect(e)?FromIntersect(e.allOf):IsUnion(e)?FromUnion(e.anyOf):kind_IsPromise(e)?FromPromise(e.item):IsRef(e)?FromRef(e.$ref):e,t)}function bigint_BigInt(e){return CreateType({[E]:"BigInt",type:"bigint"},e)}function boolean_Boolean(e){return CreateType({[E]:"Boolean",type:"boolean"},e)}function DiscardKey(e,t){const{[t]:r,...n}=e;return n}function Discard(e,t){return t.reduce(((e,t)=>DiscardKey(e,t)),e)}function MappedResult(e){return CreateType({[E]:"MappedResult",properties:e})}function FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=Optional(e[n],t);return r}function FromMappedResult(e,t){return FromProperties(e.properties,t)}function OptionalFromMappedResult(e,t){const r=FromMappedResult(e,t);return MappedResult(r)}function RemoveOptional(e){return CreateType(Discard(e,[g]))}function AddOptional(e){return CreateType({...e,[g]:"Optional"})}function OptionalWithFlag(e,t){return t===false?RemoveOptional(e):AddOptional(e)}function Optional(e,t){const r=t??true;return IsMappedResult(e)?OptionalFromMappedResult(e,r):OptionalWithFlag(e,r)}function IsIntersectOptional(e){return e.every((e=>IsOptional(e)))}function RemoveOptionalFromType(e){return Discard(e,[g])}function RemoveOptionalFromRest(e){return e.map((e=>IsOptional(e)?RemoveOptionalFromType(e):e))}function ResolveIntersect(e,t){return IsIntersectOptional(e)?Optional(IntersectCreate(RemoveOptionalFromRest(e),t)):IntersectCreate(RemoveOptionalFromRest(e),t)}function IntersectEvaluated(e,t={}){if(e.length===1)return CreateType(e[0],t);if(e.length===0)return Never(t);if(e.some((e=>IsTransform(e))))throw new Error("Cannot intersect transform types");return ResolveIntersect(e,t)}function Literal(e,t){return CreateType({[E]:"Literal",const:e,type:typeof e},t)}function IsUnionOptional(e){return e.some((e=>IsOptional(e)))}function union_evaluated_RemoveOptionalFromRest(e){return e.map((e=>IsOptional(e)?union_evaluated_RemoveOptionalFromType(e):e))}function union_evaluated_RemoveOptionalFromType(e){return Discard(e,[g])}function ResolveUnion(e,t){const r=IsUnionOptional(e);return r?Optional(UnionCreate(union_evaluated_RemoveOptionalFromRest(e),t)):UnionCreate(union_evaluated_RemoveOptionalFromRest(e),t)}function UnionEvaluated(e,t){return e.length===1?CreateType(e[0],t):e.length===0?Never(t):ResolveUnion(e,t)}class error_TypeBoxError extends Error{constructor(e){super(e)}}class TemplateLiteralParserError extends error_TypeBoxError{}function Unescape(e){return e.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function IsNonEscaped(e,t,r){return e[t]===r&&e.charCodeAt(t-1)!==92}function IsOpenParen(e,t){return IsNonEscaped(e,t,"(")}function IsCloseParen(e,t){return IsNonEscaped(e,t,")")}function IsSeparator(e,t){return IsNonEscaped(e,t,"|")}function IsGroup(e){if(!(IsOpenParen(e,0)&&IsCloseParen(e,e.length-1)))return false;let t=0;for(let r=0;r0)n.push(TemplateLiteralParse(t));r=s+1}}const s=e.slice(r);if(s.length>0)n.push(TemplateLiteralParse(s));if(n.length===0)return{type:"const",const:""};if(n.length===1)return n[0];return{type:"or",expr:n}}function And(e){function Group(e,t){if(!IsOpenParen(e,t))throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);let r=0;for(let n=t;n0)t.push(TemplateLiteralParse(o));r=s-1}}return t.length===0?{type:"const",const:""}:t.length===1?t[0]:{type:"and",expr:t}}function TemplateLiteralParse(e){return IsGroup(e)?TemplateLiteralParse(InGroup(e)):IsPrecedenceOr(e)?Or(e):IsPrecedenceAnd(e)?And(e):{type:"const",const:Unescape(e)}}function TemplateLiteralParseExact(e){return TemplateLiteralParse(e.slice(1,e.length-1))}class TemplateLiteralFiniteError extends error_TypeBoxError{}function IsNumberExpression(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="0"&&e.expr[1].type==="const"&&e.expr[1].const==="[1-9][0-9]*"}function IsBooleanExpression(e){return e.type==="or"&&e.expr.length===2&&e.expr[0].type==="const"&&e.expr[0].const==="true"&&e.expr[1].type==="const"&&e.expr[1].const==="false"}function IsStringExpression(e){return e.type==="const"&&e.const===".*"}function IsTemplateLiteralExpressionFinite(e){return IsNumberExpression(e)||IsStringExpression(e)?false:IsBooleanExpression(e)?true:e.type==="and"?e.expr.every((e=>IsTemplateLiteralExpressionFinite(e))):e.type==="or"?e.expr.every((e=>IsTemplateLiteralExpressionFinite(e))):e.type==="const"?true:(()=>{throw new TemplateLiteralFiniteError(`Unknown expression type`)})()}function IsTemplateLiteralFinite(e){const t=TemplateLiteralParseExact(e.pattern);return IsTemplateLiteralExpressionFinite(t)}class TemplateLiteralGenerateError extends error_TypeBoxError{}function*GenerateReduce(e){if(e.length===1)return yield*e[0];for(const t of e[0]){for(const r of GenerateReduce(e.slice(1))){yield`${t}${r}`}}}function*GenerateAnd(e){return yield*GenerateReduce(e.expr.map((e=>[...TemplateLiteralExpressionGenerate(e)])))}function*GenerateOr(e){for(const t of e.expr)yield*TemplateLiteralExpressionGenerate(t)}function*GenerateConst(e){return yield e.const}function*TemplateLiteralExpressionGenerate(e){return e.type==="and"?yield*GenerateAnd(e):e.type==="or"?yield*GenerateOr(e):e.type==="const"?yield*GenerateConst(e):(()=>{throw new TemplateLiteralGenerateError("Unknown expression")})()}function TemplateLiteralGenerate(e){const t=TemplateLiteralParseExact(e.pattern);return IsTemplateLiteralExpressionFinite(t)?[...TemplateLiteralExpressionGenerate(t)]:[]}function FromTemplateLiteral(e){const t=TemplateLiteralGenerate(e);return t.map((e=>e.toString()))}function indexed_property_keys_FromUnion(e){const t=[];for(const r of e)t.push(...IndexPropertyKeys(r));return t}function FromLiteral(e){return[e.toString()]}function IndexPropertyKeys(e){return[...new Set(IsTemplateLiteral(e)?FromTemplateLiteral(e):IsUnion(e)?indexed_property_keys_FromUnion(e.anyOf):IsLiteral(e)?FromLiteral(e.const):kind_IsNumber(e)?["[number]"]:kind_IsInteger(e)?["[number]"]:[])]}function MappedIndexPropertyKey(e,t,r){return{[t]:Index(e,[t],Clone(r))}}function MappedIndexPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...MappedIndexPropertyKey(e,n,r)})),{})}function MappedIndexProperties(e,t,r){return MappedIndexPropertyKeys(e,t.keys,r)}function IndexFromMappedKey(e,t,r){const n=MappedIndexProperties(e,t,r);return MappedResult(n)}function indexed_from_mapped_result_FromProperties(e,t,r){const n={};for(const s of Object.getOwnPropertyNames(t)){const o=IndexPropertyKeys(t[s]);n[s]=Index(e,o,r)}return n}function indexed_from_mapped_result_FromMappedResult(e,t,r){return indexed_from_mapped_result_FromProperties(e,t.properties,r)}function IndexFromMappedResult(e,t,r){const n=indexed_from_mapped_result_FromMappedResult(e,t,r);return MappedResult(n)}function indexed_FromRest(e,t){return e.map((e=>IndexFromPropertyKey(e,t)))}function FromIntersectRest(e){return e.filter((e=>!IsNever(e)))}function indexed_FromIntersect(e,t){return IntersectEvaluated(FromIntersectRest(indexed_FromRest(e,t)))}function FromUnionRest(e){return e.some((e=>IsNever(e)))?[]:e}function indexed_FromUnion(e,t){return UnionEvaluated(FromUnionRest(indexed_FromRest(e,t)))}function FromTuple(e,t){return t==="[number]"?UnionEvaluated(e):t in e?e[t]:Never()}function FromArray(e,t){return t==="[number]"?e:Never()}function FromProperty(e,t){return t in e?e[t]:Never()}function IndexFromPropertyKey(e,t){return IsIntersect(e)?indexed_FromIntersect(e.allOf,t):IsUnion(e)?indexed_FromUnion(e.anyOf,t):IsTuple(e)?FromTuple(e.items??[],t):kind_IsArray(e)?FromArray(e.items,t):kind_IsObject(e)?FromProperty(e.properties,t):Never()}function IndexFromPropertyKeys(e,t){return t.map((t=>IndexFromPropertyKey(e,t)))}function FromType(e,t){const r=IndexFromPropertyKeys(e,t);return UnionEvaluated(r)}function UnionFromPropertyKeys(e){const t=e.reduce(((e,t)=>IsLiteralValue(t)?[...e,Literal(t)]:e),[]);return UnionEvaluated(t)}function Index(e,t,r){const n=value_IsArray(t)?UnionFromPropertyKeys(t):t;const s=IsSchema(t)?IndexPropertyKeys(t):t;const o=IsRef(e);const i=IsRef(t);return IsMappedResult(t)?IndexFromMappedResult(e,t,r):IsMappedKey(t)?IndexFromMappedKey(e,t,r):o&&i?Computed("Index",[e,n],r):!o&&i?Computed("Index",[e,n],r):o&&!i?Computed("Index",[e,n],r):CreateType(FromType(e,s),r)}function SetIncludes(e,t){return e.includes(t)}function SetIsSubset(e,t){return e.every((e=>SetIncludes(t,e)))}function SetDistinct(e){return[...new Set(e)]}function SetIntersect(e,t){return e.filter((e=>t.includes(e)))}function SetUnion(e,t){return[...e,...t]}function SetComplement(e,t){return e.filter((e=>!t.includes(e)))}function SetIntersectManyResolve(e,t){return e.reduce(((e,t)=>SetIntersect(e,t)),t)}function SetIntersectMany(e){return e.length===1?e[0]:e.length>1?SetIntersectManyResolve(e.slice(1),e[0]):[]}function SetUnionMany(e){const t=[];for(const r of e)t.push(...r);return t}function keyof_property_keys_FromRest(e){const t=[];for(const r of e)t.push(KeyOfPropertyKeys(r));return t}function keyof_property_keys_FromIntersect(e){const t=keyof_property_keys_FromRest(e);const r=SetUnionMany(t);return r}function keyof_property_keys_FromUnion(e){const t=keyof_property_keys_FromRest(e);const r=SetIntersectMany(t);return r}function keyof_property_keys_FromTuple(e){return e.map(((e,t)=>t.toString()))}function keyof_property_keys_FromArray(e){return["[number]"]}function keyof_property_keys_FromProperties(e){return globalThis.Object.getOwnPropertyNames(e)}function FromPatternProperties(e){if(!m)return[];const t=globalThis.Object.getOwnPropertyNames(e);return t.map((e=>e[0]==="^"&&e[e.length-1]==="$"?e.slice(1,e.length-1):e))}function KeyOfPropertyKeys(e){return IsIntersect(e)?keyof_property_keys_FromIntersect(e.allOf):IsUnion(e)?keyof_property_keys_FromUnion(e.anyOf):IsTuple(e)?keyof_property_keys_FromTuple(e.items??[]):kind_IsArray(e)?keyof_property_keys_FromArray(e.items):kind_IsObject(e)?keyof_property_keys_FromProperties(e.properties):IsRecord(e)?FromPatternProperties(e.patternProperties):[]}let m=false;function KeyOfPattern(e){m=true;const t=KeyOfPropertyKeys(e);m=false;const r=t.map((e=>`(${e})`));return`^(${r.join("|")})$`}function RequiredKeys(e){const t=[];for(let r in e){if(!IsOptional(e[r]))t.push(r)}return t}function _Object(e,t){const r=RequiredKeys(e);const n=r.length>0?{[E]:"Object",type:"object",properties:e,required:r}:{[E]:"Object",type:"object",properties:e};return CreateType(n,t)}var I=_Object;function CompositeKeys(e){const t=[];for(const r of e)t.push(...KeyOfPropertyKeys(r));return SetDistinct(t)}function FilterNever(e){return e.filter((e=>!IsNever(e)))}function CompositeProperty(e,t){const r=[];for(const n of e)r.push(...IndexFromPropertyKeys(n,[t]));return FilterNever(r)}function CompositeProperties(e,t){const r={};for(const n of t){r[n]=IntersectEvaluated(CompositeProperty(e,n))}return r}function Composite(e,t){const r=CompositeKeys(e);const n=CompositeProperties(e,r);const s=I(n,t);return s}function date_Date(e){return CreateType({[E]:"Date",type:"Date"},e)}function function_Function(e,t,r){return CreateType({[E]:"Function",type:"Function",parameters:e,returns:t},r)}function Null(e){return CreateType({[E]:"Null",type:"null"},e)}function symbol_Symbol(e){return CreateType({[E]:"Symbol",type:"symbol"},e)}function Tuple(e,t){return CreateType(e.length>0?{[E]:"Tuple",type:"array",items:e,additionalItems:false,minItems:e.length,maxItems:e.length}:{[E]:"Tuple",type:"array",minItems:e.length,maxItems:e.length},t)}function readonly_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=Readonly(e[n],t);return r}function readonly_from_mapped_result_FromMappedResult(e,t){return readonly_from_mapped_result_FromProperties(e.properties,t)}function ReadonlyFromMappedResult(e,t){const r=readonly_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function RemoveReadonly(e){return CreateType(Discard(e,[d]))}function AddReadonly(e){return CreateType({...e,[d]:"Readonly"})}function ReadonlyWithFlag(e,t){return t===false?RemoveReadonly(e):AddReadonly(e)}function Readonly(e,t){const r=t??true;return IsMappedResult(e)?ReadonlyFromMappedResult(e,r):ReadonlyWithFlag(e,r)}function Undefined(e){return CreateType({[E]:"Undefined",type:"undefined"},e)}function uint8array_Uint8Array(e){return CreateType({[E]:"Uint8Array",type:"Uint8Array"},e)}function Unknown(e){return CreateType({[E]:"Unknown"},e)}function const_FromArray(e){return e.map((e=>FromValue(e,false)))}function const_FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=Readonly(FromValue(e[r],false));return t}function ConditionalReadonly(e,t){return t===true?e:Readonly(e)}function FromValue(e,t){return value_IsAsyncIterator(e)?ConditionalReadonly(Any(),t):value_IsIterator(e)?ConditionalReadonly(Any(),t):value_IsArray(e)?Readonly(Tuple(const_FromArray(e))):value_IsUint8Array(e)?uint8array_Uint8Array():value_IsDate(e)?date_Date():value_IsObject(e)?ConditionalReadonly(I(const_FromProperties(e)),t):value_IsFunction(e)?ConditionalReadonly(function_Function([],Unknown()),t):value_IsUndefined(e)?Undefined():value_IsNull(e)?Null():value_IsSymbol(e)?symbol_Symbol():value_IsBigInt(e)?bigint_BigInt():value_IsNumber(e)?Literal(e):value_IsBoolean(e)?Literal(e):value_IsString(e)?Literal(e):I({})}function Const(e,t){return CreateType(FromValue(e,true),t)}function Constructor(e,t,r){return CreateType({[E]:"Constructor",type:"Constructor",parameters:e,returns:t},r)}function ConstructorParameters(e,t){return Tuple(e.parameters,t)}function Enum(e,t){if(value_IsUndefined(e))throw new Error("Enum undefined or empty");const r=globalThis.Object.getOwnPropertyNames(e).filter((e=>isNaN(e))).map((t=>e[t]));const n=[...new Set(r)];const s=n.map((e=>Literal(e)));return Union(s,{...t,[h]:"Enum"})}function number_Number(e){return CreateType({[E]:"Number",type:"number"},e)}function string_String(e){return CreateType({[E]:"String",type:"string"},e)}function TemplateLiteralToUnion(e){const t=TemplateLiteralGenerate(e);const r=t.map((e=>Literal(e)));return UnionEvaluated(r)}const y="(true|false)";const C="(0|[1-9][0-9]*)";const Q="(.*)";const B="(?!.*)";const b=null&&`^${y}$`;const T=`^${C}$`;const w=`^${Q}$`;const v=`^${B}$`;class TypeGuardUnknownTypeError extends(null&&TypeBoxError){}const R=["Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"];function IsPattern(e){try{new RegExp(e);return true}catch{return false}}function IsControlCharacterFree(e){if(!value_IsString(e))return false;for(let t=0;t=7&&r<=13||r===27||r===127){return false}}return true}function IsAdditionalProperties(e){return IsOptionalBoolean(e)||type_IsSchema(e)}function IsOptionalBigInt(e){return value_IsUndefined(e)||value_IsBigInt(e)}function IsOptionalNumber(e){return value_IsUndefined(e)||value_IsNumber(e)}function IsOptionalBoolean(e){return value_IsUndefined(e)||value_IsBoolean(e)}function IsOptionalString(e){return value_IsUndefined(e)||value_IsString(e)}function IsOptionalPattern(e){return value_IsUndefined(e)||value_IsString(e)&&IsControlCharacterFree(e)&&IsPattern(e)}function IsOptionalFormat(e){return value_IsUndefined(e)||value_IsString(e)&&IsControlCharacterFree(e)}function IsOptionalSchema(e){return value_IsUndefined(e)||type_IsSchema(e)}function type_IsReadonly(e){return ValueGuard.IsObject(e)&&e[ReadonlyKind]==="Readonly"}function type_IsOptional(e){return value_IsObject(e)&&e[g]==="Optional"}function type_IsAny(e){return type_IsKindOf(e,"Any")&&IsOptionalString(e.$id)}function type_IsArray(e){return type_IsKindOf(e,"Array")&&e.type==="array"&&IsOptionalString(e.$id)&&type_IsSchema(e.items)&&IsOptionalNumber(e.minItems)&&IsOptionalNumber(e.maxItems)&&IsOptionalBoolean(e.uniqueItems)&&IsOptionalSchema(e.contains)&&IsOptionalNumber(e.minContains)&&IsOptionalNumber(e.maxContains)}function type_IsAsyncIterator(e){return type_IsKindOf(e,"AsyncIterator")&&e.type==="AsyncIterator"&&IsOptionalString(e.$id)&&type_IsSchema(e.items)}function type_IsBigInt(e){return type_IsKindOf(e,"BigInt")&&e.type==="bigint"&&IsOptionalString(e.$id)&&IsOptionalBigInt(e.exclusiveMaximum)&&IsOptionalBigInt(e.exclusiveMinimum)&&IsOptionalBigInt(e.maximum)&&IsOptionalBigInt(e.minimum)&&IsOptionalBigInt(e.multipleOf)}function type_IsBoolean(e){return type_IsKindOf(e,"Boolean")&&e.type==="boolean"&&IsOptionalString(e.$id)}function type_IsComputed(e){return type_IsKindOf(e,"Computed")&&type_IsString(e.target)&&ValueGuard.IsArray(e.parameters)&&e.parameters.every((e=>type_IsSchema(e)))}function type_IsConstructor(e){return type_IsKindOf(e,"Constructor")&&e.type==="Constructor"&&IsOptionalString(e.$id)&&value_IsArray(e.parameters)&&e.parameters.every((e=>type_IsSchema(e)))&&type_IsSchema(e.returns)}function type_IsDate(e){return type_IsKindOf(e,"Date")&&e.type==="Date"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximumTimestamp)&&IsOptionalNumber(e.exclusiveMinimumTimestamp)&&IsOptionalNumber(e.maximumTimestamp)&&IsOptionalNumber(e.minimumTimestamp)&&IsOptionalNumber(e.multipleOfTimestamp)}function type_IsFunction(e){return type_IsKindOf(e,"Function")&&e.type==="Function"&&IsOptionalString(e.$id)&&value_IsArray(e.parameters)&&e.parameters.every((e=>type_IsSchema(e)))&&type_IsSchema(e.returns)}function type_IsImport(e){return type_IsKindOf(e,"Import")&&ValueGuard.HasPropertyKey(e,"$defs")&&ValueGuard.IsObject(e.$defs)&&type_IsProperties(e.$defs)&&ValueGuard.HasPropertyKey(e,"$ref")&&ValueGuard.IsString(e.$ref)&&e.$ref in e.$defs}function type_IsInteger(e){return type_IsKindOf(e,"Integer")&&e.type==="integer"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximum)&&IsOptionalNumber(e.exclusiveMinimum)&&IsOptionalNumber(e.maximum)&&IsOptionalNumber(e.minimum)&&IsOptionalNumber(e.multipleOf)}function type_IsProperties(e){return value_IsObject(e)&&Object.entries(e).every((([e,t])=>IsControlCharacterFree(e)&&type_IsSchema(t)))}function type_IsIntersect(e){return type_IsKindOf(e,"Intersect")&&(value_IsString(e.type)&&e.type!=="object"?false:true)&&value_IsArray(e.allOf)&&e.allOf.every((e=>type_IsSchema(e)&&!type_IsTransform(e)))&&IsOptionalString(e.type)&&(IsOptionalBoolean(e.unevaluatedProperties)||IsOptionalSchema(e.unevaluatedProperties))&&IsOptionalString(e.$id)}function type_IsIterator(e){return type_IsKindOf(e,"Iterator")&&e.type==="Iterator"&&IsOptionalString(e.$id)&&type_IsSchema(e.items)}function type_IsKindOf(e,t){return value_IsObject(e)&&E in e&&e[E]===t}function type_IsLiteralString(e){return type_IsLiteral(e)&&value_IsString(e.const)}function type_IsLiteralNumber(e){return type_IsLiteral(e)&&value_IsNumber(e.const)}function type_IsLiteralBoolean(e){return type_IsLiteral(e)&&value_IsBoolean(e.const)}function type_IsLiteral(e){return type_IsKindOf(e,"Literal")&&IsOptionalString(e.$id)&&type_IsLiteralValue(e.const)}function type_IsLiteralValue(e){return value_IsBoolean(e)||value_IsNumber(e)||value_IsString(e)}function type_IsMappedKey(e){return type_IsKindOf(e,"MappedKey")&&value_IsArray(e.keys)&&e.keys.every((e=>value_IsNumber(e)||value_IsString(e)))}function type_IsMappedResult(e){return type_IsKindOf(e,"MappedResult")&&type_IsProperties(e.properties)}function type_IsNever(e){return type_IsKindOf(e,"Never")&&value_IsObject(e.not)&&Object.getOwnPropertyNames(e.not).length===0}function type_IsNot(e){return type_IsKindOf(e,"Not")&&type_IsSchema(e.not)}function type_IsNull(e){return type_IsKindOf(e,"Null")&&e.type==="null"&&IsOptionalString(e.$id)}function type_IsNumber(e){return type_IsKindOf(e,"Number")&&e.type==="number"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.exclusiveMaximum)&&IsOptionalNumber(e.exclusiveMinimum)&&IsOptionalNumber(e.maximum)&&IsOptionalNumber(e.minimum)&&IsOptionalNumber(e.multipleOf)}function type_IsObject(e){return type_IsKindOf(e,"Object")&&e.type==="object"&&IsOptionalString(e.$id)&&type_IsProperties(e.properties)&&IsAdditionalProperties(e.additionalProperties)&&IsOptionalNumber(e.minProperties)&&IsOptionalNumber(e.maxProperties)}function type_IsPromise(e){return type_IsKindOf(e,"Promise")&&e.type==="Promise"&&IsOptionalString(e.$id)&&type_IsSchema(e.item)}function type_IsRecord(e){return type_IsKindOf(e,"Record")&&e.type==="object"&&IsOptionalString(e.$id)&&IsAdditionalProperties(e.additionalProperties)&&value_IsObject(e.patternProperties)&&(e=>{const t=Object.getOwnPropertyNames(e.patternProperties);return t.length===1&&IsPattern(t[0])&&value_IsObject(e.patternProperties)&&type_IsSchema(e.patternProperties[t[0]])})(e)}function type_IsRecursive(e){return ValueGuard.IsObject(e)&&Hint in e&&e[Hint]==="Recursive"}function type_IsRef(e){return type_IsKindOf(e,"Ref")&&IsOptionalString(e.$id)&&value_IsString(e.$ref)}function type_IsRegExp(e){return type_IsKindOf(e,"RegExp")&&IsOptionalString(e.$id)&&value_IsString(e.source)&&value_IsString(e.flags)&&IsOptionalNumber(e.maxLength)&&IsOptionalNumber(e.minLength)}function type_IsString(e){return type_IsKindOf(e,"String")&&e.type==="string"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.minLength)&&IsOptionalNumber(e.maxLength)&&IsOptionalPattern(e.pattern)&&IsOptionalFormat(e.format)}function type_IsSymbol(e){return type_IsKindOf(e,"Symbol")&&e.type==="symbol"&&IsOptionalString(e.$id)}function type_IsTemplateLiteral(e){return type_IsKindOf(e,"TemplateLiteral")&&e.type==="string"&&value_IsString(e.pattern)&&e.pattern[0]==="^"&&e.pattern[e.pattern.length-1]==="$"}function type_IsThis(e){return type_IsKindOf(e,"This")&&IsOptionalString(e.$id)&&value_IsString(e.$ref)}function type_IsTransform(e){return value_IsObject(e)&&p in e}function type_IsTuple(e){return type_IsKindOf(e,"Tuple")&&e.type==="array"&&IsOptionalString(e.$id)&&value_IsNumber(e.minItems)&&value_IsNumber(e.maxItems)&&e.minItems===e.maxItems&&(value_IsUndefined(e.items)&&value_IsUndefined(e.additionalItems)&&e.minItems===0||value_IsArray(e.items)&&e.items.every((e=>type_IsSchema(e))))}function type_IsUndefined(e){return type_IsKindOf(e,"Undefined")&&e.type==="undefined"&&IsOptionalString(e.$id)}function IsUnionLiteral(e){return type_IsUnion(e)&&e.anyOf.every((e=>type_IsLiteralString(e)||type_IsLiteralNumber(e)))}function type_IsUnion(e){return type_IsKindOf(e,"Union")&&IsOptionalString(e.$id)&&value_IsObject(e)&&value_IsArray(e.anyOf)&&e.anyOf.every((e=>type_IsSchema(e)))}function type_IsUint8Array(e){return type_IsKindOf(e,"Uint8Array")&&e.type==="Uint8Array"&&IsOptionalString(e.$id)&&IsOptionalNumber(e.minByteLength)&&IsOptionalNumber(e.maxByteLength)}function type_IsUnknown(e){return type_IsKindOf(e,"Unknown")&&IsOptionalString(e.$id)}function type_IsUnsafe(e){return type_IsKindOf(e,"Unsafe")}function type_IsVoid(e){return type_IsKindOf(e,"Void")&&e.type==="void"&&IsOptionalString(e.$id)}function type_IsKind(e){return value_IsObject(e)&&E in e&&value_IsString(e[E])&&!R.includes(e[E])}function type_IsSchema(e){return value_IsObject(e)&&(type_IsAny(e)||type_IsArray(e)||type_IsBoolean(e)||type_IsBigInt(e)||type_IsAsyncIterator(e)||type_IsConstructor(e)||type_IsDate(e)||type_IsFunction(e)||type_IsInteger(e)||type_IsIntersect(e)||type_IsIterator(e)||type_IsLiteral(e)||type_IsMappedKey(e)||type_IsMappedResult(e)||type_IsNever(e)||type_IsNot(e)||type_IsNull(e)||type_IsNumber(e)||type_IsObject(e)||type_IsPromise(e)||type_IsRecord(e)||type_IsRef(e)||type_IsRegExp(e)||type_IsString(e)||type_IsSymbol(e)||type_IsTemplateLiteral(e)||type_IsThis(e)||type_IsTuple(e)||type_IsUndefined(e)||type_IsUnion(e)||type_IsUint8Array(e)||type_IsUnknown(e)||type_IsUnsafe(e)||type_IsVoid(e)||type_IsKind(e))}class ExtendsResolverError extends error_TypeBoxError{}var k;(function(e){e[e["Union"]=0]="Union";e[e["True"]=1]="True";e[e["False"]=2]="False"})(k||(k={}));function IntoBooleanResult(e){return e===k.False?e:k.True}function Throw(e){throw new ExtendsResolverError(e)}function IsStructuralRight(e){return type_IsNever(e)||type_IsIntersect(e)||type_IsUnion(e)||type_IsUnknown(e)||type_IsAny(e)}function StructuralRight(e,t){return type_IsNever(t)?FromNeverRight(e,t):type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)?FromUnionRight(e,t):type_IsUnknown(t)?FromUnknownRight(e,t):type_IsAny(t)?FromAnyRight(e,t):Throw("StructuralRight")}function FromAnyRight(e,t){return k.True}function FromAny(e,t){return type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)&&t.anyOf.some((e=>type_IsAny(e)||type_IsUnknown(e)))?k.True:type_IsUnion(t)?k.Union:type_IsUnknown(t)?k.True:type_IsAny(t)?k.True:k.Union}function FromArrayRight(e,t){return type_IsUnknown(e)?k.False:type_IsAny(e)?k.Union:type_IsNever(e)?k.True:k.False}function extends_check_FromArray(e,t){return type_IsObject(t)&&IsObjectArrayLike(t)?k.True:IsStructuralRight(t)?StructuralRight(e,t):!type_IsArray(t)?k.False:IntoBooleanResult(extends_check_Visit(e.items,t.items))}function FromAsyncIterator(e,t){return IsStructuralRight(t)?StructuralRight(e,t):!type_IsAsyncIterator(t)?k.False:IntoBooleanResult(extends_check_Visit(e.items,t.items))}function FromBigInt(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsBigInt(t)?k.True:k.False}function FromBooleanRight(e,t){return type_IsLiteralBoolean(e)?k.True:type_IsBoolean(e)?k.True:k.False}function FromBoolean(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsBoolean(t)?k.True:k.False}function FromConstructor(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):!type_IsConstructor(t)?k.False:e.parameters.length>t.parameters.length?k.False:!e.parameters.every(((e,r)=>IntoBooleanResult(extends_check_Visit(t.parameters[r],e))===k.True))?k.False:IntoBooleanResult(extends_check_Visit(e.returns,t.returns))}function FromDate(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsDate(t)?k.True:k.False}function FromFunction(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):!type_IsFunction(t)?k.False:e.parameters.length>t.parameters.length?k.False:!e.parameters.every(((e,r)=>IntoBooleanResult(extends_check_Visit(t.parameters[r],e))===k.True))?k.False:IntoBooleanResult(extends_check_Visit(e.returns,t.returns))}function FromIntegerRight(e,t){return type_IsLiteral(e)&&value_IsNumber(e.const)?k.True:type_IsNumber(e)||type_IsInteger(e)?k.True:k.False}function FromInteger(e,t){return type_IsInteger(t)||type_IsNumber(t)?k.True:IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):k.False}function FromIntersectRight(e,t){return t.allOf.every((t=>extends_check_Visit(e,t)===k.True))?k.True:k.False}function extends_check_FromIntersect(e,t){return e.allOf.some((e=>extends_check_Visit(e,t)===k.True))?k.True:k.False}function FromIterator(e,t){return IsStructuralRight(t)?StructuralRight(e,t):!type_IsIterator(t)?k.False:IntoBooleanResult(extends_check_Visit(e.items,t.items))}function extends_check_FromLiteral(e,t){return type_IsLiteral(t)&&t.const===e.const?k.True:IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsString(t)?FromStringRight(e,t):type_IsNumber(t)?FromNumberRight(e,t):type_IsInteger(t)?FromIntegerRight(e,t):type_IsBoolean(t)?FromBooleanRight(e,t):k.False}function FromNeverRight(e,t){return k.False}function FromNever(e,t){return k.True}function UnwrapTNot(e){let[t,r]=[e,0];while(true){if(!type_IsNot(t))break;t=t.not;r+=1}return r%2===0?t:Unknown()}function FromNot(e,t){return type_IsNot(e)?extends_check_Visit(UnwrapTNot(e),t):type_IsNot(t)?extends_check_Visit(e,UnwrapTNot(t)):Throw("Invalid fallthrough for Not")}function FromNull(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsNull(t)?k.True:k.False}function FromNumberRight(e,t){return type_IsLiteralNumber(e)?k.True:type_IsNumber(e)||type_IsInteger(e)?k.True:k.False}function FromNumber(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsInteger(t)||type_IsNumber(t)?k.True:k.False}function IsObjectPropertyCount(e,t){return Object.getOwnPropertyNames(e.properties).length===t}function IsObjectStringLike(e){return IsObjectArrayLike(e)}function IsObjectSymbolLike(e){return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"description"in e.properties&&type_IsUnion(e.properties.description)&&e.properties.description.anyOf.length===2&&(type_IsString(e.properties.description.anyOf[0])&&type_IsUndefined(e.properties.description.anyOf[1])||type_IsString(e.properties.description.anyOf[1])&&type_IsUndefined(e.properties.description.anyOf[0]))}function IsObjectNumberLike(e){return IsObjectPropertyCount(e,0)}function IsObjectBooleanLike(e){return IsObjectPropertyCount(e,0)}function IsObjectBigIntLike(e){return IsObjectPropertyCount(e,0)}function IsObjectDateLike(e){return IsObjectPropertyCount(e,0)}function IsObjectUint8ArrayLike(e){return IsObjectArrayLike(e)}function IsObjectFunctionLike(e){const t=number_Number();return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"length"in e.properties&&IntoBooleanResult(extends_check_Visit(e.properties["length"],t))===k.True}function IsObjectConstructorLike(e){return IsObjectPropertyCount(e,0)}function IsObjectArrayLike(e){const t=number_Number();return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"length"in e.properties&&IntoBooleanResult(extends_check_Visit(e.properties["length"],t))===k.True}function IsObjectPromiseLike(e){const t=function_Function([Any()],Any());return IsObjectPropertyCount(e,0)||IsObjectPropertyCount(e,1)&&"then"in e.properties&&IntoBooleanResult(extends_check_Visit(e.properties["then"],t))===k.True}function Property(e,t){return extends_check_Visit(e,t)===k.False?k.False:type_IsOptional(e)&&!type_IsOptional(t)?k.False:k.True}function FromObjectRight(e,t){return type_IsUnknown(e)?k.False:type_IsAny(e)?k.Union:type_IsNever(e)||type_IsLiteralString(e)&&IsObjectStringLike(t)||type_IsLiteralNumber(e)&&IsObjectNumberLike(t)||type_IsLiteralBoolean(e)&&IsObjectBooleanLike(t)||type_IsSymbol(e)&&IsObjectSymbolLike(t)||type_IsBigInt(e)&&IsObjectBigIntLike(t)||type_IsString(e)&&IsObjectStringLike(t)||type_IsSymbol(e)&&IsObjectSymbolLike(t)||type_IsNumber(e)&&IsObjectNumberLike(t)||type_IsInteger(e)&&IsObjectNumberLike(t)||type_IsBoolean(e)&&IsObjectBooleanLike(t)||type_IsUint8Array(e)&&IsObjectUint8ArrayLike(t)||type_IsDate(e)&&IsObjectDateLike(t)||type_IsConstructor(e)&&IsObjectConstructorLike(t)||type_IsFunction(e)&&IsObjectFunctionLike(t)?k.True:type_IsRecord(e)&&type_IsString(RecordKey(e))?(()=>t[h]==="Record"?k.True:k.False)():type_IsRecord(e)&&type_IsNumber(RecordKey(e))?(()=>IsObjectPropertyCount(t,0)?k.True:k.False)():k.False}function FromObject(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):!type_IsObject(t)?k.False:(()=>{for(const r of Object.getOwnPropertyNames(t.properties)){if(!(r in e.properties)&&!type_IsOptional(t.properties[r])){return k.False}if(type_IsOptional(t.properties[r])){return k.True}if(Property(e.properties[r],t.properties[r])===k.False){return k.False}}return k.True})()}function extends_check_FromPromise(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)&&IsObjectPromiseLike(t)?k.True:!type_IsPromise(t)?k.False:IntoBooleanResult(extends_check_Visit(e.item,t.item))}function RecordKey(e){return T in e.patternProperties?number_Number():w in e.patternProperties?string_String():Throw("Unknown record key pattern")}function RecordValue(e){return T in e.patternProperties?e.patternProperties[T]:w in e.patternProperties?e.patternProperties[w]:Throw("Unable to get record value schema")}function FromRecordRight(e,t){const[r,n]=[RecordKey(t),RecordValue(t)];return type_IsLiteralString(e)&&type_IsNumber(r)&&IntoBooleanResult(extends_check_Visit(e,n))===k.True?k.True:type_IsUint8Array(e)&&type_IsNumber(r)?extends_check_Visit(e,n):type_IsString(e)&&type_IsNumber(r)?extends_check_Visit(e,n):type_IsArray(e)&&type_IsNumber(r)?extends_check_Visit(e,n):type_IsObject(e)?(()=>{for(const t of Object.getOwnPropertyNames(e.properties)){if(Property(n,e.properties[t])===k.False){return k.False}}return k.True})():k.False}function FromRecord(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):!type_IsRecord(t)?k.False:extends_check_Visit(RecordValue(e),RecordValue(t))}function FromRegExp(e,t){const r=type_IsRegExp(e)?string_String():e;const n=type_IsRegExp(t)?string_String():t;return extends_check_Visit(r,n)}function FromStringRight(e,t){return type_IsLiteral(e)&&value_IsString(e.const)?k.True:type_IsString(e)?k.True:k.False}function FromString(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsString(t)?k.True:k.False}function FromSymbol(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsSymbol(t)?k.True:k.False}function extends_check_FromTemplateLiteral(e,t){return type_IsTemplateLiteral(e)?extends_check_Visit(TemplateLiteralToUnion(e),t):type_IsTemplateLiteral(t)?extends_check_Visit(e,TemplateLiteralToUnion(t)):Throw("Invalid fallthrough for TemplateLiteral")}function IsArrayOfTuple(e,t){return type_IsArray(t)&&e.items!==undefined&&e.items.every((e=>extends_check_Visit(e,t.items)===k.True))}function FromTupleRight(e,t){return type_IsNever(e)?k.True:type_IsUnknown(e)?k.False:type_IsAny(e)?k.Union:k.False}function extends_check_FromTuple(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)&&IsObjectArrayLike(t)?k.True:type_IsArray(t)&&IsArrayOfTuple(e,t)?k.True:!type_IsTuple(t)?k.False:value_IsUndefined(e.items)&&!value_IsUndefined(t.items)||!value_IsUndefined(e.items)&&value_IsUndefined(t.items)?k.False:value_IsUndefined(e.items)&&!value_IsUndefined(t.items)?k.True:e.items.every(((e,r)=>extends_check_Visit(e,t.items[r])===k.True))?k.True:k.False}function FromUint8Array(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsUint8Array(t)?k.True:k.False}function FromUndefined(e,t){return IsStructuralRight(t)?StructuralRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsRecord(t)?FromRecordRight(e,t):type_IsVoid(t)?FromVoidRight(e,t):type_IsUndefined(t)?k.True:k.False}function FromUnionRight(e,t){return t.anyOf.some((t=>extends_check_Visit(e,t)===k.True))?k.True:k.False}function extends_check_FromUnion(e,t){return e.anyOf.every((e=>extends_check_Visit(e,t)===k.True))?k.True:k.False}function FromUnknownRight(e,t){return k.True}function FromUnknown(e,t){return type_IsNever(t)?FromNeverRight(e,t):type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)?FromUnionRight(e,t):type_IsAny(t)?FromAnyRight(e,t):type_IsString(t)?FromStringRight(e,t):type_IsNumber(t)?FromNumberRight(e,t):type_IsInteger(t)?FromIntegerRight(e,t):type_IsBoolean(t)?FromBooleanRight(e,t):type_IsArray(t)?FromArrayRight(e,t):type_IsTuple(t)?FromTupleRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsUnknown(t)?k.True:k.False}function FromVoidRight(e,t){return type_IsUndefined(e)?k.True:type_IsUndefined(e)?k.True:k.False}function FromVoid(e,t){return type_IsIntersect(t)?FromIntersectRight(e,t):type_IsUnion(t)?FromUnionRight(e,t):type_IsUnknown(t)?FromUnknownRight(e,t):type_IsAny(t)?FromAnyRight(e,t):type_IsObject(t)?FromObjectRight(e,t):type_IsVoid(t)?k.True:k.False}function extends_check_Visit(e,t){return type_IsTemplateLiteral(e)||type_IsTemplateLiteral(t)?extends_check_FromTemplateLiteral(e,t):type_IsRegExp(e)||type_IsRegExp(t)?FromRegExp(e,t):type_IsNot(e)||type_IsNot(t)?FromNot(e,t):type_IsAny(e)?FromAny(e,t):type_IsArray(e)?extends_check_FromArray(e,t):type_IsBigInt(e)?FromBigInt(e,t):type_IsBoolean(e)?FromBoolean(e,t):type_IsAsyncIterator(e)?FromAsyncIterator(e,t):type_IsConstructor(e)?FromConstructor(e,t):type_IsDate(e)?FromDate(e,t):type_IsFunction(e)?FromFunction(e,t):type_IsInteger(e)?FromInteger(e,t):type_IsIntersect(e)?extends_check_FromIntersect(e,t):type_IsIterator(e)?FromIterator(e,t):type_IsLiteral(e)?extends_check_FromLiteral(e,t):type_IsNever(e)?FromNever(e,t):type_IsNull(e)?FromNull(e,t):type_IsNumber(e)?FromNumber(e,t):type_IsObject(e)?FromObject(e,t):type_IsRecord(e)?FromRecord(e,t):type_IsString(e)?FromString(e,t):type_IsSymbol(e)?FromSymbol(e,t):type_IsTuple(e)?extends_check_FromTuple(e,t):type_IsPromise(e)?extends_check_FromPromise(e,t):type_IsUint8Array(e)?FromUint8Array(e,t):type_IsUndefined(e)?FromUndefined(e,t):type_IsUnion(e)?extends_check_FromUnion(e,t):type_IsUnknown(e)?FromUnknown(e,t):type_IsVoid(e)?FromVoid(e,t):Throw(`Unknown left type operand '${e[E]}'`)}function ExtendsCheck(e,t){return extends_check_Visit(e,t)}function exclude_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=Exclude(e[n],t);return r}function exclude_from_mapped_result_FromMappedResult(e,t){return exclude_from_mapped_result_FromProperties(e.properties,t)}function ExcludeFromMappedResult(e,t){const r=exclude_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function ExcludeFromTemplateLiteral(e,t){return Exclude(TemplateLiteralToUnion(e),t)}function ExcludeRest(e,t){const r=e.filter((e=>ExtendsCheck(e,t)===k.False));return r.length===1?r[0]:Union(r)}function Exclude(e,t,r={}){if(IsTemplateLiteral(e))return CreateType(ExcludeFromTemplateLiteral(e,t),r);if(IsMappedResult(e))return CreateType(ExcludeFromMappedResult(e,t),r);return CreateType(IsUnion(e)?ExcludeRest(e.anyOf,t):ExtendsCheck(e,t)!==k.False?Never():e,r)}function FromPropertyKey(e,t,r,n,s){return{[e]:Extends(Literal(e),t,r,n,Clone(s))}}function FromPropertyKeys(e,t,r,n,s){return e.reduce(((e,o)=>({...e,...FromPropertyKey(o,t,r,n,s)})),{})}function FromMappedKey(e,t,r,n,s){return FromPropertyKeys(e.keys,t,r,n,s)}function ExtendsFromMappedKey(e,t,r,n,s){const o=FromMappedKey(e,t,r,n,s);return MappedResult(o)}function extends_from_mapped_result_FromProperties(e,t,r,n,s){const o={};for(const i of globalThis.Object.getOwnPropertyNames(e))o[i]=Extends(e[i],t,r,n,Clone(s));return o}function extends_from_mapped_result_FromMappedResult(e,t,r,n,s){return extends_from_mapped_result_FromProperties(e.properties,t,r,n,s)}function ExtendsFromMappedResult(e,t,r,n,s){const o=extends_from_mapped_result_FromMappedResult(e,t,r,n,s);return MappedResult(o)}function ExtendsResolve(e,t,r,n){const s=ExtendsCheck(e,t);return s===k.Union?Union([r,n]):s===k.True?r:n}function Extends(e,t,r,n,s){return IsMappedResult(e)?ExtendsFromMappedResult(e,t,r,n,s):IsMappedKey(e)?CreateType(ExtendsFromMappedKey(e,t,r,n,s)):CreateType(ExtendsResolve(e,t,r,n),s)}function extract_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=Extract(e[n],t);return r}function extract_from_mapped_result_FromMappedResult(e,t){return extract_from_mapped_result_FromProperties(e.properties,t)}function ExtractFromMappedResult(e,t){const r=extract_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function ExtractFromTemplateLiteral(e,t){return Extract(TemplateLiteralToUnion(e),t)}function ExtractRest(e,t){const r=e.filter((e=>ExtendsCheck(e,t)!==k.False));return r.length===1?r[0]:Union(r)}function Extract(e,t,r){if(IsTemplateLiteral(e))return CreateType(ExtractFromTemplateLiteral(e,t),r);if(IsMappedResult(e))return CreateType(ExtractFromMappedResult(e,t),r);return CreateType(IsUnion(e)?ExtractRest(e.anyOf,t):ExtendsCheck(e,t)!==k.False?e:Never(),r)}function InstanceType(e,t){return CreateType(e.returns,t)}function Integer(e){return CreateType({[E]:"Integer",type:"integer"},e)}function*syntax_FromUnion(e){const t=e.trim().replace(/"|'/g,"");return t==="boolean"?yield boolean_Boolean():t==="number"?yield number_Number():t==="bigint"?yield bigint_BigInt():t==="string"?yield string_String():yield(()=>{const e=t.split("|").map((e=>Literal(e.trim())));return e.length===0?Never():e.length===1?e[0]:UnionEvaluated(e)})()}function*FromTerminal(e){if(e[1]!=="{"){const t=Literal("$");const r=FromSyntax(e.slice(1));return yield*[t,...r]}for(let t=2;tpattern_Visit(e,t))).join("|")})`:kind_IsNumber(e)?`${t}${C}`:kind_IsInteger(e)?`${t}${C}`:kind_IsBigInt(e)?`${t}${C}`:kind_IsString(e)?`${t}${Q}`:IsLiteral(e)?`${t}${Escape(e.const.toString())}`:kind_IsBoolean(e)?`${t}${y}`:(()=>{throw new TemplateLiteralPatternError(`Unexpected Kind '${e[E]}'`)})()}function TemplateLiteralPattern(e){return`^${e.map((e=>pattern_Visit(e,""))).join("")}$`}function TemplateLiteral(e,t){const r=value_IsString(e)?TemplateLiteralPattern(TemplateLiteralSyntax(e)):TemplateLiteralPattern(e);return CreateType({[E]:"TemplateLiteral",type:"string",pattern:r},t)}function MappedIntrinsicPropertyKey(e,t,r){return{[e]:Intrinsic(Literal(e),t,Clone(r))}}function MappedIntrinsicPropertyKeys(e,t,r){const n=e.reduce(((e,n)=>({...e,...MappedIntrinsicPropertyKey(n,t,r)})),{});return n}function MappedIntrinsicProperties(e,t,r){return MappedIntrinsicPropertyKeys(e["keys"],t,r)}function IntrinsicFromMappedKey(e,t,r){const n=MappedIntrinsicProperties(e,t,r);return MappedResult(n)}function ApplyUncapitalize(e){const[t,r]=[e.slice(0,1),e.slice(1)];return[t.toLowerCase(),r].join("")}function ApplyCapitalize(e){const[t,r]=[e.slice(0,1),e.slice(1)];return[t.toUpperCase(),r].join("")}function ApplyUppercase(e){return e.toUpperCase()}function ApplyLowercase(e){return e.toLowerCase()}function intrinsic_FromTemplateLiteral(e,t,r){const n=TemplateLiteralParseExact(e.pattern);const s=IsTemplateLiteralExpressionFinite(n);if(!s)return{...e,pattern:FromLiteralValue(e.pattern,t)};const o=[...TemplateLiteralExpressionGenerate(n)];const i=o.map((e=>Literal(e)));const a=intrinsic_FromRest(i,t);const A=Union(a);return TemplateLiteral([A],r)}function FromLiteralValue(e,t){return typeof e==="string"?t==="Uncapitalize"?ApplyUncapitalize(e):t==="Capitalize"?ApplyCapitalize(e):t==="Uppercase"?ApplyUppercase(e):t==="Lowercase"?ApplyLowercase(e):e:e.toString()}function intrinsic_FromRest(e,t){return e.map((e=>Intrinsic(e,t)))}function Intrinsic(e,t,r={}){return IsMappedKey(e)?IntrinsicFromMappedKey(e,t,r):IsTemplateLiteral(e)?intrinsic_FromTemplateLiteral(e,t,r):IsUnion(e)?Union(intrinsic_FromRest(e.anyOf,t),r):IsLiteral(e)?Literal(FromLiteralValue(e.const,t),r):CreateType(e,r)}function Capitalize(e,t={}){return Intrinsic(e,"Capitalize",t)}function Uncapitalize(e,t={}){return Intrinsic(e,"Uncapitalize",t)}function Lowercase(e,t={}){return Intrinsic(e,"Lowercase",t)}function Uppercase(e,t={}){return Intrinsic(e,"Uppercase",t)}function src_Iterator(e,t){return CreateType({[E]:"Iterator",type:"Iterator",items:e},t)}function keyof_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=KeyOf(e[n],Clone(t));return r}function keyof_from_mapped_result_FromMappedResult(e,t){return keyof_from_mapped_result_FromProperties(e.properties,t)}function KeyOfFromMappedResult(e,t){const r=keyof_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function keyof_FromComputed(e,t){return Computed("KeyOf",[Computed(e,t)])}function keyof_FromRef(e){return Computed("KeyOf",[Ref(e)])}function KeyOfFromType(e,t){const r=KeyOfPropertyKeys(e);const n=KeyOfPropertyKeysToRest(r);const s=UnionEvaluated(n);return CreateType(s,t)}function KeyOfPropertyKeysToRest(e){return e.map((e=>e==="[number]"?number_Number():Literal(e)))}function KeyOf(e,t){return IsComputed(e)?keyof_FromComputed(e.target,e.parameters):IsRef(e)?keyof_FromRef(e.$ref):IsMappedResult(e)?KeyOfFromMappedResult(e,t):KeyOfFromType(e,t)}function promise_Promise(e,t){return CreateType({[E]:"Promise",type:"Promise",item:e},t)}function mapped_FromMappedResult(e,t){return e in t?FromSchemaType(e,t[e]):MappedResult(t)}function MappedKeyToKnownMappedResultProperties(e){return{[e]:Literal(e)}}function MappedKeyToUnknownMappedResultProperties(e){const t={};for(const r of e)t[r]=Literal(r);return t}function MappedKeyToMappedResultProperties(e,t){return SetIncludes(t,e)?MappedKeyToKnownMappedResultProperties(e):MappedKeyToUnknownMappedResultProperties(t)}function mapped_FromMappedKey(e,t){const r=MappedKeyToMappedResultProperties(e,t);return mapped_FromMappedResult(e,r)}function mapped_FromRest(e,t){return t.map((t=>FromSchemaType(e,t)))}function mapped_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(t))r[n]=FromSchemaType(e,t[n]);return r}function FromSchemaType(e,t){const r={...t};return IsOptional(t)?Optional(FromSchemaType(e,Discard(t,[g]))):IsReadonly(t)?Readonly(FromSchemaType(e,Discard(t,[d]))):IsMappedResult(t)?mapped_FromMappedResult(e,t.properties):IsMappedKey(t)?mapped_FromMappedKey(e,t.keys):IsConstructor(t)?Constructor(mapped_FromRest(e,t.parameters),FromSchemaType(e,t.returns),r):kind_IsFunction(t)?function_Function(mapped_FromRest(e,t.parameters),FromSchemaType(e,t.returns),r):kind_IsAsyncIterator(t)?src_AsyncIterator(FromSchemaType(e,t.items),r):kind_IsIterator(t)?src_Iterator(FromSchemaType(e,t.items),r):IsIntersect(t)?Intersect(mapped_FromRest(e,t.allOf),r):IsUnion(t)?Union(mapped_FromRest(e,t.anyOf),r):IsTuple(t)?Tuple(mapped_FromRest(e,t.items??[]),r):kind_IsObject(t)?I(mapped_FromProperties(e,t.properties),r):kind_IsArray(t)?array_Array(FromSchemaType(e,t.items),r):kind_IsPromise(t)?promise_Promise(FromSchemaType(e,t.item),r):t}function MappedFunctionReturnType(e,t){const r={};for(const n of e)r[n]=FromSchemaType(n,t);return r}function Mapped(e,t,r){const n=IsSchema(e)?IndexPropertyKeys(e):e;const s=t({[E]:"MappedKey",keys:n});const o=MappedFunctionReturnType(n,s);return I(o,r)}function omit_from_mapped_key_FromPropertyKey(e,t,r){return{[t]:Omit(e,[t],Clone(r))}}function omit_from_mapped_key_FromPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...omit_from_mapped_key_FromPropertyKey(e,n,r)})),{})}function omit_from_mapped_key_FromMappedKey(e,t,r){return omit_from_mapped_key_FromPropertyKeys(e,t.keys,r)}function OmitFromMappedKey(e,t,r){const n=omit_from_mapped_key_FromMappedKey(e,t,r);return MappedResult(n)}function omit_from_mapped_result_FromProperties(e,t,r){const n={};for(const s of globalThis.Object.getOwnPropertyNames(e))n[s]=Omit(e[s],t,Clone(r));return n}function omit_from_mapped_result_FromMappedResult(e,t,r){return omit_from_mapped_result_FromProperties(e.properties,t,r)}function OmitFromMappedResult(e,t,r){const n=omit_from_mapped_result_FromMappedResult(e,t,r);return MappedResult(n)}function omit_FromIntersect(e,t){return e.map((e=>OmitResolve(e,t)))}function omit_FromUnion(e,t){return e.map((e=>OmitResolve(e,t)))}function omit_FromProperty(e,t){const{[t]:r,...n}=e;return n}function omit_FromProperties(e,t){return t.reduce(((e,t)=>omit_FromProperty(e,t)),e)}function omit_FromObject(e,t){const r=Discard(e,[p,"$id","required","properties"]);const n=omit_FromProperties(e["properties"],t);return I(n,r)}function omit_UnionFromPropertyKeys(e){const t=e.reduce(((e,t)=>IsLiteralValue(t)?[...e,Literal(t)]:e),[]);return Union(t)}function OmitResolve(e,t){return IsIntersect(e)?Intersect(omit_FromIntersect(e.allOf,t)):IsUnion(e)?Union(omit_FromUnion(e.anyOf,t)):kind_IsObject(e)?omit_FromObject(e,t):I({})}function Omit(e,t,r){const n=value_IsArray(t)?omit_UnionFromPropertyKeys(t):t;const s=IsSchema(t)?IndexPropertyKeys(t):t;const o=IsRef(e);const i=IsRef(t);return IsMappedResult(e)?OmitFromMappedResult(e,s,r):IsMappedKey(t)?OmitFromMappedKey(e,t,r):o&&i?Computed("Omit",[e,n],r):!o&&i?Computed("Omit",[e,n],r):o&&!i?Computed("Omit",[e,n],r):CreateType({...OmitResolve(e,s),...r})}function pick_from_mapped_key_FromPropertyKey(e,t,r){return{[t]:Pick(e,[t],Clone(r))}}function pick_from_mapped_key_FromPropertyKeys(e,t,r){return t.reduce(((t,n)=>({...t,...pick_from_mapped_key_FromPropertyKey(e,n,r)})),{})}function pick_from_mapped_key_FromMappedKey(e,t,r){return pick_from_mapped_key_FromPropertyKeys(e,t.keys,r)}function PickFromMappedKey(e,t,r){const n=pick_from_mapped_key_FromMappedKey(e,t,r);return MappedResult(n)}function pick_from_mapped_result_FromProperties(e,t,r){const n={};for(const s of globalThis.Object.getOwnPropertyNames(e))n[s]=Pick(e[s],t,Clone(r));return n}function pick_from_mapped_result_FromMappedResult(e,t,r){return pick_from_mapped_result_FromProperties(e.properties,t,r)}function PickFromMappedResult(e,t,r){const n=pick_from_mapped_result_FromMappedResult(e,t,r);return MappedResult(n)}function pick_FromIntersect(e,t){return e.map((e=>PickResolve(e,t)))}function pick_FromUnion(e,t){return e.map((e=>PickResolve(e,t)))}function pick_FromProperties(e,t){const r={};for(const n of t)if(n in e)r[n]=e[n];return r}function pick_FromObject(e,t){const r=Discard(e,[p,"$id","required","properties"]);const n=pick_FromProperties(e["properties"],t);return I(n,r)}function pick_UnionFromPropertyKeys(e){const t=e.reduce(((e,t)=>IsLiteralValue(t)?[...e,Literal(t)]:e),[]);return Union(t)}function PickResolve(e,t){return IsIntersect(e)?Intersect(pick_FromIntersect(e.allOf,t)):IsUnion(e)?Union(pick_FromUnion(e.anyOf,t)):kind_IsObject(e)?pick_FromObject(e,t):I({})}function Pick(e,t,r){const n=value_IsArray(t)?pick_UnionFromPropertyKeys(t):t;const s=IsSchema(t)?IndexPropertyKeys(t):t;const o=IsRef(e);const i=IsRef(t);return IsMappedResult(e)?PickFromMappedResult(e,s,r):IsMappedKey(t)?PickFromMappedKey(e,t,r):o&&i?Computed("Pick",[e,n],r):!o&&i?Computed("Pick",[e,n],r):o&&!i?Computed("Pick",[e,n],r):CreateType({...PickResolve(e,s),...r})}function partial_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=Partial(e[n],Clone(t));return r}function partial_from_mapped_result_FromMappedResult(e,t){return partial_from_mapped_result_FromProperties(e.properties,t)}function PartialFromMappedResult(e,t){const r=partial_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function partial_FromComputed(e,t){return Computed("Partial",[Computed(e,t)])}function partial_FromRef(e){return Computed("Partial",[Ref(e)])}function partial_FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=Optional(e[r]);return t}function partial_FromObject(e){const t=Discard(e,[p,"$id","required","properties"]);const r=partial_FromProperties(e["properties"]);return I(r,t)}function partial_FromRest(e){return e.map((e=>PartialResolve(e)))}function PartialResolve(e){return IsComputed(e)?partial_FromComputed(e.target,e.parameters):IsRef(e)?partial_FromRef(e.$ref):IsIntersect(e)?Intersect(partial_FromRest(e.allOf)):IsUnion(e)?Union(partial_FromRest(e.anyOf)):kind_IsObject(e)?partial_FromObject(e):I({})}function Partial(e,t){if(IsMappedResult(e)){return PartialFromMappedResult(e,t)}else{return CreateType({...PartialResolve(e),...t})}}function RecordCreateFromPattern(e,t,r){return CreateType({[E]:"Record",type:"object",patternProperties:{[e]:t}},r)}function RecordCreateFromKeys(e,t,r){const n={};for(const r of e)n[r]=t;return I(n,{...r,[h]:"Record"})}function FromTemplateLiteralKey(e,t,r){return IsTemplateLiteralFinite(e)?RecordCreateFromKeys(IndexPropertyKeys(e),t,r):RecordCreateFromPattern(e.pattern,t,r)}function FromUnionKey(e,t,r){return RecordCreateFromKeys(IndexPropertyKeys(Union(e)),t,r)}function FromLiteralKey(e,t,r){return RecordCreateFromKeys([e.toString()],t,r)}function FromRegExpKey(e,t,r){return RecordCreateFromPattern(e.source,t,r)}function FromStringKey(e,t,r){const n=value_IsUndefined(e.pattern)?w:e.pattern;return RecordCreateFromPattern(n,t,r)}function FromAnyKey(e,t,r){return RecordCreateFromPattern(w,t,r)}function FromNeverKey(e,t,r){return RecordCreateFromPattern(v,t,r)}function FromIntegerKey(e,t,r){return RecordCreateFromPattern(T,t,r)}function FromNumberKey(e,t,r){return RecordCreateFromPattern(T,t,r)}function Record(e,t,r={}){return IsRef(t)?Computed("Record",[e,t]):IsRef(e)?Computed("Record",[e,t]):IsUnion(e)?FromUnionKey(e.anyOf,t,r):IsTemplateLiteral(e)?FromTemplateLiteralKey(e,t,r):IsLiteral(e)?FromLiteralKey(e.const,t,r):kind_IsInteger(e)?FromIntegerKey(e,t,r):kind_IsNumber(e)?FromNumberKey(e,t,r):kind_IsRegExp(e)?FromRegExpKey(e,t,r):kind_IsString(e)?FromStringKey(e,t,r):IsAny(e)?FromAnyKey(e,t,r):IsNever(e)?FromNeverKey(e,t,r):Never(r)}function required_from_mapped_result_FromProperties(e,t){const r={};for(const n of globalThis.Object.getOwnPropertyNames(e))r[n]=Required(e[n],t);return r}function required_from_mapped_result_FromMappedResult(e,t){return required_from_mapped_result_FromProperties(e.properties,t)}function RequiredFromMappedResult(e,t){const r=required_from_mapped_result_FromMappedResult(e,t);return MappedResult(r)}function required_FromComputed(e,t){return Computed("Required",[Computed(e,t)])}function required_FromRef(e){return Computed("Required",[Ref(e)])}function required_FromProperties(e){const t={};for(const r of globalThis.Object.getOwnPropertyNames(e))t[r]=Discard(e[r],[g]);return t}function required_FromObject(e){const t=Discard(e,[p,"$id","required","properties"]);const r=required_FromProperties(e["properties"]);return I(r,t)}function required_FromRest(e){return e.map((e=>RequiredResolve(e)))}function RequiredResolve(e){return IsComputed(e)?required_FromComputed(e.target,e.parameters):IsRef(e)?required_FromRef(e.$ref):IsIntersect(e)?Intersect(required_FromRest(e.allOf)):IsUnion(e)?Union(required_FromRest(e.anyOf)):kind_IsObject(e)?required_FromObject(e):I({})}function Required(e,t){if(IsMappedResult(e)){return RequiredFromMappedResult(e,t)}else{return CreateType({...RequiredResolve(e),...t})}}function DerefParameters(e,t){return t.map((t=>IsRef(t)?Deref(e,t.$ref):compute_FromType(e,t)))}function Deref(e,t){return t in e?IsRef(e[t])?Deref(e,e[t].$ref):compute_FromType(e,e[t]):Never()}function FromAwaited(e){return Awaited(e[0])}function FromIndex(e){return Index(e[0],e[1])}function FromKeyOf(e){return KeyOf(e[0])}function FromPartial(e){return Partial(e[0])}function FromOmit(e){return Omit(e[0],e[1])}function FromPick(e){return Pick(e[0],e[1])}function compute_FromRecord(e){return Record(e[0],e[1])}function FromRequired(e){return Required(e[0])}function compute_FromComputed(e,t,r){const n=DerefParameters(e,r);return t==="Awaited"?FromAwaited(n):t==="Index"?FromIndex(n):t==="KeyOf"?FromKeyOf(n):t==="Partial"?FromPartial(n):t==="Omit"?FromOmit(n):t==="Pick"?FromPick(n):t==="Record"?compute_FromRecord(n):t==="Required"?FromRequired(n):Never()}function compute_FromObject(e,t){return I(globalThis.Object.keys(t).reduce(((r,n)=>({...r,[n]:compute_FromType(e,t[n])})),{}))}function compute_FromConstructor(e,t,r){return Constructor(compute_FromRest(e,t),compute_FromType(e,r))}function compute_FromFunction(e,t,r){return function_Function(compute_FromRest(e,t),compute_FromType(e,r))}function compute_FromTuple(e,t){return Tuple(compute_FromRest(e,t))}function compute_FromIntersect(e,t){return Intersect(compute_FromRest(e,t))}function compute_FromUnion(e,t){return Union(compute_FromRest(e,t))}function compute_FromArray(e,t){return array_Array(compute_FromType(e,t))}function compute_FromAsyncIterator(e,t){return src_AsyncIterator(compute_FromType(e,t))}function compute_FromIterator(e,t){return src_Iterator(compute_FromType(e,t))}function compute_FromRest(e,t){return t.map((t=>compute_FromType(e,t)))}function compute_FromType(e,t){return IsComputed(t)?CreateType(compute_FromComputed(e,t.target,t.parameters)):kind_IsObject(t)?CreateType(compute_FromObject(e,t.properties),t):IsConstructor(t)?CreateType(compute_FromConstructor(e,t.parameters,t.returns),t):kind_IsFunction(t)?CreateType(compute_FromFunction(e,t.parameters,t.returns),t):IsTuple(t)?CreateType(compute_FromTuple(e,t.items||[]),t):IsIntersect(t)?CreateType(compute_FromIntersect(e,t.allOf),t):IsUnion(t)?CreateType(compute_FromUnion(e,t.anyOf),t):kind_IsArray(t)?CreateType(compute_FromArray(e,t.items),t):kind_IsAsyncIterator(t)?CreateType(compute_FromAsyncIterator(e,t.items),t):kind_IsIterator(t)?CreateType(compute_FromIterator(e,t.items),t):t}function ComputeType(e,t){return t in e?compute_FromType(e,e[t]):Never()}function ComputeModuleProperties(e){return globalThis.Object.getOwnPropertyNames(e).reduce(((t,r)=>({...t,[r]:ComputeType(e,r)})),{})}class TModule{constructor(e){const t=ComputeModuleProperties(e);const r=this.WithIdentifiers(t);this.$defs=r}Import(e,t){return CreateType({[E]:"Import",$defs:this.$defs,$ref:e},t)}WithIdentifiers(e){return globalThis.Object.getOwnPropertyNames(e).reduce(((t,r)=>({...t,[r]:{...e[r],$id:r}})),{})}}function Module(e){return new TModule(e)}function Not(e,t){return CreateType({[E]:"Not",not:e},t)}function Parameters(e,t){return Tuple(e.parameters,t)}function ReadonlyOptional(e){return Readonly(Optional(e))}function CloneRest(e){return e.map((e=>CloneType(e)))}function CloneType(e,t){return t===undefined?Clone(e):Clone({...t,...e})}let D=0;function Recursive(e,t={}){if(value_IsUndefined(t.$id))t.$id=`T${D++}`;const r=CloneType(e({[E]:"This",$ref:`${t.$id}`}));r.$id=t.$id;return CreateType({[h]:"Recursive",...r},t)}function regexp_RegExp(e,t){const r=value_IsString(e)?new globalThis.RegExp(e):e;return CreateType({[E]:"RegExp",type:"RegExp",source:r.source,flags:r.flags},t)}function RestResolve(e){return IsIntersect(e)?e.allOf:IsUnion(e)?e.anyOf:IsTuple(e)?e.items??[]:[]}function Rest(e){return RestResolve(e)}function ReturnType(e,t){return CreateType(e.returns,t)}class TransformDecodeBuilder{constructor(e){this.schema=e}Decode(e){return new TransformEncodeBuilder(this.schema,e)}}class TransformEncodeBuilder{constructor(e,t){this.schema=e;this.decode=t}EncodeTransform(e,t){const Encode=r=>t[p].Encode(e(r));const Decode=e=>this.decode(t[p].Decode(e));const r={Encode:Encode,Decode:Decode};return{...t,[p]:r}}EncodeSchema(e,t){const r={Decode:this.decode,Encode:e};return{...t,[p]:r}}Encode(e){return IsTransform(this.schema)?this.EncodeTransform(e,this.schema):this.EncodeSchema(e,this.schema)}}function Transform(e){return new TransformDecodeBuilder(e)}function Unsafe(e={}){return CreateType({[E]:e[E]??"Unsafe"},e)}function Void(e){return CreateType({[E]:"Void",type:"void"},e)}const _=s;var parseBody=async(e,t=Object.create(null))=>{const{all:r=false,dot:n=false}=t;const s=e instanceof O?e.raw.headers:e.headers;const o=s.get("Content-Type");if(o?.startsWith("multipart/form-data")||o?.startsWith("application/x-www-form-urlencoded")){return parseFormData(e,{all:r,dot:n})}return{}};async function parseFormData(e,t){const r=await e.formData();if(r){return convertFormDataToBodyData(r,t)}return{}}function convertFormDataToBodyData(e,t){const r=Object.create(null);e.forEach(((e,n)=>{const s=t.all||n.endsWith("[]");if(!s){r[n]=e}else{handleParsingAllValues(r,n,e)}}));if(t.dot){Object.entries(r).forEach((([e,t])=>{const n=e.includes(".");if(n){handleParsingNestedValues(r,e,t);delete r[e]}}))}return r}var handleParsingAllValues=(e,t,r)=>{if(e[t]!==void 0){if(Array.isArray(e[t])){e[t].push(r)}else{e[t]=[e[t],r]}}else{e[t]=r}};var handleParsingNestedValues=(e,t,r)=>{let n=e;const s=t.split(".");s.forEach(((e,t)=>{if(t===s.length-1){n[e]=r}else{if(!n[e]||typeof n[e]!=="object"||Array.isArray(n[e])||n[e]instanceof File){n[e]=Object.create(null)}n=n[e]}}))};var splitPath=e=>{const t=e.split("/");if(t[0]===""){t.shift()}return t};var splitRoutingPath=e=>{const{groups:t,path:r}=extractGroupsFromPath(e);const n=splitPath(r);return replaceGroupMarks(n,t)};var extractGroupsFromPath=e=>{const t=[];e=e.replace(/\{[^}]+\}/g,((e,r)=>{const n=`@${r}`;t.push([n,e]);return n}));return{groups:t,path:e}};var replaceGroupMarks=(e,t)=>{for(let r=t.length-1;r>=0;r--){const[n]=t[r];for(let s=e.length-1;s>=0;s--){if(e[s].includes(n)){e[s]=e[s].replace(n,t[r][1]);break}}}return e};var S={};var getPattern=e=>{if(e==="*"){return"*"}const t=e.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(t){if(!S[e]){if(t[2]){S[e]=[e,t[1],new RegExp("^"+t[2]+"$")]}else{S[e]=[e,t[1],true]}}return S[e]}return null};var tryDecode=(e,t)=>{try{return t(e)}catch{return e.replace(/(?:%[0-9A-Fa-f]{2})+/g,(e=>{try{return t(e)}catch{return e}}))}};var tryDecodeURI=e=>tryDecode(e,decodeURI);var getPath=e=>{const t=e.url;const r=t.indexOf("/",8);let n=r;for(;n{const t=e.indexOf("?",8);return t===-1?"":"?"+e.slice(t+1)};var getPathNoStrict=e=>{const t=getPath(e);return t.length>1&&t[t.length-1]==="/"?t.slice(0,-1):t};var mergePath=(...e)=>{let t="";let r=false;for(let n of e){if(t[t.length-1]==="/"){t=t.slice(0,-1);r=true}if(n[0]!=="/"){n=`/${n}`}if(n==="/"&&r){t=`${t}/`}else if(n!=="/"){t=`${t}${n}`}if(n==="/"&&t===""){t="/"}}return t};var checkOptionalParameter=e=>{if(!e.match(/\:.+\?$/)){return null}const t=e.split("/");const r=[];let n="";t.forEach((e=>{if(e!==""&&!/\:/.test(e)){n+="/"+e}else if(/\:/.test(e)){if(/\?/.test(e)){if(r.length===0&&n===""){r.push("/")}else{r.push(n)}const t=e.replace("?","");n+="/"+t;r.push(n)}else{n+="/"+e}}}));return r.filter(((e,t,r)=>r.indexOf(e)===t))};var _decodeURI=e=>{if(!/[%+]/.test(e)){return e}if(e.indexOf("+")!==-1){e=e.replace(/\+/g," ")}return e.indexOf("%")!==-1?N(e):e};var _getQueryParam=(e,t,r)=>{let n;if(!r&&t&&!/[%+]/.test(t)){let r=e.indexOf(`?${t}`,8);if(r===-1){r=e.indexOf(`&${t}`,8)}while(r!==-1){const n=e.charCodeAt(r+t.length+1);if(n===61){const n=r+t.length+2;const s=e.indexOf("&",n);return _decodeURI(e.slice(n,s===-1?void 0:s))}else if(n==38||isNaN(n)){return""}r=e.indexOf(`&${t}`,r+1)}n=/[%+]/.test(e);if(!n){return void 0}}const s={};n??=/[%+]/.test(e);let o=e.indexOf("?",8);while(o!==-1){const t=e.indexOf("&",o+1);let i=e.indexOf("=",o);if(i>t&&t!==-1){i=-1}let a=e.slice(o+1,i===-1?t===-1?void 0:t:i);if(n){a=_decodeURI(a)}o=t;if(a===""){continue}let A;if(i===-1){A=""}else{A=e.slice(i+1,t===-1?void 0:t);if(n){A=_decodeURI(A)}}if(r){if(!(s[a]&&Array.isArray(s[a]))){s[a]=[]}s[a].push(A)}else{s[a]??=A}}return t?s[t]:s};var F=_getQueryParam;var getQueryParams=(e,t)=>_getQueryParam(e,t,true);var N=decodeURIComponent;var tryDecodeURIComponent=e=>tryDecode(e,N);var O=class{raw;#h;#E;routeIndex=0;path;bodyCache={};constructor(e,t="/",r=[[]]){this.raw=e;this.path=t;this.#E=r;this.#h={}}param(e){return e?this.#m(e):this.#I()}#m(e){const t=this.#E[0][this.routeIndex][1][e];const r=this.#y(t);return r?/\%/.test(r)?tryDecodeURIComponent(r):r:void 0}#I(){const e={};const t=Object.keys(this.#E[0][this.routeIndex][1]);for(const r of t){const t=this.#y(this.#E[0][this.routeIndex][1][r]);if(t&&typeof t==="string"){e[r]=/\%/.test(t)?tryDecodeURIComponent(t):t}}return e}#y(e){return this.#E[1]?this.#E[1][e]:e}query(e){return F(this.url,e)}queries(e){return getQueryParams(this.url,e)}header(e){if(e){return this.raw.headers.get(e.toLowerCase())??void 0}const t={};this.raw.headers.forEach(((e,r)=>{t[r]=e}));return t}async parseBody(e){return this.bodyCache.parsedBody??=await parseBody(this,e)}#C=e=>{const{bodyCache:t,raw:r}=this;const n=t[e];if(n){return n}const s=Object.keys(t)[0];if(s){return t[s].then((t=>{if(s==="json"){t=JSON.stringify(t)}return new Response(t)[e]()}))}return t[e]=r[e]()};json(){return this.#C("json")}text(){return this.#C("text")}arrayBuffer(){return this.#C("arrayBuffer")}blob(){return this.#C("blob")}formData(){return this.#C("formData")}addValidatedData(e,t){this.#h[e]=t}valid(e){return this.#h[e]}get url(){return this.raw.url}get method(){return this.raw.method}get matchedRoutes(){return this.#E[0].map((([[,e]])=>e))}get routePath(){return this.#E[0].map((([[,e]])=>e))[this.routeIndex].path}};var L={Stringify:1,BeforeStream:2,Stream:3};var raw=(e,t)=>{const r=new String(e);r.isEscaped=true;r.callbacks=t;return r};var U=/[&<>'"]/;var stringBufferToString=async(e,t)=>{let r="";t||=[];const n=await Promise.all(e);for(let e=n.length-1;;e--){r+=n[e];e--;if(e<0){break}let s=n[e];if(typeof s==="object"){t.push(...s.callbacks||[])}const o=s.isEscaped;s=await(typeof s==="object"?s.toString():s);if(typeof s==="object"){t.push(...s.callbacks||[])}if(s.isEscaped??o){r+=s}else{const e=[r];escapeToBuffer(s,e);r=e[0]}}return raw(r,t)};var escapeToBuffer=(e,t)=>{const r=e.search(U);if(r===-1){t[0]+=e;return}let n;let s;let o=0;for(s=r;s{const t=e.callbacks;if(!t?.length){return e}const r=[e];const n={};t.forEach((e=>e({phase:L.Stringify,buffer:r,context:n})));return r[0]};var resolveCallback=async(e,t,r,n,s)=>{if(typeof e==="object"&&!(e instanceof String)){if(!(e instanceof Promise)){e=e.toString()}if(e instanceof Promise){e=await e}}const o=e.callbacks;if(!o?.length){return Promise.resolve(e)}if(s){s[0]+=e}else{s=[e]}const i=Promise.all(o.map((e=>e({phase:t,buffer:s,context:n})))).then((e=>Promise.all(e.filter(Boolean).map((e=>resolveCallback(e,t,false,n,s)))).then((()=>s[0]))));if(r){return raw(await i,o)}else{return i}};var G="text/plain; charset=UTF-8";var setHeaders=(e,t={})=>{for(const r of Object.keys(t)){e.set(r,t[r])}return e};var P=class{#Q;#B;env={};#b;finalized=false;error;#T=200;#w;#v;#R;#k;#D=true;#_;#S;#F;#E;#N;constructor(e,t){this.#Q=e;if(t){this.#w=t.executionCtx;this.env=t.env;this.#F=t.notFoundHandler;this.#N=t.path;this.#E=t.matchResult}}get req(){this.#B??=new O(this.#Q,this.#N,this.#E);return this.#B}get event(){if(this.#w&&"respondWith"in this.#w){return this.#w}else{throw Error("This context has no FetchEvent")}}get executionCtx(){if(this.#w){return this.#w}else{throw Error("This context has no ExecutionContext")}}get res(){this.#D=false;return this.#k||=new Response("404 Not Found",{status:404})}set res(e){this.#D=false;if(this.#k&&e){try{for(const[t,r]of this.#k.headers.entries()){if(t==="content-type"){continue}if(t==="set-cookie"){const t=this.#k.headers.getSetCookie();e.headers.delete("set-cookie");for(const r of t){e.headers.append("set-cookie",r)}}else{e.headers.set(t,r)}}}catch(t){if(t instanceof TypeError&&t.message.includes("immutable")){this.res=new Response(e.body,{headers:e.headers,status:e.status});return}else{throw t}}}this.#k=e;this.finalized=true}render=(...e)=>{this.#S??=e=>this.html(e);return this.#S(...e)};setLayout=e=>this.#_=e;getLayout=()=>this.#_;setRenderer=e=>{this.#S=e};header=(e,t,r)=>{if(t===void 0){if(this.#v){this.#v.delete(e)}else if(this.#R){delete this.#R[e.toLocaleLowerCase()]}if(this.finalized){this.res.headers.delete(e)}return}if(r?.append){if(!this.#v){this.#D=false;this.#v=new Headers(this.#R);this.#R={}}this.#v.append(e,t)}else{if(this.#v){this.#v.set(e,t)}else{this.#R??={};this.#R[e.toLowerCase()]=t}}if(this.finalized){if(r?.append){this.res.headers.append(e,t)}else{this.res.headers.set(e,t)}}};status=e=>{this.#D=false;this.#T=e};set=(e,t)=>{this.#b??=new Map;this.#b.set(e,t)};get=e=>this.#b?this.#b.get(e):void 0;get var(){if(!this.#b){return{}}return Object.fromEntries(this.#b)}#O(e,t,r){if(this.#D&&!r&&!t&&this.#T===200){return new Response(e,{headers:this.#R})}if(t&&typeof t!=="number"){const r=new Headers(t.headers);if(this.#v){this.#v.forEach(((e,t)=>{if(t==="set-cookie"){r.append(t,e)}else{r.set(t,e)}}))}const n=setHeaders(r,this.#R);return new Response(e,{headers:n,status:t.status??this.#T})}const n=typeof t==="number"?t:this.#T;this.#R??={};this.#v??=new Headers;setHeaders(this.#v,this.#R);if(this.#k){this.#k.headers.forEach(((e,t)=>{if(t==="set-cookie"){this.#v?.append(t,e)}else{this.#v?.set(t,e)}}));setHeaders(this.#v,this.#R)}r??={};for(const[e,t]of Object.entries(r)){if(typeof t==="string"){this.#v.set(e,t)}else{this.#v.delete(e);for(const r of t){this.#v.append(e,r)}}}return new Response(e,{status:n,headers:this.#v})}newResponse=(...e)=>this.#O(...e);body=(e,t,r)=>typeof t==="number"?this.#O(e,t,r):this.#O(e,t);text=(e,t,r)=>{if(!this.#R){if(this.#D&&!r&&!t){return new Response(e)}this.#R={}}this.#R["content-type"]=G;return typeof t==="number"?this.#O(e,t,r):this.#O(e,t)};json=(e,t,r)=>{const n=JSON.stringify(e);this.#R??={};this.#R["content-type"]="application/json; charset=UTF-8";return typeof t==="number"?this.#O(n,t,r):this.#O(n,t)};html=(e,t,r)=>{this.#R??={};this.#R["content-type"]="text/html; charset=UTF-8";if(typeof e==="object"){return resolveCallback(e,L.Stringify,false,{}).then((e=>typeof t==="number"?this.#O(e,t,r):this.#O(e,t)))}return typeof t==="number"?this.#O(e,t,r):this.#O(e,t)};redirect=(e,t)=>{this.#v??=new Headers;this.#v.set("Location",String(e));return this.newResponse(null,t??302)};notFound=()=>{this.#F??=()=>new Response;return this.#F(this)}};var compose=(e,t,r)=>(n,s)=>{let o=-1;const i=n instanceof P;return dispatch(0);async function dispatch(a){if(a<=o){throw new Error("next() called multiple times")}o=a;let A;let c=false;let u;if(e[a]){u=e[a][0][0];if(i){n.req.routeIndex=a}}else{u=a===e.length&&s||void 0}if(!u){if(i&&n.finalized===false&&r){A=await r(n)}}else{try{A=await u(n,(()=>dispatch(a+1)))}catch(e){if(e instanceof Error&&i&&t){n.error=e;A=await t(e,n);c=true}else{throw e}}}if(A&&(n.finalized===false||c)){n.res=A}return n}};var M="ALL";var x="all";var V=["get","post","put","delete","options","patch"];var j="Can not add a route since the matcher is already built.";var H=class extends Error{};var Y=Symbol("composedHandler");var notFoundHandler=e=>e.text("404 Not Found",404);var errorHandler=(e,t)=>{if("getResponse"in e){return e.getResponse()}console.error(e);return t.text("Internal Server Error",500)};var q=class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#N="/";routes=[];constructor(e={}){const t=[...V,x];t.forEach((e=>{this[e]=(t,...r)=>{if(typeof t==="string"){this.#N=t}else{this.#L(e,this.#N,t)}r.forEach((t=>{this.#L(e,this.#N,t)}));return this}}));this.on=(e,t,...r)=>{for(const n of[t].flat()){this.#N=n;for(const t of[e].flat()){r.map((e=>{this.#L(t.toUpperCase(),this.#N,e)}))}}return this};this.use=(e,...t)=>{if(typeof e==="string"){this.#N=e}else{this.#N="*";t.unshift(e)}t.forEach((e=>{this.#L(M,this.#N,e)}));return this};const r=e.strict??true;delete e.strict;Object.assign(this,e);this.getPath=r?e.getPath??getPath:getPathNoStrict}#U(){const e=new q({router:this.router,getPath:this.getPath});e.routes=this.routes;return e}#F=notFoundHandler;errorHandler=errorHandler;route(e,t){const r=this.basePath(e);t.routes.map((e=>{let n;if(t.errorHandler===errorHandler){n=e.handler}else{n=async(r,n)=>(await compose([],t.errorHandler)(r,(()=>e.handler(r,n)))).res;n[Y]=e.handler}r.#L(e.method,e.path,n)}));return this}basePath(e){const t=this.#U();t._basePath=mergePath(this._basePath,e);return t}onError=e=>{this.errorHandler=e;return this};notFound=e=>{this.#F=e;return this};mount(e,t,r){let n;let s;if(r){if(typeof r==="function"){s=r}else{s=r.optionHandler;n=r.replaceRequest}}const o=s?e=>{const t=s(e);return Array.isArray(t)?t:[t]}:e=>{let t=void 0;try{t=e.executionCtx}catch{}return[e.env,t]};n||=(()=>{const t=mergePath(this._basePath,e);const r=t==="/"?0:t.length;return e=>{const t=new URL(e.url);t.pathname=t.pathname.slice(r)||"/";return new Request(t,e)}})();const handler=async(e,r)=>{const s=await t(n(e.req.raw),...o(e));if(s){return s}await r()};this.#L(M,mergePath(e,"*"),handler);return this}#L(e,t,r){e=e.toUpperCase();t=mergePath(this._basePath,t);const n={path:t,method:e,handler:r};this.router.add(e,t,[r,n]);this.routes.push(n)}#G(e,t){if(e instanceof Error){return this.errorHandler(e,t)}throw e}#P(e,t,r,n){if(n==="HEAD"){return(async()=>new Response(null,await this.#P(e,t,r,"GET")))()}const s=this.getPath(e,{env:r});const o=this.router.match(n,s);const i=new P(e,{path:s,matchResult:o,env:r,executionCtx:t,notFoundHandler:this.#F});if(o[0].length===1){let e;try{e=o[0][0][0][0](i,(async()=>{i.res=await this.#F(i)}))}catch(e){return this.#G(e,i)}return e instanceof Promise?e.then((e=>e||(i.finalized?i.res:this.#F(i)))).catch((e=>this.#G(e,i))):e??this.#F(i)}const a=compose(o[0],this.errorHandler,this.#F);return(async()=>{try{const e=await a(i);if(!e.finalized){throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?")}return e.res}catch(e){return this.#G(e,i)}})()}fetch=(e,...t)=>this.#P(e,t[1],t[0],e.method);request=(e,t,r,n)=>{if(e instanceof Request){return this.fetch(t?new Request(e,t):e,r,n)}e=e.toString();return this.fetch(new Request(/^https?:\/\//.test(e)?e:`http://localhost${mergePath("/",e)}`,t),r,n)};fire=()=>{addEventListener("fetch",(e=>{e.respondWith(this.#P(e.request,e,void 0,e.request.method))}))}};var J="[^/]+";var W=".*";var K="(?:|/.*)";var $=Symbol();var z=new Set(".\\+*[^]$()");function compareKey(e,t){if(e.length===1){return t.length===1?ee!==W&&e!==K))){throw $}if(s){return}A=this.#V[t]=new Z;if(e!==""){A.#x=n.varIndex++}}if(!s&&e!==""){r.push([e,A.#x])}}else{A=this.#V[o];if(!A){if(Object.keys(this.#V).some((e=>e.length>1&&e!==W&&e!==K))){throw $}if(s){return}A=this.#V[o]=new Z}}A.insert(i,t,r,n,s)}buildRegExpStr(){const e=Object.keys(this.#V).sort(compareKey);const t=e.map((e=>{const t=this.#V[e];return(typeof t.#x==="number"?`(${e})@${t.#x}`:z.has(e)?`\\${e}`:e)+t.buildRegExpStr()}));if(typeof this.#M==="number"){t.unshift(`#${this.#M}`)}if(t.length===0){return""}if(t.length===1){return t[0]}return"(?:"+t.join("|")+")"}};var X=class{#j={varIndex:0};#H=new Z;insert(e,t,r){const n=[];const s=[];for(let t=0;;){let r=false;e=e.replace(/\{[^}]+\}/g,(e=>{const n=`@\\${t}`;s[t]=[n,e];t++;r=true;return n}));if(!r){break}}const o=e.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let e=s.length-1;e>=0;e--){const[t]=s[e];for(let r=o.length-1;r>=0;r--){if(o[r].indexOf(t)!==-1){o[r]=o[r].replace(t,s[e][1]);break}}}this.#H.insert(o,t,n,this.#j,r);return n}buildRegExp(){let e=this.#H.buildRegExpStr();if(e===""){return[/^$/,[],[]]}let t=0;const r=[];const n=[];e=e.replace(/#(\d+)|@(\d+)|\.\*\$/g,((e,s,o)=>{if(s!==void 0){r[++t]=Number(s);return"$()"}if(o!==void 0){n[Number(o)]=++t;return""}return""}));return[new RegExp(`^${e}`),r,n]}};var ee=[];var te=[/^$/,[],Object.create(null)];var re=Object.create(null);function buildWildcardRegExp(e){return re[e]??=new RegExp(e==="*"?"":`^${e.replace(/\/\*$|([.\\+*[^\]$()])/g,((e,t)=>t?`\\${t}`:"(?:|/.*)"))}$`)}function clearWildcardRegExpCache(){re=Object.create(null)}function buildMatcherFromPreprocessedRoutes(e){const t=new X;const r=[];if(e.length===0){return te}const n=e.map((e=>[!/\*|\/:/.test(e[0]),...e])).sort((([e,t],[r,n])=>e?1:r?-1:t.length-n.length));const s=Object.create(null);for(let e=0,o=-1,i=n.length;e[e,Object.create(null)])),ee]}else{o++}let c;try{c=t.insert(a,o,i)}catch(e){throw e===$?new H(a):e}if(i){continue}r[o]=A.map((([e,t])=>{const r=Object.create(null);t-=1;for(;t>=0;t--){const[e,n]=c[t];r[e]=n}return[e,r]}))}const[o,i,a]=t.buildRegExp();for(let e=0,t=r.length;et.length-e.length))){if(buildWildcardRegExp(r).test(t)){return[...e[r]]}}return void 0}var ne=class{name="RegExpRouter";#Y;#q;constructor(){this.#Y={[M]:Object.create(null)};this.#q={[M]:Object.create(null)}}add(e,t,r){const n=this.#Y;const s=this.#q;if(!n||!s){throw new Error(j)}if(!n[e]){[n,s].forEach((t=>{t[e]=Object.create(null);Object.keys(t[M]).forEach((r=>{t[e][r]=[...t[M][r]]}))}))}if(t==="/*"){t="*"}const o=(t.match(/\/:/g)||[]).length;if(/\*$/.test(t)){const i=buildWildcardRegExp(t);if(e===M){Object.keys(n).forEach((e=>{n[e][t]||=findMiddleware(n[e],t)||findMiddleware(n[M],t)||[]}))}else{n[e][t]||=findMiddleware(n[e],t)||findMiddleware(n[M],t)||[]}Object.keys(n).forEach((t=>{if(e===M||e===t){Object.keys(n[t]).forEach((e=>{i.test(e)&&n[t][e].push([r,o])}))}}));Object.keys(s).forEach((t=>{if(e===M||e===t){Object.keys(s[t]).forEach((e=>i.test(e)&&s[t][e].push([r,o])))}}));return}const i=checkOptionalParameter(t)||[t];for(let t=0,a=i.length;t{if(e===M||e===i){s[i][A]||=[...findMiddleware(n[i],A)||findMiddleware(n[M],A)||[]];s[i][A].push([r,o-a+t+1])}}))}}match(e,t){clearWildcardRegExpCache();const r=this.#J();this.match=(e,t)=>{const n=r[e]||r[M];const s=n[2][t];if(s){return s}const o=t.match(n[0]);if(!o){return[[],ee]}const i=o.indexOf("",1);return[n[1][i],o]};return this.match(e,t)}#J(){const e=Object.create(null);Object.keys(this.#q).concat(Object.keys(this.#Y)).forEach((t=>{e[t]||=this.#W(t)}));this.#Y=this.#q=void 0;return e}#W(e){const t=[];let r=e===M;[this.#Y,this.#q].forEach((n=>{const s=n[e]?Object.keys(n[e]).map((t=>[t,n[e][t]])):[];if(s.length!==0){r||=true;t.push(...s)}else if(e!==M){t.push(...Object.keys(n[M]).map((e=>[e,n[M][e]])))}}));if(!r){return null}else{return buildMatcherFromPreprocessedRoutes(t)}}};var se=class{name="SmartRouter";#K=[];#q=[];constructor(e){this.#K=e.routers}add(e,t,r){if(!this.#q){throw new Error(j)}this.#q.push([e,t,r])}match(e,t){if(!this.#q){throw new Error("Fatal error")}const r=this.#K;const n=this.#q;const s=r.length;let o=0;let i;for(;or.indexOf(e)===t)),score:this.#Z};i[e]=a;n.#$.push(i);return n}#ee(e,t,r,n){const s=[];for(let o=0,i=e.#$.length;o1){r.sort(((e,t)=>e.score-t.score))}return[r.map((({handler:e,params:t})=>[e,t]))]}};var ie=class{name="TrieRouter";#te;constructor(){this.#te=new oe}add(e,t,r){const n=checkOptionalParameter(t);if(n){for(let t=0,s=n.length;t{const r=globalThis;const n=r?.process?.env;t??=getRuntimeKey();const s={bun:()=>n,node:()=>n,"edge-light":()=>n,deno:()=>Deno.env.toObject(),workerd:()=>e.env,fastly:()=>({}),other:()=>({})};return s[t]()};var Ae={deno:"Deno",bun:"Bun",workerd:"Cloudflare-Workers",node:"Node.js"};var getRuntimeKey=()=>{const e=globalThis;const t=typeof navigator!=="undefined"&&typeof navigator.userAgent==="string";if(t){for(const[e,t]of Object.entries(Ae)){if(checkUserAgentEquals(t)){return e}}}if(typeof e?.EdgeRuntime==="string"){return"edge-light"}if(e?.fastly!==void 0){return"fastly"}if(e?.process?.release?.name==="node"){return"node"}return"other"};var checkUserAgentEquals=e=>{const t=navigator.userAgent;return t.startsWith(e)};var ce=class extends Error{res;status;constructor(e=500,t){super(t?.message,{cause:t?.cause});this.res=t?.res;this.status=e}getResponse(){if(this.res){const e=new Response(this.res.body,{status:this.status,headers:this.res.headers});return e}return new Response(this.message,{status:this.status})}};function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&process.version!==undefined){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}function register(e,t,r,n){if(typeof r!=="function"){throw new Error("method for before hook must be a function")}if(!n){n={}}if(Array.isArray(t)){return t.reverse().reduce(((t,r)=>register.bind(null,e,r,t,n)),r)()}return Promise.resolve().then((()=>{if(!e.registry[t]){return r(n)}return e.registry[t].reduce(((e,t)=>t.hook.bind(null,e,n)),r)()}))}function addHook(e,t,r,n){const s=n;if(!e.registry[r]){e.registry[r]=[]}if(t==="before"){n=(e,t)=>Promise.resolve().then(s.bind(null,t)).then(e.bind(null,t))}if(t==="after"){n=(e,t)=>{let r;return Promise.resolve().then(e.bind(null,t)).then((e=>{r=e;return s(r,t)})).then((()=>r))}}if(t==="error"){n=(e,t)=>Promise.resolve().then(e.bind(null,t)).catch((e=>s(e,t)))}e.registry[r].push({hook:n,orig:s})}function removeHook(e,t,r){if(!e.registry[t]){return}const n=e.registry[t].map((e=>e.orig)).indexOf(r);if(n===-1){return}e.registry[t].splice(n,1)}const ue=Function.bind;const le=ue.bind(ue);function bindApi(e,t,r){const n=le(removeHook,null).apply(null,r?[t,r]:[t]);e.api={remove:n};e.remove=n;["before","error","after","wrap"].forEach((n=>{const s=r?[t,n,r]:[t,n];e[n]=e.api[n]=le(addHook,null).apply(null,s)}))}function Singular(){const e=Symbol("Singular");const t={registry:{}};const r=register.bind(null,t,e);bindApi(r,t,e);return r}function Collection(){const e={registry:{}};const t=register.bind(null,e);bindApi(t,e);return t}const pe={Singular:Singular,Collection:Collection};var de="0.0.0-development";var ge=`octokit-endpoint.js/${de} ${getUserAgent()}`;var fe={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":ge},mediaType:{format:""}};function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce(((t,r)=>{t[r.toLowerCase()]=e[r];return t}),{})}function isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function mergeDeep(e,t){const r=Object.assign({},e);Object.keys(t).forEach((n=>{if(isPlainObject(t[n])){if(!(n in e))Object.assign(r,{[n]:t[n]});else r[n]=mergeDeep(e[n],t[n])}else{Object.assign(r,{[n]:t[n]})}}));return r}function removeUndefinedProperties(e){for(const t in e){if(e[t]===void 0){delete e[t]}}return e}function merge(e,t,r){if(typeof t==="string"){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else{r=Object.assign({},t)}r.headers=lowercaseKeys(r.headers);removeUndefinedProperties(r);removeUndefinedProperties(r.headers);const n=mergeDeep(e||{},r);if(r.url==="/graphql"){if(e&&e.mediaType.previews?.length){n.mediaType.previews=e.mediaType.previews.filter((e=>!n.mediaType.previews.includes(e))).concat(n.mediaType.previews)}n.mediaType.previews=(n.mediaType.previews||[]).map((e=>e.replace(/-preview/,"")))}return n}function addQueryParameters(e,t){const r=/\?/.test(e)?"&":"?";const n=Object.keys(t);if(n.length===0){return e}return e+r+n.map((e=>{if(e==="q"){return"q="+t.q.split("+").map(encodeURIComponent).join("+")}return`${e}=${encodeURIComponent(t[e])}`})).join("&")}var he=/\{[^}]+\}/g;function removeNonChars(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function extractUrlVariableNames(e){const t=e.match(he);if(!t){return[]}return t.map(removeNonChars).reduce(((e,t)=>e.concat(t)),[])}function omit(e,t){const r={__proto__:null};for(const n of Object.keys(e)){if(t.indexOf(n)===-1){r[n]=e[n]}}return r}function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){if(!/%[0-9A-Fa-f]/.test(e)){e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")}return e})).join("")}function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(e,t,r){t=e==="+"||e==="#"?encodeReserved(t):encodeUnreserved(t);if(r){return encodeUnreserved(r)+"="+t}else{return t}}function isDefined(e){return e!==void 0&&e!==null}function isKeyOperator(e){return e===";"||e==="&"||e==="?"}function getValues(e,t,r,n){var s=e[r],o=[];if(isDefined(s)&&s!==""){if(typeof s==="string"||typeof s==="number"||typeof s==="boolean"){s=s.toString();if(n&&n!=="*"){s=s.substring(0,parseInt(n,10))}o.push(encodeValue(t,s,isKeyOperator(t)?r:""))}else{if(n==="*"){if(Array.isArray(s)){s.filter(isDefined).forEach((function(e){o.push(encodeValue(t,e,isKeyOperator(t)?r:""))}))}else{Object.keys(s).forEach((function(e){if(isDefined(s[e])){o.push(encodeValue(t,s[e],e))}}))}}else{const e=[];if(Array.isArray(s)){s.filter(isDefined).forEach((function(r){e.push(encodeValue(t,r))}))}else{Object.keys(s).forEach((function(r){if(isDefined(s[r])){e.push(encodeUnreserved(r));e.push(encodeValue(t,s[r].toString()))}}))}if(isKeyOperator(t)){o.push(encodeUnreserved(r)+"="+e.join(","))}else if(e.length!==0){o.push(e.join(","))}}}}else{if(t===";"){if(isDefined(s)){o.push(encodeUnreserved(r))}}else if(s===""&&(t==="&"||t==="?")){o.push(encodeUnreserved(r)+"=")}else if(s===""){o.push("")}}return o}function parseUrl(e){return{expand:expand.bind(null,e)}}function expand(e,t){var r=["+","#",".","/",";","?","&"];e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,n,s){if(n){let e="";const s=[];if(r.indexOf(n.charAt(0))!==-1){e=n.charAt(0);n=n.substr(1)}n.split(/,/g).forEach((function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);s.push(getValues(t,e,n[1],n[2]||n[3]))}));if(e&&e!=="+"){var o=",";if(e==="?"){o="&"}else if(e!=="#"){o=e}return(s.length!==0?e:"")+s.join(o)}else{return s.join(",")}}else{return encodeReserved(s)}}));if(e==="/"){return e}else{return e.replace(/\/$/,"")}}function parse(e){let t=e.method.toUpperCase();let r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let n=Object.assign({},e.headers);let s;let o=omit(e,["method","baseUrl","url","headers","request","mediaType"]);const i=extractUrlVariableNames(r);r=parseUrl(r).expand(o);if(!/^http/.test(r)){r=e.baseUrl+r}const a=Object.keys(e).filter((e=>i.includes(e))).concat("baseUrl");const A=omit(o,a);const c=/application\/octet-stream/i.test(n.accept);if(!c){if(e.mediaType.format){n.accept=n.accept.split(/,/).map((t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")}if(r.endsWith("/graphql")){if(e.mediaType.previews?.length){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map((t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`})).join(",")}}}if(["GET","HEAD"].includes(t)){r=addQueryParameters(r,A)}else{if("data"in A){s=A.data}else{if(Object.keys(A).length){s=A}}}if(!n["content-type"]&&typeof s!=="undefined"){n["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(t)&&typeof s==="undefined"){s=""}return Object.assign({method:t,url:r,headers:n},typeof s!=="undefined"?{body:s}:null,e.request?{request:e.request}:null)}function endpointWithDefaults(e,t,r){return parse(merge(e,t,r))}function withDefaults(e,t){const r=merge(e,t);const n=endpointWithDefaults.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:withDefaults.bind(null,r),merge:merge.bind(null,r),parse:parse})}var Ee=withDefaults(null,fe);class RequestError extends Error{name;status;request;response;constructor(e,t,r){super(e);this.name="HttpError";this.status=Number.parseInt(t);if(Number.isNaN(this.status)){this.status=0}if("response"in r){this.response=r.response}const n=Object.assign({},r.request);if(r.request.headers.authorization){n.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})}n.url=n.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]");this.request=n}}var me="0.0.0-development";var Ie={headers:{"user-agent":`octokit-request.js/${me} ${getUserAgent()}`}};function dist_bundle_isPlainObject(e){if(typeof e!=="object"||e===null)return false;if(Object.prototype.toString.call(e)!=="[object Object]")return false;const t=Object.getPrototypeOf(e);if(t===null)return true;const r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r==="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function fetchWrapper(e){const t=e.request?.fetch||globalThis.fetch;if(!t){throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing")}const r=e.request?.log||console;const n=e.request?.parseSuccessResponseBody!==false;const s=dist_bundle_isPlainObject(e.body)||Array.isArray(e.body)?JSON.stringify(e.body):e.body;const o=Object.fromEntries(Object.entries(e.headers).map((([e,t])=>[e,String(t)])));let i;try{i=await t(e.url,{method:e.method,body:s,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(t){let r="Unknown Error";if(t instanceof Error){if(t.name==="AbortError"){t.status=500;throw t}r=t.message;if(t.name==="TypeError"&&"cause"in t){if(t.cause instanceof Error){r=t.cause.message}else if(typeof t.cause==="string"){r=t.cause}}}const n=new RequestError(r,500,{request:e});n.cause=t;throw n}const a=i.status;const A=i.url;const c={};for(const[e,t]of i.headers){c[e]=t}const u={url:A,status:a,headers:c,data:""};if("deprecation"in c){const t=c.link&&c.link.match(/<([^>]+)>; rel="deprecation"/);const n=t&&t.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${c.sunset}${n?`. See ${n}`:""}`)}if(a===204||a===205){return u}if(e.method==="HEAD"){if(a<400){return u}throw new RequestError(i.statusText,a,{response:u,request:e})}if(a===304){u.data=await getResponseData(i);throw new RequestError("Not modified",a,{response:u,request:e})}if(a>=400){u.data=await getResponseData(i);throw new RequestError(toErrorMessage(u.data),a,{response:u,request:e})}u.data=n?await getResponseData(i):i.body;return u}async function getResponseData(e){const t=e.headers.get("content-type");if(/application\/json/.test(t)){return e.json().catch((()=>e.text())).catch((()=>""))}if(!t||/^text\/|charset=utf-8$/.test(t)){return e.text()}return e.arrayBuffer()}function toErrorMessage(e){if(typeof e==="string"){return e}if(e instanceof ArrayBuffer){return"Unknown error"}if("message"in e){const t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map((e=>JSON.stringify(e))).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function dist_bundle_withDefaults(e,t){const r=e.defaults(t);const newApi=function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook){return fetchWrapper(r.parse(n))}const request2=(e,t)=>fetchWrapper(r.parse(r.merge(e,t)));Object.assign(request2,{endpoint:r,defaults:dist_bundle_withDefaults.bind(null,r)});return n.request.hook(request2,n)};return Object.assign(newApi,{endpoint:r,defaults:dist_bundle_withDefaults.bind(null,r)})}var ye=dist_bundle_withDefaults(Ee,Ie);var Ce="0.0.0-development";function _buildMessageForResponseErrors(e){return`Request failed due to following response errors:\n`+e.errors.map((e=>` - ${e.message}`)).join("\n")}var Qe=class extends Error{constructor(e,t,r){super(_buildMessageForResponseErrors(r));this.request=e;this.headers=t;this.response=r;this.errors=r.errors;this.data=r.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}name="GraphqlResponseError";errors;data};var Be=["method","baseUrl","url","headers","request","query","mediaType"];var be=["query","method","url"];var Te=/\/api\/v3\/?$/;function graphql(e,t,r){if(r){if(typeof t==="string"&&"query"in r){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const e in r){if(!be.includes(e))continue;return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}}const n=typeof t==="string"?Object.assign({query:t},r):t;const s=Object.keys(n).reduce(((e,t)=>{if(Be.includes(t)){e[t]=n[t];return e}if(!e.variables){e.variables={}}e.variables[t]=n[t];return e}),{});const o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;if(Te.test(o)){s.url=o.replace(Te,"/api/graphql")}return e(s).then((e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers)){t[r]=e.headers[r]}throw new Qe(s,t,e.data)}return e.data.data}))}function graphql_dist_bundle_withDefaults(e,t){const r=e.defaults(t);const newApi=(e,t)=>graphql(r,e,t);return Object.assign(newApi,{defaults:graphql_dist_bundle_withDefaults.bind(null,r),endpoint:r.endpoint})}var we=graphql_dist_bundle_withDefaults(ye,{headers:{"user-agent":`octokit-graphql.js/${Ce} ${getUserAgent()}`},method:"POST",url:"/graphql"});function withCustomRequest(e){return graphql_dist_bundle_withDefaults(e,{method:"POST",url:"/graphql"})}var ve=/^v1\./;var Re=/^ghs_/;var ke=/^ghu_/;async function auth(e){const t=e.split(/\./).length===3;const r=ve.test(e)||Re.test(e);const n=ke.test(e);const s=t?"app":r?"installation":n?"user-to-server":"oauth";return{type:"token",token:e,tokenType:s}}function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`bearer ${e}`}return`token ${e}`}async function hook(e,t,r,n){const s=t.endpoint.merge(r,n);s.headers.authorization=withAuthorizationPrefix(e);return t(s)}var De=function createTokenAuth2(e){if(!e){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof e!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}e=e.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,e),{hook:hook.bind(null,e)})};const _e="6.1.2";const noop=()=>{};const Se=console.warn.bind(console);const Fe=console.error.bind(console);const Ne=`octokit-core.js/${_e} ${getUserAgent()}`;class Octokit{static VERSION=_e;static defaults(e){const t=class extends(this){constructor(...t){const r=t[0]||{};if(typeof e==="function"){super(e(r));return}super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugins=[];static plugin(...e){const t=this.plugins;const r=class extends(this){static plugins=t.concat(e.filter((e=>!t.includes(e))))};return r}constructor(e={}){const t=new pe.Collection;const r={baseUrl:ye.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${Ne}`:Ne;if(e.baseUrl){r.baseUrl=e.baseUrl}if(e.previews){r.mediaType.previews=e.previews}if(e.timeZone){r.headers["time-zone"]=e.timeZone}this.request=ye.defaults(r);this.graphql=withCustomRequest(this.request).defaults(r);this.log=Object.assign({debug:noop,info:noop,warn:Se,error:Fe},e.log);this.hook=t;if(!e.authStrategy){if(!e.auth){this.auth=async()=>({type:"unauthenticated"})}else{const r=De(e.auth);t.wrap("request",r.hook);this.auth=r}}else{const{authStrategy:r,...n}=e;const s=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",s.hook);this.auth=s}const n=this.constructor;for(let t=0;t({async next(){if(!a)return{done:true};try{const e=await s({method:o,url:a,headers:i});const t=normalizePaginatedListResponse(e);a=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1];return{value:t}}catch(e){if(e.status!==409)throw e;a="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(e,t,r,n){if(typeof r==="function"){n=r;r=void 0}return gather(e,[],iterator(e,t,r)[Symbol.asyncIterator](),n)}function gather(e,t,r,n){return r.next().then((s=>{if(s.done){return t}let o=false;function done(){o=true}t=t.concat(n?n(s.value,done):s.value.data);if(o){return t}return gather(e,t,r,n)}))}var Le=Object.assign(paginate,{iterator:iterator});var Ue=null&&["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/copilot/usage","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/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}/copilot/billing/seats","GET /orgs/{org}/copilot/usage","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}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/team/{team_slug}/copilot/usage","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/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","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}/activity","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}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/environments/{environment_name}/secrets","GET /repos/{owner}/{repo}/environments/{environment_name}/variables","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}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","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 /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/social_accounts","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}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(e){if(typeof e==="string"){return Ue.includes(e)}else{return false}}function paginateRest(e){return{paginate:Object.assign(paginate.bind(null,e),{iterator:iterator.bind(null,e)})}}paginateRest.VERSION=Oe;const Ge="13.2.6";const Pe={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"],usageMetricsForEnterprise:["GET /enterprises/{enterprise}/copilot/usage"],usageMetricsForOrg:["GET /orgs/{org}/copilot/usage"],usageMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/usage"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};var Me=Pe;const xe=new Map;for(const[e,t]of Object.entries(Me)){for(const[r,n]of Object.entries(t)){const[t,s,o]=n;const[i,a]=t.split(/ /);const A=Object.assign({method:i,url:a},s);if(!xe.has(e)){xe.set(e,new Map)}xe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:A,decorations:o})}}const Ve={has({scope:e},t){return xe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:true,writable:true,enumerable:true}},defineProperty(e,t,r){Object.defineProperty(e.cache,t,r);return true},deleteProperty(e,t){delete e.cache[t];return true},ownKeys({scope:e}){return[...xe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n]){return r[n]}const s=xe.get(t).get(n);if(!s){return void 0}const{endpointDefaults:o,decorations:i}=s;if(i){r[n]=decorate(e,t,n,o,i)}else{r[n]=e.request.defaults(o)}return r[n]}};function endpointsToMethods(e){const t={};for(const r of xe.keys()){t[r]=new Proxy({octokit:e,scope:r,cache:{}},Ve)}return t}function decorate(e,t,r,n,s){const o=e.request.defaults(n);function withDecorations(...n){let i=o.endpoint.merge(...n);if(s.mapToData){i=Object.assign({},i,{data:i[s.mapToData],[s.mapToData]:void 0});return o(i)}if(s.renamed){const[n,o]=s.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(s.deprecated){e.log.warn(s.deprecated)}if(s.renamedParameters){const i=o.endpoint.merge(...n);for(const[n,o]of Object.entries(s.renamedParameters)){if(n in i){e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${o}" instead`);if(!(o in i)){i[o]=i[n]}delete i[n]}}return o(i)}return o(...n)}return Object.assign(withDecorations,o)}function restEndpointMethods(e){const t=endpointsToMethods(e);return{rest:t}}restEndpointMethods.VERSION=Ge;function legacyRestEndpointMethods(e){const t=endpointsToMethods(e);return{...t,rest:t}}legacyRestEndpointMethods.VERSION=Ge;var je=__nccwpck_require__(3251);var He="0.0.0-development";async function errorRequest(e,t,r,n){if(!r.request||!r.request.request){throw r}if(r.status>=400&&!e.doNotRetry.includes(r.status)){const s=n.request.retries!=null?n.request.retries:e.retries;const o=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,s,o)}throw r}async function wrapRequest(e,t,r,n){const s=new je;s.on("failed",(function(t,r){const s=~~t.request.request.retries;const o=~~t.request.request.retryAfter;n.request.retryCount=r.retryCount+1;if(s>r.retryCount){return o*e.retryAfterBaseValue}}));return s.schedule(requestWithGraphqlErrorHandling.bind(null,e,t,r),n)}async function requestWithGraphqlErrorHandling(e,t,r,n){const s=await r(r,n);if(s.data&&s.data.errors&&s.data.errors.length>0&&/Something went wrong while executing your query/.test(s.data.errors[0].message)){const r=new RequestError(s.data.errors[0].message,500,{request:n,response:s});return errorRequest(e,t,r,n)}return s}function retry(e,t){const r=Object.assign({enabled:true,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,422,451],retries:3},t.retry);if(r.enabled){e.hook.error("request",errorRequest.bind(null,r,e));e.hook.wrap("request",wrapRequest.bind(null,r,e))}return{retry:{retryRequest:(e,t,r)=>{e.request.request=Object.assign({},e.request.request,{retries:t,retryAfter:r});return e}}}}retry.VERSION=He;var Ye="0.0.0-development";var dist_bundle_noop=()=>Promise.resolve();function dist_bundle_wrapRequest(e,t,r){return e.retryLimiter.schedule(doRequest,e,t,r)}async function doRequest(e,t,r){const n=r.method!=="GET"&&r.method!=="HEAD";const{pathname:s}=new URL(r.url,"http://github.test");const o=r.method==="GET"&&s.startsWith("/search/");const i=s.startsWith("/graphql");const a=~~t.retryCount;const A=a>0?{priority:0,weight:0}:{};if(e.clustering){A.expiration=1e3*60}if(n||i){await e.write.key(e.id).schedule(A,dist_bundle_noop)}if(n&&e.triggersNotification(s)){await e.notifications.key(e.id).schedule(A,dist_bundle_noop)}if(o){await e.search.key(e.id).schedule(A,dist_bundle_noop)}const c=e.global.key(e.id).schedule(A,t,r);if(i){const e=await c;if(e.data.errors!=null&&e.data.errors.some((e=>e.type==="RATE_LIMITED"))){const t=Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:e,data:e.data});throw t}}return c}var qe=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];function routeMatcher(e){const t=e.map((e=>e.split("/").map((e=>e.startsWith("{")?"(?:.+?)":e)).join("/")));const r=`^(?:${t.map((e=>`(?:${e})`)).join("|")})[^/]*$`;return new RegExp(r,"i")}var Je=routeMatcher(qe);var We=Je.test.bind(Je);var Ke={};var createGroups=function(e,t){Ke.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t});Ke.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t});Ke.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t});Ke.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function throttling(e,t){const{enabled:r=true,Bottleneck:n=je,id:s="no-id",timeout:o=1e3*60*2,connection:i}=t.throttle||{};if(!r){return{}}const a={timeout:o};if(typeof i!=="undefined"){a.connection=i}if(Ke.global==null){createGroups(n,a)}const A=Object.assign({clustering:i!=null,triggersNotification:We,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,retryLimiter:new n,id:s,...Ke},t.throttle);if(typeof A.onSecondaryRateLimit!=="function"||typeof A.onRateLimit!=="function"){throw new Error(`octokit/plugin-throttling error:\n You must pass the onSecondaryRateLimit and onRateLimit error handlers.\n See https://octokit.github.io/rest.js/#throttling\n\n const octokit = new Octokit({\n throttle: {\n onSecondaryRateLimit: (retryAfter, options) => {/* ... */},\n onRateLimit: (retryAfter, options) => {/* ... */}\n }\n })\n `)}const c={};const u=new n.Events(c);c.on("secondary-limit",A.onSecondaryRateLimit);c.on("rate-limit",A.onRateLimit);c.on("error",(t=>e.log.warn("Error in throttling-plugin limit handler",t)));A.retryLimiter.on("failed",(async function(t,r){const[n,s,o]=r.args;const{pathname:i}=new URL(o.url,"http://github.test");const a=i.startsWith("/graphql")&&t.status!==401;if(!(a||t.status===403||t.status===429)){return}const A=~~s.retryCount;s.retryCount=A;o.request.retryCount=A;const{wantRetry:c,retryAfter:l=0}=await async function(){if(/\bsecondary rate\b/i.test(t.message)){const r=Number(t.response.headers["retry-after"])||n.fallbackSecondaryRateRetryAfter;const s=await u.trigger("secondary-limit",r,o,e,A);return{wantRetry:s,retryAfter:r}}if(t.response.headers!=null&&t.response.headers["x-ratelimit-remaining"]==="0"||(t.response.data?.errors??[]).some((e=>e.type==="RATE_LIMITED"))){const r=new Date(~~t.response.headers["x-ratelimit-reset"]*1e3).getTime();const n=Math.max(Math.ceil((r-Date.now())/1e3)+1,0);const s=await u.trigger("rate-limit",n,o,e,A);return{wantRetry:s,retryAfter:n}}return{}}();if(c){s.retryCount++;return l*n.retryAfterBaseValue}}));e.hook.wrap("request",dist_bundle_wrapRequest.bind(null,A));return{}}throttling.VERSION=Ye;throttling.triggersNotification=We;var generateMessage=(e,t)=>`The cursor at "${e.join(",")}" did not change its value "${t}" after a page transition. Please make sure your that your query is set up correctly.`;var $e=class extends Error{constructor(e,t){super(generateMessage(e.pathInQuery,t));this.pageInfo=e;this.cursorValue=t;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}name="MissingCursorChangeError"};var ze=class extends Error{constructor(e){super(`No pageInfo property found in response. Please make sure to specify the pageInfo in your query. Response-Data: ${JSON.stringify(e,null,2)}`);this.response=e;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}name="MissingPageInfo"};var isObject=e=>Object.prototype.toString.call(e)==="[object Object]";function findPaginatedResourcePath(e){const t=deepFindPathToProperty(e,"pageInfo");if(t.length===0){throw new ze(e)}return t}var deepFindPathToProperty=(e,t,r=[])=>{for(const n of Object.keys(e)){const s=[...r,n];const o=e[n];if(isObject(o)){if(o.hasOwnProperty(t)){return s}const e=deepFindPathToProperty(o,t,s);if(e.length>0){return e}}}return[]};var get=(e,t)=>t.reduce(((e,t)=>e[t]),e);var set=(e,t,r)=>{const n=t[t.length-1];const s=[...t].slice(0,-1);const o=get(e,s);if(typeof r==="function"){o[n]=r(o[n])}else{o[n]=r}};var extractPageInfos=e=>{const t=findPaginatedResourcePath(e);return{pathInQuery:t,pageInfo:get(e,[...t,"pageInfo"])}};var isForwardSearch=e=>e.hasOwnProperty("hasNextPage");var getCursorFrom=e=>isForwardSearch(e)?e.endCursor:e.startCursor;var hasAnotherPage=e=>isForwardSearch(e)?e.hasNextPage:e.hasPreviousPage;var createIterator=e=>(t,r={})=>{let n=true;let s={...r};return{[Symbol.asyncIterator]:()=>({async next(){if(!n)return{done:true,value:{}};const r=await e.graphql(t,s);const o=extractPageInfos(r);const i=getCursorFrom(o.pageInfo);n=hasAnotherPage(o.pageInfo);if(n&&i===s.cursor){throw new $e(o,i)}s={...s,cursor:i};return{done:false,value:r}}})}};var mergeResponses=(e,t)=>{if(Object.keys(e).length===0){return Object.assign(e,t)}const r=findPaginatedResourcePath(e);const n=[...r,"nodes"];const s=get(t,n);if(s){set(e,n,(e=>[...e,...s]))}const o=[...r,"edges"];const i=get(t,o);if(i){set(e,o,(e=>[...e,...i]))}const a=[...r,"pageInfo"];set(e,a,get(t,a));return e};var createPaginate=e=>{const t=createIterator(e);return async(e,r={})=>{let n={};for await(const s of t(e,r)){n=mergeResponses(n,s)}return n}};var Ze="0.0.0-development";function paginateGraphQL(e){return{graphql:Object.assign(e.graphql,{paginate:Object.assign(createPaginate(e),{iterator:createIterator(e)})})}}var Xe=__nccwpck_require__(7484);var et=__nccwpck_require__(3228);const tt=new Map;function Entries(){return new Map(tt)}function Clear(){return tt.clear()}function Delete(e){return tt.delete(e)}function Has(e){return tt.has(e)}function format_Set(e,t){tt.set(e,t)}function Get(e){return tt.get(e)}const rt=new Map;function type_Entries(){return new Map(rt)}function type_Clear(){return rt.clear()}function type_Delete(e){return rt.delete(e)}function type_Has(e){return rt.has(e)}function type_Set(e,t){rt.set(e,t)}function type_Get(e){return rt.get(e)}function extends_undefined_Intersect(e){return e.allOf.every((e=>ExtendsUndefinedCheck(e)))}function extends_undefined_Union(e){return e.anyOf.some((e=>ExtendsUndefinedCheck(e)))}function extends_undefined_Not(e){return!ExtendsUndefinedCheck(e.not)}function ExtendsUndefinedCheck(e){return e[E]==="Intersect"?extends_undefined_Intersect(e):e[E]==="Union"?extends_undefined_Union(e):e[E]==="Not"?extends_undefined_Not(e):e[E]==="Undefined"?true:false}function DefaultErrorFunction(e){switch(e.errorType){case pt.ArrayContains:return"Expected array to contain at least one matching value";case pt.ArrayMaxContains:return`Expected array to contain no more than ${e.schema.maxContains} matching values`;case pt.ArrayMinContains:return`Expected array to contain at least ${e.schema.minContains} matching values`;case pt.ArrayMaxItems:return`Expected array length to be less or equal to ${e.schema.maxItems}`;case pt.ArrayMinItems:return`Expected array length to be greater or equal to ${e.schema.minItems}`;case pt.ArrayUniqueItems:return"Expected array elements to be unique";case pt.Array:return"Expected array";case pt.AsyncIterator:return"Expected AsyncIterator";case pt.BigIntExclusiveMaximum:return`Expected bigint to be less than ${e.schema.exclusiveMaximum}`;case pt.BigIntExclusiveMinimum:return`Expected bigint to be greater than ${e.schema.exclusiveMinimum}`;case pt.BigIntMaximum:return`Expected bigint to be less or equal to ${e.schema.maximum}`;case pt.BigIntMinimum:return`Expected bigint to be greater or equal to ${e.schema.minimum}`;case pt.BigIntMultipleOf:return`Expected bigint to be a multiple of ${e.schema.multipleOf}`;case pt.BigInt:return"Expected bigint";case pt.Boolean:return"Expected boolean";case pt.DateExclusiveMinimumTimestamp:return`Expected Date timestamp to be greater than ${e.schema.exclusiveMinimumTimestamp}`;case pt.DateExclusiveMaximumTimestamp:return`Expected Date timestamp to be less than ${e.schema.exclusiveMaximumTimestamp}`;case pt.DateMinimumTimestamp:return`Expected Date timestamp to be greater or equal to ${e.schema.minimumTimestamp}`;case pt.DateMaximumTimestamp:return`Expected Date timestamp to be less or equal to ${e.schema.maximumTimestamp}`;case pt.DateMultipleOfTimestamp:return`Expected Date timestamp to be a multiple of ${e.schema.multipleOfTimestamp}`;case pt.Date:return"Expected Date";case pt.Function:return"Expected function";case pt.IntegerExclusiveMaximum:return`Expected integer to be less than ${e.schema.exclusiveMaximum}`;case pt.IntegerExclusiveMinimum:return`Expected integer to be greater than ${e.schema.exclusiveMinimum}`;case pt.IntegerMaximum:return`Expected integer to be less or equal to ${e.schema.maximum}`;case pt.IntegerMinimum:return`Expected integer to be greater or equal to ${e.schema.minimum}`;case pt.IntegerMultipleOf:return`Expected integer to be a multiple of ${e.schema.multipleOf}`;case pt.Integer:return"Expected integer";case pt.IntersectUnevaluatedProperties:return"Unexpected property";case pt.Intersect:return"Expected all values to match";case pt.Iterator:return"Expected Iterator";case pt.Literal:return`Expected ${typeof e.schema.const==="string"?`'${e.schema.const}'`:e.schema.const}`;case pt.Never:return"Never";case pt.Not:return"Value should not match";case pt.Null:return"Expected null";case pt.NumberExclusiveMaximum:return`Expected number to be less than ${e.schema.exclusiveMaximum}`;case pt.NumberExclusiveMinimum:return`Expected number to be greater than ${e.schema.exclusiveMinimum}`;case pt.NumberMaximum:return`Expected number to be less or equal to ${e.schema.maximum}`;case pt.NumberMinimum:return`Expected number to be greater or equal to ${e.schema.minimum}`;case pt.NumberMultipleOf:return`Expected number to be a multiple of ${e.schema.multipleOf}`;case pt.Number:return"Expected number";case pt.Object:return"Expected object";case pt.ObjectAdditionalProperties:return"Unexpected property";case pt.ObjectMaxProperties:return`Expected object to have no more than ${e.schema.maxProperties} properties`;case pt.ObjectMinProperties:return`Expected object to have at least ${e.schema.minProperties} properties`;case pt.ObjectRequiredProperty:return"Expected required property";case pt.Promise:return"Expected Promise";case pt.RegExp:return"Expected string to match regular expression";case pt.StringFormatUnknown:return`Unknown format '${e.schema.format}'`;case pt.StringFormat:return`Expected string to match '${e.schema.format}' format`;case pt.StringMaxLength:return`Expected string length less or equal to ${e.schema.maxLength}`;case pt.StringMinLength:return`Expected string length greater or equal to ${e.schema.minLength}`;case pt.StringPattern:return`Expected string to match '${e.schema.pattern}'`;case pt.String:return"Expected string";case pt.Symbol:return"Expected symbol";case pt.TupleLength:return`Expected tuple to have ${e.schema.maxItems||0} elements`;case pt.Tuple:return"Expected tuple";case pt.Uint8ArrayMaxByteLength:return`Expected byte length less or equal to ${e.schema.maxByteLength}`;case pt.Uint8ArrayMinByteLength:return`Expected byte length greater or equal to ${e.schema.minByteLength}`;case pt.Uint8Array:return"Expected Uint8Array";case pt.Undefined:return"Expected undefined";case pt.Union:return"Expected union value";case pt.Void:return"Expected void";case pt.Kind:return`Expected kind '${e.schema[E]}'`;default:return"Unknown error type"}}let nt=DefaultErrorFunction;function SetErrorFunction(e){nt=e}function GetErrorFunction(){return nt}class TypeDereferenceError extends error_TypeBoxError{constructor(e){super(`Unable to dereference schema with $id '${e.$ref}'`);this.schema=e}}function Resolve(e,t){const r=t.find((t=>t.$id===e.$ref));if(r===undefined)throw new TypeDereferenceError(e);return deref_Deref(r,t)}function Pushref(e,t){if(!IsString(e.$id)||t.some((t=>t.$id===e.$id)))return t;t.push(e);return t}function deref_Deref(e,t){return e[E]==="This"||e[E]==="Ref"?Resolve(e,t):e}class ValueHashError extends error_TypeBoxError{constructor(e){super(`Unable to hash value`);this.value=e}}var st;(function(e){e[e["Undefined"]=0]="Undefined";e[e["Null"]=1]="Null";e[e["Boolean"]=2]="Boolean";e[e["Number"]=3]="Number";e[e["String"]=4]="String";e[e["Object"]=5]="Object";e[e["Array"]=6]="Array";e[e["Date"]=7]="Date";e[e["Uint8Array"]=8]="Uint8Array";e[e["Symbol"]=9]="Symbol";e[e["BigInt"]=10]="BigInt"})(st||(st={}));let ot=BigInt("14695981039346656037");const[it,at]=[BigInt("1099511628211"),BigInt("18446744073709551616")];const At=Array.from({length:256}).map(((e,t)=>BigInt(t)));const ct=new Float64Array(1);const ut=new DataView(ct.buffer);const lt=new Uint8Array(ct.buffer);function*NumberToBytes(e){const t=e===0?1:Math.ceil(Math.floor(Math.log2(e)+1)/8);for(let r=0;r>8*(t-1-r)&255}}function hash_ArrayType(e){FNV1A64(st.Array);for(const t of e){hash_Visit(t)}}function BooleanType(e){FNV1A64(st.Boolean);FNV1A64(e?1:0)}function BigIntType(e){FNV1A64(st.BigInt);ut.setBigInt64(0,e);for(const e of lt){FNV1A64(e)}}function hash_DateType(e){FNV1A64(st.Date);hash_Visit(e.getTime())}function NullType(e){FNV1A64(st.Null)}function NumberType(e){FNV1A64(st.Number);ut.setFloat64(0,e);for(const e of lt){FNV1A64(e)}}function hash_ObjectType(e){FNV1A64(st.Object);for(const t of globalThis.Object.getOwnPropertyNames(e).sort()){hash_Visit(t);hash_Visit(e[t])}}function StringType(e){FNV1A64(st.String);for(let t=0;t=e.minItems)){return false}if(IsDefined(e.maxItems)&&!(r.length<=e.maxItems)){return false}if(!r.every((r=>check_Visit(e.items,t,r)))){return false}if(e.uniqueItems===true&&!function(){const e=new Set;for(const t of r){const r=Hash(t);if(e.has(r)){return false}else{e.add(r)}}return true}()){return false}if(!(IsDefined(e.contains)||IsNumber(e.minContains)||IsNumber(e.maxContains))){return true}const n=IsDefined(e.contains)?e.contains:Never();const s=r.reduce(((e,r)=>check_Visit(n,t,r)?e+1:e),0);if(s===0){return false}if(IsNumber(e.minContains)&&se.maxContains){return false}return true}function check_FromAsyncIterator(e,t,r){return IsAsyncIterator(r)}function check_FromBigInt(e,t,r){if(!IsBigInt(r))return false;if(IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(IsDefined(e.multipleOf)&&!(r%e.multipleOf===BigInt(0))){return false}return true}function check_FromBoolean(e,t,r){return IsBoolean(r)}function check_FromConstructor(e,t,r){return check_Visit(e.returns,t,r.prototype)}function check_FromDate(e,t,r){if(!IsDate(r))return false;if(IsDefined(e.exclusiveMaximumTimestamp)&&!(r.getTime()e.exclusiveMinimumTimestamp)){return false}if(IsDefined(e.maximumTimestamp)&&!(r.getTime()<=e.maximumTimestamp)){return false}if(IsDefined(e.minimumTimestamp)&&!(r.getTime()>=e.minimumTimestamp)){return false}if(IsDefined(e.multipleOfTimestamp)&&!(r.getTime()%e.multipleOfTimestamp===0)){return false}return true}function check_FromFunction(e,t,r){return IsFunction(r)}function FromImport(e,t,r){const n=globalThis.Object.values(e.$defs);const s=e.$defs[e.$ref];return check_Visit(s,[...t,...n],r)}function check_FromInteger(e,t,r){if(!IsInteger(r)){return false}if(IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(IsDefined(e.multipleOf)&&!(r%e.multipleOf===0)){return false}return true}function check_FromIntersect(e,t,r){const n=e.allOf.every((e=>check_Visit(e,t,r)));if(e.unevaluatedProperties===false){const t=new RegExp(KeyOfPattern(e));const s=Object.getOwnPropertyNames(r).every((e=>t.test(e)));return n&&s}else if(IsSchema(e.unevaluatedProperties)){const s=new RegExp(KeyOfPattern(e));const o=Object.getOwnPropertyNames(r).every((n=>s.test(n)||check_Visit(e.unevaluatedProperties,t,r[n])));return n&&o}else{return n}}function check_FromIterator(e,t,r){return IsIterator(r)}function check_FromLiteral(e,t,r){return r===e.const}function check_FromNever(e,t,r){return false}function check_FromNot(e,t,r){return!check_Visit(e.not,t,r)}function check_FromNull(e,t,r){return IsNull(r)}function check_FromNumber(e,t,r){if(!l.IsNumberLike(r))return false;if(IsDefined(e.exclusiveMaximum)&&!(re.exclusiveMinimum)){return false}if(IsDefined(e.minimum)&&!(r>=e.minimum)){return false}if(IsDefined(e.maximum)&&!(r<=e.maximum)){return false}if(IsDefined(e.multipleOf)&&!(r%e.multipleOf===0)){return false}return true}function check_FromObject(e,t,r){if(!l.IsObjectLike(r))return false;if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(r).length>=e.minProperties)){return false}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(r).length<=e.maxProperties)){return false}const n=Object.getOwnPropertyNames(e.properties);for(const s of n){const n=e.properties[s];if(e.required&&e.required.includes(s)){if(!check_Visit(n,t,r[s])){return false}if((ExtendsUndefinedCheck(n)||IsAnyOrUnknown(n))&&!(s in r)){return false}}else{if(l.IsExactOptionalProperty(r,s)&&!check_Visit(n,t,r[s])){return false}}}if(e.additionalProperties===false){const t=Object.getOwnPropertyNames(r);if(e.required&&e.required.length===n.length&&t.length===n.length){return true}else{return t.every((e=>n.includes(e)))}}else if(typeof e.additionalProperties==="object"){const s=Object.getOwnPropertyNames(r);return s.every((s=>n.includes(s)||check_Visit(e.additionalProperties,t,r[s])))}else{return true}}function check_FromPromise(e,t,r){return IsPromise(r)}function check_FromRecord(e,t,r){if(!l.IsRecordLike(r)){return false}if(IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(r).length>=e.minProperties)){return false}if(IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(r).length<=e.maxProperties)){return false}const[n,s]=Object.entries(e.patternProperties)[0];const o=new RegExp(n);const i=Object.entries(r).every((([e,r])=>o.test(e)?check_Visit(s,t,r):true));const a=typeof e.additionalProperties==="object"?Object.entries(r).every((([r,n])=>!o.test(r)?check_Visit(e.additionalProperties,t,n):true)):true;const A=e.additionalProperties===false?Object.getOwnPropertyNames(r).every((e=>o.test(e))):true;return i&&a&&A}function check_FromRef(e,t,r){return check_Visit(deref_Deref(e,t),t,r)}function check_FromRegExp(e,t,r){const n=new RegExp(e.source,e.flags);if(IsDefined(e.minLength)){if(!(r.length>=e.minLength))return false}if(IsDefined(e.maxLength)){if(!(r.length<=e.maxLength))return false}return n.test(r)}function check_FromString(e,t,r){if(!IsString(r)){return false}if(IsDefined(e.minLength)){if(!(r.length>=e.minLength))return false}if(IsDefined(e.maxLength)){if(!(r.length<=e.maxLength))return false}if(IsDefined(e.pattern)){const t=new RegExp(e.pattern);if(!t.test(r))return false}if(IsDefined(e.format)){if(!Has(e.format))return false;const t=Get(e.format);return t(r)}return true}function check_FromSymbol(e,t,r){return IsSymbol(r)}function check_FromTemplateLiteral(e,t,r){return IsString(r)&&new RegExp(e.pattern).test(r)}function FromThis(e,t,r){return check_Visit(deref_Deref(e,t),t,r)}function check_FromTuple(e,t,r){if(!IsArray(r)){return false}if(e.items===undefined&&!(r.length===0)){return false}if(!(r.length===e.maxItems)){return false}if(!e.items){return true}for(let n=0;ncheck_Visit(e,t,r)))}function check_FromUint8Array(e,t,r){if(!IsUint8Array(r)){return false}if(IsDefined(e.maxByteLength)&&!(r.length<=e.maxByteLength)){return false}if(IsDefined(e.minByteLength)&&!(r.length>=e.minByteLength)){return false}return true}function check_FromUnknown(e,t,r){return true}function check_FromVoid(e,t,r){return l.IsVoidLike(r)}function FromKind(e,t,r){if(!type_Has(e[E]))return false;const n=type_Get(e[E]);return n(e,r)}function check_Visit(e,t,r){const n=IsDefined(e.$id)?Pushref(e,t):t;const s=e;switch(s[E]){case"Any":return check_FromAny(s,n,r);case"Array":return check_FromArray(s,n,r);case"AsyncIterator":return check_FromAsyncIterator(s,n,r);case"BigInt":return check_FromBigInt(s,n,r);case"Boolean":return check_FromBoolean(s,n,r);case"Constructor":return check_FromConstructor(s,n,r);case"Date":return check_FromDate(s,n,r);case"Function":return check_FromFunction(s,n,r);case"Import":return FromImport(s,n,r);case"Integer":return check_FromInteger(s,n,r);case"Intersect":return check_FromIntersect(s,n,r);case"Iterator":return check_FromIterator(s,n,r);case"Literal":return check_FromLiteral(s,n,r);case"Never":return check_FromNever(s,n,r);case"Not":return check_FromNot(s,n,r);case"Null":return check_FromNull(s,n,r);case"Number":return check_FromNumber(s,n,r);case"Object":return check_FromObject(s,n,r);case"Promise":return check_FromPromise(s,n,r);case"Record":return check_FromRecord(s,n,r);case"Ref":return check_FromRef(s,n,r);case"RegExp":return check_FromRegExp(s,n,r);case"String":return check_FromString(s,n,r);case"Symbol":return check_FromSymbol(s,n,r);case"TemplateLiteral":return check_FromTemplateLiteral(s,n,r);case"This":return FromThis(s,n,r);case"Tuple":return check_FromTuple(s,n,r);case"Undefined":return check_FromUndefined(s,n,r);case"Union":return check_FromUnion(s,n,r);case"Uint8Array":return check_FromUint8Array(s,n,r);case"Unknown":return check_FromUnknown(s,n,r);case"Void":return check_FromVoid(s,n,r);default:if(!type_Has(s[E]))throw new ValueCheckUnknownTypeError(s);return FromKind(s,n,r)}}function Check(...e){return e.length===3?check_Visit(e[0],e[1],e[2]):check_Visit(e[0],[],e[1])}var pt;(function(e){e[e["ArrayContains"]=0]="ArrayContains";e[e["ArrayMaxContains"]=1]="ArrayMaxContains";e[e["ArrayMaxItems"]=2]="ArrayMaxItems";e[e["ArrayMinContains"]=3]="ArrayMinContains";e[e["ArrayMinItems"]=4]="ArrayMinItems";e[e["ArrayUniqueItems"]=5]="ArrayUniqueItems";e[e["Array"]=6]="Array";e[e["AsyncIterator"]=7]="AsyncIterator";e[e["BigIntExclusiveMaximum"]=8]="BigIntExclusiveMaximum";e[e["BigIntExclusiveMinimum"]=9]="BigIntExclusiveMinimum";e[e["BigIntMaximum"]=10]="BigIntMaximum";e[e["BigIntMinimum"]=11]="BigIntMinimum";e[e["BigIntMultipleOf"]=12]="BigIntMultipleOf";e[e["BigInt"]=13]="BigInt";e[e["Boolean"]=14]="Boolean";e[e["DateExclusiveMaximumTimestamp"]=15]="DateExclusiveMaximumTimestamp";e[e["DateExclusiveMinimumTimestamp"]=16]="DateExclusiveMinimumTimestamp";e[e["DateMaximumTimestamp"]=17]="DateMaximumTimestamp";e[e["DateMinimumTimestamp"]=18]="DateMinimumTimestamp";e[e["DateMultipleOfTimestamp"]=19]="DateMultipleOfTimestamp";e[e["Date"]=20]="Date";e[e["Function"]=21]="Function";e[e["IntegerExclusiveMaximum"]=22]="IntegerExclusiveMaximum";e[e["IntegerExclusiveMinimum"]=23]="IntegerExclusiveMinimum";e[e["IntegerMaximum"]=24]="IntegerMaximum";e[e["IntegerMinimum"]=25]="IntegerMinimum";e[e["IntegerMultipleOf"]=26]="IntegerMultipleOf";e[e["Integer"]=27]="Integer";e[e["IntersectUnevaluatedProperties"]=28]="IntersectUnevaluatedProperties";e[e["Intersect"]=29]="Intersect";e[e["Iterator"]=30]="Iterator";e[e["Kind"]=31]="Kind";e[e["Literal"]=32]="Literal";e[e["Never"]=33]="Never";e[e["Not"]=34]="Not";e[e["Null"]=35]="Null";e[e["NumberExclusiveMaximum"]=36]="NumberExclusiveMaximum";e[e["NumberExclusiveMinimum"]=37]="NumberExclusiveMinimum";e[e["NumberMaximum"]=38]="NumberMaximum";e[e["NumberMinimum"]=39]="NumberMinimum";e[e["NumberMultipleOf"]=40]="NumberMultipleOf";e[e["Number"]=41]="Number";e[e["ObjectAdditionalProperties"]=42]="ObjectAdditionalProperties";e[e["ObjectMaxProperties"]=43]="ObjectMaxProperties";e[e["ObjectMinProperties"]=44]="ObjectMinProperties";e[e["ObjectRequiredProperty"]=45]="ObjectRequiredProperty";e[e["Object"]=46]="Object";e[e["Promise"]=47]="Promise";e[e["RegExp"]=48]="RegExp";e[e["StringFormatUnknown"]=49]="StringFormatUnknown";e[e["StringFormat"]=50]="StringFormat";e[e["StringMaxLength"]=51]="StringMaxLength";e[e["StringMinLength"]=52]="StringMinLength";e[e["StringPattern"]=53]="StringPattern";e[e["String"]=54]="String";e[e["Symbol"]=55]="Symbol";e[e["TupleLength"]=56]="TupleLength";e[e["Tuple"]=57]="Tuple";e[e["Uint8ArrayMaxByteLength"]=58]="Uint8ArrayMaxByteLength";e[e["Uint8ArrayMinByteLength"]=59]="Uint8ArrayMinByteLength";e[e["Uint8Array"]=60]="Uint8Array";e[e["Undefined"]=61]="Undefined";e[e["Union"]=62]="Union";e[e["Void"]=63]="Void"})(pt||(pt={}));class ValueErrorsUnknownTypeError extends error_TypeBoxError{constructor(e){super("Unknown type");this.schema=e}}function EscapeKey(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function errors_IsDefined(e){return e!==undefined}class ValueErrorIterator{constructor(e){this.iterator=e}[Symbol.iterator](){return this.iterator}First(){const e=this.iterator.next();return e.done?undefined:e.value}}function Create(e,t,r,n,s=[]){return{type:e,schema:t,path:r,value:n,message:GetErrorFunction()({errorType:e,path:r,schema:t,value:n,errors:s}),errors:s}}function*errors_FromAny(e,t,r,n){}function*errors_FromArray(e,t,r,n){if(!IsArray(n)){return yield Create(pt.Array,e,r,n)}if(errors_IsDefined(e.minItems)&&!(n.length>=e.minItems)){yield Create(pt.ArrayMinItems,e,r,n)}if(errors_IsDefined(e.maxItems)&&!(n.length<=e.maxItems)){yield Create(pt.ArrayMaxItems,e,r,n)}for(let s=0;serrors_Visit(s,t,`${r}${o}`,n).next().done===true?e+1:e),0);if(o===0){yield Create(pt.ArrayContains,e,r,n)}if(IsNumber(e.minContains)&&oe.maxContains){yield Create(pt.ArrayMaxContains,e,r,n)}}function*errors_FromAsyncIterator(e,t,r,n){if(!IsAsyncIterator(n))yield Create(pt.AsyncIterator,e,r,n)}function*errors_FromBigInt(e,t,r,n){if(!IsBigInt(n))return yield Create(pt.BigInt,e,r,n);if(errors_IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(pt.BigIntExclusiveMinimum,e,r,n)}if(errors_IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(pt.BigIntMaximum,e,r,n)}if(errors_IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(pt.BigIntMinimum,e,r,n)}if(errors_IsDefined(e.multipleOf)&&!(n%e.multipleOf===BigInt(0))){yield Create(pt.BigIntMultipleOf,e,r,n)}}function*errors_FromBoolean(e,t,r,n){if(!IsBoolean(n))yield Create(pt.Boolean,e,r,n)}function*errors_FromConstructor(e,t,r,n){yield*errors_Visit(e.returns,t,r,n.prototype)}function*errors_FromDate(e,t,r,n){if(!IsDate(n))return yield Create(pt.Date,e,r,n);if(errors_IsDefined(e.exclusiveMaximumTimestamp)&&!(n.getTime()e.exclusiveMinimumTimestamp)){yield Create(pt.DateExclusiveMinimumTimestamp,e,r,n)}if(errors_IsDefined(e.maximumTimestamp)&&!(n.getTime()<=e.maximumTimestamp)){yield Create(pt.DateMaximumTimestamp,e,r,n)}if(errors_IsDefined(e.minimumTimestamp)&&!(n.getTime()>=e.minimumTimestamp)){yield Create(pt.DateMinimumTimestamp,e,r,n)}if(errors_IsDefined(e.multipleOfTimestamp)&&!(n.getTime()%e.multipleOfTimestamp===0)){yield Create(pt.DateMultipleOfTimestamp,e,r,n)}}function*errors_FromFunction(e,t,r,n){if(!IsFunction(n))yield Create(pt.Function,e,r,n)}function*errors_FromImport(e,t,r,n){const s=globalThis.Object.values(e.$defs);const o=e.$defs[e.$ref];yield*errors_Visit(o,[...t,...s],r,n)}function*errors_FromInteger(e,t,r,n){if(!IsInteger(n))return yield Create(pt.Integer,e,r,n);if(errors_IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(pt.IntegerExclusiveMinimum,e,r,n)}if(errors_IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(pt.IntegerMaximum,e,r,n)}if(errors_IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(pt.IntegerMinimum,e,r,n)}if(errors_IsDefined(e.multipleOf)&&!(n%e.multipleOf===0)){yield Create(pt.IntegerMultipleOf,e,r,n)}}function*errors_FromIntersect(e,t,r,n){let s=false;for(const o of e.allOf){for(const e of errors_Visit(o,t,r,n)){s=true;yield e}}if(s){return yield Create(pt.Intersect,e,r,n)}if(e.unevaluatedProperties===false){const t=new RegExp(KeyOfPattern(e));for(const s of Object.getOwnPropertyNames(n)){if(!t.test(s)){yield Create(pt.IntersectUnevaluatedProperties,e,`${r}/${s}`,n)}}}if(typeof e.unevaluatedProperties==="object"){const s=new RegExp(KeyOfPattern(e));for(const o of Object.getOwnPropertyNames(n)){if(!s.test(o)){const s=errors_Visit(e.unevaluatedProperties,t,`${r}/${o}`,n[o]).next();if(!s.done)yield s.value}}}}function*errors_FromIterator(e,t,r,n){if(!IsIterator(n))yield Create(pt.Iterator,e,r,n)}function*errors_FromLiteral(e,t,r,n){if(!(n===e.const))yield Create(pt.Literal,e,r,n)}function*errors_FromNever(e,t,r,n){yield Create(pt.Never,e,r,n)}function*errors_FromNot(e,t,r,n){if(errors_Visit(e.not,t,r,n).next().done===true)yield Create(pt.Not,e,r,n)}function*errors_FromNull(e,t,r,n){if(!IsNull(n))yield Create(pt.Null,e,r,n)}function*errors_FromNumber(e,t,r,n){if(!l.IsNumberLike(n))return yield Create(pt.Number,e,r,n);if(errors_IsDefined(e.exclusiveMaximum)&&!(ne.exclusiveMinimum)){yield Create(pt.NumberExclusiveMinimum,e,r,n)}if(errors_IsDefined(e.maximum)&&!(n<=e.maximum)){yield Create(pt.NumberMaximum,e,r,n)}if(errors_IsDefined(e.minimum)&&!(n>=e.minimum)){yield Create(pt.NumberMinimum,e,r,n)}if(errors_IsDefined(e.multipleOf)&&!(n%e.multipleOf===0)){yield Create(pt.NumberMultipleOf,e,r,n)}}function*errors_FromObject(e,t,r,n){if(!l.IsObjectLike(n))return yield Create(pt.Object,e,r,n);if(errors_IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(n).length>=e.minProperties)){yield Create(pt.ObjectMinProperties,e,r,n)}if(errors_IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(n).length<=e.maxProperties)){yield Create(pt.ObjectMaxProperties,e,r,n)}const s=Array.isArray(e.required)?e.required:[];const o=Object.getOwnPropertyNames(e.properties);const i=Object.getOwnPropertyNames(n);for(const t of s){if(i.includes(t))continue;yield Create(pt.ObjectRequiredProperty,e.properties[t],`${r}/${EscapeKey(t)}`,undefined)}if(e.additionalProperties===false){for(const t of i){if(!o.includes(t)){yield Create(pt.ObjectAdditionalProperties,e,`${r}/${EscapeKey(t)}`,n[t])}}}if(typeof e.additionalProperties==="object"){for(const s of i){if(o.includes(s))continue;yield*errors_Visit(e.additionalProperties,t,`${r}/${EscapeKey(s)}`,n[s])}}for(const s of o){const o=e.properties[s];if(e.required&&e.required.includes(s)){yield*errors_Visit(o,t,`${r}/${EscapeKey(s)}`,n[s]);if(ExtendsUndefinedCheck(e)&&!(s in n)){yield Create(pt.ObjectRequiredProperty,o,`${r}/${EscapeKey(s)}`,undefined)}}else{if(l.IsExactOptionalProperty(n,s)){yield*errors_Visit(o,t,`${r}/${EscapeKey(s)}`,n[s])}}}}function*errors_FromPromise(e,t,r,n){if(!IsPromise(n))yield Create(pt.Promise,e,r,n)}function*errors_FromRecord(e,t,r,n){if(!l.IsRecordLike(n))return yield Create(pt.Object,e,r,n);if(errors_IsDefined(e.minProperties)&&!(Object.getOwnPropertyNames(n).length>=e.minProperties)){yield Create(pt.ObjectMinProperties,e,r,n)}if(errors_IsDefined(e.maxProperties)&&!(Object.getOwnPropertyNames(n).length<=e.maxProperties)){yield Create(pt.ObjectMaxProperties,e,r,n)}const[s,o]=Object.entries(e.patternProperties)[0];const i=new RegExp(s);for(const[e,s]of Object.entries(n)){if(i.test(e))yield*errors_Visit(o,t,`${r}/${EscapeKey(e)}`,s)}if(typeof e.additionalProperties==="object"){for(const[s,o]of Object.entries(n)){if(!i.test(s))yield*errors_Visit(e.additionalProperties,t,`${r}/${EscapeKey(s)}`,o)}}if(e.additionalProperties===false){for(const[t,s]of Object.entries(n)){if(i.test(t))continue;return yield Create(pt.ObjectAdditionalProperties,e,`${r}/${EscapeKey(t)}`,s)}}}function*errors_FromRef(e,t,r,n){yield*errors_Visit(deref_Deref(e,t),t,r,n)}function*errors_FromRegExp(e,t,r,n){if(!IsString(n))return yield Create(pt.String,e,r,n);if(errors_IsDefined(e.minLength)&&!(n.length>=e.minLength)){yield Create(pt.StringMinLength,e,r,n)}if(errors_IsDefined(e.maxLength)&&!(n.length<=e.maxLength)){yield Create(pt.StringMaxLength,e,r,n)}const s=new RegExp(e.source,e.flags);if(!s.test(n)){return yield Create(pt.RegExp,e,r,n)}}function*errors_FromString(e,t,r,n){if(!IsString(n))return yield Create(pt.String,e,r,n);if(errors_IsDefined(e.minLength)&&!(n.length>=e.minLength)){yield Create(pt.StringMinLength,e,r,n)}if(errors_IsDefined(e.maxLength)&&!(n.length<=e.maxLength)){yield Create(pt.StringMaxLength,e,r,n)}if(IsString(e.pattern)){const t=new RegExp(e.pattern);if(!t.test(n)){yield Create(pt.StringPattern,e,r,n)}}if(IsString(e.format)){if(!Has(e.format)){yield Create(pt.StringFormatUnknown,e,r,n)}else{const t=Get(e.format);if(!t(n)){yield Create(pt.StringFormat,e,r,n)}}}}function*errors_FromSymbol(e,t,r,n){if(!IsSymbol(n))yield Create(pt.Symbol,e,r,n)}function*errors_FromTemplateLiteral(e,t,r,n){if(!IsString(n))return yield Create(pt.String,e,r,n);const s=new RegExp(e.pattern);if(!s.test(n)){yield Create(pt.StringPattern,e,r,n)}}function*errors_FromThis(e,t,r,n){yield*errors_Visit(deref_Deref(e,t),t,r,n)}function*errors_FromTuple(e,t,r,n){if(!IsArray(n))return yield Create(pt.Tuple,e,r,n);if(e.items===undefined&&!(n.length===0)){return yield Create(pt.TupleLength,e,r,n)}if(!(n.length===e.maxItems)){return yield Create(pt.TupleLength,e,r,n)}if(!e.items){return}for(let s=0;snew ValueErrorIterator(errors_Visit(e,t,r,n))));yield Create(pt.Union,e,r,n,s)}function*errors_FromUint8Array(e,t,r,n){if(!IsUint8Array(n))return yield Create(pt.Uint8Array,e,r,n);if(errors_IsDefined(e.maxByteLength)&&!(n.length<=e.maxByteLength)){yield Create(pt.Uint8ArrayMaxByteLength,e,r,n)}if(errors_IsDefined(e.minByteLength)&&!(n.length>=e.minByteLength)){yield Create(pt.Uint8ArrayMinByteLength,e,r,n)}}function*errors_FromUnknown(e,t,r,n){}function*errors_FromVoid(e,t,r,n){if(!l.IsVoidLike(n))yield Create(pt.Void,e,r,n)}function*errors_FromKind(e,t,r,n){const s=type_Get(e[E]);if(!s(e,n))yield Create(pt.Kind,e,r,n)}function*errors_Visit(e,t,r,n){const s=errors_IsDefined(e.$id)?[...t,e]:t;const o=e;switch(o[E]){case"Any":return yield*errors_FromAny(o,s,r,n);case"Array":return yield*errors_FromArray(o,s,r,n);case"AsyncIterator":return yield*errors_FromAsyncIterator(o,s,r,n);case"BigInt":return yield*errors_FromBigInt(o,s,r,n);case"Boolean":return yield*errors_FromBoolean(o,s,r,n);case"Constructor":return yield*errors_FromConstructor(o,s,r,n);case"Date":return yield*errors_FromDate(o,s,r,n);case"Function":return yield*errors_FromFunction(o,s,r,n);case"Import":return yield*errors_FromImport(o,s,r,n);case"Integer":return yield*errors_FromInteger(o,s,r,n);case"Intersect":return yield*errors_FromIntersect(o,s,r,n);case"Iterator":return yield*errors_FromIterator(o,s,r,n);case"Literal":return yield*errors_FromLiteral(o,s,r,n);case"Never":return yield*errors_FromNever(o,s,r,n);case"Not":return yield*errors_FromNot(o,s,r,n);case"Null":return yield*errors_FromNull(o,s,r,n);case"Number":return yield*errors_FromNumber(o,s,r,n);case"Object":return yield*errors_FromObject(o,s,r,n);case"Promise":return yield*errors_FromPromise(o,s,r,n);case"Record":return yield*errors_FromRecord(o,s,r,n);case"Ref":return yield*errors_FromRef(o,s,r,n);case"RegExp":return yield*errors_FromRegExp(o,s,r,n);case"String":return yield*errors_FromString(o,s,r,n);case"Symbol":return yield*errors_FromSymbol(o,s,r,n);case"TemplateLiteral":return yield*errors_FromTemplateLiteral(o,s,r,n);case"This":return yield*errors_FromThis(o,s,r,n);case"Tuple":return yield*errors_FromTuple(o,s,r,n);case"Undefined":return yield*errors_FromUndefined(o,s,r,n);case"Union":return yield*errors_FromUnion(o,s,r,n);case"Uint8Array":return yield*errors_FromUint8Array(o,s,r,n);case"Unknown":return yield*errors_FromUnknown(o,s,r,n);case"Void":return yield*errors_FromVoid(o,s,r,n);default:if(!type_Has(o[E]))throw new ValueErrorsUnknownTypeError(e);return yield*errors_FromKind(o,s,r,n)}}function Errors(...e){const t=e.length===3?errors_Visit(e[0],e[1],"",e[2]):errors_Visit(e[0],[],"",e[1]);return new ValueErrorIterator(t)}function KeyOfPropertyEntries(e){const t=KeyOfPropertyKeys(e);const r=IndexFromPropertyKeys(e,t);return t.map(((e,n)=>[t[n],r[n]]))}class TransformDecodeCheckError extends error_TypeBoxError{constructor(e,t,r){super(`Unable to decode value as it does not match the expected schema`);this.schema=e;this.value=t;this.error=r}}class TransformDecodeError extends error_TypeBoxError{constructor(e,t,r,n){super(n instanceof Error?n.message:"Unknown error");this.schema=e;this.path=t;this.value=r;this.error=n}}function Default(e,t,r){try{return IsTransform(e)?e[p].Decode(r):r}catch(n){throw new TransformDecodeError(e,t,r,n)}}function decode_FromArray(e,t,r,n){return IsArray(n)?Default(e,r,n.map(((n,s)=>decode_Visit(e.items,t,`${r}/${s}`,n)))):Default(e,r,n)}function decode_FromIntersect(e,t,r,n){if(!IsObject(n)||IsValueType(n))return Default(e,r,n);const s=KeyOfPropertyEntries(e);const o=s.map((e=>e[0]));const i={...n};for(const[e,n]of s)if(e in i){i[e]=decode_Visit(n,t,`${r}/${e}`,i[e])}if(!IsTransform(e.unevaluatedProperties)){return Default(e,r,i)}const a=Object.getOwnPropertyNames(i);const A=e.unevaluatedProperties;const c={...i};for(const e of a)if(!o.includes(e)){c[e]=Default(A,`${r}/${e}`,c[e])}return Default(e,r,c)}function decode_FromImport(e,t,r,n){const s=globalThis.Object.values(e.$defs);const o=e.$defs[e.$ref];const i=e[p];const a={[p]:i,...o};return decode_Visit(a,[...t,...s],r,n)}function decode_FromNot(e,t,r,n){return Default(e,r,decode_Visit(e.not,t,r,n))}function decode_FromObject(e,t,r,n){if(!IsObject(n))return Default(e,r,n);const s=KeyOfPropertyKeys(e);const o={...n};for(const n of s){if(!HasPropertyKey(o,n))continue;if(IsUndefined(o[n])&&(!kind_IsUndefined(e.properties[n])||l.IsExactOptionalProperty(o,n)))continue;o[n]=decode_Visit(e.properties[n],t,`${r}/${n}`,o[n])}if(!IsSchema(e.additionalProperties)){return Default(e,r,o)}const i=Object.getOwnPropertyNames(o);const a=e.additionalProperties;const A={...o};for(const e of i)if(!s.includes(e)){A[e]=Default(a,`${r}/${e}`,A[e])}return Default(e,r,A)}function decode_FromRecord(e,t,r,n){if(!IsObject(n))return Default(e,r,n);const s=Object.getOwnPropertyNames(e.patternProperties)[0];const o=new RegExp(s);const i={...n};for(const a of Object.getOwnPropertyNames(n))if(o.test(a)){i[a]=decode_Visit(e.patternProperties[s],t,`${r}/${a}`,i[a])}if(!IsSchema(e.additionalProperties)){return Default(e,r,i)}const a=Object.getOwnPropertyNames(i);const A=e.additionalProperties;const c={...i};for(const e of a)if(!o.test(e)){c[e]=Default(A,`${r}/${e}`,c[e])}return Default(e,r,c)}function decode_FromRef(e,t,r,n){const s=deref_Deref(e,t);return Default(e,r,decode_Visit(s,t,r,n))}function decode_FromThis(e,t,r,n){const s=deref_Deref(e,t);return Default(e,r,decode_Visit(s,t,r,n))}function decode_FromTuple(e,t,r,n){return IsArray(n)&&IsArray(e.items)?Default(e,r,e.items.map(((e,s)=>decode_Visit(e,t,`${r}/${s}`,n[s])))):Default(e,r,n)}function decode_FromUnion(e,t,r,n){for(const s of e.anyOf){if(!Check(s,t,n))continue;const o=decode_Visit(s,t,r,n);return Default(e,r,o)}return Default(e,r,n)}function decode_Visit(e,t,r,n){const s=Pushref(e,t);const o=e;switch(e[E]){case"Array":return decode_FromArray(o,s,r,n);case"Import":return decode_FromImport(o,s,r,n);case"Intersect":return decode_FromIntersect(o,s,r,n);case"Not":return decode_FromNot(o,s,r,n);case"Object":return decode_FromObject(o,s,r,n);case"Record":return decode_FromRecord(o,s,r,n);case"Ref":return decode_FromRef(o,s,r,n);case"Symbol":return Default(o,r,n);case"This":return decode_FromThis(o,s,r,n);case"Tuple":return decode_FromTuple(o,s,r,n);case"Union":return decode_FromUnion(o,s,r,n);default:return Default(o,r,n)}}function TransformDecode(e,t,r){return decode_Visit(e,t,"",r)}function has_FromArray(e,t){return IsTransform(e)||has_Visit(e.items,t)}function has_FromAsyncIterator(e,t){return IsTransform(e)||has_Visit(e.items,t)}function has_FromConstructor(e,t){return IsTransform(e)||has_Visit(e.returns,t)||e.parameters.some((e=>has_Visit(e,t)))}function has_FromFunction(e,t){return IsTransform(e)||has_Visit(e.returns,t)||e.parameters.some((e=>has_Visit(e,t)))}function has_FromIntersect(e,t){return IsTransform(e)||IsTransform(e.unevaluatedProperties)||e.allOf.some((e=>has_Visit(e,t)))}function has_FromIterator(e,t){return IsTransform(e)||has_Visit(e.items,t)}function has_FromNot(e,t){return IsTransform(e)||has_Visit(e.not,t)}function has_FromObject(e,t){return IsTransform(e)||Object.values(e.properties).some((e=>has_Visit(e,t)))||IsSchema(e.additionalProperties)&&has_Visit(e.additionalProperties,t)}function has_FromPromise(e,t){return IsTransform(e)||has_Visit(e.item,t)}function has_FromRecord(e,t){const r=Object.getOwnPropertyNames(e.patternProperties)[0];const n=e.patternProperties[r];return IsTransform(e)||has_Visit(n,t)||IsSchema(e.additionalProperties)&&IsTransform(e.additionalProperties)}function has_FromRef(e,t){if(IsTransform(e))return true;return has_Visit(deref_Deref(e,t),t)}function has_FromThis(e,t){if(IsTransform(e))return true;return has_Visit(deref_Deref(e,t),t)}function has_FromTuple(e,t){return IsTransform(e)||!IsUndefined(e.items)&&e.items.some((e=>has_Visit(e,t)))}function has_FromUnion(e,t){return IsTransform(e)||e.anyOf.some((e=>has_Visit(e,t)))}function has_Visit(e,t){const r=Pushref(e,t);const n=e;if(e.$id&&dt.has(e.$id))return false;if(e.$id)dt.add(e.$id);switch(e[E]){case"Array":return has_FromArray(n,r);case"AsyncIterator":return has_FromAsyncIterator(n,r);case"Constructor":return has_FromConstructor(n,r);case"Function":return has_FromFunction(n,r);case"Intersect":return has_FromIntersect(n,r);case"Iterator":return has_FromIterator(n,r);case"Not":return has_FromNot(n,r);case"Object":return has_FromObject(n,r);case"Promise":return has_FromPromise(n,r);case"Record":return has_FromRecord(n,r);case"Ref":return has_FromRef(n,r);case"This":return has_FromThis(n,r);case"Tuple":return has_FromTuple(n,r);case"Union":return has_FromUnion(n,r);default:return IsTransform(e)}}const dt=new Set;function HasTransform(e,t){dt.clear();return has_Visit(e,t)}function Decode(...e){const[t,r,n]=e.length===3?[e[0],e[1],e[2]]:[e[0],[],e[1]];if(!Check(t,r,n))throw new TransformDecodeCheckError(t,n,Errors(t,r,n).First());return HasTransform(t,r)?TransformDecode(t,r,n):n}function clone_FromObject(e){const t={};for(const r of Object.getOwnPropertyNames(e)){t[r]=clone_Clone(e[r])}for(const r of Object.getOwnPropertySymbols(e)){t[r]=clone_Clone(e[r])}return t}function clone_FromArray(e){return e.map((e=>clone_Clone(e)))}function FromTypedArray(e){return e.slice()}function FromMap(e){return new Map(clone_Clone([...e.entries()]))}function FromSet(e){return new Set(clone_Clone([...e.entries()]))}function clone_FromDate(e){return new Date(e.toISOString())}function clone_FromValue(e){return e}function clone_Clone(e){if(IsArray(e))return clone_FromArray(e);if(IsDate(e))return clone_FromDate(e);if(IsTypedArray(e))return FromTypedArray(e);if(IsMap(e))return FromMap(e);if(IsSet(e))return FromSet(e);if(IsObject(e))return clone_FromObject(e);if(IsValueType(e))return clone_FromValue(e);throw new Error("ValueClone: Unable to clone value")}function ValueOrDefault(e,t){const r=HasPropertyKey(e,"default")?e.default:undefined;const n=IsFunction(r)?r():clone_Clone(r);return IsUndefined(t)?n:IsObject(t)&&IsObject(n)?Object.assign(n,t):t}function HasDefaultProperty(e){return IsKind(e)&&"default"in e}function default_FromArray(e,t,r){if(IsArray(r)){for(let n=0;n{const s=default_Visit(r,t,n);return IsObject(s)?{...e,...s}:s}),{})}function default_FromObject(e,t,r){const n=ValueOrDefault(e,r);if(!IsObject(n))return n;const s=Object.getOwnPropertyNames(e.properties);for(const r of s){const s=default_Visit(e.properties[r],t,n[r]);if(IsUndefined(s))continue;n[r]=default_Visit(e.properties[r],t,n[r])}if(!HasDefaultProperty(e.additionalProperties))return n;for(const r of Object.getOwnPropertyNames(n)){if(s.includes(r))continue;n[r]=default_Visit(e.additionalProperties,t,n[r])}return n}function default_FromRecord(e,t,r){const n=ValueOrDefault(e,r);if(!IsObject(n))return n;const s=e.additionalProperties;const[o,i]=Object.entries(e.patternProperties)[0];const a=new RegExp(o);for(const e of Object.getOwnPropertyNames(n)){if(!(a.test(e)&&HasDefaultProperty(i)))continue;n[e]=default_Visit(i,t,n[e])}if(!HasDefaultProperty(s))return n;for(const e of Object.getOwnPropertyNames(n)){if(a.test(e))continue;n[e]=default_Visit(s,t,n[e])}return n}function default_FromRef(e,t,r){return default_Visit(deref_Deref(e,t),t,ValueOrDefault(e,r))}function default_FromThis(e,t,r){return default_Visit(deref_Deref(e,t),t,r)}function default_FromTuple(e,t,r){const n=ValueOrDefault(e,r);if(!IsArray(n)||IsUndefined(e.items))return n;const[s,o]=[e.items,Math.max(e.items.length,n.length)];for(let e=0;e/g,">").replace(/--/g,"--")}var ft="Ubiquity";async function postComment(e,t){if("issue"in e.payload&&e.payload.repository?.owner?.login){const r=createStructuredMetadata(t.metadata?.name,t);await e.octokit.rest.issues.createComment({owner:e.payload.repository.owner.login,repo:e.payload.repository.name,issue_number:e.payload.issue.number,body:[t.logMessage.diff,r].join("\n")})}else{e.logger.info("Cannot post comment because issue is not found in the payload")}}function createStructuredMetadata(e,t){const r=t.logMessage;const n=t.metadata;const s=sanitizeMetadata(n);const o=t.metadata?.stack;const i=(Array.isArray(o)?o.join("\n"):o)?.split("\n")[2]??"";const a=i.match(/at (\S+)/)?.[1]??"";const A=`\x3c!-- ${ft} - ${e} - ${a} - ${n?.revision}`;let c;const u=["```json",s,"```"].join("\n");const l=[A,s,"--\x3e"].join("\n");if(r?.type==="fatal"){c=[u,l].join("\n")}else{c=l}return`\n${c}\n`}var ht=`-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs96DOU+JqM8SyNXOB6u3\nuBKIFiyrcST/LZTYN6y7LeJlyCuGPqSDrWCfjU9Ph5PLf9TWiNmeM8DGaOpwEFC7\nU3NRxOSglo4plnQ5zRwIHHXvxyK400sQP2oISXymISuBQWjEIqkC9DybQrKwNzf+\nI0JHWPqmwMIw26UvVOtXGOOWBqTkk+N2+/9f8eDIJP5QQVwwszc8s1rXOsLMlVIf\nwShw7GO4E2jyK8TSJKpyjV8eb1JJMDwFhPiRrtZfQJUtDf2mV/67shQww61BH2Y/\nPlnalo58kWIbkqZoq1yJrL5sFb73osM5+vADTXVn79bkvea7W19nSkdMiarYt4Hq\nJQIDAQAB\n-----END PUBLIC KEY-----\n`;var Et={throttle:{onAbuseLimit:(e,t,r)=>{r.log.warn(`Abuse limit hit with "${t.method} ${t.url}", retrying in ${e} seconds.`);return true},onRateLimit:(e,t,r)=>{r.log.warn(`Rate limit hit with "${t.method} ${t.url}", retrying in ${e} seconds.`);return true},onSecondaryRateLimit:(e,t,r)=>{r.log.warn(`Secondary rate limit hit with "${t.method} ${t.url}", retrying in ${e} seconds.`);return true}}};var mt=Octokit.plugin(throttling,retry,paginateRest,restEndpointMethods,paginateGraphQL).defaults((e=>({...Et,...e})));async function verifySignature(e,t,r){try{const n={stateId:t.stateId,eventName:t.eventName,eventPayload:t.eventPayload,settings:t.settings,authToken:t.authToken,ref:t.ref,command:t.command};const s=e.replace("-----BEGIN PUBLIC KEY-----","").replace("-----END PUBLIC KEY-----","").trim();const o=Uint8Array.from(atob(s),(e=>e.charCodeAt(0)));const i=await crypto.subtle.importKey("spki",o,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},true,["verify"]);const a=Uint8Array.from(atob(r),(e=>e.charCodeAt(0)));const A=(new TextEncoder).encode(JSON.stringify(n));return await crypto.subtle.verify("RSASSA-PKCS1-v1_5",i,a,A)}catch(e){console.error(e);return false}}var It=_.Object({stateId:_.String(),eventName:_.String(),eventPayload:_.Record(_.String(),_.Any()),command:_.Union([_.Null(),_.Object({name:_.String(),parameters:_.Unknown()})]),authToken:_.String(),settings:_.Record(_.String(),_.Any()),ref:_.String(),signature:_.String()});function createPlugin(e,t,r){const n={kernelPublicKey:r?.kernelPublicKey??ht,logLevel:r?.logLevel??LOG_LEVEL.INFO,postCommentOnError:r?.postCommentOnError??true,settingsSchema:r?.settingsSchema,envSchema:r?.envSchema,commandSchema:r?.commandSchema,bypassSignatureVerification:r?.bypassSignatureVerification||false};const s=new Hono;s.get("/manifest.json",(e=>e.json(t)));s.post("/",(async t=>{if(t.req.header("content-type")!=="application/json"){throw new HTTPException(400,{message:"Content-Type must be application/json"})}const r=await t.req.json();const s=[...Value.Errors(It,r)];if(s.length){console.log(s,{depth:null});throw new HTTPException(400,{message:"Invalid body"})}const o=Value.Decode(It,r);const i=o.signature;if(!n.bypassSignatureVerification&&!await verifySignature(n.kernelPublicKey,o,i)){throw new HTTPException(400,{message:"Invalid signature"})}let a;if(n.settingsSchema){try{a=Value.Decode(n.settingsSchema,Value.Default(n.settingsSchema,o.settings))}catch(e){console.log(...Value.Errors(n.settingsSchema,o.settings),{depth:null});throw e}}else{a=o.settings}let A;const c=honoEnv(t);if(n.envSchema){try{A=Value.Decode(n.envSchema,Value.Default(n.envSchema,c))}catch(e){console.log(...Value.Errors(n.envSchema,c),{depth:null});throw e}}else{A=t.env}let u=null;if(o.command&&n.commandSchema){try{u=Value.Decode(n.commandSchema,Value.Default(n.commandSchema,o.command))}catch(e){console.log(...Value.Errors(n.commandSchema,o.command),{depth:null});throw e}}else if(o.command){u=o.command}const l={eventName:o.eventName,payload:o.eventPayload,command:u,octokit:new mt({auth:o.authToken}),config:a,env:A,logger:new Logs(n.logLevel)};try{const r=await e(l);return t.json({stateId:o.stateId,output:r??{}})}catch(e){console.error(e);let t;if(e instanceof Error){t=l.logger.error(`Error: ${e}`,{error:e})}else if(e instanceof LogReturn){t=e}else{t=l.logger.error(`Error: ${e}`)}if(n.postCommentOnError&&t){await postComment(l,t)}throw new HTTPException(500,{message:"Unexpected error"})}}));return s}function jsonType(e){return _.Transform(_.String()).Decode((t=>{const r=JSON.parse(t);return Decode(e,default_Default(e,r))})).Encode((e=>JSON.stringify(e)))}var yt=_.Union([_.Null(),_.Object({name:_.String(),parameters:_.Unknown()})]);(0,gt.config)();var Ct=_.Object({stateId:_.String(),eventName:_.String(),eventPayload:jsonType(_.Record(_.String(),_.Any())),command:jsonType(yt),authToken:_.String(),settings:jsonType(_.Record(_.String(),_.Any())),ref:_.String(),signature:_.String()});async function createActionsPlugin(e,t){const r={logLevel:t?.logLevel??i.INFO,postCommentOnError:t?.postCommentOnError??true,settingsSchema:t?.settingsSchema,envSchema:t?.envSchema,commandSchema:t?.commandSchema,kernelPublicKey:t?.kernelPublicKey??ht,bypassSignatureVerification:t?.bypassSignatureVerification||false};const n=process.env.PLUGIN_GITHUB_TOKEN;if(!n){Xe.setFailed("Error: PLUGIN_GITHUB_TOKEN env is not set");return}const s=et.context.payload.inputs;const o=s.signature;if(!r.bypassSignatureVerification&&!await verifySignature(r.kernelPublicKey,s,o)){Xe.setFailed(`Error: Invalid signature`);return}const a=et.context.payload.inputs;const u=[...Errors(Ct,a)];if(u.length){console.dir(u,{depth:null});Xe.setFailed(`Error: Invalid inputs payload: ${u.join(",")}`);return}const l=Decode(Ct,a);let p;if(r.settingsSchema){try{p=Decode(r.settingsSchema,default_Default(r.settingsSchema,l.settings))}catch(e){console.dir(...Errors(r.settingsSchema,l.settings),{depth:null});throw e}}else{p=l.settings}let d;if(r.envSchema){try{d=Decode(r.envSchema,default_Default(r.envSchema,process.env))}catch(e){console.dir(...Errors(r.envSchema,process.env),{depth:null});throw e}}else{d=process.env}let g=null;if(l.command&&r.commandSchema){try{g=Decode(r.commandSchema,default_Default(r.commandSchema,l.command))}catch(e){console.dir(...Errors(r.commandSchema,l.command),{depth:null});throw e}}else if(l.command){g=l.command}const h={eventName:l.eventName,payload:l.eventPayload,command:g,octokit:new mt({auth:l.authToken}),config:p,env:d,logger:new c(r.logLevel)};try{const t=await e(h);Xe.setOutput("result",t);await returnDataToKernel(n,l.stateId,t)}catch(e){console.error(e);let t;if(e instanceof Error){Xe.setFailed(e);t=h.logger.error(`Error: ${e}`,{error:e})}else if(e instanceof A){Xe.setFailed(e.logMessage.raw);t=e}else{Xe.setFailed(`Error: ${e}`);t=h.logger.error(`Error: ${e}`)}if(r.postCommentOnError&&t){await postErrorComment(h,t)}}}async function postErrorComment(e,t){if("issue"in e.payload&&e.payload.repository?.owner?.login){await e.octokit.rest.issues.createComment({owner:e.payload.repository.owner.login,repo:e.payload.repository.name,issue_number:e.payload.issue.number,body:`${t.logMessage.diff}\n\x3c!--\n${getGithubWorkflowRunUrl()}\n${sanitizeMetadata(t.metadata)}\n--\x3e`})}else{e.logger.info("Cannot post error comment because issue is not found in the payload")}}function getGithubWorkflowRunUrl(){return`${et.context.payload.repository?.html_url}/actions/runs/${et.context.runId}`}async function returnDataToKernel(e,t,r){const n=new mt({auth:e});await n.rest.repos.createDispatchEvent({owner:et.context.repo.owner,repo:et.context.repo.repo,event_type:"return-data-to-ubiquity-os-kernel",client_payload:{state_id:t,output:r?JSON.stringify(r):null}})}async function getWatchedRepos(e){const{config:{watch:{optOut:t}}}=e;const r=new Set;const n=e.payload.repository.owner?.login;if(!n){throw new Error("No owner found in the payload")}const s=await getReposForOrg(e,n);s.forEach((e=>r.add(e.name.toLowerCase())));for(const e of t){r.forEach((t=>t.includes(e)?r.delete(t):null))}return Array.from(r).map((e=>s.find((t=>t.name.toLowerCase()===e)))).filter((e=>e!==undefined))}async function getReposForOrg(e,t){const{octokit:r}=e;try{return await r.paginate(r.rest.repos.listForOrg,{org:t,per_page:100})}catch(e){throw new Error(`Error getting repositories for org ${t}: `+JSON.stringify(e))}}class LuxonError extends Error{}class InvalidDateTimeError extends LuxonError{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class InvalidIntervalError extends LuxonError{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class InvalidDurationError extends LuxonError{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class ConflictingSpecificationError extends LuxonError{}class InvalidUnitError extends LuxonError{constructor(e){super(`Invalid unit ${e}`)}}class InvalidArgumentError extends LuxonError{}class ZoneIsAbstractError extends LuxonError{constructor(){super("Zone is an abstract class")}}const Qt="numeric",Bt="short",bt="long";const Tt={year:Qt,month:Qt,day:Qt};const wt={year:Qt,month:Bt,day:Qt};const vt={year:Qt,month:Bt,day:Qt,weekday:Bt};const Rt={year:Qt,month:bt,day:Qt};const kt={year:Qt,month:bt,day:Qt,weekday:bt};const Dt={hour:Qt,minute:Qt};const _t={hour:Qt,minute:Qt,second:Qt};const St={hour:Qt,minute:Qt,second:Qt,timeZoneName:Bt};const Ft={hour:Qt,minute:Qt,second:Qt,timeZoneName:bt};const Nt={hour:Qt,minute:Qt,hourCycle:"h23"};const Ot={hour:Qt,minute:Qt,second:Qt,hourCycle:"h23"};const Lt={hour:Qt,minute:Qt,second:Qt,hourCycle:"h23",timeZoneName:Bt};const Ut={hour:Qt,minute:Qt,second:Qt,hourCycle:"h23",timeZoneName:bt};const Gt={year:Qt,month:Qt,day:Qt,hour:Qt,minute:Qt};const Pt={year:Qt,month:Qt,day:Qt,hour:Qt,minute:Qt,second:Qt};const Mt={year:Qt,month:Bt,day:Qt,hour:Qt,minute:Qt};const xt={year:Qt,month:Bt,day:Qt,hour:Qt,minute:Qt,second:Qt};const Vt={year:Qt,month:Bt,day:Qt,weekday:Bt,hour:Qt,minute:Qt};const jt={year:Qt,month:bt,day:Qt,hour:Qt,minute:Qt,timeZoneName:Bt};const Ht={year:Qt,month:bt,day:Qt,hour:Qt,minute:Qt,second:Qt,timeZoneName:Bt};const Yt={year:Qt,month:bt,day:Qt,weekday:bt,hour:Qt,minute:Qt,timeZoneName:bt};const qt={year:Qt,month:bt,day:Qt,weekday:bt,hour:Qt,minute:Qt,second:Qt,timeZoneName:bt};class Zone{get type(){throw new ZoneIsAbstractError}get name(){throw new ZoneIsAbstractError}get ianaName(){return this.name}get isUniversal(){throw new ZoneIsAbstractError}offsetName(e,t){throw new ZoneIsAbstractError}formatOffset(e,t){throw new ZoneIsAbstractError}offset(e){throw new ZoneIsAbstractError}equals(e){throw new ZoneIsAbstractError}get isValid(){throw new ZoneIsAbstractError}}let Jt=null;class SystemZone extends Zone{static get instance(){if(Jt===null){Jt=new SystemZone}return Jt}get type(){return"system"}get name(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}get isUniversal(){return false}offsetName(e,{format:t,locale:r}){return parseZoneInfo(e,t,r)}formatOffset(e,t){return formatOffset(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return true}}let Wt={};function makeDTF(e){if(!Wt[e]){Wt[e]=new Intl.DateTimeFormat("en-US",{hour12:false,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})}return Wt[e]}const Kt={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function hackyOffset(e,t){const r=e.format(t).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,s,o,i,a,A,c,u]=n;return[i,s,o,a,A,c,u]}function partsOffset(e,t){const r=e.formatToParts(t);const n=[];for(let e=0;e=0?d:1e3+d;return(l-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let zt={};function getCachedLF(e,t={}){const r=JSON.stringify([e,t]);let n=zt[r];if(!n){n=new Intl.ListFormat(e,t);zt[r]=n}return n}let Zt={};function getCachedDTF(e,t={}){const r=JSON.stringify([e,t]);let n=Zt[r];if(!n){n=new Intl.DateTimeFormat(e,t);Zt[r]=n}return n}let Xt={};function getCachedINF(e,t={}){const r=JSON.stringify([e,t]);let n=Xt[r];if(!n){n=new Intl.NumberFormat(e,t);Xt[r]=n}return n}let er={};function getCachedRTF(e,t={}){const{base:r,...n}=t;const s=JSON.stringify([e,n]);let o=er[s];if(!o){o=new Intl.RelativeTimeFormat(e,t);er[s]=o}return o}let tr=null;function systemLocale(){if(tr){return tr}else{tr=(new Intl.DateTimeFormat).resolvedOptions().locale;return tr}}let rr={};function getCachedWeekInfo(e){let t=rr[e];if(!t){const r=new Intl.Locale(e);t="getWeekInfo"in r?r.getWeekInfo():r.weekInfo;rr[e]=t}return t}function parseLocaleString(e){const t=e.indexOf("-x-");if(t!==-1){e=e.substring(0,t)}const r=e.indexOf("-u-");if(r===-1){return[e]}else{let t;let n;try{t=getCachedDTF(e).resolvedOptions();n=e}catch(s){const o=e.substring(0,r);t=getCachedDTF(o).resolvedOptions();n=o}const{numberingSystem:s,calendar:o}=t;return[n,s,o]}}function intlConfigString(e,t,r){if(r||t){if(!e.includes("-u-")){e+="-u"}if(r){e+=`-ca-${r}`}if(t){e+=`-nu-${t}`}return e}else{return e}}function mapMonths(e){const t=[];for(let r=1;r<=12;r++){const n=DateTime.utc(2009,r,1);t.push(e(n))}return t}function mapWeekdays(e){const t=[];for(let r=1;r<=7;r++){const n=DateTime.utc(2016,11,13+r);t.push(e(n))}return t}function listStuff(e,t,r,n){const s=e.listingMode();if(s==="error"){return null}else if(s==="en"){return r(t)}else{return n(t)}}function supportsFastNumbers(e){if(e.numberingSystem&&e.numberingSystem!=="latn"){return false}else{return e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem==="latn"}}class PolyNumberFormatter{constructor(e,t,r){this.padTo=r.padTo||0;this.floor=r.floor||false;const{padTo:n,floor:s,...o}=r;if(!t||Object.keys(o).length>0){const t={useGrouping:false,...r};if(r.padTo>0)t.minimumIntegerDigits=r.padTo;this.inf=getCachedINF(e,t)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{const t=this.floor?Math.floor(e):roundTo(e,3);return padStart(t,this.padTo)}}}class PolyDateFormatter{constructor(e,t,r){this.opts=r;this.originalZone=undefined;let n=undefined;if(this.opts.timeZone){this.dt=e}else if(e.zone.type==="fixed"){const t=-1*(e.offset/60);const r=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;if(e.offset!==0&&IANAZone.create(r).valid){n=r;this.dt=e}else{n="UTC";this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset});this.originalZone=e.zone}}else if(e.zone.type==="system"){this.dt=e}else if(e.zone.type==="iana"){this.dt=e;n=e.zone.name}else{n="UTC";this.dt=e.setZone("UTC").plus({minutes:e.offset});this.originalZone=e.zone}const s={...this.opts};s.timeZone=s.timeZone||n;this.dtf=getCachedDTF(t,s)}format(){if(this.originalZone){return this.formatToParts().map((({value:e})=>e)).join("")}return this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());if(this.originalZone){return e.map((e=>{if(e.type==="timeZoneName"){const t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else{return e}}))}return e}resolvedOptions(){return this.dtf.resolvedOptions()}}class PolyRelFormatter{constructor(e,t,r){this.opts={style:"long",...r};if(!t&&hasRelative()){this.rtf=getCachedRTF(e,r)}}format(e,t){if(this.rtf){return this.rtf.format(e,t)}else{return formatRelativeTime(t,e,this.opts.numeric,this.opts.style!=="long")}}formatToParts(e,t){if(this.rtf){return this.rtf.formatToParts(e,t)}else{return[]}}}const nr={firstDay:1,minimalDays:4,weekend:[6,7]};class Locale{static fromOpts(e){return Locale.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,r,n,s=false){const o=e||Settings.defaultLocale;const i=o||(s?"en-US":systemLocale());const a=t||Settings.defaultNumberingSystem;const A=r||Settings.defaultOutputCalendar;const c=validateWeekSettings(n)||Settings.defaultWeekSettings;return new Locale(i,a,A,c,o)}static resetCache(){tr=null;Zt={};Xt={};er={}}static fromObject({locale:e,numberingSystem:t,outputCalendar:r,weekSettings:n}={}){return Locale.create(e,t,r,n)}constructor(e,t,r,n,s){const[o,i,a]=parseLocaleString(e);this.locale=o;this.numberingSystem=t||i||null;this.outputCalendar=r||a||null;this.weekSettings=n;this.intl=intlConfigString(this.locale,this.numberingSystem,this.outputCalendar);this.weekdaysCache={format:{},standalone:{}};this.monthsCache={format:{},standalone:{}};this.meridiemCache=null;this.eraCache={};this.specifiedLocale=s;this.fastNumbersCached=null}get fastNumbers(){if(this.fastNumbersCached==null){this.fastNumbersCached=supportsFastNumbers(this)}return this.fastNumbersCached}listingMode(){const e=this.isEnglish();const t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){if(!e||Object.getOwnPropertyNames(e).length===0){return this}else{return Locale.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,validateWeekSettings(e.weekSettings)||this.weekSettings,e.defaultToEN||false)}}redefaultToEN(e={}){return this.clone({...e,defaultToEN:true})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:false})}months(e,t=false){return listStuff(this,e,months,(()=>{const r=t?{month:e,day:"numeric"}:{month:e},n=t?"format":"standalone";if(!this.monthsCache[n][e]){this.monthsCache[n][e]=mapMonths((e=>this.extract(e,r,"month")))}return this.monthsCache[n][e]}))}weekdays(e,t=false){return listStuff(this,e,weekdays,(()=>{const r=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},n=t?"format":"standalone";if(!this.weekdaysCache[n][e]){this.weekdaysCache[n][e]=mapWeekdays((e=>this.extract(e,r,"weekday")))}return this.weekdaysCache[n][e]}))}meridiems(){return listStuff(this,undefined,(()=>yr),(()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[DateTime.utc(2016,11,13,9),DateTime.utc(2016,11,13,19)].map((t=>this.extract(t,e,"dayperiod")))}return this.meridiemCache}))}eras(e){return listStuff(this,e,eras,(()=>{const t={era:e};if(!this.eraCache[e]){this.eraCache[e]=[DateTime.utc(-40,1,1),DateTime.utc(2017,1,1)].map((e=>this.extract(e,t,"era")))}return this.eraCache[e]}))}extract(e,t,r){const n=this.dtFormatter(e,t),s=n.formatToParts(),o=s.find((e=>e.type.toLowerCase()===r));return o?o.value:null}numberFormatter(e={}){return new PolyNumberFormatter(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new PolyDateFormatter(e,this.intl,t)}relFormatter(e={}){return new PolyRelFormatter(this.intl,this.isEnglish(),e)}listFormatter(e={}){return getCachedLF(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings){return this.weekSettings}else if(!hasLocaleWeekInfo()){return nr}else{return getCachedWeekInfo(this.locale)}}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}}let sr=null;class FixedOffsetZone extends Zone{static get utcInstance(){if(sr===null){sr=new FixedOffsetZone(0)}return sr}static instance(e){return e===0?FixedOffsetZone.utcInstance:new FixedOffsetZone(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t){return new FixedOffsetZone(signedOffset(t[1],t[2]))}}return null}constructor(e){super();this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${formatOffset(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0){return"Etc/UTC"}else{return`Etc/GMT${formatOffset(-this.fixed,"narrow")}`}}offsetName(){return this.name}formatOffset(e,t){return formatOffset(this.fixed,t)}get isUniversal(){return true}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return true}}class InvalidZone extends Zone{constructor(e){super();this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return false}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return false}get isValid(){return false}}function normalizeZone(e,t){let r;if(isUndefined(e)||e===null){return t}else if(e instanceof Zone){return e}else if(isString(e)){const r=e.toLowerCase();if(r==="default")return t;else if(r==="local"||r==="system")return SystemZone.instance;else if(r==="utc"||r==="gmt")return FixedOffsetZone.utcInstance;else return FixedOffsetZone.parseSpecifier(r)||IANAZone.create(e)}else if(isNumber(e)){return FixedOffsetZone.instance(e)}else if(typeof e==="object"&&"offset"in e&&typeof e.offset==="function"){return e}else{return new InvalidZone(e)}}let now=()=>Date.now(),or="system",ir=null,ar=null,Ar=null,cr=60,ur,lr=null;class Settings{static get now(){return now}static set now(e){now=e}static set defaultZone(e){or=e}static get defaultZone(){return normalizeZone(or,SystemZone.instance)}static get defaultLocale(){return ir}static set defaultLocale(e){ir=e}static get defaultNumberingSystem(){return ar}static set defaultNumberingSystem(e){ar=e}static get defaultOutputCalendar(){return Ar}static set defaultOutputCalendar(e){Ar=e}static get defaultWeekSettings(){return lr}static set defaultWeekSettings(e){lr=validateWeekSettings(e)}static get twoDigitCutoffYear(){return cr}static set twoDigitCutoffYear(e){cr=e%100}static get throwOnInvalid(){return ur}static set throwOnInvalid(e){ur=e}static resetCaches(){Locale.resetCache();IANAZone.resetCache()}}class Invalid{constructor(e,t){this.reason=e;this.explanation=t}toMessage(){if(this.explanation){return`${this.reason}: ${this.explanation}`}else{return this.reason}}}const pr=[0,31,59,90,120,151,181,212,243,273,304,334],dr=[0,31,60,91,121,152,182,213,244,274,305,335];function unitOutOfRange(e,t){return new Invalid("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function dayOfWeek(e,t,r){const n=new Date(Date.UTC(e,t-1,r));if(e<100&&e>=0){n.setUTCFullYear(n.getUTCFullYear()-1900)}const s=n.getUTCDay();return s===0?7:s}function computeOrdinal(e,t,r){return r+(isLeapYear(e)?dr:pr)[t-1]}function uncomputeOrdinal(e,t){const r=isLeapYear(e)?dr:pr,n=r.findIndex((e=>eweeksInWeekYear(n,t,r)){c=n+1;A=1}else{c=n}return{weekYear:c,weekNumber:A,weekday:a,...timeObject(e)}}function weekToGregorian(e,t=4,r=1){const{weekYear:n,weekNumber:s,weekday:o}=e,i=isoWeekdayToLocal(dayOfWeek(n,1,t),r),a=daysInYear(n);let A=s*7+o-i-7+t,c;if(A<1){c=n-1;A+=daysInYear(c)}else if(A>a){c=n+1;A-=daysInYear(n)}else{c=n}const{month:u,day:l}=uncomputeOrdinal(c,A);return{year:c,month:u,day:l,...timeObject(e)}}function gregorianToOrdinal(e){const{year:t,month:r,day:n}=e;const s=computeOrdinal(t,r,n);return{year:t,ordinal:s,...timeObject(e)}}function ordinalToGregorian(e){const{year:t,ordinal:r}=e;const{month:n,day:s}=uncomputeOrdinal(t,r);return{year:t,month:n,day:s,...timeObject(e)}}function usesLocalWeekValues(e,t){const r=!isUndefined(e.localWeekday)||!isUndefined(e.localWeekNumber)||!isUndefined(e.localWeekYear);if(r){const r=!isUndefined(e.weekday)||!isUndefined(e.weekNumber)||!isUndefined(e.weekYear);if(r){throw new ConflictingSpecificationError("Cannot mix locale-based week fields with ISO-based week fields")}if(!isUndefined(e.localWeekday))e.weekday=e.localWeekday;if(!isUndefined(e.localWeekNumber))e.weekNumber=e.localWeekNumber;if(!isUndefined(e.localWeekYear))e.weekYear=e.localWeekYear;delete e.localWeekday;delete e.localWeekNumber;delete e.localWeekYear;return{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else{return{minDaysInFirstWeek:4,startOfWeek:1}}}function hasInvalidWeekData(e,t=4,r=1){const n=isInteger(e.weekYear),s=integerBetween(e.weekNumber,1,weeksInWeekYear(e.weekYear,t,r)),o=integerBetween(e.weekday,1,7);if(!n){return unitOutOfRange("weekYear",e.weekYear)}else if(!s){return unitOutOfRange("week",e.weekNumber)}else if(!o){return unitOutOfRange("weekday",e.weekday)}else return false}function hasInvalidOrdinalData(e){const t=isInteger(e.year),r=integerBetween(e.ordinal,1,daysInYear(e.year));if(!t){return unitOutOfRange("year",e.year)}else if(!r){return unitOutOfRange("ordinal",e.ordinal)}else return false}function hasInvalidGregorianData(e){const t=isInteger(e.year),r=integerBetween(e.month,1,12),n=integerBetween(e.day,1,daysInMonth(e.year,e.month));if(!t){return unitOutOfRange("year",e.year)}else if(!r){return unitOutOfRange("month",e.month)}else if(!n){return unitOutOfRange("day",e.day)}else return false}function hasInvalidTimeData(e){const{hour:t,minute:r,second:n,millisecond:s}=e;const o=integerBetween(t,0,23)||t===24&&r===0&&n===0&&s===0,i=integerBetween(r,0,59),a=integerBetween(n,0,59),A=integerBetween(s,0,999);if(!o){return unitOutOfRange("hour",t)}else if(!i){return unitOutOfRange("minute",r)}else if(!a){return unitOutOfRange("second",n)}else if(!A){return unitOutOfRange("millisecond",s)}else return false}function isUndefined(e){return typeof e==="undefined"}function isNumber(e){return typeof e==="number"}function isInteger(e){return typeof e==="number"&&e%1===0}function isString(e){return typeof e==="string"}function isDate(e){return Object.prototype.toString.call(e)==="[object Date]"}function hasRelative(){try{return typeof Intl!=="undefined"&&!!Intl.RelativeTimeFormat}catch(e){return false}}function hasLocaleWeekInfo(){try{return typeof Intl!=="undefined"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch(e){return false}}function maybeArray(e){return Array.isArray(e)?e:[e]}function bestBy(e,t,r){if(e.length===0){return undefined}return e.reduce(((e,n)=>{const s=[t(n),n];if(!e){return s}else if(r(e[0],s[0])===e[0]){return e}else{return s}}),null)[1]}function util_pick(e,t){return t.reduce(((t,r)=>{t[r]=e[r];return t}),{})}function util_hasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function validateWeekSettings(e){if(e==null){return null}else if(typeof e!=="object"){throw new InvalidArgumentError("Week settings must be an object")}else{if(!integerBetween(e.firstDay,1,7)||!integerBetween(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some((e=>!integerBetween(e,1,7)))){throw new InvalidArgumentError("Invalid week settings")}return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}}function integerBetween(e,t,r){return isInteger(e)&&e>=t&&e<=r}function floorMod(e,t){return e-t*Math.floor(e/t)}function padStart(e,t=2){const r=e<0;let n;if(r){n="-"+(""+-e).padStart(t,"0")}else{n=(""+e).padStart(t,"0")}return n}function parseInteger(e){if(isUndefined(e)||e===null||e===""){return undefined}else{return parseInt(e,10)}}function parseFloating(e){if(isUndefined(e)||e===null||e===""){return undefined}else{return parseFloat(e)}}function parseMillis(e){if(isUndefined(e)||e===null||e===""){return undefined}else{const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function roundTo(e,t,r=false){const n=10**t,s=r?Math.trunc:Math.round;return s(e*n)/n}function isLeapYear(e){return e%4===0&&(e%100!==0||e%400===0)}function daysInYear(e){return isLeapYear(e)?366:365}function daysInMonth(e,t){const r=floorMod(t-1,12)+1,n=e+(t-r)/12;if(r===2){return isLeapYear(n)?29:28}else{return[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}}function objToLocalTS(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);if(e.year<100&&e.year>=0){t=new Date(t);t.setUTCFullYear(e.year,e.month-1,e.day)}return+t}function firstWeekOffset(e,t,r){const n=isoWeekdayToLocal(dayOfWeek(e,1,t),r);return-n+t-1}function weeksInWeekYear(e,t=4,r=1){const n=firstWeekOffset(e,t,r);const s=firstWeekOffset(e+1,t,r);return(daysInYear(e)-n+s)/7}function untruncateYear(e){if(e>99){return e}else return e>Settings.twoDigitCutoffYear?1900+e:2e3+e}function parseZoneInfo(e,t,r,n=null){const s=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(n){o.timeZone=n}const i={timeZoneName:t,...o};const a=new Intl.DateTimeFormat(r,i).formatToParts(s).find((e=>e.type.toLowerCase()==="timezonename"));return a?a.value:null}function signedOffset(e,t){let r=parseInt(e,10);if(Number.isNaN(r)){r=0}const n=parseInt(t,10)||0,s=r<0||Object.is(r,-0)?-n:n;return r*60+s}function asNumber(e){const t=Number(e);if(typeof e==="boolean"||e===""||Number.isNaN(t))throw new InvalidArgumentError(`Invalid unit value ${e}`);return t}function normalizeObject(e,t){const r={};for(const n in e){if(util_hasOwnProperty(e,n)){const s=e[n];if(s===undefined||s===null)continue;r[t(n)]=asNumber(s)}}return r}function formatOffset(e,t){const r=Math.trunc(Math.abs(e/60)),n=Math.trunc(Math.abs(e%60)),s=e>=0?"+":"-";switch(t){case"short":return`${s}${padStart(r,2)}:${padStart(n,2)}`;case"narrow":return`${s}${r}${n>0?`:${n}`:""}`;case"techie":return`${s}${padStart(r,2)}${padStart(n,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function timeObject(e){return util_pick(e,["hour","minute","second","millisecond"])}function stringify(e){return JSON.stringify(e,Object.keys(e).sort())}const gr=["January","February","March","April","May","June","July","August","September","October","November","December"];const fr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];const hr=["J","F","M","A","M","J","J","A","S","O","N","D"];function months(e){switch(e){case"narrow":return[...hr];case"short":return[...fr];case"long":return[...gr];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const Er=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];const mr=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];const Ir=["M","T","W","T","F","S","S"];function weekdays(e){switch(e){case"narrow":return[...Ir];case"short":return[...mr];case"long":return[...Er];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const yr=["AM","PM"];const Cr=["Before Christ","Anno Domini"];const Qr=["BC","AD"];const Br=["B","A"];function eras(e){switch(e){case"narrow":return[...Br];case"short":return[...Qr];case"long":return[...Cr];default:return null}}function meridiemForDateTime(e){return yr[e.hour<12?0:1]}function weekdayForDateTime(e,t){return weekdays(t)[e.weekday-1]}function monthForDateTime(e,t){return months(t)[e.month-1]}function eraForDateTime(e,t){return eras(t)[e.year<0?0:1]}function formatRelativeTime(e,t,r="always",n=false){const s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]};const o=["hours","minutes","seconds"].indexOf(e)===-1;if(r==="auto"&&o){const r=e==="days";switch(t){case 1:return r?"tomorrow":`next ${s[e][0]}`;case-1:return r?"yesterday":`last ${s[e][0]}`;case 0:return r?"today":`this ${s[e][0]}`;default:}}const i=Object.is(t,-0)||t<0,a=Math.abs(t),A=a===1,c=s[e],u=n?A?c[1]:c[2]||c[1]:A?s[e][0]:e;return i?`${a} ${u} ago`:`in ${a} ${u}`}function formatString(e){const t=pick(e,["weekday","era","year","month","day","hour","minute","second","timeZoneName","hourCycle"]),r=stringify(t),n="EEEE, LLLL d, yyyy, h:mm a";switch(r){case stringify(Formats.DATE_SHORT):return"M/d/yyyy";case stringify(Formats.DATE_MED):return"LLL d, yyyy";case stringify(Formats.DATE_MED_WITH_WEEKDAY):return"EEE, LLL d, yyyy";case stringify(Formats.DATE_FULL):return"LLLL d, yyyy";case stringify(Formats.DATE_HUGE):return"EEEE, LLLL d, yyyy";case stringify(Formats.TIME_SIMPLE):return"h:mm a";case stringify(Formats.TIME_WITH_SECONDS):return"h:mm:ss a";case stringify(Formats.TIME_WITH_SHORT_OFFSET):return"h:mm a";case stringify(Formats.TIME_WITH_LONG_OFFSET):return"h:mm a";case stringify(Formats.TIME_24_SIMPLE):return"HH:mm";case stringify(Formats.TIME_24_WITH_SECONDS):return"HH:mm:ss";case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):return"HH:mm";case stringify(Formats.TIME_24_WITH_LONG_OFFSET):return"HH:mm";case stringify(Formats.DATETIME_SHORT):return"M/d/yyyy, h:mm a";case stringify(Formats.DATETIME_MED):return"LLL d, yyyy, h:mm a";case stringify(Formats.DATETIME_FULL):return"LLLL d, yyyy, h:mm a";case stringify(Formats.DATETIME_HUGE):return n;case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):return"M/d/yyyy, h:mm:ss a";case stringify(Formats.DATETIME_MED_WITH_SECONDS):return"LLL d, yyyy, h:mm:ss a";case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):return"EEE, d LLL yyyy, h:mm a";case stringify(Formats.DATETIME_FULL_WITH_SECONDS):return"LLLL d, yyyy, h:mm:ss a";case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):return"EEEE, LLLL d, yyyy, h:mm:ss a";default:return n}}function stringifyTokens(e,t){let r="";for(const n of e){if(n.literal){r+=n.val}else{r+=t(n.val)}}return r}const br={D:Tt,DD:wt,DDD:Rt,DDDD:kt,t:Dt,tt:_t,ttt:St,tttt:Ft,T:Nt,TT:Ot,TTT:Lt,TTTT:Ut,f:Gt,ff:Mt,fff:jt,ffff:Yt,F:Pt,FF:xt,FFF:Ht,FFFF:qt};class Formatter{static create(e,t={}){return new Formatter(e,t)}static parseFormat(e){let t=null,r="",n=false;const s=[];for(let o=0;o0){s.push({literal:n||/^\s+$/.test(r),val:r})}t=null;r="";n=!n}else if(n){r+=i}else if(i===t){r+=i}else{if(r.length>0){s.push({literal:/^\s+$/.test(r),val:r})}r=i;t=i}}if(r.length>0){s.push({literal:n||/^\s+$/.test(r),val:r})}return s}static macroTokenToFormatOpts(e){return br[e]}constructor(e,t){this.opts=t;this.loc=e;this.systemLoc=null}formatWithSystemDefault(e,t){if(this.systemLoc===null){this.systemLoc=this.loc.redefaultToSystem()}const r=this.systemLoc.dtFormatter(e,{...this.opts,...t});return r.format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){const r=this.dtFormatter(e.start,t);return r.dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple){return padStart(e,t)}const r={...this.opts};if(t>0){r.padTo=t}return this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,t){const r=this.loc.listingMode()==="en",n=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",string=(t,r)=>this.loc.extract(e,t,r),formatOffset=t=>{if(e.isOffsetFixed&&e.offset===0&&t.allowZ){return"Z"}return e.isValid?e.zone.formatOffset(e.ts,t.format):""},meridiem=()=>r?meridiemForDateTime(e):string({hour:"numeric",hourCycle:"h12"},"dayperiod"),month=(t,n)=>r?monthForDateTime(e,t):string(n?{month:t}:{month:t,day:"numeric"},"month"),weekday=(t,n)=>r?weekdayForDateTime(e,t):string(n?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday"),maybeMacro=t=>{const r=Formatter.macroTokenToFormatOpts(t);if(r){return this.formatWithSystemDefault(e,r)}else{return t}},era=t=>r?eraForDateTime(e,t):string({era:t},"era"),tokenToString=t=>{switch(t){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return formatOffset({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return formatOffset({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return formatOffset({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return meridiem();case"d":return n?string({day:"numeric"},"day"):this.num(e.day);case"dd":return n?string({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return weekday("short",true);case"cccc":return weekday("long",true);case"ccccc":return weekday("narrow",true);case"E":return this.num(e.weekday);case"EEE":return weekday("short",false);case"EEEE":return weekday("long",false);case"EEEEE":return weekday("narrow",false);case"L":return n?string({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return n?string({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return month("short",true);case"LLLL":return month("long",true);case"LLLLL":return month("narrow",true);case"M":return n?string({month:"numeric"},"month"):this.num(e.month);case"MM":return n?string({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return month("short",false);case"MMMM":return month("long",false);case"MMMMM":return month("narrow",false);case"y":return n?string({year:"numeric"},"year"):this.num(e.year);case"yy":return n?string({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return n?string({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return n?string({year:"numeric"},"year"):this.num(e.year,6);case"G":return era("short");case"GG":return era("long");case"GGGGG":return era("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return maybeMacro(t)}};return stringifyTokens(Formatter.parseFormat(t),tokenToString)}formatDurationFromString(e,t){const tokenToField=e=>{switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},tokenToString=e=>t=>{const r=tokenToField(t);if(r){return this.num(e.get(r),t.length)}else{return t}},r=Formatter.parseFormat(t),n=r.reduce(((e,{literal:t,val:r})=>t?e:e.concat(r)),[]),s=e.shiftTo(...n.map(tokenToField).filter((e=>e)));return stringifyTokens(r,tokenToString(s))}}const Tr=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function combineRegexes(...e){const t=e.reduce(((e,t)=>e+t.source),"");return RegExp(`^${t}$`)}function combineExtractors(...e){return t=>e.reduce((([e,r,n],s)=>{const[o,i,a]=s(t,n);return[{...e,...o},i||r,a]}),[{},null,1]).slice(0,2)}function regexParser_parse(e,...t){if(e==null){return[null,null]}for(const[r,n]of t){const t=r.exec(e);if(t){return n(t)}}return[null,null]}function simpleParse(...e){return(t,r)=>{const n={};let s;for(s=0;se!==undefined&&(t||e&&u)?-e:e;return[{years:maybeNegate(parseFloating(r)),months:maybeNegate(parseFloating(n)),weeks:maybeNegate(parseFloating(s)),days:maybeNegate(parseFloating(o)),hours:maybeNegate(parseFloating(i)),minutes:maybeNegate(parseFloating(a)),seconds:maybeNegate(parseFloating(A),A==="-0"),milliseconds:maybeNegate(parseMillis(c),l)}]}const Vr={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function fromStrings(e,t,r,n,s,o,i){const a={year:t.length===2?untruncateYear(parseInteger(t)):parseInteger(t),month:fr.indexOf(r)+1,day:parseInteger(n),hour:parseInteger(s),minute:parseInteger(o)};if(i)a.second=parseInteger(i);if(e){a.weekday=e.length>3?Er.indexOf(e)+1:mr.indexOf(e)+1}return a}const jr=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function extractRFC2822(e){const[,t,r,n,s,o,i,a,A,c,u,l]=e,p=fromStrings(t,s,n,r,o,i,a);let d;if(A){d=Vr[A]}else if(c){d=0}else{d=signedOffset(u,l)}return[p,new FixedOffsetZone(d)]}function preprocessRFC2822(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const Hr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Yr=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,qr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function extractRFC1123Or850(e){const[,t,r,n,s,o,i,a]=e,A=fromStrings(t,s,n,r,o,i,a);return[A,FixedOffsetZone.utcInstance]}function extractASCII(e){const[,t,r,n,s,o,i,a]=e,A=fromStrings(t,a,r,n,s,o,i);return[A,FixedOffsetZone.utcInstance]}const Jr=combineRegexes(_r,Dr);const Wr=combineRegexes(Sr,Dr);const Kr=combineRegexes(Fr,Dr);const $r=combineRegexes(kr);const zr=combineExtractors(extractISOYmd,extractISOTime,extractISOOffset,extractIANAZone);const Zr=combineExtractors(Nr,extractISOTime,extractISOOffset,extractIANAZone);const Xr=combineExtractors(Lr,extractISOTime,extractISOOffset,extractIANAZone);const en=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseISODate(e){return regexParser_parse(e,[Jr,zr],[Wr,Zr],[Kr,Xr],[$r,en])}function parseRFC2822Date(e){return regexParser_parse(preprocessRFC2822(e),[jr,extractRFC2822])}function parseHTTPDate(e){return regexParser_parse(e,[Hr,extractRFC1123Or850],[Yr,extractRFC1123Or850],[qr,extractASCII])}function parseISODuration(e){return regexParser_parse(e,[xr,extractISODuration])}const tn=combineExtractors(extractISOTime);function parseISOTimeOnly(e){return regexParser_parse(e,[Mr,tn])}const rn=combineRegexes(Ur,Pr);const nn=combineRegexes(Gr);const sn=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseSQL(e){return regexParser_parse(e,[rn,zr],[nn,sn])}const on="Invalid Duration";const an={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},An={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...an},cn=146097/400,un=146097/4800,ln={years:{quarters:4,months:12,weeks:cn/7,days:cn,hours:cn*24,minutes:cn*24*60,seconds:cn*24*60*60,milliseconds:cn*24*60*60*1e3},quarters:{months:3,weeks:cn/28,days:cn/4,hours:cn*24/4,minutes:cn*24*60/4,seconds:cn*24*60*60/4,milliseconds:cn*24*60*60*1e3/4},months:{weeks:un/7,days:un,hours:un*24,minutes:un*24*60,seconds:un*24*60*60,milliseconds:un*24*60*60*1e3},...an};const pn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"];const dn=pn.slice(0).reverse();function clone(e,t,r=false){const n={values:r?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new Duration(n)}function durationToMillis(e,t){let r=t.milliseconds??0;for(const n of dn.slice(1)){if(t[n]){r+=t[n]*e[n]["milliseconds"]}}return r}function normalizeValues(e,t){const r=durationToMillis(e,t)<0?-1:1;pn.reduceRight(((n,s)=>{if(!isUndefined(t[s])){if(n){const o=t[n]*r;const i=e[s][n];const a=Math.floor(o/i);t[s]+=a*r;t[n]-=a*i*r}return s}else{return n}}),null);pn.reduce(((r,n)=>{if(!isUndefined(t[n])){if(r){const s=t[r]%1;t[r]-=s;t[n]+=s*e[r][n]}return n}else{return r}}),null)}function removeZeroes(e){const t={};for(const[r,n]of Object.entries(e)){if(n!==0){t[r]=n}}return t}class Duration{constructor(e){const t=e.conversionAccuracy==="longterm"||false;let r=t?ln:An;if(e.matrix){r=e.matrix}this.values=e.values;this.loc=e.loc||Locale.create();this.conversionAccuracy=t?"longterm":"casual";this.invalid=e.invalid||null;this.matrix=r;this.isLuxonDuration=true}static fromMillis(e,t){return Duration.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!=="object"){throw new InvalidArgumentError(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`)}return new Duration({values:normalizeObject(e,Duration.normalizeUnit),loc:Locale.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(isNumber(e)){return Duration.fromMillis(e)}else if(Duration.isDuration(e)){return e}else if(typeof e==="object"){return Duration.fromObject(e)}else{throw new InvalidArgumentError(`Unknown duration argument ${e} of type ${typeof e}`)}}static fromISO(e,t){const[r]=parseISODuration(e);if(r){return Duration.fromObject(r,t)}else{return Duration.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}}static fromISOTime(e,t){const[r]=parseISOTimeOnly(e);if(r){return Duration.fromObject(r,t)}else{return Duration.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}}static invalid(e,t=null){if(!e){throw new InvalidArgumentError("need to specify a reason the Duration is invalid")}const r=e instanceof Invalid?e:new Invalid(e,t);if(Settings.throwOnInvalid){throw new InvalidDurationError(r)}else{return new Duration({invalid:r})}}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new InvalidUnitError(e);return t}static isDuration(e){return e&&e.isLuxonDuration||false}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){const r={...t,floor:t.round!==false&&t.floor!==false};return this.isValid?Formatter.create(this.loc,r).formatDurationFromString(this,e):on}toHuman(e={}){if(!this.isValid)return on;const t=pn.map((t=>{const r=this.values[t];if(isUndefined(r)){return null}return this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:t.slice(0,-1)}).format(r)})).filter((e=>e));return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){if(!this.isValid)return{};return{...this.values}}toISO(){if(!this.isValid)return null;let e="P";if(this.years!==0)e+=this.years+"Y";if(this.months!==0||this.quarters!==0)e+=this.months+this.quarters*3+"M";if(this.weeks!==0)e+=this.weeks+"W";if(this.days!==0)e+=this.days+"D";if(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)e+="T";if(this.hours!==0)e+=this.hours+"H";if(this.minutes!==0)e+=this.minutes+"M";if(this.seconds!==0||this.milliseconds!==0)e+=roundTo(this.seconds+this.milliseconds/1e3,3)+"S";if(e==="P")e+="T0S";return e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();if(t<0||t>=864e5)return null;e={suppressMilliseconds:false,suppressSeconds:false,includePrefix:false,format:"extended",...e,includeOffset:false};const r=DateTime.fromMillis(t,{zone:"UTC"});return r.toISOTime(e)}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid){return`Duration { values: ${JSON.stringify(this.values)} }`}else{return`Duration { Invalid, reason: ${this.invalidReason} }`}}toMillis(){if(!this.isValid)return NaN;return durationToMillis(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e),r={};for(const e of pn){if(util_hasOwnProperty(t.values,e)||util_hasOwnProperty(this.values,e)){r[e]=t.get(e)+this.get(e)}}return clone(this,{values:r},true)}minus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const r of Object.keys(this.values)){t[r]=asNumber(e(this.values[r],r))}return clone(this,{values:t},true)}get(e){return this[Duration.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const t={...this.values,...normalizeObject(e,Duration.normalizeUnit)};return clone(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:r,matrix:n}={}){const s=this.loc.clone({locale:e,numberingSystem:t});const o={loc:s,matrix:n,conversionAccuracy:r};return clone(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();normalizeValues(this.matrix,e);return clone(this,{values:e},true)}rescale(){if(!this.isValid)return this;const e=removeZeroes(this.normalize().shiftToAll().toObject());return clone(this,{values:e},true)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0){return this}e=e.map((e=>Duration.normalizeUnit(e)));const t={},r={},n=this.toObject();let s;for(const o of pn){if(e.indexOf(o)>=0){s=o;let e=0;for(const t in r){e+=this.matrix[t][o]*r[t];r[t]=0}if(isNumber(n[o])){e+=n[o]}const i=Math.trunc(e);t[o]=i;r[o]=(e*1e3-i*1e3)/1e3}else if(isNumber(n[o])){r[o]=n[o]}}for(const e in r){if(r[e]!==0){t[s]+=e===s?r[e]:r[e]/this.matrix[s][e]}}normalizeValues(this.matrix,t);return clone(this,{values:t},true)}shiftToAll(){if(!this.isValid)return this;return this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds")}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values)){e[t]=this.values[t]===0?0:-this.values[t]}return clone(this,{values:e},true)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid){return false}if(!this.loc.equals(e.loc)){return false}function eq(e,t){if(e===undefined||e===0)return t===undefined||t===0;return e===t}for(const t of pn){if(!eq(this.values[t],e.values[t])){return false}}return true}}const gn="Invalid Interval";function validateStartEnd(e,t){if(!e||!e.isValid){return Interval.invalid("missing or invalid start")}else if(!t||!t.isValid){return Interval.invalid("missing or invalid end")}else if(te}isBefore(e){if(!this.isValid)return false;return this.e<=e}contains(e){if(!this.isValid)return false;return this.s<=e&&this.e>e}set({start:e,end:t}={}){if(!this.isValid)return this;return Interval.fromDateTimes(e||this.s,t||this.e)}splitAt(...e){if(!this.isValid)return[];const t=e.map(friendlyDateTime).filter((e=>this.contains(e))).sort(((e,t)=>e.toMillis()-t.toMillis())),r=[];let{s:n}=this,s=0;while(n+this.e?this.e:e;r.push(Interval.fromDateTimes(n,o));n=o;s+=1}return r}splitBy(e){const t=Duration.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0){return[]}let{s:r}=this,n=1,s;const o=[];while(re*n)));s=+e>+this.e?this.e:e;o.push(Interval.fromDateTimes(r,s));r=s;n+=1}return o}divideEqually(e){if(!this.isValid)return[];return this.splitBy(this.length()/e).slice(0,e)}overlaps(e){return this.e>e.s&&this.s=e.e}equals(e){if(!this.isValid||!e.isValid){return false}return this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,r=this.e=r){return null}else{return Interval.fromDateTimes(t,r)}}union(e){if(!this.isValid)return this;const t=this.se.e?this.e:e.e;return Interval.fromDateTimes(t,r)}static merge(e){const[t,r]=e.sort(((e,t)=>e.s-t.s)).reduce((([e,t],r)=>{if(!t){return[e,r]}else if(t.overlaps(r)||t.abutsStart(r)){return[e,t.union(r)]}else{return[e.concat([t]),r]}}),[[],null]);if(r){t.push(r)}return t}static xor(e){let t=null,r=0;const n=[],s=e.map((e=>[{time:e.s,type:"s"},{time:e.e,type:"e"}])),o=Array.prototype.concat(...s),i=o.sort(((e,t)=>e.time-t.time));for(const e of i){r+=e.type==="s"?1:-1;if(r===1){t=e.time}else{if(t&&+t!==+e.time){n.push(Interval.fromDateTimes(t,e.time))}t=null}}return Interval.merge(n)}difference(...e){return Interval.xor([this].concat(e)).map((e=>this.intersection(e))).filter((e=>e&&!e.isEmpty()))}toString(){if(!this.isValid)return gn;return`[${this.s.toISO()} – ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid){return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`}else{return`Interval { Invalid, reason: ${this.invalidReason} }`}}toLocaleString(e=Tt,t={}){return this.isValid?Formatter.create(this.s.loc.clone(t),e).formatInterval(this):gn}toISO(e){if(!this.isValid)return gn;return`${this.s.toISO(e)}/${this.e.toISO(e)}`}toISODate(){if(!this.isValid)return gn;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(e){if(!this.isValid)return gn;return`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`}toFormat(e,{separator:t=" – "}={}){if(!this.isValid)return gn;return`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`}toDuration(e,t){if(!this.isValid){return Duration.invalid(this.invalidReason)}return this.e.diff(this.s,e,t)}mapEndpoints(e){return Interval.fromDateTimes(e(this.s),e(this.e))}}class Info{static hasDST(e=Settings.defaultZone){const t=DateTime.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return IANAZone.isValidZone(e)}static normalizeZone(e){return normalizeZone(e,Settings.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||Locale.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||Locale.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||Locale.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null,outputCalendar:s="gregory"}={}){return(n||Locale.create(t,r,s)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null,outputCalendar:s="gregory"}={}){return(n||Locale.create(t,r,s)).months(e,true)}static weekdays(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null}={}){return(n||Locale.create(t,r,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:r=null,locObj:n=null}={}){return(n||Locale.create(t,r,null)).weekdays(e,true)}static meridiems({locale:e=null}={}){return Locale.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return Locale.create(t,null,"gregory").eras(e)}static features(){return{relative:hasRelative(),localeWeek:hasLocaleWeekInfo()}}}function dayDiff(e,t){const utcDayStart=e=>e.toUTC(0,{keepLocalTime:true}).startOf("day").valueOf(),r=utcDayStart(t)-utcDayStart(e);return Math.floor(Duration.fromMillis(r).as("days"))}function highOrderDiffs(e,t,r){const n=[["years",(e,t)=>t.year-e.year],["quarters",(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],["months",(e,t)=>t.month-e.month+(t.year-e.year)*12],["weeks",(e,t)=>{const r=dayDiff(e,t);return(r-r%7)/7}],["days",dayDiff]];const s={};const o=e;let i,a;for(const[A,c]of n){if(r.indexOf(A)>=0){i=A;s[A]=c(e,t);a=o.plus(s);if(a>t){s[A]--;e=o.plus(s);if(e>t){a=e;s[A]--;e=o.plus(s)}}else{e=a}}}return[e,s,a,i]}function diff(e,t,r,n){let[s,o,i,a]=highOrderDiffs(e,t,r);const A=t-s;const c=r.filter((e=>["hours","minutes","seconds","milliseconds"].indexOf(e)>=0));if(c.length===0){if(i0){return Duration.fromMillis(A,n).shiftTo(...c).plus(u)}else{return u}}const fn={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"};const hn={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]};const En=fn.hanidec.replace(/[\[|\]]/g,"").split("");function parseDigits(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let r=0;r=r&&n<=s){t+=n-r}}}}return parseInt(t,10)}else{return t}}function digitRegex({numberingSystem:e},t=""){return new RegExp(`${fn[e||"latn"]}${t}`)}const mn="missing Intl.DateTimeFormat.formatToParts support";function intUnit(e,t=e=>e){return{regex:e,deser:([e])=>t(parseDigits(e))}}const In=String.fromCharCode(160);const yn=`[ ${In}]`;const Cn=new RegExp(yn,"g");function fixListRegex(e){return e.replace(/\./g,"\\.?").replace(Cn,yn)}function stripInsensitivities(e){return e.replace(/\./g,"").replace(Cn," ").toLowerCase()}function oneOf(e,t){if(e===null){return null}else{return{regex:RegExp(e.map(fixListRegex).join("|")),deser:([r])=>e.findIndex((e=>stripInsensitivities(r)===stripInsensitivities(e)))+t}}}function offset(e,t){return{regex:e,deser:([,e,t])=>signedOffset(e,t),groups:t}}function simple(e){return{regex:e,deser:([e])=>e}}function escapeToken(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function unitForToken(e,t){const r=digitRegex(t),n=digitRegex(t,"{2}"),s=digitRegex(t,"{3}"),o=digitRegex(t,"{4}"),i=digitRegex(t,"{6}"),a=digitRegex(t,"{1,2}"),A=digitRegex(t,"{1,3}"),c=digitRegex(t,"{1,6}"),u=digitRegex(t,"{1,9}"),l=digitRegex(t,"{2,4}"),p=digitRegex(t,"{4,6}"),literal=e=>({regex:RegExp(escapeToken(e.val)),deser:([e])=>e,literal:true}),unitate=d=>{if(e.literal){return literal(d)}switch(d.val){case"G":return oneOf(t.eras("short"),0);case"GG":return oneOf(t.eras("long"),0);case"y":return intUnit(c);case"yy":return intUnit(l,untruncateYear);case"yyyy":return intUnit(o);case"yyyyy":return intUnit(p);case"yyyyyy":return intUnit(i);case"M":return intUnit(a);case"MM":return intUnit(n);case"MMM":return oneOf(t.months("short",true),1);case"MMMM":return oneOf(t.months("long",true),1);case"L":return intUnit(a);case"LL":return intUnit(n);case"LLL":return oneOf(t.months("short",false),1);case"LLLL":return oneOf(t.months("long",false),1);case"d":return intUnit(a);case"dd":return intUnit(n);case"o":return intUnit(A);case"ooo":return intUnit(s);case"HH":return intUnit(n);case"H":return intUnit(a);case"hh":return intUnit(n);case"h":return intUnit(a);case"mm":return intUnit(n);case"m":return intUnit(a);case"q":return intUnit(a);case"qq":return intUnit(n);case"s":return intUnit(a);case"ss":return intUnit(n);case"S":return intUnit(A);case"SSS":return intUnit(s);case"u":return simple(u);case"uu":return simple(a);case"uuu":return intUnit(r);case"a":return oneOf(t.meridiems(),0);case"kkkk":return intUnit(o);case"kk":return intUnit(l,untruncateYear);case"W":return intUnit(a);case"WW":return intUnit(n);case"E":case"c":return intUnit(r);case"EEE":return oneOf(t.weekdays("short",false),1);case"EEEE":return oneOf(t.weekdays("long",false),1);case"ccc":return oneOf(t.weekdays("short",true),1);case"cccc":return oneOf(t.weekdays("long",true),1);case"Z":case"ZZ":return offset(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return offset(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return simple(/[a-z_+-/]{1,256}?/i);case" ":return simple(/[^\S\n\r]/);default:return literal(d)}};const d=unitate(e)||{invalidReason:mn};d.token=e;return d}const Qn={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function tokenForPart(e,t,r){const{type:n,value:s}=e;if(n==="literal"){const e=/^\s+$/.test(s);return{literal:!e,val:e?" ":s}}const o=t[n];let i=n;if(n==="hour"){if(t.hour12!=null){i=t.hour12?"hour12":"hour24"}else if(t.hourCycle!=null){if(t.hourCycle==="h11"||t.hourCycle==="h12"){i="hour12"}else{i="hour24"}}else{i=r.hour12?"hour12":"hour24"}}let a=Qn[i];if(typeof a==="object"){a=a[o]}if(a){return{literal:false,val:a}}return undefined}function buildRegex(e){const t=e.map((e=>e.regex)).reduce(((e,t)=>`${e}(${t.source})`),"");return[`^${t}$`,e]}function match(e,t,r){const n=e.match(t);if(n){const e={};let t=1;for(const s in r){if(util_hasOwnProperty(r,s)){const o=r[s],i=o.groups?o.groups+1:1;if(!o.literal&&o.token){e[o.token.val[0]]=o.deser(n.slice(t,t+i))}t+=i}}return[n,e]}else{return[n,{}]}}function dateTimeFromMatches(e){const toField=e=>{switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let t=null;let r;if(!isUndefined(e.z)){t=IANAZone.create(e.z)}if(!isUndefined(e.Z)){if(!t){t=new FixedOffsetZone(e.Z)}r=e.Z}if(!isUndefined(e.q)){e.M=(e.q-1)*3+1}if(!isUndefined(e.h)){if(e.h<12&&e.a===1){e.h+=12}else if(e.h===12&&e.a===0){e.h=0}}if(e.G===0&&e.y){e.y=-e.y}if(!isUndefined(e.u)){e.S=parseMillis(e.u)}const n=Object.keys(e).reduce(((t,r)=>{const n=toField(r);if(n){t[n]=e[r]}return t}),{});return[n,t,r]}let Bn=null;function getDummyDateTime(){if(!Bn){Bn=DateTime.fromMillis(1555555555555)}return Bn}function maybeExpandMacroToken(e,t){if(e.literal){return e}const r=Formatter.macroTokenToFormatOpts(e.val);const n=formatOptsToTokens(r,t);if(n==null||n.includes(undefined)){return e}return n}function expandMacroTokens(e,t){return Array.prototype.concat(...e.map((e=>maybeExpandMacroToken(e,t))))}function explainFromTokens(e,t,r){const n=expandMacroTokens(Formatter.parseFormat(r),e),s=n.map((t=>unitForToken(t,e))),o=s.find((e=>e.invalidReason));if(o){return{input:t,tokens:n,invalidReason:o.invalidReason}}else{const[e,r]=buildRegex(s),o=RegExp(e,"i"),[i,a]=match(t,o,r),[A,c,u]=a?dateTimeFromMatches(a):[null,null,undefined];if(util_hasOwnProperty(a,"a")&&util_hasOwnProperty(a,"H")){throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format")}return{input:t,tokens:n,regex:o,rawMatches:i,matches:a,result:A,zone:c,specificOffset:u}}}function parseFromTokens(e,t,r){const{result:n,zone:s,specificOffset:o,invalidReason:i}=explainFromTokens(e,t,r);return[n,s,o,i]}function formatOptsToTokens(e,t){if(!e){return null}const r=Formatter.create(t,e);const n=r.dtFormatter(getDummyDateTime());const s=n.formatToParts();const o=n.resolvedOptions();return s.map((t=>tokenForPart(t,e,o)))}const bn="Invalid DateTime";const Tn=864e13;function unsupportedZone(e){return new Invalid("unsupported zone",`the zone "${e.name}" is not supported`)}function possiblyCachedWeekData(e){if(e.weekData===null){e.weekData=gregorianToWeek(e.c)}return e.weekData}function possiblyCachedLocalWeekData(e){if(e.localWeekData===null){e.localWeekData=gregorianToWeek(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())}return e.localWeekData}function datetime_clone(e,t){const r={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new DateTime({...r,...t,old:r})}function fixOffset(e,t,r){let n=e-t*60*1e3;const s=r.offset(n);if(t===s){return[n,t]}n-=(s-t)*60*1e3;const o=r.offset(n);if(s===o){return[n,s]}return[e-Math.min(s,o)*60*1e3,Math.max(s,o)]}function tsToObj(e,t){e+=t*60*1e3;const r=new Date(e);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function objToTS(e,t,r){return fixOffset(objToLocalTS(e),t,r)}function adjustTime(e,t){const r=e.o,n=e.c.year+Math.trunc(t.years),s=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:n,month:s,day:Math.min(e.c.day,daysInMonth(n,s))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},i=Duration.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),a=objToLocalTS(o);let[A,c]=fixOffset(a,r,e.zone);if(i!==0){A+=i;c=e.zone.offset(A)}return{ts:A,o:c}}function parseDataToDateTime(e,t,r,n,s,o){const{setZone:i,zone:a}=r;if(e&&Object.keys(e).length!==0||t){const n=t||a,s=DateTime.fromObject(e,{...r,zone:n,specificOffset:o});return i?s:s.setZone(a)}else{return DateTime.invalid(new Invalid("unparsable",`the input "${s}" can't be parsed as ${n}`))}}function toTechFormat(e,t,r=true){return e.isValid?Formatter.create(Locale.create("en-US"),{allowZ:r,forceSimple:true}).formatDateTimeFromString(e,t):null}function toISODate(e,t){const r=e.c.year>9999||e.c.year<0;let n="";if(r&&e.c.year>=0)n+="+";n+=padStart(e.c.year,r?6:4);if(t){n+="-";n+=padStart(e.c.month);n+="-";n+=padStart(e.c.day)}else{n+=padStart(e.c.month);n+=padStart(e.c.day)}return n}function toISOTime(e,t,r,n,s,o){let i=padStart(e.c.hour);if(t){i+=":";i+=padStart(e.c.minute);if(e.c.millisecond!==0||e.c.second!==0||!r){i+=":"}}else{i+=padStart(e.c.minute)}if(e.c.millisecond!==0||e.c.second!==0||!r){i+=padStart(e.c.second);if(e.c.millisecond!==0||!n){i+=".";i+=padStart(e.c.millisecond,3)}}if(s){if(e.isOffsetFixed&&e.offset===0&&!o){i+="Z"}else if(e.o<0){i+="-";i+=padStart(Math.trunc(-e.o/60));i+=":";i+=padStart(Math.trunc(-e.o%60))}else{i+="+";i+=padStart(Math.trunc(e.o/60));i+=":";i+=padStart(Math.trunc(e.o%60))}}if(o){i+="["+e.zone.ianaName+"]"}return i}const wn={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},vn={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Rn={ordinal:1,hour:0,minute:0,second:0,millisecond:0};const kn=["year","month","day","hour","minute","second","millisecond"],Dn=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_n=["year","ordinal","hour","minute","second","millisecond"];function normalizeUnit(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new InvalidUnitError(e);return t}function normalizeUnitWithLocalWeeks(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return normalizeUnit(e)}}function quickDT(e,t){const r=normalizeZone(t.zone,Settings.defaultZone),n=Locale.fromObject(t),s=Settings.now();let o,i;if(!isUndefined(e.year)){for(const t of kn){if(isUndefined(e[t])){e[t]=wn[t]}}const t=hasInvalidGregorianData(e)||hasInvalidTimeData(e);if(t){return DateTime.invalid(t)}const n=r.offset(s);[o,i]=objToTS(e,n,r)}else{o=s}return new DateTime({ts:o,zone:r,loc:n,o:i})}function diffRelative(e,t,r){const n=isUndefined(r.round)?true:r.round,format=(e,s)=>{e=roundTo(e,n||r.calendary?0:2,true);const o=t.loc.clone(r).relFormatter(r);return o.format(e,s)},differ=n=>{if(r.calendary){if(!t.hasSame(e,n)){return t.startOf(n).diff(e.startOf(n),n).get(n)}else return 0}else{return t.diff(e,n).get(n)}};if(r.unit){return format(differ(r.unit),r.unit)}for(const e of r.units){const t=differ(e);if(Math.abs(t)>=1){return format(t,e)}}return format(e>t?-0:0,r.units[r.units.length-1])}function lastOpts(e){let t={},r;if(e.length>0&&typeof e[e.length-1]==="object"){t=e[e.length-1];r=Array.from(e).slice(0,e.length-1)}else{r=Array.from(e)}return[t,r]}class DateTime{constructor(e){const t=e.zone||Settings.defaultZone;let r=e.invalid||(Number.isNaN(e.ts)?new Invalid("invalid input"):null)||(!t.isValid?unsupportedZone(t):null);this.ts=isUndefined(e.ts)?Settings.now():e.ts;let n=null,s=null;if(!r){const o=e.old&&e.old.ts===this.ts&&e.old.zone.equals(t);if(o){[n,s]=[e.old.c,e.old.o]}else{const e=t.offset(this.ts);n=tsToObj(this.ts,e);r=Number.isNaN(n.year)?new Invalid("invalid input"):null;n=r?null:n;s=r?null:e}}this._zone=t;this.loc=e.loc||Locale.create();this.invalid=r;this.weekData=null;this.localWeekData=null;this.c=n;this.o=s;this.isLuxonDateTime=true}static now(){return new DateTime({})}static local(){const[e,t]=lastOpts(arguments),[r,n,s,o,i,a,A]=t;return quickDT({year:r,month:n,day:s,hour:o,minute:i,second:a,millisecond:A},e)}static utc(){const[e,t]=lastOpts(arguments),[r,n,s,o,i,a,A]=t;e.zone=FixedOffsetZone.utcInstance;return quickDT({year:r,month:n,day:s,hour:o,minute:i,second:a,millisecond:A},e)}static fromJSDate(e,t={}){const r=isDate(e)?e.valueOf():NaN;if(Number.isNaN(r)){return DateTime.invalid("invalid input")}const n=normalizeZone(t.zone,Settings.defaultZone);if(!n.isValid){return DateTime.invalid(unsupportedZone(n))}return new DateTime({ts:r,zone:n,loc:Locale.fromObject(t)})}static fromMillis(e,t={}){if(!isNumber(e)){throw new InvalidArgumentError(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}else if(e<-Tn||e>Tn){return DateTime.invalid("Timestamp out of range")}else{return new DateTime({ts:e,zone:normalizeZone(t.zone,Settings.defaultZone),loc:Locale.fromObject(t)})}}static fromSeconds(e,t={}){if(!isNumber(e)){throw new InvalidArgumentError("fromSeconds requires a numerical input")}else{return new DateTime({ts:e*1e3,zone:normalizeZone(t.zone,Settings.defaultZone),loc:Locale.fromObject(t)})}}static fromObject(e,t={}){e=e||{};const r=normalizeZone(t.zone,Settings.defaultZone);if(!r.isValid){return DateTime.invalid(unsupportedZone(r))}const n=Locale.fromObject(t);const s=normalizeObject(e,normalizeUnitWithLocalWeeks);const{minDaysInFirstWeek:o,startOfWeek:i}=usesLocalWeekValues(s,n);const a=Settings.now(),A=!isUndefined(t.specificOffset)?t.specificOffset:r.offset(a),c=!isUndefined(s.ordinal),u=!isUndefined(s.year),l=!isUndefined(s.month)||!isUndefined(s.day),p=u||l,d=s.weekYear||s.weekNumber;if((p||c)&&d){throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals")}if(l&&c){throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day")}const g=d||s.weekday&&!p;let h,E,m=tsToObj(a,A);if(g){h=Dn;E=vn;m=gregorianToWeek(m,o,i)}else if(c){h=_n;E=Rn;m=gregorianToOrdinal(m)}else{h=kn;E=wn}let I=false;for(const e of h){const t=s[e];if(!isUndefined(t)){I=true}else if(I){s[e]=E[e]}else{s[e]=m[e]}}const y=g?hasInvalidWeekData(s,o,i):c?hasInvalidOrdinalData(s):hasInvalidGregorianData(s),C=y||hasInvalidTimeData(s);if(C){return DateTime.invalid(C)}const Q=g?weekToGregorian(s,o,i):c?ordinalToGregorian(s):s,[B,b]=objToTS(Q,A,r),T=new DateTime({ts:B,zone:r,o:b,loc:n});if(s.weekday&&p&&e.weekday!==T.weekday){return DateTime.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${T.toISO()}`)}return T}static fromISO(e,t={}){const[r,n]=parseISODate(e);return parseDataToDateTime(r,n,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[r,n]=parseRFC2822Date(e);return parseDataToDateTime(r,n,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[r,n]=parseHTTPDate(e);return parseDataToDateTime(r,n,t,"HTTP",t)}static fromFormat(e,t,r={}){if(isUndefined(e)||isUndefined(t)){throw new InvalidArgumentError("fromFormat requires an input string and a format")}const{locale:n=null,numberingSystem:s=null}=r,o=Locale.fromOpts({locale:n,numberingSystem:s,defaultToEN:true}),[i,a,A,c]=parseFromTokens(o,e,t);if(c){return DateTime.invalid(c)}else{return parseDataToDateTime(i,a,r,`format ${t}`,e,A)}}static fromString(e,t,r={}){return DateTime.fromFormat(e,t,r)}static fromSQL(e,t={}){const[r,n]=parseSQL(e);return parseDataToDateTime(r,n,t,"SQL",e)}static invalid(e,t=null){if(!e){throw new InvalidArgumentError("need to specify a reason the DateTime is invalid")}const r=e instanceof Invalid?e:new Invalid(e,t);if(Settings.throwOnInvalid){throw new InvalidDateTimeError(r)}else{return new DateTime({invalid:r})}}static isDateTime(e){return e&&e.isLuxonDateTime||false}static parseFormatForOpts(e,t={}){const r=formatOptsToTokens(e,Locale.fromObject(t));return!r?null:r.map((e=>e?e.val:null)).join("")}static expandFormat(e,t={}){const r=expandMacroTokens(Formatter.parseFormat(e),Locale.fromObject(t));return r.map((e=>e.val)).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?possiblyCachedWeekData(this).weekYear:NaN}get weekNumber(){return this.isValid?possiblyCachedWeekData(this).weekNumber:NaN}get weekday(){return this.isValid?possiblyCachedWeekData(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?possiblyCachedLocalWeekData(this).weekday:NaN}get localWeekNumber(){return this.isValid?possiblyCachedLocalWeekData(this).weekNumber:NaN}get localWeekYear(){return this.isValid?possiblyCachedLocalWeekData(this).weekYear:NaN}get ordinal(){return this.isValid?gregorianToOrdinal(this.c).ordinal:NaN}get monthShort(){return this.isValid?Info.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Info.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Info.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Info.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){if(this.isValid){return this.zone.offsetName(this.ts,{format:"short",locale:this.locale})}else{return null}}get offsetNameLong(){if(this.isValid){return this.zone.offsetName(this.ts,{format:"long",locale:this.locale})}else{return null}}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){if(this.isOffsetFixed){return false}else{return this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed){return[this]}const e=864e5;const t=6e4;const r=objToLocalTS(this.c);const n=this.zone.offset(r-e);const s=this.zone.offset(r+e);const o=this.zone.offset(r-n*t);const i=this.zone.offset(r-s*t);if(o===i){return[this]}const a=r-o*t;const A=r-i*t;const c=tsToObj(a,o);const u=tsToObj(A,i);if(c.hour===u.hour&&c.minute===u.minute&&c.second===u.second&&c.millisecond===u.millisecond){return[datetime_clone(this,{ts:a}),datetime_clone(this,{ts:A})]}return[this]}get isInLeapYear(){return isLeapYear(this.year)}get daysInMonth(){return daysInMonth(this.year,this.month)}get daysInYear(){return this.isValid?daysInYear(this.year):NaN}get weeksInWeekYear(){return this.isValid?weeksInWeekYear(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?weeksInWeekYear(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:r,calendar:n}=Formatter.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:r,outputCalendar:n}}toUTC(e=0,t={}){return this.setZone(FixedOffsetZone.instance(e),t)}toLocal(){return this.setZone(Settings.defaultZone)}setZone(e,{keepLocalTime:t=false,keepCalendarTime:r=false}={}){e=normalizeZone(e,Settings.defaultZone);if(e.equals(this.zone)){return this}else if(!e.isValid){return DateTime.invalid(unsupportedZone(e))}else{let n=this.ts;if(t||r){const t=e.offset(this.ts);const r=this.toObject();[n]=objToTS(r,t,e)}return datetime_clone(this,{ts:n,zone:e})}}reconfigure({locale:e,numberingSystem:t,outputCalendar:r}={}){const n=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:r});return datetime_clone(this,{loc:n})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=normalizeObject(e,normalizeUnitWithLocalWeeks);const{minDaysInFirstWeek:r,startOfWeek:n}=usesLocalWeekValues(t,this.loc);const s=!isUndefined(t.weekYear)||!isUndefined(t.weekNumber)||!isUndefined(t.weekday),o=!isUndefined(t.ordinal),i=!isUndefined(t.year),a=!isUndefined(t.month)||!isUndefined(t.day),A=i||a,c=t.weekYear||t.weekNumber;if((A||o)&&c){throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals")}if(a&&o){throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day")}let u;if(s){u=weekToGregorian({...gregorianToWeek(this.c,r,n),...t},r,n)}else if(!isUndefined(t.ordinal)){u=ordinalToGregorian({...gregorianToOrdinal(this.c),...t})}else{u={...this.toObject(),...t};if(isUndefined(t.day)){u.day=Math.min(daysInMonth(u.year,u.month),u.day)}}const[l,p]=objToTS(u,this.o,this.zone);return datetime_clone(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e);return datetime_clone(this,adjustTime(this,t))}minus(e){if(!this.isValid)return this;const t=Duration.fromDurationLike(e).negate();return datetime_clone(this,adjustTime(this,t))}startOf(e,{useLocaleWeeks:t=false}={}){if(!this.isValid)return this;const r={},n=Duration.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break;case"milliseconds":break}if(n==="weeks"){if(t){const e=this.loc.getStartOfWeek();const{weekday:t}=this;if(tthis.valueOf(),i=o?this:e,a=o?e:this,A=diff(i,a,s,n);return o?A.negate():A}diffNow(e="milliseconds",t={}){return this.diff(DateTime.now(),e,t)}until(e){return this.isValid?Interval.fromDateTimes(this,e):this}hasSame(e,t,r){if(!this.isValid)return false;const n=e.valueOf();const s=this.setZone(e.zone,{keepLocalTime:true});return s.startOf(t,r)<=n&&n<=s.endOf(t,r)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const t=e.base||DateTime.fromObject({},{zone:this.zone}),r=e.padding?thise.valueOf()),Math.min)}static max(...e){if(!e.every(DateTime.isDateTime)){throw new InvalidArgumentError("max requires all arguments be DateTimes")}return bestBy(e,(e=>e.valueOf()),Math.max)}static fromFormatExplain(e,t,r={}){const{locale:n=null,numberingSystem:s=null}=r,o=Locale.fromOpts({locale:n,numberingSystem:s,defaultToEN:true});return explainFromTokens(o,e,t)}static fromStringExplain(e,t,r={}){return DateTime.fromFormatExplain(e,t,r)}static get DATE_SHORT(){return Tt}static get DATE_MED(){return wt}static get DATE_MED_WITH_WEEKDAY(){return vt}static get DATE_FULL(){return Rt}static get DATE_HUGE(){return kt}static get TIME_SIMPLE(){return Dt}static get TIME_WITH_SECONDS(){return _t}static get TIME_WITH_SHORT_OFFSET(){return St}static get TIME_WITH_LONG_OFFSET(){return Ft}static get TIME_24_SIMPLE(){return Nt}static get TIME_24_WITH_SECONDS(){return Ot}static get TIME_24_WITH_SHORT_OFFSET(){return Lt}static get TIME_24_WITH_LONG_OFFSET(){return Ut}static get DATETIME_SHORT(){return Gt}static get DATETIME_SHORT_WITH_SECONDS(){return Pt}static get DATETIME_MED(){return Mt}static get DATETIME_MED_WITH_SECONDS(){return xt}static get DATETIME_MED_WITH_WEEKDAY(){return Vt}static get DATETIME_FULL(){return jt}static get DATETIME_FULL_WITH_SECONDS(){return Ht}static get DATETIME_HUGE(){return Yt}static get DATETIME_HUGE_WITH_SECONDS(){return qt}}function friendlyDateTime(e){if(DateTime.isDateTime(e)){return e}else if(e&&e.valueOf&&isNumber(e.valueOf())){return DateTime.fromJSDate(e)}else if(e&&typeof e==="object"){return DateTime.fromObject(e)}else{throw new InvalidArgumentError(`Unknown datetime argument: ${e}, of type ${typeof e}`)}}const Sn="3.4.4";const Fn="Followup";const Nn="Unassign";const On=e(import.meta.url)("node:fs");var Ln=__nccwpck_require__(7645);var Un=__nccwpck_require__(423);const Gn=validateQuery;const Pn=(0,Ln.buildClientSchema)(JSON.parse((0,On.readFileSync)(__nccwpck_require__.ab+"schema.json","utf8")));function validateQuery(e){return(0,Ln.validate)(Pn,Un(e))}const Mn=`\n query collectLinkedPullRequests($owner: String!, $repo: String!, $issue_number: Int!) {\n repository(owner: $owner, name: $repo) {\n issue(number: $issue_number) {\n closedByPullRequestsReferences(first: 100, includeClosedPrs: false) {\n edges {\n node {\n url\n title\n body\n state\n number\n author {\n login\n ... on User {\n id: databaseId\n }\n }\n }\n }\n }\n }\n }\n }\n`;const xn=Gn(Mn);if(xn.length>1){throw new Error(`Invalid query: ${xn.join(", ")}`)}async function collectLinkedPullRequests(e,t){const{owner:r,repo:n,issue_number:s}=t;const o=await e.octokit.graphql(Mn,{owner:r,repo:n,issue_number:s});return o.repository.issue.closedByPullRequestsReferences.edges.map((e=>e.node))}function parseIssueUrl(e){const t=new URL(e).pathname.split("/");if(t.length!==5){throw new Error(`[parseGitHubUrl] Invalid url: [${e}]`)}return{owner:t[1],repo:t[2],issue_number:Number(t[4])}}async function getAssigneesActivityForIssue(e,t,r){const n=parseIssueUrl(t.html_url);const s=await e.octokit.paginate(e.octokit.rest.issues.listEventsForTimeline,{owner:n.owner,repo:n.repo,issue_number:n.issue_number,per_page:100});const o=await collectLinkedPullRequests(e,n);for(const t of o){const{owner:r,repo:n,issue_number:o}=parseIssueUrl(t.url||"");const i=await e.octokit.paginate(e.octokit.rest.issues.listEventsForTimeline,{owner:r,repo:n,issue_number:o,per_page:100});s.push(...i)}return filterEvents(s,r)}function filterEvents(e,t){const r=new Map;const n=[];for(const s of e){let e=null;let o=null;let i=null;const a=s.event;if("actor"in s&&s.actor){o=s.actor.login.toLowerCase();if(!r.has(o)){r.set(o,s.actor.id)}e=r.get(o);i=s.created_at}else if((s.event==="committed"||s.event==="commented")&&"author"in s){const e="author"in s?s.author:null;const t="committer"in s?s.committer:null;if(e||t){n.push({event:a,created_at:s.author.date,author:s.author.email});continue}}if(e&&t.includes(e)){n.push({event:a,created_at:i,author:o})}}return n.sort(((e,t)=>{if(!e.created_at||!t.created_at){return 0}return DateTime.fromISO(t.created_at).toMillis()-DateTime.fromISO(e.created_at).toMillis()}))}const Vn="Ubiquity";function structured_metadata_createStructuredMetadata(e,t){let r,n;if(t){r=t.logMessage;n=t.metadata}const s=JSON.stringify(n,null,2);const o=(new Error).stack?.split("\n")[2]??"";const i=o.match(/at (\S+)/)?.[1]??"";const a=`\x3c!-- ${Vn} - ${e} - ${i} - ${n?.revision}`;let A;const c=["```json",s,"```"].join("\n");const u=[a,s,"--\x3e"].join("\n");if(r?.type==="fatal"){A=[c,u].join("\n")}else{A=u}return A}async function getCommentsFromMetadata(e,t,r,n,s){const{octokit:o}=e;const i=new RegExp(`\x3c!-- ${Vn} - ${s} - \\S+ - [\\s\\S]*?--\x3e`);return await o.paginate(o.rest.issues.listComments,{owner:r,repo:n,issue_number:t},(e=>e.data.filter((e=>e.performed_via_github_app&&e.body&&e.user?.type==="Bot"&&i.test(e.body)))))}async function unassignUserFromIssue(e,t){const{logger:r,config:n}=e;if(n.disqualification<=0){r.info("The unassign threshold is <= 0, won't unassign users.")}else{await removeAllAssignees(e,t)}}async function remindAssigneesForIssue(e,t){const{logger:r,config:n}=e;const s=parseIssueUrl(t.html_url);const o=!!(await collectLinkedPullRequests(e,s)).length;if(n.warning<=0){r.info("The reminder threshold is <= 0, won't send any reminder.")}else if(n.pullRequestRequired&&!o){await unassignUserFromIssue(e,t)}else{r.info(`Passed the reminder threshold on ${t.html_url} sending a reminder.`);await remindAssignees(e,t)}}async function remindAssignees(e,t){const{octokit:r,logger:n,config:s}=e;const{repo:o,owner:i,issue_number:a}=parseIssueUrl(t.html_url);if(!t?.assignees?.length){n.error(`Missing Assignees from ${t.html_url}`);return false}const A=t.assignees.map((e=>e?.login)).filter((e=>!!e)).join(", @");const c=n.info(`@${A}, this task has been idle for a while. Please provide an update.\n\n`,{taskAssignees:t.assignees.map((e=>e?.id))});const u=structured_metadata_createStructuredMetadata(Fn,c);if(!s.pullRequestRequired){await r.rest.issues.createComment({owner:i,repo:o,issue_number:a,body:[c.logMessage.raw,u].join("\n")})}else{const t=await collectLinkedPullRequests(e,{repo:o,owner:i,issue_number:a});let s=false;for(const e of t){const{owner:t,repo:o,issue_number:i}=parseIssueUrl(e.url);try{await r.rest.issues.createComment({owner:t,repo:o,issue_number:i,body:[c.logMessage.raw,u].join("\n")})}catch(t){n.error(`Could not post to ${e.url} will post to the issue instead.`,{e:t});s=true}}if(s){await r.rest.issues.createComment({owner:i,repo:o,issue_number:a,body:[c.logMessage.raw,u].join("\n")})}}return true}async function removeAllAssignees(e,t){const{octokit:r,logger:n}=e;const{repo:s,owner:o,issue_number:i}=parseIssueUrl(t.html_url);if(!t?.assignees?.length){n.error(`Missing Assignees from ${t.html_url}`);return false}const a=t.assignees.map((e=>e?.login)).filter((e=>!!e));const A=n.info(`Passed the deadline and no activity is detected, removing assignees: ${a.map((e=>`@${e}`)).join(", ")}.`,{issue:t.html_url});const c=structured_metadata_createStructuredMetadata(Nn,A);await r.rest.issues.createComment({owner:o,repo:s,issue_number:i,body:[A.logMessage.raw,c].join("\n")});await r.rest.issues.removeAssignees({owner:o,repo:s,issue_number:i,assignees:a});return true}var jn=__nccwpck_require__(744);var Hn=__nccwpck_require__.n(jn);async function getTaskAssignmentDetails(e,t,r){const{logger:n,octokit:s}=e;const o=await s.paginate(s.rest.issues.listEvents,{owner:t.owner.login,repo:t.name,issue_number:r.number});const i=o.filter((e=>e.event==="assigned")).sort(((e,t)=>DateTime.fromISO(t.created_at).toMillis()-DateTime.fromISO(e.created_at).toMillis()));const a=i.find((e=>e.actor?.type==="User"));const A=i.find((e=>e.actor?.type==="Bot"));let c=a||A;if(a&&A&&DateTime.fromISO(a.created_at)>DateTime.fromISO(A.created_at)){c=a}else{c=A}const u={startPlusLabelDuration:DateTime.fromISO(r.created_at).toISO()||"",taskAssignees:r.assignees?r.assignees.map((e=>e.id)):r.assignee?[r.assignee.id]:[]};if(!u.taskAssignees?.length){n.error(`Missing Assignees from ${r.html_url}`);return false}const l=parseTimeLabel(r.labels);if(l===0){}else if(l<0||!l){n.error(`Invalid deadline found on ${r.html_url}`);return false}u.startPlusLabelDuration=DateTime.fromISO(c?.created_at||r.created_at).plus({milliseconds:l}).toISO()||"";return u}function parseTimeLabel(e){let t=0;for(const r of e){let e="";if(typeof r==="string"){e=r}else{e=r.name||""}if(e.startsWith("Time:")){const r=e.match(/Time: <(\d+) (\w+)/i);if(!r){return 0}const[n,s,o]=r;t=Hn()(`${s} ${o}`)}if(t){break}}return t}function parsePriorityLabel(e){for(const t of e){let e="";if(typeof t==="string"){e=t}else{e=t.name||""}if(e.startsWith("Priority:")){const t=e.match(/Priority: (\d+)/i);if(!t){return 1}return Number(t[1])}}return 1}const getMostRecentActivityDate=(e,t)=>t&&t>e?t:e;async function updateTaskReminder(e,t,r){const{octokit:n,logger:s,config:{eventWhitelist:o,warning:i,disqualification:a,prioritySpeed:A}}=e;const c=await getTaskAssignmentDetails(e,t,r);const u=DateTime.local();if(!c)return;const l=await n.paginate(n.rest.issues.listEvents,{owner:t.owner.login,repo:t.name,issue_number:r.number});const p=l.filter((e=>e.event==="assigned"&&c.taskAssignees.includes(e.actor.id))).sort(((e,t)=>DateTime.fromISO(t.created_at).toMillis()-DateTime.fromISO(e.created_at).toMillis())).shift();if(!p){s.error(`Failed to update activity for ${r.html_url}, there is no assigned event.`);return}const d=(await getAssigneesActivityForIssue(e,r,c.taskAssignees)).filter((e=>o.includes(e.event))).shift();const g=DateTime.fromISO(p.created_at);const h=parsePriorityLabel(r.labels);const E=Math.max(1,h);const m=d?.created_at?DateTime.fromISO(d.created_at):undefined;let I=getMostRecentActivityDate(g,m);const y=(await collectLinkedPullRequests(e,{issue_number:r.number,repo:t.name,owner:t.owner.login})).map((e=>e.url));y.push(r.html_url);const C=await Promise.all(y.map((async t=>{const{issue_number:r,owner:n,repo:s}=parseIssueUrl(t);const o=await getCommentsFromMetadata(e,r,n,s,Fn);return o.filter((e=>DateTime.fromISO(e.created_at)>I))})));const Q=C.flat().shift();s.debug(`Handling metadata and deadline for ${r.html_url}`,{now:u.toLocaleString(DateTime.DATETIME_MED),assignedDate:DateTime.fromISO(p.created_at).toLocaleString(DateTime.DATETIME_MED),lastReminderComment:Q?DateTime.fromISO(Q.created_at).toLocaleString(DateTime.DATETIME_MED):"none",mostRecentActivityDate:I.toLocaleString(DateTime.DATETIME_MED)});const B=a-i;if(Q){const t=DateTime.fromISO(Q.created_at);I=t>I?t:I;if(I.plus({milliseconds:A?B/E:B})<=u){await unassignUserFromIssue(e,r)}else{s.info(`Reminder was sent for ${r.html_url} already, not beyond disqualification deadline yet.`,{now:u.toLocaleString(DateTime.DATETIME_MED),assignedDate:DateTime.fromISO(p.created_at).toLocaleString(DateTime.DATETIME_MED),lastReminderComment:Q?DateTime.fromISO(Q.created_at).toLocaleString(DateTime.DATETIME_MED):"none",mostRecentActivityDate:I.toLocaleString(DateTime.DATETIME_MED)})}}else{if(I.plus({milliseconds:A?i/E:i})<=u){await remindAssigneesForIssue(e,r)}else{s.info(`Nothing to do for ${r.html_url} still within due-time.`,{now:u.toLocaleString(DateTime.DATETIME_MED),assignedDate:DateTime.fromISO(p.created_at).toLocaleString(DateTime.DATETIME_MED),lastReminderComment:"none",mostRecentActivityDate:I.toLocaleString(DateTime.DATETIME_MED)})}}}async function watchUserActivity(e){const{logger:t}=e;const r=await getWatchedRepos(e);if(!r?.length){return{message:t.info("No watched repos have been found, no work to do.").logMessage.raw}}await Promise.all(r.map((async r=>{t.debug(`> Watching user activity for repo: ${r.name} (${r.html_url})`);await updateReminders(e,r)})));return{message:"OK"}}async function updateReminders(e,t){const{logger:r,octokit:n,payload:s}=e;const o=s.repository.owner?.login;if(!o){throw new Error("No owner found in the payload")}const i=await n.paginate(n.rest.issues.listForRepo,{owner:o,repo:t.name,per_page:100,state:"open"});await Promise.all(i.map((async n=>{if(n.draft||n.pull_request||n.locked||n.state!=="open"){r.debug(`Skipping issue ${n.html_url} due to the issue not meeting the right criteria.`,{draft:n.draft,pullRequest:!!n.pull_request,locked:n.locked,state:n.state});return}if(n.assignees?.length||n.assignee){r.debug(`Checking assigned issue: ${n.html_url}`);await updateTaskReminder(e,t,n)}else{r.info(`Skipping issue ${n.html_url} because no user is assigned.`)}})))}async function run(e){e.logger.debug("Will run with the following configuration:",{configuration:e.config});return watchUserActivity(e)}function thresholdType(e){return _.Transform(_.String(e)).Decode((e=>{const t=Hn()(e);if(t===undefined){throw new error_TypeBoxError(`Invalid threshold value: [${e}]`)}return t})).Encode((e=>{const t=Hn()(e,{long:true});if(t===undefined){throw new error_TypeBoxError(`Invalid threshold value: [${e}]`)}return t}))}const Yn=["pull_request.review_requested","pull_request.ready_for_review","pull_request_review_comment.created","issue_comment.created","push"];function mapWebhookToEvent(e){const t=new Map([["pull_request.review_requested","review_requested"],["pull_request.ready_for_review","ready_for_review"],["pull_request_review_comment.created","commented"],["issue_comment.created","commented"],["push","committed"]]);return t.get(e)}const qn=_.Object({warning:thresholdType({default:"3.5 days"}),watch:_.Object({optOut:_.Array(_.String(),{default:[]})},{default:{}}),prioritySpeed:_.Boolean({default:true}),disqualification:thresholdType({default:"7 days"}),pullRequestRequired:_.Boolean({default:true}),eventWhitelist:_.Transform(_.Array(_.String(),{default:Yn})).Decode((e=>{const t=Object.values(Yn);const r=[];for(const n of e){if(!t.includes(n)){throw new error_TypeBoxError(`Invalid event [${n}] (unknown event)`)}const e=mapWebhookToEvent(n);if(!e){throw new error_TypeBoxError(`Invalid event [${n}] (unmapped event)`)}if(!r.includes(e)){r.push(e)}}return r})).Encode((e=>e.map((e=>{const t=new Map([["review_requested","pull_request.review_requested"],["ready_for_review","pull_request.ready_for_review"],["commented","pull_request_review_comment.created"],["commented","issue_comment.created"],["committed","push"]]);return t.get(e)}))))},{default:{}});const Jn=_.Object({});createActionsPlugin((e=>run(e)),{envSchema:Jn,settingsSchema:qn,logLevel:process.env.LOG_LEVEL||i.INFO,postCommentOnError:false,...process.env.KERNEL_PUBLIC_KEY&&{kernelPublicKey:process.env.KERNEL_PUBLIC_KEY}}).catch(console.error); \ No newline at end of file From 93f9060514e5f3d0434635ed6a2ecb6acf1c81e7 Mon Sep 17 00:00:00 2001 From: Keyrxng <106303466+Keyrxng@users.noreply.github.com> Date: Thu, 28 Nov 2024 11:34:40 +0000 Subject: [PATCH 3/3] fix: manifest name --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 596e18a..b40f623 100644 --- a/manifest.json +++ b/manifest.json @@ -1,5 +1,5 @@ { - "name": "User activity watcher", + "name": "Daemon Disqualifier", "description": "Watches user activity on issues, sends reminders on deadlines, and unassign inactive users.", "ubiquity:listeners": ["pull_request_review_comment.created", "issue_comment.created", "push"], "configuration": {