From 0a01b34e8119ff9e6c3f922f0434d8c80af20b45 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Mon, 12 Sep 2022 16:47:18 +0200 Subject: [PATCH] Partial OpenAPI spec for admin API with a viewer --- doc/api/README.md | 17 + doc/api/css/redoc.css | 59 + doc/api/fonts/montserrat-v25-latin-300.woff | Bin 0 -> 15908 bytes doc/api/fonts/montserrat-v25-latin-300.woff2 | Bin 0 -> 12580 bytes doc/api/fonts/montserrat-v25-latin-700.woff | Bin 0 -> 16048 bytes doc/api/fonts/montserrat-v25-latin-700.woff2 | Bin 0 -> 12848 bytes .../fonts/montserrat-v25-latin-regular.woff | Bin 0 -> 15932 bytes .../fonts/montserrat-v25-latin-regular.woff2 | Bin 0 -> 12708 bytes doc/api/fonts/roboto-v30-latin-300.woff | Bin 0 -> 20416 bytes doc/api/fonts/roboto-v30-latin-300.woff2 | Bin 0 -> 15740 bytes doc/api/fonts/roboto-v30-latin-700.woff | Bin 0 -> 20408 bytes doc/api/fonts/roboto-v30-latin-700.woff2 | Bin 0 -> 15860 bytes doc/api/fonts/roboto-v30-latin-regular.woff | Bin 0 -> 20344 bytes doc/api/fonts/roboto-v30-latin-regular.woff2 | Bin 0 -> 15744 bytes doc/api/garage-admin-v0.html | 24 + doc/api/garage-admin-v0.yml | 560 +++++ doc/api/redoc.standalone.js | 1806 +++++++++++++++++ 17 files changed, 2466 insertions(+) create mode 100644 doc/api/README.md create mode 100644 doc/api/css/redoc.css create mode 100644 doc/api/fonts/montserrat-v25-latin-300.woff create mode 100644 doc/api/fonts/montserrat-v25-latin-300.woff2 create mode 100644 doc/api/fonts/montserrat-v25-latin-700.woff create mode 100644 doc/api/fonts/montserrat-v25-latin-700.woff2 create mode 100644 doc/api/fonts/montserrat-v25-latin-regular.woff create mode 100644 doc/api/fonts/montserrat-v25-latin-regular.woff2 create mode 100644 doc/api/fonts/roboto-v30-latin-300.woff create mode 100644 doc/api/fonts/roboto-v30-latin-300.woff2 create mode 100644 doc/api/fonts/roboto-v30-latin-700.woff create mode 100644 doc/api/fonts/roboto-v30-latin-700.woff2 create mode 100644 doc/api/fonts/roboto-v30-latin-regular.woff create mode 100644 doc/api/fonts/roboto-v30-latin-regular.woff2 create mode 100644 doc/api/garage-admin-v0.html create mode 100644 doc/api/garage-admin-v0.yml create mode 100644 doc/api/redoc.standalone.js diff --git a/doc/api/README.md b/doc/api/README.md new file mode 100644 index 000000000..d0edb4af8 --- /dev/null +++ b/doc/api/README.md @@ -0,0 +1,17 @@ +# Browse doc + +Run in this directory: + +``` +python3 -m http.server +``` + +And open in your browser: + - http://localhost:8000/garage-admin-v0.html + +# Validate doc + +``` +wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.1.0/openapi-generator-cli-6.1.0.jar -O openapi-generator-cli.jar +java -jar openapi-generator-cli.jar validate -i garage-admin-v0.yml +``` diff --git a/doc/api/css/redoc.css b/doc/api/css/redoc.css new file mode 100644 index 000000000..66e5460ed --- /dev/null +++ b/doc/api/css/redoc.css @@ -0,0 +1,59 @@ +/* montserrat-300 - latin */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 300; + src: local(''), + url('../fonts/montserrat-v25-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/montserrat-v25-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* montserrat-regular - latin */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: local(''), + url('../fonts/montserrat-v25-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/montserrat-v25-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* montserrat-700 - latin */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: local(''), + url('../fonts/montserrat-v25-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/montserrat-v25-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} +/* roboto-300 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local(''), + url('../fonts/roboto-v30-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/roboto-v30-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* roboto-regular - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local(''), + url('../fonts/roboto-v30-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/roboto-v30-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* roboto-700 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local(''), + url('../fonts/roboto-v30-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/roboto-v30-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + diff --git a/doc/api/fonts/montserrat-v25-latin-300.woff b/doc/api/fonts/montserrat-v25-latin-300.woff new file mode 100644 index 0000000000000000000000000000000000000000..700c9ecdd4e58a2c5640572874be20af6bde6773 GIT binary patch literal 15908 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 literal 0 HcmV?d00001 diff --git a/doc/api/fonts/montserrat-v25-latin-700.woff2 b/doc/api/fonts/montserrat-v25-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a7e1118fa179a6b2a7274f574c8df90ad9b640f0 GIT binary patch literal 12848 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 literal 0 HcmV?d00001 diff --git a/doc/api/fonts/montserrat-v25-latin-regular.woff2 b/doc/api/fonts/montserrat-v25-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e04ffc269b54e30726df661b82d1938699222de8 GIT binary patch literal 12708 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 KnEC@AHdoOjhohqa literal 0 HcmV?d00001 diff --git a/doc/api/fonts/roboto-v30-latin-300.woff2 b/doc/api/fonts/roboto-v30-latin-300.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..60681387e7bf93c19f6b2fcfac98037032e63531 GIT binary patch literal 15740 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 literal 0 HcmV?d00001 diff --git a/doc/api/fonts/roboto-v30-latin-700.woff b/doc/api/fonts/roboto-v30-latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..db0012d1bfa39c7f7da77edffde9ea359e3abfb1 GIT binary patch literal 20408 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 FQOM0DF!%rf literal 0 HcmV?d00001 diff --git a/doc/api/fonts/roboto-v30-latin-700.woff2 b/doc/api/fonts/roboto-v30-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..771fbeccc691aab1962e33dbdf2be7c659d84c27 GIT binary patch literal 15860 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 K;xZEf00030kB~Y5 literal 0 HcmV?d00001 diff --git a/doc/api/fonts/roboto-v30-latin-regular.woff b/doc/api/fonts/roboto-v30-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..9eaa94f9bfdf6a4c7bb191be56f78d0935e3184c GIT binary patch literal 20344 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 literal 0 HcmV?d00001 diff --git a/doc/api/fonts/roboto-v30-latin-regular.woff2 b/doc/api/fonts/roboto-v30-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..020729ef8d353ff843438008300bedee1f519380 GIT binary patch literal 15744 zcmV-`J%7S?Pew8T0RR9106l;J5&!@I0FHD306iK20RR9100000000000000000000 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 y{^U~631l%Viyw0%mK9y;eEd + + + Garage Adminstration API v0 + + + + + + + + + + + + + diff --git a/doc/api/garage-admin-v0.yml b/doc/api/garage-admin-v0.yml new file mode 100644 index 000000000..5e2f19409 --- /dev/null +++ b/doc/api/garage-admin-v0.yml @@ -0,0 +1,560 @@ +openapi: 3.0.0 +info: + version: v0.7.3 + title: Garage Administration API v0+garage-v0.7.3 + description: | + Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. + + *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* +paths: + /status: + get: + tags: + - Membership + summary: "Status of this node and other nodes in the cluster" + description: | + Returns the cluster's current status, including: + - ID of the node being queried and its version of the Garage daemon + - Live nodes + - Currently configured cluster layout + - Staged changes to the cluster layout + responses: + '500': + description: | + The server can not answer your request because it is in a bad state + '200': + description: | + Information about the queried node, its environment and the current layout + content: + application/json: + schema: + type: object + properties: + node: + type: string + example: "ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f" + garage_version: + type: string + example: "v0.7.3" + knownNodes: + type: object + example: + "ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f": + addr: "10.0.0.11:3901" + is_up: true + last_seen_secs_ago: 9 + hostname: orion + "4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": + addr: "10.0.0.12:3901" + is_up: true + last_seen_secs_ago: 13 + hostname: pegasus + "e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b": + addr: "10.0.0.13:3901" + is_up: true + last_seen_secs_ago: 2 + hostname: neptune + additionalProperties: + $ref: '#/components/schemas/NodeNetworkInfo' + layout: + $ref: '#/components/schemas/ClusterLayout' + + /connect: + post: + tags: + - Membership + summary: "Connect target node to other Garage nodes" + description: | + Instructs this Garage node to connect to other Garage nodes at specified `@`. `node_id` is generated automatically on node start. + requestBody: + content: + application/json: + schema: + type: array + example: + - "ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f@10.0.0.11:3901" + - "4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff@10.0.0.12:3901" + items: + type: string + + responses: + '500': + description: | + The server can not answer your request because it is in a bad state + '400': + description: | + Your request is malformed, check your JSON + '200': + description: | + The request has been handled correctly but it does not mean that all connection requests succeeded; some might have fail, you need to check the body! + content: + application/json: + schema: + type: array + example: + - success: true + error: + - success: false + error: "Handshake error" + items: + type: object + properties: + success: + type: boolean + example: true + error: + type: string + example: + + /layout: + get: + tags: + - Layout + summary: "Details on the current and staged layout" + description: | + Returns the cluster's current layout, including: + - Currently configured cluster layout + - Staged changes to the cluster layout + + *The info returned by this endpoint is a subset of the info returned by `GET /status`.* + responses: + '500': + description: | + The server can not answer your request because it is in a bad state + '200': + description: | + Returns the cluster's current cluster layout: + - Currently configured cluster layout + - Staged changes to the cluster layout + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterLayout' + + post: + tags: + - Layout + summary: "Send modifications to the cluster layout" + description: | + Send modifications to the cluster layout. These modifications will be included in the staged role changes, visible in subsequent calls of `GET /layout`. Once the set of staged changes is satisfactory, the user may call `POST /layout/apply` to apply the changed changes, or `POST /layout/revert` to clear all of the staged changes in the layout. + requestBody: + description: | + To add a new node to the layout or to change the configuration of an existing node, simply set the values you want. + To remove a node, set it to `null` instead of passing a configuration object. + + Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified. + content: + application/json: + schema: + type: object + example: + "e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b": + zone: "geneva" + capacity: 4 + tags: + - gateway + "4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": + + additionalProperties: + $ref: '#/components/schemas/NodeClusterInfo' + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '400': + description: "Invalid syntax or requested change" + '200': + description: "The layout modification has been correctly staged" + + /layout/apply: + post: + tags: + - Layout + summary: "Apply staged layout" + description: | + Applies to the cluster the layout changes currently registered as staged layout changes. + requestBody: + description: | + Similarly to the CLI, the body must include the version of the new layout that will be created, which MUST be 1 + the value of the currently existing layout in the cluster. + content: + application/json: + schema: + $ref: '#/components/schemas/LayoutVersion' + + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '400': + description: "Invalid syntax or requested change" + '200': + description: "The staged layout has been applied as the new layout of the cluster, a rebalance has been triggered." + + /layout/revert: + post: + tags: + - Layout + summary: "Clear staged layout" + description: | + Clears all of the staged layout changes. + requestBody: + description: | + Reverting the staged changes is done by incrementing the version number and clearing the contents of the staged change list. Similarly to the CLI, the body must include the incremented version number, which MUST be 1 + the value of the currently existing layout in the cluster. + content: + application/json: + schema: + $ref: '#/components/schemas/LayoutVersion' + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '400': + description: "Invalid syntax or requested change" + '200': + description: "The staged layout has been cleared, you can start again sending modification from a fresh copy with `POST /layout`." + + /key: + get: + tags: + - Key + operationId: "ListKeys" + summary: "List all keys" + description: | + Returns all API access keys in the cluster. + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '200': + description: | + Returns the key identifier (aka `AWS_ACCESS_KEY_ID`) and its associated, human friendly, name if any (otherwise return an empty string) + content: + application/json: + schema: + type: array + example: + - id: "GK31c2f218a2e44f485b94239e" + name: "test-key" + - id: "GKe10061ac9c2921f09e4c5540" + name: "" + items: + type: object + properties: + id: + type: string + name: + type: string + post: + tags: + - Key + summary: "Create a new API key" + description: | + Creates a new API access key. + requestBody: + description: | + "You can optionnaly set a friendly name for this key" + content: + application/json: + schema: + type: object + properties: + name: + type: string + example: "test-key" + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '400': + description: "Invalid syntax or requested change" + '200': + description: "The key has been added" + content: + application/json: + schema: + $ref: '#/components/schemas/KeyInfo' + + "/key?id={access_key}": + get: + tags: + - Key + summary: "Get key information" + description: | + Return information about a specific key and return its information + parameters: + - name: access_key + in: path + required: true + description: "The exact API access key generated by Garage" + example: "GK31c2f218a2e44f485b94239e" + schema: + type: string + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '200': + description: | + Returns information about the key + content: + application/json: + schema: + $ref: '#/components/schemas/KeyInfo' + + delete: + tags: + - Key + summary: "Delete a key" + + parameters: + - name: access_key + in: path + required: true + description: "The exact API access key generated by Garage" + example: "GK31c2f218a2e44f485b94239e" + schema: + type: string + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '200': + description: "The key has been deleted" + + + post: + tags: + - Key + summary: "Update a key" + description: | + Updates information about the specified API access key. + parameters: + - name: access_key + in: path + required: true + description: "The exact API access key generated by Garage" + example: "GK31c2f218a2e44f485b94239e" + schema: + type: string + requestBody: + description: | + For a given key, provide a first set with the permissions to grant, and a second set with the permissions to remove + content: + application/json: + schema: + type: object + properties: + name: + type: string + example: "test-key" + allow: + type: object + example: + properties: + createBucket: + type: boolean + example: true + deny: + type: object + properties: + createBucket: + type: boolean + example: true + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '400': + description: "Invalid syntax or requested change" + '200': + description: | + Returns information about the key + content: + application/json: + schema: + $ref: '#/components/schemas/KeyInfo' + + + "/key?search={pattern}": + get: + tags: + - Key + summary: "Select key by pattern" + description: | + Find the first key matching the given pattern based on its identifier aor friendly name and return its information. + parameters: + - name: pattern + in: path + required: true + description: "A pattern (beginning or full string) corresponding to a key identifier or friendly name" + example: "test-k" + schema: + type: string + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '200': + description: | + Returns information about the key + content: + application/json: + schema: + $ref: '#/components/schemas/KeyInfo' + + /key/import: + post: + tags: + - Key + summary: "Import an existing key" + description: | + Imports an existing API key. This feature must only be used for migrations and backup restore. + + **Do not use it to generate custom key identifiers or you will break your Garage cluster.** + requestBody: + description: | + Information on the key to import + content: + application/json: + schema: + type: object + properties: + name: + type: string + example: "test-key" + accessKeyId: + type: string + example: "GK31c2f218a2e44f485b94239e" + secretAccessKey: + type: string + example: "b892c0665f0ada8a4755dae98baa3b133590e11dae3bcc1f9d769d67f16c3835" + responses: + '500': + description: "The server can not handle your request. Check your connectivity with the rest of the cluster." + '400': + description: "Invalid syntax or requested change" + '200': + description: "The key has been imported into the system" + content: + application/json: + schema: + $ref: '#/components/schemas/KeyInfo' + + + +components: + schemas: + NodeNetworkInfo: + type: object + properties: + addr: + type: string + example: "10.0.0.11:3901" + is_up: + type: boolean + example: true + last_seen_secs_ago: + type: integer + example: 9 + hostname: + type: string + example: "node1" + NodeClusterInfo: + properties: + zone: + type: string + example: dc1 + capacity: + type: integer + example: 4 + tags: + type: array + description: | + User defined tags, put whatever makes sense for you, these tags are not interpreted by Garage + example: + - gateway + - fast + items: + type: string + ClusterLayout: + type: object + properties: + version: + type: integer + example: 12 + roles: + type: object + example: + "ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f": + zone: "madrid" + capacity: 3 + tags: + - fast + - amd64 + "4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": + zone: "geneva" + capacity: 7 + tags: + - arm64 + additionalProperties: + $ref: '#/components/schemas/NodeClusterInfo' + stagedRoleChanges: + type: object + example: + "e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b": + zone: "geneva" + capacity: 4 + tags: + - gateway + additionalProperties: + $ref: '#/components/schemas/NodeClusterInfo' + LayoutVersion: + type: object + properties: + version: + type: integer + example: 13 + + KeyInfo: + type: object + properties: + name: + type: string + example: "test-key" + accessKeyId: + type: string + example: "GK31c2f218a2e44f485b94239e" + secretAccessKey: + type: string + example: "b892c0665f0ada8a4755dae98baa3b133590e11dae3bcc1f9d769d67f16c3835" + permissions: + type: object + properties: + createBucket: + type: boolean + example: false + buckets: + type: array + items: + type: object + properties: + id: + type: string + example: "70dc3bed7fe83a75e46b66e7ddef7d56e65f3c02f9f80b6749fb97eccb5e1033" + globalAliases: + type: array + items: + type: string + example: "my-bucket" + localAliases: + type: array + items: + type: string + example: "GK31c2f218a2e44f485b94239e:localname" + permissions: + type: object + properties: + read: + type: boolean + example: true + write: + type: boolean + example: true + owner: + type: boolean + example: false + +servers: + - description: A local server + url: http://localhost:3903/v0/ diff --git a/doc/api/redoc.standalone.js b/doc/api/redoc.standalone.js new file mode 100644 index 000000000..a40e6c054 --- /dev/null +++ b/doc/api/redoc.standalone.js @@ -0,0 +1,1806 @@ +/*! For license information please see redoc.standalone.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("null")):"function"==typeof define&&define.amd?define(["null"],t):"object"==typeof exports?exports.Redoc=t(require("null")):e.Redoc=t(e.null)}(this,(function(e){return function(){var t={5499:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const r=n(3325),o=n(6479),i=n(5522),a=n(1603),s=["/properties"],l="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),o.default.forEach((e=>this.addVocabulary(e))),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(a,s):a;this.addMetaSchema(e,l,!1),this.refs["http://json-schema.org/schema"]=l}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(l)?l:void 0)}}e.exports=t=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var u=n(1321);Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return u.KeywordCxt}});var p=n(4475);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return p._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return p.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return p.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return p.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return p.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return p.CodeGen}})},4667:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class n{}t._CodeOrName=n,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends n{constructor(e){if(super(),!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class o extends n{constructor(e){super(),this._items="string"==typeof e?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const e=this._items[0];return""===e||'""'===e}get str(){var e;return null!==(e=this._str)&&void 0!==e?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return null!==(e=this._names)&&void 0!==e?e:this._names=this._items.reduce(((e,t)=>(t instanceof r&&(e[t.str]=(e[t.str]||0)+1),e)),{})}}function i(e,...t){const n=[e[0]];let r=0;for(;r"),GTE:new r._Code(">="),LT:new r._Code("<"),LTE:new r._Code("<="),EQ:new r._Code("==="),NEQ:new r._Code("!=="),NOT:new r._Code("!"),OR:new r._Code("||"),AND:new r._Code("&&"),ADD:new r._Code("+")};class s{optimizeNodes(){return this}optimizeNames(e,t){return this}}class l extends s{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){const n=e?o.varKinds.var:this.varKind,r=void 0===this.rhs?"":` = ${this.rhs}`;return`${n} ${this.name}${r};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=R(this.rhs,e,t)),this}get names(){return this.rhs instanceof r._CodeOrName?this.rhs.names:{}}}class c extends s{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof r.Name)||e[this.lhs.str]||this.sideEffects)return this.rhs=R(this.rhs,e,t),this}get names(){return C(this.lhs instanceof r.Name?{}:{...this.lhs.names},this.rhs)}}class u extends c{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class p extends s{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}}class d extends s{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}}class f extends s{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class h extends s{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=R(this.code,e,t),this}get names(){return this.code instanceof r._CodeOrName?this.code.names:{}}}class m extends s{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce(((t,n)=>t+n.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;for(;t--;){const n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){const{nodes:n}=this;let r=n.length;for(;r--;){const o=n[r];o.optimizeNames(e,t)||(j(e,o.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce(((e,t)=>$(e,t.names)),{})}}class g extends m{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class y extends m{}class v extends g{}v.kind="else";class b extends g{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(!0===e)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new v(e):e}return t?!1===e?t instanceof b?t:t.nodes:this.nodes.length?this:new b(T(e),t instanceof b?[t]:t.nodes):!1!==e&&this.nodes.length?this:void 0}optimizeNames(e,t){var n;if(this.else=null===(n=this.else)||void 0===n?void 0:n.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=R(this.condition,e,t),this}get names(){const e=super.names;return C(e,this.condition),this.else&&$(e,this.else.names),e}}b.kind="if";class w extends g{}w.kind="for";class x extends w{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=R(this.iteration,e,t),this}get names(){return $(super.names,this.iteration.names)}}class k extends w{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){const t=e.es5?o.varKinds.var:this.varKind,{name:n,from:r,to:i}=this;return`for(${t} ${n}=${r}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){const e=C(super.names,this.from);return C(e,this.to)}}class _ extends w{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=R(this.iterable,e,t),this}get names(){return $(super.names,this.iterable.names)}}class O extends g{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}}O.kind="func";class S extends m{render(e){return"return "+super.render(e)}}S.kind="return";class E extends g{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),null===(e=this.catch)||void 0===e||e.optimizeNodes(),null===(t=this.finally)||void 0===t||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),null===(n=this.catch)||void 0===n||n.optimizeNames(e,t),null===(r=this.finally)||void 0===r||r.optimizeNames(e,t),this}get names(){const e=super.names;return this.catch&&$(e,this.catch.names),this.finally&&$(e,this.finally.names),e}}class P extends g{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}P.kind="catch";class A extends g{render(e){return"finally"+super.render(e)}}function $(e,t){for(const n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function C(e,t){return t instanceof r._CodeOrName?$(e,t.names):e}function R(e,t,n){return e instanceof r.Name?i(e):(o=e)instanceof r._Code&&o._items.some((e=>e instanceof r.Name&&1===t[e.str]&&void 0!==n[e.str]))?new r._Code(e._items.reduce(((e,t)=>(t instanceof r.Name&&(t=i(t)),t instanceof r._Code?e.push(...t._items):e.push(t),e)),[])):e;var o;function i(e){const r=n[e.str];return void 0===r||1!==t[e.str]?e:(delete t[e.str],r)}}function j(e,t){for(const n in t)e[n]=(e[n]||0)-(t[n]||0)}function T(e){return"boolean"==typeof e||"number"==typeof e||null===e?!e:r._`!${L(e)}`}A.kind="finally",t.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?"\n":""},this._extScope=e,this._scope=new o.Scope({parent:e}),this._nodes=[new y]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,r){const o=this._scope.toName(t);return void 0!==n&&r&&(this._constants[o.str]=n),this._leafNode(new l(e,o,n)),o}const(e,t,n){return this._def(o.varKinds.const,e,t,n)}let(e,t,n){return this._def(o.varKinds.let,e,t,n)}var(e,t,n){return this._def(o.varKinds.var,e,t,n)}assign(e,t,n){return this._leafNode(new c(e,t,n))}add(e,n){return this._leafNode(new u(e,t.operators.ADD,n))}code(e){return"function"==typeof e?e():e!==r.nil&&this._leafNode(new h(e)),this}object(...e){const t=["{"];for(const[n,o]of e)t.length>1&&t.push(","),t.push(n),(n!==o||this.opts.es5)&&(t.push(":"),r.addCodeArg(t,o));return t.push("}"),new r._Code(t)}if(e,t,n){if(this._blockNode(new b(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new b(e))}else(){return this._elseNode(new v)}endIf(){return this._endBlockNode(b,v)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new x(e),t)}forRange(e,t,n,r,i=(this.opts.es5?o.varKinds.var:o.varKinds.let)){const a=this._scope.toName(e);return this._for(new k(i,a,t,n),(()=>r(a)))}forOf(e,t,n,i=o.varKinds.const){const a=this._scope.toName(e);if(this.opts.es5){const e=t instanceof r.Name?t:this.var("_arr",t);return this.forRange("_i",0,r._`${e}.length`,(t=>{this.var(a,r._`${e}[${t}]`),n(a)}))}return this._for(new _("of",i,a,t),(()=>n(a)))}forIn(e,t,n,i=(this.opts.es5?o.varKinds.var:o.varKinds.const)){if(this.opts.ownProperties)return this.forOf(e,r._`Object.keys(${t})`,n);const a=this._scope.toName(e);return this._for(new _("in",i,a,t),(()=>n(a)))}endFor(){return this._endBlockNode(w)}label(e){return this._leafNode(new p(e))}break(e){return this._leafNode(new d(e))}return(e){const t=new S;if(this._blockNode(t),this.code(e),1!==t.nodes.length)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(S)}try(e,t,n){if(!t&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');const r=new E;if(this._blockNode(r),this.code(e),t){const e=this.name("e");this._currNode=r.catch=new P(e),t(e)}return n&&(this._currNode=r.finally=new A,this.code(n)),this._endBlockNode(P,A)}throw(e){return this._leafNode(new f(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){const t=this._blockStarts.pop();if(void 0===t)throw new Error("CodeGen: not in self-balancing block");const n=this._nodes.length-t;if(n<0||void 0!==e&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=r.nil,n,o){return this._blockNode(new O(e,t,n)),o&&this.code(o).endFunc(),this}endFunc(){return this._endBlockNode(O)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){const n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof b))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}},t.not=T;const I=D(t.operators.AND);t.and=function(...e){return e.reduce(I)};const N=D(t.operators.OR);function D(e){return(t,n)=>t===r.nil?n:n===r.nil?t:r._`${L(t)} ${e} ${L(n)}`}function L(e){return e instanceof r.Name?e:r._`(${e})`}t.or=function(...e){return e.reduce(N)}},7791:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const r=n(4667);class o extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}}var i;!function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"}(i=t.UsedValueState||(t.UsedValueState={})),t.varKinds={const:new r.Name("const"),let:new r.Name("let"),var:new r.Name("var")};class a{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof r.Name?e:this.name(e)}name(e){return new r.Name(this._newName(e))}_newName(e){return`${e}${(this._names[e]||this._nameGroup(e)).index++}`}_nameGroup(e){var t,n;if((null===(n=null===(t=this._parent)||void 0===t?void 0:t._prefixes)||void 0===n?void 0:n.has(e))||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}}t.Scope=a;class s extends r.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:t,itemIndex:n}){this.value=e,this.scopePath=r._`.${new r.Name(t)}[${n}]`}}t.ValueScopeName=s;const l=r._`\n`;t.ValueScope=class extends a{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?l:r.nil}}get(){return this._scope}name(e){return new s(e,this._newName(e))}value(e,t){var n;if(void 0===t.ref)throw new Error("CodeGen: ref must be passed in value");const r=this.toName(e),{prefix:o}=r,i=null!==(n=t.key)&&void 0!==n?n:t.ref;let a=this._values[o];if(a){const e=a.get(i);if(e)return e}else a=this._values[o]=new Map;a.set(i,r);const s=this._scope[o]||(this._scope[o]=[]),l=s.length;return s[l]=t.ref,r.setValue(t,{property:o,itemIndex:l}),r}getValue(e,t){const n=this._values[e];if(n)return n.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(void 0===t.scopePath)throw new Error(`CodeGen: name "${t}" has no value`);return r._`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,n){return this._reduceValues(e,(e=>{if(void 0===e.value)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,n)}_reduceValues(e,n,a={},s){let l=r.nil;for(const c in e){const u=e[c];if(!u)continue;const p=a[c]=a[c]||new Map;u.forEach((e=>{if(p.has(e))return;p.set(e,i.Started);let a=n(e);if(a){const n=this.opts.es5?t.varKinds.var:t.varKinds.const;l=r._`${l}${n} ${e} = ${a};${this.opts._n}`}else{if(!(a=null==s?void 0:s(e)))throw new o(e);l=r._`${l}${a}${this.opts._n}`}p.set(e,i.Completed)}))}return l}}},1885:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const r=n(4475),o=n(6124),i=n(5018);function a(e,t){const n=e.const("err",t);e.if(r._`${i.default.vErrors} === null`,(()=>e.assign(i.default.vErrors,r._`[${n}]`)),r._`${i.default.vErrors}.push(${n})`),e.code(r._`${i.default.errors}++`)}function s(e,t){const{gen:n,validateName:o,schemaEnv:i}=e;i.$async?n.throw(r._`new ${e.ValidationError}(${t})`):(n.assign(r._`${o}.errors`,t),n.return(!1))}t.keywordError={message:({keyword:e})=>r.str`should pass "${e}" keyword validation`},t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?r.str`"${e}" keyword must be ${t} ($data)`:r.str`"${e}" keyword is invalid ($data)`},t.reportError=function(e,n=t.keywordError,o,i){const{it:l}=e,{gen:u,compositeRule:p,allErrors:d}=l,f=c(e,n,o);(null!=i?i:p||d)?a(u,f):s(l,r._`[${f}]`)},t.reportExtraError=function(e,n=t.keywordError,r){const{it:o}=e,{gen:l,compositeRule:u,allErrors:p}=o;a(l,c(e,n,r)),u||p||s(o,i.default.vErrors)},t.resetErrorsCount=function(e,t){e.assign(i.default.errors,t),e.if(r._`${i.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign(r._`${i.default.vErrors}.length`,t)),(()=>e.assign(i.default.vErrors,null)))))},t.extendErrors=function({gen:e,keyword:t,schemaValue:n,data:o,errsCount:a,it:s}){if(void 0===a)throw new Error("ajv implementation error");const l=e.name("err");e.forRange("i",a,i.default.errors,(a=>{e.const(l,r._`${i.default.vErrors}[${a}]`),e.if(r._`${l}.instancePath === undefined`,(()=>e.assign(r._`${l}.instancePath`,r.strConcat(i.default.instancePath,s.errorPath)))),e.assign(r._`${l}.schemaPath`,r.str`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign(r._`${l}.schema`,n),e.assign(r._`${l}.data`,o))}))};const l={keyword:new r.Name("keyword"),schemaPath:new r.Name("schemaPath"),params:new r.Name("params"),propertyName:new r.Name("propertyName"),message:new r.Name("message"),schema:new r.Name("schema"),parentSchema:new r.Name("parentSchema")};function c(e,t,n){const{createErrors:o}=e.it;return!1===o?r._`{}`:function(e,t,n={}){const{gen:o,it:a}=e,s=[u(a,n),p(e,n)];return function(e,{params:t,message:n},o){const{keyword:a,data:s,schemaValue:c,it:u}=e,{opts:p,propertyName:d,topSchemaRef:f,schemaPath:h}=u;o.push([l.keyword,a],[l.params,"function"==typeof t?t(e):t||r._`{}`]),p.messages&&o.push([l.message,"function"==typeof n?n(e):n]),p.verbose&&o.push([l.schema,c],[l.parentSchema,r._`${f}${h}`],[i.default.data,s]),d&&o.push([l.propertyName,d])}(e,t,s),o.object(...s)}(e,t,n)}function u({errorPath:e},{instancePath:t}){const n=t?r.str`${e}${o.getErrorPath(t,o.Type.Str)}`:e;return[i.default.instancePath,r.strConcat(i.default.instancePath,n)]}function p({keyword:e,it:{errSchemaPath:t}},{schemaPath:n,parentSchema:i}){let a=i?t:r.str`${t}/${e}`;return n&&(a=r.str`${a}${o.getErrorPath(n,o.Type.Str)}`),[l.schemaPath,a]}},7805:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const r=n(4475),o=n(8451),i=n(5018),a=n(9826),s=n(6124),l=n(1321),c=n(540);class u{constructor(e){var t;let n;this.refs={},this.dynamicAnchors={},"object"==typeof e.schema&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=null!==(t=e.baseId)&&void 0!==t?t:a.normalizeId(null==n?void 0:n[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=null==n?void 0:n.$async,this.refs={}}}function p(e){const t=f.call(this,e);if(t)return t;const n=a.getFullPath(e.root.baseId),{es5:s,lines:c}=this.opts.code,{ownProperties:u}=this.opts,p=new r.CodeGen(this.scope,{es5:s,lines:c,ownProperties:u});let d;e.$async&&(d=p.scopeValue("Error",{ref:o.default,code:r._`require("ajv/dist/runtime/validation_error").default`}));const h=p.scopeName("validate");e.validateName=h;const m={gen:p,allErrors:this.opts.allErrors,data:i.default.data,parentData:i.default.parentData,parentDataProperty:i.default.parentDataProperty,dataNames:[i.default.data],dataPathArr:[r.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:p.scopeValue("schema",!0===this.opts.code.source?{ref:e.schema,code:r.stringify(e.schema)}:{ref:e.schema}),validateName:h,ValidationError:d,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:r.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:r._`""`,opts:this.opts,self:this};let g;try{this._compilations.add(e),l.validateFunctionCode(m),p.optimize(this.opts.code.optimize);const t=p.toString();g=`const visitedNodesForRef = new WeakMap(); ${p.scopeRefs(i.default.scope)}return ${t}`,this.opts.code.process&&(g=this.opts.code.process(g,e));const n=new Function(`${i.default.self}`,`${i.default.scope}`,g)(this,this.scope.get());if(this.scope.value(h,{ref:n}),n.errors=null,n.schema=e.schema,n.schemaEnv=e,e.$async&&(n.$async=!0),!0===this.opts.code.source&&(n.source={validateName:h,validateCode:t,scopeValues:p._values}),this.opts.unevaluated){const{props:e,items:t}=m;n.evaluated={props:e instanceof r.Name?void 0:e,items:t instanceof r.Name?void 0:t,dynamicProps:e instanceof r.Name,dynamicItems:t instanceof r.Name},n.source&&(n.source.evaluated=r.stringify(n.evaluated))}return e.validate=n,e}catch(t){throw delete e.validate,delete e.validateName,g&&this.logger.error("Error compiling schema, function code:",g),t}finally{this._compilations.delete(e)}}function d(e){return a.inlineRef(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:p.call(this,e)}function f(e){for(const r of this._compilations)if(n=e,(t=r).schema===n.schema&&t.root===n.root&&t.baseId===n.baseId)return r;var t,n}function h(e,t){let n;for(;"string"==typeof(n=this.refs[t]);)t=n;return n||this.schemas[t]||m.call(this,e,t)}function m(e,t){const n=c.parse(t),r=a._getFullPath(n);let o=a.getFullPath(e.baseId);if(Object.keys(e.schema).length>0&&r===o)return y.call(this,n,e);const i=a.normalizeId(r),s=this.refs[i]||this.schemas[i];if("string"==typeof s){const t=m.call(this,e,s);if("object"!=typeof(null==t?void 0:t.schema))return;return y.call(this,n,t)}if("object"==typeof(null==s?void 0:s.schema)){if(s.validate||p.call(this,s),i===a.normalizeId(t)){const{schema:t}=s,{schemaId:n}=this.opts,r=t[n];return r&&(o=a.resolveUrl(o,r)),new u({schema:t,schemaId:n,root:e,baseId:o})}return y.call(this,n,s)}}t.SchemaEnv=u,t.compileSchema=p,t.resolveRef=function(e,t,n){var r;const o=a.resolveUrl(t,n),i=e.refs[o];if(i)return i;let s=h.call(this,e,o);if(void 0===s){const n=null===(r=e.localRefs)||void 0===r?void 0:r[o],{schemaId:i}=this.opts;n&&(s=new u({schema:n,schemaId:i,root:e,baseId:t}))}if(void 0===s&&this.opts.loadSchemaSync){const r=this.opts.loadSchemaSync(t,n,o);!r||this.refs[o]||this.schemas[o]||(this.addSchema(r,o,void 0),s=h.call(this,e,o))}return void 0!==s?e.refs[o]=d.call(this,s):void 0},t.getCompilingSchema=f,t.resolveSchema=m;const g=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function y(e,{baseId:t,schema:n,root:r}){var o;if("/"!==(null===(o=e.fragment)||void 0===o?void 0:o[0]))return;for(const r of e.fragment.slice(1).split("/")){if("boolean"==typeof n)return;if(void 0===(n=n[s.unescapeFragment(r)]))return;const e="object"==typeof n&&n[this.opts.schemaId];!g.has(r)&&e&&(t=a.resolveUrl(t,e))}let i;if("boolean"!=typeof n&&n.$ref&&!s.schemaHasRulesButRef(n,this.RULES)){const e=a.resolveUrl(t,n.$ref);i=m.call(this,r,e)}const{schemaId:l}=this.opts;return i=i||new u({schema:n,schemaId:l,root:r,baseId:t}),i.schema!==i.root.schema?i:void 0}},5018:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={data:new r.Name("data"),valCxt:new r.Name("valCxt"),instancePath:new r.Name("instancePath"),parentData:new r.Name("parentData"),parentDataProperty:new r.Name("parentDataProperty"),rootData:new r.Name("rootData"),dynamicAnchors:new r.Name("dynamicAnchors"),vErrors:new r.Name("vErrors"),errors:new r.Name("errors"),this:new r.Name("this"),self:new r.Name("self"),scope:new r.Name("scope"),json:new r.Name("json"),jsonPos:new r.Name("jsonPos"),jsonLen:new r.Name("jsonLen"),jsonPart:new r.Name("jsonPart")};t.default=o},4143:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9826);class o extends Error{constructor(e,t,n){super(n||`can't resolve reference ${t} from id ${e}`),this.missingRef=r.resolveUrl(e,t),this.missingSchema=r.normalizeId(r.getFullPath(this.missingRef))}}t.default=o},9826:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const r=n(6124),o=n(4063),i=n(4029),a=n(540),s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);t.inlineRef=function(e,t=!0){return"boolean"==typeof e||(!0===t?!c(e):!!t&&u(e)<=t)};const l=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function c(e){for(const t in e){if(l.has(t))return!0;const n=e[t];if(Array.isArray(n)&&n.some(c))return!0;if("object"==typeof n&&c(n))return!0}return!1}function u(e){let t=0;for(const n in e){if("$ref"===n)return 1/0;if(t++,!s.has(n)&&("object"==typeof e[n]&&r.eachItem(e[n],(e=>t+=u(e))),t===1/0))return 1/0}return t}function p(e="",t){return!1!==t&&(e=h(e)),d(a.parse(e))}function d(e){return a.serialize(e).split("#")[0]+"#"}t.getFullPath=p,t._getFullPath=d;const f=/#\/?$/;function h(e){return e?e.replace(f,""):""}t.normalizeId=h,t.resolveUrl=function(e,t){return t=h(t),a.resolve(e,t)};const m=/^[a-z_][-a-z0-9._]*$/i;t.getSchemaRefs=function(e){if("boolean"==typeof e)return{};const{schemaId:t}=this.opts,n=h(e[t]),r={"":n},s=p(n,!1),l={},c=new Set;return i(e,{allKeys:!0},((e,n,o,i)=>{if(void 0===i)return;const p=s+n;let f=r[i];function g(t){if(t=h(f?a.resolve(f,t):t),c.has(t))throw d(t);c.add(t);let n=this.refs[t];return"string"==typeof n&&(n=this.refs[n]),"object"==typeof n?u(e,n.schema,t):t!==h(p)&&("#"===t[0]?(u(e,l[t],t),l[t]=e):this.refs[t]=p),t}function y(e){if("string"==typeof e){if(!m.test(e))throw new Error(`invalid anchor "${e}"`);g.call(this,`#${e}`)}}"string"==typeof e[t]&&(f=g.call(this,e[t])),y.call(this,e.$anchor),y.call(this,e.$dynamicAnchor),r[n]=f})),l;function u(e,t,n){if(void 0!==t&&!o(e,t))throw d(n)}function d(e){return new Error(`reference "${e}" resolves to more than one schema`)}}},3664:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;const n=new Set(["string","number","integer","boolean","null","object","array"]);t.isJSONType=function(e){return"string"==typeof e&&n.has(e)},t.getRules=function(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}},6124:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const r=n(4475),o=n(4667);function i(e,t=e.schema){const{opts:n,self:r}=e;if(!n.strictSchema)return;if("boolean"==typeof t)return;const o=r.RULES.keywords;for(const n in t)o[n]||h(e,`unknown keyword: "${n}"`)}function a(e,t){if("boolean"==typeof e)return!e;for(const n in e)if(t[n])return!0;return!1}function s(e){return"number"==typeof e?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}function l(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function c({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:o}){return(i,a,s,l)=>{const c=void 0===s?a:s instanceof r.Name?(a instanceof r.Name?e(i,a,s):t(i,a,s),s):a instanceof r.Name?(t(i,s,a),a):n(a,s);return l!==r.Name||c instanceof r.Name?c:o(i,c)}}function u(e,t){if(!0===t)return e.var("props",!0);const n=e.var("props",r._`{}`);return void 0!==t&&p(e,n,t),n}function p(e,t,n){Object.keys(n).forEach((n=>e.assign(r._`${t}${r.getProperty(n)}`,!0)))}t.toHash=function(e){const t={};for(const n of e)t[n]=!0;return t},t.alwaysValidSchema=function(e,t){return"boolean"==typeof t?t:0===Object.keys(t).length||(i(e,t),!a(t,e.self.RULES.all))},t.checkUnknownRules=i,t.schemaHasRules=a,t.schemaHasRulesButRef=function(e,t){if("boolean"==typeof e)return!e;for(const n in e)if("$ref"!==n&&t.all[n])return!0;return!1},t.schemaRefOrVal=function({topSchemaRef:e,schemaPath:t},n,o,i){if(!i){if("number"==typeof n||"boolean"==typeof n)return n;if("string"==typeof n)return r._`${n}`}return r._`${e}${t}${r.getProperty(o)}`},t.unescapeFragment=function(e){return l(decodeURIComponent(e))},t.escapeFragment=function(e){return encodeURIComponent(s(e))},t.escapeJsonPointer=s,t.unescapeJsonPointer=l,t.eachItem=function(e,t){if(Array.isArray(e))for(const n of e)t(n);else t(e)},t.mergeEvaluated={props:c({mergeNames:(e,t,n)=>e.if(r._`${n} !== true && ${t} !== undefined`,(()=>{e.if(r._`${t} === true`,(()=>e.assign(n,!0)),(()=>e.assign(n,r._`${n} || {}`).code(r._`Object.assign(${n}, ${t})`)))})),mergeToName:(e,t,n)=>e.if(r._`${n} !== true`,(()=>{!0===t?e.assign(n,!0):(e.assign(n,r._`${n} || {}`),p(e,n,t))})),mergeValues:(e,t)=>!0===e||{...e,...t},resultToName:u}),items:c({mergeNames:(e,t,n)=>e.if(r._`${n} !== true && ${t} !== undefined`,(()=>e.assign(n,r._`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`))),mergeToName:(e,t,n)=>e.if(r._`${n} !== true`,(()=>e.assign(n,!0===t||r._`${n} > ${t} ? ${n} : ${t}`))),mergeValues:(e,t)=>!0===e||Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})},t.evaluatedPropsToName=u,t.setEvaluated=p;const d={};var f;function h(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,!0===n)throw new Error(t);e.self.logger.warn(t)}}t.useFunc=function(e,t){return e.scopeValue("func",{ref:t,code:d[t.code]||(d[t.code]=new o._Code(t.code))})},function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"}(f=t.Type||(t.Type={})),t.getErrorPath=function(e,t,n){if(e instanceof r.Name){const o=t===f.Num;return n?o?r._`"[" + ${e} + "]"`:r._`"['" + ${e} + "']"`:o?r._`"/" + ${e}`:r._`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?r.getProperty(e).toString():"/"+s(e)},t.checkStrictMode=h},4566:function(e,t){"use strict";function n(e,t){return t.rules.some((t=>r(e,t)))}function r(e,t){var n;return void 0!==e[t.keyword]||(null===(n=t.definition.implements)||void 0===n?void 0:n.some((t=>void 0!==e[t])))}Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0,t.schemaHasRulesForType=function({schema:e,self:t},r){const o=t.RULES.types[r];return o&&!0!==o&&n(e,o)},t.shouldUseGroup=n,t.shouldUseRule=r},7627:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const r=n(1885),o=n(4475),i=n(5018),a={message:"boolean schema is false"};function s(e,t){const{gen:n,data:o}=e,i={gen:n,keyword:"false schema",data:o,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};r.reportError(i,a,void 0,t)}t.topBoolOrEmptySchema=function(e){const{gen:t,schema:n,validateName:r}=e;!1===n?s(e,!1):"object"==typeof n&&!0===n.$async?t.return(i.default.data):(t.assign(o._`${r}.errors`,null),t.return(!0))},t.boolOrEmptySchema=function(e,t){const{gen:n,schema:r}=e;!1===r?(n.var(t,!1),s(e)):n.var(t,!0)}},7927:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const r=n(3664),o=n(4566),i=n(1885),a=n(4475),s=n(6124);var l;function c(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(r.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}!function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"}(l=t.DataType||(t.DataType={})),t.getSchemaTypes=function(e){const t=c(e.type);if(t.includes("null")){if(!1===e.nullable)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&void 0!==e.nullable)throw new Error('"nullable" cannot be used without "type"');!0===e.nullable&&t.push("null")}return t},t.getJSONTypes=c,t.coerceAndCheckDataType=function(e,t){const{gen:n,data:r,opts:i}=e,s=function(e,t){return t?e.filter((e=>u.has(e)||"array"===t&&"array"===e)):[]}(t,i.coerceTypes),c=t.length>0&&!(0===s.length&&1===t.length&&o.schemaHasRulesForType(e,t[0]));if(c){const o=d(t,r,i.strictNumbers,l.Wrong);n.if(o,(()=>{s.length?function(e,t,n){const{gen:r,data:o,opts:i}=e,s=r.let("dataType",a._`typeof ${o}`),l=r.let("coerced",a._`undefined`);"array"===i.coerceTypes&&r.if(a._`${s} == 'object' && Array.isArray(${o}) && ${o}.length == 1`,(()=>r.assign(o,a._`${o}[0]`).assign(s,a._`typeof ${o}`).if(d(t,o,i.strictNumbers),(()=>r.assign(l,o))))),r.if(a._`${l} !== undefined`);for(const e of n)(u.has(e)||"array"===e&&"array"===i.coerceTypes)&&c(e);function c(e){switch(e){case"string":return void r.elseIf(a._`${s} == "number" || ${s} == "boolean"`).assign(l,a._`"" + ${o}`).elseIf(a._`${o} === null`).assign(l,a._`""`);case"number":return void r.elseIf(a._`${s} == "boolean" || ${o} === null + || (${s} == "string" && ${o} && ${o} == +${o})`).assign(l,a._`+${o}`);case"integer":return void r.elseIf(a._`${s} === "boolean" || ${o} === null + || (${s} === "string" && ${o} && ${o} == +${o} && !(${o} % 1))`).assign(l,a._`+${o}`);case"boolean":return void r.elseIf(a._`${o} === "false" || ${o} === 0 || ${o} === null`).assign(l,!1).elseIf(a._`${o} === "true" || ${o} === 1`).assign(l,!0);case"null":return r.elseIf(a._`${o} === "" || ${o} === 0 || ${o} === false`),void r.assign(l,null);case"array":r.elseIf(a._`${s} === "string" || ${s} === "number" + || ${s} === "boolean" || ${o} === null`).assign(l,a._`[${o}]`)}}r.else(),h(e),r.endIf(),r.if(a._`${l} !== undefined`,(()=>{r.assign(o,l),function({gen:e,parentData:t,parentDataProperty:n},r){e.if(a._`${t} !== undefined`,(()=>e.assign(a._`${t}[${n}]`,r)))}(e,l)}))}(e,t,s):h(e)}))}return c};const u=new Set(["string","number","integer","boolean","null"]);function p(e,t,n,r=l.Correct){const o=r===l.Correct?a.operators.EQ:a.operators.NEQ;let i;switch(e){case"null":return a._`${t} ${o} null`;case"array":i=a._`Array.isArray(${t})`;break;case"object":i=a._`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=s(a._`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=s();break;default:return a._`typeof ${t} ${o} ${e}`}return r===l.Correct?i:a.not(i);function s(e=a.nil){return a.and(a._`typeof ${t} == "number"`,e,n?a._`isFinite(${t})`:a.nil)}}function d(e,t,n,r){if(1===e.length)return p(e[0],t,n,r);let o;const i=s.toHash(e);if(i.array&&i.object){const e=a._`typeof ${t} != "object"`;o=i.null?e:a._`!${t} || ${e}`,delete i.null,delete i.array,delete i.object}else o=a.nil;i.number&&delete i.integer;for(const e in i)o=a.and(o,p(e,t,n,r));return o}t.checkDataType=p,t.checkDataTypes=d;const f={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>"string"==typeof e?a._`{type: ${e}}`:a._`{type: ${t}}`};function h(e){const t=function(e){const{gen:t,data:n,schema:r}=e,o=s.schemaRefOrVal(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:o,schemaValue:o,parentSchema:r,params:{},it:e}}(e);i.reportError(t,f)}t.reportTypeError=h},2537:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const r=n(4475),o=n(6124);function i(e,t,n){const{gen:i,compositeRule:a,data:s,opts:l}=e;if(void 0===n)return;const c=r._`${s}${r.getProperty(t)}`;if(a)return void o.checkStrictMode(e,`default is ignored for: ${c}`);let u=r._`${c} === undefined`;"empty"===l.useDefaults&&(u=r._`${u} || ${c} === null || ${c} === ""`),i.if(u,r._`${c} = ${r.stringify(n)}`)}t.assignDefaults=function(e,t){const{properties:n,items:r}=e.schema;if("object"===t&&n)for(const t in n)i(e,t,n[t].default);else"array"===t&&Array.isArray(r)&&r.forEach(((t,n)=>i(e,n,t.default)))}},1321:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const r=n(7627),o=n(7927),i=n(4566),a=n(7927),s=n(2537),l=n(6488),c=n(4688),u=n(4475),p=n(5018),d=n(9826),f=n(6124),h=n(1885);function m({gen:e,validateName:t,schema:n,schemaEnv:r,opts:o},i){o.code.es5?e.func(t,u._`${p.default.data}, ${p.default.valCxt}`,r.$async,(()=>{e.code(u._`"use strict"; ${g(n,o)}`),function(e,t){e.if(p.default.valCxt,(()=>{e.var(p.default.instancePath,u._`${p.default.valCxt}.${p.default.instancePath}`),e.var(p.default.parentData,u._`${p.default.valCxt}.${p.default.parentData}`),e.var(p.default.parentDataProperty,u._`${p.default.valCxt}.${p.default.parentDataProperty}`),e.var(p.default.rootData,u._`${p.default.valCxt}.${p.default.rootData}`),t.dynamicRef&&e.var(p.default.dynamicAnchors,u._`${p.default.valCxt}.${p.default.dynamicAnchors}`)}),(()=>{e.var(p.default.instancePath,u._`""`),e.var(p.default.parentData,u._`undefined`),e.var(p.default.parentDataProperty,u._`undefined`),e.var(p.default.rootData,p.default.data),t.dynamicRef&&e.var(p.default.dynamicAnchors,u._`{}`)}))}(e,o),e.code(i)})):e.func(t,u._`${p.default.data}, ${function(e){return u._`{${p.default.instancePath}="", ${p.default.parentData}, ${p.default.parentDataProperty}, ${p.default.rootData}=${p.default.data}${e.dynamicRef?u._`, ${p.default.dynamicAnchors}={}`:u.nil}}={}`}(o)}`,r.$async,(()=>e.code(g(n,o)).code(i)))}function g(e,t){const n="object"==typeof e&&e[t.schemaId];return n&&(t.code.source||t.code.process)?u._`/*# sourceURL=${n} */`:u.nil}function y({schema:e,self:t}){if("boolean"==typeof e)return!e;for(const n in e)if(t.RULES.all[n])return!0;return!1}function v(e){return"boolean"!=typeof e.schema}function b(e){f.checkUnknownRules(e),function(e){const{schema:t,errSchemaPath:n,opts:r,self:o}=e;t.$ref&&r.ignoreKeywordsWithRef&&f.schemaHasRulesButRef(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}(e)}function w(e,t){if(e.opts.jtd)return k(e,[],!1,t);const n=o.getSchemaTypes(e.schema);k(e,n,!o.coerceAndCheckDataType(e,n),t)}function x({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:o}){const i=n.$comment;if(!0===o.$comment)e.code(u._`${p.default.self}.logger.log(${i})`);else if("function"==typeof o.$comment){const n=u.str`${r}/$comment`,o=e.scopeValue("root",{ref:t.root});e.code(u._`${p.default.self}.opts.$comment(${i}, ${n}, ${o}.schema)`)}}function k(e,t,n,r){const{gen:o,schema:s,data:l,allErrors:c,opts:d,self:h}=e,{RULES:m}=h;function g(f){i.shouldUseGroup(s,f)&&(f.type?(o.if(a.checkDataType(f.type,l,d.strictNumbers)),_(e,f),1===t.length&&t[0]===f.type&&n&&(o.else(),a.reportTypeError(e)),o.endIf()):_(e,f),c||o.if(u._`${p.default.errors} === ${r||0}`))}!s.$ref||!d.ignoreKeywordsWithRef&&f.schemaHasRulesButRef(s,m)?(d.jtd||function(e,t){!e.schemaEnv.meta&&e.opts.strictTypes&&(function(e,t){t.length&&(e.dataTypes.length?(t.forEach((t=>{O(e.dataTypes,t)||S(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)})),e.dataTypes=e.dataTypes.filter((e=>O(t,e)))):e.dataTypes=t)}(e,t),e.opts.allowUnionTypes||function(e,t){t.length>1&&(2!==t.length||!t.includes("null"))&&S(e,"use allowUnionTypes to allow union type keyword")}(e,t),function(e,t){const n=e.self.RULES.all;for(const r in n){const o=n[r];if("object"==typeof o&&i.shouldUseRule(e.schema,o)){const{type:n}=o.definition;n.length&&!n.some((e=>{return r=e,(n=t).includes(r)||"number"===r&&n.includes("integer");var n,r}))&&S(e,`missing type "${n.join(",")}" for keyword "${r}"`)}}}(e,e.dataTypes))}(e,t),o.block((()=>{for(const e of m.rules)g(e);g(m.post)}))):o.block((()=>P(e,"$ref",m.all.$ref.definition)))}function _(e,t){const{gen:n,schema:r,opts:{useDefaults:o}}=e;o&&s.assignDefaults(e,t.type),n.block((()=>{for(const n of t.rules)i.shouldUseRule(r,n)&&P(e,n.keyword,n.definition,t.type)}))}function O(e,t){return e.includes(t)||"integer"===t&&e.includes("number")}function S(e,t){t+=` at "${e.schemaEnv.baseId+e.errSchemaPath}" (strictTypes)`,f.checkStrictMode(e,t,e.opts.strictTypes)}t.validateFunctionCode=function(e){v(e)&&(b(e),y(e))?function(e){const{schema:t,opts:n,gen:r}=e;m(e,(()=>{n.$comment&&t.$comment&&x(e),function(e){const{schema:t,opts:n}=e;void 0!==t.default&&n.useDefaults&&n.strictSchema&&f.checkStrictMode(e,"default is ignored in the schema root")}(e),r.let(p.default.vErrors,null),r.let(p.default.errors,0),n.unevaluated&&function(e){const{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",u._`${n}.evaluated`),t.if(u._`${e.evaluated}.dynamicProps`,(()=>t.assign(u._`${e.evaluated}.props`,u._`undefined`))),t.if(u._`${e.evaluated}.dynamicItems`,(()=>t.assign(u._`${e.evaluated}.items`,u._`undefined`)))}(e),w(e),function(e){const{gen:t,schemaEnv:n,validateName:r,ValidationError:o,opts:i}=e;n.$async?t.if(u._`${p.default.errors} === 0`,(()=>t.return(p.default.data)),(()=>t.throw(u._`new ${o}(${p.default.vErrors})`))):(t.assign(u._`${r}.errors`,p.default.vErrors),i.unevaluated&&function({gen:e,evaluated:t,props:n,items:r}){n instanceof u.Name&&e.assign(u._`${t}.props`,n),r instanceof u.Name&&e.assign(u._`${t}.items`,r)}(e),t.return(u._`${p.default.errors} === 0`))}(e)}))}(e):m(e,(()=>r.topBoolOrEmptySchema(e)))};class E{constructor(e,t,n){if(l.validateKeywordUsage(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=f.schemaRefOrVal(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",C(this.$data,e));else if(this.schemaCode=this.schemaValue,!l.validSchemaType(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:!1!==t.errors)&&(this.errsCount=e.gen.const("_errs",p.default.errors))}result(e,t,n){this.gen.if(u.not(e)),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.result(e,void 0,t)}fail(e){if(void 0===e)return this.error(),void(this.allErrors||this.gen.if(!1));this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail(u._`${t} !== undefined && (${u.or(this.invalid$data(),e)})`)}error(e,t,n){if(t)return this.setParams(t),this._error(e,n),void this.setParams({});this._error(e,n)}_error(e,t){(e?h.reportExtraError:h.reportError)(this,this.def.error,t)}$dataError(){h.reportError(this,this.def.$dataError||h.keyword$DataError)}reset(){if(void 0===this.errsCount)throw new Error('add "trackErrors" to keyword definition');h.resetErrorsCount(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=u.nil){this.gen.block((()=>{this.check$data(e,n),t()}))}check$data(e=u.nil,t=u.nil){if(!this.$data)return;const{gen:n,schemaCode:r,schemaType:o,def:i}=this;n.if(u.or(u._`${r} === undefined`,t)),e!==u.nil&&n.assign(e,!0),(o.length||i.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==u.nil&&n.assign(e,!1)),n.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:n,def:r,it:o}=this;return u.or(function(){if(n.length){if(!(t instanceof u.Name))throw new Error("ajv implementation error");const e=Array.isArray(n)?n:[n];return u._`${a.checkDataTypes(e,t,o.opts.strictNumbers,a.DataType.Wrong)}`}return u.nil}(),function(){if(r.validateSchema){const n=e.scopeValue("validate$data",{ref:r.validateSchema});return u._`!${n}(${t})`}return u.nil}())}subschema(e,t){const n=c.getSubschema(this.it,e);c.extendSubschemaData(n,this.it,e),c.extendSubschemaMode(n,e);const o={...this.it,...n,items:void 0,props:void 0};return function(e,t){v(e)&&(b(e),y(e))?function(e,t){const{schema:n,gen:r,opts:o}=e;o.$comment&&n.$comment&&x(e),function(e){const t=e.schema[e.opts.schemaId];t&&(e.baseId=d.resolveUrl(e.baseId,t))}(e),function(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}(e);const i=r.const("_errs",p.default.errors);w(e,i),r.var(t,u._`${i} === ${p.default.errors}`)}(e,t):r.boolOrEmptySchema(e,t)}(o,t),o}mergeEvaluated(e,t){const{it:n,gen:r}=this;n.opts.unevaluated&&(!0!==n.props&&void 0!==e.props&&(n.props=f.mergeEvaluated.props(r,e.props,n.props,t)),!0!==n.items&&void 0!==e.items&&(n.items=f.mergeEvaluated.items(r,e.items,n.items,t)))}mergeValidEvaluated(e,t){const{it:n,gen:r}=this;if(n.opts.unevaluated&&(!0!==n.props||!0!==n.items))return r.if(t,(()=>this.mergeEvaluated(e,u.Name))),!0}}function P(e,t,n,r){const o=new E(e,n,t);"code"in n?n.code(o,r):o.$data&&n.validate?l.funcKeywordCode(o,n):"macro"in n?l.macroKeywordCode(o,n):(n.compile||n.validate)&&l.funcKeywordCode(o,n)}t.KeywordCxt=E;const A=/^\/(?:[^~]|~0|~1)*$/,$=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function C(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let o,i;if(""===e)return p.default.rootData;if("/"===e[0]){if(!A.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=p.default.rootData}else{const a=$.exec(e);if(!a)throw new Error(`Invalid JSON-pointer: ${e}`);const s=+a[1];if(o=a[2],"#"===o){if(s>=t)throw new Error(l("property/index",s));return r[t-s]}if(s>t)throw new Error(l("data",s));if(i=n[t-s],!o)return i}let a=i;const s=o.split("/");for(const e of s)e&&(i=u._`${i}${u.getProperty(f.unescapeJsonPointer(e))}`,a=u._`${a} && ${i}`);return a;function l(e,n){return`Cannot access ${e} ${n} levels up, current level is ${t}`}}t.getData=C},6488:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const r=n(4475),o=n(5018),i=n(8619),a=n(1885);function s(e){const{gen:t,data:n,it:o}=e;t.if(o.parentData,(()=>t.assign(n,r._`${o.parentData}[${o.parentDataProperty}]`)))}function l(e,t,n){if(void 0===n)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword","function"==typeof n?{ref:n}:{ref:n,code:r.stringify(n)})}t.macroKeywordCode=function(e,t){const{gen:n,keyword:o,schema:i,parentSchema:a,it:s}=e,c=t.macro.call(s.self,i,a,s),u=l(n,o,c);!1!==s.opts.validateSchema&&s.self.validateSchema(c,!0);const p=n.name("valid");e.subschema({schema:c,schemaPath:r.nil,errSchemaPath:`${s.errSchemaPath}/${o}`,topSchemaRef:u,compositeRule:!0},p),e.pass(p,(()=>e.error(!0)))},t.funcKeywordCode=function(e,t){var n;const{gen:c,keyword:u,schema:p,parentSchema:d,$data:f,it:h}=e;!function({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}(h,t);const m=!f&&t.compile?t.compile.call(h.self,p,d,h):t.validate,g=l(c,u,m),y=c.let("valid");function v(n=(t.async?r._`await `:r.nil)){const a=h.opts.passContext?o.default.this:o.default.self,s=!("compile"in t&&!f||!1===t.schema);c.assign(y,r._`${n}${i.callValidateCode(e,g,a,s)}`,t.modifying)}function b(e){var n;c.if(r.not(null!==(n=t.valid)&&void 0!==n?n:y),e)}e.block$data(y,(function(){if(!1===t.errors)v(),t.modifying&&s(e),b((()=>e.error()));else{const n=t.async?function(){const e=c.let("ruleErrs",null);return c.try((()=>v(r._`await `)),(t=>c.assign(y,!1).if(r._`${t} instanceof ${h.ValidationError}`,(()=>c.assign(e,r._`${t}.errors`)),(()=>c.throw(t))))),e}():function(){const e=r._`${g}.errors`;return c.assign(e,null),v(r.nil),e}();t.modifying&&s(e),b((()=>function(e,t){const{gen:n}=e;n.if(r._`Array.isArray(${t})`,(()=>{n.assign(o.default.vErrors,r._`${o.default.vErrors} === null ? ${t} : ${o.default.vErrors}.concat(${t})`).assign(o.default.errors,r._`${o.default.vErrors}.length`),a.extendErrors(e)}),(()=>e.error()))}(e,n)))}})),e.ok(null!==(n=t.valid)&&void 0!==n?n:y)},t.validSchemaType=function(e,t,n=!1){return!t.length||t.some((t=>"array"===t?Array.isArray(e):"object"===t?e&&"object"==typeof e&&!Array.isArray(e):typeof e==t||n&&void 0===e))},t.validateKeywordUsage=function({schema:e,opts:t,self:n,errSchemaPath:r},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");const a=o.dependencies;if(null==a?void 0:a.some((t=>!Object.prototype.hasOwnProperty.call(e,t))))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema&&!o.validateSchema(e[i])){const e=`keyword "${i}" value is invalid at path "${r}": `+n.errorsText(o.validateSchema.errors);if("log"!==t.validateSchema)throw new Error(e);n.logger.error(e)}}},4688:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const r=n(4475),o=n(6124);t.getSubschema=function(e,{keyword:t,schemaProp:n,schema:i,schemaPath:a,errSchemaPath:s,topSchemaRef:l}){if(void 0!==t&&void 0!==i)throw new Error('both "keyword" and "schema" passed, only one allowed');if(void 0!==t){const i=e.schema[t];return void 0===n?{schema:i,schemaPath:r._`${e.schemaPath}${r.getProperty(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:i[n],schemaPath:r._`${e.schemaPath}${r.getProperty(t)}${r.getProperty(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${o.escapeFragment(n)}`}}if(void 0!==i){if(void 0===a||void 0===s||void 0===l)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:a,topSchemaRef:l,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')},t.extendSubschemaData=function(e,t,{dataProp:n,dataPropType:i,data:a,dataTypes:s,propertyName:l}){if(void 0!==a&&void 0!==n)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:c}=t;if(void 0!==n){const{errorPath:a,dataPathArr:s,opts:l}=t;u(c.let("data",r._`${t.data}${r.getProperty(n)}`,!0)),e.errorPath=r.str`${a}${o.getErrorPath(n,i,l.jsPropertySyntax)}`,e.parentDataProperty=r._`${n}`,e.dataPathArr=[...s,e.parentDataProperty]}function u(n){e.data=n,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,n]}void 0!==a&&(u(a instanceof r.Name?a:c.let("data",a,!0)),void 0!==l&&(e.propertyName=l)),s&&(e.dataTypes=s)},t.extendSubschemaMode=function(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:o,allErrors:i}){void 0!==r&&(e.compositeRule=r),void 0!==o&&(e.createErrors=o),void 0!==i&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=n}},3325:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var r=n(1321);Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return r.KeywordCxt}});var o=n(4475);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return o._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return o.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return o.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return o.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return o.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return o.CodeGen}});const i=n(8451),a=n(4143),s=n(3664),l=n(7805),c=n(4475),u=n(9826),p=n(7927),d=n(6124),f=n(425),h=["removeAdditional","useDefaults","coerceTypes"],m=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};function v(e){var t,n,r,o,i,a,s,l,c,u,p,d,f,h,m,g,y,v,b,w,x,k;const _=e.strict,O=null===(t=e.code)||void 0===t?void 0:t.optimize,S=!0===O||void 0===O?1:O||0;return{strictSchema:null===(r=null!==(n=e.strictSchema)&&void 0!==n?n:_)||void 0===r||r,strictNumbers:null===(i=null!==(o=e.strictNumbers)&&void 0!==o?o:_)||void 0===i||i,strictTypes:null!==(s=null!==(a=e.strictTypes)&&void 0!==a?a:_)&&void 0!==s?s:"log",strictTuples:null!==(c=null!==(l=e.strictTuples)&&void 0!==l?l:_)&&void 0!==c?c:"log",strictRequired:null!==(p=null!==(u=e.strictRequired)&&void 0!==u?u:_)&&void 0!==p&&p,code:e.code?{...e.code,optimize:S}:{optimize:S},loopRequired:null!==(d=e.loopRequired)&&void 0!==d?d:200,loopEnum:null!==(f=e.loopEnum)&&void 0!==f?f:200,meta:null===(h=e.meta)||void 0===h||h,messages:null===(m=e.messages)||void 0===m||m,inlineRefs:null===(g=e.inlineRefs)||void 0===g||g,schemaId:null!==(y=e.schemaId)&&void 0!==y?y:"$id",addUsedSchema:null===(v=e.addUsedSchema)||void 0===v||v,validateSchema:null===(b=e.validateSchema)||void 0===b||b,validateFormats:null===(w=e.validateFormats)||void 0===w||w,unicodeRegExp:null===(x=e.unicodeRegExp)||void 0===x||x,int32range:null===(k=e.int32range)||void 0===k||k}}class b{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...v(e)};const{es5:t,lines:n}=this.opts.code;this.scope=new c.ValueScope({scope:{},prefixes:m,es5:t,lines:n}),this.logger=function(e){if(!1===e)return E;if(void 0===e)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}(e.logger);const r=e.validateFormats;e.validateFormats=!1,this.RULES=s.getRules(),w.call(this,g,e,"NOT SUPPORTED"),w.call(this,y,e,"DEPRECATED","warn"),this._metaOpts=S.call(this),e.formats&&_.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&O.call(this,e.keywords),"object"==typeof e.meta&&this.addMetaSchema(e.meta),k.call(this),e.validateFormats=r}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:n}=this.opts;let r=f;"id"===n&&(r={...f},r.id=r.$id,delete r.$id),t&&e&&this.addMetaSchema(r,r[n],!1)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta="object"==typeof e?e[t]||e:void 0}validate(e,t){let n;if("string"==typeof e){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);const r=n(t);return"$async"in n||(this.errors=n.errors),r}compile(e,t){const n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if("function"!=typeof this.opts.loadSchema)throw new Error("options.loadSchema should be a function");const{loadSchema:n}=this.opts;return r.call(this,e,t);async function r(e,t){await o.call(this,e.$schema);const n=this._addSchema(e,t);return n.validate||i.call(this,n)}async function o(e){e&&!this.getSchema(e)&&await r.call(this,{$ref:e},!0)}async function i(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof a.default))throw t;return s.call(this,t),await l.call(this,t.missingSchema),i.call(this,e)}}function s({missingSchema:e,missingRef:t}){if(this.refs[e])throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function l(e){const n=await c.call(this,e);this.refs[e]||await o.call(this,n.$schema),this.refs[e]||this.addSchema(n,e,t)}async function c(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=n(e))}finally{delete this._loading[e]}}}addSchema(e,t,n,r=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,void 0,n,r);return this}let o;if("object"==typeof e){const{schemaId:t}=this.opts;if(o=e[t],void 0!==o&&"string"!=typeof o)throw new Error(`schema ${t} must be string`)}return t=u.normalizeId(t||o),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,t,r,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if("boolean"==typeof e)return!0;let n;if(n=e.$schema,void 0!==n&&"string"!=typeof n)throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const r=this.validate(n,e);if(!r&&t){const e="schema is invalid: "+this.errorsText();if("log"!==this.opts.validateSchema)throw new Error(e);this.logger.error(e)}return r}getSchema(e){let t;for(;"string"==typeof(t=x.call(this,e));)e=t;if(void 0===t){const{schemaId:n}=this.opts,r=new l.SchemaEnv({schema:{},schemaId:n});if(t=l.resolveSchema.call(this,r,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const t=x.call(this,e);return"object"==typeof t&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{const t=e;this._cache.delete(t);let n=e[this.opts.schemaId];return n&&(n=u.normalizeId(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if("string"==typeof e)n=e,"object"==typeof t&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=n);else{if("object"!=typeof e||void 0!==t)throw new Error("invalid addKeywords parameters");if(n=(t=e).keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}if(A.call(this,n,t),!t)return d.eachItem(n,(e=>$.call(this,e))),this;R.call(this,t);const r={...t,type:p.getJSONTypes(t.type),schemaType:p.getJSONTypes(t.schemaType)};return d.eachItem(n,0===r.type.length?e=>$.call(this,e,r):e=>r.type.forEach((t=>$.call(this,e,r,t)))),this}getKeyword(e){const t=this.RULES.all[e];return"object"==typeof t?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(const n of t.rules){const t=n.rules.findIndex((t=>t.keyword===e));t>=0&&n.rules.splice(t,1)}return this}addFormat(e,t){return"string"==typeof t&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:n="data"}={}){return e&&0!==e.length?e.map((e=>`${n}${e.instancePath} ${e.message}`)).reduce(((e,n)=>e+t+n)):"No errors"}$dataMetaSchema(e,t){const n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const r of t){const t=r.split("/").slice(1);let o=e;for(const e of t)o=o[e];for(const e in n){const t=n[e];if("object"!=typeof t)continue;const{$data:r}=t.definition,i=o[e];r&&i&&(o[e]=T(i))}}return e}_removeAllSchemas(e,t){for(const n in e){const r=e[n];t&&!t.test(n)||("string"==typeof r?delete e[n]:r&&!r.meta&&(this._cache.delete(r.schema),delete e[n]))}}_addSchema(e,t,n,r=this.opts.validateSchema,o=this.opts.addUsedSchema){let i;const{schemaId:a}=this.opts;if("object"==typeof e)i=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if("boolean"!=typeof e)throw new Error("schema must be object or boolean")}let s=this._cache.get(e);if(void 0!==s)return s;const c=u.getSchemaRefs.call(this,e);return n=u.normalizeId(i||n),s=new l.SchemaEnv({schema:e,schemaId:a,meta:t,baseId:n,localRefs:c}),this._cache.set(s.schema,s),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=s),r&&this.validateSchema(e,!0),s}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):l.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{l.compileSchema.call(this,e)}finally{this.opts=t}}}function w(e,t,n,r="error"){for(const o in e){const i=o;i in t&&this.logger[r](`${n}: option ${o}. ${e[i]}`)}}function x(e){return e=u.normalizeId(e),this.schemas[e]||this.refs[e]}function k(){const e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function _(){for(const e in this.opts.formats){const t=this.opts.formats[e];t&&this.addFormat(e,t)}}function O(e){if(Array.isArray(e))this.addVocabulary(e);else{this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}}function S(){const e={...this.opts};for(const t of h)delete e[t];return e}t.default=b,b.ValidationError=i.default,b.MissingRefError=a.default;const E={log(){},warn(){},error(){}},P=/^[a-z_$][a-z0-9_$:-]*$/i;function A(e,t){const{RULES:n}=this;if(d.eachItem(e,(e=>{if(n.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!P.test(e))throw new Error(`Keyword ${e} has invalid name`)})),t&&t.$data&&!("code"in t)&&!("validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function $(e,t,n){var r;const o=null==t?void 0:t.post;if(n&&o)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:i}=this;let a=o?i.post:i.rules.find((({type:e})=>e===n));if(a||(a={type:n,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;const s={keyword:e,definition:{...t,type:p.getJSONTypes(t.type),schemaType:p.getJSONTypes(t.schemaType)}};t.before?C.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,null===(r=t.implements)||void 0===r||r.forEach((e=>this.addKeyword(e)))}function C(e,t,n){const r=e.rules.findIndex((e=>e.keyword===n));r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function R(e){let{metaSchema:t}=e;void 0!==t&&(e.$data&&this.opts.$data&&(t=T(t)),e.validateSchema=this.compile(t,!0))}const j={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function T(e){return{anyOf:[e,j]}}},412:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4063);r.code='require("ajv/dist/runtime/equal").default',t.default=r},5872:function(e,t){"use strict";function n(e){const t=e.length;let n,r=0,o=0;for(;o=55296&&n<=56319&&or.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{parentSchema:t,it:n}=e,{items:r}=t;Array.isArray(r)?a(e,r):o.checkStrictMode(n,'"additionalItems" is ignored when "items" is not an array of schemas')}};function a(e,t){const{gen:n,schema:i,data:a,keyword:s,it:l}=e;l.items=!0;const c=n.const("len",r._`${a}.length`);if(!1===i)e.setParams({len:t.length}),e.pass(r._`${c} <= ${t.length}`);else if("object"==typeof i&&!o.alwaysValidSchema(l,i)){const i=n.var("valid",r._`${c} <= ${t.length}`);n.if(r.not(i),(()=>function(i){n.forRange("i",t.length,c,(t=>{e.subschema({keyword:s,dataProp:t,dataPropType:o.Type.Num},i),l.allErrors||n.if(r.not(i),(()=>n.break()))}))}(i))),e.ok(i)}}t.validateAdditionalItems=a,t.default=i},1422:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i=n(5018),a=n(6124),s={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:e})=>o._`{additionalProperty: ${e.additionalProperty}}`},code(e){const{gen:t,parentSchema:n,data:s,errsCount:l,it:c}=e,{schema:u=c.opts.defaultAdditionalProperties}=e;if(!l)throw new Error("ajv implementation error");const{allErrors:p,opts:d}=c;if(c.props=!0,"all"!==d.removeAdditional&&a.alwaysValidSchema(c,u))return;const f=r.allSchemaProperties(n.properties),h=r.allSchemaProperties(n.patternProperties);function m(e){t.code(o._`delete ${s}[${e}]`)}function g(n){if("all"===d.removeAdditional||d.removeAdditional&&!1===u)m(n);else{if(!1===u)return e.setParams({additionalProperty:n}),e.error(),void(p||t.break());if("object"==typeof u&&!a.alwaysValidSchema(c,u)){const r=t.name("valid");"failing"===d.removeAdditional?(y(n,r,!1),t.if(o.not(r),(()=>{e.reset(),m(n)}))):(y(n,r),p||t.if(o.not(r),(()=>t.break())))}}}function y(t,n,r){const o={keyword:"additionalProperties",dataProp:t,dataPropType:a.Type.Str};!1===r&&Object.assign(o,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(o,n)}t.forIn("key",s,(i=>{f.length||h.length?t.if(function(i){let s;if(f.length>8){const e=a.schemaRefOrVal(c,n.properties,"properties");s=r.isOwnProperty(t,e,i)}else s=f.length?o.or(...f.map((e=>o._`${i} === ${e}`))):o.nil;return h.length&&(s=o.or(s,...h.map((t=>o._`${r.usePattern(e,t)}.test(${i})`)))),o.not(s)}(i),(()=>g(i))):g(i)})),e.ok(o._`${l} === ${i.default.errors}`)}};t.default=s},5716:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6124),o={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:n,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const i=t.name("valid");n.forEach(((t,n)=>{if(r.alwaysValidSchema(o,t))return;const a=e.subschema({keyword:"allOf",schemaProp:n},i);e.ok(i),e.mergeEvaluated(a)}))}};t.default=o},1668:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:n(8619).validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r},9564:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:e,max:t}})=>void 0===t?r.str`must contain at least ${e} valid item(s)`:r.str`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>void 0===t?r._`{minContains: ${e}}`:r._`{minContains: ${e}, maxContains: ${t}}`},code(e){const{gen:t,schema:n,parentSchema:i,data:a,it:s}=e;let l,c;const{minContains:u,maxContains:p}=i;s.opts.next?(l=void 0===u?1:u,c=p):l=1;const d=t.const("len",r._`${a}.length`);if(e.setParams({min:l,max:c}),void 0===c&&0===l)return void o.checkStrictMode(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');if(void 0!==c&&l>c)return o.checkStrictMode(s,'"minContains" > "maxContains" is always invalid'),void e.fail();if(o.alwaysValidSchema(s,n)){let t=r._`${d} >= ${l}`;return void 0!==c&&(t=r._`${t} && ${d} <= ${c}`),void e.pass(t)}s.items=!0;const f=t.name("valid");if(void 0===c&&1===l)h(f,(()=>t.if(f,(()=>t.break()))));else{t.let(f,!1);const e=t.name("_valid"),n=t.let("count",0);h(e,(()=>t.if(e,(()=>function(e){t.code(r._`${e}++`),void 0===c?t.if(r._`${e} >= ${l}`,(()=>t.assign(f,!0).break())):(t.if(r._`${e} > ${c}`,(()=>t.assign(f,!1).break())),1===l?t.assign(f,!0):t.if(r._`${e} >= ${l}`,(()=>t.assign(f,!0))))}(n)))))}function h(n,r){t.forRange("i",0,d,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:o.Type.Num,compositeRule:!0},n),r()}))}e.result(f,(()=>e.reset()))}};t.default=i},1117:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const r=n(4475),o=n(6124),i=n(8619);t.error={message:({params:{property:e,depsCount:t,deps:n}})=>{const o=1===t?"property":"properties";return r.str`must have ${o} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:o}})=>r._`{property: ${e}, + missingProperty: ${o}, + depsCount: ${t}, + deps: ${n}}`};const a={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,n]=function({schema:e}){const t={},n={};for(const r in e)"__proto__"!==r&&((Array.isArray(e[r])?t:n)[r]=e[r]);return[t,n]}(e);s(e,t),l(e,n)}};function s(e,t=e.schema){const{gen:n,data:o,it:a}=e;if(0===Object.keys(t).length)return;const s=n.let("missing");for(const l in t){const c=t[l];if(0===c.length)continue;const u=i.propertyInData(n,o,l,a.opts.ownProperties);e.setParams({property:l,depsCount:c.length,deps:c.join(", ")}),a.allErrors?n.if(u,(()=>{for(const t of c)i.checkReportMissingProp(e,t)})):(n.if(r._`${u} && (${i.checkMissingProp(e,c,s)})`),i.reportMissingProp(e,s),n.else())}}function l(e,t=e.schema){const{gen:n,data:r,keyword:a,it:s}=e,l=n.name("valid");for(const c in t)o.alwaysValidSchema(s,t[c])||(n.if(i.propertyInData(n,r,c,s.opts.ownProperties),(()=>{const t=e.subschema({keyword:a,schemaProp:c},l);e.mergeValidEvaluated(t,l)}),(()=>n.var(l,!0))),e.ok(l))}t.validatePropertyDeps=s,t.validateSchemaDeps=l,t.default=a},5184:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>r.str`must match "${e.ifClause}" schema`,params:({params:e})=>r._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:i}=e;void 0===n.then&&void 0===n.else&&o.checkStrictMode(i,'"if" without "then" and "else" is ignored');const s=a(i,"then"),l=a(i,"else");if(!s&&!l)return;const c=t.let("valid",!0),u=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}(),e.reset(),s&&l){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(u,p("then",n),p("else",n))}else s?t.if(u,p("then")):t.if(r.not(u),p("else"));function p(n,o){return()=>{const i=e.subschema({keyword:n},u);t.assign(c,u),e.mergeValidEvaluated(i,c),o?t.assign(o,r._`${n}`):e.setParams({ifClause:n})}}e.pass(c,(()=>e.error(!0)))}};function a(e,t){const n=e.schema[t];return void 0!==n&&!o.alwaysValidSchema(e,n)}t.default=i},9616:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3074),o=n(6988),i=n(6348),a=n(9822),s=n(9564),l=n(1117),c=n(4002),u=n(1422),p=n(9690),d=n(9883),f=n(8435),h=n(1668),m=n(9684),g=n(5716),y=n(5184),v=n(5642);t.default=function(e=!1){const t=[f.default,h.default,m.default,g.default,y.default,v.default,c.default,u.default,l.default,p.default,d.default];return e?t.push(o.default,a.default):t.push(r.default,i.default),t.push(s.default),t}},6348:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const r=n(4475),o=n(6124),i=n(8619),a={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return s(e,"additionalItems",t);n.items=!0,o.alwaysValidSchema(n,t)||e.ok(i.validateArray(e))}};function s(e,t,n=e.schema){const{gen:i,parentSchema:a,data:s,keyword:l,it:c}=e;!function(e){const{opts:r,errSchemaPath:i}=c,a=n.length,s=a===e.minItems&&(a===e.maxItems||!1===e[t]);if(r.strictTuples&&!s){const e=`"${l}" is ${a}-tuple, but minItems or maxItems/${t} are not specified or different at path "${i}"`;o.checkStrictMode(c,e,r.strictTuples)}}(a),c.opts.unevaluated&&n.length&&!0!==c.items&&(c.items=o.mergeEvaluated.items(i,n.length,c.items));const u=i.name("valid"),p=i.const("len",r._`${s}.length`);n.forEach(((t,n)=>{o.alwaysValidSchema(c,t)||(i.if(r._`${p} > ${n}`,(()=>e.subschema({keyword:l,schemaProp:n,dataProp:n},u))),e.ok(u))}))}t.validateTuple=s,t.default=a},9822:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(8619),a=n(3074),s={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>r.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{schema:t,parentSchema:n,it:r}=e,{prefixItems:s}=n;r.items=!0,o.alwaysValidSchema(r,t)||(s?a.validateAdditionalItems(e,s):e.ok(i.validateArray(e)))}};t.default=s},8435:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6124),o={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:o}=e;if(r.alwaysValidSchema(o,n))return void e.fail();const i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.result(i,(()=>e.error()),(()=>e.reset()))},error:{message:"must NOT be valid"}};t.default=o},9684:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:e})=>r._`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:n,parentSchema:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(a.opts.discriminator&&i.discriminator)return;const s=n,l=t.let("valid",!1),c=t.let("passing",null),u=t.name("_valid");e.setParams({passing:c}),t.block((function(){s.forEach(((n,i)=>{let s;o.alwaysValidSchema(a,n)?t.var(u,!0):s=e.subschema({keyword:"oneOf",schemaProp:i,compositeRule:!0},u),i>0&&t.if(r._`${u} && ${l}`).assign(l,!1).assign(c,r._`[${c}, ${i}]`).else(),t.if(u,(()=>{t.assign(l,!0),t.assign(c,i),s&&e.mergeEvaluated(s,r.Name)}))}))})),e.result(l,(()=>e.reset()),(()=>e.error(!0)))}};t.default=i},9883:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i=n(6124),a=n(6124),s={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:s,parentSchema:l,it:c}=e,{opts:u}=c,p=r.allSchemaProperties(n),d=p.filter((e=>i.alwaysValidSchema(c,n[e])));if(0===p.length||d.length===p.length&&(!c.opts.unevaluated||!0===c.props))return;const f=u.strictSchema&&!u.allowMatchingProperties&&l.properties,h=t.name("valid");!0===c.props||c.props instanceof o.Name||(c.props=a.evaluatedPropsToName(t,c.props));const{props:m}=c;function g(e){for(const t in f)new RegExp(e).test(t)&&i.checkStrictMode(c,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function y(n){t.forIn("key",s,(i=>{t.if(o._`${r.usePattern(e,n)}.test(${i})`,(()=>{const r=d.includes(n);r||e.subschema({keyword:"patternProperties",schemaProp:n,dataProp:i,dataPropType:a.Type.Str},h),c.opts.unevaluated&&!0!==m?t.assign(o._`${m}[${i}]`,!0):r||c.allErrors||t.if(o.not(h),(()=>t.break()))}))}))}!function(){for(const e of p)f&&g(e),c.allErrors?y(e):(t.var(h,!0),y(e),t.if(h))}()}};t.default=s},6988:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6348),o={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>r.validateTuple(e,"items")};t.default=o},9690:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(1321),o=n(8619),i=n(6124),a=n(1422),s={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:s,data:l,it:c}=e;("all"===c.opts.removeAdditional&&void 0===s.additionalProperties||!1===c.opts.defaultAdditionalProperties)&&a.default.code(new r.KeywordCxt(c,a.default,"additionalProperties"));const u=o.allSchemaProperties(n);for(const e of u)c.definedProperties.add(e);c.opts.unevaluated&&u.length&&!0!==c.props&&(c.props=i.mergeEvaluated.props(t,i.toHash(u),c.props));const p=u.filter((e=>!i.alwaysValidSchema(c,n[e])));if(0===p.length)return;const d=t.name("valid");for(const n of p)f(n)?h(n):(t.if(o.propertyInData(t,l,n,c.opts.ownProperties)),h(n),c.allErrors||t.else().var(d,!0),t.endIf()),e.it.definedProperties.add(n),e.ok(d);function f(e){return c.opts.useDefaults&&!c.compositeRule&&void 0!==n[e].default}function h(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},d)}}};t.default=s},4002:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:e})=>r._`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:n,data:i,it:a}=e;if(o.alwaysValidSchema(a,n))return;const s=t.name("valid");t.forIn("key",i,(n=>{e.setParams({propertyName:n}),e.subschema({keyword:"propertyNames",data:n,dataTypes:["string"],propertyName:n,compositeRule:!0},s),t.if(r.not(s),(()=>{e.error(!0),a.allErrors||t.break()}))})),e.ok(s)}};t.default=i},5642:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6124),o={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){void 0===t.if&&r.checkStrictMode(n,`"${e}" without "if" is ignored`)}};t.default=o},8619:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const r=n(4475),o=n(6124),i=n(5018);function a(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:r._`Object.prototype.hasOwnProperty`})}function s(e,t,n){return r._`${a(e)}.call(${t}, ${n})`}function l(e,t,n,o){const i=r._`${t}${r.getProperty(n)} === undefined`;return o?r.or(i,r.not(s(e,t,n))):i}function c(e){return e?Object.keys(e).filter((e=>"__proto__"!==e)):[]}t.checkReportMissingProp=function(e,t){const{gen:n,data:o,it:i}=e;n.if(l(n,o,t,i.opts.ownProperties),(()=>{e.setParams({missingProperty:r._`${t}`},!0),e.error()}))},t.checkMissingProp=function({gen:e,data:t,it:{opts:n}},o,i){return r.or(...o.map((o=>r.and(l(e,t,o,n.ownProperties),r._`${i} = ${o}`))))},t.reportMissingProp=function(e,t){e.setParams({missingProperty:t},!0),e.error()},t.hasPropFunc=a,t.isOwnProperty=s,t.propertyInData=function(e,t,n,o){const i=r._`${t}${r.getProperty(n)} !== undefined`;return o?r._`${i} && ${s(e,t,n)}`:i},t.noPropertyInData=l,t.allSchemaProperties=c,t.schemaProperties=function(e,t){return c(t).filter((n=>!o.alwaysValidSchema(e,t[n])))},t.callValidateCode=function({schemaCode:e,data:t,it:{gen:n,topSchemaRef:o,schemaPath:a,errorPath:s},it:l},c,u,p){const d=p?r._`${e}, ${t}, ${o}${a}`:t,f=[[i.default.instancePath,r.strConcat(i.default.instancePath,s)],[i.default.parentData,l.parentData],[i.default.parentDataProperty,l.parentDataProperty],[i.default.rootData,i.default.rootData]];l.opts.dynamicRef&&f.push([i.default.dynamicAnchors,i.default.dynamicAnchors]);const h=r._`${d}, ${n.object(...f)}`;return u!==r.nil?r._`${c}.call(${u}, ${h})`:r._`${c}(${h})`},t.usePattern=function({gen:e,it:{opts:t}},n){const o=t.unicodeRegExp?"u":"";return e.scopeValue("pattern",{key:n,ref:new RegExp(n,o),code:r._`new RegExp(${n}, ${o})`})},t.validateArray=function(e){const{gen:t,data:n,keyword:i,it:a}=e,s=t.name("valid");if(a.allErrors){const e=t.let("valid",!0);return l((()=>t.assign(e,!1))),e}return t.var(s,!0),l((()=>t.break())),s;function l(a){const l=t.const("len",r._`${n}.length`);t.forRange("i",0,l,(n=>{e.subschema({keyword:i,dataProp:n,dataPropType:o.Type.Num},s),t.if(r.not(s),a)}))}},t.validateUnion=function(e){const{gen:t,schema:n,keyword:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some((e=>o.alwaysValidSchema(a,e)))&&!a.opts.unevaluated)return;const s=t.let("valid",!1),l=t.name("_valid");t.block((()=>n.forEach(((n,o)=>{const a=e.subschema({keyword:i,schemaProp:o,compositeRule:!0},l);t.assign(s,r._`${s} || ${l}`),e.mergeValidEvaluated(a,l)||t.if(r.not(s))})))),e.result(s,(()=>e.reset()),(()=>e.error(!0)))}},5060:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=n},8223:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5060),o=n(4028),i=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",r.default,o.default];t.default=i},4028:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;const r=n(4143),o=n(8619),i=n(4475),a=n(5018),s=n(7805),l=n(6124),c={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:n,it:o}=e,{baseId:a,schemaEnv:l,validateName:c,opts:d,self:f}=o,{root:h}=l;if(("#"===n||"#/"===n)&&a===h.baseId)return function(){if(l===h)return p(e,c,l,l.$async);const n=t.scopeValue("root",{ref:h});return p(e,i._`${n}.validate`,h,h.$async)}();const m=s.resolveRef.call(f,h,a,n);if(void 0===m)throw new r.default(a,n);return m instanceof s.SchemaEnv?function(t){const n=u(e,t);p(e,n,t,t.$async)}(m):function(r){const o=t.scopeValue("schema",!0===d.code.source?{ref:r,code:i.stringify(r)}:{ref:r}),a=t.name("valid"),s=e.subschema({schema:r,dataTypes:[],schemaPath:i.nil,topSchemaRef:o,errSchemaPath:n},a);e.mergeEvaluated(s),e.ok(a)}(m)}};function u(e,t){const{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):i._`${n.scopeValue("wrapper",{ref:t})}.validate`}function p(e,t,n,r){const{gen:s,it:c}=e,{allErrors:u,schemaEnv:p,opts:d}=c,f=d.passContext?a.default.this:i.nil;function h(e){const t=i._`${e}.errors`;s.assign(a.default.vErrors,i._`${a.default.vErrors} === null ? ${t} : ${a.default.vErrors}.concat(${t})`),s.assign(a.default.errors,i._`${a.default.vErrors}.length`)}function m(e){var t;if(!c.opts.unevaluated)return;const r=null===(t=null==n?void 0:n.validate)||void 0===t?void 0:t.evaluated;if(!0!==c.props)if(r&&!r.dynamicProps)void 0!==r.props&&(c.props=l.mergeEvaluated.props(s,r.props,c.props));else{const t=s.var("props",i._`${e}.evaluated.props`);c.props=l.mergeEvaluated.props(s,t,c.props,i.Name)}if(!0!==c.items)if(r&&!r.dynamicItems)void 0!==r.items&&(c.items=l.mergeEvaluated.items(s,r.items,c.items));else{const t=s.var("items",i._`${e}.evaluated.items`);c.items=l.mergeEvaluated.items(s,t,c.items,i.Name)}}r?function(){if(!p.$async)throw new Error("async schema referenced by sync schema");const n=s.let("valid");s.try((()=>{s.code(i._`await ${o.callValidateCode(e,t,f)}`),m(t),u||s.assign(n,!0)}),(e=>{s.if(i._`!(${e} instanceof ${c.ValidationError})`,(()=>s.throw(e))),h(e),u||s.assign(n,!1)})),e.ok(n)}():function(){const n=s.name("visitedNodes");s.code(i._`const ${n} = visitedNodesForRef.get(${t}) || new Set()`),s.if(i._`!${n}.has(${e.data})`,(()=>{s.code(i._`visitedNodesForRef.set(${t}, ${n})`),s.code(i._`const dataNode = ${e.data}`),s.code(i._`${n}.add(dataNode)`);const r=e.result(o.callValidateCode(e,t,f),(()=>m(t)),(()=>h(t)));return s.code(i._`${n}.delete(dataNode)`),r}))}()}t.getValidate=u,t.callRef=p,t.default=c},5522:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6545),i={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:e,tagName:t}})=>e===o.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>r._`{error: ${e}, tag: ${n}, tagValue: ${t}}`},code(e){const{gen:t,data:n,schema:i,parentSchema:a,it:s}=e,{oneOf:l}=a;if(!s.opts.discriminator)throw new Error("discriminator: requires discriminator option");const c=i.propertyName;if("string"!=typeof c)throw new Error("discriminator: requires propertyName");if(!l)throw new Error("discriminator: requires oneOf keyword");const u=t.let("valid",!1),p=t.const("tag",r._`${n}${r.getProperty(c)}`);function d(n){const o=t.name("valid"),i=e.subschema({keyword:"oneOf",schemaProp:n},o);return e.mergeEvaluated(i,r.Name),o}function f(e){return e.hasOwnProperty("$ref")}t.if(r._`typeof ${p} == "string"`,(()=>function(){const n=function(){var e;const t={},n=o(a);let r=!0;for(let t=0;te.error(!1,{discrError:o.DiscrError.Tag,tag:p,tagName:c}))),e.ok(u)}};t.default=i},6545:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0,(n=t.DiscrError||(t.DiscrError={})).Tag="tag",n.Mapping="mapping"},6479:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8223),o=n(3799),i=n(9616),a=n(3815),s=n(4826),l=[r.default,o.default,i.default(),a.default,s.metadataVocabulary,s.contentVocabulary];t.default=l},157:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>r.str`must match format "${e}"`,params:({schemaCode:e})=>r._`{format: ${e}}`},code(e,t){const{gen:n,data:o,$data:i,schema:a,schemaCode:s,it:l}=e,{opts:c,errSchemaPath:u,schemaEnv:p,self:d}=l;c.validateFormats&&(i?function(){const i=n.scopeValue("formats",{ref:d.formats,code:c.code.formats}),a=n.const("fDef",r._`${i}[${s}]`),l=n.let("fType"),u=n.let("format");n.if(r._`typeof ${a} == "object" && !(${a} instanceof RegExp)`,(()=>n.assign(l,r._`${a}.type || "string"`).assign(u,r._`${a}.validate`)),(()=>n.assign(l,r._`"string"`).assign(u,a))),e.fail$data(r.or(!1===c.strictSchema?r.nil:r._`${s} && !${u}`,function(){const e=p.$async?r._`(${a}.async ? await ${u}(${o}) : ${u}(${o}))`:r._`${u}(${o})`,n=r._`(typeof ${u} == "function" ? ${e} : ${u}.test(${o}))`;return r._`${u} && ${u} !== true && ${l} === ${t} && !${n}`}()))}():function(){const i=d.formats[a];if(!i)return void function(){if(!1!==c.strictSchema)throw new Error(e());function e(){return`unknown format "${a}" ignored in schema at path "${u}"`}d.logger.warn(e())}();if(!0===i)return;const[s,l,f]=function(e){const t=e instanceof RegExp?r.regexpCode(e):c.code.formats?r._`${c.code.formats}${r.getProperty(a)}`:void 0,o=n.scopeValue("formats",{key:a,ref:e,code:t});return"object"!=typeof e||e instanceof RegExp?["string",e,o]:[e.type||"string",e.validate,r._`${o}.validate`]}(i);s===t&&e.pass(function(){if("object"==typeof i&&!(i instanceof RegExp)&&i.async){if(!p.$async)throw new Error("async format in sync schema");return r._`await ${f}(${o})`}return"function"==typeof l?r._`${f}(${o})`:r._`${f}.test(${o})`}())}())}};t.default=o},3815:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=[n(157).default];t.default=r},4826:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},7535:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(412),a={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:e})=>r._`{allowedValue: ${e}}`},code(e){const{gen:t,data:n,$data:a,schemaCode:s,schema:l}=e;a||l&&"object"==typeof l?e.fail$data(r._`!${o.useFunc(t,i.default)}(${n}, ${s})`):e.fail(r._`${l} !== ${n}`)}};t.default=a},4147:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(412),a={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:e})=>r._`{allowedValues: ${e}}`},code(e){const{gen:t,data:n,$data:a,schema:s,schemaCode:l,it:c}=e;if(!a&&0===s.length)throw new Error("enum must have non-empty array");const u=s.length>=c.opts.loopEnum,p=o.useFunc(t,i.default);let d;if(u||a)d=t.let("valid"),e.block$data(d,(function(){t.assign(d,!1),t.forOf("v",l,(e=>t.if(r._`${p}(${n}, ${e})`,(()=>t.assign(d,!0).break()))))}));else{if(!Array.isArray(s))throw new Error("ajv implementation error");const e=t.const("vSchema",l);d=r.or(...s.map(((t,o)=>function(e,t){const o=s[t];return"object"==typeof o&&null!==o?r._`${p}(${n}, ${e}[${t}])`:r._`${n} === ${o}`}(e,o))))}e.pass(d)}};t.default=a},3799:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9640),o=n(7692),i=n(3765),a=n(8582),s=n(6711),l=n(7835),c=n(8950),u=n(7326),p=n(7535),d=n(4147),f=[r.default,o.default,i.default,a.default,s.default,l.default,c.default,u.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},p.default,d.default];t.default=f},8950:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxItems"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxItems"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`${n}.length ${i} ${o}`)}};t.default=o},3765:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=n(6124),i=n(5872),a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxLength"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:a,it:s}=e,l="maxLength"===t?r.operators.GT:r.operators.LT,c=!1===s.opts.unicode?r._`${n}.length`:r._`${o.useFunc(e.gen,i.default)}(${n})`;e.fail$data(r._`${c} ${l} ${a}`)}};t.default=a},9640:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o=r.operators,i={maximum:{okStr:"<=",ok:o.LTE,fail:o.GT},minimum:{okStr:">=",ok:o.GTE,fail:o.LT},exclusiveMaximum:{okStr:"<",ok:o.LT,fail:o.GTE},exclusiveMinimum:{okStr:">",ok:o.GT,fail:o.LTE}},a={message:({keyword:e,schemaCode:t})=>r.str`must be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>r._`{comparison: ${i[e].okStr}, limit: ${t}}`},s={keyword:Object.keys(i),type:"number",schemaType:"number",$data:!0,error:a,code(e){const{keyword:t,data:n,schemaCode:o}=e;e.fail$data(r._`${n} ${i[t].fail} ${o} || isNaN(${n})`)}};t.default=s},6711:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxProperties"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxProperties"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`Object.keys(${n}).length ${i} ${o}`)}};t.default=o},7692:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4475),o={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:e})=>r.str`must be multiple of ${e}`,params:({schemaCode:e})=>r._`{multipleOf: ${e}}`},code(e){const{gen:t,data:n,schemaCode:o,it:i}=e,a=i.opts.multipleOfPrecision,s=t.let("res"),l=a?r._`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:r._`${s} !== parseInt(${s})`;e.fail$data(r._`(${o} === 0 || (${s} = ${n}/${o}, ${l}))`)}};t.default=o},8582:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>o.str`must match pattern "${e}"`,params:({schemaCode:e})=>o._`{pattern: ${e}}`},code(e){const{data:t,$data:n,schema:i,schemaCode:a,it:s}=e,l=s.opts.unicodeRegExp?"u":"",c=n?o._`(new RegExp(${a}, ${l}))`:r.usePattern(e,i);e.fail$data(o._`!${c}.test(${t})`)}};t.default=i},7835:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8619),o=n(4475),i=n(6124),a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:e}})=>o.str`must have required property '${e}'`,params:({params:{missingProperty:e}})=>o._`{missingProperty: ${e}}`},code(e){const{gen:t,schema:n,schemaCode:a,data:s,$data:l,it:c}=e,{opts:u}=c;if(!l&&0===n.length)return;const p=n.length>=u.loopRequired;if(c.allErrors?function(){if(p||l)e.block$data(o.nil,d);else for(const t of n)r.checkReportMissingProp(e,t)}():function(){const i=t.let("missing");if(p||l){const n=t.let("valid",!0);e.block$data(n,(()=>function(n,i){e.setParams({missingProperty:n}),t.forOf(n,a,(()=>{t.assign(i,r.propertyInData(t,s,n,u.ownProperties)),t.if(o.not(i),(()=>{e.error(),t.break()}))}),o.nil)}(i,n))),e.ok(n)}else t.if(r.checkMissingProp(e,n,i)),r.reportMissingProp(e,i),t.else()}(),u.strictRequired){const t=e.parentSchema.properties,{definedProperties:r}=e.it;for(const e of n)if(void 0===(null==t?void 0:t[e])&&!r.has(e)){const t=`required property "${e}" is not defined at "${c.schemaEnv.baseId+c.errSchemaPath}" (strictRequired)`;i.checkStrictMode(c,t,c.opts.strictRequired)}}function d(){t.forOf("prop",a,(n=>{e.setParams({missingProperty:n}),t.if(r.noPropertyInData(t,s,n,u.ownProperties),(()=>e.error()))}))}}};t.default=a},7326:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(7927),o=n(4475),i=n(6124),a=n(412),s={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:e,j:t}})=>o.str`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>o._`{i: ${e}, j: ${t}}`},code(e){const{gen:t,data:n,$data:s,schema:l,parentSchema:c,schemaCode:u,it:p}=e;if(!s&&!l)return;const d=t.let("valid"),f=c.items?r.getSchemaTypes(c.items):[];function h(i,a){const s=t.name("item"),l=r.checkDataTypes(f,s,p.opts.strictNumbers,r.DataType.Wrong),c=t.const("indices",o._`{}`);t.for(o._`;${i}--;`,(()=>{t.let(s,o._`${n}[${i}]`),t.if(l,o._`continue`),f.length>1&&t.if(o._`typeof ${s} == "string"`,o._`${s} += "_"`),t.if(o._`typeof ${c}[${s}] == "number"`,(()=>{t.assign(a,o._`${c}[${s}]`),e.error(),t.assign(d,!1).break()})).code(o._`${c}[${s}] = ${i}`)}))}function m(r,s){const l=i.useFunc(t,a.default),c=t.name("outer");t.label(c).for(o._`;${r}--;`,(()=>t.for(o._`${s} = ${r}; ${s}--;`,(()=>t.if(o._`${l}(${n}[${r}], ${n}[${s}])`,(()=>{e.error(),t.assign(d,!1).break(c)}))))))}e.block$data(d,(function(){const r=t.let("i",o._`${n}.length`),i=t.let("j");e.setParams({i:r,j:i}),t.assign(d,!0),t.if(o._`${r} > 1`,(()=>(f.length>0&&!f.some((e=>"object"===e||"array"===e))?h:m)(r,i)))}),o._`${u} === false`),e.ok(d)}};t.default=s},4029:function(e){"use strict";var t=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),n(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function n(e,r,o,i,a,s,l,c,u,p){if(i&&"object"==typeof i&&!Array.isArray(i)){for(var d in r(i,a,s,l,c,u,p),i){var f=i[d];if(Array.isArray(f)){if(d in t.arrayKeywords)for(var h=0;hn.addProblemToIgnore(e))),fileDependencies:o.getFiles(),rootType:S.DefinitionRoot,refTypes:A.refTypes,visitorsData:A.visitorsData}}))}function k(e,t){switch(t){case d.OasMajorVersion.Version3:switch(e){case"Schema":return"schemas";case"Parameter":return"parameters";case"Response":return"responses";case"Example":return"examples";case"RequestBody":return"requestBodies";case"Header":return"headers";case"SecuritySchema":return"securitySchemes";case"Link":return"links";case"Callback":return"callbacks";default:return null}case d.OasMajorVersion.Version2:switch(e){case"Schema":return"definitions";case"Parameter":return"parameters";case"Response":return"responses";default:return null}}}function _(e,t,n,r,a,s){let l;const c={ref:{leave(o,l,c){if(!c.location||void 0===c.node)return void m.reportUnresolvedRef(c,l.report,l.location);if(c.location.source===r.source&&c.location.source===l.location.source&&"scalar"!==l.type.name&&!t)return;if(n&&y.isRedoclyRegistryURL(o.$ref))return;if(s&&f.isAbsoluteUrl(o.$ref))return;const d=k(l.type.name,e);d?t?(p(d,c,l),u(o,c,l)):(o.$ref=p(d,c,l),function(e,t,n){const o=i.makeRefId(n.location.source.absoluteRef,e.$ref);a.set(o,{document:r,isRemote:!1,node:t.node,nodePointer:e.$ref,resolved:!0})}(o,c,l)):u(o,c,l)}},DefinitionRoot:{enter(t){e===d.OasMajorVersion.Version3?l=t.components=t.components||{}:e===d.OasMajorVersion.Version2&&(l=t)}}};function u(e,t,n){g.isPlainObject(t.node)?(delete e.$ref,Object.assign(e,t.node)):n.parent[n.key]=t.node}function p(t,n,r){l[t]=l[t]||{};const o=function(e,t,n){const[r,o]=[e.location.source.absoluteRef,e.location.pointer],i=l[t];let a="";const s=o.slice(2).split("/").filter(Boolean);for(;s.length>0;)if(a=s.pop()+(a?`-${a}`:""),!i||!i[a]||h(i[a],e,n))return a;if(a=f.refBaseName(r)+(a?`_${a}`:""),!i[a]||h(i[a],e,n))return a;const c=a;let u=2;for(;i[a]&&!h(i[a],e,n);)a=`${c}-${u}`,u++;return i[a]||n.report({message:`Two schemas are referenced with the same name but different content. Renamed ${c} to ${a}.`,location:n.location,forceSeverity:"warn"}),a}(n,t,r);return l[t][o]=n.node,e===d.OasMajorVersion.Version3?`#/components/${t}/${o}`:`#/${t}/${o}`}function h(e,t,n){var r;return!(!f.isRef(e)||(null===(r=n.resolve(e).location)||void 0===r?void 0:r.absolutePointer)!==t.location.absolutePointer)||o(e,t.node)}return e===d.OasMajorVersion.Version3&&(c.DiscriminatorMapping={leave(n,r){for(const o of Object.keys(n)){const i=n[o],a=r.resolve({$ref:i});if(!a.location||void 0===a.node)return void m.reportUnresolvedRef(a,r.report,r.location.child(o));const s=k("Schema",e);t?p(s,a,r):n[o]=p(s,a,r)}}}),c}!function(e){e.Version2="oas2",e.Version3_0="oas3_0",e.Version3_1="oas3_1"}(w=t.OasVersion||(t.OasVersion={})),t.bundle=function(e){return r(this,void 0,void 0,(function*(){const{ref:t,doc:n,externalRefResolver:r=new i.BaseResolver(e.config.resolve),base:o=null}=e;if(!t&&!n)throw new Error("Document or reference is required.\n");const a=void 0!==n?n:yield r.resolveDocument(o,t,!0);if(a instanceof Error)throw a;return x(Object.assign(Object.assign({document:a},e),{config:e.config.lint,externalRefResolver:r}))}))},t.bundleDocument=x,t.mapTypeToComponent=k},6877:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={rules:{"info-description":"error","info-contact":"error","info-license":"error","info-license-url":"error","tag-description":"error","tags-alphabetical":"error","parameter-description":"error","no-identical-paths":"error","no-ambiguous-paths":"error","no-path-trailing-slash":"error","path-segment-plural":"error","path-declaration-must-exist":"error","path-not-include-query":"error","path-parameters-defined":"error","operation-description":"error","operation-2xx-response":"error","operation-4xx-response":"error",assertions:"error","operation-operationId":"error","operation-summary":"error","operation-operationId-unique":"error","operation-operationId-url-safe":"error","operation-parameters-unique":"error","operation-tag-defined":"error","operation-security-defined":"error","operation-singular-tag":"error","no-unresolved-refs":"error","no-enum-type-mismatch":"error","boolean-parameter-prefixes":"error","paths-kebab-case":"error","no-http-verbs-in-paths":"error","path-excludes-patterns":{severity:"error",patterns:[]},"request-mime-type":"error",spec:"error","no-invalid-schema-examples":"error","no-invalid-parameter-examples":"error","scalar-property-missing-example":"error"},oas3_0Rules:{"no-invalid-media-type-examples":"error","no-server-example.com":"error","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"error","no-undefined-server-variable":"error","no-servers-empty-enum":"error"},oas3_1Rules:{"no-server-example.com":"error","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"error","no-undefined-server-variable":"error","no-servers-empty-enum":"error"}}},6242:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultPlugin=t.builtInConfigs=void 0;const r=n(8057),o=n(6877),i=n(9016),a=n(226),s=n(7523),l=n(226),c=n(7523),u=n(1753),p=n(7060);t.builtInConfigs={recommended:r.default,minimal:i.default,all:o.default,"redocly-registry":{decorators:{"registry-dependencies":"on"}}},t.defaultPlugin={id:"",rules:{oas3:a.rules,oas2:s.rules},preprocessors:{oas3:l.preprocessors,oas2:c.preprocessors},decorators:{oas3:u.decorators,oas2:p.decorators},configs:t.builtInConfigs}},7040:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},o=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o{if(p.isString(e)&&s.isAbsoluteUrl(e))throw new Error(a.red("We don't support remote plugins yet."));const o=p.isString(e)?n(i.resolve(i.dirname(t),e)):e,l=o.id;if("string"!=typeof l)throw new Error(a.red(`Plugin must define \`id\` property in ${a.blue(e.toString())}.`));if(r.has(l)){const t=r.get(l);throw new Error(a.red(`Plugin "id" must be unique. Plugin ${a.blue(e.toString())} uses id "${a.blue(l)}" already seen in ${a.blue(t)}`))}r.set(l,e.toString());const c=Object.assign(Object.assign({id:l},o.configs?{configs:o.configs}:{}),o.typeExtension?{typeExtension:o.typeExtension}:{});if(o.rules){if(!o.rules.oas3&&!o.rules.oas2)throw new Error(`Plugin rules must have \`oas3\` or \`oas2\` rules "${e}.`);c.rules={},o.rules.oas3&&(c.rules.oas3=u.prefixRules(o.rules.oas3,l)),o.rules.oas2&&(c.rules.oas2=u.prefixRules(o.rules.oas2,l))}if(o.preprocessors){if(!o.preprocessors.oas3&&!o.preprocessors.oas2)throw new Error(`Plugin \`preprocessors\` must have \`oas3\` or \`oas2\` preprocessors "${e}.`);c.preprocessors={},o.preprocessors.oas3&&(c.preprocessors.oas3=u.prefixRules(o.preprocessors.oas3,l)),o.preprocessors.oas2&&(c.preprocessors.oas2=u.prefixRules(o.preprocessors.oas2,l))}if(o.decorators){if(!o.decorators.oas3&&!o.decorators.oas2)throw new Error(`Plugin \`decorators\` must have \`oas3\` or \`oas2\` decorators "${e}.`);c.decorators={},o.decorators.oas3&&(c.decorators.oas3=u.prefixRules(o.decorators.oas3,l)),o.decorators.oas2&&(c.decorators.oas2=u.prefixRules(o.decorators.oas2,l))}return c})).filter(p.notUndefined)}function h({rawConfig:e,configPath:t="",resolver:n}){var o,i;return r(this,void 0,void 0,(function*(){const{apis:r={},lint:a={}}=e;let s={};for(const[e,l]of Object.entries(r||{})){if(null===(i=null===(o=l.lint)||void 0===o?void 0:o.extends)||void 0===i?void 0:i.some(p.isNotString))throw new Error("Error configuration format not detected in extends value must contain strings");const r=v(a,l.lint),c=yield g({lintConfig:r,configPath:t,resolver:n});s[e]=Object.assign(Object.assign({},l),{lint:c})}return s}))}function m({lintConfig:e,configPath:t="",resolver:n=new l.BaseResolver},a=[],d=[]){var h,g,v;return r(this,void 0,void 0,(function*(){if(a.includes(t))throw new Error(`Circular dependency in config file: "${t}"`);const l=u.getUniquePlugins(f([...(null==e?void 0:e.plugins)||[],c.defaultPlugin],t)),b=null===(h=null==e?void 0:e.plugins)||void 0===h?void 0:h.filter(p.isString).map((e=>i.resolve(i.dirname(t),e))),w=s.isAbsoluteUrl(t)?t:t&&i.resolve(t),x=yield Promise.all((null===(g=null==e?void 0:e.extends)||void 0===g?void 0:g.map((e=>r(this,void 0,void 0,(function*(){if(!s.isAbsoluteUrl(e)&&!i.extname(e))return y(e,l);const o=s.isAbsoluteUrl(e)?e:s.isAbsoluteUrl(t)?new URL(e,t).href:i.resolve(i.dirname(t),e),c=yield function(e,t){return r(this,void 0,void 0,(function*(){try{const n=yield t.loadExternalRef(e),r=u.transformConfig(p.parseYaml(n.body));if(!r.lint)throw new Error(`Lint configuration format not detected: "${e}"`);return r.lint}catch(t){throw new Error(`Failed to load "${e}": ${t.message}`)}}))}(o,n);return yield m({lintConfig:c,configPath:o,resolver:n},[...a,w],d)})))))||[]),k=u.mergeExtends([...x,Object.assign(Object.assign({},e),{plugins:l,extends:void 0,extendPaths:[...a,w],pluginPaths:b})]),{plugins:_=[]}=k,O=o(k,["plugins"]);return Object.assign(Object.assign({},O),{extendPaths:null===(v=O.extendPaths)||void 0===v?void 0:v.filter((e=>e&&!s.isAbsoluteUrl(e))),plugins:u.getUniquePlugins(_),recommendedFallback:null==e?void 0:e.recommendedFallback,doNotResolveExamples:null==e?void 0:e.doNotResolveExamples})}))}function g(e,t=[],n=[]){return r(this,void 0,void 0,(function*(){const r=yield m(e,t,n);return Object.assign(Object.assign({},r),{rules:r.rules&&b(r.rules)})}))}function y(e,t){var n;const{pluginId:r,configName:o}=u.parsePresetName(e),i=t.find((e=>e.id===r));if(!i)throw new Error(`Invalid config ${a.red(e)}: plugin ${r} is not included.`);const s=null===(n=i.configs)||void 0===n?void 0:n[o];if(!s)throw new Error(r?`Invalid config ${a.red(e)}: plugin ${r} doesn't export config with name ${o}.`:`Invalid config ${a.red(e)}: there is no such built-in config.`);return s}function v(e,t){return Object.assign(Object.assign(Object.assign({},e),t),{rules:Object.assign(Object.assign({},null==e?void 0:e.rules),null==t?void 0:t.rules),oas2Rules:Object.assign(Object.assign({},null==e?void 0:e.oas2Rules),null==t?void 0:t.oas2Rules),oas3_0Rules:Object.assign(Object.assign({},null==e?void 0:e.oas3_0Rules),null==t?void 0:t.oas3_0Rules),oas3_1Rules:Object.assign(Object.assign({},null==e?void 0:e.oas3_1Rules),null==t?void 0:t.oas3_1Rules),preprocessors:Object.assign(Object.assign({},null==e?void 0:e.preprocessors),null==t?void 0:t.preprocessors),oas2Preprocessors:Object.assign(Object.assign({},null==e?void 0:e.oas2Preprocessors),null==t?void 0:t.oas2Preprocessors),oas3_0Preprocessors:Object.assign(Object.assign({},null==e?void 0:e.oas3_0Preprocessors),null==t?void 0:t.oas3_0Preprocessors),oas3_1Preprocessors:Object.assign(Object.assign({},null==e?void 0:e.oas3_1Preprocessors),null==t?void 0:t.oas3_1Preprocessors),decorators:Object.assign(Object.assign({},null==e?void 0:e.decorators),null==t?void 0:t.decorators),oas2Decorators:Object.assign(Object.assign({},null==e?void 0:e.oas2Decorators),null==t?void 0:t.oas2Decorators),oas3_0Decorators:Object.assign(Object.assign({},null==e?void 0:e.oas3_0Decorators),null==t?void 0:t.oas3_0Decorators),oas3_1Decorators:Object.assign(Object.assign({},null==e?void 0:e.oas3_1Decorators),null==t?void 0:t.oas3_1Decorators),recommendedFallback:!(null==t?void 0:t.extends)&&e.recommendedFallback})}function b(e){if(!e)return e;const t={},n=[];for(const[r,o]of Object.entries(e))if(r.startsWith("assert/")&&"object"==typeof o&&null!==o){const e=o;n.push(Object.assign(Object.assign({},e),{assertionId:r.replace("assert/","")}))}else t[r]=o;return n.length>0&&(t.assertions=n),t}t.resolveConfig=function(e,t){var n,o,i,a,s;return r(this,void 0,void 0,(function*(){if(null===(o=null===(n=e.lint)||void 0===n?void 0:n.extends)||void 0===o?void 0:o.some(p.isNotString))throw new Error("Error configuration format not detected in extends value must contain strings");const r=new l.BaseResolver(u.getResolveConfig(e.resolve)),c=null!==(a=null===(i=null==e?void 0:e.lint)||void 0===i?void 0:i.extends)&&void 0!==a?a:["recommended"],f=!(null===(s=null==e?void 0:e.lint)||void 0===s?void 0:s.extends),m=Object.assign(Object.assign({},null==e?void 0:e.lint),{extends:c,recommendedFallback:f}),y=yield h({rawConfig:Object.assign(Object.assign({},e),{lint:m}),configPath:t,resolver:r}),v=yield g({lintConfig:m,configPath:t,resolver:r});return new d.Config(Object.assign(Object.assign({},e),{apis:y,lint:v}),t)}))},t.resolvePlugins=f,t.resolveApis=h,t.resolveLint=g,t.resolvePreset=y},3777:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Config=t.LintConfig=t.AVAILABLE_REGIONS=t.DOMAINS=t.DEFAULT_REGION=t.IGNORE_FILE=t.env=void 0;const r=n(5101),o=n(6470),i=n(5273),a=n(771),s=n(1510),l=n(2565);t.env="undefined"!=typeof process&&{}||{},t.IGNORE_FILE=".redocly.lint-ignore.yaml",t.DEFAULT_REGION="us",t.DOMAINS=function(){const e={us:"redocly.com",eu:"eu.redocly.com"},n=t.env.REDOCLY_DOMAIN;return(null==n?void 0:n.endsWith(".redocly.host"))&&(e[n.split(".")[0]]=n),"redoc.online"===n&&(e[n]=n),e}(),t.AVAILABLE_REGIONS=Object.keys(t.DOMAINS);class c{constructor(e,n){this.rawConfig=e,this.configFile=n,this.ignore={},this._usedRules=new Set,this._usedVersions=new Set,this.plugins=e.plugins||[],this.doNotResolveExamples=!!e.doNotResolveExamples,this.recommendedFallback=e.recommendedFallback||!1,this.rules={[s.OasVersion.Version2]:Object.assign(Object.assign({},e.rules),e.oas2Rules),[s.OasVersion.Version3_0]:Object.assign(Object.assign({},e.rules),e.oas3_0Rules),[s.OasVersion.Version3_1]:Object.assign(Object.assign({},e.rules),e.oas3_1Rules)},this.preprocessors={[s.OasVersion.Version2]:Object.assign(Object.assign({},e.preprocessors),e.oas2Preprocessors),[s.OasVersion.Version3_0]:Object.assign(Object.assign({},e.preprocessors),e.oas3_0Preprocessors),[s.OasVersion.Version3_1]:Object.assign(Object.assign({},e.preprocessors),e.oas3_1Preprocessors)},this.decorators={[s.OasVersion.Version2]:Object.assign(Object.assign({},e.decorators),e.oas2Decorators),[s.OasVersion.Version3_0]:Object.assign(Object.assign({},e.decorators),e.oas3_0Decorators),[s.OasVersion.Version3_1]:Object.assign(Object.assign({},e.decorators),e.oas3_1Decorators)},this.extendPaths=e.extendPaths||[],this.pluginPaths=e.pluginPaths||[];const a=this.configFile?o.dirname(this.configFile):"undefined"!=typeof process&&process.cwd()||"",l=o.join(a,t.IGNORE_FILE);if(r.hasOwnProperty("existsSync")&&r.existsSync(l)){this.ignore=i.parseYaml(r.readFileSync(l,"utf-8"))||{};for(const e of Object.keys(this.ignore)){this.ignore[o.resolve(o.dirname(l),e)]=this.ignore[e];for(const t of Object.keys(this.ignore[e]))this.ignore[e][t]=new Set(this.ignore[e][t]);delete this.ignore[e]}}}saveIgnore(){const e=this.configFile?o.dirname(this.configFile):process.cwd(),n=o.join(e,t.IGNORE_FILE),s={};for(const t of Object.keys(this.ignore)){const n=s[a.slash(o.relative(e,t))]=this.ignore[t];for(const e of Object.keys(n))n[e]=Array.from(n[e])}r.writeFileSync(n,"# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API.\n# See https://redoc.ly/docs/cli/ for more information.\n"+i.stringifyYaml(s))}addIgnore(e){const t=this.ignore,n=e.location[0];if(void 0===n.pointer)return;const r=t[n.source.absoluteRef]=t[n.source.absoluteRef]||{};(r[e.ruleId]=r[e.ruleId]||new Set).add(n.pointer)}addProblemToIgnore(e){const t=e.location[0];if(void 0===t.pointer)return e;const n=(this.ignore[t.source.absoluteRef]||{})[e.ruleId],r=n&&n.has(t.pointer);return r?Object.assign(Object.assign({},e),{ignored:r}):e}extendTypes(e,t){let n=e;for(const e of this.plugins)if(void 0!==e.typeExtension)switch(t){case s.OasVersion.Version3_0:case s.OasVersion.Version3_1:if(!e.typeExtension.oas3)continue;n=e.typeExtension.oas3(n,t);case s.OasVersion.Version2:if(!e.typeExtension.oas2)continue;n=e.typeExtension.oas2(n,t);default:throw new Error("Not implemented")}return n}getRuleSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.rules[t][e]||"off";return"string"==typeof n?{severity:n}:Object.assign({severity:"error"},n)}getPreprocessorSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.preprocessors[t][e]||"off";return"string"==typeof n?{severity:"on"===n?"error":n}:Object.assign({severity:"error"},n)}getDecoratorSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.decorators[t][e]||"off";return"string"==typeof n?{severity:"on"===n?"error":n}:Object.assign({severity:"error"},n)}getUnusedRules(){const e=[],t=[],n=[];for(const r of Array.from(this._usedVersions))e.push(...Object.keys(this.rules[r]).filter((e=>!this._usedRules.has(e)))),t.push(...Object.keys(this.decorators[r]).filter((e=>!this._usedRules.has(e)))),n.push(...Object.keys(this.preprocessors[r]).filter((e=>!this._usedRules.has(e))));return{rules:e,preprocessors:n,decorators:t}}getRulesForOasVersion(e){switch(e){case s.OasMajorVersion.Version3:const e=[];return this.plugins.forEach((t=>{var n;return(null===(n=t.preprocessors)||void 0===n?void 0:n.oas3)&&e.push(t.preprocessors.oas3)})),this.plugins.forEach((t=>{var n;return(null===(n=t.rules)||void 0===n?void 0:n.oas3)&&e.push(t.rules.oas3)})),this.plugins.forEach((t=>{var n;return(null===(n=t.decorators)||void 0===n?void 0:n.oas3)&&e.push(t.decorators.oas3)})),e;case s.OasMajorVersion.Version2:const t=[];return this.plugins.forEach((e=>{var n;return(null===(n=e.preprocessors)||void 0===n?void 0:n.oas2)&&t.push(e.preprocessors.oas2)})),this.plugins.forEach((e=>{var n;return(null===(n=e.rules)||void 0===n?void 0:n.oas2)&&t.push(e.rules.oas2)})),this.plugins.forEach((e=>{var n;return(null===(n=e.decorators)||void 0===n?void 0:n.oas2)&&t.push(e.decorators.oas2)})),t}}skipRules(e){for(const t of e||[])for(const e of Object.values(s.OasVersion))this.rules[e][t]&&(this.rules[e][t]="off")}skipPreprocessors(e){for(const t of e||[])for(const e of Object.values(s.OasVersion))this.preprocessors[e][t]&&(this.preprocessors[e][t]="off")}skipDecorators(e){for(const t of e||[])for(const e of Object.values(s.OasVersion))this.decorators[e][t]&&(this.decorators[e][t]="off")}}t.LintConfig=c,t.Config=class{constructor(e,t){this.rawConfig=e,this.configFile=t,this.apis=e.apis||{},this.lint=new c(e.lint||{},t),this["features.openapi"]=e["features.openapi"]||{},this["features.mockServer"]=e["features.mockServer"]||{},this.resolve=l.getResolveConfig(null==e?void 0:e.resolve),this.region=e.region,this.organization=e.organization}}},8698:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),o(n(3777),t),o(n(3865),t),o(n(5030),t),o(n(6242),t),o(n(9129),t),o(n(2565),t),o(n(7040),t)},9129:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.getConfig=t.findConfig=t.CONFIG_FILE_NAMES=t.loadConfig=void 0;const o=n(5101),i=n(6470),a=n(1094),s=n(771),l=n(3777),c=n(2565),u=n(7040);function p(e){if(!o.hasOwnProperty("existsSync"))return;const n=t.CONFIG_FILE_NAMES.map((t=>e?i.resolve(e,t):t)).filter(o.existsSync);if(n.length>1)throw new Error(`\n Multiple configuration files are not allowed. \n Found the following files: ${n.join(", ")}. \n Please use 'redocly.yaml' instead.\n `);return n[0]}function d(e=p()){return r(this,void 0,void 0,(function*(){if(!e)return{};try{const t=(yield s.loadYaml(e))||{};return c.transformConfig(t)}catch(t){throw new Error(`Error parsing config file at '${e}': ${t.message}`)}}))}t.loadConfig=function(e=p(),t,n){return r(this,void 0,void 0,(function*(){const o=yield d(e);return"function"==typeof n&&(yield n(o)),yield function({rawConfig:e,customExtends:t,configPath:n}){var o;return r(this,void 0,void 0,(function*(){void 0!==t?(e.lint=e.lint||{},e.lint.extends=t):s.isEmptyObject(e);const r=new a.RedoclyClient,i=yield r.getTokens();if(i.length){e.resolve||(e.resolve={}),e.resolve.http||(e.resolve.http={}),e.resolve.http.headers=[...null!==(o=e.resolve.http.headers)&&void 0!==o?o:[]];for(const t of i){const n=l.DOMAINS[t.region];e.resolve.http.headers.push({matches:`https://api.${n}/registry/**`,name:"Authorization",envVariable:void 0,value:t.token},..."us"===t.region?[{matches:"https://api.redoc.ly/registry/**",name:"Authorization",envVariable:void 0,value:t.token}]:[])}}return u.resolveConfig(e,n)}))}({rawConfig:o,customExtends:t,configPath:e})}))},t.CONFIG_FILE_NAMES=["redocly.yaml","redocly.yml",".redocly.yaml",".redocly.yml"],t.findConfig=p,t.getConfig=d},9016:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={rules:{"info-description":"warn","info-contact":"off","info-license":"off","info-license-url":"off","tag-description":"warn","tags-alphabetical":"off","parameter-description":"off","no-path-trailing-slash":"warn","no-identical-paths":"warn","no-ambiguous-paths":"warn","path-declaration-must-exist":"warn","path-not-include-query":"warn","path-parameters-defined":"warn","operation-description":"off","operation-2xx-response":"warn","operation-4xx-response":"off",assertions:"warn","operation-operationId":"warn","operation-summary":"warn","operation-operationId-unique":"warn","operation-parameters-unique":"warn","operation-tag-defined":"off","operation-security-defined":"warn","operation-operationId-url-safe":"warn","operation-singular-tag":"off","no-unresolved-refs":"error","no-enum-type-mismatch":"warn","boolean-parameter-prefixes":"off","paths-kebab-case":"off",spec:"error"},oas3_0Rules:{"no-invalid-media-type-examples":{severity:"warn",disallowAdditionalProperties:!0},"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"warn","no-example-value-and-externalValue":"warn","no-unused-components":"warn","no-undefined-server-variable":"warn","no-servers-empty-enum":"error"},oas3_1Rules:{"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"warn","no-example-value-and-externalValue":"warn","no-unused-components":"warn","no-undefined-server-variable":"warn","no-servers-empty-enum":"error"}}},8057:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={rules:{"info-description":"warn","info-contact":"off","info-license":"warn","info-license-url":"warn","tag-description":"warn","tags-alphabetical":"off","parameter-description":"off","no-path-trailing-slash":"error","no-identical-paths":"error","no-ambiguous-paths":"warn","path-declaration-must-exist":"error","path-not-include-query":"error","path-parameters-defined":"error","operation-description":"off","operation-2xx-response":"warn",assertions:"warn","operation-4xx-response":"warn","operation-operationId":"warn","operation-summary":"error","operation-operationId-unique":"error","operation-operationId-url-safe":"error","operation-parameters-unique":"error","operation-tag-defined":"off","operation-security-defined":"error","operation-singular-tag":"off","no-unresolved-refs":"error","no-enum-type-mismatch":"error","boolean-parameter-prefixes":"off","paths-kebab-case":"off",spec:"error"},oas3_0Rules:{"no-invalid-media-type-examples":{severity:"warn",disallowAdditionalProperties:!0},"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"warn","no-undefined-server-variable":"error","no-servers-empty-enum":"error"},oas3_1Rules:{"no-server-example.com":"warn","no-server-trailing-slash":"error","no-empty-servers":"error","no-example-value-and-externalValue":"error","no-unused-components":"warn","no-undefined-server-variable":"error","no-servers-empty-enum":"error"}}},5030:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRules=void 0;const r=n(771);t.initRules=function(e,t,n,o){return e.flatMap((e=>Object.keys(e).map((r=>{const i=e[r],a="rules"===n?t.getRuleSettings(r,o):"preprocessors"===n?t.getPreprocessorSettings(r,o):t.getDecoratorSettings(r,o);if("off"===a.severity)return;const s=i(a);return Array.isArray(s)?s.map((e=>({severity:a.severity,ruleId:r,visitor:e}))):{severity:a.severity,ruleId:r,visitor:s}})))).flatMap((e=>e)).filter(r.notUndefined)}},3865:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2565:function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o-1){const[t,n]=e.split("/");return{pluginId:t,configName:n}}return{pluginId:"",configName:e}},t.transformApiDefinitionsToApis=s,t.prefixRules=function(e,t){if(!t)return e;const n={};for(const r of Object.keys(e))n[`${t}/${r}`]=e[r];return n},t.mergeExtends=function(e){const t={rules:{},oas2Rules:{},oas3_0Rules:{},oas3_1Rules:{},preprocessors:{},oas2Preprocessors:{},oas3_0Preprocessors:{},oas3_1Preprocessors:{},decorators:{},oas2Decorators:{},oas3_0Decorators:{},oas3_1Decorators:{},plugins:[],pluginPaths:[],extendPaths:[]};for(let n of e){if(n.extends)throw new Error(`\`extends\` is not supported in shared configs yet: ${JSON.stringify(n,null,2)}.`);Object.assign(t.rules,n.rules),Object.assign(t.oas2Rules,n.oas2Rules),i.assignExisting(t.oas2Rules,n.rules||{}),Object.assign(t.oas3_0Rules,n.oas3_0Rules),i.assignExisting(t.oas3_0Rules,n.rules||{}),Object.assign(t.oas3_1Rules,n.oas3_1Rules),i.assignExisting(t.oas3_1Rules,n.rules||{}),Object.assign(t.preprocessors,n.preprocessors),Object.assign(t.oas2Preprocessors,n.oas2Preprocessors),i.assignExisting(t.oas2Preprocessors,n.preprocessors||{}),Object.assign(t.oas3_0Preprocessors,n.oas3_0Preprocessors),i.assignExisting(t.oas3_0Preprocessors,n.preprocessors||{}),Object.assign(t.oas3_1Preprocessors,n.oas3_1Preprocessors),i.assignExisting(t.oas3_1Preprocessors,n.preprocessors||{}),Object.assign(t.decorators,n.decorators),Object.assign(t.oas2Decorators,n.oas2Decorators),i.assignExisting(t.oas2Decorators,n.decorators||{}),Object.assign(t.oas3_0Decorators,n.oas3_0Decorators),i.assignExisting(t.oas3_0Decorators,n.decorators||{}),Object.assign(t.oas3_1Decorators,n.oas3_1Decorators),i.assignExisting(t.oas3_1Decorators,n.decorators||{}),t.plugins.push(...n.plugins||[]),t.pluginPaths.push(...n.pluginPaths||[]),t.extendPaths.push(...new Set(n.extendPaths))}return t},t.getMergedConfig=function(e,t){var n,r,o,i,s,l;const c=[...Object.values(e.apis).map((e=>{var t;return null===(t=null==e?void 0:e.lint)||void 0===t?void 0:t.extendPaths})),null===(r=null===(n=e.rawConfig)||void 0===n?void 0:n.lint)||void 0===r?void 0:r.extendPaths].flat().filter(Boolean),u=[...Object.values(e.apis).map((e=>{var t;return null===(t=null==e?void 0:e.lint)||void 0===t?void 0:t.pluginPaths})),null===(i=null===(o=e.rawConfig)||void 0===o?void 0:o.lint)||void 0===i?void 0:i.pluginPaths].flat().filter(Boolean);return t?new a.Config(Object.assign(Object.assign({},e.rawConfig),{lint:Object.assign(Object.assign({},e.apis[t]?e.apis[t].lint:e.rawConfig.lint),{extendPaths:c,pluginPaths:u}),"features.openapi":Object.assign(Object.assign({},e["features.openapi"]),null===(s=e.apis[t])||void 0===s?void 0:s["features.openapi"]),"features.mockServer":Object.assign(Object.assign({},e["features.mockServer"]),null===(l=e.apis[t])||void 0===l?void 0:l["features.mockServer"])}),e.configFile):e},t.transformConfig=function(e){if(e.apis&&e.apiDefinitions)throw new Error("Do not use 'apiDefinitions' field. Use 'apis' instead.\n");if(e["features.openapi"]&&e.referenceDocs)throw new Error("Do not use 'referenceDocs' field. Use 'features.openapi' instead.\n");const t=e,{apiDefinitions:n,referenceDocs:i}=t,a=r(t,["apiDefinitions","referenceDocs"]);return n&&process.stderr.write(`The ${o.yellow("apiDefinitions")} field is deprecated. Use ${o.green("apis")} instead. Read more about this change: https://redocly.com/docs/api-registry/guides/migration-guide-config-file/#changed-properties\n`),i&&process.stderr.write(`The ${o.yellow("referenceDocs")} field is deprecated. Use ${o.green("features.openapi")} instead. Read more about this change: https://redocly.com/docs/api-registry/guides/migration-guide-config-file/#changed-properties\n`),Object.assign({"features.openapi":i,apis:s(n)},a)},t.getResolveConfig=function(e){var t,n;return{http:{headers:null!==(n=null===(t=null==e?void 0:e.http)||void 0===t?void 0:t.headers)&&void 0!==n?n:[],customFetch:void 0}}},t.getUniquePlugins=function(e){const t=new Set,n=[];for(const r of e)t.has(r.id)?r.id&&process.stderr.write(`Duplicate plugin id "${o.yellow(r.id)}".\n`):(n.push(r),t.add(r.id));return n}},1988:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkIfMatchByStrategy=t.filter=void 0;const r=n(7468),o=n(771);function i(e){return Array.isArray(e)?e:[e]}t.filter=function(e,t,n){const{parent:i,key:a}=t;let s=!1;if(Array.isArray(e))for(let o=0;oe.includes(t))):"all"===n&&t.every((t=>e.includes(t)))):e===t)}},9244:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FilterIn=void 0;const r=n(1988);t.FilterIn=({property:e,value:t,matchStrategy:n})=>{const o=n||"any",i=n=>(null==n?void 0:n[e])&&!r.checkIfMatchByStrategy(null==n?void 0:n[e],t,o);return{any:{enter:(e,t)=>{r.filter(e,t,i)}}}}},8623:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FilterOut=void 0;const r=n(1988);t.FilterOut=({property:e,value:t,matchStrategy:n})=>{const o=n||"any",i=n=>r.checkIfMatchByStrategy(null==n?void 0:n[e],t,o);return{any:{enter:(e,t)=>{r.filter(e,t,i)}}}}},4555:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoDescriptionOverride=void 0;const r=n(771);t.InfoDescriptionOverride=({filePath:e})=>({Info:{leave(t,{report:n,location:o}){if(!e)throw new Error('Parameter "filePath" is not provided for "info-description-override" rule');try{t.description=r.readFileAsStringSync(e)}catch(e){n({message:`Failed to read markdown override file for "info.description".\n${e.message}`,location:o.child("description")})}}}})},7802:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationDescriptionOverride=void 0;const r=n(771);t.OperationDescriptionOverride=({operationIds:e})=>({Operation:{leave(t,{report:n,location:o}){if(!t.operationId)return;if(!e)throw new Error('Parameter "operationIds" is not provided for "operation-description-override" rule');const i=t.operationId;if(e[i])try{t.description=r.readFileAsStringSync(e[i])}catch(e){n({message:`Failed to read markdown override file for operation "${i}".\n${e.message}`,location:o.child("operationId").key()})}}}})},2287:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryDependencies=void 0;const r=n(1094);t.RegistryDependencies=()=>{let e=new Set;return{DefinitionRoot:{leave(t,n){n.getVisitorData().links=Array.from(e)}},ref(t){if(t.$ref){const n=t.$ref.split("#/")[0];r.isRedoclyRegistryURL(n)&&e.add(n)}}}}},5830:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveXInternal=void 0;const r=n(771),o=n(7468);t.RemoveXInternal=({internalFlagProperty:e})=>{const t=e||"x-internal";return{any:{enter:(e,n)=>{!function(e,n){var i,a,s,l;const{parent:c,key:u}=n;let p=!1;if(Array.isArray(e))for(let r=0;r({Tag:{leave(t,{report:n}){if(!e)throw new Error('Parameter "tagNames" is not provided for "tag-description-override" rule');if(e[t.name])try{t.description=r.readFileAsStringSync(e[t.name])}catch(e){n({message:`Failed to read markdown override file for tag "${t.name}".\n${e.message}`})}}}})},7060:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decorators=void 0;const r=n(2287),o=n(7802),i=n(423),a=n(4555),s=n(5830),l=n(9244),c=n(8623);t.decorators={"registry-dependencies":r.RegistryDependencies,"operation-description-override":o.OperationDescriptionOverride,"tag-description-override":i.TagDescriptionOverride,"info-description-override":a.InfoDescriptionOverride,"remove-x-internal":s.RemoveXInternal,"filter-in":l.FilterIn,"filter-out":c.FilterOut}},1753:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decorators=void 0;const r=n(2287),o=n(7802),i=n(423),a=n(4555),s=n(5830),l=n(9244),c=n(8623);t.decorators={"registry-dependencies":r.RegistryDependencies,"operation-description-override":o.OperationDescriptionOverride,"tag-description-override":i.TagDescriptionOverride,"info-description-override":a.InfoDescriptionOverride,"remove-x-internal":s.RemoveXInternal,"filter-in":l.FilterIn,"filter-out":c.FilterOut}},5273:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringifyYaml=t.parseYaml=void 0;const r=n(3320),o=r.JSON_SCHEMA.extend({implicit:[r.types.merge],explicit:[r.types.binary,r.types.omap,r.types.pairs,r.types.set]});t.parseYaml=(e,t)=>r.load(e,Object.assign({schema:o},t)),t.stringifyYaml=(e,t)=>r.dump(e,t)},1510:function(e,t){"use strict";var n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.openAPIMajor=t.detectOpenAPI=t.OasMajorVersion=t.OasVersion=void 0,function(e){e.Version2="oas2",e.Version3_0="oas3_0",e.Version3_1="oas3_1"}(n=t.OasVersion||(t.OasVersion={})),function(e){e.Version2="oas2",e.Version3="oas3"}(r=t.OasMajorVersion||(t.OasMajorVersion={})),t.detectOpenAPI=function(e){if("object"!=typeof e)throw new Error("Document must be JSON object, got "+typeof e);if(!e.openapi&&!e.swagger)throw new Error("This doesn’t look like an OpenAPI document.\n");if(e.openapi&&"string"!=typeof e.openapi)throw new Error(`Invalid OpenAPI version: should be a string but got "${typeof e.openapi}"`);if(e.openapi&&e.openapi.startsWith("3.0"))return n.Version3_0;if(e.openapi&&e.openapi.startsWith("3.1"))return n.Version3_1;if(e.swagger&&"2.0"===e.swagger)return n.Version2;throw new Error(`Unsupported OpenAPI Version: ${e.openapi||e.swagger}`)},t.openAPIMajor=function(e){return e===n.Version2?r.Version2:r.Version3}},1094:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.isRedoclyRegistryURL=t.RedoclyClient=void 0;const o=n(2116),i=n(6470),a=n(6918),s=n(8836),l=n(1390),c=n(3777),u=n(771),p=".redocly-config.json";t.RedoclyClient=class{constructor(e){this.accessTokens={},this.region=this.loadRegion(e),this.loadTokens(),this.domain=e?c.DOMAINS[e]:c.env.REDOCLY_DOMAIN||c.DOMAINS[c.DEFAULT_REGION],c.env.REDOCLY_DOMAIN=this.domain,this.registryApi=new l.RegistryApi(this.accessTokens,this.region)}loadRegion(e){if(e&&!c.DOMAINS[e])throw new Error(`Invalid argument: region in config file.\nGiven: ${s.green(e)}, choices: "us", "eu".`);return c.env.REDOCLY_DOMAIN?c.AVAILABLE_REGIONS.find((e=>c.DOMAINS[e]===c.env.REDOCLY_DOMAIN))||c.DEFAULT_REGION:e||c.DEFAULT_REGION}getRegion(){return this.region}hasTokens(){return u.isNotEmptyObject(this.accessTokens)}hasToken(){return!!this.accessTokens[this.region]}getAuthorizationHeader(){return r(this,void 0,void 0,(function*(){return this.accessTokens[this.region]}))}setAccessTokens(e){this.accessTokens=e}loadTokens(){const e=i.resolve(a.homedir(),p),t=this.readCredentialsFile(e);u.isNotEmptyObject(t)&&this.setAccessTokens(Object.assign(Object.assign({},t),t.token&&!t[this.region]&&{[this.region]:t.token})),c.env.REDOCLY_AUTHORIZATION&&this.setAccessTokens(Object.assign(Object.assign({},this.accessTokens),{[this.region]:c.env.REDOCLY_AUTHORIZATION}))}getAllTokens(){return Object.entries(this.accessTokens).filter((([e])=>c.AVAILABLE_REGIONS.includes(e))).map((([e,t])=>({region:e,token:t})))}getValidTokens(){return r(this,void 0,void 0,(function*(){const e=this.getAllTokens(),t=yield Promise.allSettled(e.map((({token:e,region:t})=>this.verifyToken(e,t))));return e.filter(((e,n)=>"fulfilled"===t[n].status)).map((({token:e,region:t})=>({token:e,region:t,valid:!0})))}))}getTokens(){return r(this,void 0,void 0,(function*(){return this.hasTokens()?yield this.getValidTokens():[]}))}isAuthorizedWithRedoclyByRegion(){return r(this,void 0,void 0,(function*(){if(!this.hasTokens())return!1;const e=this.accessTokens[this.region];if(!e)return!1;try{return yield this.verifyToken(e,this.region),!0}catch(e){return!1}}))}isAuthorizedWithRedocly(){return r(this,void 0,void 0,(function*(){return this.hasTokens()&&u.isNotEmptyObject(yield this.getValidTokens())}))}readCredentialsFile(e){return o.existsSync(e)?JSON.parse(o.readFileSync(e,"utf-8")):{}}verifyToken(e,t,n=!1){return r(this,void 0,void 0,(function*(){return this.registryApi.authStatus(e,t,n)}))}login(e,t=!1){return r(this,void 0,void 0,(function*(){const n=i.resolve(a.homedir(),p);try{yield this.verifyToken(e,this.region,t)}catch(e){throw new Error("Authorization failed. Please check if you entered a valid API key.")}const r=Object.assign(Object.assign({},this.readCredentialsFile(n)),{[this.region]:e,token:e});this.accessTokens=r,this.registryApi.setAccessTokens(r),o.writeFileSync(n,JSON.stringify(r,null,2))}))}logout(){const e=i.resolve(a.homedir(),p);o.existsSync(e)&&o.unlinkSync(e)}},t.isRedoclyRegistryURL=function(e){const t=c.env.REDOCLY_DOMAIN||c.DOMAINS[c.DEFAULT_REGION],n="redocly.com"===t?"redoc.ly":t;return!(!e.startsWith(`https://api.${t}/registry/`)&&!e.startsWith(`https://api.${n}/registry/`))}},1390:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryApi=void 0;const o=n(8150),i=n(3777),a=n(771),s=n(3244).i8;t.RegistryApi=class{constructor(e,t){this.accessTokens=e,this.region=t}get accessToken(){return a.isNotEmptyObject(this.accessTokens)&&this.accessTokens[this.region]}getBaseUrl(e=i.DEFAULT_REGION){return`https://api.${i.DOMAINS[e]}/registry`}setAccessTokens(e){return this.accessTokens=e,this}request(e="",t={},n){return r(this,void 0,void 0,(function*(){const r=Object.assign({},t.headers||{},{"x-redocly-cli-version":s});if(!r.hasOwnProperty("authorization"))throw new Error("Unauthorized");const i=yield o.default(`${this.getBaseUrl(n)}${e}`,Object.assign({},t,{headers:r}));if(401===i.status)throw new Error("Unauthorized");if(404===i.status){const e=yield i.json();throw new Error(e.code)}return i}))}authStatus(e,t,n=!1){return r(this,void 0,void 0,(function*(){try{const n=yield this.request("",{headers:{authorization:e}},t);return yield n.json()}catch(e){throw n&&console.log(e),e}}))}prepareFileUpload({organizationId:e,name:t,version:n,filesHash:o,filename:i,isUpsert:a}){return r(this,void 0,void 0,(function*(){const r=yield this.request(`/${e}/${t}/${n}/prepare-file-upload`,{method:"POST",headers:{"content-type":"application/json",authorization:this.accessToken},body:JSON.stringify({filesHash:o,filename:i,isUpsert:a})},this.region);if(r.ok)return r.json();throw new Error("Could not prepare file upload")}))}pushApi({organizationId:e,name:t,version:n,rootFilePath:o,filePaths:i,branch:a,isUpsert:s,isPublic:l,batchId:c,batchSize:u}){return r(this,void 0,void 0,(function*(){if(!(yield this.request(`/${e}/${t}/${n}`,{method:"PUT",headers:{"content-type":"application/json",authorization:this.accessToken},body:JSON.stringify({rootFilePath:o,filePaths:i,branch:a,isUpsert:s,isPublic:l,batchId:c,batchSize:u})},this.region)).ok)throw new Error("Could not push api")}))}}},7468:function(e,t){"use strict";function n(e,t){return""===e&&(e="#/"),"/"===e[e.length-1]?e+t:e+"/"+t}Object.defineProperty(t,"__esModule",{value:!0}),t.isMappingRef=t.isAbsoluteUrl=t.refBaseName=t.pointerBaseName=t.parsePointer=t.parseRef=t.escapePointer=t.unescapePointer=t.Location=t.isRef=t.joinPointer=void 0,t.joinPointer=n,t.isRef=function(e){return e&&"string"==typeof e.$ref};class r{constructor(e,t){this.source=e,this.pointer=t}child(e){return new r(this.source,n(this.pointer,(Array.isArray(e)?e:[e]).map(i).join("/")))}key(){return Object.assign(Object.assign({},this),{reportOnKey:!0})}get absolutePointer(){return this.source.absoluteRef+("#/"===this.pointer?"":this.pointer)}}function o(e){return decodeURIComponent(e.replace(/~1/g,"/").replace(/~0/g,"~"))}function i(e){return"number"==typeof e?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}t.Location=r,t.unescapePointer=o,t.escapePointer=i,t.parseRef=function(e){const[t,n]=e.split("#/");return{uri:t||null,pointer:n?n.split("/").map(o).filter(Boolean):[]}},t.parsePointer=function(e){return e.substr(2).split("/").map(o)},t.pointerBaseName=function(e){const t=e.split("/");return t[t.length-1]},t.refBaseName=function(e){const t=e.split(/[\/\\]/);return t[t.length-1].replace(/\.[^.]+$/,"")},t.isAbsoluteUrl=function(e){return e.startsWith("http://")||e.startsWith("https://")},t.isMappingRef=function(e){return e.startsWith("#")||e.startsWith("https://")||e.startsWith("http://")||e.startsWith("./")||e.startsWith("../")||e.indexOf("/")>-1}},4182:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.resolveDocument=t.BaseResolver=t.makeDocumentFromString=t.makeRefId=t.YamlParseError=t.ResolveError=t.Source=void 0;const o=n(3197),i=n(6470),a=n(7468),s=n(5220),l=n(771);class c{constructor(e,t,n){this.absoluteRef=e,this.body=t,this.mimeType=n}getAst(e){var t;return void 0===this._ast&&(this._ast=null!==(t=e(this.body,{filename:this.absoluteRef}))&&void 0!==t?t:void 0,this._ast&&0===this._ast.kind&&""===this._ast.value&&1!==this._ast.startPosition&&(this._ast.startPosition=1,this._ast.endPosition=1)),this._ast}getLines(){return void 0===this._lines&&(this._lines=this.body.split(/\r\n|[\n\r]/g)),this._lines}}t.Source=c;class u extends Error{constructor(e){super(e.message),this.originalError=e,Object.setPrototypeOf(this,u.prototype)}}t.ResolveError=u;const p=/\((\d+):(\d+)\)$/;class d extends Error{constructor(e,t){super(e.message.split("\n")[0]),this.originalError=e,this.source=t,Object.setPrototypeOf(this,d.prototype);const[,n,r]=this.message.match(p)||[];this.line=parseInt(n,10),this.col=parseInt(r,10)}}function f(e,t){return e+"::"+t}function h(e,t){return{prev:e,node:t}}t.YamlParseError=d,t.makeRefId=f,t.makeDocumentFromString=function(e,t){const n=new c(t,e);try{return{source:n,parsed:l.parseYaml(e,{filename:t})}}catch(e){throw new d(e,n)}},t.BaseResolver=class{constructor(e={http:{headers:[]}}){this.config=e,this.cache=new Map}getFiles(){return new Set(Array.from(this.cache.keys()))}resolveExternalRef(e,t){return a.isAbsoluteUrl(t)?t:e&&a.isAbsoluteUrl(e)?new URL(t,e).href:i.resolve(e?i.dirname(e):process.cwd(),t)}loadExternalRef(e){return r(this,void 0,void 0,(function*(){try{if(a.isAbsoluteUrl(e)){const{body:t,mimeType:n}=yield l.readFileFromUrl(e,this.config.http);return new c(e,t,n)}return new c(e,yield o.promises.readFile(e,"utf-8"))}catch(e){throw new u(e)}}))}parseDocument(e,t=!1){var n;const r=e.absoluteRef.substr(e.absoluteRef.lastIndexOf("."));if(![".json",".json",".yml",".yaml"].includes(r)&&!(null===(n=e.mimeType)||void 0===n?void 0:n.match(/(json|yaml|openapi)/))&&!t)return{source:e,parsed:e.body};try{return{source:e,parsed:l.parseYaml(e.body,{filename:e.absoluteRef})}}catch(t){throw new d(t,e)}}resolveDocument(e,t,n=!1){return r(this,void 0,void 0,(function*(){const r=this.resolveExternalRef(e,t),o=this.cache.get(r);if(o)return o;const i=this.loadExternalRef(r).then((e=>this.parseDocument(e,n)));return this.cache.set(r,i),i}))}};const m={name:"unknown",properties:{}},g={name:"scalar",properties:{}};t.resolveDocument=function(e){return r(this,void 0,void 0,(function*(){const{rootDocument:t,externalRefResolver:n,rootType:o}=e,i=new Map,l=new Set,c=[];let u;!function e(t,o,u,p){function d(e,t,o){return r(this,void 0,void 0,(function*(){if(function(e,t){for(;e;){if(e.node===t)return!0;e=e.prev}return!1}(o.prev,t))throw new Error("Self-referencing circular pointer");const{uri:r,pointer:s}=a.parseRef(t.$ref),l=null!==r;let c;try{c=l?yield n.resolveDocument(e.source.absoluteRef,r):e}catch(n){const r={resolved:!1,isRemote:l,document:void 0,error:n},o=f(e.source.absoluteRef,t.$ref);return i.set(o,r),r}let u={resolved:!0,document:c,isRemote:l,node:e.parsed,nodePointer:"#/"},p=c.parsed;const m=s;for(let e of m){if("object"!=typeof p){p=void 0;break}if(void 0!==p[e])p=p[e],u.nodePointer=a.joinPointer(u.nodePointer,a.escapePointer(e));else{if(!a.isRef(p)){p=void 0;break}if(u=yield d(c,p,h(o,p)),c=u.document||c,"object"!=typeof u.node){p=void 0;break}p=u.node[e],u.nodePointer=a.joinPointer(u.nodePointer,a.escapePointer(e))}}u.node=p,u.document=c;const g=f(e.source.absoluteRef,t.$ref);return u.document&&a.isRef(p)&&(u=yield d(u.document,p,h(o,p))),i.set(g,u),Object.assign({},u)}))}!function t(n,r,i){if("object"!=typeof n||null===n)return;const u=`${r.name}::${i}`;if(!l.has(u))if(l.add(u),Array.isArray(n)){const e=r.items;if(r!==m&&void 0===e)return;for(let r=0;r{t.resolved&&e(t.node,t.document,t.nodePointer,r)}));c.push(t)}}}(t,p,o.source.absoluteRef+u)}(t.parsed,t,"#/",o);do{u=yield Promise.all(c)}while(c.length!==u.length);return i}))}},7275:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateJsonSchema=t.releaseAjvInstance=void 0;const r=n(5499),o=n(7468);let i=null;t.releaseAjvInstance=function(){i=null},t.validateJsonSchema=function(e,t,n,a,s,l){const c=function(e,t,n,o){const a=function(e,t){return i||(i=new r.default({schemaId:"$id",meta:!0,allErrors:!0,strictSchema:!1,inlineRefs:!1,validateSchema:!1,discriminator:!0,allowUnionTypes:!0,validateFormats:!1,defaultAdditionalProperties:!t,loadSchemaSync(t,n){const r=e({$ref:n},t.split("#")[0]);return!(!r||!r.location)&&Object.assign({$id:r.location.absolutePointer},r.node)},logger:!1})),i}(n,o);return a.getSchema(t.absolutePointer)||a.addSchema(Object.assign({$id:t.absolutePointer},e),t.absolutePointer),a.getSchema(t.absolutePointer)}(t,n,s,l);return c?{valid:!!c(e,{instancePath:a,parentData:{fake:{}},parentDataProperty:"fake",rootData:{},dynamicAnchors:{}}),errors:(c.errors||[]).map((function(e){let t=e.message,n="enum"===e.keyword?e.params.allowedValues:void 0;n&&(t+=` ${n.map((e=>`"${e}"`)).join(", ")}`),"type"===e.keyword&&(t=`type ${t}`);const r=e.instancePath.substring(a.length+1),i=r.substring(r.lastIndexOf("/")+1);if(i&&(t=`\`${i}\` property ${t}`),"additionalProperties"===e.keyword){const n=e.params.additionalProperty;t=`${t} \`${n}\``,e.instancePath+="/"+o.escapePointer(n)}return Object.assign(Object.assign({},e),{message:t,suggest:n})}))}:{valid:!0,errors:[]}}},9740:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.asserts=t.runOnValuesSet=t.runOnKeysSet=void 0;const r=n(771),o=n(5738);t.runOnKeysSet=new Set(["mutuallyExclusive","mutuallyRequired","enum","pattern","minLength","maxLength","casing","sortOrder","disallowed","required","requireAny","ref"]),t.runOnValuesSet=new Set(["pattern","enum","defined","undefined","nonEmpty","minLength","maxLength","casing","sortOrder","ref"]),t.asserts={pattern:(e,t,n)=>{if(void 0===e)return{isValid:!0};const i=r.isString(e)?[e]:e,a=o.regexFromString(t);for(let t of i)if(!(null==a?void 0:a.test(t)))return{isValid:!1,location:r.isString(e)?n:n.key()};return{isValid:!0}},enum:(e,t,n)=>{if(void 0===e)return{isValid:!0};const o=r.isString(e)?[e]:e;for(let i of o)if(!t.includes(i))return{isValid:!1,location:r.isString(e)?n:n.child(i).key()};return{isValid:!0}},defined:(e,t=!0,n)=>{const r=void 0!==e;return{isValid:t?r:!r,location:n}},required:(e,t,n)=>{for(const r of t)if(!e.includes(r))return{isValid:!1,location:n.key()};return{isValid:!0}},disallowed:(e,t,n)=>{if(void 0===e)return{isValid:!0};const o=r.isString(e)?[e]:e;for(let i of o)if(t.includes(i))return{isValid:!1,location:r.isString(e)?n:n.child(i).key()};return{isValid:!0}},undefined:(e,t=!0,n)=>{const r=void 0===e;return{isValid:t?r:!r,location:n}},nonEmpty:(e,t=!0,n)=>{const r=null==e||""===e;return{isValid:t?!r:r,location:n}},minLength:(e,t,n)=>void 0===e?{isValid:!0}:{isValid:e.length>=t,location:n},maxLength:(e,t,n)=>void 0===e?{isValid:!0}:{isValid:e.length<=t,location:n},casing:(e,t,n)=>{if(void 0===e)return{isValid:!0};const o=r.isString(e)?[e]:e;for(let i of o){let o=!1;switch(t){case"camelCase":o=!!i.match(/^[a-z][a-zA-Z0-9]+$/g);break;case"kebab-case":o=!!i.match(/^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/g);break;case"snake_case":o=!!i.match(/^([a-z][a-z0-9]*)(_[a-z0-9]+)*$/g);break;case"PascalCase":o=!!i.match(/^[A-Z][a-zA-Z0-9]+$/g);break;case"MACRO_CASE":o=!!i.match(/^([A-Z][A-Z0-9]*)(_[A-Z0-9]+)*$/g);break;case"COBOL-CASE":o=!!i.match(/^([A-Z][A-Z0-9]*)(-[A-Z0-9]+)*$/g);break;case"flatcase":o=!!i.match(/^[a-z][a-z0-9]+$/g)}if(!o)return{isValid:!1,location:r.isString(e)?n:n.child(i).key()}}return{isValid:!0}},sortOrder:(e,t,n)=>void 0===e?{isValid:!0}:{isValid:o.isOrdered(e,t),location:n},mutuallyExclusive:(e,t,n)=>({isValid:o.getIntersectionLength(e,t)<2,location:n.key()}),mutuallyRequired:(e,t,n)=>({isValid:!(o.getIntersectionLength(e,t)>0)||o.getIntersectionLength(e,t)===t.length,location:n.key()}),requireAny:(e,t,n)=>({isValid:o.getIntersectionLength(e,t)>=1,location:n.key()}),ref:(e,t,n,r)=>{if(void 0===r)return{isValid:!0};const i=r.hasOwnProperty("$ref");if("boolean"==typeof t)return{isValid:t?i:!i,location:i?n:n.key()};const a=o.regexFromString(t);return{isValid:i&&(null==a?void 0:a.test(r.$ref)),location:i?n:n.key()}}}},4015:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Assertions=void 0;const r=n(9740),o=n(5738);t.Assertions=e=>{let t=[];const n=Object.values(e).filter((e=>"object"==typeof e&&null!==e));for(const[e,i]of n.entries()){const n=i.assertionId&&`${i.assertionId} assertion`||`assertion #${e+1}`;if(!i.subject)throw new Error(`${n}: 'subject' is required`);const a=Array.isArray(i.subject)?i.subject:[i.subject],s=Object.keys(r.asserts).filter((e=>void 0!==i[e])).map((e=>({assertId:n,name:e,conditions:i[e],message:i.message,severity:i.severity||"error",suggest:i.suggest||[],runsOnKeys:r.runOnKeysSet.has(e),runsOnValues:r.runOnValuesSet.has(e)}))),l=s.find((e=>e.runsOnKeys&&!e.runsOnValues)),c=s.find((e=>e.runsOnValues&&!e.runsOnKeys));if(c&&!i.property)throw new Error(`${c.name} can't be used on all keys. Please provide a single property.`);if(l&&i.property)throw new Error(`${l.name} can't be used on a single property. Please use 'property'.`);for(const e of a){const n=o.buildSubjectVisitor(i.property,s,i.context),r=o.buildVisitorObject(e,i.context,n);t.push(r)}}return t}},5738:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.regexFromString=t.isOrdered=t.getIntersectionLength=t.buildSubjectVisitor=t.buildVisitorObject=void 0;const r=n(7468),o=n(9740);function i({values:e,rawValues:t,assert:n,location:r,report:i}){const a=o.asserts[n.name](e,n.conditions,r,t);a.isValid||i({message:n.message||`The ${n.assertId} doesn't meet required conditions`,location:a.location||r,forceSeverity:n.severity,suggest:n.suggest,ruleId:n.assertId})}t.buildVisitorObject=function(e,t,n){if(!t)return{[e]:n};let r={};const o=r;for(let n=0;ni?!i.includes(t):a?a.includes(t):void 0}:{},r=r[o.type]}return r[e]=n,o},t.buildSubjectVisitor=function(e,t,n){return(o,{report:a,location:s,rawLocation:l,key:c,type:u,resolve:p,rawNode:d})=>{var f;if(n){const e=n[n.length-1];if(e.type===u.name){const t=e.matchParentKeys,n=e.excludeParentKeys;if(t&&!t.includes(c))return;if(n&&n.includes(c))return}}e&&(e=Array.isArray(e)?e:[e]);for(const n of t){const t="ref"===n.name?l:s;if(e)for(const s of e)i({values:r.isRef(o[s])?null===(f=p(o[s]))||void 0===f?void 0:f.node:o[s],rawValues:d[s],assert:n,location:t.child(s),report:a});else{const e="ref"===n.name?d:Object.keys(o);i({values:Object.keys(o),rawValues:e,assert:n,location:t,report:a})}}}},t.getIntersectionLength=function(e,t){const n=new Set(t);let r=0;for(const t of e)n.has(t)&&r++;return r},t.isOrdered=function(e,t){const n=t.direction||t,r=t.property;for(let t=1;t=i:o<=i))return!1}return!0},t.regexFromString=function(e){const t=e.match(/^\/(.*)\/(.*)|(.*)/);return t&&new RegExp(t[1]||t[3],t[2])}},8265:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoContact=void 0;const r=n(780);t.InfoContact=()=>({Info(e,{report:t,location:n}){e.contact||t({message:r.missingRequiredField("Info","contact"),location:n.child("contact").key()})}})},8675:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoDescription=void 0;const r=n(780);t.InfoDescription=()=>({Info(e,t){r.validateDefinedAndNonEmpty("description",e,t)}})},9622:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoLicense=void 0;const r=n(780);t.InfoLicense=()=>({Info(e,{report:t}){e.license||t({message:r.missingRequiredField("Info","license"),location:{reportOnKey:!0}})}})},476:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoLicenseUrl=void 0;const r=n(780);t.InfoLicenseUrl=()=>({License(e,t){r.validateDefinedAndNonEmpty("url",e,t)}})},3467:function(e,t){"use strict";function n(e,t){const n=e.split("/"),r=t.split("/");if(n.length!==r.length)return!1;let o=0,i=0,a=!0;for(let e=0;e({PathMap(e,{report:t,location:r}){const o=[];for(const i of Object.keys(e)){const e=o.find((e=>n(e,i)));e&&t({message:`Paths should resolve unambiguously. Found two ambiguous paths: \`${e}\` and \`${i}\`.`,location:r.child([i]).key()}),o.push(i)}}})},2319:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoEnumTypeMismatch=void 0;const r=n(780);t.NoEnumTypeMismatch=()=>({Schema(e,{report:t,location:n}){if(!e.enum||Array.isArray(e.enum)){if(e.enum&&e.type&&!Array.isArray(e.type)){const o=e.enum.filter((t=>!r.matchesJsonSchemaType(t,e.type,e.nullable)));for(const i of o)t({message:`All values of \`enum\` field must be of the same type as the \`type\` field: expected "${e.type}" but received "${r.oasTypeOf(i)}".`,location:n.child(["enum",e.enum.indexOf(i)])})}if(e.enum&&e.type&&Array.isArray(e.type)){const o={};for(const t of e.enum){o[t]=[];for(const n of e.type)r.matchesJsonSchemaType(t,n,e.nullable)||o[t].push(n);o[t].length!==e.type.length&&delete o[t]}for(const r of Object.keys(o))t({message:`Enum value \`${r}\` must be of one type. Allowed types: \`${e.type}\`.`,location:n.child(["enum",e.enum.indexOf(r)])})}}}})},525:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoHttpVerbsInPaths=void 0;const r=n(771),o=["get","head","post","put","patch","delete","options","trace"];t.NoHttpVerbsInPaths=({splitIntoWords:e})=>({PathItem(t,{key:n,report:i,location:a}){const s=n.toString();if(!s.startsWith("/"))return;const l=s.split("/");for(const t of l){if(!t||r.isPathParameter(t))continue;const n=n=>e?r.splitCamelCaseIntoWords(t).has(n):t.toLocaleLowerCase().includes(n);for(const e of o)n(e)&&i({message:`path \`${s}\` should not contain http verb ${e}`,location:a.key()})}}})},4628:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoIdenticalPaths=void 0,t.NoIdenticalPaths=()=>({PathMap(e,{report:t,location:n}){const r=new Map;for(const o of Object.keys(e)){const e=o.replace(/{.+?}/g,"{VARIABLE}"),i=r.get(e);i?t({message:`The path already exists which differs only by path parameter name(s): \`${i}\` and \`${o}\`.`,location:n.child([o]).key()}):r.set(e,o)}}})},1562:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoInvalidParameterExamples=void 0;const r=n(780);t.NoInvalidParameterExamples=e=>{var t;const n=null===(t=e.disallowAdditionalProperties)||void 0===t||t;return{Parameter:{leave(e,t){if(e.example&&r.validateExample(e.example,e.schema,t.location.child("example"),t,n),e.examples)for(const[n,o]of Object.entries(e.examples))"value"in o&&r.validateExample(o.value,e.schema,t.location.child(["examples",n]),t,!1)}}}}},78:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoInvalidSchemaExamples=void 0;const r=n(780);t.NoInvalidSchemaExamples=e=>{var t;const n=null===(t=e.disallowAdditionalProperties)||void 0===t||t;return{Schema:{leave(e,t){if(e.examples)for(const o of e.examples)r.validateExample(o,e,t.location.child(["examples",e.examples.indexOf(o)]),t,n);e.example&&r.validateExample(e.example,e,t.location.child("example"),t,!1)}}}}},700:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoPathTrailingSlash=void 0,t.NoPathTrailingSlash=()=>({PathItem(e,{report:t,key:n,location:r}){n.endsWith("/")&&"/"!==n&&t({message:`\`${n}\` should not have a trailing slash.`,location:r.key()})}})},5946:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Operation2xxResponse=void 0,t.Operation2xxResponse=()=>({ResponsesMap(e,{report:t}){Object.keys(e).some((e=>"default"===e||/2[Xx0-9]{2}/.test(e)))||t({message:"Operation must have at least one `2xx` response.",location:{reportOnKey:!0}})}})},5281:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Operation4xxResponse=void 0,t.Operation4xxResponse=()=>({ResponsesMap(e,{report:t}){Object.keys(e).some((e=>/4[Xx0-9]{2}/.test(e)))||t({message:"Operation must have at least one `4xx` response.",location:{reportOnKey:!0}})}})},3408:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationDescription=void 0;const r=n(780);t.OperationDescription=()=>({Operation(e,t){r.validateDefinedAndNonEmpty("description",e,t)}})},8742:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationIdUnique=void 0,t.OperationIdUnique=()=>{const e=new Set;return{Operation(t,{report:n,location:r}){t.operationId&&(e.has(t.operationId)&&n({message:"Every operation must have a unique `operationId`.",location:r.child([t.operationId])}),e.add(t.operationId))}}}},5064:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationIdUrlSafe=void 0;const n=/^[A-Za-z0-9-._~:/?#\[\]@!\$&'()*+,;=]*$/;t.OperationIdUrlSafe=()=>({Operation(e,{report:t,location:r}){e.operationId&&!n.test(e.operationId)&&t({message:"Operation `operationId` should not have URL invalid characters.",location:r.child(["operationId"])})}})},8786:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationOperationId=void 0;const r=n(780);t.OperationOperationId=()=>({DefinitionRoot:{PathItem:{Operation(e,t){r.validateDefinedAndNonEmpty("operationId",e,t)}}}})},4112:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationParametersUnique=void 0,t.OperationParametersUnique=()=>{let e,t;return{PathItem:{enter(){e=new Set},Parameter(t,{report:n,key:r,parentLocations:o}){const i=`${t.in}___${t.name}`;e.has(i)&&n({message:`Paths must have unique \`name\` + \`in\` parameters.\nRepeats of \`in:${t.in}\` + \`name:${t.name}\`.`,location:o.PathItem.child(["parameters",r])}),e.add(`${t.in}___${t.name}`)},Operation:{enter(){t=new Set},Parameter(e,{report:n,key:r,parentLocations:o}){const i=`${e.in}___${e.name}`;t.has(i)&&n({message:`Operations must have unique \`name\` + \`in\` parameters. Repeats of \`in:${e.in}\` + \`name:${e.name}\`.`,location:o.Operation.child(["parameters",r])}),t.add(i)}}}}}},7892:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationSecurityDefined=void 0,t.OperationSecurityDefined=()=>{let e=new Map;return{DefinitionRoot:{leave(t,{report:n}){for(const[t,r]of e.entries())if(!r.defined)for(const e of r.from)n({message:`There is no \`${t}\` security scheme defined.`,location:e.key()})}},SecurityScheme(t,{key:n}){e.set(n.toString(),{defined:!0,from:[]})},SecurityRequirement(t,{location:n}){for(const r of Object.keys(t)){const t=e.get(r),o=n.child([r]);t?t.from.push(o):e.set(r,{from:[o]})}}}}},8613:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationSingularTag=void 0,t.OperationSingularTag=()=>({Operation(e,{report:t,location:n}){e.tags&&e.tags.length>1&&t({message:"Operation `tags` object should have only one tag.",location:n.child(["tags"]).key()})}})},9578:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationSummary=void 0;const r=n(780);t.OperationSummary=()=>({Operation(e,t){r.validateDefinedAndNonEmpty("summary",e,t)}})},5097:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OperationTagDefined=void 0,t.OperationTagDefined=()=>{let e;return{DefinitionRoot(t){var n;e=new Set((null!==(n=t.tags)&&void 0!==n?n:[]).map((e=>e.name)))},Operation(t,{report:n,location:r}){if(t.tags)for(let o=0;o({Parameter(e,{report:t,location:n}){void 0===e.description?t({message:"Parameter object description must be present.",location:{reportOnKey:!0}}):e.description||t({message:"Parameter object description must be non-empty string.",location:n.child(["description"])})}})},7890:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathDeclarationMustExist=void 0,t.PathDeclarationMustExist=()=>({PathItem(e,{report:t,key:n}){-1!==n.indexOf("{}")&&t({message:"Path parameter declarations must be non-empty. `{}` is invalid.",location:{reportOnKey:!0}})}})},3689:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathExcludesPatterns=void 0,t.PathExcludesPatterns=({patterns:e})=>({PathItem(t,{report:n,key:r,location:o}){if(!e)throw new Error('Parameter "patterns" is not provided for "path-excludes-patterns" rule');const i=r.toString();if(i.startsWith("/")){const t=e.filter((e=>i.match(e)));for(const e of t)n({message:`path \`${i}\` should not match regex pattern: \`${e}\``,location:o.key()})}}})},2332:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathHttpVerbsOrder=void 0;const n=["get","head","post","put","patch","delete","options","trace"];t.PathHttpVerbsOrder=e=>{const t=e&&e.order||n;if(!Array.isArray(t))throw new Error("path-http-verbs-order `order` option must be an array");return{PathItem(e,{report:n,location:r}){const o=Object.keys(e).filter((e=>t.includes(e)));for(let e=0;e({PathMap:{PathItem(e,{report:t,key:n}){n.toString().includes("?")&&t({message:"Don't put query string items in the path, they belong in parameters with `in: query`.",location:{reportOnKey:!0}})}}})},7421:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathParamsDefined=void 0;const n=/\{([a-zA-Z0-9_.-]+)\}+/g;t.PathParamsDefined=()=>{let e,t,r;return{PathItem:{enter(o,{key:i}){t=new Set,r=i,e=new Set(Array.from(i.toString().matchAll(n)).map((e=>e[1])))},Parameter(n,{report:o,location:i}){"path"===n.in&&n.name&&(t.add(n.name),e.has(n.name)||o({message:`Path parameter \`${n.name}\` is not used in the path \`${r}\`.`,location:i.child(["name"])}))},Operation:{leave(n,{report:o,location:i}){for(const n of Array.from(e.keys()))t.has(n)||o({message:`The operation does not define the path parameter \`{${n}}\` expected by path \`${r}\`.`,location:i.child(["parameters"]).key()})},Parameter(n,{report:o,location:i}){"path"===n.in&&n.name&&(t.add(n.name),e.has(n.name)||o({message:`Path parameter \`${n.name}\` is not used in the path \`${r}\`.`,location:i.child(["name"])}))}}}}}},3807:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathSegmentPlural=void 0;const r=n(771);t.PathSegmentPlural=e=>{const{ignoreLastPathSegment:t,exceptions:n}=e;return{PathItem:{leave(e,{report:o,key:i,location:a}){const s=i.toString();if(s.startsWith("/")){const e=s.split("/");e.shift(),t&&e.length>1&&e.pop();for(const t of e)n&&n.includes(t)||!r.isPathParameter(t)&&r.isSingular(t)&&o({message:`path segment \`${t}\` should be plural.`,location:a.key()})}}}}}},9527:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathsKebabCase=void 0,t.PathsKebabCase=()=>({PathItem(e,{report:t,key:n}){n.substr(1).split("/").filter((e=>""!==e)).every((e=>/^{.+}$/.test(e)||/^[a-z0-9-.]+$/.test(e)))||t({message:`\`${n}\` does not use kebab-case.`,location:{reportOnKey:!0}})}})},5839:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseContainsHeader=void 0;const r=n(771);t.ResponseContainsHeader=e=>{const t=e.names||{};return{Operation:{Response:{enter:(e,{report:n,location:o,key:i})=>{var a;const s=t[i]||t[r.getMatchingStatusCodeRange(i)]||t[r.getMatchingStatusCodeRange(i).toLowerCase()]||[];for(const t of s)(null===(a=e.headers)||void 0===a?void 0:a[t])||n({message:`Response object must contain a "${t}" header.`,location:o.child("headers").key()})}}}}}},5669:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScalarPropertyMissingExample=void 0;const r=n(1510),o=["string","integer","number","boolean","null"];t.ScalarPropertyMissingExample=()=>({SchemaProperties(e,{report:t,location:n,oasVersion:i,resolve:a}){for(const l of Object.keys(e)){const c=a(e[l]).node;c&&((s=c).type&&!(s.allOf||s.anyOf||s.oneOf)&&"binary"!==s.format&&(Array.isArray(s.type)?s.type.every((e=>o.includes(e))):o.includes(s.type)))&&void 0===c.example&&void 0===c.examples&&t({message:`Scalar property should have "example"${i===r.OasVersion.Version3_1?' or "examples"':""} defined.`,location:n.child(l).key()})}var s}})},6471:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OasSpec=void 0;const r=n(5220),o=n(780),i=n(7468),a=n(771);t.OasSpec=()=>({any(e,{report:t,type:n,location:s,key:l,resolve:c,ignoreNextVisitorsOnNode:u}){var p,d,f,h;const m=o.oasTypeOf(e);if(n.items)return void("array"!==m&&(t({message:`Expected type \`${n.name}\` (array) but got \`${m}\``}),u()));if("object"!==m)return t({message:`Expected type \`${n.name}\` (object) but got \`${m}\``}),void u();const g="function"==typeof n.required?n.required(e,l):n.required;for(let n of g||[])e.hasOwnProperty(n)||t({message:`The field \`${n}\` must be present on this level.`,location:[{reportOnKey:!0}]});const y=null===(p=n.allowed)||void 0===p?void 0:p.call(n,e);if(y&&a.isPlainObject(e))for(const r in e)y.includes(r)||n.extensionsPrefix&&r.startsWith(n.extensionsPrefix)||!Object.keys(n.properties).includes(r)||t({message:`The field \`${r}\` is not allowed here.`,location:s.child([r]).key()});const v=n.requiredOneOf||null;if(v){let r=!1;for(let t of v||[])e.hasOwnProperty(t)&&(r=!0);r||t({message:`Must contain at least one of the following fields: ${null===(d=n.requiredOneOf)||void 0===d?void 0:d.join(", ")}.`,location:[{reportOnKey:!0}]})}for(const a of Object.keys(e)){const l=s.child([a]);let u=e[a],p=n.properties[a];if(void 0===p&&(p=n.additionalProperties),"function"==typeof p&&(p=p(u,a)),r.isNamedType(p))continue;const d=p,m=o.oasTypeOf(u);if(void 0!==d){if(null!==d){if(!1!==d.resolvable&&i.isRef(u)&&(u=c(u).node),d.enum)d.enum.includes(u)||t({location:l,message:`\`${a}\` can be one of the following only: ${d.enum.map((e=>`"${e}"`)).join(", ")}.`,suggest:o.getSuggest(u,d.enum)});else if(d.type&&!o.matchesJsonSchemaType(u,d.type,!1))t({message:`Expected type \`${d.type}\` but got \`${m}\`.`,location:l});else if("array"===m&&(null===(f=d.items)||void 0===f?void 0:f.type)){const e=null===(h=d.items)||void 0===h?void 0:h.type;for(let n=0;ne[a]&&t({message:`The value of the ${a} field must be greater than or equal to ${d.minimum}`,location:s.child([a])})}}else{if(a.startsWith("x-"))continue;t({message:`Property \`${a}\` is not expected here.`,suggest:o.getSuggest(a,Object.keys(n.properties)),location:l.key()})}}}})},7281:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TagDescription=void 0;const r=n(780);t.TagDescription=()=>({Tag(e,t){r.validateDefinedAndNonEmpty("description",e,t)}})},6855:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TagsAlphabetical=void 0,t.TagsAlphabetical=()=>({DefinitionRoot(e,{report:t,location:n}){if(e.tags)for(let r=0;re.tags[r+1].name&&t({message:"The `tags` array should be in alphabetical order.",location:n.child(["tags",r])})}})},348:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportUnresolvedRef=t.NoUnresolvedRefs=void 0;const r=n(4182);function o(e,t,n){var o;const i=e.error;i instanceof r.YamlParseError&&t({message:"Failed to parse: "+i.message,location:{source:i.source,pointer:void 0,start:{col:i.col,line:i.line}}});const a=null===(o=e.error)||void 0===o?void 0:o.message;t({location:n,message:"Can't resolve $ref"+(a?": "+a:"")})}t.NoUnresolvedRefs=()=>({ref:{leave(e,{report:t,location:n},r){void 0===r.node&&o(r,t,n)}},DiscriminatorMapping(e,{report:t,resolve:n,location:r}){for(const i of Object.keys(e)){const a=n({$ref:e[i]});if(void 0!==a.node)return;o(a,t,r.child(i))}}}),t.reportUnresolvedRef=o},9566:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanParameterPrefixes=void 0,t.BooleanParameterPrefixes=e=>{const t=e.prefixes||["is","has"],n=new RegExp(`^(${t.join("|")})[A-Z-_]`),r=t.map((e=>`\`${e}\``)),o=1===r.length?r[0]:r.slice(0,-1).join(", ")+" or "+r[t.length-1];return{Parameter(e,{report:t,location:r}){"boolean"!==e.type||n.test(e.name)||t({message:`Boolean parameter \`${e.name}\` should have ${o} prefix.`,location:r.child("name")})}}}},7523:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preprocessors=t.rules=void 0;const r=n(6471),o=n(78),i=n(1562),a=n(8675),s=n(8265),l=n(9622),c=n(476),u=n(9566),p=n(7281),d=n(6855),f=n(9527),h=n(2319),m=n(700),g=n(5946),y=n(5281),v=n(4015),b=n(8742),w=n(4112),x=n(7421),k=n(5097),_=n(7890),O=n(5064),S=n(3408),E=n(5023),P=n(3529),A=n(8613),$=n(7892),C=n(348),R=n(2332),j=n(4628),T=n(8786),I=n(9578),N=n(3467),D=n(525),L=n(3689),M=n(7028),F=n(1750),z=n(3807),U=n(5839),V=n(7899),B=n(5669);t.rules={spec:r.OasSpec,"no-invalid-schema-examples":o.NoInvalidSchemaExamples,"no-invalid-parameter-examples":i.NoInvalidParameterExamples,"info-description":a.InfoDescription,"info-contact":s.InfoContact,"info-license":l.InfoLicense,"info-license-url":c.InfoLicenseUrl,"tag-description":p.TagDescription,"tags-alphabetical":d.TagsAlphabetical,"paths-kebab-case":f.PathsKebabCase,"no-enum-type-mismatch":h.NoEnumTypeMismatch,"boolean-parameter-prefixes":u.BooleanParameterPrefixes,"no-path-trailing-slash":m.NoPathTrailingSlash,"operation-2xx-response":g.Operation2xxResponse,"operation-4xx-response":y.Operation4xxResponse,assertions:v.Assertions,"operation-operationId-unique":b.OperationIdUnique,"operation-parameters-unique":w.OperationParametersUnique,"path-parameters-defined":x.PathParamsDefined,"operation-tag-defined":k.OperationTagDefined,"path-declaration-must-exist":_.PathDeclarationMustExist,"operation-operationId-url-safe":O.OperationIdUrlSafe,"operation-operationId":T.OperationOperationId,"operation-summary":I.OperationSummary,"operation-description":S.OperationDescription,"path-not-include-query":E.PathNotIncludeQuery,"path-params-defined":x.PathParamsDefined,"parameter-description":P.ParameterDescription,"operation-singular-tag":A.OperationSingularTag,"operation-security-defined":$.OperationSecurityDefined,"no-unresolved-refs":C.NoUnresolvedRefs,"no-identical-paths":j.NoIdenticalPaths,"no-ambiguous-paths":N.NoAmbiguousPaths,"path-http-verbs-order":R.PathHttpVerbsOrder,"no-http-verbs-in-paths":D.NoHttpVerbsInPaths,"path-excludes-patterns":L.PathExcludesPatterns,"request-mime-type":M.RequestMimeType,"response-mime-type":F.ResponseMimeType,"path-segment-plural":z.PathSegmentPlural,"response-contains-header":U.ResponseContainsHeader,"response-contains-property":V.ResponseContainsProperty,"scalar-property-missing-example":B.ScalarPropertyMissingExample},t.preprocessors={}},4508:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveUnusedComponents=void 0;const r=n(771);t.RemoveUnusedComponents=()=>{let e=new Map;function t(t,n,r){var o;e.set(t.absolutePointer,{used:(null===(o=e.get(t.absolutePointer))||void 0===o?void 0:o.used)||!1,componentType:n,name:r})}return{ref:{leave(t,{type:n,resolve:r,key:o}){if(["Schema","Parameter","Response","SecurityScheme"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:o.toString()})}}},DefinitionRoot:{leave(t,n){const o=n.getVisitorData();o.removedCount=0;let i=new Set;e.forEach((e=>{const{used:n,name:r,componentType:a}=e;!n&&a&&(i.add(a),delete t[a][r],o.removedCount++)}));for(const e of i)r.isEmptyObject(t[e])&&delete t[e]}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,"definitions",r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,"parameters",r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,"responses",r.toString())}},NamedSecuritySchemes:{SecurityScheme(e,{location:n,key:r}){t(n,"securityDefinitions",r.toString())}}}}},7028:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestMimeType=void 0;const r=n(771);t.RequestMimeType=({allowedValues:e})=>({DefinitionRoot(t,n){r.validateMimeType({type:"consumes",value:t},n,e)},Operation:{leave(t,n){r.validateMimeType({type:"consumes",value:t},n,e)}}})},7899:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseContainsProperty=void 0;const r=n(771);t.ResponseContainsProperty=e=>{const t=e.names||{};let n;return{Operation:{Response:{skip:(e,t)=>"204"==`${t}`,enter:(e,t)=>{n=t.key},Schema(e,{report:o,location:i}){var a;if("object"!==e.type)return;const s=t[n]||t[r.getMatchingStatusCodeRange(n)]||t[r.getMatchingStatusCodeRange(n).toLowerCase()]||[];for(const t of s)(null===(a=e.properties)||void 0===a?void 0:a[t])||o({message:`Response object must contain a top-level "${t}" property.`,location:i.child("properties").key()})}}}}}},1750:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseMimeType=void 0;const r=n(771);t.ResponseMimeType=({allowedValues:e})=>({DefinitionRoot(t,n){r.validateMimeType({type:"produces",value:t},n,e)},Operation:{leave(t,n){r.validateMimeType({type:"produces",value:t},n,e)}}})},962:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanParameterPrefixes=void 0,t.BooleanParameterPrefixes=e=>{const t=e.prefixes||["is","has"],n=new RegExp(`^(${t.join("|")})[A-Z-_]`),r=t.map((e=>`\`${e}\``)),o=1===r.length?r[0]:r.slice(0,-1).join(", ")+" or "+r[t.length-1];return{Parameter:{Schema(e,{report:t,parentLocations:r},i){"boolean"!==e.type||n.test(i.Parameter.name)||t({message:`Boolean parameter \`${i.Parameter.name}\` should have ${o} prefix.`,location:r.Parameter.child(["name"])})}}}}},226:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preprocessors=t.rules=void 0;const r=n(6471),o=n(5946),i=n(5281),a=n(4015),s=n(8742),l=n(4112),c=n(7421),u=n(5097),p=n(1265),d=n(2319),f=n(700),h=n(7890),m=n(5064),g=n(6855),y=n(5486),v=n(2947),b=n(8675),w=n(7281),x=n(8265),k=n(9622),_=n(3408),O=n(897),S=n(5023),E=n(3529),P=n(8613),A=n(476),$=n(7892),C=n(348),R=n(962),j=n(9527),T=n(2332),I=n(7020),N=n(9336),D=n(4628),L=n(6208),M=n(8786),F=n(9578),z=n(3467),U=n(472),V=n(525),B=n(3736),q=n(503),W=n(3807),H=n(3689),Y=n(78),K=n(1562),G=n(5839),Q=n(7557),X=n(5669);t.rules={spec:r.OasSpec,"info-description":b.InfoDescription,"info-contact":x.InfoContact,"info-license":k.InfoLicense,"info-license-url":A.InfoLicenseUrl,"operation-2xx-response":o.Operation2xxResponse,"operation-4xx-response":i.Operation4xxResponse,assertions:a.Assertions,"operation-operationId-unique":s.OperationIdUnique,"operation-parameters-unique":l.OperationParametersUnique,"path-parameters-defined":c.PathParamsDefined,"operation-tag-defined":u.OperationTagDefined,"no-example-value-and-externalValue":p.NoExampleValueAndExternalValue,"no-enum-type-mismatch":d.NoEnumTypeMismatch,"no-path-trailing-slash":f.NoPathTrailingSlash,"no-empty-servers":I.NoEmptyServers,"path-declaration-must-exist":h.PathDeclarationMustExist,"operation-operationId-url-safe":m.OperationIdUrlSafe,"operation-operationId":M.OperationOperationId,"operation-summary":F.OperationSummary,"tags-alphabetical":g.TagsAlphabetical,"no-server-example.com":y.NoServerExample,"no-server-trailing-slash":v.NoServerTrailingSlash,"tag-description":w.TagDescription,"operation-description":_.OperationDescription,"no-unused-components":O.NoUnusedComponents,"path-not-include-query":S.PathNotIncludeQuery,"path-params-defined":c.PathParamsDefined,"parameter-description":E.ParameterDescription,"operation-singular-tag":P.OperationSingularTag,"operation-security-defined":$.OperationSecurityDefined,"no-unresolved-refs":C.NoUnresolvedRefs,"paths-kebab-case":j.PathsKebabCase,"boolean-parameter-prefixes":R.BooleanParameterPrefixes,"path-http-verbs-order":T.PathHttpVerbsOrder,"no-invalid-media-type-examples":N.ValidContentExamples,"no-identical-paths":D.NoIdenticalPaths,"no-ambiguous-paths":z.NoAmbiguousPaths,"no-undefined-server-variable":L.NoUndefinedServerVariable,"no-servers-empty-enum":U.NoEmptyEnumServers,"no-http-verbs-in-paths":V.NoHttpVerbsInPaths,"path-excludes-patterns":H.PathExcludesPatterns,"request-mime-type":B.RequestMimeType,"response-mime-type":q.ResponseMimeType,"path-segment-plural":W.PathSegmentPlural,"no-invalid-schema-examples":Y.NoInvalidSchemaExamples,"no-invalid-parameter-examples":K.NoInvalidParameterExamples,"response-contains-header":G.ResponseContainsHeader,"response-contains-property":Q.ResponseContainsProperty,"scalar-property-missing-example":X.ScalarPropertyMissingExample},t.preprocessors={}},7020:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoEmptyServers=void 0,t.NoEmptyServers=()=>({DefinitionRoot(e,{report:t,location:n}){e.hasOwnProperty("servers")?Array.isArray(e.servers)&&0!==e.servers.length||t({message:"Servers must be a non-empty array.",location:n.child(["servers"]).key()}):t({message:"Servers must be present.",location:n.child(["openapi"]).key()})}})},1265:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoExampleValueAndExternalValue=void 0,t.NoExampleValueAndExternalValue=()=>({Example(e,{report:t,location:n}){e.value&&e.externalValue&&t({message:"Example object can have either `value` or `externalValue` fields.",location:n.child(["value"]).key()})}})},9336:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidContentExamples=void 0;const r=n(7468),o=n(780);t.ValidContentExamples=e=>{var t;const n=null===(t=e.disallowAdditionalProperties)||void 0===t||t;return{MediaType:{leave(e,t){const{location:i,resolve:a}=t;if(e.schema)if(e.example)s(e.example,i.child("example"));else if(e.examples)for(const t of Object.keys(e.examples))s(e.examples[t],i.child(["examples",t,"value"]),!0);function s(i,s,l){if(r.isRef(i)){const e=a(i);if(!e.location)return;s=l?e.location.child("value"):e.location,i=e.node}o.validateExample(l?i.value:i,e.schema,s,t,n)}}}}}},5486:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoServerExample=void 0,t.NoServerExample=()=>({Server(e,{report:t,location:n}){-1!==["example.com","localhost"].indexOf(e.url)&&t({message:"Server `url` should not point at example.com.",location:n.child(["url"])})}})},2947:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoServerTrailingSlash=void 0,t.NoServerTrailingSlash=()=>({Server(e,{report:t,location:n}){e.url&&e.url.endsWith("/")&&"/"!==e.url&&t({message:"Server `url` should not have a trailing slash.",location:n.child(["url"])})}})},472:function(e,t){"use strict";var n;function r(e){var t;if(e.variables&&0===Object.keys(e.variables).length)return;const r=[];for(var o in e.variables){const i=e.variables[o];if(!i.enum)continue;if(Array.isArray(i.enum)&&0===(null===(t=i.enum)||void 0===t?void 0:t.length)&&r.push(n.empty),!i.default)continue;const a=e.variables[o].default;i.enum&&!i.enum.includes(a)&&r.push(n.invalidDefaultValue)}return r.length?r:void 0}Object.defineProperty(t,"__esModule",{value:!0}),t.NoEmptyEnumServers=void 0,function(e){e.empty="empty",e.invalidDefaultValue="invalidDefaultValue"}(n||(n={})),t.NoEmptyEnumServers=()=>({DefinitionRoot(e,{report:t,location:o}){if(!e.servers||0===e.servers.length)return;const i=[];if(Array.isArray(e.servers))for(const t of e.servers){const e=r(t);e&&i.push(...e)}else{const t=r(e.servers);if(!t)return;i.push(...t)}for(const e of i)e===n.empty&&t({message:"Server variable with `enum` must be a non-empty array.",location:o.child(["servers"]).key()}),e===n.invalidDefaultValue&&t({message:"Server variable define `enum` and `default`. `enum` must include default value",location:o.child(["servers"]).key()})}})},6208:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoUndefinedServerVariable=void 0,t.NoUndefinedServerVariable=()=>({Server(e,{report:t,location:n}){var r;if(!e.url)return;const o=(null===(r=e.url.match(/{[^}]+}/g))||void 0===r?void 0:r.map((e=>e.slice(1,e.length-1))))||[],i=(null==e?void 0:e.variables)&&Object.keys(e.variables)||[];for(const e of o)i.includes(e)||t({message:`The \`${e}\` variable is not defined in the \`variables\` objects.`,location:n.child(["url"])});for(const e of i)o.includes(e)||t({message:`The \`${e}\` variable is not used in the server's \`url\` field.`,location:n.child(["variables",e]).key(),from:n.child("url")})}})},897:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NoUnusedComponents=void 0,t.NoUnusedComponents=()=>{let e=new Map;function t(t,n){var r;e.set(t.absolutePointer,{used:(null===(r=e.get(t.absolutePointer))||void 0===r?void 0:r.used)||!1,location:t,name:n})}return{ref(t,{type:n,resolve:r,key:o,location:i}){if(["Schema","Header","Parameter","Response","Example","RequestBody"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:o.toString(),location:i})}},DefinitionRoot:{leave(t,{report:n}){e.forEach((e=>{e.used||n({message:`Component: "${e.name}" is never used.`,location:e.location.key()})}))}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,r.toString())}},NamedExamples:{Example(e,{location:n,key:r}){t(n,r.toString())}},NamedRequestBodies:{RequestBody(e,{location:n,key:r}){t(n,r.toString())}},NamedHeaders:{Header(e,{location:n,key:r}){t(n,r.toString())}}}}},6350:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveUnusedComponents=void 0;const r=n(771);t.RemoveUnusedComponents=()=>{let e=new Map;function t(t,n,r){var o;e.set(t.absolutePointer,{used:(null===(o=e.get(t.absolutePointer))||void 0===o?void 0:o.used)||!1,componentType:n,name:r})}return{ref:{leave(t,{type:n,resolve:r,key:o}){if(["Schema","Header","Parameter","Response","Example","RequestBody"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:o.toString()})}}},DefinitionRoot:{leave(t,n){const o=n.getVisitorData();o.removedCount=0,e.forEach((e=>{const{used:n,componentType:i,name:a}=e;if(!n&&i){let e=t.components[i];delete e[a],o.removedCount++,r.isEmptyObject(e)&&delete t.components[i]}})),r.isEmptyObject(t.components)&&delete t.components}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,"schemas",r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,"parameters",r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,"responses",r.toString())}},NamedExamples:{Example(e,{location:n,key:r}){t(n,"examples",r.toString())}},NamedRequestBodies:{RequestBody(e,{location:n,key:r}){t(n,"requestBodies",r.toString())}},NamedHeaders:{Header(e,{location:n,key:r}){t(n,"headers",r.toString())}}}}},3736:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestMimeType=void 0;const r=n(771);t.RequestMimeType=({allowedValues:e})=>({PathMap:{RequestBody:{leave(t,n){r.validateMimeTypeOAS3({type:"consumes",value:t},n,e)}},Callback:{RequestBody(){},Response:{leave(t,n){r.validateMimeTypeOAS3({type:"consumes",value:t},n,e)}}}},WebhooksMap:{Response:{leave(t,n){r.validateMimeTypeOAS3({type:"consumes",value:t},n,e)}}}})},7557:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseContainsProperty=void 0;const r=n(771);t.ResponseContainsProperty=e=>{const t=e.names||{};let n;return{Operation:{Response:{skip:(e,t)=>"204"==`${t}`,enter:(e,t)=>{n=t.key},MediaType:{Schema(e,{report:o,location:i}){var a;if("object"!==e.type)return;const s=t[n]||t[r.getMatchingStatusCodeRange(n)]||t[r.getMatchingStatusCodeRange(n).toLowerCase()]||[];for(const t of s)(null===(a=e.properties)||void 0===a?void 0:a[t])||o({message:`Response object must contain a top-level "${t}" property.`,location:i.child("properties").key()})}}}}}}},503:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseMimeType=void 0;const r=n(771);t.ResponseMimeType=({allowedValues:e})=>({PathMap:{Response:{leave(t,n){r.validateMimeTypeOAS3({type:"produces",value:t},n,e)}},Callback:{Response(){},RequestBody:{leave(t,n){r.validateMimeTypeOAS3({type:"produces",value:t},n,e)}}}},WebhooksMap:{RequestBody:{leave(t,n){r.validateMimeTypeOAS3({type:"produces",value:t},n,e)}}}})},780:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateExample=t.getSuggest=t.validateDefinedAndNonEmpty=t.fieldNonEmpty=t.missingRequiredField=t.matchesJsonSchemaType=t.oasTypeOf=void 0;const r=n(9991),o=n(7468),i=n(7275);function a(e,t){return`${e} object should contain \`${t}\` field.`}function s(e,t){return`${e} object \`${t}\` must be non-empty string.`}t.oasTypeOf=function(e){return Array.isArray(e)?"array":null===e?"null":typeof e},t.matchesJsonSchemaType=function(e,t,n){if(n&&null===e)return null===e;switch(t){case"array":return Array.isArray(e);case"object":return"object"==typeof e&&null!==e&&!Array.isArray(e);case"null":return null===e;case"integer":return Number.isInteger(e);default:return typeof e===t}},t.missingRequiredField=a,t.fieldNonEmpty=s,t.validateDefinedAndNonEmpty=function(e,t,n){"object"==typeof t&&(void 0===t[e]?n.report({message:a(n.type.name,e),location:n.location.child([e]).key()}):t[e]||n.report({message:s(n.type.name,e),location:n.location.child([e]).key()}))},t.getSuggest=function(e,t){if("string"!=typeof e||!t.length)return[];const n=[];for(let o=0;oe.distance-t.distance)),n.map((e=>e.variant))},t.validateExample=function(e,t,n,{resolve:r,location:a,report:s},l){try{const{valid:c,errors:u}=i.validateJsonSchema(e,t,a.child("schema"),n.pointer,r,l);if(!c)for(let e of u)s({message:`Example value must conform to the schema: ${e.message}.`,location:Object.assign(Object.assign({},new o.Location(n.source,e.instancePath)),{reportOnKey:"additionalProperties"===e.keyword}),from:a,suggest:e.suggest})}catch(e){s({message:`Example validation errored: ${e.message}.`,location:a.child("schema"),from:a})}}},5220:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNamedType=t.normalizeTypes=t.mapOf=t.listOf=void 0,t.listOf=function(e){return{name:`${e}List`,properties:{},items:e}},t.mapOf=function(e){return{name:`${e}Map`,properties:{},additionalProperties:()=>e}},t.normalizeTypes=function(e,t={}){const n={};for(const t of Object.keys(e))n[t]=Object.assign(Object.assign({},e[t]),{name:t});for(const e of Object.values(n))r(e);return n;function r(e){if(e.additionalProperties&&(e.additionalProperties=o(e.additionalProperties)),e.items&&(e.items=o(e.items)),e.properties){const n={};for(const[r,i]of Object.entries(e.properties))n[r]=o(i),t.doNotResolveExamples&&i&&i.isExample&&(n[r]=Object.assign(Object.assign({},i),{resolvable:!1}));e.properties=n}}function o(e){if("string"==typeof e){if(!n[e])throw new Error(`Unknown type name found: ${e}`);return n[e]}return"function"==typeof e?(t,n)=>o(e(t,n)):e&&e.name?(r(e=Object.assign({},e)),e):e&&e.directResolveAs?Object.assign(Object.assign({},e),{directResolveAs:o(e.directResolveAs)}):e}},t.isNamedType=function(e){return"string"==typeof(null==e?void 0:e.name)}},388:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas2Types=void 0;const r=n(5220),o=/^[0-9][0-9Xx]{2}$/,i={properties:{swagger:{type:"string"},info:"Info",host:{type:"string"},basePath:{type:"string"},schemes:{type:"array",items:{type:"string"}},consumes:{type:"array",items:{type:"string"}},produces:{type:"array",items:{type:"string"}},paths:"PathMap",definitions:"NamedSchemas",parameters:"NamedParameters",responses:"NamedResponses",securityDefinitions:"NamedSecuritySchemes",security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs"},required:["swagger","paths","info"]},a={properties:{$ref:{type:"string"},parameters:r.listOf("Parameter"),get:"Operation",put:"Operation",post:"Operation",delete:"Operation",options:"Operation",head:"Operation",patch:"Operation"}},s={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},consumes:{type:"array",items:{type:"string"}},produces:{type:"array",items:{type:"string"}},parameters:r.listOf("Parameter"),responses:"ResponsesMap",schemes:{type:"array",items:{type:"string"}},deprecated:{type:"boolean"},security:r.listOf("SecurityRequirement"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample"),"x-hideTryItPanel":{type:"boolean"}},required:["responses"]},l={properties:{default:"Response"},additionalProperties:(e,t)=>o.test(t)?"Response":void 0},c={properties:{description:{type:"string"},schema:"Schema",headers:r.mapOf("Header"),examples:"Examples"},required:["description"]},u={properties:{format:{type:"string"},title:{type:"string"},description:{type:"string"},default:null,multipleOf:{type:"number"},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"boolean"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"number"},minLength:{type:"number"},pattern:{type:"string"},maxItems:{type:"number"},minItems:{type:"number"},uniqueItems:{type:"boolean"},maxProperties:{type:"number"},minProperties:{type:"number"},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:{type:"string",enum:["object","array","string","number","integer","boolean","null"]},items:e=>Array.isArray(e)?r.listOf("Schema"):"Schema",allOf:r.listOf("Schema"),properties:"SchemaProperties",additionalProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",discriminator:{type:"string"},readOnly:{type:"boolean"},xml:"Xml",externalDocs:"ExternalDocs",example:{isExample:!0},"x-tags":{type:"array",items:{type:"string"}}}},p={properties:{type:{enum:["basic","apiKey","oauth2"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header"]},flow:{enum:["implicit","password","application","accessCode"]},authorizationUrl:{type:"string"},tokenUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}}},required(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in"];case"oauth2":switch(null==e?void 0:e.flow){case"implicit":return["type","flow","authorizationUrl","scopes"];case"accessCode":return["type","flow","authorizationUrl","tokenUrl","scopes"];case"application":case"password":return["type","flow","tokenUrl","scopes"];default:return["type","flow","scopes"]}default:return["type"]}},allowed(e){switch(null==e?void 0:e.type){case"basic":return["type","description"];case"apiKey":return["type","name","in","description"];case"oauth2":switch(null==e?void 0:e.flow){case"implicit":return["type","flow","authorizationUrl","description","scopes"];case"accessCode":return["type","flow","authorizationUrl","tokenUrl","description","scopes"];case"application":case"password":return["type","flow","tokenUrl","description","scopes"];default:return["type","flow","tokenUrl","authorizationUrl","description","scopes"]}default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas2Types={DefinitionRoot:i,Tag:{properties:{name:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs"},required:["name"]},ExternalDocs:{properties:{description:{type:"string"},url:{type:"string"}},required:["url"]},SecurityRequirement:{properties:{},additionalProperties:{type:"array",items:{type:"string"}}},Info:{properties:{title:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},contact:"Contact",license:"License",version:{type:"string"}},required:["title","version"]},Contact:{properties:{name:{type:"string"},url:{type:"string"},email:{type:"string"}}},License:{properties:{name:{type:"string"},url:{type:"string"}},required:["name"]},PathMap:{properties:{},additionalProperties:(e,t)=>t.startsWith("/")?"PathItem":void 0},PathItem:a,Parameter:{properties:{name:{type:"string"},in:{type:"string",enum:["query","header","path","formData","body"]},description:{type:"string"},required:{type:"boolean"},schema:"Schema",type:{type:"string",enum:["string","number","integer","boolean","array","file"]},format:{type:"string"},allowEmptyValue:{type:"boolean"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&e.in?"body"===e.in?["name","in","schema"]:"array"===e.type?["name","in","type","items"]:["name","in","type"]:["name","in"]},ParameterItems:{properties:{type:{type:"string",enum:["string","number","integer","boolean","array"]},format:{type:"string"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&"array"===e.type?["type","items"]:["type"]},Operation:s,Examples:{properties:{},additionalProperties:{isExample:!0}},Header:{properties:{description:{type:"string"},type:{type:"string",enum:["string","number","integer","boolean","array"]},format:{type:"string"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&"array"===e.type?["type","items"]:["type"]},ResponsesMap:l,Response:c,Schema:u,Xml:{properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean"},wrapped:{type:"boolean"}}},SchemaProperties:{properties:{},additionalProperties:"Schema"},NamedSchemas:r.mapOf("Schema"),NamedResponses:r.mapOf("Response"),NamedParameters:r.mapOf("Parameter"),NamedSecuritySchemes:r.mapOf("SecurityScheme"),SecurityScheme:p,XCodeSample:{properties:{lang:{type:"string"},label:{type:"string"},source:{type:"string"}}}}},5241:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas3Types=void 0;const r=n(5220),o=n(7468),i=/^[0-9][0-9Xx]{2}$/,a={properties:{openapi:null,info:"Info",servers:r.listOf("Server"),security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs",paths:"PathMap",components:"Components","x-webhooks":"WebhooksMap"},required:["openapi","paths","info"]},s={properties:{url:{type:"string"},description:{type:"string"},variables:r.mapOf("ServerVariable")},required:["url"]},l={properties:{$ref:{type:"string"},servers:r.listOf("Server"),parameters:r.listOf("Parameter"),summary:{type:"string"},description:{type:"string"},get:"Operation",put:"Operation",post:"Operation",delete:"Operation",options:"Operation",head:"Operation",patch:"Operation",trace:"Operation"}},c={properties:{name:{type:"string"},in:{enum:["query","header","path","cookie"]},description:{type:"string"},required:{type:"boolean"},deprecated:{type:"boolean"},allowEmptyValue:{type:"boolean"},style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"},schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),content:"MediaTypeMap"},required:["name","in"],requiredOneOf:["schema","content"]},u={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},parameters:r.listOf("Parameter"),security:r.listOf("SecurityRequirement"),servers:r.listOf("Server"),requestBody:"RequestBody",responses:"ResponsesMap",deprecated:{type:"boolean"},callbacks:r.mapOf("Callback"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample"),"x-hideTryItPanel":{type:"boolean"}},required:["responses"]},p={properties:{schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),encoding:r.mapOf("Encoding")}},d={properties:{contentType:{type:"string"},headers:r.mapOf("Header"),style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"}}},f={properties:{description:{type:"string"},required:{type:"boolean"},deprecated:{type:"boolean"},allowEmptyValue:{type:"boolean"},style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"},schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),content:"MediaTypeMap"}},h={properties:{default:"Response"},additionalProperties:(e,t)=>i.test(t)?"Response":void 0},m={properties:{description:{type:"string"},headers:r.mapOf("Header"),content:"MediaTypeMap",links:r.mapOf("Link")},required:["description"]},g={properties:{externalDocs:"ExternalDocs",discriminator:"Discriminator",title:{type:"string"},multipleOf:{type:"number",minimum:0},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"boolean"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer",minimum:0},minLength:{type:"integer",minimum:0},pattern:{type:"string"},maxItems:{type:"integer",minimum:0},minItems:{type:"integer",minimum:0},uniqueItems:{type:"boolean"},maxProperties:{type:"integer",minimum:0},minProperties:{type:"integer",minimum:0},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:{enum:["object","array","string","number","integer","boolean","null"]},allOf:r.listOf("Schema"),anyOf:r.listOf("Schema"),oneOf:r.listOf("Schema"),not:"Schema",properties:"SchemaProperties",items:e=>Array.isArray(e)?r.listOf("Schema"):"Schema",additionalItems:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",additionalProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",description:{type:"string"},format:{type:"string"},default:null,nullable:{type:"boolean"},readOnly:{type:"boolean"},writeOnly:{type:"boolean"},xml:"Xml",example:{isExample:!0},deprecated:{type:"boolean"},"x-tags":{type:"array",items:{type:"string"}}}},y={properties:{},additionalProperties:e=>o.isMappingRef(e)?{type:"string",directResolveAs:"Schema"}:{type:"string"}},v={properties:{type:{enum:["apiKey","http","oauth2","openIdConnect"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header","cookie"]},scheme:{type:"string"},bearerFormat:{type:"string"},flows:"SecuritySchemeFlows",openIdConnectUrl:{type:"string"}},required(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in"];case"http":return["type","scheme"];case"oauth2":return["type","flows"];case"openIdConnect":return["type","openIdConnectUrl"];default:return["type"]}},allowed(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in","description"];case"http":return["type","scheme","bearerFormat","description"];case"oauth2":return["type","flows","description"];case"openIdConnect":return["type","openIdConnectUrl","description"];default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas3Types={DefinitionRoot:a,Tag:{properties:{name:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs"},required:["name"]},ExternalDocs:{properties:{description:{type:"string"},url:{type:"string"}},required:["url"]},Server:s,ServerVariable:{properties:{enum:{type:"array",items:{type:"string"}},default:{type:"string"},description:null},required:["default"]},SecurityRequirement:{properties:{},additionalProperties:{type:"array",items:{type:"string"}}},Info:{properties:{title:{type:"string"},version:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},contact:"Contact",license:"License"},required:["title","version"]},Contact:{properties:{name:{type:"string"},url:{type:"string"},email:{type:"string"}}},License:{properties:{name:{type:"string"},url:{type:"string"}},required:["name"]},PathMap:{properties:{},additionalProperties:(e,t)=>t.startsWith("/")?"PathItem":void 0},PathItem:l,Parameter:c,Operation:u,Callback:r.mapOf("PathItem"),RequestBody:{properties:{description:{type:"string"},required:{type:"boolean"},content:"MediaTypeMap"},required:["content"]},MediaTypeMap:{properties:{},additionalProperties:"MediaType"},MediaType:p,Example:{properties:{value:{isExample:!0},summary:{type:"string"},description:{type:"string"},externalValue:{type:"string"}}},Encoding:d,Header:f,ResponsesMap:h,Response:m,Link:{properties:{operationRef:{type:"string"},operationId:{type:"string"},parameters:null,requestBody:null,description:{type:"string"},server:"Server"}},Schema:g,Xml:{properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean"},wrapped:{type:"boolean"}}},SchemaProperties:{properties:{},additionalProperties:"Schema"},DiscriminatorMapping:y,Discriminator:{properties:{propertyName:{type:"string"},mapping:"DiscriminatorMapping"},required:["propertyName"]},Components:{properties:{parameters:"NamedParameters",schemas:"NamedSchemas",responses:"NamedResponses",examples:"NamedExamples",requestBodies:"NamedRequestBodies",headers:"NamedHeaders",securitySchemes:"NamedSecuritySchemes",links:"NamedLinks",callbacks:"NamedCallbacks"}},NamedSchemas:r.mapOf("Schema"),NamedResponses:r.mapOf("Response"),NamedParameters:r.mapOf("Parameter"),NamedExamples:r.mapOf("Example"),NamedRequestBodies:r.mapOf("RequestBody"),NamedHeaders:r.mapOf("Header"),NamedSecuritySchemes:r.mapOf("SecurityScheme"),NamedLinks:r.mapOf("Link"),NamedCallbacks:r.mapOf("Callback"),ImplicitFlow:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},authorizationUrl:{type:"string"}},required:["authorizationUrl","scopes"]},PasswordFlow:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["tokenUrl","scopes"]},ClientCredentials:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["tokenUrl","scopes"]},AuthorizationCode:{properties:{refreshUrl:{type:"string"},authorizationUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["authorizationUrl","tokenUrl","scopes"]},SecuritySchemeFlows:{properties:{implicit:"ImplicitFlow",password:"PasswordFlow",clientCredentials:"ClientCredentials",authorizationCode:"AuthorizationCode"}},SecurityScheme:v,XCodeSample:{properties:{lang:{type:"string"},label:{type:"string"},source:{type:"string"}}},WebhooksMap:{properties:{},additionalProperties:()=>"PathItem"}}},2608:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas3_1Types=void 0;const r=n(5220),o=n(5241),i={properties:{openapi:null,info:"Info",servers:r.listOf("Server"),security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs",paths:"PathMap",webhooks:"WebhooksMap",components:"Components",jsonSchemaDialect:{type:"string"}},required:["openapi","info"],requiredOneOf:["paths","components","webhooks"]},a={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},parameters:r.listOf("Parameter"),security:r.listOf("SecurityRequirement"),servers:r.listOf("Server"),requestBody:"RequestBody",responses:"ResponsesMap",deprecated:{type:"boolean"},callbacks:r.mapOf("Callback"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample"),"x-hideTryItPanel":{type:"boolean"}}},s={properties:{$id:{type:"string"},id:{type:"string"},$schema:{type:"string"},definitions:"NamedSchemas",$defs:"NamedSchemas",$vocabulary:{type:"string"},externalDocs:"ExternalDocs",discriminator:"Discriminator",myArbitraryKeyword:{type:"boolean"},title:{type:"string"},multipleOf:{type:"number",minimum:0},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{type:"integer",minimum:0},minLength:{type:"integer",minimum:0},pattern:{type:"string"},maxItems:{type:"integer",minimum:0},minItems:{type:"integer",minimum:0},uniqueItems:{type:"boolean"},maxProperties:{type:"integer",minimum:0},minProperties:{type:"integer",minimum:0},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:e=>Array.isArray(e)?{type:"array",items:{enum:["object","array","string","number","integer","boolean","null"]}}:{enum:["object","array","string","number","integer","boolean","null"]},allOf:r.listOf("Schema"),anyOf:r.listOf("Schema"),oneOf:r.listOf("Schema"),not:"Schema",if:"Schema",then:"Schema",else:"Schema",dependentSchemas:r.listOf("Schema"),prefixItems:r.listOf("Schema"),contains:"Schema",minContains:{type:"integer",minimum:0},maxContains:{type:"integer",minimum:0},patternProperties:{type:"object"},propertyNames:"Schema",unevaluatedItems:"Schema",unevaluatedProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",summary:{type:"string"},properties:"SchemaProperties",items:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",additionalProperties:e=>"boolean"==typeof e?{type:"boolean"}:"Schema",description:{type:"string"},format:{type:"string"},contentEncoding:{type:"string"},contentMediaType:{type:"string"},default:null,readOnly:{type:"boolean"},writeOnly:{type:"boolean"},xml:"Xml",examples:{type:"array"},example:{isExample:!0},deprecated:{type:"boolean"},const:null,$comment:{type:"string"},"x-tags":{type:"array",items:{type:"string"}}}},l={properties:{type:{enum:["apiKey","http","oauth2","openIdConnect","mutualTLS"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header","cookie"]},scheme:{type:"string"},bearerFormat:{type:"string"},flows:"SecuritySchemeFlows",openIdConnectUrl:{type:"string"}},required(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in"];case"http":return["type","scheme"];case"oauth2":return["type","flows"];case"openIdConnect":return["type","openIdConnectUrl"];default:return["type"]}},allowed(e){switch(null==e?void 0:e.type){case"apiKey":return["type","name","in","description"];case"http":return["type","scheme","bearerFormat","description"];case"oauth2":switch(null==e?void 0:e.flows){case"implicit":return["type","flows","authorizationUrl","refreshUrl","description","scopes"];case"password":case"clientCredentials":return["type","flows","tokenUrl","refreshUrl","description","scopes"];default:return["type","flows","authorizationUrl","refreshUrl","tokenUrl","description","scopes"]}case"openIdConnect":return["type","openIdConnectUrl","description"];default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas3_1Types=Object.assign(Object.assign({},o.Oas3Types),{Info:{properties:{title:{type:"string"},version:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},summary:{type:"string"},contact:"Contact",license:"License"},required:["title","version"]},DefinitionRoot:i,Schema:s,License:{properties:{name:{type:"string"},url:{type:"string"},identifier:{type:"string"}},required:["name"]},Components:{properties:{parameters:"NamedParameters",schemas:"NamedSchemas",responses:"NamedResponses",examples:"NamedExamples",requestBodies:"NamedRequestBodies",headers:"NamedHeaders",securitySchemes:"NamedSecuritySchemes",links:"NamedLinks",callbacks:"NamedCallbacks",pathItems:"NamedPathItems"}},NamedPathItems:r.mapOf("PathItem"),SecurityScheme:l,Operation:a})},771:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.isCustomRuleId=t.getMatchingStatusCodeRange=t.assignExisting=t.isNotString=t.isString=t.isNotEmptyObject=t.slash=t.isPathParameter=t.readFileAsStringSync=t.isSingular=t.validateMimeTypeOAS3=t.validateMimeType=t.splitCamelCaseIntoWords=t.omitObjectProps=t.pickObjectProps=t.readFileFromUrl=t.isEmptyArray=t.isEmptyObject=t.isPlainObject=t.notUndefined=t.loadYaml=t.popStack=t.pushStack=t.stringifyYaml=t.parseYaml=void 0;const o=n(3197),i=n(4099),a=n(8150),s=n(3450),l=n(5273),c=n(8698);var u=n(5273);function p(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function d(e,t){return t.match(/^https?:\/\//)||(e=e.replace(/^https?:\/\//,"")),i(e,t)}function f(e){return"string"==typeof e}Object.defineProperty(t,"parseYaml",{enumerable:!0,get:function(){return u.parseYaml}}),Object.defineProperty(t,"stringifyYaml",{enumerable:!0,get:function(){return u.stringifyYaml}}),t.pushStack=function(e,t){return{prev:e,value:t}},t.popStack=function(e){var t;return null!==(t=null==e?void 0:e.prev)&&void 0!==t?t:null},t.loadYaml=function(e){return r(this,void 0,void 0,(function*(){const t=yield o.promises.readFile(e,"utf-8");return l.parseYaml(t)}))},t.notUndefined=function(e){return void 0!==e},t.isPlainObject=p,t.isEmptyObject=function(e){return p(e)&&0===Object.keys(e).length},t.isEmptyArray=function(e){return Array.isArray(e)&&0===e.length},t.readFileFromUrl=function(e,t){return r(this,void 0,void 0,(function*(){const n={};for(const r of t.headers)d(e,r.matches)&&(n[r.name]=void 0!==r.envVariable?c.env[r.envVariable]||"":r.value);const r=yield(t.customFetch||a.default)(e,{headers:n});if(!r.ok)throw new Error(`Failed to load ${e}: ${r.status} ${r.statusText}`);return{body:yield r.text(),mimeType:r.headers.get("content-type")}}))},t.pickObjectProps=function(e,t){return Object.fromEntries(t.filter((t=>t in e)).map((t=>[t,e[t]])))},t.omitObjectProps=function(e,t){return Object.fromEntries(Object.entries(e).filter((([e])=>!t.includes(e))))},t.splitCamelCaseIntoWords=function(e){const t=e.split(/(?:[-._])|([A-Z][a-z]+)/).filter(Boolean).map((e=>e.toLocaleLowerCase())),n=e.split(/([A-Z]{2,})/).filter((e=>e&&e===e.toUpperCase())).map((e=>e.toLocaleLowerCase()));return new Set([...t,...n])},t.validateMimeType=function({type:e,value:t},{report:n,location:r},o){if(!o)throw new Error(`Parameter "allowedValues" is not provided for "${"consumes"===e?"request":"response"}-mime-type" rule`);if(t[e])for(const i of t[e])o.includes(i)||n({message:`Mime type "${i}" is not allowed`,location:r.child(t[e].indexOf(i)).key()})},t.validateMimeTypeOAS3=function({type:e,value:t},{report:n,location:r},o){if(!o)throw new Error(`Parameter "allowedValues" is not provided for "${"consumes"===e?"request":"response"}-mime-type" rule`);if(t.content)for(const e of Object.keys(t.content))o.includes(e)||n({message:`Mime type "${e}" is not allowed`,location:r.child("content").child(e).key()})},t.isSingular=function(e){return s.isSingular(e)},t.readFileAsStringSync=function(e){return o.readFileSync(e,"utf-8")},t.isPathParameter=function(e){return e.startsWith("{")&&e.endsWith("}")},t.slash=function(e){return/^\\\\\?\\/.test(e)?e:e.replace(/\\/g,"/")},t.isNotEmptyObject=function(e){return!!e&&Object.keys(e).length>0},t.isString=f,t.isNotString=function(e){return!f(e)},t.assignExisting=function(e,t){for(let n of Object.keys(t))e.hasOwnProperty(n)&&(e[n]=t[n])},t.getMatchingStatusCodeRange=e=>`${e}`.replace(/^(\d)\d\d$/,((e,t)=>`${t}XX`)),t.isCustomRuleId=function(e){return e.includes("/")}},8065:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeVisitors=void 0,t.normalizeVisitors=function(e,t){const n={any:{enter:[],leave:[]}};for(const e of Object.keys(t))n[e]={enter:[],leave:[]};n.ref={enter:[],leave:[]};for(const{ruleId:t,severity:n,visitor:r}of e)o({ruleId:t,severity:n},r,null);for(const e of Object.keys(n))n[e].enter.sort(((e,t)=>t.depth-e.depth)),n[e].leave.sort(((e,t)=>e.depth-t.depth));return n;function r(e,t,o,i,a=[]){if(a.includes(t))return;a=[...a,t];const s=new Set;for(let n of Object.values(t.properties))n!==o?"object"==typeof n&&null!==n&&n.name&&s.add(n):l(e,a);t.additionalProperties&&"function"!=typeof t.additionalProperties&&(t.additionalProperties===o?l(e,a):void 0!==t.additionalProperties.name&&s.add(t.additionalProperties)),t.items&&(t.items===o?l(e,a):void 0!==t.items.name&&s.add(t.items));for(let t of Array.from(s.values()))r(e,t,o,i,a);function l(e,t){for(const r of t.slice(1))n[r.name]=n[r.name]||{enter:[],leave:[]},n[r.name].enter.push(Object.assign(Object.assign({},e),{visit:()=>{},depth:0,context:{isSkippedLevel:!0,seen:new Set,parent:i}}))}}function o(e,i,a,s=0){const l=Object.keys(t);if(0===s)l.push("any"),l.push("ref");else{if(i.any)throw new Error("any() is allowed only on top level");if(i.ref)throw new Error("ref() is allowed only on top level")}for(const c of l){const l=i[c],u=n[c];if(!l)continue;let p,d,f;const h="object"==typeof l;if("ref"===c&&h&&l.skip)throw new Error("ref() visitor does not support skip");"function"==typeof l?p=l:h&&(p=l.enter,d=l.leave,f=l.skip);const m={activatedOn:null,type:t[c],parent:a,isSkippedLevel:!1};if("object"==typeof l&&o(e,l,m,s+1),a&&r(e,a.type,t[c],a),p||h){if(p&&"function"!=typeof p)throw new Error("DEV: should be function");u.enter.push(Object.assign(Object.assign({},e),{visit:p||(()=>{}),skip:f,depth:s,context:m}))}if(d){if("function"!=typeof d)throw new Error("DEV: should be function");u.leave.push(Object.assign(Object.assign({},e),{visit:d,depth:s,context:m}))}}}}},9443:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.walkDocument=void 0;const r=n(7468),o=n(4182),i=n(771),a=n(5220);function s(e){var t,n;const r={};for(;e.parent;)(null===(t=e.parent.activatedOn)||void 0===t?void 0:t.value.location)&&(r[e.parent.type.name]=null===(n=e.parent.activatedOn)||void 0===n?void 0:n.value.location),e=e.parent;return r}t.walkDocument=function(e){const{document:t,rootType:n,normalizedVisitors:l,resolvedRefMap:c,ctx:u}=e,p={},d=new Set;!function e(t,n,f,h,m){var g,y,v,b,w,x,k,_,O,S,E;const P=(e,t=$.source.absoluteRef)=>{if(!r.isRef(e))return{location:f,node:e};const n=o.makeRefId(t,e.$ref),i=c.get(n);if(!i)return{location:void 0,node:void 0};const{resolved:a,node:s,document:l,nodePointer:u,error:p}=i;return{location:a?new r.Location(l.source,u):p instanceof o.YamlParseError?new r.Location(p.source,""):void 0,node:s,error:p}},A=f;let $=f;const{node:C,location:R,error:j}=P(t),T=new Set;if(r.isRef(t)){const e=l.ref.enter;for(const{visit:r,ruleId:o,severity:i,context:a}of e)if(!d.has(t)){T.add(a);r(t,{report:N.bind(void 0,o,i),resolve:P,rawNode:t,rawLocation:A,location:f,type:n,parent:h,key:m,parentLocations:{},oasVersion:u.oasVersion,getVisitorData:D.bind(void 0,o)},{node:C,location:R,error:j}),(null==R?void 0:R.source.absoluteRef)&&u.refTypes&&u.refTypes.set(null==R?void 0:R.source.absoluteRef,n)}}if(void 0!==C&&R&&"scalar"!==n.name){$=R;const o=null===(y=null===(g=p[n.name])||void 0===g?void 0:g.has)||void 0===y?void 0:y.call(g,C);let s=!1;const c=l.any.enter.concat((null===(v=l[n.name])||void 0===v?void 0:v.enter)||[]),u=[];for(const{context:e,visit:r,skip:a,ruleId:l,severity:p}of c)if(e.isSkippedLevel)!e.parent.activatedOn||e.parent.activatedOn.value.nextLevelTypeActivated||e.seen.has(t)||(e.seen.add(t),s=!0,u.push(e));else if(e.parent&&e.parent.activatedOn&&(null===(b=e.activatedOn)||void 0===b?void 0:b.value.withParentNode)!==e.parent.activatedOn.value.node&&(null===(w=e.parent.activatedOn.value.nextLevelTypeActivated)||void 0===w?void 0:w.value)!==n||!e.parent&&!o){u.push(e);const o={node:C,location:R,nextLevelTypeActivated:null,withParentNode:null===(k=null===(x=e.parent)||void 0===x?void 0:x.activatedOn)||void 0===k?void 0:k.value.node,skipped:null!==(S=(null===(O=null===(_=e.parent)||void 0===_?void 0:_.activatedOn)||void 0===O?void 0:O.value.skipped)||(null==a?void 0:a(C,m)))&&void 0!==S&&S};e.activatedOn=i.pushStack(e.activatedOn,o);let c=e.parent;for(;c;)c.activatedOn.value.nextLevelTypeActivated=i.pushStack(c.activatedOn.value.nextLevelTypeActivated,n),c=c.parent;if(!o.skipped){s=!0,T.add(e);const{ignoreNextVisitorsOnNode:n}=I(r,C,t,e,l,p);if(n)break}}if(s||!o)if(p[n.name]=p[n.name]||new Set,p[n.name].add(C),Array.isArray(C)){const t=n.items;if(void 0!==t)for(let n=0;n!o.includes(e)))),r.isRef(t)&&o.push(...Object.keys(t).filter((e=>"$ref"!==e&&!o.includes(e))));for(const i of o){let o=C[i],s=R;void 0===o&&(o=t[i],s=f);let l=n.properties[i];void 0===l&&(l=n.additionalProperties),"function"==typeof l&&(l=l(o,i)),!a.isNamedType(l)&&(null==l?void 0:l.directResolveAs)&&(l=l.directResolveAs,o={$ref:o}),l&&void 0===l.name&&!1!==l.resolvable&&(l={name:"scalar",properties:{}}),a.isNamedType(l)&&("scalar"!==l.name||r.isRef(o))&&e(o,l,s.child([i]),C,i)}}const d=l.any.leave,h=((null===(E=l[n.name])||void 0===E?void 0:E.leave)||[]).concat(d);for(const e of u.reverse())if(e.isSkippedLevel)e.seen.delete(C);else if(e.activatedOn=i.popStack(e.activatedOn),e.parent){let t=e.parent;for(;t;)t.activatedOn.value.nextLevelTypeActivated=i.popStack(t.activatedOn.value.nextLevelTypeActivated),t=t.parent}for(const{context:e,visit:n,ruleId:r,severity:o}of h)!e.isSkippedLevel&&T.has(e)&&I(n,C,t,e,r,o)}if($=f,r.isRef(t)){const e=l.ref.leave;for(const{visit:r,ruleId:o,severity:i,context:a}of e)if(T.has(a)){r(t,{report:N.bind(void 0,o,i),resolve:P,rawNode:t,rawLocation:A,location:f,type:n,parent:h,key:m,parentLocations:{},oasVersion:u.oasVersion,getVisitorData:D.bind(void 0,o)},{node:C,location:R,error:j})}}function I(e,t,r,o,i,a){const l=N.bind(void 0,i,a);let c=!1;return e(t,{report:l,resolve:P,rawNode:r,location:$,rawLocation:A,type:n,parent:h,key:m,parentLocations:s(o),oasVersion:u.oasVersion,ignoreNextVisitorsOnNode:()=>{c=!0},getVisitorData:D.bind(void 0,i)},function(e){var t;const n={};for(;e.parent;)n[e.parent.type.name]=null===(t=e.parent.activatedOn)||void 0===t?void 0:t.value.node,e=e.parent;return n}(o),o),{ignoreNextVisitorsOnNode:c}}function N(e,t,n){const r=n.location?Array.isArray(n.location)?n.location:[n.location]:[Object.assign(Object.assign({},$),{reportOnKey:!1})];u.problems.push(Object.assign(Object.assign({ruleId:n.ruleId||e,severity:n.forceSeverity||t},n),{suggest:n.suggest||[],location:r.map((e=>Object.assign(Object.assign(Object.assign({},$),{reportOnKey:!1}),e)))}))}function D(e){return u.visitorsData[e]=u.visitorsData[e]||{},u.visitorsData[e]}}(t.parsed,n,new r.Location(t.source,"#/"),void 0,"")}},5019:function(e,t,n){var r=n(5623);e.exports=function(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),g(function(e){return e.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(l)}(e),!0).map(u)):[]};var o="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",a="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",l="\0PERIOD"+Math.random()+"\0";function c(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function u(e){return e.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(l).join(".")}function p(e){if(!e)return[""];var t=[],n=r("{","}",e);if(!n)return e.split(",");var o=n.pre,i=n.body,a=n.post,s=o.split(",");s[s.length-1]+="{"+i+"}";var l=p(a);return a.length&&(s[s.length-1]+=l.shift(),s.push.apply(s,l)),t.push.apply(t,s),t}function d(e){return"{"+e+"}"}function f(e){return/^-?0\d/.test(e)}function h(e,t){return e<=t}function m(e,t){return e>=t}function g(e,t){var n=[],o=r("{","}",e);if(!o)return[e];var i=o.pre,s=o.post.length?g(o.post,!1):[""];if(/\$$/.test(o.pre))for(var l=0;l=0;if(!x&&!k)return o.post.match(/,.*\}/)?g(e=o.pre+"{"+o.body+a+o.post):[e];if(x)y=o.body.split(/\.\./);else if(1===(y=p(o.body)).length&&1===(y=g(y[0],!1).map(d)).length)return s.map((function(e){return o.pre+y[0]+e}));if(x){var _=c(y[0]),O=c(y[1]),S=Math.max(y[0].length,y[1].length),E=3==y.length?Math.abs(c(y[2])):1,P=h;O<_&&(E*=-1,P=m);var A=y.some(f);v=[];for(var $=_;P($,O);$+=E){var C;if(w)"\\"===(C=String.fromCharCode($))&&(C="");else if(C=String($),A){var R=S-C.length;if(R>0){var j=new Array(R+1).join("0");C=$<0?"-"+j+C.slice(1):j+C}}v.push(C)}}else{v=[];for(var T=0;T(g(t),!(!n.nocomment&&"#"===t.charAt(0))&&new v(t,n).match(e));e.exports=r;const o=n(5751);r.sep=o.sep;const i=Symbol("globstar **");r.GLOBSTAR=i;const a=n(5019),s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},l="[^/]",c="[^/]*?",u=e=>e.split("").reduce(((e,t)=>(e[t]=!0,e)),{}),p=u("().*{}+?[]^$\\!"),d=u("[.("),f=/\/+/;r.filter=(e,t={})=>(n,o,i)=>r(n,e,t);const h=(e,t={})=>{const n={};return Object.keys(e).forEach((t=>n[t]=e[t])),Object.keys(t).forEach((e=>n[e]=t[e])),n};r.defaults=e=>{if(!e||"object"!=typeof e||!Object.keys(e).length)return r;const t=r,n=(n,r,o)=>t(n,r,h(e,o));return(n.Minimatch=class extends t.Minimatch{constructor(t,n){super(t,h(e,n))}}).defaults=n=>t.defaults(h(e,n)).Minimatch,n.filter=(n,r)=>t.filter(n,h(e,r)),n.defaults=n=>t.defaults(h(e,n)),n.makeRe=(n,r)=>t.makeRe(n,h(e,r)),n.braceExpand=(n,r)=>t.braceExpand(n,h(e,r)),n.match=(n,r,o)=>t.match(n,r,h(e,o)),n},r.braceExpand=(e,t)=>m(e,t);const m=(e,t={})=>(g(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:a(e)),g=e=>{if("string"!=typeof e)throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},y=Symbol("subparse");r.makeRe=(e,t)=>new v(e,t||{}).makeRe(),r.match=(e,t,n={})=>{const r=new v(t,n);return e=e.filter((e=>r.match(e))),r.options.nonull&&!e.length&&e.push(t),e};class v{constructor(e,t){g(e),t||(t={}),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.make()}debug(){}make(){const e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();let n=this.globSet=this.braceExpand();t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,n),n=this.globParts=n.map((e=>e.split(f))),this.debug(this.pattern,n),n=n.map(((e,t,n)=>e.map(this.parse,this))),this.debug(this.pattern,n),n=n.filter((e=>-1===e.indexOf(!1))),this.debug(this.pattern,n),this.set=n}parseNegate(){if(this.options.nonegate)return;const e=this.pattern;let t=!1,n=0;for(let r=0;r>> no match, partial?",e,d,t,f),d!==s))}if("string"==typeof u?(c=p===u,this.debug("string match",u,p,c)):(c=p.match(u),this.debug("pattern match",u,p,c)),!c)return!1}if(o===s&&a===l)return!0;if(o===s)return n;if(a===l)return o===s-1&&""===e[o];throw new Error("wtf?")}braceExpand(){return m(this.pattern,this.options)}parse(e,t){g(e);const n=this.options;if("**"===e){if(!n.noglobstar)return i;e="*"}if(""===e)return"";let r="",o=!!n.nocase,a=!1;const u=[],f=[];let h,m,v,b,w=!1,x=-1,k=-1;const _="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",O=()=>{if(h){switch(h){case"*":r+=c,o=!0;break;case"?":r+=l,o=!0;break;default:r+="\\"+h}this.debug("clearStateChar %j %j",h,r),h=!1}};for(let t,i=0;i(n||(n="\\"),t+t+n+"|"))),this.debug("tail=%j\n %s",e,e,v,r);const t="*"===v.type?c:"?"===v.type?l:"\\"+v.type;o=!0,r=r.slice(0,v.reStart)+t+"\\("+e}O(),a&&(r+="\\\\");const S=d[r.charAt(0)];for(let e=f.length-1;e>-1;e--){const n=f[e],o=r.slice(0,n.reStart),i=r.slice(n.reStart,n.reEnd-8);let a=r.slice(n.reEnd);const s=r.slice(n.reEnd-8,n.reEnd)+a,l=o.split("(").length-1;let c=a;for(let e=0;e(e=e.map((e=>"string"==typeof e?e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):e===i?i:e._src)).reduce(((e,t)=>(e[e.length-1]===i&&t===i||e.push(t),e)),[]),e.forEach(((t,r)=>{t===i&&e[r-1]!==i&&(0===r?e.length>1?e[r+1]="(?:\\/|"+n+"\\/)?"+e[r+1]:e[r]=n:r===e.length-1?e[r-1]+="(?:\\/|"+n+")?":(e[r-1]+="(?:\\/|\\/"+n+"\\/)"+e[r+1],e[r+1]=i))})),e.filter((e=>e!==i)).join("/")))).join("|");o="^(?:"+o+")$",this.negate&&(o="^(?!"+o+").*$");try{this.regexp=new RegExp(o,r)}catch(e){this.regexp=!1}return this.regexp}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;const n=this.options;"/"!==o.sep&&(e=e.split(o.sep).join("/")),e=e.split(f),this.debug(this.pattern,"split",e);const r=this.set;let i;this.debug(this.pattern,"set",r);for(let t=e.length-1;t>=0&&(i=e[t],!i);t--);for(let o=0;o=0&&c>0){if(e===t)return[l,c];for(r=[],i=n.length;u>=0&&!s;)u==l?(r.push(u),l=n.indexOf(e,u+1)):1==r.length?s=[r.pop(),c]:((o=r.pop())=0?l:c;r.length&&(s=[i,a])}return s}e.exports=t,t.range=r},4480:function(e,t,n){"use strict";var r=n.g.process&&process.nextTick||n.g.setImmediate||function(e){setTimeout(e,0)};e.exports=function(e,t){return e?void t.then((function(t){r((function(){e(null,t)}))}),(function(t){r((function(){e(t)}))})):t}},4184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;tu;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:function(e,t,n){var r=n(9974),o=n(8361),i=n(7908),a=n(7466),s=n(5417),l=[].push,c=function(e){var t=1==e,n=2==e,c=3==e,u=4==e,p=6==e,d=7==e,f=5==e||p;return function(h,m,g,y){for(var v,b,w=i(h),x=o(w),k=r(m,g,3),_=a(x.length),O=0,S=y||s,E=t?S(h,_):n||d?S(h,0):void 0;_>O;O++)if((f||O in x)&&(b=k(v=x[O],O,w),e))if(t)E[O]=b;else if(b)switch(e){case 3:return!0;case 5:return v;case 6:return O;case 2:l.call(E,v)}else switch(e){case 4:return!1;case 7:l.call(E,v)}return p?-1:c||u?u:E}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterOut:c(7)}},1194:function(e,t,n){var r=n(7293),o=n(5112),i=n(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},5417:function(e,t,n){var r=n(111),o=n(3157),i=n(5112)("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},4326:function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},648:function(e,t,n){var r=n(1694),o=n(4326),i=n(5112)("toStringTag"),a="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:a?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},9920:function(e,t,n){var r=n(6656),o=n(3887),i=n(1236),a=n(3070);e.exports=function(e,t){for(var n=o(t),s=a.f,l=i.f,c=0;c=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},748:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:function(e,t,n){var r=n(7854),o=n(1236).f,i=n(8880),a=n(1320),s=n(3505),l=n(9920),c=n(4705);e.exports=function(e,t){var n,u,p,d,f,h=e.target,m=e.global,g=e.stat;if(n=m?r:g?r[h]||s(h,{}):(r[h]||{}).prototype)for(u in t){if(d=t[u],p=e.noTargetGet?(f=o(n,u))&&f.value:n[u],!c(m?u:h+(g?".":"#")+u,e.forced)&&void 0!==p){if(typeof d==typeof p)continue;l(d,p)}(e.sham||p&&p.sham)&&i(d,"sham",!0),a(n,u,d,e)}}},7293:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},9974:function(e,t,n){var r=n(3099);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},5005:function(e,t,n){var r=n(857),o=n(7854),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},7854:function(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},6656:function(e,t,n){var r=n(7908),o={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return o.call(r(e),t)}},3501:function(e){e.exports={}},490:function(e,t,n){var r=n(5005);e.exports=r("document","documentElement")},4664:function(e,t,n){var r=n(9781),o=n(7293),i=n(317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:function(e,t,n){var r=n(7293),o=n(4326),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},2788:function(e,t,n){var r=n(5465),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return o.call(e)}),e.exports=r.inspectSource},9909:function(e,t,n){var r,o,i,a=n(8536),s=n(7854),l=n(111),c=n(8880),u=n(6656),p=n(5465),d=n(6200),f=n(3501),h="Object already initialized",m=s.WeakMap;if(a||p.state){var g=p.state||(p.state=new m),y=g.get,v=g.has,b=g.set;r=function(e,t){if(v.call(g,e))throw new TypeError(h);return t.facade=e,b.call(g,e,t),t},o=function(e){return y.call(g,e)||{}},i=function(e){return v.call(g,e)}}else{var w=d("state");f[w]=!0,r=function(e,t){if(u(e,w))throw new TypeError(h);return t.facade=e,c(e,w,t),t},o=function(e){return u(e,w)?e[w]:{}},i=function(e){return u(e,w)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},3157:function(e,t,n){var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},4705:function(e,t,n){var r=n(7293),o=/#|\.prototype\./,i=function(e,t){var n=s[a(e)];return n==c||n!=l&&("function"==typeof t?r(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},s=i.data={},l=i.NATIVE="N",c=i.POLYFILL="P";e.exports=i},111:function(e){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},1913:function(e){e.exports=!1},133:function(e,t,n){var r=n(7392),o=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8536:function(e,t,n){var r=n(7854),o=n(2788),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},30:function(e,t,n){var r,o=n(9670),i=n(6048),a=n(748),s=n(3501),l=n(490),c=n(317),u=n(6200)("IE_PROTO"),p=function(){},d=function(e){return"